| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161271622716327164271652716627167271682716927170271712717227173271742717527176271772717827179271802718127182271832718427185271862718727188271892719027191271922719327194271952719627197271982719927200272012720227203272042720527206272072720827209272102721127212272132721427215272162721727218272192722027221272222722327224272252722627227272282722927230272312723227233272342723527236272372723827239272402724127242272432724427245272462724727248272492725027251272522725327254272552725627257272582725927260272612726227263272642726527266272672726827269272702727127272272732727427275272762727727278272792728027281272822728327284272852728627287272882728927290272912729227293272942729527296272972729827299273002730127302273032730427305273062730727308273092731027311273122731327314273152731627317273182731927320273212732227323273242732527326273272732827329273302733127332273332733427335273362733727338273392734027341273422734327344273452734627347273482734927350273512735227353273542735527356273572735827359273602736127362273632736427365273662736727368273692737027371273722737327374273752737627377273782737927380273812738227383273842738527386273872738827389273902739127392273932739427395273962739727398273992740027401274022740327404274052740627407274082740927410274112741227413274142741527416274172741827419274202742127422274232742427425274262742727428274292743027431274322743327434274352743627437274382743927440274412744227443274442744527446274472744827449274502745127452274532745427455274562745727458274592746027461274622746327464274652746627467274682746927470274712747227473274742747527476274772747827479274802748127482274832748427485274862748727488274892749027491274922749327494274952749627497274982749927500275012750227503275042750527506275072750827509275102751127512275132751427515275162751727518275192752027521275222752327524275252752627527275282752927530275312753227533275342753527536275372753827539275402754127542275432754427545275462754727548275492755027551275522755327554275552755627557275582755927560275612756227563275642756527566275672756827569275702757127572275732757427575275762757727578275792758027581275822758327584275852758627587275882758927590275912759227593275942759527596275972759827599276002760127602276032760427605276062760727608276092761027611276122761327614276152761627617276182761927620276212762227623276242762527626276272762827629276302763127632276332763427635276362763727638276392764027641276422764327644276452764627647276482764927650276512765227653276542765527656276572765827659276602766127662276632766427665276662766727668276692767027671276722767327674276752767627677276782767927680276812768227683276842768527686276872768827689276902769127692276932769427695276962769727698276992770027701277022770327704277052770627707277082770927710277112771227713277142771527716277172771827719277202772127722277232772427725277262772727728277292773027731277322773327734277352773627737277382773927740277412774227743277442774527746277472774827749277502775127752277532775427755277562775727758277592776027761277622776327764277652776627767277682776927770277712777227773277742777527776277772777827779277802778127782277832778427785277862778727788277892779027791277922779327794277952779627797277982779927800278012780227803278042780527806278072780827809278102781127812278132781427815278162781727818278192782027821278222782327824278252782627827278282782927830278312783227833278342783527836278372783827839278402784127842278432784427845278462784727848278492785027851278522785327854278552785627857278582785927860278612786227863278642786527866278672786827869278702787127872278732787427875278762787727878278792788027881278822788327884278852788627887278882788927890278912789227893278942789527896278972789827899279002790127902279032790427905279062790727908279092791027911279122791327914279152791627917279182791927920279212792227923279242792527926279272792827929279302793127932279332793427935279362793727938279392794027941279422794327944279452794627947279482794927950279512795227953279542795527956279572795827959279602796127962279632796427965279662796727968279692797027971279722797327974279752797627977279782797927980279812798227983279842798527986279872798827989279902799127992279932799427995279962799727998279992800028001280022800328004280052800628007280082800928010280112801228013280142801528016280172801828019280202802128022280232802428025280262802728028280292803028031280322803328034280352803628037280382803928040280412804228043280442804528046280472804828049280502805128052280532805428055280562805728058280592806028061280622806328064280652806628067280682806928070280712807228073280742807528076280772807828079280802808128082280832808428085280862808728088280892809028091280922809328094280952809628097280982809928100281012810228103281042810528106281072810828109281102811128112281132811428115281162811728118281192812028121281222812328124281252812628127281282812928130281312813228133281342813528136281372813828139281402814128142281432814428145281462814728148281492815028151281522815328154281552815628157281582815928160281612816228163281642816528166281672816828169281702817128172281732817428175281762817728178281792818028181281822818328184281852818628187281882818928190281912819228193281942819528196281972819828199282002820128202282032820428205282062820728208282092821028211282122821328214282152821628217282182821928220282212822228223282242822528226282272822828229282302823128232282332823428235282362823728238282392824028241282422824328244282452824628247282482824928250282512825228253282542825528256282572825828259282602826128262282632826428265282662826728268282692827028271282722827328274282752827628277282782827928280282812828228283282842828528286282872828828289282902829128292282932829428295282962829728298282992830028301283022830328304283052830628307283082830928310283112831228313283142831528316283172831828319283202832128322283232832428325283262832728328283292833028331283322833328334283352833628337283382833928340283412834228343283442834528346283472834828349283502835128352283532835428355283562835728358283592836028361283622836328364283652836628367283682836928370283712837228373283742837528376283772837828379283802838128382283832838428385283862838728388283892839028391283922839328394283952839628397283982839928400284012840228403284042840528406284072840828409284102841128412284132841428415284162841728418284192842028421284222842328424284252842628427284282842928430284312843228433284342843528436284372843828439284402844128442284432844428445284462844728448284492845028451284522845328454284552845628457284582845928460284612846228463284642846528466284672846828469284702847128472284732847428475284762847728478284792848028481284822848328484284852848628487284882848928490284912849228493284942849528496284972849828499285002850128502285032850428505285062850728508285092851028511285122851328514285152851628517285182851928520285212852228523285242852528526285272852828529285302853128532285332853428535285362853728538285392854028541285422854328544285452854628547285482854928550285512855228553285542855528556285572855828559285602856128562285632856428565285662856728568285692857028571285722857328574285752857628577285782857928580285812858228583285842858528586285872858828589285902859128592285932859428595285962859728598285992860028601286022860328604286052860628607286082860928610286112861228613286142861528616286172861828619286202862128622286232862428625286262862728628286292863028631286322863328634286352863628637286382863928640286412864228643286442864528646286472864828649286502865128652286532865428655286562865728658286592866028661286622866328664286652866628667286682866928670286712867228673286742867528676286772867828679286802868128682286832868428685286862868728688286892869028691286922869328694286952869628697286982869928700287012870228703287042870528706287072870828709287102871128712287132871428715287162871728718287192872028721287222872328724287252872628727287282872928730287312873228733287342873528736287372873828739287402874128742287432874428745287462874728748287492875028751287522875328754287552875628757287582875928760287612876228763287642876528766287672876828769287702877128772287732877428775287762877728778287792878028781287822878328784287852878628787287882878928790287912879228793287942879528796287972879828799288002880128802288032880428805288062880728808288092881028811288122881328814288152881628817288182881928820288212882228823288242882528826288272882828829288302883128832288332883428835288362883728838288392884028841288422884328844288452884628847288482884928850288512885228853288542885528856288572885828859288602886128862288632886428865288662886728868288692887028871288722887328874288752887628877288782887928880288812888228883288842888528886288872888828889288902889128892288932889428895288962889728898288992890028901289022890328904289052890628907289082890928910289112891228913289142891528916289172891828919289202892128922289232892428925289262892728928289292893028931289322893328934289352893628937289382893928940289412894228943289442894528946289472894828949289502895128952289532895428955289562895728958289592896028961289622896328964289652896628967289682896928970289712897228973289742897528976289772897828979289802898128982289832898428985289862898728988289892899028991289922899328994289952899628997289982899929000290012900229003290042900529006290072900829009290102901129012290132901429015290162901729018290192902029021290222902329024290252902629027290282902929030290312903229033290342903529036290372903829039290402904129042290432904429045290462904729048290492905029051290522905329054290552905629057290582905929060290612906229063290642906529066290672906829069290702907129072290732907429075290762907729078290792908029081290822908329084290852908629087290882908929090290912909229093290942909529096290972909829099291002910129102291032910429105291062910729108291092911029111291122911329114291152911629117291182911929120291212912229123291242912529126291272912829129291302913129132291332913429135291362913729138291392914029141291422914329144291452914629147291482914929150291512915229153291542915529156291572915829159291602916129162291632916429165291662916729168291692917029171291722917329174291752917629177291782917929180291812918229183291842918529186291872918829189291902919129192291932919429195291962919729198291992920029201292022920329204292052920629207292082920929210292112921229213292142921529216292172921829219292202922129222292232922429225292262922729228292292923029231292322923329234292352923629237292382923929240292412924229243292442924529246292472924829249292502925129252292532925429255292562925729258292592926029261292622926329264292652926629267292682926929270292712927229273292742927529276292772927829279292802928129282292832928429285292862928729288292892929029291292922929329294292952929629297292982929929300293012930229303293042930529306293072930829309293102931129312293132931429315293162931729318293192932029321293222932329324293252932629327293282932929330293312933229333293342933529336293372933829339293402934129342293432934429345293462934729348293492935029351293522935329354293552935629357293582935929360293612936229363293642936529366293672936829369293702937129372293732937429375293762937729378293792938029381293822938329384293852938629387293882938929390293912939229393293942939529396293972939829399294002940129402294032940429405294062940729408294092941029411294122941329414294152941629417294182941929420294212942229423294242942529426294272942829429294302943129432294332943429435294362943729438294392944029441294422944329444294452944629447294482944929450294512945229453294542945529456294572945829459294602946129462294632946429465294662946729468294692947029471294722947329474294752947629477294782947929480294812948229483294842948529486294872948829489294902949129492294932949429495294962949729498294992950029501295022950329504295052950629507295082950929510295112951229513295142951529516295172951829519295202952129522295232952429525295262952729528295292953029531295322953329534295352953629537295382953929540295412954229543295442954529546295472954829549295502955129552295532955429555295562955729558295592956029561295622956329564295652956629567295682956929570295712957229573295742957529576295772957829579295802958129582295832958429585295862958729588295892959029591295922959329594295952959629597295982959929600296012960229603296042960529606296072960829609296102961129612296132961429615296162961729618296192962029621296222962329624296252962629627296282962929630296312963229633296342963529636296372963829639296402964129642296432964429645296462964729648296492965029651296522965329654296552965629657296582965929660296612966229663296642966529666296672966829669296702967129672296732967429675296762967729678296792968029681296822968329684296852968629687296882968929690296912969229693296942969529696296972969829699297002970129702297032970429705297062970729708297092971029711297122971329714297152971629717297182971929720297212972229723297242972529726297272972829729297302973129732297332973429735297362973729738297392974029741297422974329744297452974629747297482974929750297512975229753297542975529756297572975829759297602976129762297632976429765297662976729768297692977029771297722977329774297752977629777297782977929780297812978229783297842978529786297872978829789297902979129792297932979429795297962979729798297992980029801298022980329804298052980629807298082980929810298112981229813298142981529816298172981829819298202982129822298232982429825298262982729828298292983029831298322983329834298352983629837298382983929840298412984229843298442984529846298472984829849298502985129852298532985429855298562985729858298592986029861298622986329864298652986629867298682986929870298712987229873298742987529876298772987829879298802988129882298832988429885298862988729888298892989029891298922989329894298952989629897298982989929900299012990229903299042990529906299072990829909299102991129912299132991429915299162991729918299192992029921299222992329924299252992629927299282992929930299312993229933299342993529936299372993829939299402994129942299432994429945299462994729948299492995029951299522995329954299552995629957299582995929960299612996229963299642996529966299672996829969299702997129972299732997429975299762997729978299792998029981299822998329984299852998629987299882998929990299912999229993299942999529996299972999829999300003000130002300033000430005300063000730008300093001030011300123001330014300153001630017300183001930020300213002230023300243002530026300273002830029300303003130032300333003430035300363003730038300393004030041300423004330044300453004630047300483004930050300513005230053300543005530056300573005830059300603006130062300633006430065300663006730068300693007030071300723007330074300753007630077300783007930080300813008230083300843008530086300873008830089300903009130092300933009430095300963009730098300993010030101301023010330104301053010630107301083010930110301113011230113301143011530116301173011830119301203012130122301233012430125301263012730128301293013030131301323013330134301353013630137301383013930140301413014230143301443014530146301473014830149301503015130152301533015430155301563015730158301593016030161301623016330164301653016630167301683016930170301713017230173301743017530176301773017830179301803018130182301833018430185301863018730188301893019030191301923019330194301953019630197301983019930200302013020230203302043020530206302073020830209302103021130212302133021430215302163021730218302193022030221302223022330224302253022630227302283022930230302313023230233302343023530236302373023830239302403024130242302433024430245302463024730248302493025030251302523025330254302553025630257302583025930260302613026230263302643026530266302673026830269302703027130272302733027430275302763027730278302793028030281302823028330284302853028630287302883028930290302913029230293302943029530296302973029830299303003030130302303033030430305303063030730308303093031030311303123031330314303153031630317303183031930320303213032230323303243032530326303273032830329303303033130332303333033430335303363033730338303393034030341303423034330344303453034630347303483034930350303513035230353303543035530356303573035830359303603036130362303633036430365303663036730368303693037030371303723037330374303753037630377303783037930380303813038230383303843038530386303873038830389303903039130392303933039430395303963039730398303993040030401304023040330404304053040630407304083040930410304113041230413304143041530416304173041830419304203042130422304233042430425304263042730428304293043030431304323043330434304353043630437304383043930440304413044230443304443044530446304473044830449304503045130452304533045430455304563045730458304593046030461304623046330464304653046630467304683046930470304713047230473304743047530476304773047830479304803048130482304833048430485304863048730488304893049030491304923049330494304953049630497304983049930500305013050230503305043050530506305073050830509305103051130512305133051430515305163051730518305193052030521305223052330524305253052630527305283052930530305313053230533305343053530536305373053830539305403054130542305433054430545305463054730548305493055030551305523055330554305553055630557305583055930560305613056230563305643056530566305673056830569305703057130572305733057430575305763057730578305793058030581305823058330584305853058630587305883058930590305913059230593305943059530596305973059830599306003060130602306033060430605306063060730608306093061030611306123061330614306153061630617306183061930620306213062230623306243062530626306273062830629306303063130632306333063430635306363063730638306393064030641306423064330644306453064630647306483064930650306513065230653306543065530656306573065830659306603066130662306633066430665306663066730668306693067030671306723067330674306753067630677306783067930680306813068230683306843068530686306873068830689306903069130692306933069430695306963069730698306993070030701307023070330704307053070630707307083070930710307113071230713307143071530716307173071830719307203072130722307233072430725307263072730728307293073030731307323073330734307353073630737307383073930740307413074230743307443074530746307473074830749307503075130752307533075430755307563075730758307593076030761307623076330764307653076630767307683076930770307713077230773307743077530776307773077830779307803078130782307833078430785307863078730788307893079030791307923079330794307953079630797307983079930800308013080230803308043080530806308073080830809308103081130812308133081430815308163081730818308193082030821308223082330824308253082630827308283082930830308313083230833308343083530836308373083830839308403084130842308433084430845308463084730848308493085030851308523085330854308553085630857308583085930860308613086230863308643086530866308673086830869308703087130872308733087430875308763087730878308793088030881308823088330884308853088630887308883088930890308913089230893308943089530896308973089830899309003090130902309033090430905309063090730908309093091030911309123091330914309153091630917309183091930920309213092230923309243092530926309273092830929309303093130932309333093430935309363093730938309393094030941309423094330944309453094630947309483094930950309513095230953309543095530956309573095830959309603096130962309633096430965309663096730968309693097030971309723097330974309753097630977309783097930980309813098230983309843098530986309873098830989309903099130992309933099430995309963099730998309993100031001310023100331004310053100631007310083100931010310113101231013310143101531016310173101831019310203102131022310233102431025310263102731028310293103031031310323103331034310353103631037310383103931040310413104231043310443104531046310473104831049310503105131052310533105431055310563105731058310593106031061310623106331064310653106631067310683106931070310713107231073310743107531076310773107831079310803108131082310833108431085310863108731088310893109031091310923109331094310953109631097310983109931100311013110231103311043110531106311073110831109311103111131112311133111431115311163111731118311193112031121311223112331124311253112631127311283112931130311313113231133311343113531136311373113831139311403114131142311433114431145311463114731148311493115031151311523115331154311553115631157311583115931160311613116231163311643116531166311673116831169311703117131172311733117431175311763117731178311793118031181311823118331184311853118631187311883118931190311913119231193311943119531196311973119831199312003120131202312033120431205312063120731208312093121031211312123121331214312153121631217312183121931220312213122231223312243122531226312273122831229312303123131232312333123431235312363123731238312393124031241312423124331244312453124631247312483124931250312513125231253312543125531256312573125831259312603126131262312633126431265312663126731268312693127031271312723127331274312753127631277312783127931280312813128231283312843128531286312873128831289312903129131292312933129431295312963129731298312993130031301313023130331304313053130631307313083130931310313113131231313313143131531316313173131831319313203132131322313233132431325313263132731328313293133031331313323133331334313353133631337313383133931340313413134231343313443134531346313473134831349313503135131352313533135431355313563135731358313593136031361313623136331364313653136631367313683136931370313713137231373313743137531376313773137831379313803138131382313833138431385313863138731388313893139031391313923139331394313953139631397313983139931400314013140231403314043140531406314073140831409314103141131412314133141431415314163141731418314193142031421314223142331424314253142631427314283142931430314313143231433314343143531436314373143831439314403144131442314433144431445314463144731448314493145031451314523145331454314553145631457314583145931460314613146231463314643146531466314673146831469314703147131472314733147431475314763147731478314793148031481314823148331484314853148631487314883148931490314913149231493314943149531496314973149831499315003150131502315033150431505315063150731508315093151031511315123151331514315153151631517315183151931520315213152231523315243152531526315273152831529315303153131532315333153431535315363153731538315393154031541315423154331544315453154631547315483154931550315513155231553315543155531556315573155831559315603156131562315633156431565315663156731568315693157031571315723157331574315753157631577315783157931580315813158231583315843158531586315873158831589315903159131592315933159431595315963159731598315993160031601316023160331604316053160631607316083160931610316113161231613316143161531616316173161831619316203162131622316233162431625316263162731628316293163031631316323163331634316353163631637316383163931640316413164231643316443164531646316473164831649316503165131652316533165431655316563165731658316593166031661316623166331664316653166631667316683166931670316713167231673316743167531676316773167831679316803168131682316833168431685316863168731688316893169031691316923169331694316953169631697316983169931700317013170231703317043170531706317073170831709317103171131712317133171431715317163171731718317193172031721317223172331724317253172631727317283172931730317313173231733317343173531736317373173831739317403174131742317433174431745317463174731748317493175031751317523175331754317553175631757317583175931760317613176231763317643176531766317673176831769317703177131772317733177431775317763177731778317793178031781317823178331784317853178631787317883178931790317913179231793317943179531796317973179831799318003180131802318033180431805318063180731808318093181031811318123181331814318153181631817318183181931820318213182231823318243182531826318273182831829318303183131832318333183431835318363183731838318393184031841318423184331844318453184631847318483184931850318513185231853318543185531856318573185831859318603186131862318633186431865318663186731868318693187031871318723187331874318753187631877318783187931880318813188231883318843188531886318873188831889318903189131892318933189431895318963189731898318993190031901319023190331904319053190631907319083190931910319113191231913319143191531916319173191831919319203192131922319233192431925319263192731928319293193031931319323193331934319353193631937319383193931940319413194231943319443194531946319473194831949319503195131952319533195431955319563195731958319593196031961319623196331964319653196631967319683196931970319713197231973319743197531976319773197831979319803198131982319833198431985319863198731988319893199031991319923199331994319953199631997319983199932000320013200232003320043200532006320073200832009320103201132012320133201432015320163201732018320193202032021320223202332024320253202632027320283202932030320313203232033320343203532036320373203832039320403204132042320433204432045320463204732048320493205032051320523205332054320553205632057320583205932060320613206232063320643206532066320673206832069320703207132072320733207432075320763207732078320793208032081320823208332084320853208632087320883208932090320913209232093320943209532096320973209832099321003210132102321033210432105321063210732108321093211032111321123211332114321153211632117321183211932120321213212232123321243212532126321273212832129321303213132132321333213432135321363213732138321393214032141321423214332144321453214632147321483214932150321513215232153321543215532156321573215832159321603216132162321633216432165321663216732168321693217032171321723217332174321753217632177321783217932180321813218232183321843218532186321873218832189321903219132192321933219432195321963219732198321993220032201322023220332204322053220632207322083220932210322113221232213322143221532216322173221832219322203222132222322233222432225322263222732228322293223032231322323223332234322353223632237322383223932240322413224232243322443224532246322473224832249322503225132252322533225432255322563225732258322593226032261322623226332264322653226632267322683226932270322713227232273322743227532276322773227832279322803228132282322833228432285322863228732288322893229032291322923229332294322953229632297322983229932300323013230232303323043230532306323073230832309323103231132312323133231432315323163231732318323193232032321323223232332324323253232632327323283232932330323313233232333323343233532336323373233832339323403234132342323433234432345323463234732348323493235032351323523235332354323553235632357323583235932360323613236232363323643236532366323673236832369323703237132372323733237432375323763237732378323793238032381323823238332384323853238632387323883238932390323913239232393323943239532396323973239832399324003240132402324033240432405324063240732408324093241032411324123241332414324153241632417324183241932420324213242232423324243242532426324273242832429324303243132432324333243432435324363243732438324393244032441324423244332444324453244632447324483244932450324513245232453324543245532456324573245832459324603246132462324633246432465324663246732468324693247032471324723247332474324753247632477324783247932480324813248232483324843248532486324873248832489324903249132492324933249432495324963249732498324993250032501325023250332504325053250632507325083250932510325113251232513325143251532516325173251832519325203252132522325233252432525325263252732528325293253032531325323253332534325353253632537325383253932540325413254232543325443254532546325473254832549325503255132552325533255432555325563255732558325593256032561325623256332564325653256632567325683256932570325713257232573325743257532576325773257832579325803258132582325833258432585325863258732588325893259032591325923259332594325953259632597325983259932600326013260232603326043260532606326073260832609326103261132612326133261432615326163261732618326193262032621326223262332624326253262632627326283262932630326313263232633326343263532636326373263832639326403264132642326433264432645326463264732648326493265032651326523265332654326553265632657326583265932660326613266232663326643266532666326673266832669326703267132672326733267432675326763267732678326793268032681326823268332684326853268632687326883268932690326913269232693326943269532696326973269832699327003270132702327033270432705327063270732708327093271032711327123271332714327153271632717327183271932720327213272232723327243272532726327273272832729327303273132732327333273432735327363273732738327393274032741327423274332744327453274632747327483274932750327513275232753327543275532756327573275832759327603276132762327633276432765327663276732768327693277032771327723277332774327753277632777327783277932780327813278232783327843278532786327873278832789327903279132792327933279432795327963279732798327993280032801328023280332804328053280632807328083280932810328113281232813328143281532816328173281832819328203282132822328233282432825328263282732828328293283032831328323283332834328353283632837328383283932840328413284232843328443284532846328473284832849328503285132852328533285432855328563285732858328593286032861328623286332864328653286632867328683286932870328713287232873328743287532876328773287832879328803288132882328833288432885328863288732888328893289032891328923289332894328953289632897328983289932900329013290232903329043290532906329073290832909329103291132912329133291432915329163291732918329193292032921329223292332924329253292632927329283292932930329313293232933329343293532936329373293832939329403294132942329433294432945329463294732948329493295032951329523295332954329553295632957329583295932960329613296232963329643296532966329673296832969329703297132972329733297432975329763297732978329793298032981329823298332984329853298632987329883298932990329913299232993329943299532996329973299832999330003300133002330033300433005330063300733008330093301033011330123301333014330153301633017330183301933020330213302233023330243302533026330273302833029330303303133032330333303433035330363303733038330393304033041330423304333044330453304633047330483304933050330513305233053330543305533056330573305833059330603306133062330633306433065330663306733068330693307033071330723307333074330753307633077330783307933080330813308233083330843308533086330873308833089330903309133092330933309433095330963309733098330993310033101331023310333104331053310633107331083310933110331113311233113331143311533116331173311833119331203312133122331233312433125331263312733128331293313033131331323313333134331353313633137331383313933140331413314233143331443314533146331473314833149331503315133152331533315433155331563315733158331593316033161331623316333164331653316633167331683316933170331713317233173331743317533176331773317833179331803318133182331833318433185331863318733188331893319033191331923319333194331953319633197331983319933200332013320233203332043320533206332073320833209332103321133212332133321433215332163321733218332193322033221332223322333224332253322633227332283322933230332313323233233332343323533236332373323833239332403324133242332433324433245332463324733248332493325033251332523325333254332553325633257332583325933260332613326233263332643326533266332673326833269332703327133272332733327433275332763327733278332793328033281332823328333284332853328633287332883328933290332913329233293332943329533296332973329833299333003330133302333033330433305333063330733308333093331033311333123331333314333153331633317333183331933320333213332233323333243332533326333273332833329333303333133332333333333433335333363333733338333393334033341333423334333344333453334633347333483334933350333513335233353333543335533356333573335833359333603336133362333633336433365333663336733368333693337033371333723337333374333753337633377333783337933380333813338233383333843338533386333873338833389333903339133392333933339433395333963339733398333993340033401334023340333404334053340633407334083340933410334113341233413334143341533416334173341833419334203342133422334233342433425334263342733428334293343033431334323343333434334353343633437334383343933440334413344233443334443344533446334473344833449334503345133452334533345433455334563345733458334593346033461334623346333464334653346633467334683346933470334713347233473334743347533476334773347833479334803348133482334833348433485334863348733488334893349033491334923349333494334953349633497334983349933500335013350233503335043350533506335073350833509335103351133512335133351433515335163351733518335193352033521335223352333524335253352633527335283352933530335313353233533335343353533536335373353833539335403354133542335433354433545335463354733548335493355033551335523355333554335553355633557335583355933560335613356233563335643356533566335673356833569335703357133572335733357433575335763357733578335793358033581335823358333584335853358633587335883358933590335913359233593335943359533596335973359833599336003360133602336033360433605336063360733608336093361033611336123361333614336153361633617336183361933620336213362233623336243362533626336273362833629336303363133632336333363433635336363363733638336393364033641336423364333644336453364633647336483364933650336513365233653336543365533656336573365833659336603366133662336633366433665336663366733668336693367033671336723367333674336753367633677336783367933680336813368233683336843368533686336873368833689336903369133692336933369433695336963369733698336993370033701337023370333704337053370633707337083370933710337113371233713337143371533716337173371833719337203372133722337233372433725337263372733728337293373033731337323373333734337353373633737337383373933740337413374233743337443374533746337473374833749337503375133752337533375433755337563375733758337593376033761337623376333764337653376633767337683376933770337713377233773337743377533776337773377833779337803378133782337833378433785337863378733788337893379033791337923379333794337953379633797337983379933800338013380233803338043380533806338073380833809338103381133812338133381433815338163381733818338193382033821338223382333824338253382633827338283382933830338313383233833338343383533836338373383833839338403384133842338433384433845338463384733848338493385033851338523385333854338553385633857338583385933860338613386233863338643386533866338673386833869338703387133872338733387433875338763387733878338793388033881338823388333884338853388633887338883388933890338913389233893338943389533896338973389833899339003390133902339033390433905339063390733908339093391033911339123391333914339153391633917339183391933920339213392233923339243392533926339273392833929339303393133932339333393433935339363393733938339393394033941339423394333944339453394633947339483394933950339513395233953339543395533956339573395833959339603396133962339633396433965339663396733968339693397033971339723397333974339753397633977339783397933980339813398233983339843398533986339873398833989339903399133992339933399433995339963399733998339993400034001340023400334004340053400634007340083400934010340113401234013340143401534016340173401834019340203402134022340233402434025340263402734028340293403034031340323403334034340353403634037340383403934040340413404234043340443404534046340473404834049340503405134052340533405434055340563405734058340593406034061340623406334064340653406634067340683406934070340713407234073340743407534076340773407834079340803408134082340833408434085340863408734088340893409034091340923409334094340953409634097340983409934100341013410234103341043410534106341073410834109341103411134112341133411434115341163411734118341193412034121341223412334124341253412634127341283412934130341313413234133341343413534136341373413834139341403414134142341433414434145341463414734148341493415034151341523415334154341553415634157341583415934160341613416234163341643416534166341673416834169341703417134172341733417434175341763417734178341793418034181341823418334184341853418634187341883418934190341913419234193341943419534196341973419834199342003420134202342033420434205342063420734208342093421034211342123421334214342153421634217342183421934220342213422234223342243422534226342273422834229342303423134232342333423434235342363423734238342393424034241342423424334244342453424634247342483424934250342513425234253342543425534256342573425834259342603426134262342633426434265342663426734268342693427034271342723427334274342753427634277342783427934280342813428234283342843428534286342873428834289342903429134292342933429434295342963429734298342993430034301343023430334304343053430634307343083430934310343113431234313343143431534316343173431834319343203432134322343233432434325343263432734328343293433034331343323433334334343353433634337343383433934340343413434234343343443434534346343473434834349343503435134352343533435434355343563435734358343593436034361343623436334364343653436634367343683436934370343713437234373343743437534376343773437834379343803438134382343833438434385343863438734388343893439034391343923439334394343953439634397343983439934400344013440234403344043440534406344073440834409344103441134412344133441434415344163441734418344193442034421344223442334424344253442634427344283442934430344313443234433344343443534436344373443834439344403444134442344433444434445344463444734448344493445034451344523445334454344553445634457344583445934460344613446234463344643446534466344673446834469344703447134472344733447434475344763447734478344793448034481344823448334484344853448634487344883448934490344913449234493344943449534496344973449834499345003450134502345033450434505345063450734508345093451034511345123451334514345153451634517345183451934520345213452234523345243452534526345273452834529345303453134532345333453434535345363453734538345393454034541345423454334544345453454634547345483454934550345513455234553345543455534556345573455834559345603456134562345633456434565345663456734568345693457034571345723457334574345753457634577345783457934580345813458234583345843458534586345873458834589345903459134592345933459434595345963459734598345993460034601346023460334604346053460634607346083460934610346113461234613346143461534616346173461834619346203462134622346233462434625346263462734628346293463034631346323463334634346353463634637346383463934640346413464234643346443464534646346473464834649346503465134652346533465434655346563465734658346593466034661346623466334664346653466634667346683466934670346713467234673346743467534676346773467834679346803468134682346833468434685346863468734688346893469034691346923469334694346953469634697346983469934700347013470234703347043470534706347073470834709347103471134712347133471434715347163471734718347193472034721347223472334724347253472634727347283472934730347313473234733347343473534736347373473834739347403474134742347433474434745347463474734748347493475034751347523475334754347553475634757347583475934760347613476234763347643476534766347673476834769347703477134772347733477434775347763477734778347793478034781347823478334784347853478634787347883478934790347913479234793347943479534796347973479834799348003480134802348033480434805348063480734808348093481034811348123481334814348153481634817348183481934820348213482234823348243482534826348273482834829348303483134832348333483434835348363483734838348393484034841348423484334844348453484634847348483484934850348513485234853348543485534856348573485834859348603486134862348633486434865348663486734868348693487034871348723487334874348753487634877348783487934880348813488234883348843488534886348873488834889348903489134892348933489434895348963489734898348993490034901349023490334904349053490634907349083490934910349113491234913349143491534916349173491834919349203492134922349233492434925349263492734928349293493034931349323493334934349353493634937349383493934940349413494234943349443494534946349473494834949349503495134952349533495434955349563495734958349593496034961349623496334964349653496634967349683496934970349713497234973349743497534976349773497834979349803498134982349833498434985349863498734988349893499034991349923499334994349953499634997349983499935000350013500235003350043500535006350073500835009350103501135012350133501435015350163501735018350193502035021350223502335024350253502635027350283502935030350313503235033350343503535036350373503835039350403504135042350433504435045350463504735048350493505035051350523505335054350553505635057350583505935060350613506235063350643506535066350673506835069350703507135072350733507435075350763507735078350793508035081350823508335084350853508635087350883508935090350913509235093350943509535096350973509835099351003510135102351033510435105351063510735108351093511035111351123511335114351153511635117351183511935120351213512235123351243512535126351273512835129351303513135132351333513435135351363513735138351393514035141351423514335144351453514635147351483514935150351513515235153351543515535156351573515835159351603516135162351633516435165351663516735168351693517035171351723517335174351753517635177351783517935180351813518235183351843518535186351873518835189351903519135192351933519435195351963519735198351993520035201352023520335204352053520635207352083520935210352113521235213352143521535216352173521835219352203522135222352233522435225352263522735228352293523035231352323523335234352353523635237352383523935240352413524235243352443524535246352473524835249352503525135252352533525435255352563525735258352593526035261352623526335264352653526635267352683526935270352713527235273352743527535276352773527835279352803528135282352833528435285352863528735288352893529035291352923529335294352953529635297352983529935300353013530235303353043530535306353073530835309353103531135312353133531435315353163531735318353193532035321353223532335324353253532635327353283532935330353313533235333353343533535336353373533835339353403534135342353433534435345353463534735348353493535035351353523535335354353553535635357353583535935360353613536235363353643536535366353673536835369353703537135372353733537435375353763537735378353793538035381353823538335384353853538635387353883538935390353913539235393353943539535396353973539835399354003540135402354033540435405354063540735408354093541035411354123541335414354153541635417354183541935420354213542235423354243542535426354273542835429354303543135432354333543435435354363543735438354393544035441354423544335444354453544635447354483544935450354513545235453354543545535456354573545835459354603546135462354633546435465354663546735468354693547035471354723547335474354753547635477354783547935480354813548235483354843548535486354873548835489354903549135492354933549435495354963549735498354993550035501355023550335504355053550635507355083550935510355113551235513355143551535516355173551835519355203552135522355233552435525355263552735528355293553035531355323553335534355353553635537355383553935540355413554235543355443554535546355473554835549355503555135552355533555435555355563555735558355593556035561355623556335564355653556635567355683556935570355713557235573355743557535576355773557835579355803558135582355833558435585355863558735588355893559035591355923559335594355953559635597355983559935600356013560235603356043560535606356073560835609356103561135612356133561435615356163561735618356193562035621356223562335624356253562635627356283562935630356313563235633356343563535636356373563835639356403564135642356433564435645356463564735648356493565035651356523565335654356553565635657356583565935660356613566235663356643566535666356673566835669356703567135672356733567435675356763567735678356793568035681356823568335684356853568635687356883568935690356913569235693356943569535696356973569835699357003570135702357033570435705357063570735708357093571035711357123571335714357153571635717357183571935720357213572235723357243572535726357273572835729357303573135732357333573435735357363573735738357393574035741357423574335744357453574635747357483574935750357513575235753357543575535756357573575835759357603576135762357633576435765357663576735768357693577035771357723577335774357753577635777357783577935780357813578235783357843578535786357873578835789357903579135792357933579435795357963579735798357993580035801358023580335804358053580635807358083580935810358113581235813358143581535816358173581835819358203582135822358233582435825358263582735828358293583035831358323583335834358353583635837358383583935840358413584235843358443584535846358473584835849358503585135852358533585435855358563585735858358593586035861358623586335864358653586635867358683586935870358713587235873358743587535876358773587835879358803588135882358833588435885358863588735888358893589035891358923589335894358953589635897358983589935900359013590235903359043590535906359073590835909359103591135912359133591435915359163591735918359193592035921359223592335924359253592635927359283592935930359313593235933359343593535936359373593835939359403594135942359433594435945359463594735948359493595035951359523595335954359553595635957359583595935960359613596235963359643596535966359673596835969359703597135972359733597435975359763597735978359793598035981359823598335984359853598635987359883598935990359913599235993359943599535996359973599835999360003600136002360033600436005360063600736008360093601036011360123601336014360153601636017360183601936020360213602236023360243602536026360273602836029360303603136032360333603436035360363603736038360393604036041360423604336044360453604636047360483604936050360513605236053360543605536056360573605836059360603606136062360633606436065360663606736068360693607036071360723607336074360753607636077360783607936080360813608236083360843608536086360873608836089360903609136092360933609436095360963609736098360993610036101361023610336104361053610636107361083610936110361113611236113361143611536116361173611836119361203612136122361233612436125361263612736128361293613036131361323613336134361353613636137361383613936140361413614236143361443614536146361473614836149361503615136152361533615436155361563615736158361593616036161361623616336164361653616636167361683616936170361713617236173361743617536176361773617836179361803618136182361833618436185361863618736188361893619036191361923619336194361953619636197361983619936200362013620236203362043620536206362073620836209362103621136212362133621436215362163621736218362193622036221362223622336224362253622636227362283622936230362313623236233362343623536236362373623836239362403624136242362433624436245362463624736248362493625036251362523625336254362553625636257362583625936260362613626236263362643626536266362673626836269362703627136272362733627436275362763627736278362793628036281362823628336284362853628636287362883628936290362913629236293362943629536296362973629836299363003630136302363033630436305363063630736308363093631036311363123631336314363153631636317363183631936320363213632236323363243632536326363273632836329363303633136332363333633436335363363633736338363393634036341363423634336344363453634636347363483634936350363513635236353363543635536356363573635836359363603636136362363633636436365363663636736368363693637036371363723637336374363753637636377363783637936380363813638236383363843638536386363873638836389363903639136392363933639436395363963639736398363993640036401364023640336404364053640636407364083640936410364113641236413364143641536416364173641836419364203642136422364233642436425364263642736428364293643036431364323643336434364353643636437364383643936440364413644236443364443644536446364473644836449364503645136452364533645436455364563645736458364593646036461364623646336464364653646636467364683646936470364713647236473364743647536476364773647836479364803648136482364833648436485364863648736488364893649036491364923649336494364953649636497364983649936500365013650236503365043650536506365073650836509365103651136512365133651436515365163651736518365193652036521365223652336524365253652636527365283652936530365313653236533365343653536536365373653836539365403654136542365433654436545365463654736548365493655036551365523655336554365553655636557365583655936560365613656236563365643656536566365673656836569365703657136572365733657436575365763657736578365793658036581365823658336584365853658636587365883658936590365913659236593365943659536596365973659836599366003660136602366033660436605366063660736608366093661036611366123661336614366153661636617366183661936620366213662236623366243662536626366273662836629366303663136632366333663436635366363663736638366393664036641366423664336644366453664636647366483664936650366513665236653366543665536656366573665836659366603666136662366633666436665366663666736668366693667036671366723667336674366753667636677366783667936680366813668236683366843668536686366873668836689366903669136692366933669436695366963669736698366993670036701367023670336704367053670636707367083670936710367113671236713367143671536716367173671836719367203672136722367233672436725367263672736728367293673036731367323673336734367353673636737367383673936740367413674236743367443674536746367473674836749367503675136752367533675436755367563675736758367593676036761367623676336764367653676636767367683676936770367713677236773367743677536776367773677836779367803678136782367833678436785367863678736788367893679036791367923679336794367953679636797367983679936800368013680236803368043680536806368073680836809368103681136812368133681436815368163681736818368193682036821368223682336824368253682636827368283682936830368313683236833368343683536836368373683836839368403684136842368433684436845368463684736848368493685036851368523685336854368553685636857368583685936860368613686236863368643686536866368673686836869368703687136872368733687436875368763687736878368793688036881368823688336884368853688636887368883688936890368913689236893368943689536896368973689836899369003690136902369033690436905369063690736908369093691036911369123691336914369153691636917369183691936920369213692236923369243692536926369273692836929369303693136932369333693436935369363693736938369393694036941369423694336944369453694636947369483694936950369513695236953369543695536956369573695836959369603696136962369633696436965369663696736968369693697036971369723697336974369753697636977369783697936980369813698236983369843698536986369873698836989369903699136992369933699436995369963699736998369993700037001370023700337004370053700637007370083700937010370113701237013370143701537016370173701837019370203702137022370233702437025370263702737028370293703037031370323703337034370353703637037370383703937040370413704237043370443704537046370473704837049370503705137052370533705437055370563705737058370593706037061370623706337064370653706637067370683706937070370713707237073370743707537076370773707837079370803708137082370833708437085370863708737088370893709037091370923709337094370953709637097370983709937100371013710237103371043710537106371073710837109371103711137112371133711437115371163711737118371193712037121371223712337124371253712637127371283712937130371313713237133371343713537136371373713837139371403714137142371433714437145371463714737148371493715037151371523715337154371553715637157371583715937160371613716237163371643716537166371673716837169371703717137172371733717437175371763717737178371793718037181371823718337184371853718637187371883718937190371913719237193371943719537196371973719837199372003720137202372033720437205372063720737208372093721037211372123721337214372153721637217372183721937220372213722237223372243722537226372273722837229372303723137232372333723437235372363723737238372393724037241372423724337244372453724637247372483724937250372513725237253372543725537256372573725837259372603726137262372633726437265372663726737268372693727037271372723727337274372753727637277372783727937280372813728237283372843728537286372873728837289372903729137292372933729437295372963729737298372993730037301373023730337304373053730637307373083730937310373113731237313373143731537316373173731837319373203732137322373233732437325373263732737328373293733037331373323733337334373353733637337373383733937340373413734237343373443734537346373473734837349373503735137352373533735437355373563735737358373593736037361373623736337364373653736637367373683736937370373713737237373373743737537376373773737837379373803738137382373833738437385373863738737388373893739037391373923739337394373953739637397373983739937400374013740237403374043740537406374073740837409374103741137412374133741437415374163741737418374193742037421374223742337424374253742637427374283742937430374313743237433374343743537436374373743837439374403744137442374433744437445374463744737448374493745037451374523745337454374553745637457374583745937460374613746237463374643746537466374673746837469374703747137472374733747437475374763747737478374793748037481374823748337484374853748637487374883748937490374913749237493374943749537496374973749837499375003750137502375033750437505375063750737508375093751037511375123751337514375153751637517375183751937520375213752237523375243752537526375273752837529375303753137532375333753437535375363753737538375393754037541375423754337544375453754637547375483754937550375513755237553375543755537556375573755837559375603756137562375633756437565375663756737568375693757037571375723757337574375753757637577375783757937580375813758237583375843758537586375873758837589375903759137592375933759437595375963759737598375993760037601376023760337604376053760637607376083760937610376113761237613376143761537616376173761837619376203762137622376233762437625376263762737628376293763037631376323763337634376353763637637376383763937640376413764237643376443764537646376473764837649376503765137652376533765437655376563765737658376593766037661376623766337664376653766637667376683766937670376713767237673376743767537676376773767837679376803768137682376833768437685376863768737688376893769037691376923769337694376953769637697376983769937700377013770237703377043770537706377073770837709377103771137712377133771437715377163771737718377193772037721377223772337724377253772637727377283772937730377313773237733377343773537736377373773837739377403774137742377433774437745377463774737748377493775037751377523775337754377553775637757377583775937760377613776237763377643776537766377673776837769377703777137772377733777437775377763777737778377793778037781377823778337784377853778637787377883778937790377913779237793377943779537796377973779837799378003780137802378033780437805378063780737808378093781037811378123781337814378153781637817378183781937820378213782237823378243782537826378273782837829378303783137832378333783437835378363783737838378393784037841378423784337844378453784637847378483784937850378513785237853378543785537856378573785837859378603786137862378633786437865378663786737868378693787037871378723787337874378753787637877378783787937880378813788237883378843788537886378873788837889378903789137892378933789437895378963789737898378993790037901379023790337904379053790637907379083790937910379113791237913379143791537916379173791837919379203792137922379233792437925379263792737928379293793037931379323793337934379353793637937379383793937940379413794237943379443794537946379473794837949379503795137952379533795437955379563795737958379593796037961379623796337964379653796637967379683796937970379713797237973379743797537976379773797837979379803798137982379833798437985379863798737988379893799037991379923799337994379953799637997379983799938000380013800238003380043800538006380073800838009380103801138012380133801438015380163801738018380193802038021380223802338024380253802638027380283802938030380313803238033380343803538036380373803838039380403804138042380433804438045380463804738048380493805038051380523805338054380553805638057380583805938060380613806238063380643806538066380673806838069380703807138072380733807438075380763807738078380793808038081380823808338084380853808638087380883808938090380913809238093380943809538096380973809838099381003810138102381033810438105381063810738108381093811038111381123811338114381153811638117381183811938120381213812238123381243812538126381273812838129381303813138132381333813438135381363813738138381393814038141381423814338144381453814638147381483814938150381513815238153381543815538156381573815838159381603816138162381633816438165381663816738168381693817038171381723817338174381753817638177381783817938180381813818238183381843818538186381873818838189381903819138192381933819438195381963819738198381993820038201382023820338204382053820638207382083820938210382113821238213382143821538216382173821838219382203822138222382233822438225382263822738228382293823038231382323823338234382353823638237382383823938240382413824238243382443824538246382473824838249382503825138252382533825438255382563825738258382593826038261382623826338264382653826638267382683826938270382713827238273382743827538276382773827838279382803828138282382833828438285382863828738288382893829038291382923829338294382953829638297382983829938300383013830238303383043830538306383073830838309383103831138312383133831438315383163831738318383193832038321383223832338324383253832638327383283832938330383313833238333383343833538336383373833838339383403834138342383433834438345383463834738348383493835038351383523835338354383553835638357383583835938360383613836238363383643836538366383673836838369383703837138372383733837438375383763837738378383793838038381383823838338384383853838638387383883838938390383913839238393383943839538396383973839838399384003840138402384033840438405384063840738408384093841038411384123841338414384153841638417384183841938420384213842238423384243842538426384273842838429384303843138432384333843438435384363843738438384393844038441384423844338444384453844638447384483844938450384513845238453384543845538456384573845838459384603846138462384633846438465384663846738468384693847038471384723847338474384753847638477384783847938480384813848238483384843848538486384873848838489384903849138492384933849438495384963849738498384993850038501385023850338504385053850638507385083850938510385113851238513385143851538516385173851838519385203852138522385233852438525385263852738528385293853038531385323853338534385353853638537385383853938540385413854238543385443854538546385473854838549385503855138552385533855438555385563855738558385593856038561385623856338564385653856638567385683856938570385713857238573385743857538576385773857838579385803858138582385833858438585385863858738588385893859038591385923859338594385953859638597385983859938600386013860238603386043860538606386073860838609386103861138612386133861438615386163861738618386193862038621386223862338624386253862638627386283862938630386313863238633386343863538636386373863838639386403864138642386433864438645386463864738648386493865038651386523865338654386553865638657386583865938660386613866238663386643866538666386673866838669386703867138672386733867438675386763867738678386793868038681386823868338684386853868638687386883868938690386913869238693386943869538696386973869838699387003870138702387033870438705387063870738708387093871038711387123871338714387153871638717387183871938720387213872238723387243872538726387273872838729387303873138732387333873438735387363873738738387393874038741387423874338744387453874638747387483874938750387513875238753387543875538756387573875838759387603876138762387633876438765387663876738768387693877038771387723877338774387753877638777387783877938780387813878238783387843878538786387873878838789387903879138792387933879438795387963879738798387993880038801388023880338804388053880638807388083880938810388113881238813388143881538816388173881838819388203882138822388233882438825388263882738828388293883038831388323883338834388353883638837388383883938840388413884238843388443884538846388473884838849388503885138852388533885438855388563885738858388593886038861388623886338864388653886638867388683886938870388713887238873388743887538876388773887838879388803888138882388833888438885388863888738888388893889038891388923889338894388953889638897388983889938900389013890238903389043890538906389073890838909389103891138912389133891438915389163891738918389193892038921389223892338924389253892638927389283892938930389313893238933389343893538936389373893838939389403894138942389433894438945389463894738948389493895038951389523895338954389553895638957389583895938960389613896238963389643896538966389673896838969389703897138972389733897438975389763897738978389793898038981389823898338984389853898638987389883898938990389913899238993389943899538996389973899838999390003900139002390033900439005390063900739008390093901039011390123901339014390153901639017390183901939020390213902239023390243902539026390273902839029390303903139032390333903439035390363903739038390393904039041390423904339044390453904639047390483904939050390513905239053390543905539056390573905839059390603906139062390633906439065390663906739068390693907039071390723907339074390753907639077390783907939080390813908239083390843908539086390873908839089390903909139092390933909439095390963909739098390993910039101391023910339104391053910639107391083910939110391113911239113391143911539116391173911839119391203912139122391233912439125391263912739128391293913039131391323913339134391353913639137391383913939140391413914239143391443914539146391473914839149391503915139152391533915439155391563915739158391593916039161391623916339164391653916639167391683916939170391713917239173391743917539176391773917839179391803918139182391833918439185391863918739188391893919039191391923919339194391953919639197391983919939200392013920239203392043920539206392073920839209392103921139212392133921439215392163921739218392193922039221392223922339224392253922639227392283922939230392313923239233392343923539236392373923839239392403924139242392433924439245392463924739248392493925039251392523925339254392553925639257392583925939260392613926239263392643926539266392673926839269392703927139272392733927439275392763927739278392793928039281392823928339284392853928639287392883928939290392913929239293392943929539296392973929839299393003930139302393033930439305393063930739308393093931039311393123931339314393153931639317393183931939320393213932239323393243932539326393273932839329393303933139332393333933439335393363933739338393393934039341393423934339344393453934639347393483934939350393513935239353393543935539356393573935839359393603936139362393633936439365393663936739368393693937039371393723937339374393753937639377393783937939380393813938239383393843938539386393873938839389393903939139392393933939439395393963939739398393993940039401394023940339404394053940639407394083940939410394113941239413394143941539416394173941839419394203942139422394233942439425394263942739428394293943039431394323943339434394353943639437394383943939440394413944239443394443944539446394473944839449394503945139452394533945439455394563945739458394593946039461394623946339464394653946639467394683946939470394713947239473394743947539476394773947839479394803948139482394833948439485394863948739488394893949039491394923949339494394953949639497394983949939500395013950239503395043950539506395073950839509395103951139512395133951439515395163951739518395193952039521395223952339524395253952639527395283952939530395313953239533395343953539536395373953839539395403954139542395433954439545395463954739548395493955039551395523955339554395553955639557395583955939560395613956239563395643956539566395673956839569395703957139572395733957439575395763957739578395793958039581395823958339584395853958639587395883958939590395913959239593395943959539596395973959839599396003960139602396033960439605396063960739608396093961039611396123961339614396153961639617396183961939620396213962239623396243962539626396273962839629396303963139632396333963439635396363963739638396393964039641396423964339644396453964639647396483964939650396513965239653396543965539656396573965839659396603966139662396633966439665396663966739668396693967039671396723967339674396753967639677396783967939680396813968239683396843968539686396873968839689396903969139692396933969439695396963969739698396993970039701397023970339704397053970639707397083970939710397113971239713397143971539716397173971839719397203972139722397233972439725397263972739728397293973039731397323973339734397353973639737397383973939740397413974239743397443974539746397473974839749397503975139752397533975439755397563975739758397593976039761397623976339764397653976639767397683976939770397713977239773397743977539776397773977839779397803978139782397833978439785397863978739788397893979039791397923979339794397953979639797397983979939800398013980239803398043980539806398073980839809398103981139812398133981439815398163981739818398193982039821398223982339824398253982639827398283982939830398313983239833398343983539836398373983839839398403984139842398433984439845398463984739848398493985039851398523985339854398553985639857398583985939860398613986239863398643986539866398673986839869398703987139872398733987439875398763987739878398793988039881398823988339884398853988639887398883988939890398913989239893398943989539896398973989839899399003990139902399033990439905399063990739908399093991039911399123991339914399153991639917399183991939920399213992239923399243992539926399273992839929399303993139932399333993439935399363993739938399393994039941399423994339944399453994639947399483994939950399513995239953399543995539956399573995839959399603996139962399633996439965399663996739968399693997039971399723997339974399753997639977399783997939980399813998239983399843998539986399873998839989399903999139992399933999439995399963999739998399994000040001400024000340004400054000640007400084000940010400114001240013400144001540016400174001840019400204002140022400234002440025400264002740028400294003040031400324003340034400354003640037400384003940040400414004240043400444004540046400474004840049400504005140052400534005440055400564005740058400594006040061400624006340064400654006640067400684006940070400714007240073400744007540076400774007840079400804008140082400834008440085400864008740088400894009040091400924009340094400954009640097400984009940100401014010240103401044010540106401074010840109401104011140112401134011440115401164011740118401194012040121401224012340124401254012640127401284012940130401314013240133401344013540136401374013840139401404014140142401434014440145401464014740148401494015040151401524015340154401554015640157401584015940160401614016240163401644016540166401674016840169401704017140172401734017440175401764017740178401794018040181401824018340184401854018640187401884018940190401914019240193401944019540196401974019840199402004020140202402034020440205402064020740208402094021040211402124021340214402154021640217402184021940220402214022240223402244022540226402274022840229402304023140232402334023440235402364023740238402394024040241402424024340244402454024640247402484024940250402514025240253402544025540256402574025840259402604026140262402634026440265402664026740268402694027040271402724027340274402754027640277402784027940280402814028240283402844028540286402874028840289402904029140292402934029440295402964029740298402994030040301403024030340304403054030640307403084030940310403114031240313403144031540316403174031840319403204032140322403234032440325403264032740328403294033040331403324033340334403354033640337403384033940340403414034240343403444034540346403474034840349403504035140352403534035440355403564035740358403594036040361403624036340364403654036640367403684036940370403714037240373403744037540376403774037840379403804038140382403834038440385403864038740388403894039040391403924039340394403954039640397403984039940400404014040240403404044040540406404074040840409404104041140412404134041440415404164041740418404194042040421404224042340424404254042640427404284042940430404314043240433404344043540436404374043840439404404044140442404434044440445404464044740448404494045040451404524045340454404554045640457404584045940460404614046240463404644046540466404674046840469404704047140472404734047440475404764047740478404794048040481404824048340484404854048640487404884048940490404914049240493404944049540496404974049840499405004050140502405034050440505405064050740508405094051040511405124051340514405154051640517405184051940520405214052240523405244052540526405274052840529405304053140532405334053440535405364053740538405394054040541405424054340544405454054640547405484054940550405514055240553405544055540556405574055840559405604056140562405634056440565405664056740568405694057040571405724057340574405754057640577405784057940580405814058240583405844058540586405874058840589405904059140592405934059440595405964059740598405994060040601406024060340604406054060640607406084060940610406114061240613406144061540616406174061840619406204062140622406234062440625406264062740628406294063040631406324063340634406354063640637406384063940640406414064240643406444064540646406474064840649406504065140652406534065440655406564065740658406594066040661406624066340664406654066640667406684066940670406714067240673406744067540676406774067840679406804068140682406834068440685406864068740688406894069040691406924069340694406954069640697406984069940700407014070240703407044070540706407074070840709407104071140712407134071440715407164071740718407194072040721407224072340724407254072640727407284072940730407314073240733407344073540736407374073840739407404074140742407434074440745407464074740748407494075040751407524075340754407554075640757407584075940760407614076240763407644076540766407674076840769407704077140772407734077440775407764077740778407794078040781407824078340784407854078640787407884078940790407914079240793407944079540796407974079840799408004080140802408034080440805408064080740808408094081040811408124081340814408154081640817408184081940820408214082240823408244082540826408274082840829408304083140832408334083440835408364083740838408394084040841408424084340844408454084640847408484084940850408514085240853408544085540856408574085840859408604086140862408634086440865408664086740868408694087040871408724087340874408754087640877408784087940880408814088240883408844088540886408874088840889408904089140892408934089440895408964089740898408994090040901409024090340904409054090640907409084090940910409114091240913409144091540916409174091840919409204092140922409234092440925409264092740928409294093040931409324093340934409354093640937409384093940940409414094240943409444094540946409474094840949409504095140952409534095440955409564095740958409594096040961409624096340964409654096640967409684096940970409714097240973409744097540976409774097840979409804098140982409834098440985409864098740988409894099040991409924099340994409954099640997409984099941000410014100241003410044100541006410074100841009410104101141012410134101441015410164101741018410194102041021410224102341024410254102641027410284102941030410314103241033410344103541036410374103841039410404104141042410434104441045410464104741048410494105041051410524105341054410554105641057410584105941060410614106241063410644106541066410674106841069410704107141072410734107441075410764107741078410794108041081410824108341084410854108641087410884108941090410914109241093410944109541096410974109841099411004110141102411034110441105411064110741108411094111041111411124111341114411154111641117411184111941120411214112241123411244112541126411274112841129411304113141132411334113441135411364113741138411394114041141411424114341144411454114641147411484114941150411514115241153411544115541156411574115841159411604116141162411634116441165411664116741168411694117041171411724117341174411754117641177411784117941180411814118241183411844118541186411874118841189411904119141192411934119441195411964119741198411994120041201412024120341204412054120641207412084120941210412114121241213412144121541216412174121841219412204122141222412234122441225412264122741228412294123041231412324123341234412354123641237412384123941240412414124241243412444124541246412474124841249412504125141252412534125441255412564125741258412594126041261412624126341264412654126641267412684126941270412714127241273412744127541276412774127841279412804128141282412834128441285412864128741288412894129041291412924129341294412954129641297412984129941300413014130241303413044130541306413074130841309413104131141312413134131441315413164131741318413194132041321413224132341324413254132641327413284132941330413314133241333413344133541336413374133841339413404134141342413434134441345413464134741348413494135041351413524135341354413554135641357413584135941360413614136241363413644136541366413674136841369413704137141372413734137441375413764137741378413794138041381413824138341384413854138641387413884138941390413914139241393413944139541396413974139841399414004140141402414034140441405414064140741408414094141041411414124141341414414154141641417414184141941420414214142241423414244142541426414274142841429414304143141432414334143441435414364143741438414394144041441414424144341444414454144641447414484144941450414514145241453414544145541456414574145841459414604146141462414634146441465414664146741468414694147041471414724147341474414754147641477414784147941480414814148241483414844148541486414874148841489414904149141492414934149441495414964149741498414994150041501415024150341504415054150641507415084150941510415114151241513415144151541516415174151841519415204152141522415234152441525415264152741528415294153041531415324153341534415354153641537415384153941540415414154241543415444154541546415474154841549415504155141552415534155441555415564155741558415594156041561415624156341564415654156641567415684156941570415714157241573415744157541576415774157841579415804158141582415834158441585415864158741588415894159041591415924159341594415954159641597415984159941600416014160241603416044160541606416074160841609416104161141612416134161441615416164161741618416194162041621416224162341624416254162641627416284162941630416314163241633416344163541636416374163841639416404164141642416434164441645416464164741648416494165041651416524165341654416554165641657416584165941660416614166241663416644166541666416674166841669416704167141672416734167441675416764167741678416794168041681416824168341684416854168641687416884168941690416914169241693416944169541696416974169841699417004170141702417034170441705417064170741708417094171041711417124171341714417154171641717417184171941720417214172241723417244172541726417274172841729417304173141732417334173441735417364173741738417394174041741417424174341744417454174641747417484174941750417514175241753417544175541756417574175841759417604176141762417634176441765417664176741768417694177041771417724177341774417754177641777417784177941780417814178241783417844178541786417874178841789417904179141792417934179441795417964179741798417994180041801418024180341804418054180641807418084180941810418114181241813418144181541816418174181841819418204182141822418234182441825418264182741828418294183041831418324183341834418354183641837418384183941840418414184241843418444184541846418474184841849418504185141852418534185441855418564185741858418594186041861418624186341864418654186641867418684186941870418714187241873418744187541876418774187841879418804188141882418834188441885418864188741888418894189041891418924189341894418954189641897418984189941900419014190241903419044190541906419074190841909419104191141912419134191441915419164191741918419194192041921419224192341924419254192641927419284192941930419314193241933419344193541936419374193841939419404194141942419434194441945419464194741948419494195041951419524195341954419554195641957419584195941960419614196241963419644196541966419674196841969419704197141972419734197441975419764197741978419794198041981419824198341984419854198641987419884198941990419914199241993419944199541996419974199841999420004200142002420034200442005420064200742008420094201042011420124201342014420154201642017420184201942020420214202242023420244202542026420274202842029420304203142032420334203442035420364203742038420394204042041420424204342044420454204642047420484204942050420514205242053420544205542056420574205842059420604206142062420634206442065420664206742068420694207042071420724207342074420754207642077420784207942080420814208242083420844208542086420874208842089420904209142092420934209442095420964209742098420994210042101421024210342104421054210642107421084210942110421114211242113421144211542116421174211842119421204212142122421234212442125421264212742128421294213042131421324213342134421354213642137421384213942140421414214242143421444214542146421474214842149421504215142152421534215442155421564215742158421594216042161421624216342164421654216642167421684216942170421714217242173421744217542176421774217842179421804218142182421834218442185421864218742188421894219042191421924219342194421954219642197421984219942200422014220242203422044220542206422074220842209422104221142212422134221442215422164221742218422194222042221422224222342224422254222642227422284222942230422314223242233422344223542236422374223842239422404224142242422434224442245422464224742248422494225042251422524225342254422554225642257422584225942260422614226242263422644226542266422674226842269422704227142272422734227442275422764227742278422794228042281422824228342284422854228642287422884228942290422914229242293422944229542296422974229842299423004230142302423034230442305423064230742308423094231042311423124231342314423154231642317423184231942320423214232242323423244232542326423274232842329423304233142332423334233442335423364233742338423394234042341423424234342344423454234642347423484234942350423514235242353423544235542356423574235842359423604236142362423634236442365423664236742368423694237042371423724237342374423754237642377423784237942380423814238242383423844238542386423874238842389423904239142392423934239442395423964239742398423994240042401424024240342404424054240642407424084240942410424114241242413424144241542416424174241842419424204242142422424234242442425424264242742428424294243042431424324243342434424354243642437424384243942440424414244242443424444244542446424474244842449424504245142452424534245442455424564245742458424594246042461424624246342464424654246642467424684246942470424714247242473424744247542476424774247842479424804248142482424834248442485424864248742488424894249042491424924249342494424954249642497424984249942500425014250242503425044250542506425074250842509425104251142512425134251442515425164251742518425194252042521425224252342524425254252642527425284252942530425314253242533425344253542536425374253842539425404254142542425434254442545425464254742548425494255042551425524255342554425554255642557425584255942560425614256242563425644256542566425674256842569425704257142572425734257442575425764257742578425794258042581425824258342584425854258642587425884258942590425914259242593425944259542596425974259842599426004260142602426034260442605426064260742608426094261042611426124261342614426154261642617426184261942620426214262242623426244262542626426274262842629426304263142632426334263442635426364263742638426394264042641426424264342644426454264642647426484264942650426514265242653426544265542656426574265842659426604266142662426634266442665426664266742668426694267042671426724267342674426754267642677426784267942680426814268242683426844268542686426874268842689426904269142692426934269442695426964269742698426994270042701427024270342704427054270642707427084270942710427114271242713427144271542716427174271842719427204272142722427234272442725427264272742728427294273042731427324273342734427354273642737427384273942740427414274242743427444274542746427474274842749427504275142752427534275442755427564275742758427594276042761427624276342764427654276642767427684276942770427714277242773427744277542776427774277842779427804278142782427834278442785427864278742788427894279042791427924279342794427954279642797427984279942800428014280242803428044280542806428074280842809428104281142812428134281442815428164281742818428194282042821428224282342824428254282642827428284282942830428314283242833428344283542836428374283842839428404284142842428434284442845428464284742848428494285042851428524285342854428554285642857428584285942860428614286242863428644286542866428674286842869428704287142872428734287442875428764287742878428794288042881428824288342884428854288642887428884288942890428914289242893428944289542896428974289842899429004290142902429034290442905429064290742908429094291042911429124291342914429154291642917429184291942920429214292242923429244292542926429274292842929429304293142932429334293442935429364293742938429394294042941429424294342944429454294642947429484294942950429514295242953429544295542956429574295842959429604296142962429634296442965429664296742968429694297042971429724297342974429754297642977429784297942980429814298242983429844298542986429874298842989429904299142992429934299442995429964299742998429994300043001430024300343004430054300643007430084300943010430114301243013430144301543016430174301843019430204302143022430234302443025430264302743028430294303043031430324303343034430354303643037430384303943040430414304243043430444304543046430474304843049430504305143052430534305443055430564305743058430594306043061430624306343064430654306643067430684306943070430714307243073430744307543076430774307843079430804308143082430834308443085430864308743088430894309043091430924309343094430954309643097430984309943100431014310243103431044310543106431074310843109431104311143112431134311443115431164311743118431194312043121431224312343124431254312643127431284312943130431314313243133431344313543136431374313843139431404314143142431434314443145431464314743148431494315043151431524315343154431554315643157431584315943160431614316243163431644316543166431674316843169431704317143172431734317443175431764317743178431794318043181431824318343184431854318643187431884318943190431914319243193431944319543196431974319843199432004320143202432034320443205432064320743208432094321043211432124321343214432154321643217432184321943220432214322243223432244322543226432274322843229432304323143232432334323443235432364323743238432394324043241432424324343244432454324643247432484324943250432514325243253432544325543256432574325843259432604326143262432634326443265432664326743268432694327043271432724327343274432754327643277432784327943280432814328243283432844328543286432874328843289432904329143292432934329443295432964329743298432994330043301433024330343304433054330643307433084330943310433114331243313433144331543316433174331843319433204332143322433234332443325433264332743328433294333043331433324333343334433354333643337433384333943340433414334243343433444334543346433474334843349433504335143352433534335443355433564335743358433594336043361433624336343364433654336643367433684336943370433714337243373433744337543376433774337843379433804338143382433834338443385433864338743388433894339043391433924339343394433954339643397433984339943400434014340243403434044340543406434074340843409434104341143412434134341443415434164341743418434194342043421434224342343424434254342643427434284342943430434314343243433434344343543436434374343843439434404344143442434434344443445434464344743448434494345043451434524345343454434554345643457434584345943460434614346243463434644346543466434674346843469434704347143472434734347443475434764347743478434794348043481434824348343484434854348643487434884348943490434914349243493434944349543496434974349843499435004350143502435034350443505435064350743508435094351043511435124351343514435154351643517435184351943520435214352243523435244352543526435274352843529435304353143532435334353443535435364353743538435394354043541435424354343544435454354643547435484354943550435514355243553435544355543556435574355843559435604356143562435634356443565435664356743568435694357043571435724357343574435754357643577435784357943580435814358243583435844358543586435874358843589435904359143592435934359443595435964359743598435994360043601436024360343604436054360643607436084360943610436114361243613436144361543616436174361843619436204362143622436234362443625436264362743628436294363043631436324363343634436354363643637436384363943640436414364243643436444364543646436474364843649436504365143652436534365443655436564365743658436594366043661436624366343664436654366643667436684366943670436714367243673436744367543676436774367843679436804368143682436834368443685436864368743688436894369043691436924369343694436954369643697436984369943700437014370243703437044370543706437074370843709437104371143712437134371443715437164371743718437194372043721437224372343724437254372643727437284372943730437314373243733437344373543736437374373843739437404374143742437434374443745437464374743748437494375043751437524375343754437554375643757437584375943760437614376243763437644376543766437674376843769437704377143772437734377443775437764377743778437794378043781437824378343784437854378643787437884378943790437914379243793437944379543796437974379843799438004380143802438034380443805438064380743808438094381043811438124381343814438154381643817438184381943820438214382243823438244382543826438274382843829438304383143832438334383443835438364383743838438394384043841438424384343844438454384643847438484384943850438514385243853438544385543856438574385843859438604386143862438634386443865438664386743868438694387043871438724387343874438754387643877438784387943880438814388243883438844388543886438874388843889438904389143892438934389443895438964389743898438994390043901439024390343904439054390643907439084390943910439114391243913439144391543916439174391843919439204392143922439234392443925439264392743928439294393043931439324393343934439354393643937439384393943940439414394243943439444394543946439474394843949439504395143952439534395443955439564395743958439594396043961439624396343964439654396643967439684396943970439714397243973439744397543976439774397843979439804398143982439834398443985439864398743988439894399043991439924399343994439954399643997439984399944000440014400244003440044400544006440074400844009440104401144012440134401444015440164401744018440194402044021440224402344024440254402644027440284402944030440314403244033440344403544036440374403844039440404404144042440434404444045440464404744048440494405044051440524405344054440554405644057440584405944060440614406244063440644406544066440674406844069440704407144072440734407444075440764407744078440794408044081440824408344084440854408644087440884408944090440914409244093440944409544096440974409844099441004410144102441034410444105441064410744108441094411044111441124411344114441154411644117441184411944120441214412244123441244412544126441274412844129441304413144132441334413444135441364413744138441394414044141441424414344144441454414644147441484414944150441514415244153441544415544156441574415844159441604416144162441634416444165441664416744168441694417044171441724417344174441754417644177441784417944180441814418244183441844418544186441874418844189441904419144192441934419444195441964419744198441994420044201442024420344204442054420644207442084420944210442114421244213442144421544216442174421844219442204422144222442234422444225442264422744228442294423044231442324423344234442354423644237442384423944240442414424244243442444424544246442474424844249442504425144252442534425444255442564425744258442594426044261442624426344264442654426644267442684426944270442714427244273442744427544276442774427844279442804428144282442834428444285442864428744288442894429044291442924429344294442954429644297442984429944300443014430244303443044430544306443074430844309443104431144312443134431444315443164431744318443194432044321443224432344324443254432644327443284432944330443314433244333443344433544336443374433844339443404434144342443434434444345443464434744348443494435044351443524435344354443554435644357443584435944360443614436244363443644436544366443674436844369443704437144372443734437444375443764437744378443794438044381443824438344384443854438644387443884438944390443914439244393443944439544396443974439844399444004440144402444034440444405444064440744408444094441044411444124441344414444154441644417444184441944420444214442244423444244442544426444274442844429444304443144432444334443444435444364443744438444394444044441444424444344444444454444644447444484444944450444514445244453444544445544456444574445844459444604446144462444634446444465444664446744468444694447044471444724447344474444754447644477444784447944480444814448244483444844448544486444874448844489444904449144492444934449444495444964449744498444994450044501445024450344504445054450644507445084450944510445114451244513445144451544516445174451844519445204452144522445234452444525445264452744528445294453044531445324453344534445354453644537445384453944540445414454244543445444454544546445474454844549445504455144552445534455444555445564455744558445594456044561445624456344564445654456644567445684456944570445714457244573445744457544576445774457844579445804458144582445834458444585445864458744588445894459044591445924459344594445954459644597445984459944600446014460244603446044460544606446074460844609446104461144612446134461444615446164461744618446194462044621446224462344624446254462644627446284462944630446314463244633446344463544636446374463844639446404464144642446434464444645446464464744648446494465044651446524465344654446554465644657446584465944660446614466244663446644466544666446674466844669446704467144672446734467444675446764467744678446794468044681446824468344684446854468644687446884468944690446914469244693446944469544696446974469844699447004470144702447034470444705447064470744708447094471044711447124471344714447154471644717447184471944720447214472244723447244472544726447274472844729447304473144732447334473444735447364473744738447394474044741447424474344744447454474644747447484474944750447514475244753447544475544756447574475844759447604476144762447634476444765447664476744768447694477044771447724477344774447754477644777447784477944780447814478244783447844478544786447874478844789447904479144792447934479444795447964479744798447994480044801448024480344804448054480644807448084480944810448114481244813448144481544816448174481844819448204482144822448234482444825448264482744828448294483044831448324483344834448354483644837448384483944840448414484244843448444484544846448474484844849448504485144852448534485444855448564485744858448594486044861448624486344864448654486644867448684486944870448714487244873448744487544876448774487844879448804488144882448834488444885448864488744888448894489044891448924489344894448954489644897448984489944900449014490244903449044490544906449074490844909449104491144912449134491444915449164491744918449194492044921449224492344924449254492644927449284492944930449314493244933449344493544936449374493844939449404494144942449434494444945449464494744948449494495044951449524495344954449554495644957449584495944960449614496244963449644496544966449674496844969449704497144972449734497444975449764497744978449794498044981449824498344984449854498644987449884498944990449914499244993449944499544996449974499844999450004500145002450034500445005450064500745008450094501045011450124501345014450154501645017450184501945020450214502245023450244502545026450274502845029450304503145032450334503445035450364503745038450394504045041450424504345044450454504645047450484504945050450514505245053450544505545056450574505845059450604506145062450634506445065450664506745068450694507045071450724507345074450754507645077450784507945080450814508245083450844508545086450874508845089450904509145092450934509445095450964509745098450994510045101451024510345104451054510645107451084510945110451114511245113451144511545116451174511845119451204512145122451234512445125451264512745128451294513045131451324513345134451354513645137451384513945140451414514245143451444514545146451474514845149451504515145152451534515445155451564515745158451594516045161451624516345164451654516645167451684516945170451714517245173451744517545176451774517845179451804518145182451834518445185451864518745188451894519045191451924519345194451954519645197451984519945200452014520245203452044520545206452074520845209452104521145212452134521445215452164521745218452194522045221452224522345224452254522645227452284522945230452314523245233452344523545236452374523845239452404524145242452434524445245452464524745248452494525045251452524525345254452554525645257452584525945260452614526245263452644526545266452674526845269452704527145272452734527445275452764527745278452794528045281452824528345284452854528645287452884528945290452914529245293452944529545296452974529845299453004530145302453034530445305453064530745308453094531045311453124531345314453154531645317453184531945320453214532245323453244532545326453274532845329453304533145332453334533445335453364533745338453394534045341453424534345344453454534645347453484534945350453514535245353453544535545356453574535845359453604536145362453634536445365453664536745368453694537045371453724537345374453754537645377453784537945380453814538245383453844538545386453874538845389453904539145392453934539445395453964539745398453994540045401454024540345404454054540645407454084540945410454114541245413454144541545416454174541845419454204542145422454234542445425454264542745428454294543045431454324543345434454354543645437454384543945440454414544245443454444544545446454474544845449454504545145452454534545445455454564545745458454594546045461454624546345464454654546645467454684546945470454714547245473454744547545476454774547845479454804548145482454834548445485454864548745488454894549045491454924549345494454954549645497454984549945500455014550245503455044550545506455074550845509455104551145512455134551445515455164551745518455194552045521455224552345524455254552645527455284552945530455314553245533455344553545536455374553845539455404554145542455434554445545455464554745548455494555045551455524555345554455554555645557455584555945560455614556245563455644556545566455674556845569455704557145572455734557445575455764557745578455794558045581455824558345584455854558645587455884558945590455914559245593455944559545596455974559845599456004560145602456034560445605456064560745608456094561045611456124561345614456154561645617456184561945620456214562245623456244562545626456274562845629456304563145632456334563445635456364563745638456394564045641456424564345644456454564645647456484564945650456514565245653456544565545656456574565845659456604566145662456634566445665456664566745668456694567045671456724567345674456754567645677456784567945680456814568245683456844568545686456874568845689456904569145692456934569445695456964569745698456994570045701457024570345704457054570645707457084570945710457114571245713457144571545716457174571845719457204572145722457234572445725457264572745728457294573045731457324573345734457354573645737457384573945740457414574245743457444574545746457474574845749457504575145752457534575445755457564575745758457594576045761457624576345764457654576645767457684576945770457714577245773457744577545776457774577845779457804578145782457834578445785457864578745788457894579045791457924579345794457954579645797457984579945800458014580245803458044580545806458074580845809458104581145812458134581445815458164581745818458194582045821458224582345824458254582645827458284582945830458314583245833458344583545836458374583845839458404584145842458434584445845458464584745848458494585045851458524585345854458554585645857458584585945860458614586245863458644586545866458674586845869458704587145872458734587445875458764587745878458794588045881458824588345884458854588645887458884588945890458914589245893458944589545896458974589845899459004590145902459034590445905459064590745908459094591045911459124591345914459154591645917459184591945920459214592245923459244592545926459274592845929459304593145932459334593445935459364593745938459394594045941459424594345944459454594645947459484594945950459514595245953459544595545956459574595845959459604596145962459634596445965459664596745968459694597045971459724597345974459754597645977459784597945980459814598245983459844598545986459874598845989459904599145992459934599445995459964599745998459994600046001460024600346004460054600646007460084600946010460114601246013460144601546016460174601846019460204602146022460234602446025460264602746028460294603046031460324603346034460354603646037460384603946040460414604246043460444604546046460474604846049460504605146052460534605446055460564605746058460594606046061460624606346064460654606646067460684606946070460714607246073460744607546076460774607846079460804608146082460834608446085460864608746088460894609046091460924609346094460954609646097460984609946100461014610246103461044610546106461074610846109461104611146112461134611446115461164611746118461194612046121461224612346124461254612646127461284612946130461314613246133461344613546136461374613846139461404614146142461434614446145461464614746148461494615046151461524615346154461554615646157461584615946160461614616246163461644616546166461674616846169461704617146172461734617446175461764617746178461794618046181461824618346184461854618646187461884618946190461914619246193461944619546196461974619846199462004620146202462034620446205462064620746208462094621046211462124621346214462154621646217462184621946220462214622246223462244622546226462274622846229462304623146232462334623446235462364623746238462394624046241462424624346244462454624646247462484624946250462514625246253462544625546256462574625846259462604626146262462634626446265462664626746268462694627046271462724627346274462754627646277462784627946280462814628246283462844628546286462874628846289462904629146292462934629446295462964629746298462994630046301463024630346304463054630646307463084630946310463114631246313463144631546316463174631846319463204632146322463234632446325463264632746328463294633046331463324633346334463354633646337463384633946340463414634246343463444634546346463474634846349463504635146352463534635446355463564635746358463594636046361463624636346364463654636646367463684636946370463714637246373463744637546376463774637846379463804638146382463834638446385463864638746388463894639046391463924639346394463954639646397463984639946400464014640246403464044640546406464074640846409464104641146412464134641446415464164641746418464194642046421464224642346424464254642646427464284642946430464314643246433464344643546436464374643846439464404644146442464434644446445464464644746448464494645046451464524645346454464554645646457464584645946460464614646246463464644646546466464674646846469464704647146472464734647446475464764647746478464794648046481464824648346484464854648646487464884648946490464914649246493464944649546496464974649846499465004650146502465034650446505465064650746508465094651046511465124651346514465154651646517465184651946520465214652246523465244652546526465274652846529465304653146532465334653446535465364653746538465394654046541465424654346544465454654646547465484654946550465514655246553465544655546556465574655846559465604656146562465634656446565465664656746568465694657046571465724657346574465754657646577465784657946580465814658246583465844658546586465874658846589465904659146592465934659446595465964659746598465994660046601466024660346604466054660646607466084660946610466114661246613466144661546616466174661846619466204662146622466234662446625466264662746628466294663046631466324663346634466354663646637466384663946640466414664246643466444664546646466474664846649466504665146652466534665446655466564665746658466594666046661466624666346664466654666646667466684666946670466714667246673466744667546676466774667846679466804668146682466834668446685466864668746688466894669046691466924669346694466954669646697466984669946700467014670246703467044670546706467074670846709467104671146712467134671446715467164671746718467194672046721467224672346724467254672646727467284672946730467314673246733467344673546736467374673846739467404674146742467434674446745467464674746748467494675046751467524675346754467554675646757467584675946760467614676246763467644676546766467674676846769467704677146772467734677446775467764677746778467794678046781467824678346784467854678646787467884678946790467914679246793467944679546796467974679846799468004680146802468034680446805468064680746808468094681046811468124681346814468154681646817468184681946820468214682246823468244682546826468274682846829468304683146832468334683446835468364683746838468394684046841468424684346844468454684646847468484684946850468514685246853468544685546856468574685846859468604686146862468634686446865468664686746868468694687046871468724687346874468754687646877468784687946880468814688246883468844688546886468874688846889468904689146892468934689446895468964689746898468994690046901469024690346904469054690646907469084690946910469114691246913469144691546916469174691846919469204692146922469234692446925469264692746928469294693046931469324693346934469354693646937469384693946940469414694246943469444694546946469474694846949469504695146952469534695446955469564695746958469594696046961469624696346964469654696646967469684696946970469714697246973469744697546976469774697846979469804698146982469834698446985469864698746988469894699046991469924699346994469954699646997469984699947000470014700247003470044700547006470074700847009470104701147012470134701447015470164701747018470194702047021470224702347024470254702647027470284702947030470314703247033470344703547036470374703847039470404704147042470434704447045470464704747048470494705047051470524705347054470554705647057470584705947060470614706247063470644706547066470674706847069470704707147072470734707447075470764707747078470794708047081470824708347084470854708647087470884708947090470914709247093470944709547096470974709847099471004710147102471034710447105471064710747108471094711047111471124711347114471154711647117471184711947120471214712247123471244712547126471274712847129471304713147132471334713447135471364713747138471394714047141471424714347144471454714647147471484714947150471514715247153471544715547156471574715847159471604716147162471634716447165471664716747168471694717047171471724717347174471754717647177471784717947180471814718247183471844718547186471874718847189471904719147192471934719447195471964719747198471994720047201472024720347204472054720647207472084720947210472114721247213472144721547216472174721847219472204722147222472234722447225472264722747228472294723047231472324723347234472354723647237472384723947240472414724247243472444724547246472474724847249472504725147252472534725447255472564725747258472594726047261472624726347264472654726647267472684726947270472714727247273472744727547276472774727847279472804728147282472834728447285472864728747288472894729047291472924729347294472954729647297472984729947300473014730247303473044730547306473074730847309473104731147312473134731447315473164731747318473194732047321473224732347324473254732647327473284732947330473314733247333473344733547336473374733847339473404734147342473434734447345473464734747348473494735047351473524735347354473554735647357473584735947360473614736247363473644736547366473674736847369473704737147372473734737447375473764737747378473794738047381473824738347384473854738647387473884738947390473914739247393473944739547396473974739847399474004740147402474034740447405474064740747408474094741047411474124741347414474154741647417474184741947420474214742247423474244742547426474274742847429474304743147432474334743447435474364743747438474394744047441474424744347444474454744647447474484744947450474514745247453474544745547456474574745847459474604746147462474634746447465474664746747468474694747047471474724747347474474754747647477474784747947480474814748247483474844748547486474874748847489474904749147492474934749447495474964749747498474994750047501475024750347504475054750647507475084750947510475114751247513475144751547516475174751847519475204752147522475234752447525475264752747528475294753047531475324753347534475354753647537475384753947540475414754247543475444754547546475474754847549475504755147552475534755447555475564755747558475594756047561475624756347564475654756647567475684756947570475714757247573475744757547576475774757847579475804758147582475834758447585475864758747588475894759047591475924759347594475954759647597475984759947600476014760247603476044760547606476074760847609476104761147612476134761447615476164761747618476194762047621476224762347624476254762647627476284762947630476314763247633476344763547636476374763847639476404764147642476434764447645476464764747648476494765047651476524765347654476554765647657476584765947660476614766247663476644766547666476674766847669476704767147672476734767447675476764767747678476794768047681476824768347684476854768647687476884768947690476914769247693476944769547696476974769847699477004770147702477034770447705477064770747708477094771047711477124771347714477154771647717477184771947720477214772247723477244772547726477274772847729477304773147732477334773447735477364773747738477394774047741477424774347744477454774647747477484774947750477514775247753477544775547756477574775847759477604776147762477634776447765477664776747768477694777047771477724777347774477754777647777477784777947780477814778247783477844778547786477874778847789477904779147792477934779447795477964779747798477994780047801478024780347804478054780647807478084780947810478114781247813478144781547816478174781847819478204782147822478234782447825478264782747828478294783047831478324783347834478354783647837478384783947840478414784247843478444784547846478474784847849478504785147852478534785447855478564785747858478594786047861478624786347864478654786647867478684786947870478714787247873478744787547876478774787847879478804788147882478834788447885478864788747888478894789047891478924789347894478954789647897478984789947900479014790247903479044790547906479074790847909479104791147912479134791447915479164791747918479194792047921479224792347924479254792647927479284792947930479314793247933479344793547936479374793847939479404794147942479434794447945479464794747948479494795047951479524795347954479554795647957479584795947960479614796247963479644796547966479674796847969479704797147972479734797447975479764797747978479794798047981479824798347984479854798647987479884798947990479914799247993479944799547996479974799847999480004800148002480034800448005480064800748008480094801048011480124801348014480154801648017480184801948020480214802248023480244802548026480274802848029480304803148032480334803448035480364803748038480394804048041480424804348044480454804648047480484804948050480514805248053480544805548056480574805848059480604806148062480634806448065480664806748068480694807048071480724807348074480754807648077480784807948080480814808248083480844808548086480874808848089480904809148092480934809448095480964809748098480994810048101481024810348104481054810648107481084810948110481114811248113481144811548116481174811848119481204812148122481234812448125481264812748128481294813048131481324813348134481354813648137481384813948140481414814248143481444814548146481474814848149481504815148152481534815448155481564815748158481594816048161481624816348164481654816648167481684816948170481714817248173481744817548176481774817848179481804818148182481834818448185481864818748188481894819048191481924819348194481954819648197481984819948200482014820248203482044820548206482074820848209482104821148212482134821448215482164821748218482194822048221482224822348224482254822648227482284822948230482314823248233482344823548236482374823848239482404824148242482434824448245482464824748248482494825048251482524825348254482554825648257482584825948260482614826248263482644826548266482674826848269482704827148272482734827448275482764827748278482794828048281482824828348284482854828648287482884828948290482914829248293482944829548296482974829848299483004830148302483034830448305483064830748308483094831048311483124831348314483154831648317483184831948320483214832248323483244832548326483274832848329483304833148332483334833448335483364833748338483394834048341483424834348344483454834648347483484834948350483514835248353483544835548356483574835848359483604836148362483634836448365483664836748368483694837048371483724837348374483754837648377483784837948380483814838248383483844838548386483874838848389483904839148392483934839448395483964839748398483994840048401484024840348404484054840648407484084840948410484114841248413484144841548416484174841848419484204842148422484234842448425484264842748428484294843048431484324843348434484354843648437484384843948440484414844248443484444844548446484474844848449484504845148452484534845448455484564845748458484594846048461484624846348464484654846648467484684846948470484714847248473484744847548476484774847848479484804848148482484834848448485484864848748488484894849048491484924849348494484954849648497484984849948500485014850248503485044850548506485074850848509485104851148512485134851448515485164851748518485194852048521485224852348524485254852648527485284852948530485314853248533485344853548536485374853848539485404854148542485434854448545485464854748548485494855048551485524855348554485554855648557485584855948560485614856248563485644856548566485674856848569485704857148572485734857448575485764857748578485794858048581485824858348584485854858648587485884858948590485914859248593485944859548596485974859848599486004860148602486034860448605486064860748608486094861048611486124861348614486154861648617486184861948620486214862248623486244862548626486274862848629486304863148632486334863448635486364863748638486394864048641486424864348644486454864648647486484864948650486514865248653486544865548656486574865848659486604866148662486634866448665486664866748668486694867048671486724867348674486754867648677486784867948680486814868248683486844868548686486874868848689486904869148692486934869448695486964869748698486994870048701487024870348704487054870648707487084870948710487114871248713487144871548716487174871848719487204872148722487234872448725487264872748728487294873048731487324873348734487354873648737487384873948740487414874248743487444874548746487474874848749487504875148752487534875448755487564875748758487594876048761487624876348764487654876648767487684876948770487714877248773487744877548776487774877848779487804878148782487834878448785487864878748788487894879048791487924879348794487954879648797487984879948800488014880248803488044880548806488074880848809488104881148812488134881448815488164881748818488194882048821488224882348824488254882648827488284882948830488314883248833488344883548836488374883848839488404884148842488434884448845488464884748848488494885048851488524885348854488554885648857488584885948860488614886248863488644886548866488674886848869488704887148872488734887448875488764887748878488794888048881488824888348884488854888648887488884888948890488914889248893488944889548896488974889848899489004890148902489034890448905489064890748908489094891048911489124891348914489154891648917489184891948920489214892248923489244892548926489274892848929489304893148932489334893448935489364893748938489394894048941489424894348944489454894648947489484894948950489514895248953489544895548956489574895848959489604896148962489634896448965489664896748968489694897048971489724897348974489754897648977489784897948980489814898248983489844898548986489874898848989489904899148992489934899448995489964899748998489994900049001490024900349004490054900649007490084900949010490114901249013490144901549016490174901849019490204902149022490234902449025490264902749028490294903049031490324903349034490354903649037490384903949040490414904249043490444904549046490474904849049490504905149052490534905449055490564905749058490594906049061490624906349064490654906649067490684906949070490714907249073490744907549076490774907849079490804908149082490834908449085490864908749088490894909049091490924909349094490954909649097490984909949100491014910249103491044910549106491074910849109491104911149112491134911449115491164911749118491194912049121491224912349124491254912649127491284912949130491314913249133491344913549136491374913849139491404914149142491434914449145491464914749148491494915049151491524915349154491554915649157491584915949160491614916249163491644916549166491674916849169491704917149172491734917449175491764917749178491794918049181491824918349184491854918649187491884918949190491914919249193491944919549196491974919849199492004920149202492034920449205492064920749208492094921049211492124921349214492154921649217492184921949220492214922249223492244922549226492274922849229492304923149232492334923449235492364923749238492394924049241492424924349244492454924649247492484924949250492514925249253492544925549256492574925849259492604926149262492634926449265492664926749268492694927049271492724927349274492754927649277492784927949280492814928249283492844928549286492874928849289492904929149292492934929449295492964929749298492994930049301493024930349304493054930649307493084930949310493114931249313493144931549316493174931849319493204932149322493234932449325493264932749328493294933049331493324933349334493354933649337493384933949340493414934249343493444934549346493474934849349493504935149352493534935449355493564935749358493594936049361493624936349364493654936649367493684936949370493714937249373493744937549376493774937849379493804938149382493834938449385493864938749388493894939049391493924939349394493954939649397493984939949400494014940249403494044940549406494074940849409494104941149412494134941449415494164941749418494194942049421494224942349424494254942649427494284942949430494314943249433494344943549436494374943849439494404944149442494434944449445494464944749448494494945049451494524945349454494554945649457494584945949460494614946249463494644946549466494674946849469494704947149472494734947449475494764947749478494794948049481494824948349484494854948649487494884948949490494914949249493494944949549496494974949849499495004950149502495034950449505495064950749508495094951049511495124951349514495154951649517495184951949520495214952249523495244952549526495274952849529495304953149532495334953449535495364953749538495394954049541495424954349544495454954649547495484954949550495514955249553495544955549556495574955849559495604956149562495634956449565495664956749568495694957049571495724957349574495754957649577495784957949580495814958249583495844958549586495874958849589495904959149592495934959449595495964959749598495994960049601496024960349604496054960649607496084960949610496114961249613496144961549616496174961849619496204962149622496234962449625496264962749628496294963049631496324963349634496354963649637496384963949640496414964249643496444964549646496474964849649496504965149652496534965449655496564965749658496594966049661496624966349664496654966649667496684966949670496714967249673496744967549676496774967849679496804968149682496834968449685496864968749688496894969049691496924969349694496954969649697496984969949700497014970249703497044970549706497074970849709497104971149712497134971449715497164971749718497194972049721497224972349724497254972649727497284972949730497314973249733497344973549736497374973849739497404974149742497434974449745497464974749748497494975049751497524975349754497554975649757497584975949760497614976249763497644976549766497674976849769497704977149772497734977449775497764977749778497794978049781497824978349784497854978649787497884978949790497914979249793497944979549796497974979849799498004980149802498034980449805498064980749808498094981049811498124981349814498154981649817498184981949820498214982249823498244982549826498274982849829498304983149832498334983449835498364983749838498394984049841498424984349844498454984649847498484984949850498514985249853498544985549856498574985849859498604986149862498634986449865498664986749868498694987049871498724987349874498754987649877498784987949880498814988249883498844988549886498874988849889498904989149892498934989449895498964989749898498994990049901499024990349904499054990649907499084990949910499114991249913499144991549916499174991849919499204992149922499234992449925499264992749928499294993049931499324993349934499354993649937499384993949940499414994249943499444994549946499474994849949499504995149952499534995449955499564995749958499594996049961499624996349964499654996649967499684996949970499714997249973499744997549976499774997849979499804998149982499834998449985499864998749988499894999049991499924999349994499954999649997499984999950000500015000250003500045000550006500075000850009500105001150012500135001450015500165001750018500195002050021500225002350024500255002650027500285002950030500315003250033500345003550036500375003850039500405004150042500435004450045500465004750048500495005050051500525005350054500555005650057500585005950060500615006250063500645006550066500675006850069500705007150072500735007450075500765007750078500795008050081500825008350084500855008650087500885008950090500915009250093500945009550096500975009850099501005010150102501035010450105501065010750108501095011050111501125011350114501155011650117501185011950120501215012250123501245012550126501275012850129501305013150132501335013450135501365013750138501395014050141501425014350144501455014650147501485014950150501515015250153501545015550156501575015850159501605016150162501635016450165501665016750168501695017050171501725017350174501755017650177501785017950180501815018250183501845018550186501875018850189501905019150192501935019450195501965019750198501995020050201502025020350204502055020650207502085020950210502115021250213502145021550216502175021850219502205022150222502235022450225502265022750228502295023050231502325023350234502355023650237502385023950240502415024250243502445024550246502475024850249502505025150252502535025450255502565025750258502595026050261502625026350264502655026650267502685026950270502715027250273502745027550276502775027850279502805028150282502835028450285502865028750288502895029050291502925029350294502955029650297502985029950300503015030250303503045030550306503075030850309503105031150312503135031450315503165031750318503195032050321503225032350324503255032650327503285032950330503315033250333503345033550336503375033850339503405034150342503435034450345503465034750348503495035050351503525035350354503555035650357503585035950360503615036250363503645036550366503675036850369503705037150372503735037450375503765037750378503795038050381503825038350384503855038650387503885038950390503915039250393503945039550396503975039850399504005040150402504035040450405504065040750408504095041050411504125041350414504155041650417504185041950420504215042250423504245042550426504275042850429504305043150432504335043450435504365043750438504395044050441504425044350444504455044650447504485044950450504515045250453504545045550456504575045850459504605046150462504635046450465504665046750468504695047050471504725047350474504755047650477504785047950480504815048250483504845048550486504875048850489504905049150492504935049450495504965049750498504995050050501505025050350504505055050650507505085050950510505115051250513505145051550516505175051850519505205052150522505235052450525505265052750528505295053050531505325053350534505355053650537505385053950540505415054250543505445054550546505475054850549505505055150552505535055450555505565055750558505595056050561505625056350564505655056650567505685056950570505715057250573505745057550576505775057850579505805058150582505835058450585505865058750588505895059050591505925059350594505955059650597505985059950600506015060250603506045060550606506075060850609506105061150612506135061450615506165061750618506195062050621506225062350624506255062650627506285062950630506315063250633506345063550636506375063850639506405064150642506435064450645506465064750648506495065050651506525065350654506555065650657506585065950660506615066250663506645066550666506675066850669506705067150672506735067450675506765067750678506795068050681506825068350684506855068650687506885068950690506915069250693506945069550696506975069850699507005070150702507035070450705507065070750708507095071050711507125071350714507155071650717507185071950720507215072250723507245072550726507275072850729507305073150732507335073450735507365073750738507395074050741507425074350744507455074650747507485074950750507515075250753507545075550756507575075850759507605076150762507635076450765507665076750768507695077050771507725077350774507755077650777507785077950780507815078250783507845078550786507875078850789507905079150792507935079450795507965079750798507995080050801508025080350804508055080650807508085080950810508115081250813508145081550816508175081850819508205082150822508235082450825508265082750828508295083050831508325083350834508355083650837508385083950840508415084250843508445084550846508475084850849508505085150852508535085450855508565085750858508595086050861508625086350864508655086650867508685086950870508715087250873508745087550876508775087850879508805088150882508835088450885508865088750888508895089050891508925089350894508955089650897508985089950900509015090250903509045090550906509075090850909509105091150912509135091450915509165091750918509195092050921509225092350924509255092650927509285092950930509315093250933509345093550936509375093850939509405094150942509435094450945509465094750948509495095050951509525095350954509555095650957509585095950960509615096250963509645096550966509675096850969509705097150972509735097450975509765097750978509795098050981509825098350984509855098650987509885098950990509915099250993509945099550996509975099850999510005100151002510035100451005510065100751008510095101051011510125101351014510155101651017510185101951020510215102251023510245102551026510275102851029510305103151032510335103451035510365103751038510395104051041510425104351044510455104651047510485104951050510515105251053510545105551056510575105851059510605106151062510635106451065510665106751068510695107051071510725107351074510755107651077510785107951080510815108251083510845108551086510875108851089510905109151092510935109451095510965109751098510995110051101511025110351104511055110651107511085110951110511115111251113511145111551116511175111851119511205112151122511235112451125511265112751128511295113051131511325113351134511355113651137511385113951140511415114251143511445114551146511475114851149511505115151152511535115451155511565115751158511595116051161511625116351164511655116651167511685116951170511715117251173511745117551176511775117851179511805118151182511835118451185511865118751188511895119051191511925119351194511955119651197511985119951200512015120251203512045120551206512075120851209512105121151212512135121451215512165121751218512195122051221512225122351224512255122651227512285122951230512315123251233512345123551236512375123851239512405124151242512435124451245512465124751248512495125051251512525125351254512555125651257512585125951260512615126251263512645126551266512675126851269512705127151272512735127451275512765127751278512795128051281512825128351284512855128651287512885128951290512915129251293512945129551296512975129851299513005130151302513035130451305513065130751308513095131051311513125131351314513155131651317513185131951320513215132251323513245132551326513275132851329513305133151332513335133451335513365133751338513395134051341513425134351344513455134651347513485134951350513515135251353513545135551356513575135851359513605136151362513635136451365513665136751368513695137051371513725137351374513755137651377513785137951380513815138251383513845138551386513875138851389513905139151392513935139451395513965139751398513995140051401514025140351404514055140651407514085140951410514115141251413514145141551416514175141851419514205142151422514235142451425514265142751428514295143051431514325143351434514355143651437514385143951440514415144251443514445144551446514475144851449514505145151452514535145451455514565145751458514595146051461514625146351464514655146651467514685146951470514715147251473514745147551476514775147851479514805148151482514835148451485514865148751488514895149051491514925149351494514955149651497514985149951500515015150251503515045150551506515075150851509515105151151512515135151451515515165151751518515195152051521515225152351524515255152651527515285152951530515315153251533515345153551536515375153851539515405154151542515435154451545515465154751548515495155051551515525155351554515555155651557515585155951560515615156251563515645156551566515675156851569515705157151572515735157451575515765157751578515795158051581515825158351584515855158651587515885158951590515915159251593515945159551596515975159851599516005160151602516035160451605516065160751608516095161051611516125161351614516155161651617516185161951620516215162251623516245162551626516275162851629516305163151632516335163451635516365163751638516395164051641516425164351644516455164651647516485164951650516515165251653516545165551656516575165851659516605166151662516635166451665516665166751668516695167051671516725167351674516755167651677516785167951680516815168251683516845168551686516875168851689516905169151692516935169451695516965169751698516995170051701517025170351704517055170651707517085170951710517115171251713517145171551716517175171851719517205172151722517235172451725517265172751728517295173051731517325173351734517355173651737517385173951740517415174251743517445174551746517475174851749517505175151752517535175451755517565175751758517595176051761517625176351764517655176651767517685176951770517715177251773517745177551776517775177851779517805178151782517835178451785517865178751788517895179051791517925179351794517955179651797517985179951800518015180251803518045180551806518075180851809518105181151812518135181451815518165181751818518195182051821518225182351824518255182651827518285182951830518315183251833518345183551836518375183851839518405184151842518435184451845518465184751848518495185051851518525185351854518555185651857518585185951860518615186251863518645186551866518675186851869518705187151872518735187451875518765187751878518795188051881518825188351884518855188651887518885188951890518915189251893518945189551896518975189851899519005190151902519035190451905519065190751908519095191051911519125191351914519155191651917519185191951920519215192251923519245192551926519275192851929519305193151932519335193451935519365193751938519395194051941519425194351944519455194651947519485194951950519515195251953519545195551956519575195851959519605196151962519635196451965519665196751968519695197051971519725197351974519755197651977519785197951980519815198251983519845198551986519875198851989519905199151992519935199451995519965199751998519995200052001520025200352004520055200652007520085200952010520115201252013520145201552016520175201852019520205202152022520235202452025520265202752028520295203052031520325203352034520355203652037520385203952040520415204252043520445204552046520475204852049520505205152052520535205452055520565205752058520595206052061520625206352064520655206652067520685206952070520715207252073520745207552076520775207852079520805208152082520835208452085520865208752088520895209052091520925209352094520955209652097520985209952100521015210252103521045210552106521075210852109521105211152112521135211452115521165211752118521195212052121521225212352124521255212652127521285212952130521315213252133521345213552136521375213852139521405214152142521435214452145521465214752148521495215052151521525215352154521555215652157521585215952160521615216252163521645216552166521675216852169521705217152172521735217452175521765217752178521795218052181521825218352184521855218652187521885218952190521915219252193521945219552196521975219852199522005220152202522035220452205522065220752208522095221052211522125221352214522155221652217522185221952220522215222252223522245222552226522275222852229522305223152232522335223452235522365223752238522395224052241522425224352244522455224652247522485224952250522515225252253522545225552256522575225852259522605226152262522635226452265522665226752268522695227052271522725227352274522755227652277522785227952280522815228252283522845228552286522875228852289522905229152292522935229452295522965229752298522995230052301523025230352304523055230652307523085230952310523115231252313523145231552316523175231852319523205232152322523235232452325523265232752328523295233052331523325233352334523355233652337523385233952340523415234252343523445234552346523475234852349523505235152352523535235452355523565235752358523595236052361523625236352364523655236652367523685236952370523715237252373523745237552376523775237852379523805238152382523835238452385523865238752388523895239052391523925239352394523955239652397523985239952400524015240252403524045240552406524075240852409524105241152412524135241452415524165241752418524195242052421524225242352424524255242652427524285242952430524315243252433524345243552436524375243852439524405244152442524435244452445524465244752448524495245052451524525245352454524555245652457524585245952460524615246252463524645246552466524675246852469524705247152472524735247452475524765247752478524795248052481524825248352484524855248652487524885248952490524915249252493524945249552496524975249852499525005250152502525035250452505525065250752508525095251052511525125251352514525155251652517525185251952520525215252252523525245252552526525275252852529525305253152532525335253452535525365253752538525395254052541525425254352544525455254652547525485254952550525515255252553525545255552556525575255852559525605256152562525635256452565525665256752568525695257052571525725257352574525755257652577525785257952580525815258252583525845258552586525875258852589525905259152592525935259452595525965259752598525995260052601526025260352604526055260652607526085260952610526115261252613526145261552616526175261852619526205262152622526235262452625526265262752628526295263052631526325263352634526355263652637526385263952640526415264252643526445264552646526475264852649526505265152652526535265452655526565265752658526595266052661526625266352664526655266652667526685266952670526715267252673526745267552676526775267852679526805268152682526835268452685526865268752688526895269052691526925269352694526955269652697526985269952700527015270252703527045270552706527075270852709527105271152712527135271452715527165271752718527195272052721527225272352724527255272652727527285272952730527315273252733527345273552736527375273852739527405274152742527435274452745527465274752748527495275052751527525275352754527555275652757527585275952760527615276252763527645276552766527675276852769527705277152772527735277452775527765277752778527795278052781527825278352784527855278652787527885278952790527915279252793527945279552796527975279852799528005280152802528035280452805528065280752808528095281052811528125281352814528155281652817528185281952820528215282252823528245282552826528275282852829528305283152832528335283452835528365283752838528395284052841528425284352844528455284652847528485284952850528515285252853528545285552856528575285852859528605286152862528635286452865528665286752868528695287052871528725287352874528755287652877528785287952880528815288252883528845288552886528875288852889528905289152892528935289452895528965289752898528995290052901529025290352904529055290652907529085290952910529115291252913529145291552916529175291852919529205292152922529235292452925529265292752928529295293052931529325293352934529355293652937529385293952940529415294252943529445294552946529475294852949529505295152952529535295452955529565295752958529595296052961529625296352964529655296652967529685296952970529715297252973529745297552976529775297852979529805298152982529835298452985529865298752988529895299052991529925299352994529955299652997529985299953000530015300253003530045300553006530075300853009530105301153012530135301453015530165301753018530195302053021530225302353024530255302653027530285302953030530315303253033530345303553036530375303853039530405304153042530435304453045530465304753048530495305053051530525305353054530555305653057530585305953060530615306253063530645306553066530675306853069530705307153072530735307453075530765307753078530795308053081530825308353084530855308653087530885308953090530915309253093530945309553096530975309853099531005310153102531035310453105531065310753108531095311053111531125311353114531155311653117531185311953120531215312253123531245312553126531275312853129531305313153132531335313453135531365313753138531395314053141531425314353144531455314653147531485314953150531515315253153531545315553156531575315853159531605316153162531635316453165531665316753168531695317053171531725317353174531755317653177531785317953180531815318253183531845318553186531875318853189531905319153192531935319453195531965319753198531995320053201532025320353204532055320653207532085320953210532115321253213532145321553216532175321853219532205322153222532235322453225532265322753228532295323053231532325323353234532355323653237532385323953240532415324253243532445324553246532475324853249532505325153252532535325453255532565325753258532595326053261532625326353264532655326653267532685326953270532715327253273532745327553276532775327853279532805328153282532835328453285532865328753288532895329053291532925329353294532955329653297532985329953300533015330253303533045330553306533075330853309533105331153312533135331453315533165331753318533195332053321533225332353324533255332653327533285332953330533315333253333533345333553336533375333853339533405334153342533435334453345533465334753348533495335053351533525335353354533555335653357533585335953360533615336253363533645336553366533675336853369533705337153372533735337453375533765337753378533795338053381533825338353384533855338653387533885338953390533915339253393533945339553396533975339853399534005340153402534035340453405534065340753408534095341053411534125341353414534155341653417534185341953420534215342253423534245342553426534275342853429534305343153432534335343453435534365343753438534395344053441534425344353444534455344653447534485344953450534515345253453534545345553456534575345853459534605346153462534635346453465534665346753468534695347053471534725347353474534755347653477534785347953480534815348253483534845348553486534875348853489534905349153492534935349453495534965349753498534995350053501535025350353504535055350653507535085350953510535115351253513535145351553516535175351853519535205352153522535235352453525535265352753528535295353053531535325353353534535355353653537535385353953540535415354253543535445354553546535475354853549535505355153552535535355453555535565355753558535595356053561535625356353564535655356653567535685356953570535715357253573535745357553576535775357853579535805358153582535835358453585535865358753588535895359053591535925359353594535955359653597535985359953600536015360253603536045360553606536075360853609536105361153612536135361453615536165361753618536195362053621536225362353624536255362653627536285362953630536315363253633536345363553636536375363853639536405364153642536435364453645536465364753648536495365053651536525365353654536555365653657536585365953660536615366253663536645366553666536675366853669536705367153672536735367453675536765367753678536795368053681536825368353684536855368653687536885368953690536915369253693536945369553696536975369853699537005370153702537035370453705537065370753708537095371053711537125371353714537155371653717537185371953720537215372253723537245372553726537275372853729537305373153732537335373453735537365373753738537395374053741537425374353744537455374653747537485374953750537515375253753537545375553756537575375853759537605376153762537635376453765537665376753768537695377053771537725377353774537755377653777537785377953780537815378253783537845378553786537875378853789537905379153792537935379453795537965379753798537995380053801538025380353804538055380653807538085380953810538115381253813538145381553816538175381853819538205382153822538235382453825538265382753828538295383053831538325383353834538355383653837538385383953840538415384253843538445384553846538475384853849538505385153852538535385453855538565385753858538595386053861538625386353864538655386653867538685386953870538715387253873538745387553876538775387853879538805388153882538835388453885538865388753888538895389053891538925389353894538955389653897538985389953900539015390253903539045390553906539075390853909539105391153912539135391453915539165391753918539195392053921539225392353924539255392653927539285392953930539315393253933539345393553936539375393853939539405394153942539435394453945539465394753948539495395053951539525395353954539555395653957539585395953960539615396253963539645396553966539675396853969539705397153972539735397453975539765397753978539795398053981539825398353984539855398653987539885398953990539915399253993539945399553996539975399853999540005400154002540035400454005540065400754008540095401054011540125401354014540155401654017540185401954020540215402254023540245402554026540275402854029540305403154032540335403454035540365403754038540395404054041540425404354044540455404654047540485404954050540515405254053540545405554056540575405854059540605406154062540635406454065540665406754068540695407054071540725407354074540755407654077540785407954080540815408254083540845408554086540875408854089540905409154092540935409454095540965409754098540995410054101541025410354104541055410654107541085410954110541115411254113541145411554116541175411854119541205412154122541235412454125541265412754128541295413054131541325413354134541355413654137541385413954140541415414254143541445414554146541475414854149541505415154152541535415454155541565415754158541595416054161541625416354164541655416654167541685416954170541715417254173541745417554176541775417854179541805418154182541835418454185541865418754188541895419054191541925419354194541955419654197541985419954200542015420254203542045420554206542075420854209542105421154212542135421454215542165421754218542195422054221542225422354224542255422654227542285422954230542315423254233542345423554236542375423854239542405424154242542435424454245542465424754248542495425054251542525425354254542555425654257542585425954260542615426254263542645426554266542675426854269542705427154272542735427454275542765427754278542795428054281542825428354284542855428654287542885428954290542915429254293542945429554296542975429854299543005430154302543035430454305543065430754308543095431054311543125431354314543155431654317543185431954320543215432254323543245432554326543275432854329543305433154332543335433454335543365433754338543395434054341543425434354344543455434654347543485434954350543515435254353543545435554356543575435854359543605436154362543635436454365543665436754368543695437054371543725437354374543755437654377543785437954380543815438254383543845438554386543875438854389543905439154392543935439454395543965439754398543995440054401544025440354404544055440654407544085440954410544115441254413544145441554416544175441854419544205442154422544235442454425544265442754428544295443054431544325443354434544355443654437544385443954440544415444254443544445444554446544475444854449544505445154452544535445454455544565445754458544595446054461544625446354464544655446654467544685446954470544715447254473544745447554476544775447854479544805448154482544835448454485544865448754488544895449054491544925449354494544955449654497544985449954500545015450254503545045450554506545075450854509545105451154512545135451454515545165451754518545195452054521545225452354524545255452654527545285452954530545315453254533545345453554536545375453854539545405454154542545435454454545545465454754548545495455054551545525455354554545555455654557545585455954560545615456254563545645456554566545675456854569545705457154572545735457454575545765457754578545795458054581545825458354584545855458654587545885458954590545915459254593545945459554596545975459854599546005460154602546035460454605546065460754608546095461054611546125461354614546155461654617546185461954620546215462254623546245462554626546275462854629546305463154632546335463454635546365463754638546395464054641546425464354644546455464654647546485464954650546515465254653546545465554656546575465854659546605466154662546635466454665546665466754668546695467054671546725467354674546755467654677546785467954680546815468254683546845468554686546875468854689546905469154692546935469454695546965469754698546995470054701547025470354704547055470654707547085470954710547115471254713547145471554716547175471854719547205472154722547235472454725547265472754728547295473054731547325473354734547355473654737547385473954740547415474254743547445474554746547475474854749547505475154752547535475454755547565475754758547595476054761547625476354764547655476654767547685476954770547715477254773547745477554776547775477854779547805478154782547835478454785547865478754788547895479054791547925479354794547955479654797547985479954800548015480254803548045480554806548075480854809548105481154812548135481454815548165481754818548195482054821548225482354824548255482654827548285482954830548315483254833548345483554836548375483854839548405484154842548435484454845548465484754848548495485054851548525485354854548555485654857548585485954860548615486254863548645486554866548675486854869548705487154872548735487454875548765487754878548795488054881548825488354884548855488654887548885488954890548915489254893548945489554896548975489854899549005490154902549035490454905549065490754908549095491054911549125491354914549155491654917549185491954920549215492254923549245492554926549275492854929549305493154932549335493454935549365493754938549395494054941549425494354944549455494654947549485494954950549515495254953549545495554956549575495854959549605496154962549635496454965549665496754968549695497054971549725497354974549755497654977549785497954980549815498254983549845498554986549875498854989549905499154992549935499454995549965499754998549995500055001550025500355004550055500655007550085500955010550115501255013550145501555016550175501855019550205502155022550235502455025550265502755028550295503055031550325503355034550355503655037550385503955040550415504255043550445504555046550475504855049550505505155052550535505455055550565505755058550595506055061550625506355064550655506655067550685506955070550715507255073550745507555076550775507855079550805508155082550835508455085550865508755088550895509055091550925509355094550955509655097550985509955100551015510255103551045510555106551075510855109551105511155112551135511455115551165511755118551195512055121551225512355124551255512655127551285512955130551315513255133551345513555136551375513855139551405514155142551435514455145551465514755148551495515055151551525515355154551555515655157551585515955160551615516255163551645516555166551675516855169551705517155172551735517455175551765517755178551795518055181551825518355184551855518655187551885518955190551915519255193551945519555196551975519855199552005520155202552035520455205552065520755208552095521055211552125521355214552155521655217552185521955220552215522255223552245522555226552275522855229552305523155232552335523455235552365523755238552395524055241552425524355244552455524655247552485524955250552515525255253552545525555256552575525855259552605526155262552635526455265552665526755268552695527055271552725527355274552755527655277552785527955280552815528255283552845528555286552875528855289552905529155292552935529455295552965529755298552995530055301553025530355304553055530655307553085530955310553115531255313553145531555316553175531855319553205532155322553235532455325553265532755328553295533055331553325533355334553355533655337553385533955340553415534255343553445534555346553475534855349553505535155352553535535455355553565535755358553595536055361553625536355364553655536655367553685536955370553715537255373553745537555376553775537855379553805538155382553835538455385553865538755388553895539055391553925539355394553955539655397553985539955400554015540255403554045540555406554075540855409554105541155412554135541455415554165541755418554195542055421554225542355424554255542655427554285542955430554315543255433554345543555436554375543855439554405544155442554435544455445554465544755448554495545055451554525545355454554555545655457554585545955460554615546255463554645546555466554675546855469554705547155472554735547455475554765547755478554795548055481554825548355484554855548655487554885548955490554915549255493554945549555496554975549855499555005550155502555035550455505555065550755508555095551055511555125551355514555155551655517555185551955520555215552255523555245552555526555275552855529555305553155532555335553455535555365553755538555395554055541555425554355544555455554655547555485554955550555515555255553555545555555556555575555855559555605556155562555635556455565555665556755568555695557055571555725557355574555755557655577555785557955580555815558255583555845558555586555875558855589555905559155592555935559455595555965559755598555995560055601556025560355604556055560655607556085560955610556115561255613556145561555616556175561855619556205562155622556235562455625556265562755628556295563055631556325563355634556355563655637556385563955640556415564255643556445564555646556475564855649556505565155652556535565455655556565565755658556595566055661556625566355664556655566655667556685566955670556715567255673556745567555676556775567855679556805568155682556835568455685556865568755688556895569055691556925569355694556955569655697556985569955700557015570255703557045570555706557075570855709557105571155712557135571455715557165571755718557195572055721557225572355724557255572655727557285572955730557315573255733557345573555736557375573855739557405574155742557435574455745557465574755748557495575055751557525575355754557555575655757557585575955760557615576255763557645576555766557675576855769557705577155772557735577455775557765577755778557795578055781557825578355784557855578655787557885578955790557915579255793557945579555796557975579855799558005580155802558035580455805558065580755808558095581055811558125581355814558155581655817558185581955820558215582255823558245582555826558275582855829558305583155832558335583455835558365583755838558395584055841558425584355844558455584655847558485584955850558515585255853558545585555856558575585855859558605586155862558635586455865558665586755868558695587055871558725587355874558755587655877558785587955880558815588255883558845588555886558875588855889558905589155892558935589455895558965589755898558995590055901559025590355904559055590655907559085590955910559115591255913559145591555916559175591855919559205592155922559235592455925559265592755928559295593055931559325593355934559355593655937559385593955940559415594255943559445594555946559475594855949559505595155952559535595455955559565595755958559595596055961559625596355964559655596655967559685596955970559715597255973559745597555976559775597855979559805598155982559835598455985559865598755988559895599055991559925599355994559955599655997559985599956000560015600256003560045600556006560075600856009560105601156012560135601456015560165601756018560195602056021560225602356024560255602656027560285602956030560315603256033560345603556036560375603856039560405604156042560435604456045560465604756048560495605056051560525605356054560555605656057560585605956060560615606256063560645606556066560675606856069560705607156072560735607456075560765607756078560795608056081560825608356084560855608656087560885608956090560915609256093560945609556096560975609856099561005610156102561035610456105561065610756108561095611056111561125611356114561155611656117561185611956120561215612256123561245612556126561275612856129561305613156132561335613456135561365613756138561395614056141561425614356144561455614656147561485614956150561515615256153561545615556156561575615856159561605616156162561635616456165561665616756168561695617056171561725617356174561755617656177561785617956180561815618256183561845618556186561875618856189561905619156192561935619456195561965619756198561995620056201562025620356204562055620656207562085620956210562115621256213562145621556216562175621856219562205622156222562235622456225562265622756228562295623056231562325623356234562355623656237562385623956240562415624256243562445624556246562475624856249562505625156252562535625456255562565625756258562595626056261562625626356264562655626656267562685626956270562715627256273562745627556276562775627856279562805628156282562835628456285562865628756288562895629056291562925629356294562955629656297562985629956300563015630256303563045630556306563075630856309563105631156312563135631456315563165631756318563195632056321563225632356324563255632656327563285632956330563315633256333563345633556336563375633856339563405634156342563435634456345563465634756348563495635056351563525635356354563555635656357563585635956360563615636256363563645636556366563675636856369563705637156372563735637456375563765637756378563795638056381563825638356384563855638656387563885638956390563915639256393563945639556396563975639856399564005640156402564035640456405564065640756408564095641056411564125641356414564155641656417564185641956420564215642256423564245642556426564275642856429564305643156432564335643456435564365643756438564395644056441564425644356444564455644656447564485644956450564515645256453564545645556456564575645856459564605646156462564635646456465564665646756468564695647056471564725647356474564755647656477564785647956480564815648256483564845648556486564875648856489564905649156492564935649456495564965649756498564995650056501565025650356504565055650656507565085650956510565115651256513565145651556516565175651856519565205652156522565235652456525565265652756528565295653056531565325653356534565355653656537565385653956540565415654256543565445654556546565475654856549565505655156552565535655456555565565655756558565595656056561565625656356564565655656656567565685656956570565715657256573565745657556576565775657856579565805658156582565835658456585565865658756588565895659056591565925659356594565955659656597565985659956600566015660256603566045660556606566075660856609566105661156612566135661456615566165661756618566195662056621566225662356624566255662656627566285662956630566315663256633566345663556636566375663856639566405664156642566435664456645566465664756648566495665056651566525665356654566555665656657566585665956660566615666256663566645666556666566675666856669566705667156672566735667456675566765667756678566795668056681566825668356684566855668656687566885668956690566915669256693566945669556696566975669856699567005670156702567035670456705567065670756708567095671056711567125671356714567155671656717567185671956720567215672256723567245672556726567275672856729567305673156732567335673456735567365673756738567395674056741567425674356744567455674656747567485674956750567515675256753567545675556756567575675856759567605676156762567635676456765567665676756768567695677056771567725677356774567755677656777567785677956780567815678256783567845678556786567875678856789567905679156792567935679456795567965679756798567995680056801568025680356804568055680656807568085680956810568115681256813568145681556816568175681856819568205682156822568235682456825568265682756828568295683056831568325683356834568355683656837568385683956840568415684256843568445684556846568475684856849568505685156852568535685456855568565685756858568595686056861568625686356864568655686656867568685686956870568715687256873568745687556876568775687856879568805688156882568835688456885568865688756888568895689056891568925689356894568955689656897568985689956900569015690256903569045690556906569075690856909569105691156912569135691456915569165691756918569195692056921569225692356924569255692656927569285692956930569315693256933569345693556936569375693856939569405694156942569435694456945569465694756948569495695056951569525695356954569555695656957569585695956960569615696256963569645696556966569675696856969569705697156972569735697456975569765697756978569795698056981569825698356984569855698656987569885698956990569915699256993569945699556996569975699856999570005700157002570035700457005570065700757008570095701057011570125701357014570155701657017570185701957020570215702257023570245702557026570275702857029570305703157032570335703457035570365703757038570395704057041570425704357044570455704657047570485704957050570515705257053570545705557056570575705857059570605706157062570635706457065570665706757068570695707057071570725707357074570755707657077570785707957080570815708257083570845708557086570875708857089570905709157092570935709457095570965709757098570995710057101571025710357104571055710657107571085710957110571115711257113571145711557116571175711857119571205712157122571235712457125571265712757128571295713057131571325713357134571355713657137571385713957140571415714257143571445714557146571475714857149571505715157152571535715457155571565715757158571595716057161571625716357164571655716657167571685716957170571715717257173571745717557176571775717857179571805718157182571835718457185571865718757188571895719057191571925719357194571955719657197571985719957200572015720257203572045720557206572075720857209572105721157212572135721457215572165721757218572195722057221572225722357224572255722657227572285722957230572315723257233572345723557236572375723857239572405724157242572435724457245572465724757248572495725057251572525725357254572555725657257572585725957260572615726257263572645726557266572675726857269572705727157272572735727457275572765727757278572795728057281572825728357284572855728657287572885728957290572915729257293572945729557296572975729857299573005730157302573035730457305573065730757308573095731057311573125731357314573155731657317573185731957320573215732257323573245732557326573275732857329573305733157332573335733457335573365733757338573395734057341573425734357344573455734657347573485734957350573515735257353573545735557356573575735857359573605736157362573635736457365573665736757368573695737057371573725737357374573755737657377573785737957380573815738257383573845738557386573875738857389573905739157392573935739457395573965739757398573995740057401574025740357404574055740657407574085740957410574115741257413574145741557416574175741857419574205742157422574235742457425574265742757428574295743057431574325743357434574355743657437574385743957440574415744257443574445744557446574475744857449574505745157452574535745457455574565745757458574595746057461574625746357464574655746657467574685746957470574715747257473574745747557476574775747857479574805748157482574835748457485574865748757488574895749057491574925749357494574955749657497574985749957500575015750257503575045750557506575075750857509575105751157512575135751457515575165751757518575195752057521575225752357524575255752657527575285752957530575315753257533575345753557536575375753857539575405754157542575435754457545575465754757548575495755057551575525755357554575555755657557575585755957560575615756257563575645756557566575675756857569575705757157572575735757457575575765757757578575795758057581575825758357584575855758657587575885758957590575915759257593575945759557596575975759857599576005760157602576035760457605576065760757608576095761057611576125761357614576155761657617576185761957620576215762257623576245762557626576275762857629576305763157632576335763457635576365763757638576395764057641576425764357644576455764657647576485764957650576515765257653576545765557656576575765857659576605766157662576635766457665576665766757668576695767057671576725767357674576755767657677576785767957680576815768257683576845768557686576875768857689576905769157692576935769457695576965769757698576995770057701577025770357704577055770657707577085770957710577115771257713577145771557716577175771857719577205772157722577235772457725577265772757728577295773057731577325773357734577355773657737577385773957740577415774257743577445774557746577475774857749577505775157752577535775457755577565775757758577595776057761577625776357764577655776657767577685776957770577715777257773577745777557776577775777857779577805778157782577835778457785577865778757788577895779057791577925779357794577955779657797577985779957800578015780257803578045780557806578075780857809578105781157812578135781457815578165781757818578195782057821578225782357824578255782657827578285782957830578315783257833578345783557836578375783857839578405784157842578435784457845578465784757848578495785057851578525785357854578555785657857578585785957860578615786257863578645786557866578675786857869578705787157872578735787457875578765787757878578795788057881578825788357884578855788657887578885788957890578915789257893578945789557896578975789857899579005790157902579035790457905579065790757908579095791057911579125791357914579155791657917579185791957920579215792257923579245792557926579275792857929579305793157932579335793457935579365793757938579395794057941579425794357944579455794657947579485794957950579515795257953579545795557956579575795857959579605796157962579635796457965579665796757968579695797057971579725797357974579755797657977579785797957980579815798257983579845798557986579875798857989579905799157992579935799457995579965799757998579995800058001580025800358004580055800658007580085800958010580115801258013580145801558016580175801858019580205802158022580235802458025580265802758028580295803058031580325803358034580355803658037580385803958040580415804258043580445804558046580475804858049580505805158052580535805458055580565805758058580595806058061580625806358064580655806658067580685806958070580715807258073580745807558076580775807858079580805808158082580835808458085580865808758088580895809058091580925809358094580955809658097580985809958100581015810258103581045810558106581075810858109581105811158112581135811458115581165811758118581195812058121581225812358124581255812658127581285812958130581315813258133581345813558136581375813858139581405814158142581435814458145581465814758148581495815058151581525815358154581555815658157581585815958160581615816258163581645816558166581675816858169581705817158172581735817458175581765817758178581795818058181581825818358184581855818658187581885818958190581915819258193581945819558196581975819858199582005820158202582035820458205582065820758208582095821058211582125821358214582155821658217582185821958220582215822258223582245822558226582275822858229582305823158232582335823458235582365823758238582395824058241582425824358244582455824658247582485824958250582515825258253582545825558256582575825858259582605826158262582635826458265582665826758268582695827058271582725827358274582755827658277582785827958280582815828258283582845828558286582875828858289582905829158292582935829458295582965829758298582995830058301583025830358304583055830658307583085830958310583115831258313583145831558316583175831858319583205832158322583235832458325583265832758328583295833058331583325833358334583355833658337583385833958340583415834258343583445834558346583475834858349583505835158352583535835458355583565835758358583595836058361583625836358364583655836658367583685836958370583715837258373583745837558376583775837858379583805838158382583835838458385583865838758388583895839058391583925839358394583955839658397583985839958400584015840258403584045840558406584075840858409584105841158412584135841458415584165841758418584195842058421584225842358424584255842658427584285842958430584315843258433584345843558436584375843858439584405844158442584435844458445584465844758448584495845058451584525845358454584555845658457584585845958460584615846258463584645846558466584675846858469584705847158472584735847458475584765847758478584795848058481584825848358484584855848658487584885848958490584915849258493584945849558496584975849858499585005850158502585035850458505585065850758508585095851058511585125851358514585155851658517585185851958520585215852258523585245852558526585275852858529585305853158532585335853458535585365853758538585395854058541585425854358544585455854658547585485854958550585515855258553585545855558556585575855858559585605856158562585635856458565585665856758568585695857058571585725857358574585755857658577585785857958580585815858258583585845858558586585875858858589585905859158592585935859458595585965859758598585995860058601586025860358604586055860658607586085860958610586115861258613586145861558616586175861858619586205862158622586235862458625586265862758628586295863058631586325863358634586355863658637586385863958640586415864258643586445864558646586475864858649586505865158652586535865458655586565865758658586595866058661586625866358664586655866658667586685866958670586715867258673586745867558676586775867858679586805868158682586835868458685586865868758688586895869058691586925869358694586955869658697586985869958700587015870258703587045870558706587075870858709587105871158712587135871458715587165871758718587195872058721587225872358724587255872658727587285872958730587315873258733587345873558736587375873858739587405874158742587435874458745587465874758748587495875058751587525875358754587555875658757587585875958760587615876258763587645876558766587675876858769587705877158772587735877458775587765877758778587795878058781587825878358784587855878658787587885878958790587915879258793587945879558796587975879858799588005880158802588035880458805588065880758808588095881058811588125881358814588155881658817588185881958820588215882258823588245882558826588275882858829588305883158832588335883458835588365883758838588395884058841588425884358844588455884658847588485884958850588515885258853588545885558856588575885858859588605886158862588635886458865588665886758868588695887058871588725887358874588755887658877588785887958880588815888258883588845888558886588875888858889588905889158892588935889458895588965889758898588995890058901589025890358904589055890658907589085890958910589115891258913589145891558916589175891858919589205892158922589235892458925589265892758928589295893058931589325893358934589355893658937589385893958940589415894258943589445894558946589475894858949589505895158952589535895458955589565895758958589595896058961589625896358964589655896658967589685896958970589715897258973589745897558976589775897858979589805898158982589835898458985589865898758988589895899058991589925899358994589955899658997589985899959000590015900259003590045900559006590075900859009590105901159012590135901459015590165901759018590195902059021590225902359024590255902659027590285902959030590315903259033590345903559036590375903859039590405904159042590435904459045590465904759048590495905059051590525905359054590555905659057590585905959060590615906259063590645906559066590675906859069590705907159072590735907459075590765907759078590795908059081590825908359084590855908659087590885908959090590915909259093590945909559096590975909859099591005910159102591035910459105591065910759108591095911059111591125911359114591155911659117591185911959120591215912259123591245912559126591275912859129591305913159132591335913459135591365913759138591395914059141591425914359144591455914659147591485914959150591515915259153591545915559156591575915859159591605916159162591635916459165591665916759168591695917059171591725917359174591755917659177591785917959180591815918259183591845918559186591875918859189591905919159192591935919459195591965919759198591995920059201592025920359204592055920659207592085920959210592115921259213592145921559216592175921859219592205922159222592235922459225592265922759228592295923059231592325923359234592355923659237592385923959240592415924259243592445924559246592475924859249592505925159252592535925459255592565925759258592595926059261592625926359264592655926659267592685926959270592715927259273592745927559276592775927859279592805928159282592835928459285592865928759288592895929059291592925929359294592955929659297592985929959300593015930259303593045930559306593075930859309593105931159312593135931459315593165931759318593195932059321593225932359324593255932659327593285932959330593315933259333593345933559336593375933859339593405934159342593435934459345593465934759348593495935059351593525935359354593555935659357593585935959360593615936259363593645936559366593675936859369593705937159372593735937459375593765937759378593795938059381593825938359384593855938659387593885938959390593915939259393593945939559396593975939859399594005940159402594035940459405594065940759408594095941059411594125941359414594155941659417594185941959420594215942259423594245942559426594275942859429594305943159432594335943459435594365943759438594395944059441594425944359444594455944659447594485944959450594515945259453594545945559456594575945859459594605946159462594635946459465594665946759468594695947059471594725947359474594755947659477594785947959480594815948259483594845948559486594875948859489594905949159492594935949459495594965949759498594995950059501595025950359504595055950659507595085950959510595115951259513595145951559516595175951859519595205952159522595235952459525595265952759528595295953059531595325953359534595355953659537595385953959540595415954259543595445954559546595475954859549595505955159552595535955459555595565955759558595595956059561595625956359564595655956659567595685956959570595715957259573595745957559576595775957859579595805958159582595835958459585595865958759588595895959059591595925959359594595955959659597595985959959600596015960259603596045960559606596075960859609596105961159612596135961459615596165961759618596195962059621596225962359624596255962659627596285962959630596315963259633596345963559636596375963859639596405964159642596435964459645596465964759648596495965059651596525965359654596555965659657596585965959660596615966259663596645966559666596675966859669596705967159672596735967459675596765967759678596795968059681596825968359684596855968659687596885968959690596915969259693596945969559696596975969859699597005970159702597035970459705597065970759708597095971059711597125971359714597155971659717597185971959720597215972259723597245972559726597275972859729597305973159732597335973459735597365973759738597395974059741597425974359744597455974659747597485974959750597515975259753597545975559756597575975859759597605976159762597635976459765597665976759768597695977059771597725977359774597755977659777597785977959780597815978259783597845978559786597875978859789597905979159792597935979459795597965979759798597995980059801598025980359804598055980659807598085980959810598115981259813598145981559816598175981859819598205982159822598235982459825598265982759828598295983059831598325983359834598355983659837598385983959840598415984259843598445984559846598475984859849598505985159852598535985459855598565985759858598595986059861598625986359864598655986659867598685986959870598715987259873598745987559876598775987859879598805988159882598835988459885598865988759888598895989059891598925989359894598955989659897598985989959900599015990259903599045990559906599075990859909599105991159912599135991459915599165991759918599195992059921599225992359924599255992659927599285992959930599315993259933599345993559936599375993859939599405994159942599435994459945599465994759948599495995059951599525995359954599555995659957599585995959960599615996259963599645996559966599675996859969599705997159972599735997459975599765997759978599795998059981599825998359984599855998659987599885998959990599915999259993599945999559996599975999859999600006000160002600036000460005600066000760008600096001060011600126001360014600156001660017600186001960020600216002260023600246002560026600276002860029600306003160032600336003460035600366003760038600396004060041600426004360044600456004660047600486004960050600516005260053600546005560056600576005860059600606006160062600636006460065600666006760068600696007060071600726007360074600756007660077600786007960080600816008260083600846008560086600876008860089600906009160092600936009460095600966009760098600996010060101601026010360104601056010660107601086010960110601116011260113601146011560116601176011860119601206012160122601236012460125601266012760128601296013060131601326013360134601356013660137601386013960140601416014260143601446014560146601476014860149601506015160152601536015460155601566015760158601596016060161601626016360164601656016660167601686016960170601716017260173601746017560176601776017860179601806018160182601836018460185601866018760188601896019060191601926019360194601956019660197601986019960200602016020260203602046020560206602076020860209602106021160212602136021460215602166021760218602196022060221602226022360224602256022660227602286022960230602316023260233602346023560236602376023860239602406024160242602436024460245602466024760248602496025060251602526025360254602556025660257602586025960260602616026260263602646026560266602676026860269602706027160272602736027460275602766027760278602796028060281602826028360284602856028660287602886028960290602916029260293602946029560296602976029860299603006030160302603036030460305603066030760308603096031060311603126031360314603156031660317603186031960320603216032260323603246032560326603276032860329603306033160332603336033460335603366033760338603396034060341603426034360344603456034660347603486034960350603516035260353603546035560356603576035860359603606036160362603636036460365603666036760368603696037060371603726037360374603756037660377603786037960380603816038260383603846038560386603876038860389603906039160392603936039460395603966039760398603996040060401604026040360404604056040660407604086040960410604116041260413604146041560416604176041860419604206042160422604236042460425604266042760428604296043060431604326043360434604356043660437604386043960440604416044260443604446044560446604476044860449604506045160452604536045460455604566045760458604596046060461604626046360464604656046660467604686046960470604716047260473604746047560476604776047860479604806048160482604836048460485604866048760488604896049060491604926049360494604956049660497604986049960500605016050260503605046050560506605076050860509605106051160512605136051460515605166051760518605196052060521605226052360524605256052660527605286052960530605316053260533605346053560536605376053860539605406054160542605436054460545605466054760548605496055060551605526055360554605556055660557605586055960560605616056260563605646056560566605676056860569605706057160572605736057460575605766057760578605796058060581605826058360584605856058660587605886058960590605916059260593605946059560596605976059860599606006060160602606036060460605606066060760608606096061060611606126061360614606156061660617606186061960620606216062260623606246062560626606276062860629606306063160632606336063460635606366063760638606396064060641606426064360644606456064660647606486064960650606516065260653606546065560656606576065860659606606066160662606636066460665606666066760668606696067060671606726067360674606756067660677606786067960680606816068260683606846068560686606876068860689606906069160692606936069460695606966069760698606996070060701607026070360704607056070660707607086070960710607116071260713607146071560716607176071860719607206072160722607236072460725607266072760728607296073060731607326073360734607356073660737607386073960740607416074260743607446074560746607476074860749607506075160752607536075460755607566075760758607596076060761607626076360764607656076660767607686076960770607716077260773607746077560776607776077860779607806078160782607836078460785607866078760788607896079060791607926079360794607956079660797607986079960800608016080260803608046080560806608076080860809608106081160812608136081460815608166081760818608196082060821608226082360824608256082660827608286082960830608316083260833608346083560836608376083860839608406084160842608436084460845608466084760848608496085060851608526085360854608556085660857608586085960860608616086260863608646086560866608676086860869608706087160872608736087460875608766087760878608796088060881608826088360884608856088660887608886088960890608916089260893608946089560896608976089860899609006090160902609036090460905609066090760908609096091060911609126091360914609156091660917609186091960920609216092260923609246092560926609276092860929609306093160932609336093460935609366093760938609396094060941609426094360944609456094660947609486094960950609516095260953609546095560956609576095860959609606096160962609636096460965609666096760968609696097060971609726097360974609756097660977609786097960980609816098260983609846098560986609876098860989609906099160992609936099460995609966099760998609996100061001610026100361004610056100661007610086100961010610116101261013610146101561016610176101861019610206102161022610236102461025610266102761028610296103061031610326103361034610356103661037610386103961040610416104261043610446104561046610476104861049610506105161052610536105461055610566105761058610596106061061610626106361064610656106661067610686106961070610716107261073610746107561076610776107861079610806108161082610836108461085610866108761088610896109061091610926109361094610956109661097610986109961100611016110261103611046110561106611076110861109611106111161112611136111461115611166111761118611196112061121611226112361124611256112661127611286112961130611316113261133611346113561136611376113861139611406114161142611436114461145611466114761148611496115061151611526115361154611556115661157611586115961160611616116261163611646116561166611676116861169611706117161172611736117461175611766117761178611796118061181611826118361184611856118661187611886118961190611916119261193611946119561196611976119861199612006120161202612036120461205612066120761208612096121061211612126121361214612156121661217612186121961220612216122261223612246122561226612276122861229612306123161232612336123461235612366123761238612396124061241612426124361244612456124661247612486124961250612516125261253612546125561256612576125861259612606126161262612636126461265612666126761268612696127061271612726127361274612756127661277612786127961280612816128261283612846128561286612876128861289612906129161292612936129461295612966129761298612996130061301613026130361304613056130661307613086130961310613116131261313613146131561316613176131861319613206132161322613236132461325613266132761328613296133061331613326133361334613356133661337613386133961340613416134261343613446134561346613476134861349613506135161352613536135461355613566135761358613596136061361613626136361364613656136661367613686136961370613716137261373613746137561376613776137861379613806138161382613836138461385613866138761388613896139061391613926139361394613956139661397613986139961400614016140261403614046140561406614076140861409614106141161412614136141461415614166141761418614196142061421614226142361424614256142661427614286142961430614316143261433614346143561436614376143861439614406144161442614436144461445614466144761448614496145061451614526145361454614556145661457614586145961460614616146261463614646146561466614676146861469614706147161472614736147461475614766147761478614796148061481614826148361484614856148661487614886148961490614916149261493614946149561496614976149861499615006150161502615036150461505615066150761508615096151061511615126151361514615156151661517615186151961520615216152261523615246152561526615276152861529615306153161532615336153461535615366153761538615396154061541615426154361544615456154661547615486154961550615516155261553615546155561556615576155861559615606156161562615636156461565615666156761568615696157061571615726157361574615756157661577615786157961580615816158261583615846158561586615876158861589615906159161592615936159461595615966159761598615996160061601616026160361604616056160661607616086160961610616116161261613616146161561616616176161861619616206162161622616236162461625616266162761628616296163061631616326163361634616356163661637616386163961640616416164261643616446164561646616476164861649616506165161652616536165461655616566165761658616596166061661616626166361664616656166661667616686166961670616716167261673616746167561676616776167861679616806168161682616836168461685616866168761688616896169061691616926169361694616956169661697616986169961700617016170261703617046170561706617076170861709617106171161712617136171461715617166171761718617196172061721617226172361724617256172661727617286172961730617316173261733617346173561736617376173861739617406174161742617436174461745617466174761748617496175061751617526175361754617556175661757617586175961760617616176261763617646176561766617676176861769617706177161772617736177461775617766177761778617796178061781617826178361784617856178661787617886178961790617916179261793617946179561796617976179861799618006180161802618036180461805618066180761808618096181061811618126181361814618156181661817618186181961820618216182261823618246182561826618276182861829618306183161832618336183461835618366183761838618396184061841618426184361844618456184661847618486184961850618516185261853618546185561856618576185861859618606186161862618636186461865618666186761868618696187061871618726187361874618756187661877618786187961880618816188261883618846188561886618876188861889618906189161892618936189461895618966189761898618996190061901619026190361904619056190661907619086190961910619116191261913619146191561916619176191861919619206192161922619236192461925619266192761928619296193061931619326193361934619356193661937619386193961940619416194261943619446194561946619476194861949619506195161952619536195461955619566195761958619596196061961619626196361964619656196661967619686196961970619716197261973619746197561976619776197861979619806198161982619836198461985619866198761988619896199061991619926199361994619956199661997619986199962000620016200262003620046200562006620076200862009620106201162012620136201462015620166201762018620196202062021620226202362024620256202662027620286202962030620316203262033620346203562036620376203862039620406204162042620436204462045620466204762048620496205062051620526205362054620556205662057620586205962060620616206262063620646206562066620676206862069620706207162072620736207462075620766207762078620796208062081620826208362084620856208662087620886208962090620916209262093620946209562096620976209862099621006210162102621036210462105621066210762108621096211062111621126211362114621156211662117621186211962120621216212262123621246212562126621276212862129621306213162132621336213462135621366213762138621396214062141621426214362144621456214662147621486214962150621516215262153621546215562156621576215862159621606216162162621636216462165621666216762168621696217062171621726217362174621756217662177621786217962180621816218262183621846218562186621876218862189621906219162192621936219462195621966219762198621996220062201622026220362204622056220662207622086220962210622116221262213622146221562216622176221862219622206222162222622236222462225622266222762228622296223062231622326223362234622356223662237622386223962240622416224262243622446224562246622476224862249622506225162252622536225462255622566225762258622596226062261622626226362264622656226662267622686226962270622716227262273622746227562276622776227862279622806228162282622836228462285622866228762288622896229062291622926229362294622956229662297622986229962300623016230262303623046230562306623076230862309623106231162312623136231462315623166231762318623196232062321623226232362324623256232662327623286232962330623316233262333623346233562336623376233862339623406234162342623436234462345623466234762348623496235062351623526235362354623556235662357623586235962360623616236262363623646236562366623676236862369623706237162372623736237462375623766237762378623796238062381623826238362384623856238662387623886238962390623916239262393623946239562396623976239862399624006240162402624036240462405624066240762408624096241062411624126241362414624156241662417624186241962420624216242262423624246242562426624276242862429624306243162432624336243462435624366243762438624396244062441624426244362444624456244662447624486244962450624516245262453624546245562456624576245862459624606246162462624636246462465624666246762468624696247062471624726247362474624756247662477624786247962480624816248262483624846248562486624876248862489624906249162492624936249462495624966249762498624996250062501625026250362504625056250662507625086250962510625116251262513625146251562516625176251862519625206252162522625236252462525625266252762528625296253062531625326253362534625356253662537625386253962540625416254262543625446254562546625476254862549625506255162552625536255462555625566255762558625596256062561625626256362564625656256662567625686256962570625716257262573625746257562576625776257862579625806258162582625836258462585625866258762588625896259062591625926259362594625956259662597625986259962600626016260262603626046260562606626076260862609626106261162612626136261462615626166261762618626196262062621626226262362624626256262662627626286262962630626316263262633626346263562636626376263862639626406264162642626436264462645626466264762648626496265062651626526265362654626556265662657626586265962660626616266262663626646266562666626676266862669626706267162672626736267462675626766267762678626796268062681626826268362684626856268662687626886268962690626916269262693626946269562696626976269862699627006270162702627036270462705627066270762708627096271062711627126271362714627156271662717627186271962720627216272262723627246272562726627276272862729627306273162732627336273462735627366273762738627396274062741627426274362744627456274662747627486274962750627516275262753627546275562756627576275862759627606276162762627636276462765627666276762768627696277062771627726277362774627756277662777627786277962780627816278262783627846278562786627876278862789627906279162792627936279462795627966279762798627996280062801628026280362804628056280662807628086280962810628116281262813628146281562816628176281862819628206282162822628236282462825628266282762828628296283062831628326283362834628356283662837628386283962840628416284262843628446284562846628476284862849628506285162852628536285462855628566285762858628596286062861628626286362864628656286662867628686286962870628716287262873628746287562876628776287862879628806288162882628836288462885628866288762888628896289062891628926289362894628956289662897628986289962900629016290262903629046290562906629076290862909629106291162912629136291462915629166291762918629196292062921629226292362924629256292662927629286292962930629316293262933629346293562936629376293862939629406294162942629436294462945629466294762948629496295062951629526295362954629556295662957629586295962960629616296262963629646296562966629676296862969629706297162972629736297462975629766297762978629796298062981629826298362984629856298662987629886298962990629916299262993629946299562996629976299862999630006300163002630036300463005630066300763008630096301063011630126301363014630156301663017630186301963020630216302263023630246302563026630276302863029630306303163032630336303463035630366303763038630396304063041630426304363044630456304663047630486304963050630516305263053630546305563056630576305863059630606306163062630636306463065630666306763068630696307063071630726307363074630756307663077630786307963080630816308263083630846308563086630876308863089630906309163092630936309463095630966309763098630996310063101631026310363104631056310663107631086310963110631116311263113631146311563116631176311863119631206312163122631236312463125631266312763128631296313063131631326313363134631356313663137631386313963140631416314263143631446314563146631476314863149631506315163152631536315463155631566315763158631596316063161631626316363164631656316663167631686316963170631716317263173631746317563176631776317863179631806318163182631836318463185631866318763188631896319063191631926319363194631956319663197631986319963200632016320263203632046320563206632076320863209632106321163212632136321463215632166321763218632196322063221632226322363224632256322663227632286322963230632316323263233632346323563236632376323863239632406324163242632436324463245632466324763248632496325063251632526325363254632556325663257632586325963260632616326263263632646326563266632676326863269632706327163272632736327463275632766327763278632796328063281632826328363284632856328663287632886328963290632916329263293632946329563296632976329863299633006330163302633036330463305633066330763308633096331063311633126331363314633156331663317633186331963320633216332263323633246332563326633276332863329633306333163332633336333463335633366333763338633396334063341633426334363344633456334663347633486334963350633516335263353633546335563356633576335863359633606336163362633636336463365633666336763368633696337063371633726337363374633756337663377633786337963380633816338263383633846338563386633876338863389633906339163392633936339463395633966339763398633996340063401634026340363404634056340663407634086340963410634116341263413634146341563416634176341863419634206342163422634236342463425634266342763428634296343063431634326343363434634356343663437634386343963440634416344263443634446344563446634476344863449634506345163452634536345463455634566345763458634596346063461634626346363464634656346663467634686346963470634716347263473634746347563476634776347863479634806348163482634836348463485634866348763488634896349063491634926349363494634956349663497634986349963500635016350263503635046350563506635076350863509635106351163512635136351463515635166351763518635196352063521635226352363524635256352663527635286352963530635316353263533635346353563536635376353863539635406354163542635436354463545635466354763548635496355063551635526355363554635556355663557635586355963560635616356263563635646356563566635676356863569635706357163572635736357463575635766357763578635796358063581635826358363584635856358663587635886358963590635916359263593635946359563596635976359863599636006360163602636036360463605636066360763608636096361063611636126361363614636156361663617636186361963620636216362263623636246362563626636276362863629636306363163632636336363463635636366363763638636396364063641636426364363644636456364663647636486364963650636516365263653636546365563656636576365863659636606366163662636636366463665636666366763668636696367063671636726367363674636756367663677636786367963680636816368263683636846368563686636876368863689636906369163692636936369463695636966369763698636996370063701637026370363704637056370663707637086370963710637116371263713637146371563716637176371863719637206372163722637236372463725637266372763728637296373063731637326373363734637356373663737637386373963740637416374263743637446374563746637476374863749637506375163752637536375463755637566375763758637596376063761637626376363764637656376663767637686376963770637716377263773637746377563776637776377863779637806378163782637836378463785637866378763788637896379063791637926379363794637956379663797637986379963800638016380263803638046380563806638076380863809638106381163812638136381463815638166381763818638196382063821638226382363824638256382663827638286382963830638316383263833638346383563836638376383863839638406384163842638436384463845638466384763848638496385063851638526385363854638556385663857638586385963860638616386263863638646386563866638676386863869638706387163872638736387463875638766387763878638796388063881638826388363884638856388663887638886388963890638916389263893638946389563896638976389863899639006390163902639036390463905639066390763908639096391063911639126391363914639156391663917639186391963920639216392263923639246392563926639276392863929639306393163932639336393463935639366393763938639396394063941639426394363944639456394663947639486394963950639516395263953639546395563956639576395863959639606396163962639636396463965639666396763968639696397063971639726397363974639756397663977639786397963980639816398263983639846398563986639876398863989639906399163992639936399463995639966399763998639996400064001640026400364004640056400664007640086400964010640116401264013640146401564016640176401864019640206402164022640236402464025640266402764028640296403064031640326403364034640356403664037640386403964040640416404264043640446404564046640476404864049640506405164052640536405464055640566405764058640596406064061640626406364064640656406664067640686406964070640716407264073640746407564076640776407864079640806408164082640836408464085640866408764088640896409064091640926409364094640956409664097640986409964100641016410264103641046410564106641076410864109641106411164112641136411464115641166411764118641196412064121641226412364124641256412664127641286412964130641316413264133641346413564136641376413864139641406414164142641436414464145641466414764148641496415064151641526415364154641556415664157641586415964160641616416264163641646416564166641676416864169641706417164172641736417464175641766417764178641796418064181641826418364184641856418664187641886418964190641916419264193641946419564196641976419864199642006420164202642036420464205642066420764208642096421064211642126421364214642156421664217642186421964220642216422264223642246422564226642276422864229642306423164232642336423464235642366423764238642396424064241642426424364244642456424664247642486424964250642516425264253642546425564256642576425864259642606426164262642636426464265642666426764268642696427064271642726427364274642756427664277642786427964280642816428264283642846428564286642876428864289642906429164292642936429464295642966429764298642996430064301643026430364304643056430664307643086430964310643116431264313643146431564316643176431864319643206432164322643236432464325643266432764328643296433064331643326433364334643356433664337643386433964340643416434264343643446434564346643476434864349643506435164352643536435464355643566435764358643596436064361643626436364364643656436664367643686436964370643716437264373643746437564376643776437864379643806438164382643836438464385643866438764388643896439064391643926439364394643956439664397643986439964400644016440264403644046440564406644076440864409644106441164412644136441464415644166441764418644196442064421644226442364424644256442664427644286442964430644316443264433644346443564436644376443864439644406444164442644436444464445644466444764448644496445064451644526445364454644556445664457644586445964460644616446264463644646446564466644676446864469644706447164472644736447464475644766447764478644796448064481644826448364484644856448664487644886448964490644916449264493644946449564496644976449864499645006450164502645036450464505645066450764508645096451064511645126451364514645156451664517645186451964520645216452264523645246452564526645276452864529645306453164532645336453464535645366453764538645396454064541645426454364544645456454664547645486454964550645516455264553645546455564556645576455864559645606456164562645636456464565645666456764568645696457064571645726457364574645756457664577645786457964580645816458264583645846458564586645876458864589645906459164592645936459464595645966459764598645996460064601646026460364604646056460664607646086460964610646116461264613646146461564616646176461864619646206462164622646236462464625646266462764628646296463064631646326463364634646356463664637646386463964640646416464264643646446464564646646476464864649646506465164652646536465464655646566465764658646596466064661646626466364664646656466664667646686466964670646716467264673646746467564676646776467864679646806468164682646836468464685646866468764688646896469064691646926469364694646956469664697646986469964700647016470264703647046470564706647076470864709647106471164712647136471464715647166471764718647196472064721647226472364724647256472664727647286472964730647316473264733647346473564736647376473864739647406474164742647436474464745647466474764748647496475064751647526475364754647556475664757647586475964760647616476264763647646476564766647676476864769647706477164772647736477464775647766477764778647796478064781647826478364784647856478664787647886478964790647916479264793647946479564796647976479864799648006480164802648036480464805648066480764808648096481064811648126481364814648156481664817648186481964820648216482264823648246482564826648276482864829648306483164832648336483464835648366483764838648396484064841648426484364844648456484664847648486484964850648516485264853648546485564856648576485864859648606486164862648636486464865648666486764868648696487064871648726487364874648756487664877648786487964880648816488264883648846488564886648876488864889648906489164892648936489464895648966489764898648996490064901649026490364904649056490664907649086490964910649116491264913649146491564916649176491864919649206492164922649236492464925649266492764928649296493064931649326493364934649356493664937649386493964940649416494264943649446494564946649476494864949649506495164952649536495464955649566495764958649596496064961649626496364964649656496664967649686496964970649716497264973649746497564976649776497864979649806498164982649836498464985649866498764988649896499064991649926499364994649956499664997649986499965000650016500265003650046500565006650076500865009650106501165012650136501465015650166501765018650196502065021650226502365024650256502665027650286502965030650316503265033650346503565036650376503865039650406504165042650436504465045650466504765048650496505065051650526505365054650556505665057650586505965060650616506265063650646506565066650676506865069650706507165072650736507465075650766507765078650796508065081650826508365084650856508665087650886508965090650916509265093650946509565096650976509865099651006510165102651036510465105651066510765108651096511065111651126511365114651156511665117651186511965120651216512265123651246512565126651276512865129651306513165132651336513465135651366513765138651396514065141651426514365144651456514665147651486514965150651516515265153651546515565156651576515865159651606516165162651636516465165651666516765168651696517065171651726517365174651756517665177651786517965180651816518265183651846518565186651876518865189651906519165192651936519465195651966519765198651996520065201652026520365204652056520665207652086520965210652116521265213652146521565216652176521865219652206522165222652236522465225652266522765228652296523065231652326523365234652356523665237652386523965240652416524265243652446524565246652476524865249652506525165252652536525465255652566525765258652596526065261652626526365264652656526665267652686526965270652716527265273652746527565276652776527865279652806528165282652836528465285652866528765288652896529065291652926529365294652956529665297652986529965300653016530265303653046530565306653076530865309653106531165312653136531465315653166531765318653196532065321653226532365324653256532665327653286532965330653316533265333653346533565336653376533865339653406534165342653436534465345653466534765348653496535065351653526535365354653556535665357653586535965360653616536265363653646536565366653676536865369653706537165372653736537465375653766537765378653796538065381653826538365384653856538665387653886538965390653916539265393653946539565396653976539865399654006540165402654036540465405654066540765408654096541065411654126541365414654156541665417654186541965420654216542265423654246542565426654276542865429654306543165432654336543465435654366543765438654396544065441654426544365444654456544665447654486544965450654516545265453654546545565456654576545865459654606546165462654636546465465654666546765468654696547065471654726547365474654756547665477654786547965480654816548265483654846548565486654876548865489654906549165492654936549465495654966549765498654996550065501655026550365504655056550665507655086550965510655116551265513655146551565516655176551865519655206552165522655236552465525655266552765528655296553065531655326553365534655356553665537655386553965540655416554265543655446554565546655476554865549655506555165552655536555465555655566555765558655596556065561655626556365564655656556665567655686556965570655716557265573655746557565576655776557865579655806558165582655836558465585655866558765588655896559065591655926559365594655956559665597655986559965600656016560265603656046560565606656076560865609656106561165612656136561465615656166561765618656196562065621656226562365624656256562665627656286562965630656316563265633656346563565636656376563865639656406564165642656436564465645656466564765648656496565065651656526565365654656556565665657656586565965660656616566265663656646566565666 |
- /**
- * @license
- * Video.js 8.3.0 <http://videojs.com/>
- * Copyright Brightcove, Inc. <https://www.brightcove.com/>
- * Available under Apache License Version 2.0
- * <https://github.com/videojs/video.js/blob/main/LICENSE>
- *
- * Includes vtt.js <https://github.com/mozilla/vtt.js>
- * Available under Apache License Version 2.0
- * <https://github.com/mozilla/vtt.js/blob/main/LICENSE>
- */
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).videojs=t()}(this,function(){"use strict";var R="8.3.0";const U={},B=function(e,t){return U[e]=U[e]||[],t&&(U[e]=U[e].concat(t)),U[e]};function F(e,t){return!((t=B(e).indexOf(t))<=-1||(U[e]=U[e].slice(),U[e].splice(t,1),0))}const j={prefixed:!0};var H=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror","fullscreen"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror","-webkit-full-screen"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror","-moz-full-screen"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError","-ms-fullscreen"]],q=H[0];let V;for(let e=0;e<H.length;e++)if(H[e][1]in document){V=H[e];break}if(V){for(let e=0;e<V.length;e++)j[q[e]]=V[e];j.prefixed=V[0]!==q[0]}let l=[];function $(e){return K(e)?Object.keys(e):[]}const d=function t(i){let s="info",r;function n(...e){r("log",s,e)}var a,o;return r=(a=i,(t,i,s)=>{var e,i=o.levels[i],r=new RegExp(`^(${i})$`);if("log"!==t&&s.unshift(t.toUpperCase()+":"),s.unshift(a+":"),l&&(l.push([].concat(s)),e=l.length-1e3,l.splice(0,0<e?e:0)),window.console){let e=window.console[t];(e=e||"debug"!==t?e:window.console.info||window.console.log)&&i&&r.test(t)&&e[Array.isArray(s)?"apply":"call"](window.console,s)}}),(o=n).createLogger=e=>t(i+": "+e),n.levels={all:"debug|log|warn|error",off:"",debug:"debug|log|warn|error",info:"log|warn|error",warn:"warn|error",error:"error",DEFAULT:s},n.level=e=>{if("string"==typeof e){if(!n.levels.hasOwnProperty(e))throw new Error(`"${e}" in not a valid log level`);s=e}return s},n.history=()=>l?[].concat(l):[],n.history.filter=t=>(l||[]).filter(e=>new RegExp(`.*${t}.*`).test(e[0])),n.history.clear=()=>{l&&(l.length=0)},n.history.disable=()=>{null!==l&&(l.length=0,l=null)},n.history.enable=()=>{null===l&&(l=[])},n.error=(...e)=>r("error",s,e),n.warn=(...e)=>r("warn",s,e),n.debug=(...e)=>r("debug",s,e),n}("VIDEOJS"),W=d.createLogger,G=Object.prototype.toString;function z(t,i){$(t).forEach(e=>i(t[e],e))}function X(i,s,e=0){return $(i).reduce((e,t)=>s(e,i[t],t),e)}function K(e){return!!e&&"object"==typeof e}function Y(e){return K(e)&&"[object Object]"===G.call(e)&&e.constructor===Object}function h(...e){const i={};return e.forEach(e=>{e&&z(e,(e,t)=>{Y(e)?(Y(i[t])||(i[t]={}),i[t]=h(i[t],e)):i[t]=e})}),i}function Q(t,i,s,e=!0){const r=e=>Object.defineProperty(t,i,{value:e,enumerable:!0,writable:!0});var n={configurable:!0,enumerable:!0,get(){var e=s();return r(e),e}};return e&&(n.set=r),Object.defineProperty(t,i,n)}var J=Object.freeze({__proto__:null,each:z,reduce:X,isObject:K,isPlain:Y,merge:h,defineLazyProperty:Q});let Z=!1,ee=null,te=!1,ie,se=!1,re=!1,ne=!1,ae=!1,oe=null,le=null,de=null,he=!1,ue=!1,ce=!1,pe=!1;const me=Boolean(_e()&&("ontouchstart"in window||window.navigator.maxTouchPoints||window.DocumentTouch&&window.document instanceof window.DocumentTouch));var ge,e=window.navigator&&window.navigator.userAgentData;if(e&&(te="Android"===e.platform,re=Boolean(e.brands.find(e=>"Microsoft Edge"===e.brand)),ne=Boolean(e.brands.find(e=>"Chromium"===e.brand)),ae=!re&&ne,oe=le=(e.brands.find(e=>"Chromium"===e.brand)||{}).version||null,ue="Windows"===e.platform),!ne){const M=window.navigator&&window.navigator.userAgent||"";Z=/iPod/i.test(M),ee=(e=M.match(/OS (\d+)_/i))&&e[1]?e[1]:null,te=/Android/i.test(M),ie=(e=M.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i))?(mt=e[1]&&parseFloat(e[1]),ge=e[2]&&parseFloat(e[2]),mt&&ge?parseFloat(e[1]+"."+e[2]):mt||null):null,se=/Firefox/i.test(M),re=/Edg/i.test(M),ne=/Chrome/i.test(M)||/CriOS/i.test(M),ae=!re&&ne,oe=le=(ge=M.match(/(Chrome|CriOS)\/(\d+)/))&&ge[2]?parseFloat(ge[2]):null,de=function(){var e=/MSIE\s(\d+)\.\d/.exec(M);let t=e&&parseFloat(e[1]);return t=!t&&/Trident\/7.0/i.test(M)&&/rv:11.0/.test(M)?11:t}(),he=/Safari/i.test(M)&&!ae&&!te&&!re,ue=/Windows/i.test(M),ce=/iPad/i.test(M)||he&&me&&!/iPhone/i.test(M),pe=/iPhone/i.test(M)&&!ce}const u=pe||ce||Z,fe=(he||u)&&!ae;e=Object.freeze({__proto__:null,get IS_IPOD(){return Z},get IOS_VERSION(){return ee},get IS_ANDROID(){return te},get ANDROID_VERSION(){return ie},get IS_FIREFOX(){return se},get IS_EDGE(){return re},get IS_CHROMIUM(){return ne},get IS_CHROME(){return ae},get CHROMIUM_VERSION(){return oe},get CHROME_VERSION(){return le},get IE_VERSION(){return de},get IS_SAFARI(){return he},get IS_WINDOWS(){return ue},get IS_IPAD(){return ce},get IS_IPHONE(){return pe},TOUCH_ENABLED:me,IS_IOS:u,IS_ANY_SAFARI:fe});function ye(e){return"string"==typeof e&&Boolean(e.trim())}function _e(){return document===window.document}function ve(e){return K(e)&&1===e.nodeType}function be(){try{return window.parent!==window.self}catch(e){return!0}}function Te(i){return function(e,t){return ye(e)?(t=ve(t=ye(t)?document.querySelector(t):t)?t:document)[i]&&t[i](e):document[i](null)}}function o(e="div",i={},t={},s){const r=document.createElement(e);return Object.getOwnPropertyNames(i).forEach(function(e){var t=i[e];"textContent"===e?Se(r,t):r[e]===t&&"tabIndex"!==e||(r[e]=t)}),Object.getOwnPropertyNames(t).forEach(function(e){r.setAttribute(e,t[e])}),s&&He(r,s),r}function Se(e,t){return"undefined"==typeof e.textContent?e.innerText=t:e.textContent=t,e}function we(e,t){t.firstChild?t.insertBefore(e,t.firstChild):t.appendChild(e)}function Ee(e,t){if(0<=t.indexOf(" "))throw new Error("class has illegal whitespace characters");return e.classList.contains(t)}function ke(e,...t){return e.classList.add(...t.reduce((e,t)=>e.concat(t.split(/\s+/)),[])),e}function Ce(e,...t){return e?(e.classList.remove(...t.reduce((e,t)=>e.concat(t.split(/\s+/)),[])),e):(d.warn("removeClass was called with an element that doesn't exist"),null)}function Ie(t,e,i){return"boolean"!=typeof(i="function"==typeof i?i(t,e):i)&&(i=void 0),e.split(/\s+/).forEach(e=>t.classList.toggle(e,i)),t}function xe(i,s){Object.getOwnPropertyNames(s).forEach(function(e){var t=s[e];null===t||"undefined"==typeof t||!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})}function Ae(i){var s={};if(i&&i.attributes&&0<i.attributes.length){var r=i.attributes;for(let t=r.length-1;0<=t;t--){var n=r[t].name;let e=r[t].value;"boolean"!=typeof i[n]&&-1===",autoplay,controls,playsinline,loop,muted,default,defaultMuted,".indexOf(","+n+",")||(e=null!==e),s[n]=e}}return s}function Pe(e,t){return e.getAttribute(t)}function Le(e,t,i){e.setAttribute(t,i)}function Oe(e,t){e.removeAttribute(t)}function De(){document.body.focus(),document.onselectstart=function(){return!1}}function Ne(){document.onselectstart=function(){return!0}}function Me(e){if(e&&e.getBoundingClientRect&&e.parentNode){const t=e.getBoundingClientRect(),i={};return["bottom","height","left","right","top","width"].forEach(e=>{void 0!==t[e]&&(i[e]=t[e])}),i.height||(i.height=parseFloat(Ge(e,"height"))),i.width||(i.width=parseFloat(Ge(e,"width"))),i}}function Re(e){if(!e||!e.offsetParent)return{left:0,top:0,width:0,height:0};var t=e.offsetWidth,i=e.offsetHeight;let s=0,r=0;for(;e.offsetParent&&e!==document[j.fullscreenElement];)s+=e.offsetLeft,r+=e.offsetTop,e=e.offsetParent;return{left:s,top:r,width:t,height:i}}function Ue(t,e){var i={x:0,y:0};if(u){let e=t;for(;e&&"html"!==e.nodeName.toLowerCase();){var s,r=Ge(e,"transform");/^matrix/.test(r)?(s=r.slice(7,-1).split(/,\s/).map(Number),i.x+=s[4],i.y+=s[5]):/^matrix3d/.test(r)&&(s=r.slice(9,-1).split(/,\s/).map(Number),i.x+=s[12],i.y+=s[13]),e=e.parentNode}}var n={},a=Re(e.target),t=Re(t),o=t.width,l=t.height;let d=e.offsetY-(t.top-a.top),h=e.offsetX-(t.left-a.left);return e.changedTouches&&(h=e.changedTouches[0].pageX-t.left,d=e.changedTouches[0].pageY+t.top,u)&&(h-=i.x,d-=i.y),n.y=1-Math.max(0,Math.min(1,d/l)),n.x=Math.max(0,Math.min(1,h/o)),n}function Be(e){return K(e)&&3===e.nodeType}function Fe(e){for(;e.firstChild;)e.removeChild(e.firstChild);return e}function je(e){return"function"==typeof e&&(e=e()),(Array.isArray(e)?e:[e]).map(e=>ve(e="function"==typeof e?e():e)||Be(e)?e:"string"==typeof e&&/\S/.test(e)?document.createTextNode(e):void 0).filter(e=>e)}function He(t,e){return je(e).forEach(e=>t.appendChild(e)),t}function qe(e,t){return He(Fe(e),t)}function Ve(e){return void 0===e.button&&void 0===e.buttons||0===e.button&&void 0===e.buttons||"mouseup"===e.type&&0===e.button&&0===e.buttons||0===e.button&&1===e.buttons}const $e=Te("querySelector"),We=Te("querySelectorAll");function Ge(t,i){if(!t||!i)return"";if("function"!=typeof window.getComputedStyle)return"";{let e;try{e=window.getComputedStyle(t)}catch(e){return""}return e?e.getPropertyValue(i)||e[i]:""}}var ze=Object.freeze({__proto__:null,isReal:_e,isEl:ve,isInFrame:be,createEl:o,textContent:Se,prependTo:we,hasClass:Ee,addClass:ke,removeClass:Ce,toggleClass:Ie,setAttributes:xe,getAttributes:Ae,getAttribute:Pe,setAttribute:Le,removeAttribute:Oe,blockTextSelection:De,unblockTextSelection:Ne,getBoundingClientRect:Me,findPosition:Re,getPointerPosition:Ue,isTextNode:Be,emptyEl:Fe,normalizeContent:je,appendContent:He,insertContent:qe,isSingleLeftClick:Ve,$:$e,$$:We,computedStyle:Ge});let Xe=!1,Ke;function Ye(){if(!1!==Ke.options.autoSetup){var e=Array.prototype.slice.call(document.getElementsByTagName("video")),t=Array.prototype.slice.call(document.getElementsByTagName("audio")),i=Array.prototype.slice.call(document.getElementsByTagName("video-js")),s=e.concat(t,i);if(s&&0<s.length)for(let e=0,t=s.length;e<t;e++){var r=s[e];if(!r||!r.getAttribute){Qe(1);break}void 0===r.player&&null!==r.getAttribute("data-setup")&&Ke(r)}else Xe||Qe(1)}}function Qe(e,t){_e()&&(t&&(Ke=t),window.setTimeout(Ye,e))}function Je(){Xe=!0,window.removeEventListener("load",Je)}_e()&&("complete"===document.readyState?Je():window.addEventListener("load",Je));function Ze(e){var t=document.createElement("style");return t.className=e,t}function et(e,t){e.styleSheet?e.styleSheet.cssText=t:e.textContent=t}var c=new WeakMap;let tt=3;function it(e,t){var i;c.has(e)&&(0===(i=c.get(e)).handlers[t].length&&(delete i.handlers[t],e.removeEventListener?e.removeEventListener(t,i.dispatcher,!1):e.detachEvent&&e.detachEvent("on"+t,i.dispatcher)),Object.getOwnPropertyNames(i.handlers).length<=0&&(delete i.handlers,delete i.dispatcher,delete i.disabled),0===Object.getOwnPropertyNames(i).length)&&c.delete(e)}function st(t,i,e,s){e.forEach(function(e){t(i,e,s)})}function rt(e){if(!e.fixed_){if(!e||!e.isPropagationStopped||!e.isImmediatePropagationStopped){const n=e||window.event;e={};for(const a in n)"layerX"===a||"layerY"===a||"keyLocation"===a||"webkitMovementX"===a||"webkitMovementY"===a||"path"===a||"returnValue"===a&&n.preventDefault||(e[a]=n[a]);var t,i;e.target||(e.target=e.srcElement||document),e.relatedTarget||(e.relatedTarget=e.fromElement===e.target?e.toElement:e.fromElement),e.preventDefault=function(){n.preventDefault&&n.preventDefault(),e.returnValue=!1,n.returnValue=!1,e.defaultPrevented=!0},e.defaultPrevented=!1,e.stopPropagation=function(){n.stopPropagation&&n.stopPropagation(),e.cancelBubble=!0,n.cancelBubble=!0,e.isPropagationStopped=s},e.isPropagationStopped=r,e.stopImmediatePropagation=function(){n.stopImmediatePropagation&&n.stopImmediatePropagation(),e.isImmediatePropagationStopped=s,e.stopPropagation()},e.isImmediatePropagationStopped=r,null!==e.clientX&&void 0!==e.clientX&&(t=document.documentElement,i=document.body,e.pageX=e.clientX+(t&&t.scrollLeft||i&&i.scrollLeft||0)-(t&&t.clientLeft||i&&i.clientLeft||0),e.pageY=e.clientY+(t&&t.scrollTop||i&&i.scrollTop||0)-(t&&t.clientTop||i&&i.clientTop||0)),e.which=e.charCode||e.keyCode,null!==e.button&&void 0!==e.button&&(e.button=1&e.button?0:4&e.button?1:2&e.button?2:0)}e.fixed_=!0}return e;function s(){return!0}function r(){return!1}}let nt;const at=["touchstart","touchmove"];function ot(n,t,e){if(Array.isArray(t))return st(ot,n,t,e);c.has(n)||c.set(n,{});const a=c.get(n);if(a.handlers||(a.handlers={}),a.handlers[t]||(a.handlers[t]=[]),e.guid||(e.guid=tt++),a.handlers[t].push(e),a.dispatcher||(a.disabled=!1,a.dispatcher=function(i,s){if(!a.disabled){i=rt(i);var e=a.handlers[i.type];if(e){var r=e.slice(0);for(let e=0,t=r.length;e<t&&!i.isImmediatePropagationStopped();e++)try{r[e].call(n,i,s)}catch(e){d.error(e)}}}}),1===a.handlers[t].length)if(n.addEventListener){let e=!1;(function(){if("boolean"!=typeof nt){nt=!1;try{var e=Object.defineProperty({},"passive",{get(){nt=!0}});window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(e){}}return nt})()&&-1<at.indexOf(t)&&(e={passive:!0}),n.addEventListener(t,a.dispatcher,e)}else n.attachEvent&&n.attachEvent("on"+t,a.dispatcher)}function p(e,t,i){if(c.has(e)){const n=c.get(e);if(n.handlers){if(Array.isArray(t))return st(p,e,t,i);var s=function(e,t){n.handlers[t]=[],it(e,t)};if(void 0===t)for(const a in n.handlers)Object.prototype.hasOwnProperty.call(n.handlers||{},a)&&s(e,a);else{var r=n.handlers[t];if(r)if(i){if(i.guid)for(let e=0;e<r.length;e++)r[e].guid===i.guid&&r.splice(e--,1);it(e,t)}else s(e,t)}}}}function lt(e,t,i){var s=c.has(e)?c.get(e):{},r=e.parentNode||e.ownerDocument;return"string"==typeof t?t={type:t,target:e}:t.target||(t.target=e),t=rt(t),s.dispatcher&&s.dispatcher.call(e,t,i),r&&!t.isPropagationStopped()&&!0===t.bubbles?lt.call(null,r,t,i):!r&&!t.defaultPrevented&&t.target&&t.target[t.type]&&(c.has(t.target)||c.set(t.target,{}),s=c.get(t.target),t.target[t.type])&&(s.disabled=!0,"function"==typeof t.target[t.type]&&t.target[t.type](),s.disabled=!1),!t.defaultPrevented}function dt(e,t,i){if(Array.isArray(t))return st(dt,e,t,i);function s(){p(e,t,s),i.apply(this,arguments)}s.guid=i.guid=i.guid||tt++,ot(e,t,s)}function ht(e,t,i){function s(){p(e,t,s),i.apply(this,arguments)}s.guid=i.guid=i.guid||tt++,ot(e,t,s)}var ut=Object.freeze({__proto__:null,fixEvent:rt,on:ot,off:p,trigger:lt,one:dt,any:ht});function m(e,t,i){return t.guid||(t.guid=tt++),(e=t.bind(e)).guid=i?i+"_"+t.guid:t.guid,e}function ct(i,s){let r=window.performance.now();return function(...e){var t=window.performance.now();t-r>=s&&(i(...e),r=t)}}function pt(s,r,n,a=window){let o;function e(){const e=this,t=arguments;let i=function(){o=null,i=null,n||s.apply(e,t)};!o&&n&&s.apply(e,t),a.clearTimeout(o),o=a.setTimeout(i,r)}return e.cancel=()=>{a.clearTimeout(o),o=null},e}var mt=Object.freeze({__proto__:null,UPDATE_REFRESH_INTERVAL:30,bind_:m,throttle:ct,debounce:pt});let gt;class ft{on(e,t){var i=this.addEventListener;this.addEventListener=()=>{},ot(this,e,t),this.addEventListener=i}off(e,t){p(this,e,t)}one(e,t){var i=this.addEventListener;this.addEventListener=()=>{},dt(this,e,t),this.addEventListener=i}any(e,t){var i=this.addEventListener;this.addEventListener=()=>{},ht(this,e,t),this.addEventListener=i}trigger(e){var t=e.type||e;e=rt(e="string"==typeof e?{type:t}:e),this.allowedEvents_[t]&&this["on"+t]&&this["on"+t](e),lt(this,e)}queueTrigger(e){gt=gt||new Map;const t=e.type||e;let i=gt.get(this);i||(i=new Map,gt.set(this,i));var s=i.get(t),s=(i.delete(t),window.clearTimeout(s),window.setTimeout(()=>{i.delete(t),0===i.size&&(i=null,gt.delete(this)),this.trigger(e)},0));i.set(t,s)}}ft.prototype.allowedEvents_={},ft.prototype.addEventListener=ft.prototype.on,ft.prototype.removeEventListener=ft.prototype.off,ft.prototype.dispatchEvent=ft.prototype.trigger;const yt=e=>"function"==typeof e.name?e.name():"string"==typeof e.name?e.name:e.name_||(e.constructor&&e.constructor.name?e.constructor.name:typeof e),_t=t=>t instanceof ft||!!t.eventBusEl_&&["on","one","off","trigger"].every(e=>"function"==typeof t[e]),vt=e=>"string"==typeof e&&/\S/.test(e)||Array.isArray(e)&&!!e.length,bt=(e,t,i)=>{if(!e||!e.nodeName&&!_t(e))throw new Error(`Invalid target for ${yt(t)}#${i}; must be a DOM node or evented object.`)},Tt=(e,t,i)=>{if(!vt(e))throw new Error(`Invalid event type for ${yt(t)}#${i}; must be a non-empty string or array.`)},St=(e,t,i)=>{if("function"!=typeof e)throw new Error(`Invalid listener for ${yt(t)}#${i}; must be a function.`)},wt=(e,t,i)=>{var s=t.length<3||t[0]===e||t[0]===e.eventBusEl_;let r,n,a;return s?(r=e.eventBusEl_,3<=t.length&&t.shift(),[n,a]=t):[r,n,a]=t,bt(r,e,i),Tt(n,e,i),St(a,e,i),a=m(e,a),{isTargetingSelf:s,target:r,type:n,listener:a}},Et=(e,t,i,s)=>{bt(e,e,t),e.nodeName?ut[t](e,i,s):e[t](i,s)},kt={on(...e){const{isTargetingSelf:t,target:i,type:s,listener:r}=wt(this,e,"on");if(Et(i,"on",s,r),!t){const n=()=>this.off(i,s,r);n.guid=r.guid;e=()=>this.off("dispose",n);e.guid=r.guid,Et(this,"on","dispose",n),Et(i,"on","dispose",e)}},one(...e){const{isTargetingSelf:t,target:i,type:s,listener:r}=wt(this,e,"one");if(t)Et(i,"one",s,r);else{const n=(...e)=>{this.off(i,s,n),r.apply(null,e)};n.guid=r.guid,Et(i,"one",s,n)}},any(...e){const{isTargetingSelf:t,target:i,type:s,listener:r}=wt(this,e,"any");if(t)Et(i,"any",s,r);else{const n=(...e)=>{this.off(i,s,n),r.apply(null,e)};n.guid=r.guid,Et(i,"any",s,n)}},off(e,t,i){!e||vt(e)?p(this.eventBusEl_,e,t):(e=e,t=t,bt(e,this,"off"),Tt(t,this,"off"),St(i,this,"off"),i=m(this,i),this.off("dispose",i),e.nodeName?(p(e,t,i),p(e,"dispose",i)):_t(e)&&(e.off(t,i),e.off("dispose",i)))},trigger(e,t){bt(this.eventBusEl_,this,"trigger");var i=e&&"string"!=typeof e?e.type:e;if(vt(i))return lt(this.eventBusEl_,e,t);throw new Error(`Invalid event type for ${yt(this)}#trigger; `+"must be a non-empty string or object with a type key that has a non-empty value.")}};function Ct(e,t={}){t=t.eventBusKey;if(t){if(!e[t].nodeName)throw new Error(`The eventBusKey "${t}" does not refer to an element.`);e.eventBusEl_=e[t]}else e.eventBusEl_=o("span",{className:"vjs-event-bus"});Object.assign(e,kt),e.eventedCallbacks&&e.eventedCallbacks.forEach(e=>{e()}),e.on("dispose",()=>{e.off(),[e,e.el_,e.eventBusEl_].forEach(function(e){e&&c.has(e)&&c.delete(e)}),window.setTimeout(()=>{e.eventBusEl_=null},0)})}const It={state:{},setState(e){"function"==typeof e&&(e=e());let i;return z(e,(e,t)=>{this.state[t]!==e&&((i=i||{})[t]={from:this.state[t],to:e}),this.state[t]=e}),i&&_t(this)&&this.trigger({changes:i,type:"statechanged"}),i}};function xt(e,t){Object.assign(e,It),e.state=Object.assign({},e.state,t),"function"==typeof e.handleStateChanged&&_t(e)&&e.on("statechanged",e.handleStateChanged)}function At(e){return"string"!=typeof e?e:e.replace(/./,e=>e.toLowerCase())}function g(e){return"string"!=typeof e?e:e.replace(/./,e=>e.toUpperCase())}function Pt(e,t){return g(e)===g(t)}var Lt=Object.freeze({__proto__:null,toLowerCase:At,toTitleCase:g,titleCaseEquals:Pt}),Ot="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Dt(e,t){return e(t={exports:{}},t.exports),t.exports}var r=Dt(function(e,t){function i(e){var t;return"number"==typeof(e=e&&"object"==typeof e&&(t=e.which||e.keyCode||e.charCode)?t:e)?o[e]:(t=String(e),s[t.toLowerCase()]||r[t.toLowerCase()]||(1===t.length?t.charCodeAt(0):void 0))}i.isEventKey=function(e,t){if(e&&"object"==typeof e){e=e.which||e.keyCode||e.charCode;if(null!=e)if("string"==typeof t){var i=s[t.toLowerCase()];if(i)return i===e;if(i=r[t.toLowerCase()])return i===e}else if("number"==typeof t)return t===e;return!1}};for(var s=(t=e.exports=i).code=t.codes={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,"pause/break":19,"caps lock":20,esc:27,space:32,"page up":33,"page down":34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,delete:46,command:91,"left command":91,"right command":93,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},r=t.aliases={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,break:19,caps:20,return:13,escape:27,spc:32,spacebar:32,pgup:33,pgdn:34,ins:45,del:46,cmd:91},n=97;n<123;n++)s[String.fromCharCode(n)]=n-32;for(var n=48;n<58;n++)s[n-48]=n;for(n=1;n<13;n++)s["f"+n]=n+111;for(n=0;n<10;n++)s["numpad "+n]=n+96;var a,o=t.names=t.title={};for(n in s)o[s[n]]=n;for(a in r)s[a]=r[a]});r.code,r.codes,r.aliases,r.names,r.title;class f{constructor(e,t,i){!e&&this.play?this.player_=e=this:this.player_=e,this.isDisposed_=!1,this.parentComponent_=null,this.options_=h({},this.options_),t=this.options_=h(this.options_,t),this.id_=t.id||t.el&&t.el.id,this.id_||(e=e&&e.id&&e.id()||"no_player",this.id_=e+"_component_"+tt++),this.name_=t.name||null,t.el?this.el_=t.el:!1!==t.createEl&&(this.el_=this.createEl()),t.className&&this.el_&&t.className.split(" ").forEach(e=>this.addClass(e)),["on","off","one","any","trigger"].forEach(e=>{this[e]=void 0}),!1!==t.evented&&(Ct(this,{eventBusKey:this.el_?"el_":null}),this.handleLanguagechange=this.handleLanguagechange.bind(this),this.on(this.player_,"languagechange",this.handleLanguagechange)),xt(this,this.constructor.defaultState),this.children_=[],this.childIndex_={},this.childNameIndex_={},this.setTimeoutIds_=new Set,this.setIntervalIds_=new Set,this.rafIds_=new Set,this.namedRafs_=new Map,(this.clearingTimersOnDispose_=!1)!==t.initChildren&&this.initChildren(),this.ready(i),!1!==t.reportTouchActivity&&this.enableTouchActivity()}on(e,t){}off(e,t){}one(e,t){}any(e,t){}trigger(e){}dispose(e={}){if(!this.isDisposed_){if(this.readyQueue_&&(this.readyQueue_.length=0),this.trigger({type:"dispose",bubbles:!1}),this.isDisposed_=!0,this.children_)for(let e=this.children_.length-1;0<=e;e--)this.children_[e].dispose&&this.children_[e].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.parentComponent_=null,this.el_&&(this.el_.parentNode&&(e.restoreEl?this.el_.parentNode.replaceChild(e.restoreEl,this.el_):this.el_.parentNode.removeChild(this.el_)),this.el_=null),this.player_=null}}isDisposed(){return Boolean(this.isDisposed_)}player(){return this.player_}options(e){return e&&(this.options_=h(this.options_,e)),this.options_}el(){return this.el_}createEl(e,t,i){return o(e,t,i)}localize(e,s,t=e){var i=this.player_.language&&this.player_.language(),r=this.player_.languages&&this.player_.languages(),n=r&&r[i],i=i&&i.split("-")[0],r=r&&r[i];let a=t;return n&&n[e]?a=n[e]:r&&r[e]&&(a=r[e]),a=s?a.replace(/\{(\d+)\}/g,function(e,t){t=s[t-1];let i="undefined"==typeof t?e:t;return i}):a}handleLanguagechange(){}contentEl(){return this.contentEl_||this.el_}id(){return this.id_}name(){return this.name_}children(){return this.children_}getChildById(e){return this.childIndex_[e]}getChild(e){if(e)return this.childNameIndex_[e]}getDescendant(...t){t=t.reduce((e,t)=>e.concat(t),[]);let i=this;for(let e=0;e<t.length;e++)if(!(i=i.getChild(t[e]))||!i.getChild)return;return i}addChild(e,t={},i=this.children_.length){let s,r;if("string"==typeof e){r=g(e);var n=t.componentClass||r,a=(t.name=r,f.getComponent(n));if(!a)throw new Error(`Component ${n} does not exist`);if("function"!=typeof a)return null;s=new a(this.player_||this,t)}else s=e;if(s.parentComponent_&&s.parentComponent_.removeChild(s),this.children_.splice(i,0,s),s.parentComponent_=this,"function"==typeof s.id&&(this.childIndex_[s.id()]=s),(r=r||s.name&&g(s.name()))&&(this.childNameIndex_[r]=s,this.childNameIndex_[At(r)]=s),"function"==typeof s.el&&s.el()){let e=null;this.children_[i+1]&&(this.children_[i+1].el_?e=this.children_[i+1].el_:ve(this.children_[i+1])&&(e=this.children_[i+1])),this.contentEl().insertBefore(s.el(),e)}return s}removeChild(i){if((i="string"==typeof i?this.getChild(i):i)&&this.children_){let t=!1;for(let e=this.children_.length-1;0<=e;e--)if(this.children_[e]===i){t=!0,this.children_.splice(e,1);break}var e;t&&(i.parentComponent_=null,this.childIndex_[i.id()]=null,this.childNameIndex_[g(i.name())]=null,this.childNameIndex_[At(i.name())]=null,e=i.el())&&e.parentNode===this.contentEl()&&this.contentEl().removeChild(i.el())}}initChildren(){const s=this.options_.children;if(s){const r=this.options_;let e;const t=f.getComponent("Tech");(e=Array.isArray(s)?s:Object.keys(s)).concat(Object.keys(this.options_).filter(function(t){return!e.some(function(e){return"string"==typeof e?t===e:t===e.name})})).map(e=>{let t,i;return i="string"==typeof e?(t=e,s[t]||this.options_[t]||{}):(t=e.name,e),{name:t,opts:i}}).filter(e=>{e=f.getComponent(e.opts.componentClass||g(e.name));return e&&!t.isTech(e)}).forEach(e=>{var t=e.name;let i=e.opts;!1!==(i=void 0!==r[t]?r[t]:i)&&((i=!0===i?{}:i).playerOptions=this.options_.playerOptions,e=this.addChild(t,i))&&(this[t]=e)})}}buildCSSClass(){return""}ready(e,t=!1){e&&(this.isReady_?t?e.call(this):this.setTimeout(e,1):(this.readyQueue_=this.readyQueue_||[],this.readyQueue_.push(e)))}triggerReady(){this.isReady_=!0,this.setTimeout(function(){var e=this.readyQueue_;this.readyQueue_=[],e&&0<e.length&&e.forEach(function(e){e.call(this)},this),this.trigger("ready")},1)}$(e,t){return $e(e,t||this.contentEl())}$$(e,t){return We(e,t||this.contentEl())}hasClass(e){return Ee(this.el_,e)}addClass(...e){ke(this.el_,...e)}removeClass(...e){Ce(this.el_,...e)}toggleClass(e,t){Ie(this.el_,e,t)}show(){this.removeClass("vjs-hidden")}hide(){this.addClass("vjs-hidden")}lockShowing(){this.addClass("vjs-lock-showing")}unlockShowing(){this.removeClass("vjs-lock-showing")}getAttribute(e){return Pe(this.el_,e)}setAttribute(e,t){Le(this.el_,e,t)}removeAttribute(e){Oe(this.el_,e)}width(e,t){return this.dimension("width",e,t)}height(e,t){return this.dimension("height",e,t)}dimensions(e,t){this.width(e,!0),this.height(t)}dimension(e,t,i){var s,r;if(void 0===t)return this.el_?-1!==(r=(s=this.el_.style[e]).indexOf("px"))?parseInt(s.slice(0,r),10):parseInt(this.el_["offset"+g(e)],10):0;-1!==(""+(t=null!==t&&t==t?t:0)).indexOf("%")||-1!==(""+t).indexOf("px")?this.el_.style[e]=t:this.el_.style[e]="auto"===t?"":t+"px",i||this.trigger("componentresize")}currentDimension(e){let t=0;if("width"!==e&&"height"!==e)throw new Error("currentDimension only accepts width or height value");return t=Ge(this.el_,e),0!==(t=parseFloat(t))&&!isNaN(t)||(e="offset"+g(e),t=this.el_[e]),t}currentDimensions(){return{width:this.currentDimension("width"),height:this.currentDimension("height")}}currentWidth(){return this.currentDimension("width")}currentHeight(){return this.currentDimension("height")}focus(){this.el_.focus()}blur(){this.el_.blur()}handleKeyDown(e){this.player_&&(r.isEventKey(e,"Tab")||e.stopPropagation(),this.player_.handleKeyDown(e))}handleKeyPress(e){this.handleKeyDown(e)}emitTapEvents(){let t=0,i=null;let s;this.on("touchstart",function(e){1===e.touches.length&&(i={pageX:e.touches[0].pageX,pageY:e.touches[0].pageY},t=window.performance.now(),s=!0)}),this.on("touchmove",function(e){var t;(1<e.touches.length||i&&(t=e.touches[0].pageX-i.pageX,e=e.touches[0].pageY-i.pageY,10<Math.sqrt(t*t+e*e)))&&(s=!1)});function e(){s=!1}this.on("touchleave",e),this.on("touchcancel",e),this.on("touchend",function(e){!(i=null)===s&&window.performance.now()-t<200&&(e.preventDefault(),this.trigger("tap"))})}enableTouchActivity(){if(this.player()&&this.player().reportUserActivity){const i=m(this.player(),this.player().reportUserActivity);let t;this.on("touchstart",function(){i(),this.clearInterval(t),t=this.setInterval(i,250)});var e=function(e){i(),this.clearInterval(t)};this.on("touchmove",i),this.on("touchend",e),this.on("touchcancel",e)}}setTimeout(e,t){var i;return e=m(this,e),this.clearTimersOnDispose_(),i=window.setTimeout(()=>{this.setTimeoutIds_.has(i)&&this.setTimeoutIds_.delete(i),e()},t),this.setTimeoutIds_.add(i),i}clearTimeout(e){return this.setTimeoutIds_.has(e)&&(this.setTimeoutIds_.delete(e),window.clearTimeout(e)),e}setInterval(e,t){e=m(this,e),this.clearTimersOnDispose_();e=window.setInterval(e,t);return this.setIntervalIds_.add(e),e}clearInterval(e){return this.setIntervalIds_.has(e)&&(this.setIntervalIds_.delete(e),window.clearInterval(e)),e}requestAnimationFrame(e){var t;return this.clearTimersOnDispose_(),e=m(this,e),t=window.requestAnimationFrame(()=>{this.rafIds_.has(t)&&this.rafIds_.delete(t),e()}),this.rafIds_.add(t),t}requestNamedAnimationFrame(e,t){var i;if(!this.namedRafs_.has(e))return this.clearTimersOnDispose_(),t=m(this,t),i=this.requestAnimationFrame(()=>{t(),this.namedRafs_.has(e)&&this.namedRafs_.delete(e)}),this.namedRafs_.set(e,i),e}cancelNamedAnimationFrame(e){this.namedRafs_.has(e)&&(this.cancelAnimationFrame(this.namedRafs_.get(e)),this.namedRafs_.delete(e))}cancelAnimationFrame(e){return this.rafIds_.has(e)&&(this.rafIds_.delete(e),window.cancelAnimationFrame(e)),e}clearTimersOnDispose_(){this.clearingTimersOnDispose_||(this.clearingTimersOnDispose_=!0,this.one("dispose",()=>{[["namedRafs_","cancelNamedAnimationFrame"],["rafIds_","cancelAnimationFrame"],["setTimeoutIds_","clearTimeout"],["setIntervalIds_","clearInterval"]].forEach(([e,i])=>{this[e].forEach((e,t)=>this[i](t))}),this.clearingTimersOnDispose_=!1}))}static registerComponent(t,e){if("string"!=typeof t||!t)throw new Error(`Illegal component name, "${t}"; must be a non-empty string.`);var i=f.getComponent("Tech"),i=i&&i.isTech(e),s=f===e||f.prototype.isPrototypeOf(e.prototype);if(i||!s){let e;throw e=i?"techs must be registered using Tech.registerTech()":"must be a Component subclass",new Error(`Illegal component, "${t}"; ${e}.`)}t=g(t),f.components_||(f.components_={});s=f.getComponent("Player");if("Player"===t&&s&&s.players){const r=s.players;i=Object.keys(r);if(r&&0<i.length&&i.map(e=>r[e]).every(Boolean))throw new Error("Can not register Player component after player has been created.")}return f.components_[t]=e,f.components_[At(t)]=e}static getComponent(e){if(e&&f.components_)return f.components_[e]}}function Nt(e,t,i,s){var r=s,n=i.length-1;if("number"!=typeof r||r<0||n<r)throw new Error(`Failed to execute '${e}' on 'TimeRanges': The index provided (${r}) is non-numeric or out of bounds (0-${n}).`);return i[s][t]}function Mt(e){let t;return t=void 0===e||0===e.length?{length:0,start(){throw new Error("This TimeRanges object is empty")},end(){throw new Error("This TimeRanges object is empty")}}:{length:e.length,start:Nt.bind(null,"start",0,e),end:Nt.bind(null,"end",1,e)},window.Symbol&&window.Symbol.iterator&&(t[window.Symbol.iterator]=()=>(e||[]).values()),t}function Rt(e,t){return Array.isArray(e)?Mt(e):void 0===e||void 0===t?Mt():Mt([[e,t]])}f.registerComponent("Component",f);function Ut(e,t){e=e<0?0:e;let i=Math.floor(e%60),s=Math.floor(e/60%60),r=Math.floor(e/3600);var n=Math.floor(t/60%60),t=Math.floor(t/3600);return r=0<(r=!isNaN(e)&&e!==1/0?r:s=i="-")||0<t?r+":":"",s=((r||10<=n)&&s<10?"0"+s:s)+":",i=i<10?"0"+i:i,r+s+i}let Bt=Ut;function Ft(e){Bt=e}function jt(){Bt=Ut}function Ht(e,t=e){return Bt(e,t)}var qt=Object.freeze({__proto__:null,createTimeRanges:Rt,createTimeRange:Rt,setFormatTime:Ft,resetFormatTime:jt,formatTime:Ht});function Vt(t,i){let s=0;var r;let n;if(!i)return 0;t&&t.length||(t=Rt(0,0));for(let e=0;e<t.length;e++)r=t.start(e),(n=t.end(e))>i&&(n=i),s+=n-r;return s/i}function i(e){if(e instanceof i)return e;"number"==typeof e?this.code=e:"string"==typeof e?this.message=e:K(e)&&("number"==typeof e.code&&(this.code=e.code),Object.assign(this,e)),this.message||(this.message=i.defaultMessages[this.code]||"")}i.prototype.code=0,i.prototype.message="",i.prototype.status=null,i.errorTypes=["MEDIA_ERR_CUSTOM","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_ERR_ENCRYPTED"],i.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail part-way.",3:"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",4:"The media could not be loaded, either because the server or network failed or because the format is not supported.",5:"The media is encrypted and we do not have the keys to decrypt it."};for(let e=0;e<i.errorTypes.length;e++)i[i.errorTypes[e]]=e,i.prototype[i.errorTypes[e]]=e;var $t=function(e,t){var i,s=null;try{i=JSON.parse(e,t)}catch(e){s=e}return[s,i]};function Wt(e){return null!=e&&"function"==typeof e.then}function Gt(e){Wt(e)&&e.then(null,e=>{})}function zt(s){return["kind","label","language","id","inBandMetadataTrackDispatchType","mode","src"].reduce((e,t,i)=>(s[t]&&(e[t]=s[t]),e),{cues:s.cues&&Array.prototype.map.call(s.cues,function(e){return{startTime:e.startTime,endTime:e.endTime,text:e.text,id:e.id}})})}var Xt=function(e){var t=e.$$("track");const i=Array.prototype.map.call(t,e=>e.track);return Array.prototype.map.call(t,function(e){var t=zt(e.track);return e.src&&(t.src=e.src),t}).concat(Array.prototype.filter.call(e.textTracks(),function(e){return-1===i.indexOf(e)}).map(zt))},Kt=function(e,i){return e.forEach(function(e){const t=i.addRemoteTextTrack(e).track;!e.src&&e.cues&&e.cues.forEach(e=>t.addCue(e))}),i.textTracks()};zt;const Yt="vjs-modal-dialog";class Qt extends f{constructor(e,t){super(e,t),this.handleKeyDown_=e=>this.handleKeyDown(e),this.close_=e=>this.close(e),this.opened_=this.hasBeenOpened_=this.hasBeenFilled_=!1,this.closeable(!this.options_.uncloseable),this.content(this.options_.content),this.contentEl_=o("div",{className:Yt+"-content"},{role:"document"}),this.descEl_=o("p",{className:Yt+"-description vjs-control-text",id:this.el().getAttribute("aria-describedby")}),Se(this.descEl_,this.description()),this.el_.appendChild(this.descEl_),this.el_.appendChild(this.contentEl_)}createEl(){return super.createEl("div",{className:this.buildCSSClass(),tabIndex:-1},{"aria-describedby":this.id()+"_description","aria-hidden":"true","aria-label":this.label(),role:"dialog"})}dispose(){this.contentEl_=null,this.descEl_=null,this.previouslyActiveEl_=null,super.dispose()}buildCSSClass(){return Yt+" vjs-hidden "+super.buildCSSClass()}label(){return this.localize(this.options_.label||"Modal Window")}description(){let e=this.options_.description||this.localize("This is a modal window.");return this.closeable()&&(e+=" "+this.localize("This modal can be closed by pressing the Escape key or activating the close button.")),e}open(){var e;this.opened_||(e=this.player(),this.trigger("beforemodalopen"),this.opened_=!0,!this.options_.fillAlways&&(this.hasBeenOpened_||this.hasBeenFilled_)||this.fill(),this.wasPlaying_=!e.paused(),this.options_.pauseOnOpen&&this.wasPlaying_&&e.pause(),this.on("keydown",this.handleKeyDown_),this.hadControls_=e.controls(),e.controls(!1),this.show(),this.conditionalFocus_(),this.el().setAttribute("aria-hidden","false"),this.trigger("modalopen"),this.hasBeenOpened_=!0)}opened(e){return"boolean"==typeof e&&this[e?"open":"close"](),this.opened_}close(){var e;this.opened_&&(e=this.player(),this.trigger("beforemodalclose"),this.opened_=!1,this.wasPlaying_&&this.options_.pauseOnOpen&&e.play(),this.off("keydown",this.handleKeyDown_),this.hadControls_&&e.controls(!0),this.hide(),this.el().setAttribute("aria-hidden","true"),this.trigger("modalclose"),this.conditionalBlur_(),this.options_.temporary)&&this.dispose()}closeable(t){if("boolean"==typeof t){var i,t=this.closeable_=!!t;let e=this.getChild("closeButton");t&&!e&&(i=this.contentEl_,this.contentEl_=this.el_,e=this.addChild("closeButton",{controlText:"Close Modal Dialog"}),this.contentEl_=i,this.on(e,"close",this.close_)),!t&&e&&(this.off(e,"close",this.close_),this.removeChild(e),e.dispose())}return this.closeable_}fill(){this.fillWith(this.content())}fillWith(e){var t=this.contentEl(),i=t.parentNode,s=t.nextSibling,e=(this.trigger("beforemodalfill"),this.hasBeenFilled_=!0,i.removeChild(t),this.empty(),qe(t,e),this.trigger("modalfill"),s?i.insertBefore(t,s):i.appendChild(t),this.getChild("closeButton"));e&&i.appendChild(e.el_)}empty(){this.trigger("beforemodalempty"),Fe(this.contentEl()),this.trigger("modalempty")}content(e){return"undefined"!=typeof e&&(this.content_=e),this.content_}conditionalFocus_(){var e=document.activeElement,t=this.player_.el_;this.previouslyActiveEl_=null,!t.contains(e)&&t!==e||(this.previouslyActiveEl_=e,this.focus())}conditionalBlur_(){this.previouslyActiveEl_&&(this.previouslyActiveEl_.focus(),this.previouslyActiveEl_=null)}handleKeyDown(e){if(e.stopPropagation(),r.isEventKey(e,"Escape")&&this.closeable())e.preventDefault(),this.close();else if(r.isEventKey(e,"Tab")){var i=this.focusableEls_(),s=this.el_.querySelector(":focus");let t;for(let e=0;e<i.length;e++)if(s===i[e]){t=e;break}document.activeElement===this.el_&&(t=0),e.shiftKey&&0===t?(i[i.length-1].focus(),e.preventDefault()):e.shiftKey||t!==i.length-1||(i[0].focus(),e.preventDefault())}}focusableEls_(){var e=this.el_.querySelectorAll("*");return Array.prototype.filter.call(e,e=>(e instanceof window.HTMLAnchorElement||e instanceof window.HTMLAreaElement)&&e.hasAttribute("href")||(e instanceof window.HTMLInputElement||e instanceof window.HTMLSelectElement||e instanceof window.HTMLTextAreaElement||e instanceof window.HTMLButtonElement)&&!e.hasAttribute("disabled")||e instanceof window.HTMLIFrameElement||e instanceof window.HTMLObjectElement||e instanceof window.HTMLEmbedElement||e.hasAttribute("tabindex")&&-1!==e.getAttribute("tabindex")||e.hasAttribute("contenteditable"))}}Qt.prototype.options_={pauseOnOpen:!0,temporary:!0},f.registerComponent("ModalDialog",Qt);class Jt extends ft{constructor(t=[]){super(),this.tracks_=[],Object.defineProperty(this,"length",{get(){return this.tracks_.length}});for(let e=0;e<t.length;e++)this.addTrack(t[e])}addTrack(e){const t=this.tracks_.length;""+t in this||Object.defineProperty(this,t,{get(){return this.tracks_[t]}}),-1===this.tracks_.indexOf(e)&&(this.tracks_.push(e),this.trigger({track:e,type:"addtrack",target:this})),e.labelchange_=()=>{this.trigger({track:e,type:"labelchange",target:this})},_t(e)&&e.addEventListener("labelchange",e.labelchange_)}removeTrack(i){let s;for(let e=0,t=this.length;e<t;e++)if(this[e]===i){(s=this[e]).off&&s.off(),this.tracks_.splice(e,1);break}s&&this.trigger({track:s,type:"removetrack",target:this})}getTrackById(i){let s=null;for(let e=0,t=this.length;e<t;e++){var r=this[e];if(r.id===i){s=r;break}}return s}}for(const Nu in Jt.prototype.allowedEvents_={change:"change",addtrack:"addtrack",removetrack:"removetrack",labelchange:"labelchange"})Jt.prototype["on"+Nu]=null;function Zt(t,i){for(let e=0;e<t.length;e++)Object.keys(t[e]).length&&i.id!==t[e].id&&(t[e].enabled=!1)}function ei(t,i){for(let e=0;e<t.length;e++)Object.keys(t[e]).length&&i.id!==t[e].id&&(t[e].selected=!1)}class ti extends Jt{addTrack(e){super.addTrack(e),this.queueChange_||(this.queueChange_=()=>this.queueTrigger("change")),this.triggerSelectedlanguagechange||(this.triggerSelectedlanguagechange_=()=>this.trigger("selectedlanguagechange")),e.addEventListener("modechange",this.queueChange_);-1===["metadata","chapters"].indexOf(e.kind)&&e.addEventListener("modechange",this.triggerSelectedlanguagechange_)}removeTrack(e){super.removeTrack(e),e.removeEventListener&&(this.queueChange_&&e.removeEventListener("modechange",this.queueChange_),this.selectedlanguagechange_)&&e.removeEventListener("modechange",this.triggerSelectedlanguagechange_)}}class ii{constructor(e){ii.prototype.setCues_.call(this,e),Object.defineProperty(this,"length",{get(){return this.length_}})}setCues_(e){var t=this.length||0;let i=0;function s(e){""+e in this||Object.defineProperty(this,""+e,{get(){return this.cues_[e]}})}var r=e.length;this.cues_=e,this.length_=e.length;if(t<r)for(i=t;i<r;i++)s.call(this,i)}getCueById(i){let s=null;for(let e=0,t=this.length;e<t;e++){var r=this[e];if(r.id===i){s=r;break}}return s}}const si={alternative:"alternative",captions:"captions",main:"main",sign:"sign",subtitles:"subtitles",commentary:"commentary"},ri={alternative:"alternative",descriptions:"descriptions",main:"main","main-desc":"main-desc",translation:"translation",commentary:"commentary"},ni={subtitles:"subtitles",captions:"captions",descriptions:"descriptions",chapters:"chapters",metadata:"metadata"},ai={disabled:"disabled",hidden:"hidden",showing:"showing"};class oi extends ft{constructor(e={}){super();const t={id:e.id||"vjs_track_"+tt++,kind:e.kind||"",language:e.language||""};let i=e.label||"";for(const s in t)Object.defineProperty(this,s,{get(){return t[s]},set(){}});Object.defineProperty(this,"label",{get(){return i},set(e){e!==i&&(i=e,this.trigger("labelchange"))}})}}function li(e){var t=["protocol","hostname","port","pathname","search","hash","host"],i=document.createElement("a"),s=(i.href=e,{});for(let e=0;e<t.length;e++)s[t[e]]=i[t[e]];return"http:"===s.protocol&&(s.host=s.host.replace(/:80$/,"")),"https:"===s.protocol&&(s.host=s.host.replace(/:443$/,"")),s.protocol||(s.protocol=window.location.protocol),s.host||(s.host=window.location.host),s}function di(e){var t;return e.match(/^https?:\/\//)||((t=document.createElement("a")).href=e,e=t.href),e}function hi(e,t=window.location){return(":"===(e=li(e)).protocol?t:e).protocol+e.host!==t.protocol+t.host}const ui=function(e){if("string"==typeof e){e=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/.exec(e);if(e)return e.pop().toLowerCase()}return""};var ci=Object.freeze({__proto__:null,parseUrl:li,getAbsoluteURL:di,getFileExtension:ui,isCrossOrigin:hi}),pi="undefined"!=typeof window?window:"undefined"!=typeof Ot?Ot:"undefined"!=typeof self?self:{},mi=pi,gi=Dt(function(e){function t(){return e.exports=t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i,s=arguments[t];for(i in s)Object.prototype.hasOwnProperty.call(s,i)&&(e[i]=s[i])}return e},e.exports.__esModule=!0,e.exports.default=e.exports,t.apply(this,arguments)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}),fi=(pi=gi)&&pi.__esModule&&Object.prototype.hasOwnProperty.call(pi,"default")?pi.default:pi,yi=function(e){var t;return!!e&&("[object Function]"===(t=_i.call(e))||"function"==typeof e&&"[object RegExp]"!==t||"undefined"!=typeof window&&(e===window.setTimeout||e===window.alert||e===window.confirm||e===window.prompt))},_i=Object.prototype.toString;ki.httpHandler=function(s,r){return void 0===r&&(r=!1),function(e,t,i){if(e)s(e);else if(400<=t.statusCode&&t.statusCode<=599){e=i;if(r)if(mi.TextDecoder){t=function(e){void 0===e&&(e="");return e.toLowerCase().split(";").reduce(function(e,t){var t=t.split("="),i=t[0],t=t[1];return"charset"===i.trim()?t.trim():e},"utf-8")}(t.headers&&t.headers["content-type"]);try{e=new TextDecoder(t).decode(i)}catch(e){}}else e=String.fromCharCode.apply(null,new Uint8Array(i));s({cause:e})}else s(null,i)}};for(var vi=function(e){var s={};return e&&e.trim().split("\n").forEach(function(e){var t=e.indexOf(":"),i=e.slice(0,t).trim().toLowerCase(),e=e.slice(t+1).trim();"undefined"==typeof s[i]?s[i]=e:Array.isArray(s[i])?s[i].push(e):s[i]=[s[i],e]}),s},bi=ki,pi=ki,Ti=(ki.XMLHttpRequest=mi.XMLHttpRequest||function(){},ki.XDomainRequest="withCredentials"in new ki.XMLHttpRequest?ki.XMLHttpRequest:mi.XDomainRequest,["get","put","post","patch","head","delete"]),Si=function(s){ki["delete"===s?"del":s]=function(e,t,i){return(t=Ei(e,t,i)).method=s.toUpperCase(),Ci(t)}},wi=0;wi<Ti.length;wi++)Si(Ti[wi]);function Ei(e,t,i){var s=e;return yi(t)?(i=t,"string"==typeof e&&(s={uri:e})):s=gi({},t,{uri:e}),s.callback=i,s}function ki(e,t,i){return Ci(t=Ei(e,t,i))}function Ci(s){if("undefined"==typeof s.callback)throw new Error("callback argument missing");var r=!1,n=function(e,t,i){r||(r=!0,s.callback(e,t,i))};function a(){var e=void 0,e=d.response||d.responseText||function(e){try{if("document"===e.responseType)return e.responseXML;var t=e.responseXML&&"parsererror"===e.responseXML.documentElement.nodeName;if(""===e.responseType&&!t)return e.responseXML}catch(e){}return null}(d);if(g)try{e=JSON.parse(e)}catch(e){}return e}function t(e){return clearTimeout(l),(e=e instanceof Error?e:new Error(""+(e||"Unknown XMLHttpRequest Error"))).statusCode=0,n(e,f)}function e(){var e,t,i;if(!o)return clearTimeout(l),e=s.useXDR&&void 0===d.status?200:1223===d.status?204:d.status,t=f,i=null,0!==e?(t={body:a(),statusCode:e,method:u,headers:{},url:h,rawRequest:d},d.getAllResponseHeaders&&(t.headers=vi(d.getAllResponseHeaders()))):i=new Error("Internal XMLHttpRequest Error"),n(i,t,t.body)}var i,o,l,d=s.xhr||null,h=(d=d||new(s.cors||s.useXDR?ki.XDomainRequest:ki.XMLHttpRequest)).url=s.uri||s.url,u=d.method=s.method||"GET",c=s.body||s.data,p=d.headers=s.headers||{},m=!!s.sync,g=!1,f={body:void 0,headers:{},statusCode:0,method:u,url:h,rawRequest:d};if("json"in s&&!1!==s.json&&(g=!0,p.accept||p.Accept||(p.Accept="application/json"),"GET"!==u)&&"HEAD"!==u&&(p["content-type"]||p["Content-Type"]||(p["Content-Type"]="application/json"),c=JSON.stringify(!0===s.json?c:s.json)),d.onreadystatechange=function(){4===d.readyState&&setTimeout(e,0)},d.onload=e,d.onerror=t,d.onprogress=function(){},d.onabort=function(){o=!0},d.ontimeout=t,d.open(u,h,!m,s.username,s.password),m||(d.withCredentials=!!s.withCredentials),!m&&0<s.timeout&&(l=setTimeout(function(){var e;o||(o=!0,d.abort("timeout"),(e=new Error("XMLHttpRequest timeout")).code="ETIMEDOUT",t(e))},s.timeout)),d.setRequestHeader)for(i in p)p.hasOwnProperty(i)&&d.setRequestHeader(i,p[i]);else if(s.headers&&!function(e){for(var t in e)if(e.hasOwnProperty(t))return;return 1}(s.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in s&&(d.responseType=s.responseType),"beforeSend"in s&&"function"==typeof s.beforeSend&&s.beforeSend(d),d.send(c||null),d}bi.default=pi;function Ii(e,t){var i=new window.WebVTT.Parser(window,window.vttjs,window.WebVTT.StringDecoder());const s=[];i.oncue=function(e){t.addCue(e)},i.onparsingerror=function(e){s.push(e)},i.onflush=function(){t.trigger({type:"loadeddata",target:t})},i.parse(e),0<s.length&&(window.console&&window.console.groupCollapsed&&window.console.groupCollapsed("Text Track parsing errors for "+t.src),s.forEach(e=>d.error(e)),window.console)&&window.console.groupEnd&&window.console.groupEnd(),i.flush()}function xi(e,s){var t={uri:e};(e=hi(e))&&(t.cors=e),(e="use-credentials"===s.tech_.crossOrigin())&&(t.withCredentials=e),bi(t,m(this,function(e,t,i){if(e)return d.error(e,t);s.loaded_=!0,"function"!=typeof window.WebVTT?s.tech_&&s.tech_.any(["vttjsloaded","vttjserror"],e=>{if("vttjserror"!==e.type)return Ii(i,s);d.error("vttjs failed to load, stopping trying to process "+s.src)}):Ii(i,s)}))}class Ai extends oi{constructor(e={}){if(!e.tech)throw new Error("A tech was not provided.");e=h(e,{kind:ni[e.kind]||"subtitles",language:e.language||e.srclang||""});let t=ai[e.mode]||"disabled";const i=e.default,s=("metadata"!==e.kind&&"chapters"!==e.kind||(t="hidden"),super(e),this.tech_=e.tech,this.cues_=[],this.activeCues_=[],this.preload_=!1!==this.tech_.preloadTextTracks,new ii(this.cues_)),n=new ii(this.activeCues_);let a=!1;this.timeupdateHandler=m(this,function(e={}){this.tech_.isDisposed()||(this.tech_.isReady_&&(this.activeCues=this.activeCues,a)&&(this.trigger("cuechange"),a=!1),"timeupdate"!==e.type&&(this.rvf_=this.tech_.requestVideoFrameCallback(this.timeupdateHandler)))});this.tech_.one("dispose",()=>{this.stopTracking()}),"disabled"!==t&&this.startTracking(),Object.defineProperties(this,{default:{get(){return i},set(){}},mode:{get(){return t},set(e){ai[e]&&t!==e&&(t=e,this.preload_||"disabled"===t||0!==this.cues.length||xi(this.src,this),this.stopTracking(),"disabled"!==t&&this.startTracking(),this.trigger("modechange"))}},cues:{get(){return this.loaded_?s:null},set(){}},activeCues:{get(){if(!this.loaded_)return null;if(0!==this.cues.length){var i=this.tech_.currentTime(),s=[];for(let e=0,t=this.cues.length;e<t;e++){var r=this.cues[e];r.startTime<=i&&r.endTime>=i&&s.push(r)}if(a=!1,s.length!==this.activeCues_.length)a=!0;else for(let e=0;e<s.length;e++)-1===this.activeCues_.indexOf(s[e])&&(a=!0);this.activeCues_=s,n.setCues_(this.activeCues_)}return n},set(){}}}),e.src?(this.src=e.src,this.preload_||(this.loaded_=!0),(this.preload_||"subtitles"!==e.kind&&"captions"!==e.kind)&&xi(this.src,this)):this.loaded_=!0}startTracking(){this.rvf_=this.tech_.requestVideoFrameCallback(this.timeupdateHandler),this.tech_.on("timeupdate",this.timeupdateHandler)}stopTracking(){this.rvf_&&(this.tech_.cancelVideoFrameCallback(this.rvf_),this.rvf_=void 0),this.tech_.off("timeupdate",this.timeupdateHandler)}addCue(e){let t=e;if(window.vttjs&&!(e instanceof window.vttjs.VTTCue)){t=new window.vttjs.VTTCue(e.startTime,e.endTime,e.text);for(const s in e)s in t||(t[s]=e[s]);t.id=e.id,t.originalCue_=e}var i=this.tech_.textTracks();for(let e=0;e<i.length;e++)i[e]!==this&&i[e].removeCue(t);this.cues_.push(t),this.cues.setCues_(this.cues_)}removeCue(e){let t=this.cues_.length;for(;t--;){var i=this.cues_[t];if(i===e||i.originalCue_&&i.originalCue_===e){this.cues_.splice(t,1),this.cues.setCues_(this.cues_);break}}}}Ai.prototype.allowedEvents_={cuechange:"cuechange"};class Pi extends oi{constructor(e={}){e=h(e,{kind:ri[e.kind]||""});super(e);let t=!1;Object.defineProperty(this,"enabled",{get(){return t},set(e){"boolean"==typeof e&&e!==t&&(t=e,this.trigger("enabledchange"))}}),e.enabled&&(this.enabled=e.enabled),this.loaded_=!0}}class Li extends oi{constructor(e={}){e=h(e,{kind:si[e.kind]||""});super(e);let t=!1;Object.defineProperty(this,"selected",{get(){return t},set(e){"boolean"==typeof e&&e!==t&&(t=e,this.trigger("selectedchange"))}}),e.selected&&(this.selected=e.selected)}}class Oi extends ft{constructor(e={}){super();let t;const i=new Ai(e);this.kind=i.kind,this.src=i.src,this.srclang=i.language,this.label=i.label,this.default=i.default,Object.defineProperties(this,{readyState:{get(){return t}},track:{get(){return i}}}),t=Oi.NONE,i.addEventListener("loadeddata",()=>{t=Oi.LOADED,this.trigger({type:"load",target:this})})}}Oi.prototype.allowedEvents_={load:"load"},Oi.NONE=0,Oi.LOADING=1,Oi.LOADED=2,Oi.ERROR=3;const Di={audio:{ListClass:class extends Jt{constructor(t=[]){for(let e=t.length-1;0<=e;e--)if(t[e].enabled){Zt(t,t[e]);break}super(t),this.changing_=!1}addTrack(e){e.enabled&&Zt(this,e),super.addTrack(e),e.addEventListener&&(e.enabledChange_=()=>{this.changing_||(this.changing_=!0,Zt(this,e),this.changing_=!1,this.trigger("change"))},e.addEventListener("enabledchange",e.enabledChange_))}removeTrack(e){super.removeTrack(e),e.removeEventListener&&e.enabledChange_&&(e.removeEventListener("enabledchange",e.enabledChange_),e.enabledChange_=null)}},TrackClass:Pi,capitalName:"Audio"},video:{ListClass:class extends Jt{constructor(t=[]){for(let e=t.length-1;0<=e;e--)if(t[e].selected){ei(t,t[e]);break}super(t),this.changing_=!1,Object.defineProperty(this,"selectedIndex",{get(){for(let e=0;e<this.length;e++)if(this[e].selected)return e;return-1},set(){}})}addTrack(e){e.selected&&ei(this,e),super.addTrack(e),e.addEventListener&&(e.selectedChange_=()=>{this.changing_||(this.changing_=!0,ei(this,e),this.changing_=!1,this.trigger("change"))},e.addEventListener("selectedchange",e.selectedChange_))}removeTrack(e){super.removeTrack(e),e.removeEventListener&&e.selectedChange_&&(e.removeEventListener("selectedchange",e.selectedChange_),e.selectedChange_=null)}},TrackClass:Li,capitalName:"Video"},text:{ListClass:ti,TrackClass:Ai,capitalName:"Text"}},Ni=(Object.keys(Di).forEach(function(e){Di[e].getterName=e+"Tracks",Di[e].privateName=e+"Tracks_"}),{remoteText:{ListClass:ti,TrackClass:Ai,capitalName:"RemoteText",getterName:"remoteTextTracks",privateName:"remoteTextTracks_"},remoteTextEl:{ListClass:class{constructor(i=[]){this.trackElements_=[],Object.defineProperty(this,"length",{get(){return this.trackElements_.length}});for(let e=0,t=i.length;e<t;e++)this.addTrackElement_(i[e])}addTrackElement_(e){const t=this.trackElements_.length;""+t in this||Object.defineProperty(this,t,{get(){return this.trackElements_[t]}}),-1===this.trackElements_.indexOf(e)&&this.trackElements_.push(e)}getTrackElementByTrack_(i){let s;for(let e=0,t=this.trackElements_.length;e<t;e++)if(i===this.trackElements_[e].track){s=this.trackElements_[e];break}return s}removeTrackElement_(i){for(let e=0,t=this.trackElements_.length;e<t;e++)if(i===this.trackElements_[e]){this.trackElements_[e].track&&"function"==typeof this.trackElements_[e].track.off&&this.trackElements_[e].track.off(),"function"==typeof this.trackElements_[e].off&&this.trackElements_[e].off(),this.trackElements_.splice(e,1);break}}},TrackClass:Oi,capitalName:"RemoteTextTrackEls",getterName:"remoteTextTrackEls",privateName:"remoteTextTrackEls_"}}),a=Object.assign({},Di,Ni);Ni.names=Object.keys(Ni),Di.names=Object.keys(Di),a.names=[].concat(Ni.names).concat(Di.names);var pi="undefined"!=typeof Ot?Ot:"undefined"!=typeof window?window:{},Mi="undefined"!=typeof document?document:(Mi=pi["__GLOBAL_DOCUMENT_CACHE@4"])||(pi["__GLOBAL_DOCUMENT_CACHE@4"]={}),Ot=Mi,Ri=Object.create||function(e){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return Ui.prototype=e,new Ui};function Ui(){}function Bi(e,t){this.name="ParsingError",this.code=e.code,this.message=t||e.message}function Fi(e){function t(e,t,i,s){return 3600*(0|e)+60*(0|t)+(0|i)+(0|s)/1e3}e=e.match(/^(\d+):(\d{1,2})(:\d{1,2})?\.(\d{3})/);return e?e[3]?t(e[1],e[2],e[3].replace(":",""),e[4]):59<e[1]?t(e[1],e[2],0,e[4]):t(0,e[1],e[2],e[4]):null}function ji(){this.values=Ri(null)}function Hi(e,t,i,s){var r,n,a=s?e.split(s):[e];for(r in a)"string"==typeof a[r]&&2===(n=a[r].split(i)).length&&t(n[0].trim(),n[1].trim())}((Bi.prototype=Ri(Error.prototype)).constructor=Bi).Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},ji.prototype={set:function(e,t){this.get(e)||""===t||(this.values[e]=t)},get:function(e,t,i){return i?this.has(e)?this.values[e]:t[i]:this.has(e)?this.values[e]:t},has:function(e){return e in this.values},alt:function(e,t,i){for(var s=0;s<i.length;++s)if(t===i[s]){this.set(e,t);break}},integer:function(e,t){/^-?\d+$/.test(t)&&this.set(e,parseInt(t,10))},percent:function(e,t){return!!(t.match(/^([\d]{1,3})(\.[\d]*)?%$/)&&0<=(t=parseFloat(t))&&t<=100)&&(this.set(e,t),!0)}};var qi=Ot.createElement&&Ot.createElement("textarea"),Vi={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},$i={white:"rgba(255,255,255,1)",lime:"rgba(0,255,0,1)",cyan:"rgba(0,255,255,1)",red:"rgba(255,0,0,1)",yellow:"rgba(255,255,0,1)",magenta:"rgba(255,0,255,1)",blue:"rgba(0,0,255,1)",black:"rgba(0,0,0,1)"},Wi={v:"title",lang:"lang"},Gi={rt:"ruby"};function zi(e,t){for(var i,s,r,n,a,o,l=e.document.createElement("div"),d=l,h=[];null!==(o=void 0,o=t?(o=(o=t.match(/^([^<]*)(<[^>]*>?)?/))[1]||o[2],t=t.substr(o.length),o):null);)"<"===o[0]?"/"===o[1]?h.length&&h[h.length-1]===o.substr(2).replace(">","")&&(h.pop(),d=d.parentNode):(s=Fi(o.substr(1,o.length-2)))?(i=e.document.createProcessingInstruction("timestamp",s),d.appendChild(i)):(s=o.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/))&&(r=s[1],n=s[3],a=void 0,a=Vi[r],i=a?(a=e.document.createElement(a),(r=Wi[r])&&n&&(a[r]=n.trim()),a):null)&&(r=d,Gi[(n=i).localName]&&Gi[n.localName]!==r.localName||(s[2]&&((a=s[2].split(".")).forEach(function(e){var t=/^bg_/.test(e),e=t?e.slice(3):e;$i.hasOwnProperty(e)&&(e=$i[e],i.style[t?"background-color":"color"]=e)}),i.className=a.join(" ")),h.push(s[1]),d.appendChild(i),d=i)):d.appendChild(e.document.createTextNode((n=o,qi.innerHTML=n,n=qi.textContent,qi.textContent="",n)));return l}var Xi=[[1470,1470],[1472,1472],[1475,1475],[1478,1478],[1488,1514],[1520,1524],[1544,1544],[1547,1547],[1549,1549],[1563,1563],[1566,1610],[1645,1647],[1649,1749],[1765,1766],[1774,1775],[1786,1805],[1807,1808],[1810,1839],[1869,1957],[1969,1969],[1984,2026],[2036,2037],[2042,2042],[2048,2069],[2074,2074],[2084,2084],[2088,2088],[2096,2110],[2112,2136],[2142,2142],[2208,2208],[2210,2220],[8207,8207],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64449],[64467,64829],[64848,64911],[64914,64967],[65008,65020],[65136,65140],[65142,65276],[67584,67589],[67592,67592],[67594,67637],[67639,67640],[67644,67644],[67647,67669],[67671,67679],[67840,67867],[67872,67897],[67903,67903],[67968,68023],[68030,68031],[68096,68096],[68112,68115],[68117,68119],[68121,68147],[68160,68167],[68176,68184],[68192,68223],[68352,68405],[68416,68437],[68440,68466],[68472,68479],[68608,68680],[126464,126467],[126469,126495],[126497,126498],[126500,126500],[126503,126503],[126505,126514],[126516,126519],[126521,126521],[126523,126523],[126530,126530],[126535,126535],[126537,126537],[126539,126539],[126541,126543],[126545,126546],[126548,126548],[126551,126551],[126553,126553],[126555,126555],[126557,126557],[126559,126559],[126561,126562],[126564,126564],[126567,126570],[126572,126578],[126580,126583],[126585,126588],[126590,126590],[126592,126601],[126603,126619],[126625,126627],[126629,126633],[126635,126651],[1114109,1114109]];function Ki(e){var t=[],i="";if(e&&e.childNodes)for(n(t,e);i=function e(t){var i,s,r;return t&&t.length?(s=(i=t.pop()).textContent||i.innerText)?(r=s.match(/^.*(\n|\r)/))?r[t.length=0]:s:"ruby"===i.tagName?e(t):i.childNodes?(n(t,i),e(t)):void 0:null}(t);)for(var s=0;s<i.length;s++)if(function(e){for(var t=0;t<Xi.length;t++){var i=Xi[t];if(e>=i[0]&&e<=i[1])return 1}}(i.charCodeAt(s)))return"rtl";return"ltr";function n(e,t){for(var i=t.childNodes.length-1;0<=i;i--)e.push(t.childNodes[i])}}function Yi(){}function Qi(e,t,i){Yi.call(this),this.cue=t,this.cueDiv=zi(e,t.text);var s={color:"rgba(255, 255, 255, 1)",backgroundColor:"rgba(0, 0, 0, 0.8)",position:"relative",left:0,right:0,top:0,bottom:0,display:"inline",writingMode:""===t.vertical?"horizontal-tb":"lr"===t.vertical?"vertical-lr":"vertical-rl",unicodeBidi:"plaintext"},r=(this.applyStyles(s,this.cueDiv),this.div=e.document.createElement("div"),s={direction:Ki(this.cueDiv),writingMode:""===t.vertical?"horizontal-tb":"lr"===t.vertical?"vertical-lr":"vertical-rl",unicodeBidi:"plaintext",textAlign:"middle"===t.align?"center":t.align,font:i.font,whiteSpace:"pre-line",position:"absolute"},this.applyStyles(s),this.div.appendChild(this.cueDiv),0);switch(t.positionAlign){case"start":r=t.position;break;case"center":r=t.position-t.size/2;break;case"end":r=t.position-t.size}""===t.vertical?this.applyStyles({left:this.formatStyle(r,"%"),width:this.formatStyle(t.size,"%")}):this.applyStyles({top:this.formatStyle(r,"%"),height:this.formatStyle(t.size,"%")}),this.move=function(e){this.applyStyles({top:this.formatStyle(e.top,"px"),bottom:this.formatStyle(e.bottom,"px"),left:this.formatStyle(e.left,"px"),right:this.formatStyle(e.right,"px"),height:this.formatStyle(e.height,"px"),width:this.formatStyle(e.width,"px")})}}function y(e){var t,i,s,r;e.div&&(t=e.div.offsetHeight,i=e.div.offsetWidth,s=e.div.offsetTop,r=(r=(r=e.div.childNodes)&&r[0])&&r.getClientRects&&r.getClientRects(),e=e.div.getBoundingClientRect(),r=r?Math.max(r[0]&&r[0].height||0,e.height/r.length):0),this.left=e.left,this.right=e.right,this.top=e.top||s,this.height=e.height||t,this.bottom=e.bottom||s+(e.height||t),this.width=e.width||i,this.lineHeight=void 0!==r?r:e.lineHeight}function Ji(e,t,o,l){var i,s=new y(t),r=t.cue,n=function(e){if("number"==typeof e.line&&(e.snapToLines||0<=e.line&&e.line<=100))return e.line;if(!e.track||!e.track.textTrackList||!e.track.textTrackList.mediaElement)return-1;for(var t=e.track,i=t.textTrackList,s=0,r=0;r<i.length&&i[r]!==t;r++)"showing"===i[r].mode&&s++;return-1*++s}(r),a=[];if(r.snapToLines){switch(r.vertical){case"":a=["+y","-y"],i="height";break;case"rl":a=["+x","-x"],i="width";break;case"lr":a=["-x","+x"],i="width"}var d=s.lineHeight,h=d*Math.round(n),u=o[i]+d,c=a[0];Math.abs(h)>u&&(h=h<0?-1:1,h*=Math.ceil(u/d)*d),n<0&&(h+=""===r.vertical?o.height:o.width,a=a.reverse()),s.move(c,h)}else{var p=s.lineHeight/o.height*100;switch(r.lineAlign){case"center":n-=p/2;break;case"end":n-=p}switch(r.vertical){case"":t.applyStyles({top:t.formatStyle(n,"%")});break;case"rl":t.applyStyles({left:t.formatStyle(n,"%")});break;case"lr":t.applyStyles({right:t.formatStyle(n,"%")})}a=["+y","-x","+x","-y"],s=new y(t)}u=function(e,t){for(var i,s=new y(e),r=1,n=0;n<t.length;n++){for(;e.overlapsOppositeAxis(o,t[n])||e.within(o)&&e.overlapsAny(l);)e.move(t[n]);if(e.within(o))return e;var a=e.intersectPercentage(o);a<r&&(i=new y(e),r=a),e=new y(s)}return i||s}(s,a);t.move(u.toCSSCompatValues(o))}function Zi(){}Yi.prototype.applyStyles=function(e,t){for(var i in t=t||this.div,e)e.hasOwnProperty(i)&&(t.style[i]=e[i])},Yi.prototype.formatStyle=function(e,t){return 0===e?0:e+t},(Qi.prototype=Ri(Yi.prototype)).constructor=Qi,y.prototype.move=function(e,t){switch(t=void 0!==t?t:this.lineHeight,e){case"+x":this.left+=t,this.right+=t;break;case"-x":this.left-=t,this.right-=t;break;case"+y":this.top+=t,this.bottom+=t;break;case"-y":this.top-=t,this.bottom-=t}},y.prototype.overlaps=function(e){return this.left<e.right&&this.right>e.left&&this.top<e.bottom&&this.bottom>e.top},y.prototype.overlapsAny=function(e){for(var t=0;t<e.length;t++)if(this.overlaps(e[t]))return!0;return!1},y.prototype.within=function(e){return this.top>=e.top&&this.bottom<=e.bottom&&this.left>=e.left&&this.right<=e.right},y.prototype.overlapsOppositeAxis=function(e,t){switch(t){case"+x":return this.left<e.left;case"-x":return this.right>e.right;case"+y":return this.top<e.top;case"-y":return this.bottom>e.bottom}},y.prototype.intersectPercentage=function(e){return Math.max(0,Math.min(this.right,e.right)-Math.max(this.left,e.left))*Math.max(0,Math.min(this.bottom,e.bottom)-Math.max(this.top,e.top))/(this.height*this.width)},y.prototype.toCSSCompatValues=function(e){return{top:this.top-e.top,bottom:e.bottom-this.bottom,left:this.left-e.left,right:e.right-this.right,height:this.height,width:this.width}},y.getSimpleBoxPosition=function(e){var t=e.div?e.div.offsetHeight:e.tagName?e.offsetHeight:0,i=e.div?e.div.offsetWidth:e.tagName?e.offsetWidth:0,s=e.div?e.div.offsetTop:e.tagName?e.offsetTop:0;return{left:(e=e.div?e.div.getBoundingClientRect():e.tagName?e.getBoundingClientRect():e).left,right:e.right,top:e.top||s,height:e.height||t,bottom:e.bottom||s+(e.height||t),width:e.width||i}},Zi.StringDecoder=function(){return{decode:function(e){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}},Zi.convertCueToDOMTree=function(e,t){return e&&t?zi(e,t):null};Zi.processCues=function(e,t,i){if(!e||!t||!i)return null;for(;i.firstChild;)i.removeChild(i.firstChild);var s=e.document.createElement("div");if(s.style.position="absolute",s.style.left="0",s.style.right="0",s.style.top="0",s.style.bottom="0",s.style.margin="1.5%",i.appendChild(s),function(e){for(var t=0;t<e.length;t++)if(e[t].hasBeenReset||!e[t].displayState)return 1}(t))for(var r,n,a=[],o=y.getSimpleBoxPosition(s),l={font:Math.round(.05*o.height*100)/100+"px sans-serif"},d=0;d<t.length;d++)n=t[d],r=new Qi(e,n,l),s.appendChild(r.div),Ji(0,r,o,a),n.displayState=r.div,a.push(y.getSimpleBoxPosition(r));else for(var h=0;h<t.length;h++)s.appendChild(t[h].displayState)},(Zi.Parser=function(e,t,i){i||(i=t,t={}),t=t||{},this.window=e,this.vttjs=t,this.state="INITIAL",this.buffer="",this.decoder=i||new TextDecoder("utf8"),this.regionList=[]}).prototype={reportOrThrowError:function(e){if(!(e instanceof Bi))throw e;this.onparsingerror&&this.onparsingerror(e)},parse:function(e){var s=this;function t(){for(var e=s.buffer,t=0;t<e.length&&"\r"!==e[t]&&"\n"!==e[t];)++t;var i=e.substr(0,t);return"\r"===e[t]&&++t,"\n"===e[t]&&++t,s.buffer=e.substr(t),i}function i(e){e.match(/X-TIMESTAMP-MAP/)?Hi(e,function(e,t){var i;"X-TIMESTAMP-MAP"===e&&(e=t,i=new ji,Hi(e,function(e,t){switch(e){case"MPEGT":i.integer(e+"S",t);break;case"LOCA":i.set(e+"L",Fi(t))}},/[^\d]:/,/,/),s.ontimestampmap)&&s.ontimestampmap({MPEGTS:i.get("MPEGTS"),LOCAL:i.get("LOCAL")})},/=/):Hi(e,function(e,t){var r;"Region"===e&&(e=t,r=new ji,Hi(e,function(e,t){switch(e){case"id":r.set(e,t);break;case"width":r.percent(e,t);break;case"lines":r.integer(e,t);break;case"regionanchor":case"viewportanchor":var i,s=t.split(",");2===s.length&&((i=new ji).percent("x",s[0]),i.percent("y",s[1]),i.has("x")&&i.has("y"))&&(r.set(e+"X",i.get("x")),r.set(e+"Y",i.get("y")));break;case"scroll":r.alt(e,t,["up"])}},/=/,/\s/),r.has("id"))&&((e=new(s.vttjs.VTTRegion||s.window.VTTRegion)).width=r.get("width",100),e.lines=r.get("lines",3),e.regionAnchorX=r.get("regionanchorX",0),e.regionAnchorY=r.get("regionanchorY",100),e.viewportAnchorX=r.get("viewportanchorX",0),e.viewportAnchorY=r.get("viewportanchorY",100),e.scroll=r.get("scroll",""),s.onregion&&s.onregion(e),s.regionList.push({id:r.get("id"),region:e}))},/:/)}e&&(s.buffer+=s.decoder.decode(e,{stream:!0}));try{if("INITIAL"===s.state){if(!/\r\n|\n/.test(s.buffer))return this;var r,n=(r=t()).match(/^WEBVTT([ \t].*)?$/);if(!n||!n[0])throw new Bi(Bi.Errors.BadSignature);s.state="HEADER"}for(var a=!1;s.buffer;){if(!/\r\n|\n/.test(s.buffer))return this;switch(a?a=!1:r=t(),s.state){case"HEADER":/:/.test(r)?i(r):r||(s.state="ID");continue;case"NOTE":r||(s.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(r)){s.state="NOTE";break}if(!r)continue;s.cue=new(s.vttjs.VTTCue||s.window.VTTCue)(0,0,"");try{s.cue.align="center"}catch(e){s.cue.align="middle"}if(s.state="CUE",-1===r.indexOf("--\x3e")){s.cue.id=r;continue}case"CUE":try{!function(t,i,n){var s=t;function e(){var e=Fi(t);if(null===e)throw new Bi(Bi.Errors.BadTimeStamp,"Malformed timestamp: "+s);return t=t.replace(/^[^\sa-zA-Z-]+/,""),e}function r(){t=t.replace(/^\s+/,"")}if(r(),i.startTime=e(),r(),"--\x3e"!==t.substr(0,3))throw new Bi(Bi.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '--\x3e'): "+s);t=t.substr(3),r(),i.endTime=e(),r();var a=t,o=new ji;Hi(a,function(e,t){switch(e){case"region":for(var i=n.length-1;0<=i;i--)if(n[i].id===t){o.set(e,n[i].region);break}break;case"vertical":o.alt(e,t,["rl","lr"]);break;case"line":var s=t.split(","),r=s[0];o.integer(e,r),o.percent(e,r)&&o.set("snapToLines",!1),o.alt(e,r,["auto"]),2===s.length&&o.alt("lineAlign",s[1],["start","center","end"]);break;case"position":s=t.split(","),o.percent(e,s[0]),2===s.length&&o.alt("positionAlign",s[1],["start","center","end"]);break;case"size":o.percent(e,t);break;case"align":o.alt(e,t,["start","center","end","left","right"])}},/:/,/\s/),i.region=o.get("region",null),i.vertical=o.get("vertical","");try{i.line=o.get("line","auto")}catch(e){}i.lineAlign=o.get("lineAlign","start"),i.snapToLines=o.get("snapToLines",!0),i.size=o.get("size",100);try{i.align=o.get("align","center")}catch(e){i.align=o.get("align","middle")}try{i.position=o.get("position","auto")}catch(e){i.position=o.get("position",{start:0,left:0,center:50,middle:50,end:100,right:100},i.align)}i.positionAlign=o.get("positionAlign",{start:"start",left:"start",center:"center",middle:"center",end:"end",right:"end"},i.align)}(r,s.cue,s.regionList)}catch(e){s.reportOrThrowError(e),s.cue=null,s.state="BADCUE";continue}s.state="CUETEXT";continue;case"CUETEXT":var o=-1!==r.indexOf("--\x3e");if(!r||o&&(a=!0)){s.oncue&&s.oncue(s.cue),s.cue=null,s.state="ID";continue}s.cue.text&&(s.cue.text+="\n"),s.cue.text+=r.replace(/\u2028/g,"\n").replace(/u2029/g,"\n");continue;case"BADCUE":r||(s.state="ID");continue}}}catch(e){s.reportOrThrowError(e),"CUETEXT"===s.state&&s.cue&&s.oncue&&s.oncue(s.cue),s.cue=null,s.state="INITIAL"===s.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var t=this;try{if(t.buffer+=t.decoder.decode(),!t.cue&&"HEADER"!==t.state||(t.buffer+="\n\n",t.parse()),"INITIAL"===t.state)throw new Bi(Bi.Errors.BadSignature)}catch(e){t.reportOrThrowError(e)}return t.onflush&&t.onflush(),this}};var es=Zi,ts={"":1,lr:1,rl:1},is={start:1,center:1,end:1,left:1,right:1,auto:1,"line-left":1,"line-right":1};function ss(e){return"string"==typeof e&&!!is[e.toLowerCase()]&&e.toLowerCase()}function rs(e,t,i){this.hasBeenReset=!1;var s="",r=!1,n=e,a=t,o=i,l=null,d="",h=!0,u="auto",c="start",p="auto",m="auto",g=100,f="center";Object.defineProperties(this,{id:{enumerable:!0,get:function(){return s},set:function(e){s=""+e}},pauseOnExit:{enumerable:!0,get:function(){return r},set:function(e){r=!!e}},startTime:{enumerable:!0,get:function(){return n},set:function(e){if("number"!=typeof e)throw new TypeError("Start time must be set to a number.");n=e,this.hasBeenReset=!0}},endTime:{enumerable:!0,get:function(){return a},set:function(e){if("number"!=typeof e)throw new TypeError("End time must be set to a number.");a=e,this.hasBeenReset=!0}},text:{enumerable:!0,get:function(){return o},set:function(e){o=""+e,this.hasBeenReset=!0}},region:{enumerable:!0,get:function(){return l},set:function(e){l=e,this.hasBeenReset=!0}},vertical:{enumerable:!0,get:function(){return d},set:function(e){e="string"==typeof(e=e)&&!!ts[e.toLowerCase()]&&e.toLowerCase();if(!1===e)throw new SyntaxError("Vertical: an invalid or illegal direction string was specified.");d=e,this.hasBeenReset=!0}},snapToLines:{enumerable:!0,get:function(){return h},set:function(e){h=!!e,this.hasBeenReset=!0}},line:{enumerable:!0,get:function(){return u},set:function(e){if("number"!=typeof e&&"auto"!==e)throw new SyntaxError("Line: an invalid number or illegal string was specified.");u=e,this.hasBeenReset=!0}},lineAlign:{enumerable:!0,get:function(){return c},set:function(e){e=ss(e);e&&(c=e,this.hasBeenReset=!0)}},position:{enumerable:!0,get:function(){return p},set:function(e){if(e<0||100<e)throw new Error("Position must be between 0 and 100.");p=e,this.hasBeenReset=!0}},positionAlign:{enumerable:!0,get:function(){return m},set:function(e){e=ss(e);e&&(m=e,this.hasBeenReset=!0)}},size:{enumerable:!0,get:function(){return g},set:function(e){if(e<0||100<e)throw new Error("Size must be between 0 and 100.");g=e,this.hasBeenReset=!0}},align:{enumerable:!0,get:function(){return f},set:function(e){e=ss(e);if(!e)throw new SyntaxError("align: an invalid or illegal alignment string was specified.");f=e,this.hasBeenReset=!0}}}),this.displayState=void 0}rs.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)};var ns=rs,as={"":!0,up:!0};function os(e){return"number"==typeof e&&0<=e&&e<=100}function ls(){var t=100,i=3,s=0,r=100,n=0,a=100,o="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return t},set:function(e){if(!os(e))throw new Error("Width must be between 0 and 100.");t=e}},lines:{enumerable:!0,get:function(){return i},set:function(e){if("number"!=typeof e)throw new TypeError("Lines must be set to a number.");i=e}},regionAnchorY:{enumerable:!0,get:function(){return r},set:function(e){if(!os(e))throw new Error("RegionAnchorX must be between 0 and 100.");r=e}},regionAnchorX:{enumerable:!0,get:function(){return s},set:function(e){if(!os(e))throw new Error("RegionAnchorY must be between 0 and 100.");s=e}},viewportAnchorY:{enumerable:!0,get:function(){return a},set:function(e){if(!os(e))throw new Error("ViewportAnchorY must be between 0 and 100.");a=e}},viewportAnchorX:{enumerable:!0,get:function(){return n},set:function(e){if(!os(e))throw new Error("ViewportAnchorX must be between 0 and 100.");n=e}},scroll:{enumerable:!0,get:function(){return o},set:function(e){e="string"==typeof(e=e)&&!!as[e.toLowerCase()]&&e.toLowerCase();!1!==e&&(o=e)}}})}var ds=Dt(function(e){var e=e.exports={WebVTT:es,VTTCue:ns,VTTRegion:ls},t=(mi.vttjs=e,mi.WebVTT=e.WebVTT,e.VTTCue),i=e.VTTRegion,s=mi.VTTCue,r=mi.VTTRegion;e.shim=function(){mi.VTTCue=t,mi.VTTRegion=i},e.restore=function(){mi.VTTCue=s,mi.VTTRegion=r},mi.VTTCue||e.shim()});ds.WebVTT,ds.VTTCue,ds.VTTRegion;class _ extends f{constructor(t={},e=function(){}){t.reportTouchActivity=!1,super(null,t,e),this.onDurationChange_=e=>this.onDurationChange(e),this.trackProgress_=e=>this.trackProgress(e),this.trackCurrentTime_=e=>this.trackCurrentTime(e),this.stopTrackingCurrentTime_=e=>this.stopTrackingCurrentTime(e),this.disposeSourceHandler_=e=>this.disposeSourceHandler(e),this.queuedHanders_=new Set,this.hasStarted_=!1,this.on("playing",function(){this.hasStarted_=!0}),this.on("loadstart",function(){this.hasStarted_=!1}),a.names.forEach(e=>{e=a[e];t&&t[e.getterName]&&(this[e.privateName]=t[e.getterName])}),this.featuresProgressEvents||this.manualProgressOn(),this.featuresTimeupdateEvents||this.manualTimeUpdatesOn(),["Text","Audio","Video"].forEach(e=>{!1===t[`native${e}Tracks`]&&(this[`featuresNative${e}Tracks`]=!1)}),!1===t.nativeCaptions||!1===t.nativeTextTracks?this.featuresNativeTextTracks=!1:!0!==t.nativeCaptions&&!0!==t.nativeTextTracks||(this.featuresNativeTextTracks=!0),this.featuresNativeTextTracks||this.emulateTextTracks(),this.preloadTextTracks=!1!==t.preloadTextTracks,this.autoRemoteTextTracks_=new a.text.ListClass,this.initTrackListeners(),t.nativeControlsForTouch||this.emitTapEvents(),this.constructor&&(this.name_=this.constructor.name||"Unknown Tech")}triggerSourceset(e){this.isReady_||this.one("ready",()=>this.setTimeout(()=>this.triggerSourceset(e),1)),this.trigger({src:e,type:"sourceset"})}manualProgressOn(){this.on("durationchange",this.onDurationChange_),this.manualProgress=!0,this.one("ready",this.trackProgress_)}manualProgressOff(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange_)}trackProgress(e){this.stopTrackingProgress(),this.progressInterval=this.setInterval(m(this,function(){var e=this.bufferedPercent();this.bufferedPercent_!==e&&this.trigger("progress"),1===(this.bufferedPercent_=e)&&this.stopTrackingProgress()}),500)}onDurationChange(e){this.duration_=this.duration()}buffered(){return Rt(0,0)}bufferedPercent(){return Vt(this.buffered(),this.duration_)}stopTrackingProgress(){this.clearInterval(this.progressInterval)}manualTimeUpdatesOn(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime_),this.on("pause",this.stopTrackingCurrentTime_)}manualTimeUpdatesOff(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime_),this.off("pause",this.stopTrackingCurrentTime_)}trackCurrentTime(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)}stopTrackingCurrentTime(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})}dispose(){this.clearTracks(Di.names),this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),super.dispose()}clearTracks(e){(e=[].concat(e)).forEach(e=>{var t=this[e+"Tracks"]()||[];let i=t.length;for(;i--;){var s=t[i];"text"===e&&this.removeRemoteTextTrack(s),t.removeTrack(s)}})}cleanupAutoTextTracks(){var e=this.autoRemoteTextTracks_||[];let t=e.length;for(;t--;){var i=e[t];this.removeRemoteTextTrack(i)}}reset(){}crossOrigin(){}setCrossOrigin(){}error(e){return void 0!==e&&(this.error_=new i(e),this.trigger("error")),this.error_}played(){return this.hasStarted_?Rt(0,0):Rt()}play(){}setScrubbing(e){}scrubbing(){}setCurrentTime(e){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})}initTrackListeners(){Di.names.forEach(e=>{var t=Di[e];const i=()=>{this.trigger(e+"trackchange")},s=this[t.getterName]();s.addEventListener("removetrack",i),s.addEventListener("addtrack",i),this.on("dispose",()=>{s.removeEventListener("removetrack",i),s.removeEventListener("addtrack",i)})})}addWebVttScript_(){if(!window.WebVTT)if(document.body.contains(this.el()))if(!this.options_["vtt.js"]&&Y(ds)&&0<Object.keys(ds).length)this.trigger("vttjsloaded");else{const e=document.createElement("script");e.src=this.options_["vtt.js"]||"https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js",e.onload=()=>{this.trigger("vttjsloaded")},e.onerror=()=>{this.trigger("vttjserror")},this.on("dispose",()=>{e.onload=null,e.onerror=null}),window.WebVTT=!0,this.el().parentNode.appendChild(e)}else this.ready(this.addWebVttScript_)}emulateTextTracks(){const i=this.textTracks(),e=this.remoteTextTracks(),t=e=>i.addTrack(e.track),s=e=>i.removeTrack(e.track),r=(e.on("addtrack",t),e.on("removetrack",s),this.addWebVttScript_(),()=>this.trigger("texttrackchange")),n=()=>{r();for(let e=0;e<i.length;e++){var t=i[e];t.removeEventListener("cuechange",r),"showing"===t.mode&&t.addEventListener("cuechange",r)}};n(),i.addEventListener("change",n),i.addEventListener("addtrack",n),i.addEventListener("removetrack",n),this.on("dispose",function(){e.off("addtrack",t),e.off("removetrack",s),i.removeEventListener("change",n),i.removeEventListener("addtrack",n),i.removeEventListener("removetrack",n);for(let e=0;e<i.length;e++)i[e].removeEventListener("cuechange",r)})}addTextTrack(e,t,i){if(e)return e=e,t=t,i=i,r={},n=(s=this).textTracks(),r.kind=e,t&&(r.label=t),i&&(r.language=i),r.tech=s,e=new a.text.TrackClass(r),n.addTrack(e),e;throw new Error("TextTrack kind is required but was not provided");var s,r,n}createRemoteTextTrack(e){e=h(e,{tech:this});return new Ni.remoteTextEl.TrackClass(e)}addRemoteTextTrack(e={},t){const i=this.createRemoteTextTrack(e);return"boolean"!=typeof t&&(t=!1),this.remoteTextTrackEls().addTrackElement_(i),this.remoteTextTracks().addTrack(i.track),!1===t&&this.ready(()=>this.autoRemoteTextTracks_.addTrack(i.track)),i}removeRemoteTextTrack(e){var t=this.remoteTextTrackEls().getTrackElementByTrack_(e);this.remoteTextTrackEls().removeTrackElement_(t),this.remoteTextTracks().removeTrack(e),this.autoRemoteTextTracks_.removeTrack(e)}getVideoPlaybackQuality(){return{}}requestPictureInPicture(){return Promise.reject()}disablePictureInPicture(){return!0}setDisablePictureInPicture(){}requestVideoFrameCallback(e){const t=tt++;return!this.isReady_||this.paused()?(this.queuedHanders_.add(t),this.one("playing",()=>{this.queuedHanders_.has(t)&&(this.queuedHanders_.delete(t),e())})):this.requestNamedAnimationFrame(t,e),t}cancelVideoFrameCallback(e){this.queuedHanders_.has(e)?this.queuedHanders_.delete(e):this.cancelNamedAnimationFrame(e)}setPoster(){}playsinline(){}setPlaysinline(){}overrideNativeAudioTracks(e){}overrideNativeVideoTracks(e){}canPlayType(e){return""}static canPlayType(e){return""}static canPlaySource(e,t){return _.canPlayType(e.type)}static isTech(e){return e.prototype instanceof _||e instanceof _||e===_}static registerTech(e,t){if(_.techs_||(_.techs_={}),!_.isTech(t))throw new Error(`Tech ${e} must be a Tech`);if(!_.canPlayType)throw new Error("Techs must have a static canPlayType method on them");if(_.canPlaySource)return e=g(e),_.techs_[e]=t,_.techs_[At(e)]=t,"Tech"!==e&&_.defaultTechOrder_.push(e),t;throw new Error("Techs must have a static canPlaySource method on them")}static getTech(e){if(e)return _.techs_&&_.techs_[e]?_.techs_[e]:(e=g(e),window&&window.videojs&&window.videojs[e]?(d.warn(`The ${e} tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)`),window.videojs[e]):void 0)}}a.names.forEach(function(e){const t=a[e];_.prototype[t.getterName]=function(){return this[t.privateName]=this[t.privateName]||new t.ListClass,this[t.privateName]}}),_.prototype.featuresVolumeControl=!0,_.prototype.featuresMuteControl=!0,_.prototype.featuresFullscreenResize=!1,_.prototype.featuresPlaybackRate=!1,_.prototype.featuresProgressEvents=!1,_.prototype.featuresSourceset=!1,_.prototype.featuresTimeupdateEvents=!1,_.prototype.featuresNativeTextTracks=!1,_.prototype.featuresVideoFrameCallback=!1,_.withSourceHandlers=function(r){r.registerSourceHandler=function(e,t){let i=r.sourceHandlers;i=i||(r.sourceHandlers=[]),void 0===t&&(t=i.length),i.splice(t,0,e)},r.canPlayType=function(t){var i,s=r.sourceHandlers||[];for(let e=0;e<s.length;e++)if(i=s[e].canPlayType(t))return i;return""},r.selectSourceHandler=function(t,i){var s=r.sourceHandlers||[];for(let e=0;e<s.length;e++)if(s[e].canHandleSource(t,i))return s[e];return null},r.canPlaySource=function(e,t){var i=r.selectSourceHandler(e,t);return i?i.canHandleSource(e,t):""};["seekable","seeking","duration"].forEach(function(e){const t=this[e];"function"==typeof t&&(this[e]=function(){return this.sourceHandler_&&this.sourceHandler_[e]?this.sourceHandler_[e].apply(this.sourceHandler_,arguments):t.apply(this,arguments)})},r.prototype),r.prototype.setSource=function(e){let t=r.selectSourceHandler(e,this.options_);t||(r.nativeSourceHandler?t=r.nativeSourceHandler:d.error("No source handler found for the current source.")),this.disposeSourceHandler(),this.off("dispose",this.disposeSourceHandler_),t!==r.nativeSourceHandler&&(this.currentSource_=e),this.sourceHandler_=t.handleSource(e,this,this.options_),this.one("dispose",this.disposeSourceHandler_)},r.prototype.disposeSourceHandler=function(){this.currentSource_&&(this.clearTracks(["audio","video"]),this.currentSource_=null),this.cleanupAutoTextTracks(),this.sourceHandler_&&(this.sourceHandler_.dispose&&this.sourceHandler_.dispose(),this.sourceHandler_=null)}},f.registerComponent("Tech",_),_.registerTech("Tech",_),_.defaultTechOrder_=[];const hs={},us={},cs={};function ps(e,t,i){e.setTimeout(()=>function i(s={},e=[],r,n,a=[],o=!1){const[t,...l]=e;if("string"==typeof t)i(s,hs[t],r,n,a,o);else if(t){const d=vs(n,t);if(!d.setSource)return a.push(d),i(s,l,r,n,a,o);d.setSource(Object.assign({},s),function(e,t){if(e)return i(s,l,r,n,a,o);a.push(d),i(t,s.type===t.type?l:hs[t.type],r,n,a,o)})}else l.length?i(s,l,r,n,a,o):o?r(s,a):i(s,hs["*"],r,n,a,!0)}(t,hs[t.type],i,e),1)}function ms(e,t,i,s=null){var r="call"+g(i),r=e.reduce(_s(r),s),s=r===cs,t=s?null:t[i](r),n=e,a=i,o=t,l=s;for(let e=n.length-1;0<=e;e--){var d=n[e];d[a]&&d[a](l,o)}return t}const gs={buffered:1,currentTime:1,duration:1,muted:1,played:1,paused:1,seekable:1,volume:1,ended:1},fs={setCurrentTime:1,setMuted:1,setVolume:1},ys={play:1,pause:1};function _s(i){return(e,t)=>e===cs?cs:t[i]?t[i](e):e}function vs(e,t){var i=us[e.id()];let s=null;if(null==i)s=t(e),us[e.id()]=[[t,s]];else{for(let e=0;e<i.length;e++){var[r,n]=i[e];r===t&&(s=n)}null===s&&(s=t(e),i.push([t,s]))}return s}function bs(e){if(Array.isArray(e)){let t=[];e.forEach(function(e){e=bs(e),Array.isArray(e)?t=t.concat(e):K(e)&&t.push(e)}),e=t}else e="string"==typeof e&&e.trim()?[ws({src:e})]:K(e)&&"string"==typeof e.src&&e.src&&e.src.trim()?[ws(e)]:[];return e}const Ts={opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",m4a:"audio/mp4",mp3:"audio/mpeg",aac:"audio/aac",caf:"audio/x-caf",flac:"audio/flac",oga:"audio/ogg",wav:"audio/wav",m3u8:"application/x-mpegURL",mpd:"application/dash+xml",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",png:"image/png",svg:"image/svg+xml",webp:"image/webp"},Ss=function(e=""){e=ui(e);return Ts[e.toLowerCase()]||""};function ws(e){var t;return e.type||(t=Ss(e.src))&&(e.type=t),e}class Es extends f{constructor(s,e,t){if(super(s,h({createEl:!1},e),t),e.playerOptions.sources&&0!==e.playerOptions.sources.length)s.src(e.playerOptions.sources);else for(let t=0,i=e.playerOptions.techOrder;t<i.length;t++){var r=g(i[t]);let e=_.getTech(r);if((e=r?e:f.getComponent(r))&&e.isSupported()){s.loadTech_(r);break}}}}f.registerComponent("MediaLoader",Es);class ks extends f{constructor(e,t){super(e,t),this.options_.controlText&&this.controlText(this.options_.controlText),this.handleMouseOver_=e=>this.handleMouseOver(e),this.handleMouseOut_=e=>this.handleMouseOut(e),this.handleClick_=e=>this.handleClick(e),this.handleKeyDown_=e=>this.handleKeyDown(e),this.emitTapEvents(),this.enable()}createEl(e="div",t={},i={}){t=Object.assign({className:this.buildCSSClass(),tabIndex:0},t),"button"===e&&d.error(`Creating a ClickableComponent with an HTML element of ${e} is not supported; use a Button instead.`),i=Object.assign({role:"button"},i),this.tabIndex_=t.tabIndex;e=o(e,t,i);return e.appendChild(o("span",{className:"vjs-icon-placeholder"},{"aria-hidden":!0})),this.createControlTextEl(e),e}dispose(){this.controlTextEl_=null,super.dispose()}createControlTextEl(e){return this.controlTextEl_=o("span",{className:"vjs-control-text"},{"aria-live":"polite"}),e&&e.appendChild(this.controlTextEl_),this.controlText(this.controlText_,e),this.controlTextEl_}controlText(e,t=this.el()){if(void 0===e)return this.controlText_||"Need Text";var i=this.localize(e);this.controlText_=e,Se(this.controlTextEl_,i),this.nonIconControl||this.player_.options_.noUITitleAttributes||t.setAttribute("title",i)}buildCSSClass(){return"vjs-control vjs-button "+super.buildCSSClass()}enable(){this.enabled_||(this.enabled_=!0,this.removeClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","false"),"undefined"!=typeof this.tabIndex_&&this.el_.setAttribute("tabIndex",this.tabIndex_),this.on(["tap","click"],this.handleClick_),this.on("keydown",this.handleKeyDown_))}disable(){this.enabled_=!1,this.addClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","true"),"undefined"!=typeof this.tabIndex_&&this.el_.removeAttribute("tabIndex"),this.off("mouseover",this.handleMouseOver_),this.off("mouseout",this.handleMouseOut_),this.off(["tap","click"],this.handleClick_),this.off("keydown",this.handleKeyDown_)}handleLanguagechange(){this.controlText(this.controlText_)}handleClick(e){this.options_.clickHandler&&this.options_.clickHandler.call(this,arguments)}handleKeyDown(e){r.isEventKey(e,"Space")||r.isEventKey(e,"Enter")?(e.preventDefault(),e.stopPropagation(),this.trigger("click")):super.handleKeyDown(e)}}f.registerComponent("ClickableComponent",ks);class Cs extends ks{constructor(e,t){super(e,t),this.update(),this.update_=e=>this.update(e),e.on("posterchange",this.update_)}dispose(){this.player().off("posterchange",this.update_),super.dispose()}createEl(){return o("div",{className:"vjs-poster"})}crossOrigin(e){if("undefined"==typeof e)return this.$("img")?this.$("img").crossOrigin:this.player_.tech_&&this.player_.tech_.isReady_?this.player_.crossOrigin():this.player_.options_.crossOrigin||this.player_.options_.crossorigin||null;null!==e&&"anonymous"!==e&&"use-credentials"!==e?this.player_.log.warn(`crossOrigin must be null, "anonymous" or "use-credentials", given "${e}"`):this.$("img")&&(this.$("img").crossOrigin=e)}update(e){var t=this.player().poster();this.setSrc(t),t?this.show():this.hide()}setSrc(e){e?(this.$("img")||this.el_.appendChild(o("picture",{className:"vjs-poster",tabIndex:-1},{},o("img",{loading:"lazy",crossOrigin:this.crossOrigin()},{alt:""}))),this.$("img").src=e):this.el_.textContent=""}handleClick(e){this.player_.controls()&&(this.player_.tech(!0)&&this.player_.tech(!0).focus(),this.player_.paused()?Gt(this.player_.play()):this.player_.pause())}}Cs.prototype.crossorigin=Cs.prototype.crossOrigin,f.registerComponent("PosterImage",Cs);const Is={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'};function xs(e,t){let i;if(4===e.length)i=e[1]+e[1]+e[2]+e[2]+e[3]+e[3];else{if(7!==e.length)throw new Error("Invalid color code provided, "+e+"; must be formatted as e.g. #f0e or #f604e2.");i=e.slice(1)}return"rgba("+parseInt(i.slice(0,2),16)+","+parseInt(i.slice(2,4),16)+","+parseInt(i.slice(4,6),16)+","+t+")"}function As(e,t,i){try{e.style[t]=i}catch(e){}}class Ps extends f{constructor(s,e,t){super(s,e,t);const r=e=>this.updateDisplay(e);s.on("loadstart",e=>this.toggleDisplay(e)),s.on("texttrackchange",r),s.on("loadedmetadata",e=>this.preselectTrack(e)),s.ready(m(this,function(){if(s.tech_&&s.tech_.featuresNativeTextTracks)this.hide();else{s.on("fullscreenchange",r),s.on("playerresize",r);const e=window.screen.orientation||window,i=window.screen.orientation?"change":"orientationchange";e.addEventListener(i,r),s.on("dispose",()=>e.removeEventListener(i,r));var t=this.options_.playerOptions.tracks||[];for(let e=0;e<t.length;e++)this.player_.addRemoteTextTrack(t[e],!0);this.preselectTrack()}}))}preselectTrack(){var t={captions:1,subtitles:1},i=this.player_.textTracks(),s=this.player_.cache_.selectedLanguage;let r,n,a;for(let e=0;e<i.length;e++){var o=i[e];s&&s.enabled&&s.language&&s.language===o.language&&o.kind in t?a=o.kind!==s.kind&&a||o:s&&!s.enabled?(a=null,r=null,n=null):o.default&&("descriptions"!==o.kind||r?o.kind in t&&!n&&(n=o):r=o)}a?a.mode="showing":n?n.mode="showing":r&&(r.mode="showing")}toggleDisplay(){this.player_.tech_&&this.player_.tech_.featuresNativeTextTracks?this.hide():this.show()}createEl(){return super.createEl("div",{className:"vjs-text-track-display"},{translate:"yes","aria-live":"off","aria-atomic":"true"})}clearDisplay(){"function"==typeof window.WebVTT&&window.WebVTT.processCues(window,[],this.el_)}updateDisplay(){var s=this.player_.textTracks(),e=this.options_.allowMultipleShowingTracks;if(this.clearDisplay(),e){var t=[];for(let e=0;e<s.length;++e){var i=s[e];"showing"===i.mode&&t.push(i)}this.updateForTrack(t)}else{let e=null,t=null,i=s.length;for(;i--;){var r=s[i];"showing"===r.mode&&("descriptions"===r.kind?e=r:t=r)}t?("off"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","off"),this.updateForTrack(t)):e&&("assertive"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","assertive"),this.updateForTrack(e))}}updateDisplayState(e){var t=this.player_.textTrackSettings.getValues(),i=e.activeCues;let s=i.length;for(;s--;){var r,n=i[s];n&&(n=n.displayState,t.color&&(n.firstChild.style.color=t.color),t.textOpacity&&As(n.firstChild,"color",xs(t.color||"#fff",t.textOpacity)),t.backgroundColor&&(n.firstChild.style.backgroundColor=t.backgroundColor),t.backgroundOpacity&&As(n.firstChild,"backgroundColor",xs(t.backgroundColor||"#000",t.backgroundOpacity)),t.windowColor&&(t.windowOpacity?As(n,"backgroundColor",xs(t.windowColor,t.windowOpacity)):n.style.backgroundColor=t.windowColor),t.edgeStyle&&("dropshadow"===t.edgeStyle?n.firstChild.style.textShadow="2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px #222":"raised"===t.edgeStyle?n.firstChild.style.textShadow="1px 1px #222, 2px 2px #222, 3px 3px #222":"depressed"===t.edgeStyle?n.firstChild.style.textShadow="1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px #222":"uniform"===t.edgeStyle&&(n.firstChild.style.textShadow="0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px #222")),t.fontPercent&&1!==t.fontPercent&&(r=window.parseFloat(n.style.fontSize),n.style.fontSize=r*t.fontPercent+"px",n.style.height="auto",n.style.top="auto"),t.fontFamily)&&"default"!==t.fontFamily&&("small-caps"===t.fontFamily?n.firstChild.style.fontVariant="small-caps":n.firstChild.style.fontFamily=Is[t.fontFamily])}}updateForTrack(i){if(Array.isArray(i)||(i=[i]),"function"==typeof window.WebVTT&&!i.every(e=>!e.activeCues)){var t=[];for(let e=0;e<i.length;++e){var s=i[e];for(let e=0;e<s.activeCues.length;++e)t.push(s.activeCues[e])}window.WebVTT.processCues(window,t,this.el_);for(let t=0;t<i.length;++t){var r=i[t];for(let e=0;e<r.activeCues.length;++e){var n=r.activeCues[e].displayState;ke(n,"vjs-text-track-cue","vjs-text-track-cue-"+(r.language||t)),r.language&&Le(n,"lang",r.language)}this.player_.textTrackSettings&&this.updateDisplayState(r)}}}}f.registerComponent("TextTrackDisplay",Ps);class Ls extends f{createEl(){var e=this.player_.isAudio(),e=this.localize(e?"Audio Player":"Video Player"),e=o("span",{className:"vjs-control-text",textContent:this.localize("{1} is loading.",[e])}),t=super.createEl("div",{className:"vjs-loading-spinner",dir:"ltr"});return t.appendChild(e),t}handleLanguagechange(){this.$(".vjs-control-text").textContent=this.localize("{1} is loading.",[this.player_.isAudio()?"Audio Player":"Video Player"])}}f.registerComponent("LoadingSpinner",Ls);class s extends ks{createEl(e,t={},i={}){t=o("button",t=Object.assign({className:this.buildCSSClass()},t),i=Object.assign({type:"button"},i));return t.appendChild(o("span",{className:"vjs-icon-placeholder"},{"aria-hidden":!0})),this.createControlTextEl(t),t}addChild(e,t={}){var i=this.constructor.name;return d.warn(`Adding an actionable (user controllable) child to a Button (${i}) is not supported; use a ClickableComponent instead.`),f.prototype.addChild.call(this,e,t)}enable(){super.enable(),this.el_.removeAttribute("disabled")}disable(){super.disable(),this.el_.setAttribute("disabled","disabled")}handleKeyDown(e){r.isEventKey(e,"Space")||r.isEventKey(e,"Enter")?e.stopPropagation():super.handleKeyDown(e)}}f.registerComponent("Button",s);class Os extends s{constructor(e,t){super(e,t),this.mouseused_=!1,this.on("mousedown",e=>this.handleMouseDown(e))}buildCSSClass(){return"vjs-big-play-button"}handleClick(e){var t=this.player_.play();if(this.mouseused_&&e.clientX&&e.clientY)Gt(t),this.player_.tech(!0)&&this.player_.tech(!0).focus();else{var e=this.player_.getChild("controlBar");const i=e&&e.getChild("playToggle");i?(e=()=>i.focus(),Wt(t)?t.then(e,()=>{}):this.setTimeout(e,1)):this.player_.tech(!0).focus()}}handleKeyDown(e){this.mouseused_=!1,super.handleKeyDown(e)}handleMouseDown(e){this.mouseused_=!0}}Os.prototype.controlText_="Play Video",f.registerComponent("BigPlayButton",Os);s;f.registerComponent("CloseButton",class extends s{constructor(e,t){super(e,t),this.controlText(t&&t.controlText||this.localize("Close"))}buildCSSClass(){return"vjs-close-button "+super.buildCSSClass()}handleClick(e){this.trigger({type:"close",bubbles:!1})}handleKeyDown(e){r.isEventKey(e,"Esc")?(e.preventDefault(),e.stopPropagation(),this.trigger("click")):super.handleKeyDown(e)}});class Ds extends s{constructor(e,t={}){super(e,t),t.replay=void 0===t.replay||t.replay,this.on(e,"play",e=>this.handlePlay(e)),this.on(e,"pause",e=>this.handlePause(e)),t.replay&&this.on(e,"ended",e=>this.handleEnded(e))}buildCSSClass(){return"vjs-play-control "+super.buildCSSClass()}handleClick(e){this.player_.paused()?Gt(this.player_.play()):this.player_.pause()}handleSeeked(e){this.removeClass("vjs-ended"),this.player_.paused()?this.handlePause(e):this.handlePlay(e)}handlePlay(e){this.removeClass("vjs-ended","vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")}handlePause(e){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")}handleEnded(e){this.removeClass("vjs-playing"),this.addClass("vjs-ended"),this.controlText("Replay"),this.one(this.player_,"seeked",e=>this.handleSeeked(e))}}Ds.prototype.controlText_="Play",f.registerComponent("PlayToggle",Ds);class Ns extends f{constructor(e,t){super(e,t),this.on(e,["timeupdate","ended"],e=>this.updateContent(e)),this.updateTextNode_()}createEl(){var e=this.buildCSSClass(),t=super.createEl("div",{className:e+" vjs-time-control vjs-control"}),i=o("span",{className:"vjs-control-text",textContent:this.localize(this.labelText_)+" "},{role:"presentation"});return t.appendChild(i),this.contentEl_=o("span",{className:e+"-display"},{role:"presentation"}),t.appendChild(this.contentEl_),t}dispose(){this.contentEl_=null,this.textNode_=null,super.dispose()}updateTextNode_(e=0){e=Ht(e),this.formattedTime_!==e&&(this.formattedTime_=e,this.requestNamedAnimationFrame("TimeDisplay#updateTextNode_",()=>{if(this.contentEl_){let e=this.textNode_;e&&this.contentEl_.firstChild!==e&&(e=null,d.warn("TimeDisplay#updateTextnode_: Prevented replacement of text node element since it was no longer a child of this node. Appending a new node instead.")),this.textNode_=document.createTextNode(this.formattedTime_),this.textNode_&&(e?this.contentEl_.replaceChild(this.textNode_,e):this.contentEl_.appendChild(this.textNode_))}}))}updateContent(e){}}Ns.prototype.labelText_="Time",Ns.prototype.controlText_="Time",f.registerComponent("TimeDisplay",Ns);class Ms extends Ns{buildCSSClass(){return"vjs-current-time"}updateContent(e){let t;t=this.player_.ended()?this.player_.duration():this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),this.updateTextNode_(t)}}Ms.prototype.labelText_="Current Time",Ms.prototype.controlText_="Current Time",f.registerComponent("CurrentTimeDisplay",Ms);class Rs extends Ns{constructor(e,t){super(e,t);t=e=>this.updateContent(e);this.on(e,"durationchange",t),this.on(e,"loadstart",t),this.on(e,"loadedmetadata",t)}buildCSSClass(){return"vjs-duration"}updateContent(e){var t=this.player_.duration();this.updateTextNode_(t)}}Rs.prototype.labelText_="Duration",Rs.prototype.controlText_="Duration",f.registerComponent("DurationDisplay",Rs);class Us extends f{createEl(){var e=super.createEl("div",{className:"vjs-time-control vjs-time-divider"},{"aria-hidden":!0}),t=super.createEl("div"),i=super.createEl("span",{textContent:"/"});return t.appendChild(i),e.appendChild(t),e}}f.registerComponent("TimeDivider",Us);class Bs extends Ns{constructor(e,t){super(e,t),this.on(e,"durationchange",e=>this.updateContent(e))}buildCSSClass(){return"vjs-remaining-time"}createEl(){var e=super.createEl();return!1!==this.options_.displayNegative&&e.insertBefore(o("span",{},{"aria-hidden":!0},"-"),this.contentEl_),e}updateContent(e){if("number"==typeof this.player_.duration()){let e;e=this.player_.ended()?0:this.player_.remainingTimeDisplay?this.player_.remainingTimeDisplay():this.player_.remainingTime(),this.updateTextNode_(e)}}}Bs.prototype.labelText_="Remaining Time",Bs.prototype.controlText_="Remaining Time",f.registerComponent("RemainingTimeDisplay",Bs);class Fs extends f{constructor(e,t){super(e,t),this.updateShowing(),this.on(this.player(),"durationchange",e=>this.updateShowing(e))}createEl(){var e=super.createEl("div",{className:"vjs-live-control vjs-control"});return this.contentEl_=o("div",{className:"vjs-live-display"},{"aria-live":"off"}),this.contentEl_.appendChild(o("span",{className:"vjs-control-text",textContent:this.localize("Stream Type")+" "})),this.contentEl_.appendChild(document.createTextNode(this.localize("LIVE"))),e.appendChild(this.contentEl_),e}dispose(){this.contentEl_=null,super.dispose()}updateShowing(e){this.player().duration()===1/0?this.show():this.hide()}}f.registerComponent("LiveDisplay",Fs);class js extends s{constructor(e,t){super(e,t),this.updateLiveEdgeStatus(),this.player_.liveTracker&&(this.updateLiveEdgeStatusHandler_=e=>this.updateLiveEdgeStatus(e),this.on(this.player_.liveTracker,"liveedgechange",this.updateLiveEdgeStatusHandler_))}createEl(){var e=super.createEl("button",{className:"vjs-seek-to-live-control vjs-control"});return this.textEl_=o("span",{className:"vjs-seek-to-live-text",textContent:this.localize("LIVE")},{"aria-hidden":"true"}),e.appendChild(this.textEl_),e}updateLiveEdgeStatus(){!this.player_.liveTracker||this.player_.liveTracker.atLiveEdge()?(this.setAttribute("aria-disabled",!0),this.addClass("vjs-at-live-edge"),this.controlText("Seek to live, currently playing live")):(this.setAttribute("aria-disabled",!1),this.removeClass("vjs-at-live-edge"),this.controlText("Seek to live, currently behind live"))}handleClick(){this.player_.liveTracker.seekToLiveEdge()}dispose(){this.player_.liveTracker&&this.off(this.player_.liveTracker,"liveedgechange",this.updateLiveEdgeStatusHandler_),this.textEl_=null,super.dispose()}}function Hs(e,t,i){return e=Number(e),Math.min(i,Math.max(t,isNaN(e)?t:e))}js.prototype.controlText_="Seek to live, currently playing live",f.registerComponent("SeekToLive",js);pi=Object.freeze({__proto__:null,clamp:Hs});class qs extends f{constructor(e,t){super(e,t),this.handleMouseDown_=e=>this.handleMouseDown(e),this.handleMouseUp_=e=>this.handleMouseUp(e),this.handleKeyDown_=e=>this.handleKeyDown(e),this.handleClick_=e=>this.handleClick(e),this.handleMouseMove_=e=>this.handleMouseMove(e),this.update_=e=>this.update(e),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),this.enable()}enabled(){return this.enabled_}enable(){this.enabled()||(this.on("mousedown",this.handleMouseDown_),this.on("touchstart",this.handleMouseDown_),this.on("keydown",this.handleKeyDown_),this.on("click",this.handleClick_),this.on(this.player_,"controlsvisible",this.update),this.playerEvent&&this.on(this.player_,this.playerEvent,this.update),this.removeClass("disabled"),this.setAttribute("tabindex",0),this.enabled_=!0)}disable(){var e;this.enabled()&&(e=this.bar.el_.ownerDocument,this.off("mousedown",this.handleMouseDown_),this.off("touchstart",this.handleMouseDown_),this.off("keydown",this.handleKeyDown_),this.off("click",this.handleClick_),this.off(this.player_,"controlsvisible",this.update_),this.off(e,"mousemove",this.handleMouseMove_),this.off(e,"mouseup",this.handleMouseUp_),this.off(e,"touchmove",this.handleMouseMove_),this.off(e,"touchend",this.handleMouseUp_),this.removeAttribute("tabindex"),this.addClass("disabled"),this.playerEvent&&this.off(this.player_,this.playerEvent,this.update),this.enabled_=!1)}createEl(e,t={},i={}){return t.className=t.className+" vjs-slider",t=Object.assign({tabIndex:0},t),i=Object.assign({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100},i),super.createEl(e,t,i)}handleMouseDown(e){var t=this.bar.el_.ownerDocument;"mousedown"===e.type&&e.preventDefault(),"touchstart"!==e.type||ae||e.preventDefault(),De(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(t,"mousemove",this.handleMouseMove_),this.on(t,"mouseup",this.handleMouseUp_),this.on(t,"touchmove",this.handleMouseMove_),this.on(t,"touchend",this.handleMouseUp_),this.handleMouseMove(e,!0)}handleMouseMove(e){}handleMouseUp(e){var t=this.bar.el_.ownerDocument;Ne(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(t,"mousemove",this.handleMouseMove_),this.off(t,"mouseup",this.handleMouseUp_),this.off(t,"touchmove",this.handleMouseMove_),this.off(t,"touchend",this.handleMouseUp_),this.update()}update(){if(this.el_&&this.bar){const t=this.getProgress();return t!==this.progress_&&(this.progress_=t,this.requestNamedAnimationFrame("Slider#update",()=>{var e=this.vertical()?"height":"width";this.bar.el().style[e]=(100*t).toFixed(2)+"%"})),t}}getProgress(){return Number(Hs(this.getPercent(),0,1).toFixed(4))}calculateDistance(e){e=Ue(this.el_,e);return this.vertical()?e.y:e.x}handleKeyDown(e){r.isEventKey(e,"Left")||r.isEventKey(e,"Down")?(e.preventDefault(),e.stopPropagation(),this.stepBack()):r.isEventKey(e,"Right")||r.isEventKey(e,"Up")?(e.preventDefault(),e.stopPropagation(),this.stepForward()):super.handleKeyDown(e)}handleClick(e){e.stopPropagation(),e.preventDefault()}vertical(e){if(void 0===e)return this.vertical_||!1;this.vertical_=!!e,this.vertical_?this.addClass("vjs-slider-vertical"):this.addClass("vjs-slider-horizontal")}}f.registerComponent("Slider",qs);const Vs=(e,t)=>Hs(e/t*100,0,100).toFixed(2)+"%";class $s extends f{constructor(e,t){super(e,t),this.partEls_=[],this.on(e,"progress",e=>this.update(e))}createEl(){var e=super.createEl("div",{className:"vjs-load-progress"}),t=o("span",{className:"vjs-control-text"}),i=o("span",{textContent:this.localize("Loaded")}),s=document.createTextNode(": ");return this.percentageEl_=o("span",{className:"vjs-control-text-loaded-percentage",textContent:"0%"}),e.appendChild(t),t.appendChild(i),t.appendChild(s),t.appendChild(this.percentageEl_),e}dispose(){this.partEls_=null,this.percentageEl_=null,super.dispose()}update(e){this.requestNamedAnimationFrame("LoadProgressBar#update",()=>{var e=this.player_.liveTracker,i=this.player_.buffered(),e=e&&e.isLive()?e.seekableEnd():this.player_.duration(),s=this.player_.bufferedEnd(),r=this.partEls_,e=Vs(s,e);this.percent_!==e&&(this.el_.style.width=e,Se(this.percentageEl_,e),this.percent_=e);for(let t=0;t<i.length;t++){var n=i.start(t),a=i.end(t);let e=r[t];e||(e=this.el_.appendChild(o()),r[t]=e),e.dataset.start===n&&e.dataset.end===a||(e.dataset.start=n,e.dataset.end=a,e.style.left=Vs(n,s),e.style.width=Vs(a-n,s))}for(let e=r.length;e>i.length;e--)this.el_.removeChild(r[e-1]);r.length=i.length})}}f.registerComponent("LoadProgressBar",$s);class Ws extends f{constructor(e,t){super(e,t),this.update=ct(m(this,this.update),30)}createEl(){return super.createEl("div",{className:"vjs-time-tooltip"},{"aria-hidden":"true"})}update(t,i,s){var r=Re(this.el_),n=Me(this.player_.el()),i=t.width*i;if(n&&r){var a=t.left-n.left+i,i=t.width-i+(n.right-t.right);let e=r.width/2;a<e?e+=e-a:i<e&&(e=i),e<0?e=0:e>r.width&&(e=r.width),e=Math.round(e),this.el_.style.right=`-${e}px`,this.write(s)}}write(e){Se(this.el_,e)}updateTime(r,n,a,o){this.requestNamedAnimationFrame("TimeTooltip#updateTime",()=>{let e;var t,i,s=this.player_.duration();e=this.player_.liveTracker&&this.player_.liveTracker.isLive()?((i=(t=this.player_.liveTracker.liveWindow())-n*t)<1?"":"-")+Ht(i,t):Ht(a,s),this.update(r,n,e),o&&o()})}}f.registerComponent("TimeTooltip",Ws);class Gs extends f{constructor(e,t){super(e,t),this.update=ct(m(this,this.update),30)}createEl(){return super.createEl("div",{className:"vjs-play-progress vjs-slider-bar"},{"aria-hidden":"true"})}update(e,t){var i,s=this.getChild("timeTooltip");s&&(i=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),s.updateTime(e,t,i))}}Gs.prototype.options_={children:[]},u||te||Gs.prototype.options_.children.push("timeTooltip"),f.registerComponent("PlayProgressBar",Gs);class zs extends f{constructor(e,t){super(e,t),this.update=ct(m(this,this.update),30)}createEl(){return super.createEl("div",{className:"vjs-mouse-display"})}update(e,t){var i=t*this.player_.duration();this.getChild("timeTooltip").updateTime(e,t,i,()=>{this.el_.style.left=e.width*t+"px"})}}zs.prototype.options_={children:["timeTooltip"]},f.registerComponent("MouseTimeDisplay",zs);class Xs extends qs{constructor(e,t){super(e,t),this.setEventHandlers_()}setEventHandlers_(){this.update_=m(this,this.update),this.update=ct(this.update_,30),this.on(this.player_,["ended","durationchange","timeupdate"],this.update),this.player_.liveTracker&&this.on(this.player_.liveTracker,"liveedgechange",this.update),this.updateInterval=null,this.enableIntervalHandler_=e=>this.enableInterval_(e),this.disableIntervalHandler_=e=>this.disableInterval_(e),this.on(this.player_,["playing"],this.enableIntervalHandler_),this.on(this.player_,["ended","pause","waiting"],this.disableIntervalHandler_),"hidden"in document&&"visibilityState"in document&&this.on(document,"visibilitychange",this.toggleVisibility_)}toggleVisibility_(e){"hidden"===document.visibilityState?(this.cancelNamedAnimationFrame("SeekBar#update"),this.cancelNamedAnimationFrame("Slider#update"),this.disableInterval_(e)):(this.player_.ended()||this.player_.paused()||this.enableInterval_(),this.update())}enableInterval_(){this.updateInterval||(this.updateInterval=this.setInterval(this.update,30))}disableInterval_(e){this.player_.liveTracker&&this.player_.liveTracker.isLive()&&e&&"ended"!==e.type||this.updateInterval&&(this.clearInterval(this.updateInterval),this.updateInterval=null)}createEl(){return super.createEl("div",{className:"vjs-progress-holder"},{"aria-label":this.localize("Progress Bar")})}update(e){if("hidden"!==document.visibilityState){const s=super.update();return this.requestNamedAnimationFrame("SeekBar#update",()=>{var e=this.player_.ended()?this.player_.duration():this.getCurrentTime_(),t=this.player_.liveTracker;let i=this.player_.duration();t&&t.isLive()&&(i=this.player_.liveTracker.liveCurrentTime()),this.percent_!==s&&(this.el_.setAttribute("aria-valuenow",(100*s).toFixed(2)),this.percent_=s),this.currentTime_===e&&this.duration_===i||(this.el_.setAttribute("aria-valuetext",this.localize("progress bar timing: currentTime={1} duration={2}",[Ht(e,i),Ht(i,i)],"{1} of {2}")),this.currentTime_=e,this.duration_=i),this.bar&&this.bar.update(Me(this.el()),this.getProgress())}),s}}userSeek_(e){this.player_.liveTracker&&this.player_.liveTracker.isLive()&&this.player_.liveTracker.nextSeekedFromUser(),this.player_.currentTime(e)}getCurrentTime_(){return this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime()}getPercent(){var e=this.getCurrentTime_();let t;var i=this.player_.liveTracker;return i&&i.isLive()?(t=(e-i.seekableStart())/i.liveWindow(),i.atLiveEdge()&&(t=1)):t=e/this.player_.duration(),t}handleMouseDown(e){Ve(e)&&(e.stopPropagation(),this.videoWasPlaying=!this.player_.paused(),this.player_.pause(),super.handleMouseDown(e))}handleMouseMove(t,i=!1){if(Ve(t)){i||this.player_.scrubbing()||this.player_.scrubbing(!0);let e;i=this.calculateDistance(t),t=this.player_.liveTracker;if(t&&t.isLive()){if(.99<=i)return void t.seekToLiveEdge();var s=t.seekableStart(),r=t.liveCurrentTime();if((e=(e=(e=s+i*t.liveWindow())>=r?r:e)<=s?s+.1:e)===1/0)return}else(e=i*this.player_.duration())===this.player_.duration()&&(e-=.1);this.userSeek_(e)}}enable(){super.enable();var e=this.getChild("mouseTimeDisplay");e&&e.show()}disable(){super.disable();var e=this.getChild("mouseTimeDisplay");e&&e.hide()}handleMouseUp(e){super.handleMouseUp(e),e&&e.stopPropagation(),this.player_.scrubbing(!1),this.player_.trigger({type:"timeupdate",target:this,manuallyTriggered:!0}),this.videoWasPlaying?Gt(this.player_.play()):this.update_()}stepForward(){this.userSeek_(this.player_.currentTime()+5)}stepBack(){this.userSeek_(this.player_.currentTime()-5)}handleAction(e){this.player_.paused()?this.player_.play():this.player_.pause()}handleKeyDown(e){var t,i=this.player_.liveTracker;r.isEventKey(e,"Space")||r.isEventKey(e,"Enter")?(e.preventDefault(),e.stopPropagation(),this.handleAction(e)):r.isEventKey(e,"Home")?(e.preventDefault(),e.stopPropagation(),this.userSeek_(0)):r.isEventKey(e,"End")?(e.preventDefault(),e.stopPropagation(),i&&i.isLive()?this.userSeek_(i.liveCurrentTime()):this.userSeek_(this.player_.duration())):/^[0-9]$/.test(r(e))?(e.preventDefault(),e.stopPropagation(),t=10*(r.codes[r(e)]-r.codes[0])/100,i&&i.isLive()?this.userSeek_(i.seekableStart()+i.liveWindow()*t):this.userSeek_(this.player_.duration()*t)):r.isEventKey(e,"PgDn")?(e.preventDefault(),e.stopPropagation(),this.userSeek_(this.player_.currentTime()-60)):r.isEventKey(e,"PgUp")?(e.preventDefault(),e.stopPropagation(),this.userSeek_(this.player_.currentTime()+60)):super.handleKeyDown(e)}dispose(){this.disableInterval_(),this.off(this.player_,["ended","durationchange","timeupdate"],this.update),this.player_.liveTracker&&this.off(this.player_.liveTracker,"liveedgechange",this.update),this.off(this.player_,["playing"],this.enableIntervalHandler_),this.off(this.player_,["ended","pause","waiting"],this.disableIntervalHandler_),"hidden"in document&&"visibilityState"in document&&this.off(document,"visibilitychange",this.toggleVisibility_),super.dispose()}}Xs.prototype.options_={children:["loadProgressBar","playProgressBar"],barName:"playProgressBar"},u||te||Xs.prototype.options_.children.splice(1,0,"mouseTimeDisplay"),f.registerComponent("SeekBar",Xs);class Ks extends f{constructor(e,t){super(e,t),this.handleMouseMove=ct(m(this,this.handleMouseMove),30),this.throttledHandleMouseSeek=ct(m(this,this.handleMouseSeek),30),this.handleMouseUpHandler_=e=>this.handleMouseUp(e),this.handleMouseDownHandler_=e=>this.handleMouseDown(e),this.enable()}createEl(){return super.createEl("div",{className:"vjs-progress-control vjs-control"})}handleMouseMove(e){var t,i,s,r,n=this.getChild("seekBar");n&&(t=n.getChild("playProgressBar"),i=n.getChild("mouseTimeDisplay"),t||i)&&(s=Re(r=n.el()),r=Hs(r=Ue(r,e).x,0,1),i&&i.update(s,r),t)&&t.update(s,n.getProgress())}handleMouseSeek(e){var t=this.getChild("seekBar");t&&t.handleMouseMove(e)}enabled(){return this.enabled_}disable(){var e;this.children().forEach(e=>e.disable&&e.disable()),this.enabled()&&(this.off(["mousedown","touchstart"],this.handleMouseDownHandler_),this.off(this.el_,"mousemove",this.handleMouseMove),this.removeListenersAddedOnMousedownAndTouchstart(),this.addClass("disabled"),this.enabled_=!1,this.player_.scrubbing())&&(e=this.getChild("seekBar"),this.player_.scrubbing(!1),e.videoWasPlaying)&&Gt(this.player_.play())}enable(){this.children().forEach(e=>e.enable&&e.enable()),this.enabled()||(this.on(["mousedown","touchstart"],this.handleMouseDownHandler_),this.on(this.el_,"mousemove",this.handleMouseMove),this.removeClass("disabled"),this.enabled_=!0)}removeListenersAddedOnMousedownAndTouchstart(){var e=this.el_.ownerDocument;this.off(e,"mousemove",this.throttledHandleMouseSeek),this.off(e,"touchmove",this.throttledHandleMouseSeek),this.off(e,"mouseup",this.handleMouseUpHandler_),this.off(e,"touchend",this.handleMouseUpHandler_)}handleMouseDown(e){var t=this.el_.ownerDocument,i=this.getChild("seekBar");i&&i.handleMouseDown(e),this.on(t,"mousemove",this.throttledHandleMouseSeek),this.on(t,"touchmove",this.throttledHandleMouseSeek),this.on(t,"mouseup",this.handleMouseUpHandler_),this.on(t,"touchend",this.handleMouseUpHandler_)}handleMouseUp(e){var t=this.getChild("seekBar");t&&t.handleMouseUp(e),this.removeListenersAddedOnMousedownAndTouchstart()}}Ks.prototype.options_={children:["seekBar"]},f.registerComponent("ProgressControl",Ks);class Ys extends s{constructor(e,t){super(e,t),this.on(e,["enterpictureinpicture","leavepictureinpicture"],e=>this.handlePictureInPictureChange(e)),this.on(e,["disablepictureinpicturechanged","loadedmetadata"],e=>this.handlePictureInPictureEnabledChange(e)),this.on(e,["loadedmetadata","audioonlymodechange","audiopostermodechange"],()=>{"audio"===e.currentType().substring(0,5)||e.audioPosterMode()||e.audioOnlyMode()?(e.isInPictureInPicture()&&e.exitPictureInPicture(),this.hide()):this.show()}),this.disable()}buildCSSClass(){return"vjs-picture-in-picture-control "+super.buildCSSClass()}handlePictureInPictureEnabledChange(){document.pictureInPictureEnabled&&!1===this.player_.disablePictureInPicture()||this.player_.options_.enableDocumentPictureInPicture&&"documentPictureInPicture"in window?this.enable():this.disable()}handlePictureInPictureChange(e){this.player_.isInPictureInPicture()?this.controlText("Exit Picture-in-Picture"):this.controlText("Picture-in-Picture"),this.handlePictureInPictureEnabledChange()}handleClick(e){this.player_.isInPictureInPicture()?this.player_.exitPictureInPicture():this.player_.requestPictureInPicture()}}Ys.prototype.controlText_="Picture-in-Picture",f.registerComponent("PictureInPictureToggle",Ys);class Qs extends s{constructor(e,t){super(e,t),this.on(e,"fullscreenchange",e=>this.handleFullscreenChange(e)),!1===document[e.fsApi_.fullscreenEnabled]&&this.disable()}buildCSSClass(){return"vjs-fullscreen-control "+super.buildCSSClass()}handleFullscreenChange(e){this.player_.isFullscreen()?this.controlText("Exit Fullscreen"):this.controlText("Fullscreen")}handleClick(e){this.player_.isFullscreen()?this.player_.exitFullscreen():this.player_.requestFullscreen()}}Qs.prototype.controlText_="Fullscreen",f.registerComponent("FullscreenToggle",Qs);class Js extends f{createEl(){var e=super.createEl("div",{className:"vjs-volume-level"});return e.appendChild(super.createEl("span",{className:"vjs-control-text"})),e}}f.registerComponent("VolumeLevel",Js);class Zs extends f{constructor(e,t){super(e,t),this.update=ct(m(this,this.update),30)}createEl(){return super.createEl("div",{className:"vjs-volume-tooltip"},{"aria-hidden":"true"})}update(t,i,s,e){if(!s){var s=Me(this.el_),r=Me(this.player_.el()),i=t.width*i;if(!r||!s)return;var n=t.left-r.left+i,i=t.width-i+(r.right-t.right);let e=s.width/2;n<e?e+=e-n:i<e&&(e=i),e<0?e=0:e>s.width&&(e=s.width),this.el_.style.right=`-${e}px`}this.write(e+"%")}write(e){Se(this.el_,e)}updateVolume(e,t,i,s,r){this.requestNamedAnimationFrame("VolumeLevelTooltip#updateVolume",()=>{this.update(e,t,i,s.toFixed(0)),r&&r()})}}f.registerComponent("VolumeLevelTooltip",Zs);class er extends f{constructor(e,t){super(e,t),this.update=ct(m(this,this.update),30)}createEl(){return super.createEl("div",{className:"vjs-mouse-display"})}update(e,t,i){var s=100*t;this.getChild("volumeLevelTooltip").updateVolume(e,t,i,s,()=>{i?this.el_.style.bottom=e.height*t+"px":this.el_.style.left=e.width*t+"px"})}}er.prototype.options_={children:["volumeLevelTooltip"]},f.registerComponent("MouseVolumeLevelDisplay",er);class tr extends qs{constructor(e,t){super(e,t),this.on("slideractive",e=>this.updateLastVolume_(e)),this.on(e,"volumechange",e=>this.updateARIAAttributes(e)),e.ready(()=>this.updateARIAAttributes())}createEl(){return super.createEl("div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":this.localize("Volume Level"),"aria-live":"polite"})}handleMouseDown(e){Ve(e)&&super.handleMouseDown(e)}handleMouseMove(e){var t,i,s,r=this.getChild("mouseVolumeLevelDisplay");r&&(t=Me(s=this.el()),i=this.vertical(),s=Ue(s,e),s=Hs(s=i?s.y:s.x,0,1),r.update(t,s,i)),Ve(e)&&(this.checkMuted(),this.player_.volume(this.calculateDistance(e)))}checkMuted(){this.player_.muted()&&this.player_.muted(!1)}getPercent(){return this.player_.muted()?0:this.player_.volume()}stepForward(){this.checkMuted(),this.player_.volume(this.player_.volume()+.1)}stepBack(){this.checkMuted(),this.player_.volume(this.player_.volume()-.1)}updateARIAAttributes(e){var t=this.player_.muted()?0:this.volumeAsPercentage_();this.el_.setAttribute("aria-valuenow",t),this.el_.setAttribute("aria-valuetext",t+"%")}volumeAsPercentage_(){return Math.round(100*this.player_.volume())}updateLastVolume_(){const e=this.player_.volume();this.one("sliderinactive",()=>{0===this.player_.volume()&&this.player_.lastVolume_(e)})}}tr.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},u||te||tr.prototype.options_.children.splice(0,0,"mouseVolumeLevelDisplay"),tr.prototype.playerEvent="volumechange",f.registerComponent("VolumeBar",tr);class ir extends f{constructor(e,t={}){var i,s;t.vertical=t.vertical||!1,"undefined"!=typeof t.volumeBar&&!Y(t.volumeBar)||(t.volumeBar=t.volumeBar||{},t.volumeBar.vertical=t.vertical),super(e,t),i=this,(s=e).tech_&&!s.tech_.featuresVolumeControl&&i.addClass("vjs-hidden"),i.on(s,"loadstart",function(){s.tech_.featuresVolumeControl?i.removeClass("vjs-hidden"):i.addClass("vjs-hidden")}),this.throttledHandleMouseMove=ct(m(this,this.handleMouseMove),30),this.handleMouseUpHandler_=e=>this.handleMouseUp(e),this.on("mousedown",e=>this.handleMouseDown(e)),this.on("touchstart",e=>this.handleMouseDown(e)),this.on("mousemove",e=>this.handleMouseMove(e)),this.on(this.volumeBar,["focus","slideractive"],()=>{this.volumeBar.addClass("vjs-slider-active"),this.addClass("vjs-slider-active"),this.trigger("slideractive")}),this.on(this.volumeBar,["blur","sliderinactive"],()=>{this.volumeBar.removeClass("vjs-slider-active"),this.removeClass("vjs-slider-active"),this.trigger("sliderinactive")})}createEl(){let e="vjs-volume-horizontal";return this.options_.vertical&&(e="vjs-volume-vertical"),super.createEl("div",{className:"vjs-volume-control vjs-control "+e})}handleMouseDown(e){var t=this.el_.ownerDocument;this.on(t,"mousemove",this.throttledHandleMouseMove),this.on(t,"touchmove",this.throttledHandleMouseMove),this.on(t,"mouseup",this.handleMouseUpHandler_),this.on(t,"touchend",this.handleMouseUpHandler_)}handleMouseUp(e){var t=this.el_.ownerDocument;this.off(t,"mousemove",this.throttledHandleMouseMove),this.off(t,"touchmove",this.throttledHandleMouseMove),this.off(t,"mouseup",this.handleMouseUpHandler_),this.off(t,"touchend",this.handleMouseUpHandler_)}handleMouseMove(e){this.volumeBar.handleMouseMove(e)}}ir.prototype.options_={children:["volumeBar"]},f.registerComponent("VolumeControl",ir);class sr extends s{constructor(e,t){var i,s;super(e,t),i=this,(s=e).tech_&&!s.tech_.featuresMuteControl&&i.addClass("vjs-hidden"),i.on(s,"loadstart",function(){s.tech_.featuresMuteControl?i.removeClass("vjs-hidden"):i.addClass("vjs-hidden")}),this.on(e,["loadstart","volumechange"],e=>this.update(e))}buildCSSClass(){return"vjs-mute-control "+super.buildCSSClass()}handleClick(e){var t=this.player_.volume(),i=this.player_.lastVolume_();0===t?(this.player_.volume(i<.1?.1:i),this.player_.muted(!1)):this.player_.muted(!this.player_.muted())}update(e){this.updateIcon_(),this.updateControlText_()}updateIcon_(){var e=this.player_.volume();let t=3;u&&this.player_.tech_&&this.player_.tech_.el_&&this.player_.muted(this.player_.tech_.el_.muted),0===e||this.player_.muted()?t=0:e<.33?t=1:e<.67&&(t=2),Ce(this.el_,[0,1,2,3].reduce((e,t)=>e+`${t?" ":""}vjs-vol-`+t,"")),ke(this.el_,"vjs-vol-"+t)}updateControlText_(){var e=this.player_.muted()||0===this.player_.volume()?"Unmute":"Mute";this.controlText()!==e&&this.controlText(e)}}sr.prototype.controlText_="Mute",f.registerComponent("MuteToggle",sr);class rr extends f{constructor(e,t={}){"undefined"!=typeof t.inline?t.inline=t.inline:t.inline=!0,"undefined"!=typeof t.volumeControl&&!Y(t.volumeControl)||(t.volumeControl=t.volumeControl||{},t.volumeControl.vertical=!t.inline),super(e,t),this.handleKeyPressHandler_=e=>this.handleKeyPress(e),this.on(e,["loadstart"],e=>this.volumePanelState_(e)),this.on(this.muteToggle,"keyup",e=>this.handleKeyPress(e)),this.on(this.volumeControl,"keyup",e=>this.handleVolumeControlKeyUp(e)),this.on("keydown",e=>this.handleKeyPress(e)),this.on("mouseover",e=>this.handleMouseOver(e)),this.on("mouseout",e=>this.handleMouseOut(e)),this.on(this.volumeControl,["slideractive"],this.sliderActive_),this.on(this.volumeControl,["sliderinactive"],this.sliderInactive_)}sliderActive_(){this.addClass("vjs-slider-active")}sliderInactive_(){this.removeClass("vjs-slider-active")}volumePanelState_(){this.volumeControl.hasClass("vjs-hidden")&&this.muteToggle.hasClass("vjs-hidden")&&this.addClass("vjs-hidden"),this.volumeControl.hasClass("vjs-hidden")&&!this.muteToggle.hasClass("vjs-hidden")&&this.addClass("vjs-mute-toggle-only")}createEl(){let e="vjs-volume-panel-horizontal";return this.options_.inline||(e="vjs-volume-panel-vertical"),super.createEl("div",{className:"vjs-volume-panel vjs-control "+e})}dispose(){this.handleMouseOut(),super.dispose()}handleVolumeControlKeyUp(e){r.isEventKey(e,"Esc")&&this.muteToggle.focus()}handleMouseOver(e){this.addClass("vjs-hover"),ot(document,"keyup",this.handleKeyPressHandler_)}handleMouseOut(e){this.removeClass("vjs-hover"),p(document,"keyup",this.handleKeyPressHandler_)}handleKeyPress(e){r.isEventKey(e,"Esc")&&this.handleMouseOut()}}rr.prototype.options_={children:["muteToggle","volumeControl"]},f.registerComponent("VolumePanel",rr);s;f.registerComponent("SkipForward",class extends s{constructor(e,t){super(e,t),this.validOptions=[5,10,30],this.skipTime=this.getSkipForwardTime(),this.skipTime&&this.validOptions.includes(this.skipTime)?(this.controlText(this.localize("Skip forward {1} seconds",[this.skipTime])),this.show()):this.hide()}getSkipForwardTime(){var e=this.options_.playerOptions;return e.controlBar&&e.controlBar.skipButtons&&e.controlBar.skipButtons.forward}buildCSSClass(){return`vjs-skip-forward-${this.getSkipForwardTime()} `+super.buildCSSClass()}handleClick(e){var t=this.player_.currentTime(),i=this.player_.liveTracker,i=i&&i.isLive()?i.seekableEnd():this.player_.duration();let s;s=t+this.skipTime<=i?t+this.skipTime:i,this.player_.currentTime(s)}handleLanguagechange(){this.controlText(this.localize("Skip forward {1} seconds",[this.skipTime]))}});class nr extends s{constructor(e,t){super(e,t),this.validOptions=[5,10,30],this.skipTime=this.getSkipBackwardTime(),this.skipTime&&this.validOptions.includes(this.skipTime)?(this.controlText(this.localize("Skip backward {1} seconds",[this.skipTime])),this.show()):this.hide()}getSkipBackwardTime(){var e=this.options_.playerOptions;return e.controlBar&&e.controlBar.skipButtons&&e.controlBar.skipButtons.backward}buildCSSClass(){return`vjs-skip-backward-${this.getSkipBackwardTime()} `+super.buildCSSClass()}handleClick(e){var t=this.player_.currentTime(),i=this.player_.liveTracker,i=i&&i.isLive()&&i.seekableStart();let s;s=i&&t-this.skipTime<=i?i:t>=this.skipTime?t-this.skipTime:0,this.player_.currentTime(s)}handleLanguagechange(){this.controlText(this.localize("Skip backward {1} seconds",[this.skipTime]))}}nr.prototype.controlText_="Skip Backward",f.registerComponent("SkipBackward",nr);class ar extends f{constructor(e,t){super(e,t),t&&(this.menuButton_=t.menuButton),this.focusedChild_=-1,this.on("keydown",e=>this.handleKeyDown(e)),this.boundHandleBlur_=e=>this.handleBlur(e),this.boundHandleTapClick_=e=>this.handleTapClick(e)}addEventListenerForItem(e){e instanceof f&&(this.on(e,"blur",this.boundHandleBlur_),this.on(e,["tap","click"],this.boundHandleTapClick_))}removeEventListenerForItem(e){e instanceof f&&(this.off(e,"blur",this.boundHandleBlur_),this.off(e,["tap","click"],this.boundHandleTapClick_))}removeChild(e){"string"==typeof e&&(e=this.getChild(e)),this.removeEventListenerForItem(e),super.removeChild(e)}addItem(e){e=this.addChild(e);e&&this.addEventListenerForItem(e)}createEl(){var e=this.options_.contentElType||"ul",e=(this.contentEl_=o(e,{className:"vjs-menu-content"}),this.contentEl_.setAttribute("role","menu"),super.createEl("div",{append:this.contentEl_,className:"vjs-menu"}));return e.appendChild(this.contentEl_),ot(e,"click",function(e){e.preventDefault(),e.stopImmediatePropagation()}),e}dispose(){this.contentEl_=null,this.boundHandleBlur_=null,this.boundHandleTapClick_=null,super.dispose()}handleBlur(e){const t=e.relatedTarget||document.activeElement;this.children().some(e=>e.el()===t)||(e=this.menuButton_)&&e.buttonPressed_&&t!==e.el().firstChild&&e.unpressButton()}handleTapClick(t){var e;this.menuButton_&&(this.menuButton_.unpressButton(),e=this.children(),Array.isArray(e))&&(e=e.filter(e=>e.el()===t.target)[0])&&"CaptionSettingsMenuItem"!==e.name()&&this.menuButton_.focus()}handleKeyDown(e){r.isEventKey(e,"Left")||r.isEventKey(e,"Down")?(e.preventDefault(),e.stopPropagation(),this.stepForward()):(r.isEventKey(e,"Right")||r.isEventKey(e,"Up"))&&(e.preventDefault(),e.stopPropagation(),this.stepBack())}stepForward(){let e=0;void 0!==this.focusedChild_&&(e=this.focusedChild_+1),this.focus(e)}stepBack(){let e=0;void 0!==this.focusedChild_&&(e=this.focusedChild_-1),this.focus(e)}focus(e=0){var t=this.children().slice();t.length&&t[0].hasClass("vjs-menu-title")&&t.shift(),0<t.length&&(e<0?e=0:e>=t.length&&(e=t.length-1),t[this.focusedChild_=e].el_.focus())}}f.registerComponent("Menu",ar);class or extends f{constructor(e,t={}){super(e,t),this.menuButton_=new s(e,t),this.menuButton_.controlText(this.controlText_),this.menuButton_.el_.setAttribute("aria-haspopup","true");e=s.prototype.buildCSSClass(),this.menuButton_.el_.className=this.buildCSSClass()+" "+e,this.menuButton_.removeClass("vjs-control"),this.addChild(this.menuButton_),this.update(),this.enabled_=!0,t=e=>this.handleClick(e);this.handleMenuKeyUp_=e=>this.handleMenuKeyUp(e),this.on(this.menuButton_,"tap",t),this.on(this.menuButton_,"click",t),this.on(this.menuButton_,"keydown",e=>this.handleKeyDown(e)),this.on(this.menuButton_,"mouseenter",()=>{this.addClass("vjs-hover"),this.menu.show(),ot(document,"keyup",this.handleMenuKeyUp_)}),this.on("mouseleave",e=>this.handleMouseLeave(e)),this.on("keydown",e=>this.handleSubmenuKeyDown(e))}update(){var e=this.createMenu();this.menu&&(this.menu.dispose(),this.removeChild(this.menu)),this.menu=e,this.addChild(e),this.buttonPressed_=!1,this.menuButton_.el_.setAttribute("aria-expanded","false"),this.items&&this.items.length<=this.hideThreshold_?(this.hide(),this.menu.contentEl_.removeAttribute("role")):(this.show(),this.menu.contentEl_.setAttribute("role","menu"))}createMenu(){var e,t=new ar(this.player_,{menuButton:this});if(this.hideThreshold_=0,this.options_.title&&(e=o("li",{className:"vjs-menu-title",textContent:g(this.options_.title),tabIndex:-1}),e=new f(this.player_,{el:e}),t.addItem(e)),this.items=this.createItems(),this.items)for(let e=0;e<this.items.length;e++)t.addItem(this.items[e]);return t}createItems(){}createEl(){return super.createEl("div",{className:this.buildWrapperCSSClass()},{})}buildWrapperCSSClass(){let e="vjs-menu-button";!0===this.options_.inline?e+="-inline":e+="-popup";var t=s.prototype.buildCSSClass();return`vjs-menu-button ${e} ${t} `+super.buildCSSClass()}buildCSSClass(){let e="vjs-menu-button";return!0===this.options_.inline?e+="-inline":e+="-popup",`vjs-menu-button ${e} `+super.buildCSSClass()}controlText(e,t=this.menuButton_.el()){return this.menuButton_.controlText(e,t)}dispose(){this.handleMouseLeave(),super.dispose()}handleClick(e){this.buttonPressed_?this.unpressButton():this.pressButton()}handleMouseLeave(e){this.removeClass("vjs-hover"),p(document,"keyup",this.handleMenuKeyUp_)}focus(){this.menuButton_.focus()}blur(){this.menuButton_.blur()}handleKeyDown(e){r.isEventKey(e,"Esc")||r.isEventKey(e,"Tab")?(this.buttonPressed_&&this.unpressButton(),r.isEventKey(e,"Tab")||(e.preventDefault(),this.menuButton_.focus())):!r.isEventKey(e,"Up")&&!r.isEventKey(e,"Down")||this.buttonPressed_||(e.preventDefault(),this.pressButton())}handleMenuKeyUp(e){(r.isEventKey(e,"Esc")||r.isEventKey(e,"Tab"))&&this.removeClass("vjs-hover")}handleSubmenuKeyPress(e){this.handleSubmenuKeyDown(e)}handleSubmenuKeyDown(e){(r.isEventKey(e,"Esc")||r.isEventKey(e,"Tab"))&&(this.buttonPressed_&&this.unpressButton(),r.isEventKey(e,"Tab")||(e.preventDefault(),this.menuButton_.focus()))}pressButton(){this.enabled_&&(this.buttonPressed_=!0,this.menu.show(),this.menu.lockShowing(),this.menuButton_.el_.setAttribute("aria-expanded","true"),u&&be()||this.menu.focus())}unpressButton(){this.enabled_&&(this.buttonPressed_=!1,this.menu.unlockShowing(),this.menu.hide(),this.menuButton_.el_.setAttribute("aria-expanded","false"))}disable(){this.unpressButton(),this.enabled_=!1,this.addClass("vjs-disabled"),this.menuButton_.disable()}enable(){this.enabled_=!0,this.removeClass("vjs-disabled"),this.menuButton_.enable()}}f.registerComponent("MenuButton",or);class lr extends or{constructor(e,t){const i=t.tracks;if(super(e,t),this.items.length<=1&&this.hide(),i){const s=m(this,this.update);i.addEventListener("removetrack",s),i.addEventListener("addtrack",s),i.addEventListener("labelchange",s),this.player_.on("ready",s),this.player_.on("dispose",function(){i.removeEventListener("removetrack",s),i.removeEventListener("addtrack",s),i.removeEventListener("labelchange",s)})}}}f.registerComponent("TrackButton",lr);const dr=["Tab","Esc","Up","Down","Right","Left"];class hr extends ks{constructor(e,t){super(e,t),this.selectable=t.selectable,this.isSelected_=t.selected||!1,this.multiSelectable=t.multiSelectable,this.selected(this.isSelected_),this.selectable?this.multiSelectable?this.el_.setAttribute("role","menuitemcheckbox"):this.el_.setAttribute("role","menuitemradio"):this.el_.setAttribute("role","menuitem")}createEl(e,t,i){this.nonIconControl=!0;t=super.createEl("li",Object.assign({className:"vjs-menu-item",tabIndex:-1},t),i);return t.replaceChild(o("span",{className:"vjs-menu-item-text",textContent:this.localize(this.options_.label)}),t.querySelector(".vjs-icon-placeholder")),t}handleKeyDown(t){dr.some(e=>r.isEventKey(t,e))||super.handleKeyDown(t)}handleClick(e){this.selected(!0)}selected(e){this.selectable&&(e?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-checked","true"),this.controlText(", selected"),this.isSelected_=!0):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-checked","false"),this.controlText(""),this.isSelected_=!1))}}f.registerComponent("MenuItem",hr);class ur extends hr{constructor(e,t){var i=t.track;const s=e.textTracks(),r=(t.label=i.label||i.language||"Unknown",t.selected="showing"===i.mode,super(e,t),this.track=i,this.kinds=(t.kinds||[t.kind||this.track.kind]).filter(Boolean),(...e)=>{this.handleTracksChange.apply(this,e)}),n=(...e)=>{this.handleSelectedLanguageChange.apply(this,e)};if(e.on(["loadstart","texttrackchange"],r),s.addEventListener("change",r),s.addEventListener("selectedlanguagechange",n),this.on("dispose",function(){e.off(["loadstart","texttrackchange"],r),s.removeEventListener("change",r),s.removeEventListener("selectedlanguagechange",n)}),void 0===s.onchange){let e;this.on(["tap","click"],function(){if("object"!=typeof window.Event)try{e=new window.Event("change")}catch(e){}e||(e=document.createEvent("Event")).initEvent("change",!0,!0),s.dispatchEvent(e)})}this.handleTracksChange()}handleClick(e){var t=this.track,i=this.player_.textTracks();if(super.handleClick(e),i)for(let e=0;e<i.length;e++){var s=i[e];-1!==this.kinds.indexOf(s.kind)&&(s===t?"showing"!==s.mode&&(s.mode="showing"):"disabled"!==s.mode&&(s.mode="disabled"))}}handleTracksChange(e){var t="showing"===this.track.mode;t!==this.isSelected_&&this.selected(t)}handleSelectedLanguageChange(e){var t;"showing"!==this.track.mode||(t=this.player_.cache_.selectedLanguage)&&t.enabled&&t.language===this.track.language&&t.kind!==this.track.kind||(this.player_.cache_.selectedLanguage={enabled:!0,language:this.track.language,kind:this.track.kind})}dispose(){this.track=null,super.dispose()}}f.registerComponent("TextTrackMenuItem",ur);class cr extends ur{constructor(e,t){t.track={player:e,kind:t.kind,kinds:t.kinds,default:!1,mode:"disabled"},t.kinds||(t.kinds=[t.kind]),t.label?t.track.label=t.label:t.track.label=t.kinds.join(" and ")+" off",t.selectable=!0,t.multiSelectable=!1,super(e,t)}handleTracksChange(e){var i=this.player().textTracks();let s=!0;for(let e=0,t=i.length;e<t;e++){var r=i[e];if(-1<this.options_.kinds.indexOf(r.kind)&&"showing"===r.mode){s=!1;break}}s!==this.isSelected_&&this.selected(s)}handleSelectedLanguageChange(e){var i=this.player().textTracks();let s=!0;for(let e=0,t=i.length;e<t;e++){var r=i[e];if(-1<["captions","descriptions","subtitles"].indexOf(r.kind)&&"showing"===r.mode){s=!1;break}}s&&(this.player_.cache_.selectedLanguage={enabled:!1})}handleLanguagechange(){this.$(".vjs-menu-item-text").textContent=this.player_.localize(this.options_.label),super.handleLanguagechange()}}f.registerComponent("OffTextTrackMenuItem",cr);class pr extends lr{constructor(e,t={}){t.tracks=e.textTracks(),super(e,t)}createItems(t=[],i=ur){let e;this.label_&&(e=this.label_+" off"),t.push(new cr(this.player_,{kinds:this.kinds_,kind:this.kind_,label:e})),this.hideThreshold_+=1;var s=this.player_.textTracks();Array.isArray(this.kinds_)||(this.kinds_=[this.kind_]);for(let e=0;e<s.length;e++){var r,n=s[e];-1<this.kinds_.indexOf(n.kind)&&((r=new i(this.player_,{track:n,kinds:this.kinds_,kind:this.kind_,selectable:!0,multiSelectable:!1})).addClass(`vjs-${n.kind}-menu-item`),t.push(r))}return t}}f.registerComponent("TextTrackButton",pr);class mr extends hr{constructor(e,t){var i=t.track,s=t.cue,r=e.currentTime();t.selectable=!0,t.multiSelectable=!1,t.label=s.text,t.selected=s.startTime<=r&&r<s.endTime,super(e,t),this.track=i,this.cue=s}handleClick(e){super.handleClick(),this.player_.currentTime(this.cue.startTime)}}f.registerComponent("ChaptersTrackMenuItem",mr);class gr extends pr{constructor(e,t,i){super(e,t,i),this.selectCurrentItem_=()=>{this.items.forEach(e=>{e.selected(this.track_.activeCues[0]===e.cue)})}}buildCSSClass(){return"vjs-chapters-button "+super.buildCSSClass()}buildWrapperCSSClass(){return"vjs-chapters-button "+super.buildWrapperCSSClass()}update(e){e&&e.track&&"chapters"!==e.track.kind||((e=this.findChaptersTrack())!==this.track_?(this.setTrack(e),super.update()):(!this.items||e&&e.cues&&e.cues.length!==this.items.length)&&super.update())}setTrack(e){var t;this.track_!==e&&(this.updateHandler_||(this.updateHandler_=this.update.bind(this)),this.track_&&((t=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_))&&t.removeEventListener("load",this.updateHandler_),this.track_.removeEventListener("cuechange",this.selectCurrentItem_),this.track_=null),this.track_=e,this.track_)&&(this.track_.mode="hidden",(t=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_))&&t.addEventListener("load",this.updateHandler_),this.track_.addEventListener("cuechange",this.selectCurrentItem_))}findChaptersTrack(){var t=this.player_.textTracks()||[];for(let e=t.length-1;0<=e;e--){var i=t[e];if(i.kind===this.kind_)return i}}getMenuCaption(){return this.track_&&this.track_.label?this.track_.label:this.localize(g(this.kind_))}createMenu(){return this.options_.title=this.getMenuCaption(),super.createMenu()}createItems(){var i=[];if(this.track_){var s=this.track_.cues;if(s)for(let e=0,t=s.length;e<t;e++){var r=s[e],r=new mr(this.player_,{track:this.track_,cue:r});i.push(r)}}return i}}gr.prototype.kind_="chapters",gr.prototype.controlText_="Chapters",f.registerComponent("ChaptersButton",gr);class fr extends pr{constructor(e,t,i){super(e,t,i);const s=e.textTracks(),r=m(this,this.handleTracksChange);s.addEventListener("change",r),this.on("dispose",function(){s.removeEventListener("change",r)})}handleTracksChange(e){var i=this.player().textTracks();let s=!1;for(let e=0,t=i.length;e<t;e++){var r=i[e];if(r.kind!==this.kind_&&"showing"===r.mode){s=!0;break}}s?this.disable():this.enable()}buildCSSClass(){return"vjs-descriptions-button "+super.buildCSSClass()}buildWrapperCSSClass(){return"vjs-descriptions-button "+super.buildWrapperCSSClass()}}fr.prototype.kind_="descriptions",fr.prototype.controlText_="Descriptions",f.registerComponent("DescriptionsButton",fr);class yr extends pr{constructor(e,t,i){super(e,t,i)}buildCSSClass(){return"vjs-subtitles-button "+super.buildCSSClass()}buildWrapperCSSClass(){return"vjs-subtitles-button "+super.buildWrapperCSSClass()}}yr.prototype.kind_="subtitles",yr.prototype.controlText_="Subtitles",f.registerComponent("SubtitlesButton",yr);class _r extends ur{constructor(e,t){t.track={player:e,kind:t.kind,label:t.kind+" settings",selectable:!1,default:!1,mode:"disabled"},t.selectable=!1,t.name="CaptionSettingsMenuItem",super(e,t),this.addClass("vjs-texttrack-settings"),this.controlText(", opens "+t.kind+" settings dialog")}handleClick(e){this.player().getChild("textTrackSettings").open()}handleLanguagechange(){this.$(".vjs-menu-item-text").textContent=this.player_.localize(this.options_.kind+" settings"),super.handleLanguagechange()}}f.registerComponent("CaptionSettingsMenuItem",_r);class vr extends pr{constructor(e,t,i){super(e,t,i)}buildCSSClass(){return"vjs-captions-button "+super.buildCSSClass()}buildWrapperCSSClass(){return"vjs-captions-button "+super.buildWrapperCSSClass()}createItems(){var e=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||!this.player().getChild("textTrackSettings")||(e.push(new _r(this.player_,{kind:this.kind_})),this.hideThreshold_+=1),super.createItems(e)}}vr.prototype.kind_="captions",vr.prototype.controlText_="Captions",f.registerComponent("CaptionsButton",vr);class br extends ur{createEl(e,t,i){e=super.createEl(e,t,i),t=e.querySelector(".vjs-menu-item-text");return"captions"===this.options_.track.kind&&(t.appendChild(o("span",{className:"vjs-icon-placeholder"},{"aria-hidden":!0})),t.appendChild(o("span",{className:"vjs-control-text",textContent:" "+this.localize("Captions")}))),e}}f.registerComponent("SubsCapsMenuItem",br);class Tr extends pr{constructor(e,t={}){super(e,t),this.label_="subtitles",-1<["en","en-us","en-ca","fr-ca"].indexOf(this.player_.language_)&&(this.label_="captions"),this.menuButton_.controlText(g(this.label_))}buildCSSClass(){return"vjs-subs-caps-button "+super.buildCSSClass()}buildWrapperCSSClass(){return"vjs-subs-caps-button "+super.buildWrapperCSSClass()}createItems(){let e=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||!this.player().getChild("textTrackSettings")||(e.push(new _r(this.player_,{kind:this.label_})),this.hideThreshold_+=1),e=super.createItems(e,br)}}Tr.prototype.kinds_=["captions","subtitles"],Tr.prototype.controlText_="Subtitles",f.registerComponent("SubsCapsButton",Tr);class Sr extends hr{constructor(e,t){var i=t.track;const s=e.audioTracks(),r=(t.label=i.label||i.language||"Unknown",t.selected=i.enabled,super(e,t),this.track=i,this.addClass(`vjs-${i.kind}-menu-item`),(...e)=>{this.handleTracksChange.apply(this,e)});s.addEventListener("change",r),this.on("dispose",()=>{s.removeEventListener("change",r)})}createEl(e,t,i){e=super.createEl(e,t,i),t=e.querySelector(".vjs-menu-item-text");return"main-desc"===this.options_.track.kind&&(t.appendChild(o("span",{className:"vjs-icon-placeholder"},{"aria-hidden":!0})),t.appendChild(o("span",{className:"vjs-control-text",textContent:" "+this.localize("Descriptions")}))),e}handleClick(e){if(super.handleClick(e),this.track.enabled=!0,this.player_.tech_.featuresNativeAudioTracks){var t=this.player_.audioTracks();for(let e=0;e<t.length;e++){var i=t[e];i!==this.track&&(i.enabled=i===this.track)}}}handleTracksChange(e){this.selected(this.track.enabled)}}f.registerComponent("AudioTrackMenuItem",Sr);class wr extends lr{constructor(e,t={}){t.tracks=e.audioTracks(),super(e,t)}buildCSSClass(){return"vjs-audio-button "+super.buildCSSClass()}buildWrapperCSSClass(){return"vjs-audio-button "+super.buildWrapperCSSClass()}createItems(t=[]){this.hideThreshold_=1;var i=this.player_.audioTracks();for(let e=0;e<i.length;e++){var s=i[e];t.push(new Sr(this.player_,{track:s,selectable:!0,multiSelectable:!1}))}return t}}wr.prototype.controlText_="Audio Track",f.registerComponent("AudioTrackButton",wr);class Er extends hr{constructor(e,t){var i=t.rate,s=parseFloat(i,10);t.label=i,t.selected=s===e.playbackRate(),t.selectable=!0,t.multiSelectable=!1,super(e,t),this.label=i,this.rate=s,this.on(e,"ratechange",e=>this.update(e))}handleClick(e){super.handleClick(),this.player().playbackRate(this.rate)}update(e){this.selected(this.player().playbackRate()===this.rate)}}Er.prototype.contentElType="button",f.registerComponent("PlaybackRateMenuItem",Er);class kr extends or{constructor(e,t){super(e,t),this.menuButton_.el_.setAttribute("aria-describedby",this.labelElId_),this.updateVisibility(),this.updateLabel(),this.on(e,"loadstart",e=>this.updateVisibility(e)),this.on(e,"ratechange",e=>this.updateLabel(e)),this.on(e,"playbackrateschange",e=>this.handlePlaybackRateschange(e))}createEl(){var e=super.createEl();return this.labelElId_="vjs-playback-rate-value-label-"+this.id_,this.labelEl_=o("div",{className:"vjs-playback-rate-value",id:this.labelElId_,textContent:"1x"}),e.appendChild(this.labelEl_),e}dispose(){this.labelEl_=null,super.dispose()}buildCSSClass(){return"vjs-playback-rate "+super.buildCSSClass()}buildWrapperCSSClass(){return"vjs-playback-rate "+super.buildWrapperCSSClass()}createItems(){var t=this.playbackRates(),i=[];for(let e=t.length-1;0<=e;e--)i.push(new Er(this.player(),{rate:t[e]+"x"}));return i}handlePlaybackRateschange(e){this.update()}playbackRates(){var e=this.player();return e.playbackRates&&e.playbackRates()||[]}playbackRateSupported(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&0<this.playbackRates().length}updateVisibility(e){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")}updateLabel(e){this.playbackRateSupported()&&(this.labelEl_.textContent=this.player().playbackRate()+"x")}}kr.prototype.controlText_="Playback Rate",f.registerComponent("PlaybackRateMenuButton",kr);class Cr extends f{buildCSSClass(){return"vjs-spacer "+super.buildCSSClass()}createEl(e="div",t={},i={}){return t.className||(t.className=this.buildCSSClass()),super.createEl(e,t,i)}}f.registerComponent("Spacer",Cr);f.registerComponent("CustomControlSpacer",class extends Cr{buildCSSClass(){return"vjs-custom-control-spacer "+super.buildCSSClass()}createEl(){return super.createEl("div",{className:this.buildCSSClass(),textContent:" "})}});class Ir extends f{createEl(){return super.createEl("div",{className:"vjs-control-bar",dir:"ltr"})}}Ir.prototype.options_={children:["playToggle","skipBackward","skipForward","volumePanel","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","seekToLive","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","descriptionsButton","subsCapsButton","audioTrackButton","fullscreenToggle"]},"exitPictureInPicture"in document&&Ir.prototype.options_.children.splice(Ir.prototype.options_.children.length-1,0,"pictureInPictureToggle"),f.registerComponent("ControlBar",Ir);class xr extends Qt{constructor(e,t){super(e,t),this.on(e,"error",e=>this.open(e))}buildCSSClass(){return"vjs-error-display "+super.buildCSSClass()}content(){var e=this.player().error();return e?this.localize(e.message):""}}xr.prototype.options_=Object.assign({},Qt.prototype.options_,{pauseOnOpen:!1,fillAlways:!0,temporary:!1,uncloseable:!0}),f.registerComponent("ErrorDisplay",xr);const Ar="vjs-text-track-settings";var Mi=["#000","Black"],Ot=["#00F","Blue"],Pr=["#0FF","Cyan"],Lr=["#0F0","Green"],t=["#F0F","Magenta"],Or=["#F00","Red"],Dr=["#FFF","White"],n=["#FF0","Yellow"],Nr=["1","Opaque"],Mr=["0.5","Semi-Transparent"],Rr=["0","Transparent"];const Ur={backgroundColor:{selector:".vjs-bg-color > select",id:"captions-background-color-%s",label:"Color",options:[Mi,Dr,Or,Lr,Ot,n,t,Pr]},backgroundOpacity:{selector:".vjs-bg-opacity > select",id:"captions-background-opacity-%s",label:"Opacity",options:[Nr,Mr,Rr]},color:{selector:".vjs-text-color > select",id:"captions-foreground-color-%s",label:"Color",options:[Dr,Mi,Or,Lr,Ot,n,t,Pr]},edgeStyle:{selector:".vjs-edge-style > select",id:"%s",label:"Text Edge Style",options:[["none","None"],["raised","Raised"],["depressed","Depressed"],["uniform","Uniform"],["dropshadow","Dropshadow"]]},fontFamily:{selector:".vjs-font-family > select",id:"captions-font-family-%s",label:"Font Family",options:[["proportionalSansSerif","Proportional Sans-Serif"],["monospaceSansSerif","Monospace Sans-Serif"],["proportionalSerif","Proportional Serif"],["monospaceSerif","Monospace Serif"],["casual","Casual"],["script","Script"],["small-caps","Small Caps"]]},fontPercent:{selector:".vjs-font-percent > select",id:"captions-font-size-%s",label:"Font Size",options:[["0.50","50%"],["0.75","75%"],["1.00","100%"],["1.25","125%"],["1.50","150%"],["1.75","175%"],["2.00","200%"],["3.00","300%"],["4.00","400%"]],default:2,parser:e=>"1.00"===e?null:Number(e)},textOpacity:{selector:".vjs-text-opacity > select",id:"captions-foreground-opacity-%s",label:"Opacity",options:[Nr,Mr]},windowColor:{selector:".vjs-window-color > select",id:"captions-window-color-%s",label:"Color"},windowOpacity:{selector:".vjs-window-opacity > select",id:"captions-window-opacity-%s",label:"Opacity",options:[Rr,Mr,Nr]}};function Br(e,t){if((e=t?t(e):e)&&"none"!==e)return e}Ur.windowColor.options=Ur.backgroundColor.options;class Fr extends Qt{constructor(e,t){t.temporary=!1,super(e,t),this.updateDisplay=this.updateDisplay.bind(this),this.fill(),this.hasBeenOpened_=this.hasBeenFilled_=!0,this.endDialog=o("p",{className:"vjs-control-text",textContent:this.localize("End of dialog window.")}),this.el().appendChild(this.endDialog),this.setDefaults(),void 0===t.persistTextTrackSettings&&(this.options_.persistTextTrackSettings=this.options_.playerOptions.persistTextTrackSettings),this.on(this.$(".vjs-done-button"),"click",()=>{this.saveSettings(),this.close()}),this.on(this.$(".vjs-default-button"),"click",()=>{this.setDefaults(),this.updateDisplay()}),z(Ur,e=>{this.on(this.$(e.selector),"change",this.updateDisplay)}),this.options_.persistTextTrackSettings&&this.restoreSettings()}dispose(){this.endDialog=null,super.dispose()}createElSelect_(e,t="",i="label"){e=Ur[e];const s=e.id.replace("%s",this.id_),r=[t,s].join(" ").trim();return[`<${i} id="${s}" class="${"label"===i?"vjs-label":""}">`,this.localize(e.label),`</${i}>`,`<select aria-labelledby="${r}">`].concat(e.options.map(e=>{var t=s+"-"+e[1].replace(/\W+/g,"");return[`<option id="${t}" value="${e[0]}" `,`aria-labelledby="${r} ${t}">`,this.localize(e[1]),"</option>"].join("")})).concat("</select>").join("")}createElFgColor_(){var e="captions-text-legend-"+this.id_;return['<fieldset class="vjs-fg vjs-track-setting">',`<legend id="${e}">`,this.localize("Text"),"</legend>",'<span class="vjs-text-color">',this.createElSelect_("color",e),"</span>",'<span class="vjs-text-opacity vjs-opacity">',this.createElSelect_("textOpacity",e),"</span>","</fieldset>"].join("")}createElBgColor_(){var e="captions-background-"+this.id_;return['<fieldset class="vjs-bg vjs-track-setting">',`<legend id="${e}">`,this.localize("Text Background"),"</legend>",'<span class="vjs-bg-color">',this.createElSelect_("backgroundColor",e),"</span>",'<span class="vjs-bg-opacity vjs-opacity">',this.createElSelect_("backgroundOpacity",e),"</span>","</fieldset>"].join("")}createElWinColor_(){var e="captions-window-"+this.id_;return['<fieldset class="vjs-window vjs-track-setting">',`<legend id="${e}">`,this.localize("Caption Area Background"),"</legend>",'<span class="vjs-window-color">',this.createElSelect_("windowColor",e),"</span>",'<span class="vjs-window-opacity vjs-opacity">',this.createElSelect_("windowOpacity",e),"</span>","</fieldset>"].join("")}createElColors_(){return o("div",{className:"vjs-track-settings-colors",innerHTML:[this.createElFgColor_(),this.createElBgColor_(),this.createElWinColor_()].join("")})}createElFont_(){return o("div",{className:"vjs-track-settings-font",innerHTML:['<fieldset class="vjs-font-percent vjs-track-setting">',this.createElSelect_("fontPercent","","legend"),"</fieldset>",'<fieldset class="vjs-edge-style vjs-track-setting">',this.createElSelect_("edgeStyle","","legend"),"</fieldset>",'<fieldset class="vjs-font-family vjs-track-setting">',this.createElSelect_("fontFamily","","legend"),"</fieldset>"].join("")})}createElControls_(){var e=this.localize("restore all settings to the default values");return o("div",{className:"vjs-track-settings-controls",innerHTML:[`<button type="button" class="vjs-default-button" title="${e}">`,this.localize("Reset"),`<span class="vjs-control-text"> ${e}</span>`,"</button>",`<button type="button" class="vjs-done-button">${this.localize("Done")}</button>`].join("")})}content(){return[this.createElColors_(),this.createElFont_(),this.createElControls_()]}label(){return this.localize("Caption Settings Dialog")}description(){return this.localize("Beginning of dialog window. Escape will cancel and close the window.")}buildCSSClass(){return super.buildCSSClass()+" vjs-text-track-settings"}getValues(){return X(Ur,(e,t,i)=>{s=this.$(t.selector),t=t.parser;var s=Br(s.options[s.options.selectedIndex].value,t);return void 0!==s&&(e[i]=s),e},{})}setValues(n){z(Ur,(e,t)=>{var i=this.$(e.selector),s=n[t],r=e.parser;if(s)for(let e=0;e<i.options.length;e++)if(Br(i.options[e].value,r)===s){i.selectedIndex=e;break}})}setDefaults(){z(Ur,e=>{var t=e.hasOwnProperty("default")?e.default:0;this.$(e.selector).selectedIndex=t})}restoreSettings(){let e;try{e=JSON.parse(window.localStorage.getItem(Ar))}catch(e){d.warn(e)}e&&this.setValues(e)}saveSettings(){if(this.options_.persistTextTrackSettings){var e=this.getValues();try{Object.keys(e).length?window.localStorage.setItem(Ar,JSON.stringify(e)):window.localStorage.removeItem(Ar)}catch(e){d.warn(e)}}}updateDisplay(){var e=this.player_.getChild("textTrackDisplay");e&&e.updateDisplay()}conditionalBlur_(){this.previouslyActiveEl_=null;var e=this.player_.controlBar,t=e&&e.subsCapsButton,e=e&&e.captionsButton;t?t.focus():e&&e.focus()}handleLanguagechange(){this.fill()}}f.registerComponent("TextTrackSettings",Fr);class jr extends f{constructor(e,t){let i=t.ResizeObserver||window.ResizeObserver;super(e,h({createEl:!(i=null===t.ResizeObserver?!1:i),reportTouchActivity:!1},t)),this.ResizeObserver=t.ResizeObserver||window.ResizeObserver,this.loadListener_=null,this.resizeObserver_=null,this.debouncedHandler_=pt(()=>{this.resizeHandler()},100,!1,this),i?(this.resizeObserver_=new this.ResizeObserver(this.debouncedHandler_),this.resizeObserver_.observe(e.el())):(this.loadListener_=()=>{if(this.el_&&this.el_.contentWindow){const t=this.debouncedHandler_;let e=this.unloadListener_=function(){p(this,"resize",t),p(this,"unload",e),e=null};ot(this.el_.contentWindow,"unload",e),ot(this.el_.contentWindow,"resize",t)}},this.one("load",this.loadListener_))}createEl(){return super.createEl("iframe",{className:"vjs-resize-manager",tabIndex:-1,title:this.localize("No content")},{"aria-hidden":"true"})}resizeHandler(){this.player_&&this.player_.trigger&&this.player_.trigger("playerresize")}dispose(){this.debouncedHandler_&&this.debouncedHandler_.cancel(),this.resizeObserver_&&(this.player_.el()&&this.resizeObserver_.unobserve(this.player_.el()),this.resizeObserver_.disconnect()),this.loadListener_&&this.off("load",this.loadListener_),this.el_&&this.el_.contentWindow&&this.unloadListener_&&this.unloadListener_.call(this.el_.contentWindow),this.ResizeObserver=null,this.resizeObserver=null,this.debouncedHandler_=null,this.loadListener_=null,super.dispose()}}f.registerComponent("ResizeManager",jr);const Hr={trackingThreshold:20,liveTolerance:15};class qr extends f{constructor(e,t){super(e,h(Hr,t,{createEl:!1})),this.trackLiveHandler_=()=>this.trackLive_(),this.handlePlay_=e=>this.handlePlay(e),this.handleFirstTimeupdate_=e=>this.handleFirstTimeupdate(e),this.handleSeeked_=e=>this.handleSeeked(e),this.seekToLiveEdge_=e=>this.seekToLiveEdge(e),this.reset_(),this.on(this.player_,"durationchange",e=>this.handleDurationchange(e)),this.on(this.player_,"canplay",()=>this.toggleTracking())}trackLive_(){var t=this.player_.seekable();if(t&&t.length){var t=Number(window.performance.now().toFixed(4)),i=-1===this.lastTime_?0:(t-this.lastTime_)/1e3,t=(this.lastTime_=t,this.pastSeekEnd_=this.pastSeekEnd()+i,this.liveCurrentTime()),i=this.player_.currentTime();let e=this.player_.paused()||this.seekedBehindLive_||Math.abs(t-i)>this.options_.liveTolerance;(e=this.timeupdateSeen_&&t!==1/0?e:!1)!==this.behindLiveEdge_&&(this.behindLiveEdge_=e,this.trigger("liveedgechange"))}}handleDurationchange(){this.toggleTracking()}toggleTracking(){this.player_.duration()===1/0&&this.liveWindow()>=this.options_.trackingThreshold?(this.player_.options_.liveui&&this.player_.addClass("vjs-liveui"),this.startTracking()):(this.player_.removeClass("vjs-liveui"),this.stopTracking())}startTracking(){this.isTracking()||(this.timeupdateSeen_||(this.timeupdateSeen_=this.player_.hasStarted()),this.trackingInterval_=this.setInterval(this.trackLiveHandler_,30),this.trackLive_(),this.on(this.player_,["play","pause"],this.trackLiveHandler_),this.timeupdateSeen_?this.on(this.player_,"seeked",this.handleSeeked_):(this.one(this.player_,"play",this.handlePlay_),this.one(this.player_,"timeupdate",this.handleFirstTimeupdate_)))}handleFirstTimeupdate(){this.timeupdateSeen_=!0,this.on(this.player_,"seeked",this.handleSeeked_)}handleSeeked(){var e=Math.abs(this.liveCurrentTime()-this.player_.currentTime());this.seekedBehindLive_=this.nextSeekedFromUser_&&2<e,this.nextSeekedFromUser_=!1,this.trackLive_()}handlePlay(){this.one(this.player_,"timeupdate",this.seekToLiveEdge_)}reset_(){this.lastTime_=-1,this.pastSeekEnd_=0,this.lastSeekEnd_=-1,this.behindLiveEdge_=!0,this.timeupdateSeen_=!1,this.seekedBehindLive_=!1,this.nextSeekedFromUser_=!1,this.clearInterval(this.trackingInterval_),this.trackingInterval_=null,this.off(this.player_,["play","pause"],this.trackLiveHandler_),this.off(this.player_,"seeked",this.handleSeeked_),this.off(this.player_,"play",this.handlePlay_),this.off(this.player_,"timeupdate",this.handleFirstTimeupdate_),this.off(this.player_,"timeupdate",this.seekToLiveEdge_)}nextSeekedFromUser(){this.nextSeekedFromUser_=!0}stopTracking(){this.isTracking()&&(this.reset_(),this.trigger("liveedgechange"))}seekableEnd(){var e=this.player_.seekable(),t=[];let i=e?e.length:0;for(;i--;)t.push(e.end(i));return t.length?t.sort()[t.length-1]:1/0}seekableStart(){var e=this.player_.seekable(),t=[];let i=e?e.length:0;for(;i--;)t.push(e.start(i));return t.length?t.sort()[0]:0}liveWindow(){var e=this.liveCurrentTime();return e===1/0?0:e-this.seekableStart()}isLive(){return this.isTracking()}atLiveEdge(){return!this.behindLiveEdge()}liveCurrentTime(){return this.pastSeekEnd()+this.seekableEnd()}pastSeekEnd(){var e=this.seekableEnd();return-1!==this.lastSeekEnd_&&e!==this.lastSeekEnd_&&(this.pastSeekEnd_=0),this.lastSeekEnd_=e,this.pastSeekEnd_}behindLiveEdge(){return this.behindLiveEdge_}isTracking(){return"number"==typeof this.trackingInterval_}seekToLiveEdge(){this.seekedBehindLive_=!1,this.atLiveEdge()||(this.nextSeekedFromUser_=!1,this.player_.currentTime(this.liveCurrentTime()))}dispose(){this.stopTracking(),super.dispose()}}f.registerComponent("LiveTracker",qr);class Vr extends f{constructor(e,t){super(e,t),this.on("statechanged",e=>this.updateDom_()),this.updateDom_()}createEl(){return this.els={title:o("div",{className:"vjs-title-bar-title",id:"vjs-title-bar-title-"+tt++}),description:o("div",{className:"vjs-title-bar-description",id:"vjs-title-bar-description-"+tt++})},o("div",{className:"vjs-title-bar"},{},Object.values(this.els))}updateDom_(){var e=this.player_.tech_;const s=e&&e.el_,r={title:"aria-labelledby",description:"aria-describedby"};["title","description"].forEach(e=>{var t=this.state[e],i=this.els[e],e=r[e];Fe(i),t&&Se(i,t),s&&(s.removeAttribute(e),t)&&s.setAttribute(e,i.id)}),this.state.title||this.state.description?this.show():this.hide()}update(e){this.setState(e)}dispose(){var e=this.player_.tech_,e=e&&e.el_;e&&(e.removeAttribute("aria-labelledby"),e.removeAttribute("aria-describedby")),super.dispose(),this.els=null}}f.registerComponent("TitleBar",Vr);function $r(i){const s=i.el();if(!s.resetSourceWatch_){const t={},e=Kr(i),r=t=>(...e)=>{e=t.apply(s,e);return Gr(i),e};["append","appendChild","insertAdjacentHTML"].forEach(e=>{s[e]&&(t[e]=s[e],s[e]=r(t[e]))}),Object.defineProperty(s,"innerHTML",h(e,{set:r(e.set)})),s.resetSourceWatch_=()=>{s.resetSourceWatch_=null,Object.keys(t).forEach(e=>{s[e]=t[e]}),Object.defineProperty(s,"innerHTML",e)},i.one("sourceset",s.resetSourceWatch_)}}function Wr(i){if(i.featuresSourceset){const s=i.el();if(!s.resetSourceset_){e=i;const t=Xr([e.el(),window.HTMLMediaElement.prototype,Yr],"src");var e;const r=s.setAttribute,n=s.load;Object.defineProperty(s,"src",h(t,{set:e=>{e=t.set.call(s,e);return i.triggerSourceset(s.src),e}})),s.setAttribute=(e,t)=>{t=r.call(s,e,t);return/src/i.test(e)&&i.triggerSourceset(s.src),t},s.load=()=>{var e=n.call(s);return Gr(i)||(i.triggerSourceset(""),$r(i)),e},s.currentSrc?i.triggerSourceset(s.currentSrc):Gr(i)||$r(i),s.resetSourceset_=()=>{s.resetSourceset_=null,s.load=n,s.setAttribute=r,Object.defineProperty(s,"src",t),s.resetSourceWatch_&&s.resetSourceWatch_()}}}}const Gr=t=>{var e=t.el();if(e.hasAttribute("src"))t.triggerSourceset(e.src);else{var i=t.$$("source"),s=[];let e="";if(!i.length)return!1;for(let e=0;e<i.length;e++){var r=i[e].src;r&&-1===s.indexOf(r)&&s.push(r)}if(!s.length)return!1;1===s.length&&(e=s[0]),t.triggerSourceset(e)}return!0},zr=Object.defineProperty({},"innerHTML",{get(){return this.cloneNode(!0).innerHTML},set(e){for(var t=document.createElement(this.nodeName.toLowerCase()),i=(t.innerHTML=e,document.createDocumentFragment());t.childNodes.length;)i.appendChild(t.childNodes[0]);return this.innerText="",window.Element.prototype.appendChild.call(this,i),this.innerHTML}}),Xr=(t,i)=>{let s={};for(let e=0;e<t.length&&!((s=Object.getOwnPropertyDescriptor(t[e],i))&&s.set&&s.get);e++);return s.enumerable=!0,s.configurable=!0,s},Kr=e=>Xr([e.el(),window.HTMLMediaElement.prototype,window.Element.prototype,zr],"innerHTML"),Yr=Object.defineProperty({},"src",{get(){return this.hasAttribute("src")?di(window.Element.prototype.getAttribute.call(this,"src")):""},set(e){return window.Element.prototype.setAttribute.call(this,"src",e),e}});class v extends _{constructor(e,t){super(e,t);t=e.source;let i=!1;if(this.featuresVideoFrameCallback=this.featuresVideoFrameCallback&&"VIDEO"===this.el_.tagName,t&&(this.el_.currentSrc!==t.src||e.tag&&3===e.tag.initNetworkState_)?this.setSource(t):this.handleLateInit_(this.el_),e.enableSourceset&&this.setupSourcesetHandling_(),this.isScrubbing_=!1,this.el_.hasChildNodes()){var s=this.el_.childNodes;let e=s.length;for(var r=[];e--;){var n=s[e];"track"===n.nodeName.toLowerCase()&&(this.featuresNativeTextTracks?(this.remoteTextTrackEls().addTrackElement_(n),this.remoteTextTracks().addTrack(n.track),this.textTracks().addTrack(n.track),i||this.el_.hasAttribute("crossorigin")||!hi(n.src)||(i=!0)):r.push(n))}for(let e=0;e<r.length;e++)this.el_.removeChild(r[e])}this.proxyNativeTracks_(),this.featuresNativeTextTracks&&i&&d.warn("Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\nThis may prevent text tracks from loading."),this.restoreMetadataTracksInIOSNativePlayer_(),(me||pe)&&!0===e.nativeControlsForTouch&&this.setControls(!0),this.proxyWebkitFullscreen_(),this.triggerReady()}dispose(){this.el_&&this.el_.resetSourceset_&&this.el_.resetSourceset_(),v.disposeMediaElement(this.el_),this.options_=null,super.dispose()}setupSourcesetHandling_(){Wr(this)}restoreMetadataTracksInIOSNativePlayer_(){const i=this.textTracks();let s;const e=()=>{s=[];for(let e=0;e<i.length;e++){var t=i[e];"metadata"===t.kind&&s.push({track:t,storedMode:t.mode})}},r=(e(),i.addEventListener("change",e),this.on("dispose",()=>i.removeEventListener("change",e)),()=>{for(let e=0;e<s.length;e++){var t=s[e];"disabled"===t.track.mode&&t.track.mode!==t.storedMode&&(t.track.mode=t.storedMode)}i.removeEventListener("change",r)});this.on("webkitbeginfullscreen",()=>{i.removeEventListener("change",e),i.removeEventListener("change",r),i.addEventListener("change",r)}),this.on("webkitendfullscreen",()=>{i.removeEventListener("change",e),i.addEventListener("change",e),i.removeEventListener("change",r)})}overrideNative_(e,t){if(t===this[`featuresNative${e}Tracks`]){const i=e.toLowerCase();this[i+"TracksListeners_"]&&Object.keys(this[i+"TracksListeners_"]).forEach(e=>{this.el()[i+"Tracks"].removeEventListener(e,this[i+"TracksListeners_"][e])}),this[`featuresNative${e}Tracks`]=!t,this[i+"TracksListeners_"]=null,this.proxyNativeTracksForType_(i)}}overrideNativeAudioTracks(e){this.overrideNative_("Audio",e)}overrideNativeVideoTracks(e){this.overrideNative_("Video",e)}proxyNativeTracksForType_(i){var e=Di[i];const s=this.el()[e.getterName],r=this[e.getterName]();if(this[`featuresNative${e.capitalName}Tracks`]&&s&&s.addEventListener){const n={change:e=>{var t={type:"change",target:r,currentTarget:r,srcElement:r};r.trigger(t),"text"===i&&this[Ni.remoteText.getterName]().trigger(t)},addtrack(e){r.addTrack(e.track)},removetrack(e){r.removeTrack(e.track)}},t=function(){var e=[];for(let i=0;i<r.length;i++){let t=!1;for(let e=0;e<s.length;e++)if(s[e]===r[i]){t=!0;break}t||e.push(r[i])}for(;e.length;)r.removeTrack(e.shift())};this[e.getterName+"Listeners_"]=n,Object.keys(n).forEach(t=>{const i=n[t];s.addEventListener(t,i),this.on("dispose",e=>s.removeEventListener(t,i))}),this.on("loadstart",t),this.on("dispose",e=>this.off("loadstart",t))}}proxyNativeTracks_(){Di.names.forEach(e=>{this.proxyNativeTracksForType_(e)})}createEl(){let t=this.options_.tag;t&&(this.options_.playerElIngest||this.movingMediaElementInDOM)||(t?(e=t.cloneNode(!0),t.parentNode&&t.parentNode.insertBefore(e,t),v.disposeMediaElement(t),t=e):(t=document.createElement("video"),e=h({},this.options_.tag&&Ae(this.options_.tag)),me&&!0===this.options_.nativeControlsForTouch||delete e.controls,xe(t,Object.assign(e,{id:this.options_.techId,class:"vjs-tech"}))),t.playerId=this.options_.playerId),"undefined"!=typeof this.options_.preload&&Le(t,"preload",this.options_.preload),void 0!==this.options_.disablePictureInPicture&&(t.disablePictureInPicture=this.options_.disablePictureInPicture);var e,i=["loop","muted","playsinline","autoplay"];for(let e=0;e<i.length;e++){var s=i[e],r=this.options_[s];"undefined"!=typeof r&&(r?Le(t,s,s):Oe(t,s),t[s]=r)}return t}handleLateInit_(e){if(0!==e.networkState&&3!==e.networkState)if(0===e.readyState){let e=!1;const t=function(){e=!0},i=(this.on("loadstart",t),function(){e||this.trigger("loadstart")});this.on("loadedmetadata",i),void this.ready(function(){this.off("loadstart",t),this.off("loadedmetadata",i),e||this.trigger("loadstart")})}else{const s=["loadstart"];s.push("loadedmetadata"),2<=e.readyState&&s.push("loadeddata"),3<=e.readyState&&s.push("canplay"),4<=e.readyState&&s.push("canplaythrough"),this.ready(function(){s.forEach(function(e){this.trigger(e)},this)})}}setScrubbing(e){this.isScrubbing_=e}scrubbing(){return this.isScrubbing_}setCurrentTime(e){try{this.isScrubbing_&&this.el_.fastSeek&&fe?this.el_.fastSeek(e):this.el_.currentTime=e}catch(e){d(e,"Video is not ready. (Video.js)")}}duration(){if(this.el_.duration===1/0&&te&&ae&&0===this.el_.currentTime){const e=()=>{0<this.el_.currentTime&&(this.el_.duration===1/0&&this.trigger("durationchange"),this.off("timeupdate",e))};return this.on("timeupdate",e),NaN}return this.el_.duration||NaN}width(){return this.el_.offsetWidth}height(){return this.el_.offsetHeight}proxyWebkitFullscreen_(){if("webkitDisplayingFullscreen"in this.el_){const e=function(){this.trigger("fullscreenchange",{isFullscreen:!1}),this.el_.controls&&!this.options_.nativeControlsForTouch&&this.controls()&&(this.el_.controls=!1)},t=function(){"webkitPresentationMode"in this.el_&&"picture-in-picture"!==this.el_.webkitPresentationMode&&(this.one("webkitendfullscreen",e),this.trigger("fullscreenchange",{isFullscreen:!0,nativeIOSFullscreen:!0}))};this.on("webkitbeginfullscreen",t),this.on("dispose",()=>{this.off("webkitbeginfullscreen",t),this.off("webkitendfullscreen",e)})}}supportsFullScreen(){return"function"==typeof this.el_.webkitEnterFullScreen}enterFullScreen(){const e=this.el_;if(e.paused&&e.networkState<=e.HAVE_METADATA)Gt(this.el_.play()),this.setTimeout(function(){e.pause();try{e.webkitEnterFullScreen()}catch(e){this.trigger("fullscreenerror",e)}},0);else try{e.webkitEnterFullScreen()}catch(e){this.trigger("fullscreenerror",e)}}exitFullScreen(){this.el_.webkitDisplayingFullscreen?this.el_.webkitExitFullScreen():this.trigger("fullscreenerror",new Error("The video is not fullscreen"))}requestPictureInPicture(){return this.el_.requestPictureInPicture()}requestVideoFrameCallback(e){return this.featuresVideoFrameCallback&&!this.el_.webkitKeys?this.el_.requestVideoFrameCallback(e):super.requestVideoFrameCallback(e)}cancelVideoFrameCallback(e){this.featuresVideoFrameCallback&&!this.el_.webkitKeys?this.el_.cancelVideoFrameCallback(e):super.cancelVideoFrameCallback(e)}src(e){if(void 0===e)return this.el_.src;this.setSrc(e)}reset(){v.resetMediaElement(this.el_)}currentSrc(){return this.currentSource_?this.currentSource_.src:this.el_.currentSrc}setControls(e){this.el_.controls=!!e}addTextTrack(e,t,i){return this.featuresNativeTextTracks?this.el_.addTextTrack(e,t,i):super.addTextTrack(e,t,i)}createRemoteTextTrack(e){var t;return this.featuresNativeTextTracks?(t=document.createElement("track"),e.kind&&(t.kind=e.kind),e.label&&(t.label=e.label),(e.language||e.srclang)&&(t.srclang=e.language||e.srclang),e.default&&(t.default=e.default),e.id&&(t.id=e.id),e.src&&(t.src=e.src),t):super.createRemoteTextTrack(e)}addRemoteTextTrack(e,t){e=super.addRemoteTextTrack(e,t);return this.featuresNativeTextTracks&&this.el().appendChild(e),e}removeRemoteTextTrack(t){if(super.removeRemoteTextTrack(t),this.featuresNativeTextTracks){var i=this.$$("track");let e=i.length;for(;e--;)t!==i[e]&&t!==i[e].track||this.el().removeChild(i[e])}}getVideoPlaybackQuality(){var e;return"function"==typeof this.el().getVideoPlaybackQuality?this.el().getVideoPlaybackQuality():(e={},"undefined"!=typeof this.el().webkitDroppedFrameCount&&"undefined"!=typeof this.el().webkitDecodedFrameCount&&(e.droppedVideoFrames=this.el().webkitDroppedFrameCount,e.totalVideoFrames=this.el().webkitDecodedFrameCount),window.performance&&(e.creationTime=window.performance.now()),e)}}Q(v,"TEST_VID",function(){var e,t;if(_e())return e=document.createElement("video"),(t=document.createElement("track")).kind="captions",t.srclang="en",t.label="English",e.appendChild(t),e}),v.isSupported=function(){try{v.TEST_VID.volume=.5}catch(e){return!1}return!(!v.TEST_VID||!v.TEST_VID.canPlayType)},v.canPlayType=function(e){return v.TEST_VID.canPlayType(e)},v.canPlaySource=function(e,t){return v.canPlayType(e.type)},v.canControlVolume=function(){try{const t=v.TEST_VID.volume;v.TEST_VID.volume=t/2+.1;var e=t!==v.TEST_VID.volume;return e&&u?(window.setTimeout(()=>{v&&v.prototype&&(v.prototype.featuresVolumeControl=t!==v.TEST_VID.volume)}),!1):e}catch(e){return!1}},v.canMuteVolume=function(){try{var e=v.TEST_VID.muted;return v.TEST_VID.muted=!e,v.TEST_VID.muted?Le(v.TEST_VID,"muted","muted"):Oe(v.TEST_VID,"muted"),e!==v.TEST_VID.muted}catch(e){return!1}},v.canControlPlaybackRate=function(){if(te&&ae&&le<58)return!1;try{var e=v.TEST_VID.playbackRate;return v.TEST_VID.playbackRate=e/2+.1,e!==v.TEST_VID.playbackRate}catch(e){return!1}},v.canOverrideAttributes=function(){try{var e=()=>{};Object.defineProperty(document.createElement("video"),"src",{get:e,set:e}),Object.defineProperty(document.createElement("audio"),"src",{get:e,set:e}),Object.defineProperty(document.createElement("video"),"innerHTML",{get:e,set:e}),Object.defineProperty(document.createElement("audio"),"innerHTML",{get:e,set:e})}catch(e){return!1}return!0},v.supportsNativeTextTracks=function(){return fe||u&&ae},v.supportsNativeVideoTracks=function(){return!(!v.TEST_VID||!v.TEST_VID.videoTracks)},v.supportsNativeAudioTracks=function(){return!(!v.TEST_VID||!v.TEST_VID.audioTracks)},v.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","resize","volumechange"],[["featuresMuteControl","canMuteVolume"],["featuresPlaybackRate","canControlPlaybackRate"],["featuresSourceset","canOverrideAttributes"],["featuresNativeTextTracks","supportsNativeTextTracks"],["featuresNativeVideoTracks","supportsNativeVideoTracks"],["featuresNativeAudioTracks","supportsNativeAudioTracks"]].forEach(function([e,t]){Q(v.prototype,e,()=>v[t](),!0)}),v.prototype.featuresVolumeControl=v.canControlVolume(),v.prototype.movingMediaElementInDOM=!u,v.prototype.featuresFullscreenResize=!0,v.prototype.featuresProgressEvents=!0,v.prototype.featuresTimeupdateEvents=!0,v.prototype.featuresVideoFrameCallback=!(!v.TEST_VID||!v.TEST_VID.requestVideoFrameCallback),v.disposeMediaElement=function(e){if(e){for(e.parentNode&&e.parentNode.removeChild(e);e.hasChildNodes();)e.removeChild(e.firstChild);if(e.removeAttribute("src"),"function"==typeof e.load)try{e.load()}catch(e){}}},v.resetMediaElement=function(t){if(t){var i=t.querySelectorAll("source");let e=i.length;for(;e--;)t.removeChild(i[e]);if(t.removeAttribute("src"),"function"==typeof t.load)try{t.load()}catch(e){}}},["muted","defaultMuted","autoplay","controls","loop","playsinline"].forEach(function(e){v.prototype[e]=function(){return this.el_[e]||this.el_.hasAttribute(e)}}),["muted","defaultMuted","autoplay","loop","playsinline"].forEach(function(t){v.prototype["set"+g(t)]=function(e){(this.el_[t]=e)?this.el_.setAttribute(t,t):this.el_.removeAttribute(t)}}),["paused","currentTime","buffered","volume","poster","preload","error","seeking","seekable","ended","playbackRate","defaultPlaybackRate","disablePictureInPicture","played","networkState","readyState","videoWidth","videoHeight","crossOrigin"].forEach(function(e){v.prototype[e]=function(){return this.el_[e]}}),["volume","src","poster","preload","playbackRate","defaultPlaybackRate","disablePictureInPicture","crossOrigin"].forEach(function(t){v.prototype["set"+g(t)]=function(e){this.el_[t]=e}}),["pause","load","play"].forEach(function(e){v.prototype[e]=function(){return this.el_[e]()}}),_.withSourceHandlers(v),v.nativeSourceHandler={},v.nativeSourceHandler.canPlayType=function(e){try{return v.TEST_VID.canPlayType(e)}catch(e){return""}},v.nativeSourceHandler.canHandleSource=function(e,t){return e.type?v.nativeSourceHandler.canPlayType(e.type):e.src?(e=ui(e.src),v.nativeSourceHandler.canPlayType("video/"+e)):""},v.nativeSourceHandler.handleSource=function(e,t,i){t.setSrc(e.src)},v.nativeSourceHandler.dispose=function(){},v.registerSourceHandler(v.nativeSourceHandler),_.registerTech("Html5",v);const Qr=["progress","abort","suspend","emptied","stalled","loadedmetadata","loadeddata","timeupdate","resize","volumechange","texttrackchange"],Jr={canplay:"CanPlay",canplaythrough:"CanPlayThrough",playing:"Playing",seeked:"Seeked"},Zr=["tiny","xsmall","small","medium","large","xlarge","huge"],en={},tn=(Zr.forEach(e=>{var t="x"===e.charAt(0)?"x-"+e.substring(1):e;en[e]="vjs-layout-"+t}),{tiny:210,xsmall:320,small:425,medium:768,large:1440,xlarge:2560,huge:1/0});class b extends f{constructor(e,t,i){if(e.id=e.id||t.id||"vjs_video_"+tt++,(t=Object.assign(b.getTagSettings(e),t)).initChildren=!1,t.createEl=!1,t.evented=!1,t.reportTouchActivity=!1,t.language||(s=e.closest("[lang]"))&&(t.language=s.getAttribute("lang")),super(null,t,i),this.boundDocumentFullscreenChange_=e=>this.documentFullscreenChange_(e),this.boundFullWindowOnEscKey_=e=>this.fullWindowOnEscKey(e),this.boundUpdateStyleEl_=e=>this.updateStyleEl_(e),this.boundApplyInitTime_=e=>this.applyInitTime_(e),this.boundUpdateCurrentBreakpoint_=e=>this.updateCurrentBreakpoint_(e),this.boundHandleTechClick_=e=>this.handleTechClick_(e),this.boundHandleTechDoubleClick_=e=>this.handleTechDoubleClick_(e),this.boundHandleTechTouchStart_=e=>this.handleTechTouchStart_(e),this.boundHandleTechTouchMove_=e=>this.handleTechTouchMove_(e),this.boundHandleTechTouchEnd_=e=>this.handleTechTouchEnd_(e),this.boundHandleTechTap_=e=>this.handleTechTap_(e),this.isFullscreen_=!1,this.log=W(this.id_),this.fsApi_=j,this.isPosterFromTech_=!1,this.queuedCallbacks_=[],this.isReady_=!1,this.hasStarted_=!1,this.userActive_=!1,this.debugEnabled_=!1,this.audioOnlyMode_=!1,this.audioPosterMode_=!1,this.audioOnlyCache_={playerHeight:null,hiddenChildren:[]},!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");if(this.tag=e,this.tagAttributes=e&&Ae(e),this.language(this.options_.language),t.languages){const r={};Object.getOwnPropertyNames(t.languages).forEach(function(e){r[e.toLowerCase()]=t.languages[e]}),this.languages_=r}else this.languages_=b.prototype.options_.languages;this.resetCache_(),this.poster_=t.poster||"",this.controls_=!!t.controls,e.controls=!1,e.removeAttribute("controls"),this.changingSrc_=!1,this.playCallbacks_=[],this.playTerminatedQueue_=[],e.hasAttribute("autoplay")?this.autoplay(!0):this.autoplay(this.options_.autoplay),t.plugins&&Object.keys(t.plugins).forEach(e=>{if("function"!=typeof this[e])throw new Error(`plugin "${e}" does not exist`)}),this.scrubbing_=!1,this.el_=this.createEl(),Ct(this,{eventBusKey:"el_"}),this.fsApi_.requestFullscreen&&(ot(document,this.fsApi_.fullscreenchange,this.boundDocumentFullscreenChange_),this.on(this.fsApi_.fullscreenchange,this.boundDocumentFullscreenChange_)),this.fluid_&&this.on(["playerreset","resize"],this.boundUpdateStyleEl_);var s=h(this.options_),i=(t.plugins&&Object.keys(t.plugins).forEach(e=>{this[e](t.plugins[e])}),t.debug&&this.debug(!0),this.options_.playerOptions=s,this.middleware_=[],this.playbackRates(t.playbackRates),this.initChildren(),this.isAudio("audio"===e.nodeName.toLowerCase()),this.controls()?this.addClass("vjs-controls-enabled"):this.addClass("vjs-controls-disabled"),this.el_.setAttribute("role","region"),this.isAudio()?this.el_.setAttribute("aria-label",this.localize("Audio Player")):this.el_.setAttribute("aria-label",this.localize("Video Player")),this.isAudio()&&this.addClass("vjs-audio"),me&&this.addClass("vjs-touch-enabled"),u||this.addClass("vjs-workinghover"),b.players[this.id_]=this,R.split(".")[0]);this.addClass("vjs-v"+i),this.userActive(!0),this.reportUserActivity(),this.one("play",e=>this.listenForUserActivity_(e)),this.on("keydown",e=>this.handleKeyDown(e)),this.on("languagechange",e=>this.handleLanguagechange(e)),this.breakpoints(this.options_.breakpoints),this.responsive(this.options_.responsive),this.on("ready",()=>{this.audioPosterMode(this.options_.audioPosterMode),this.audioOnlyMode(this.options_.audioOnlyMode)})}dispose(){var e;this.trigger("dispose"),this.off("dispose"),p(document,this.fsApi_.fullscreenchange,this.boundDocumentFullscreenChange_),p(document,"keydown",this.boundFullWindowOnEscKey_),this.styleEl_&&this.styleEl_.parentNode&&(this.styleEl_.parentNode.removeChild(this.styleEl_),this.styleEl_=null),b.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech_&&(this.tech_.dispose(),this.isPosterFromTech_=!1,this.poster_=""),this.playerElIngest_&&(this.playerElIngest_=null),this.tag&&(this.tag=null),e=this,us[e.id()]=null,a.names.forEach(e=>{e=this[a[e].getterName]();e&&e.off&&e.off()}),super.dispose({restoreEl:this.options_.restoreEl})}createEl(){let t=this.tag,i,e=this.playerElIngest_=t.parentNode&&t.parentNode.hasAttribute&&t.parentNode.hasAttribute("data-vjs-player");const s="video-js"===this.tag.tagName.toLowerCase(),r=(e?i=this.el_=t.parentNode:s||(i=this.el_=super.createEl("div")),Ae(t));if(s){for(i=this.el_=t,t=this.tag=document.createElement("video");i.children.length;)t.appendChild(i.firstChild);Ee(i,"video-js")||ke(i,"video-js"),i.appendChild(t),e=this.playerElIngest_=i,Object.keys(i).forEach(e=>{try{t[e]=i[e]}catch(e){}})}t.setAttribute("tabindex","-1"),r.tabindex="-1",ae&&ue&&(t.setAttribute("role","application"),r.role="application"),t.removeAttribute("width"),t.removeAttribute("height"),"width"in r&&delete r.width,"height"in r&&delete r.height,Object.getOwnPropertyNames(r).forEach(function(e){s&&"class"===e||i.setAttribute(e,r[e]),s&&t.setAttribute(e,r[e])}),t.playerId=t.id,t.id+="_html5_api",t.className="vjs-tech",(t.player=i.player=this).addClass("vjs-paused"),!0!==window.VIDEOJS_NO_DYNAMIC_STYLE&&(this.styleEl_=Ze("vjs-styles-dimensions"),n=$e(".vjs-styles-defaults"),(a=$e("head")).insertBefore(this.styleEl_,n?n.nextSibling:a.firstChild)),this.fill_=!1,this.fluid_=!1,this.width(this.options_.width),this.height(this.options_.height),this.fill(this.options_.fill),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),this.crossOrigin(this.options_.crossOrigin||this.options_.crossorigin);var n,a,o=t.getElementsByTagName("a");for(let e=0;e<o.length;e++){var l=o.item(e);ke(l,"vjs-hidden"),l.setAttribute("hidden","hidden")}return t.initNetworkState_=t.networkState,t.parentNode&&!e&&t.parentNode.insertBefore(i,t),we(t,i),this.children_.unshift(t),this.el_.setAttribute("lang",this.language_),this.el_.setAttribute("translate","no"),this.el_=i}crossOrigin(e){if("undefined"==typeof e)return this.techGet_("crossOrigin");null!==e&&"anonymous"!==e&&"use-credentials"!==e?d.warn(`crossOrigin must be null, "anonymous" or "use-credentials", given "${e}"`):(this.techCall_("setCrossOrigin",e),this.posterImage&&this.posterImage.crossOrigin(e))}width(e){return this.dimension("width",e)}height(e){return this.dimension("height",e)}dimension(e,t){var i,s=e+"_";if(void 0===t)return this[s]||0;""===t||"auto"===t?(this[s]=void 0,this.updateStyleEl_()):(i=parseFloat(t),isNaN(i)?d.error(`Improper value "${t}" supplied for for `+e):(this[s]=i,this.updateStyleEl_()))}fluid(e){if(void 0===e)return!!this.fluid_;var t;this.fluid_=!!e,_t(this)&&this.off(["playerreset","resize"],this.boundUpdateStyleEl_),e?(this.addClass("vjs-fluid"),this.fill(!1),e=this,t=()=>{this.on(["playerreset","resize"],this.boundUpdateStyleEl_)},_t(e)?t():(e.eventedCallbacks||(e.eventedCallbacks=[]),e.eventedCallbacks.push(t))):this.removeClass("vjs-fluid"),this.updateStyleEl_()}fill(e){if(void 0===e)return!!this.fill_;this.fill_=!!e,e?(this.addClass("vjs-fill"),this.fluid(!1)):this.removeClass("vjs-fill")}aspectRatio(e){if(void 0===e)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(e))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=e,this.fluid(!0),this.updateStyleEl_()}updateStyleEl_(){if(!0===window.VIDEOJS_NO_DYNAMIC_STYLE){const e="number"==typeof this.width_?this.width_:this.options_.width,t="number"==typeof this.height_?this.height_:this.options_.height;var r=this.tech_&&this.tech_.el();void(r&&(0<=e&&(r.width=e),0<=t)&&(r.height=t))}else{let e,t,i,s;r=(i=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:0<this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9").split(":"),r=r[1]/r[0];e=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/r:this.videoWidth()||300,t=void 0!==this.height_?this.height_:e*r,s=/^[^a-zA-Z]/.test(this.id())?"dimensions-"+this.id():this.id()+"-dimensions",this.addClass(s),et(this.styleEl_,`
- .${s} {
- width: ${e}px;
- height: ${t}px;
- }
- .${s}.vjs-fluid:not(.vjs-audio-only-mode) {
- padding-top: ${100*r}%;
- }
- `)}}loadTech_(e,t){this.tech_&&this.unloadTech_();var i=g(e),s=e.charAt(0).toLowerCase()+e.slice(1);"Html5"!==i&&this.tag&&(_.getTech("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=i,this.isReady_=!1;let r=this.autoplay();const n={source:t,autoplay:r="string"==typeof this.autoplay()||!0===this.autoplay()&&this.options_.normalizeAutoplay?!1:r,nativeControlsForTouch:this.options_.nativeControlsForTouch,playerId:this.id(),techId:this.id()+`_${s}_api`,playsinline:this.options_.playsinline,preload:this.options_.preload,loop:this.options_.loop,disablePictureInPicture:this.options_.disablePictureInPicture,muted:this.options_.muted,poster:this.poster(),language:this.language(),playerElIngest:this.playerElIngest_||!1,"vtt.js":this.options_["vtt.js"],canOverridePoster:!!this.options_.techCanOverridePoster,enableSourceset:this.options_.enableSourceset};a.names.forEach(e=>{e=a[e];n[e.getterName]=this[e.privateName]}),Object.assign(n,this.options_[i]),Object.assign(n,this.options_[s]),Object.assign(n,this.options_[e.toLowerCase()]),this.tag&&(n.tag=this.tag),t&&t.src===this.cache_.src&&0<this.cache_.currentTime&&(n.startTime=this.cache_.currentTime);s=_.getTech(e);if(!s)throw new Error(`No Tech named '${i}' exists! '${i}' should be registered using videojs.registerTech()'`);this.tech_=new s(n),this.tech_.ready(m(this,this.handleTechReady_),!0),Kt(this.textTracksJson_||[],this.tech_),Qr.forEach(t=>{this.on(this.tech_,t,e=>this[`handleTech${g(t)}_`](e))}),Object.keys(Jr).forEach(t=>{this.on(this.tech_,t,e=>{0===this.tech_.playbackRate()&&this.tech_.seeking()?this.queuedCallbacks_.push({callback:this[`handleTech${Jr[t]}_`].bind(this),event:e}):this[`handleTech${Jr[t]}_`](e)})}),this.on(this.tech_,"loadstart",e=>this.handleTechLoadStart_(e)),this.on(this.tech_,"sourceset",e=>this.handleTechSourceset_(e)),this.on(this.tech_,"waiting",e=>this.handleTechWaiting_(e)),this.on(this.tech_,"ended",e=>this.handleTechEnded_(e)),this.on(this.tech_,"seeking",e=>this.handleTechSeeking_(e)),this.on(this.tech_,"play",e=>this.handleTechPlay_(e)),this.on(this.tech_,"pause",e=>this.handleTechPause_(e)),this.on(this.tech_,"durationchange",e=>this.handleTechDurationChange_(e)),this.on(this.tech_,"fullscreenchange",(e,t)=>this.handleTechFullscreenChange_(e,t)),this.on(this.tech_,"fullscreenerror",(e,t)=>this.handleTechFullscreenError_(e,t)),this.on(this.tech_,"enterpictureinpicture",e=>this.handleTechEnterPictureInPicture_(e)),this.on(this.tech_,"leavepictureinpicture",e=>this.handleTechLeavePictureInPicture_(e)),this.on(this.tech_,"error",e=>this.handleTechError_(e)),this.on(this.tech_,"posterchange",e=>this.handleTechPosterChange_(e)),this.on(this.tech_,"textdata",e=>this.handleTechTextData_(e)),this.on(this.tech_,"ratechange",e=>this.handleTechRateChange_(e)),this.on(this.tech_,"loadedmetadata",this.boundUpdateStyleEl_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===i&&this.tag||we(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)}unloadTech_(){a.names.forEach(e=>{e=a[e];this[e.privateName]=this[e.getterName]()}),this.textTracksJson_=Xt(this.tech_),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1,this.isPosterFromTech_&&(this.poster_="",this.trigger("posterchange")),this.isPosterFromTech_=!1}tech(e){return void 0===e&&d.warn("Using the tech directly can be dangerous. I hope you know what you're doing.\nSee https://github.com/videojs/video.js/issues/2617 for more info.\n"),this.tech_}addTechControlsListeners_(){this.removeTechControlsListeners_(),this.on(this.tech_,"click",this.boundHandleTechClick_),this.on(this.tech_,"dblclick",this.boundHandleTechDoubleClick_),this.on(this.tech_,"touchstart",this.boundHandleTechTouchStart_),this.on(this.tech_,"touchmove",this.boundHandleTechTouchMove_),this.on(this.tech_,"touchend",this.boundHandleTechTouchEnd_),this.on(this.tech_,"tap",this.boundHandleTechTap_)}removeTechControlsListeners_(){this.off(this.tech_,"tap",this.boundHandleTechTap_),this.off(this.tech_,"touchstart",this.boundHandleTechTouchStart_),this.off(this.tech_,"touchmove",this.boundHandleTechTouchMove_),this.off(this.tech_,"touchend",this.boundHandleTechTouchEnd_),this.off(this.tech_,"click",this.boundHandleTechClick_),this.off(this.tech_,"dblclick",this.boundHandleTechDoubleClick_)}handleTechReady_(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_()}handleTechLoadStart_(){this.removeClass("vjs-ended","vjs-seeking"),this.error(null),this.handleTechDurationChange_(),this.paused()&&this.hasStarted(!1),this.trigger("loadstart"),this.manualAutoplay_(!0===this.autoplay()&&this.options_.normalizeAutoplay?"play":this.autoplay())}manualAutoplay_(t){if(this.tech_&&"string"==typeof t){var i=()=>{const e=this.muted(),t=(this.muted(!0),()=>{this.muted(e)});this.playTerminatedQueue_.push(t);var i=this.play();if(Wt(i))return i.catch(e=>{throw t(),new Error("Rejection at manualAutoplay. Restoring muted value. "+(e||""))})};let e;if("any"!==t||this.muted()?e="muted"!==t||this.muted()?this.play():i():Wt(e=this.play())&&(e=e.catch(i)),Wt(e))return e.then(()=>{this.trigger({type:"autoplay-success",autoplay:t})}).catch(()=>{this.trigger({type:"autoplay-failure",autoplay:t})})}}updateSourceCaches_(e=""){let t=e,i="";"string"!=typeof t&&(t=e.src,i=e.type),this.cache_.source=this.cache_.source||{},this.cache_.sources=this.cache_.sources||[],t&&!i&&(i=((e,t)=>{if(!t)return"";if(e.cache_.source.src===t&&e.cache_.source.type)return e.cache_.source.type;var i=e.cache_.sources.filter(e=>e.src===t);if(i.length)return i[0].type;var s=e.$$("source");for(let e=0;e<s.length;e++){var r=s[e];if(r.type&&r.src&&r.src===t)return r.type}return Ss(t)})(this,t)),this.cache_.source=h({},e,{src:t,type:i});var e=this.cache_.sources.filter(e=>e.src&&e.src===t),s=[],r=this.$$("source"),n=[];for(let e=0;e<r.length;e++){var a=Ae(r[e]);s.push(a),a.src&&a.src===t&&n.push(a.src)}n.length&&!e.length?this.cache_.sources=s:e.length||(this.cache_.sources=[this.cache_.source]),this.cache_.src=t}handleTechSourceset_(t){if(!this.changingSrc_){let e=e=>this.updateSourceCaches_(e);var i=this.currentSource().src,s=t.src;(e=!i||/^blob:/.test(i)||!/^blob:/.test(s)||this.lastSource_&&(this.lastSource_.tech===s||this.lastSource_.player===i)?e:()=>{})(s),t.src||this.tech_.any(["sourceset","loadstart"],e=>{"sourceset"!==e.type&&(e=this.techGet("currentSrc"),this.lastSource_.tech=e,this.updateSourceCaches_(e))})}this.lastSource_={player:this.currentSource().src,tech:t.src},this.trigger({src:t.src,type:"sourceset"})}hasStarted(e){if(void 0===e)return this.hasStarted_;e!==this.hasStarted_&&(this.hasStarted_=e,this.hasStarted_?this.addClass("vjs-has-started"):this.removeClass("vjs-has-started"))}handleTechPlay_(){this.removeClass("vjs-ended","vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")}handleTechRateChange_(){0<this.tech_.playbackRate()&&0===this.cache_.lastPlaybackRate&&(this.queuedCallbacks_.forEach(e=>e.callback(e.event)),this.queuedCallbacks_=[]),this.cache_.lastPlaybackRate=this.tech_.playbackRate(),this.trigger("ratechange")}handleTechWaiting_(){this.addClass("vjs-waiting"),this.trigger("waiting");const e=this.currentTime(),t=()=>{e!==this.currentTime()&&(this.removeClass("vjs-waiting"),this.off("timeupdate",t))};this.on("timeupdate",t)}handleTechCanPlay_(){this.removeClass("vjs-waiting"),this.trigger("canplay")}handleTechCanPlayThrough_(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")}handleTechPlaying_(){this.removeClass("vjs-waiting"),this.trigger("playing")}handleTechSeeking_(){this.addClass("vjs-seeking"),this.trigger("seeking")}handleTechSeeked_(){this.removeClass("vjs-seeking","vjs-ended"),this.trigger("seeked")}handleTechPause_(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")}handleTechEnded_(){this.addClass("vjs-ended"),this.removeClass("vjs-waiting"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")}handleTechDurationChange_(){this.duration(this.techGet_("duration"))}handleTechClick_(e){!this.controls_||void 0!==this.options_&&void 0!==this.options_.userActions&&void 0!==this.options_.userActions.click&&!1===this.options_.userActions.click||(void 0!==this.options_&&void 0!==this.options_.userActions&&"function"==typeof this.options_.userActions.click?this.options_.userActions.click.call(this,e):this.paused()?Gt(this.play()):this.pause())}handleTechDoubleClick_(t){!this.controls_||Array.prototype.some.call(this.$$(".vjs-control-bar, .vjs-modal-dialog"),e=>e.contains(t.target))||void 0!==this.options_&&void 0!==this.options_.userActions&&void 0!==this.options_.userActions.doubleClick&&!1===this.options_.userActions.doubleClick||(void 0!==this.options_&&void 0!==this.options_.userActions&&"function"==typeof this.options_.userActions.doubleClick?this.options_.userActions.doubleClick.call(this,t):this.isFullscreen()?this.exitFullscreen():this.requestFullscreen())}handleTechTap_(){this.userActive(!this.userActive())}handleTechTouchStart_(){this.userWasActive=this.userActive()}handleTechTouchMove_(){this.userWasActive&&this.reportUserActivity()}handleTechTouchEnd_(e){e.cancelable&&e.preventDefault()}toggleFullscreenClass_(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")}documentFullscreenChange_(t){t=t.target.player;if(!t||t===this){t=this.el();let e=document[this.fsApi_.fullscreenElement]===t;!e&&t.matches?e=t.matches(":"+this.fsApi_.fullscreen):!e&&t.msMatchesSelector&&(e=t.msMatchesSelector(":"+this.fsApi_.fullscreen)),this.isFullscreen(e)}}handleTechFullscreenChange_(e,t){t&&(t.nativeIOSFullscreen&&(this.addClass("vjs-ios-native-fs"),this.tech_.one("webkitendfullscreen",()=>{this.removeClass("vjs-ios-native-fs")})),this.isFullscreen(t.isFullscreen))}handleTechFullscreenError_(e,t){this.trigger("fullscreenerror",t)}togglePictureInPictureClass_(){this.isInPictureInPicture()?this.addClass("vjs-picture-in-picture"):this.removeClass("vjs-picture-in-picture")}handleTechEnterPictureInPicture_(e){this.isInPictureInPicture(!0)}handleTechLeavePictureInPicture_(e){this.isInPictureInPicture(!1)}handleTechError_(){var e=this.tech_.error();this.error(e)}handleTechTextData_(){let e=1<arguments.length?arguments[1]:null;this.trigger("textdata",e)}getCache(){return this.cache_}resetCache_(){this.cache_={currentTime:0,initTime:0,inactivityTimeout:this.options_.inactivityTimeout,duration:NaN,lastVolume:1,lastPlaybackRate:this.defaultPlaybackRate(),media:null,src:"",source:{},sources:[],playbackRates:[],volume:1}}techCall_(t,i){this.ready(function(){if(t in fs)return e=this.middleware_,this.tech_[t](e.reduce(_s(t),i));if(t in ys)return ms(this.middleware_,this.tech_,t,i);var e;try{this.tech_&&this.tech_[t](i)}catch(e){throw d(e),e}},!0)}techGet_(t){if(this.tech_&&this.tech_.isReady_){if(t in gs)return e=this.middleware_,i=this.tech_,e.reduceRight(_s(t),i[t]());if(t in ys)return ms(this.middleware_,this.tech_,t);var e,i;try{return this.tech_[t]()}catch(e){throw void 0===this.tech_[t]?d(`Video.js: ${t} method not defined for ${this.techName_} playback technology.`,e):"TypeError"===e.name?(d(`Video.js: ${t} unavailable on ${this.techName_} playback technology element.`,e),this.tech_.isReady_=!1):d(e),e}}}play(){return new Promise(e=>{this.play_(e)})}play_(e=Gt){this.playCallbacks_.push(e);var t,e=Boolean(!this.changingSrc_&&(this.src()||this.currentSrc())),i=Boolean(fe||u);this.waitToPlay_&&(this.off(["ready","loadstart"],this.waitToPlay_),this.waitToPlay_=null),this.isReady_&&e?(t=this.techGet_("play"),i&&this.hasClass("vjs-ended")&&this.resetProgressBar_(),null===t?this.runPlayTerminatedQueue_():this.runPlayCallbacks_(t)):(this.waitToPlay_=e=>{this.play_()},this.one(["ready","loadstart"],this.waitToPlay_),!e&&i&&this.load())}runPlayTerminatedQueue_(){var e=this.playTerminatedQueue_.slice(0);this.playTerminatedQueue_=[],e.forEach(function(e){e()})}runPlayCallbacks_(t){var e=this.playCallbacks_.slice(0);this.playCallbacks_=[],this.playTerminatedQueue_=[],e.forEach(function(e){e(t)})}pause(){this.techCall_("pause")}paused(){return!1!==this.techGet_("paused")}played(){return this.techGet_("played")||Rt(0,0)}scrubbing(e){if("undefined"==typeof e)return this.scrubbing_;this.scrubbing_=!!e,this.techCall_("setScrubbing",this.scrubbing_),e?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing")}currentTime(e){return"undefined"!=typeof e?(e<0&&(e=0),this.isReady_&&!this.changingSrc_&&this.tech_&&this.tech_.isReady_?(this.techCall_("setCurrentTime",e),void(this.cache_.initTime=0)):(this.cache_.initTime=e,this.off("canplay",this.boundApplyInitTime_),void this.one("canplay",this.boundApplyInitTime_))):(this.cache_.currentTime=this.techGet_("currentTime")||0,this.cache_.currentTime)}applyInitTime_(){this.currentTime(this.cache_.initTime)}duration(e){if(void 0===e)return void 0!==this.cache_.duration?this.cache_.duration:NaN;(e=(e=parseFloat(e))<0?1/0:e)!==this.cache_.duration&&((this.cache_.duration=e)===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"),isNaN(e)||this.trigger("durationchange"))}remainingTime(){return this.duration()-this.currentTime()}remainingTimeDisplay(){return Math.floor(this.duration())-Math.floor(this.currentTime())}buffered(){let e=this.techGet_("buffered");return e=e&&e.length?e:Rt(0,0)}bufferedPercent(){return Vt(this.buffered(),this.duration())}bufferedEnd(){var e=this.buffered(),t=this.duration();let i=e.end(e.length-1);return i=i>t?t:i}volume(e){let t;if(void 0===e)return t=parseFloat(this.techGet_("volume")),isNaN(t)?1:t;t=Math.max(0,Math.min(1,parseFloat(e))),this.cache_.volume=t,this.techCall_("setVolume",t),0<t&&this.lastVolume_(t)}muted(e){if(void 0===e)return this.techGet_("muted")||!1;this.techCall_("setMuted",e)}defaultMuted(e){return void 0!==e?this.techCall_("setDefaultMuted",e):this.techGet_("defaultMuted")||!1}lastVolume_(e){if(void 0===e||0===e)return this.cache_.lastVolume;this.cache_.lastVolume=e}supportsFullScreen(){return this.techGet_("supportsFullScreen")||!1}isFullscreen(e){var t;if(void 0===e)return this.isFullscreen_;t=this.isFullscreen_,this.isFullscreen_=Boolean(e),this.isFullscreen_!==t&&this.fsApi_.prefixed&&this.trigger("fullscreenchange"),this.toggleFullscreenClass_()}requestFullscreen(a){this.isInPictureInPicture()&&this.exitPictureInPicture();const o=this;return new Promise((e,i)=>{function s(){o.off("fullscreenerror",r),o.off("fullscreenchange",t)}function t(){s(),e()}function r(e,t){s(),i(t)}o.one("fullscreenchange",t),o.one("fullscreenerror",r);var n=o.requestFullscreenHelper_(a);n&&(n.then(s,s),n.then(e,i))})}requestFullscreenHelper_(e){let t;if(this.fsApi_.prefixed||(t=this.options_.fullscreen&&this.options_.fullscreen.options||{},void 0!==e&&(t=e)),this.fsApi_.requestFullscreen)return(e=this.el_[this.fsApi_.requestFullscreen](t))&&e.then(()=>this.isFullscreen(!0),()=>this.isFullscreen(!1)),e;this.tech_.supportsFullScreen()&&!0==!this.options_.preferFullWindow?this.techCall_("enterFullScreen"):this.enterFullWindow()}exitFullscreen(){const a=this;return new Promise((e,i)=>{function s(){a.off("fullscreenerror",r),a.off("fullscreenchange",t)}function t(){s(),e()}function r(e,t){s(),i(t)}a.one("fullscreenchange",t),a.one("fullscreenerror",r);var n=a.exitFullscreenHelper_();n&&(n.then(s,s),n.then(e,i))})}exitFullscreenHelper_(){var e;if(this.fsApi_.requestFullscreen)return(e=document[this.fsApi_.exitFullscreen]())&&Gt(e.then(()=>this.isFullscreen(!1))),e;this.tech_.supportsFullScreen()&&!0==!this.options_.preferFullWindow?this.techCall_("exitFullScreen"):this.exitFullWindow()}enterFullWindow(){this.isFullscreen(!0),this.isFullWindow=!0,this.docOrigOverflow=document.documentElement.style.overflow,ot(document,"keydown",this.boundFullWindowOnEscKey_),document.documentElement.style.overflow="hidden",ke(document.body,"vjs-full-window"),this.trigger("enterFullWindow")}fullWindowOnEscKey(e){r.isEventKey(e,"Esc")&&!0===this.isFullscreen()&&(this.isFullWindow?this.exitFullWindow():this.exitFullscreen())}exitFullWindow(){this.isFullscreen(!1),this.isFullWindow=!1,p(document,"keydown",this.boundFullWindowOnEscKey_),document.documentElement.style.overflow=this.docOrigOverflow,Ce(document.body,"vjs-full-window"),this.trigger("exitFullWindow")}disablePictureInPicture(e){if(void 0===e)return this.techGet_("disablePictureInPicture");this.techCall_("setDisablePictureInPicture",e),this.options_.disablePictureInPicture=e,this.trigger("disablepictureinpicturechanged")}isInPictureInPicture(e){if(void 0===e)return!!this.isInPictureInPicture_;this.isInPictureInPicture_=!!e,this.togglePictureInPictureClass_()}requestPictureInPicture(){if(this.options_.enableDocumentPictureInPicture&&window.documentPictureInPicture){const t=document.createElement(this.el().tagName);return t.classList=this.el().classList,t.classList.add("vjs-pip-container"),this.posterImage&&t.appendChild(this.posterImage.el().cloneNode(!0)),this.titleBar&&t.appendChild(this.titleBar.el().cloneNode(!0)),t.appendChild(o("p",{className:"vjs-pip-text"},{},this.localize("Playing in picture-in-picture"))),window.documentPictureInPicture.requestWindow({initialAspectRatio:this.videoWidth()/this.videoHeight(),copyStyleSheets:!0}).then(e=>(this.el_.parentNode.insertBefore(t,this.el_),e.document.body.append(this.el_),e.document.body.classList.add("vjs-pip-window"),this.player_.isInPictureInPicture(!0),this.player_.trigger("enterpictureinpicture"),e.addEventListener("unload",e=>{e=e.target.querySelector(".video-js");t.replaceWith(e),this.player_.isInPictureInPicture(!1),this.player_.trigger("leavepictureinpicture")}),e))}return"pictureInPictureEnabled"in document&&!1===this.disablePictureInPicture()?this.techGet_("requestPictureInPicture"):Promise.reject("No PiP mode is available")}exitPictureInPicture(){return window.documentPictureInPicture&&window.documentPictureInPicture.window?(window.documentPictureInPicture.window.close(),Promise.resolve()):"pictureInPictureEnabled"in document?document.exitPictureInPicture():void 0}handleKeyDown(e){var t,i,s=this.options_["userActions"];s&&s.hotkeys&&(t=this.el_.ownerDocument.activeElement,i=t.tagName.toLowerCase(),t.isContentEditable||("input"===i?-1===["button","checkbox","hidden","radio","reset","submit"].indexOf(t.type):-1!==["textarea"].indexOf(i))||("function"==typeof s.hotkeys?s.hotkeys.call(this,e):this.handleHotkeys(e)))}handleHotkeys(e){var{fullscreenKey:t=e=>r.isEventKey(e,"f"),muteKey:i=e=>r.isEventKey(e,"m"),playPauseKey:s=e=>r.isEventKey(e,"k")||r.isEventKey(e,"Space")}=this.options_.userActions?this.options_.userActions.hotkeys:{};t.call(this,e)?(e.preventDefault(),e.stopPropagation(),t=f.getComponent("FullscreenToggle"),!1!==document[this.fsApi_.fullscreenEnabled]&&t.prototype.handleClick.call(this,e)):i.call(this,e)?(e.preventDefault(),e.stopPropagation(),f.getComponent("MuteToggle").prototype.handleClick.call(this,e)):s.call(this,e)&&(e.preventDefault(),e.stopPropagation(),f.getComponent("PlayToggle").prototype.handleClick.call(this,e))}canPlayType(s){var r;for(let t=0,i=this.options_.techOrder;t<i.length;t++){var n=i[t];let e=_.getTech(n);if(e=e||f.getComponent(n)){if(e.isSupported()&&(r=e.canPlayType(s)))return r}else d.error(`The "${n}" tech is undefined. Skipped browser support check for that tech.`)}return""}selectSource(e){function t(e,i,s){let r;return e.some(t=>i.some(e=>{if(r=s(t,e))return!0})),r}var i=this.options_.techOrder.map(e=>[e,_.getTech(e)]).filter(([e,t])=>t?t.isSupported():(d.error(`The "${e}" tech is undefined. Skipped browser support check for that tech.`),!1));let s;var r,n=([e,t],i)=>{if(t.canPlaySource(i,this.options_[e.toLowerCase()]))return{source:i,tech:e}};return(s=this.options_.sourceOrder?t(e,i,(r=n,(e,t)=>r(t,e))):t(i,e,n))||!1}handleSrc_(e,s){if("undefined"==typeof e)return this.cache_.src||"";this.resetRetryOnError_&&this.resetRetryOnError_();const r=bs(e);if(r.length){if(this.changingSrc_=!0,s||(this.cache_.sources=r),this.updateSourceCaches_(r[0]),ps(this,r[0],(e,t)=>{var i;if(this.middleware_=t,s||(this.cache_.sources=r),this.updateSourceCaches_(e),this.src_(e))return 1<r.length?this.handleSrc_(r.slice(1)):(this.changingSrc_=!1,this.setTimeout(function(){this.error({code:4,message:this.options_.notSupportedMessage})},0),void this.triggerReady());i=this.tech_,t.forEach(e=>e.setTech&&e.setTech(i))}),1<r.length){const t=()=>{this.error(null),this.handleSrc_(r.slice(1),!0)},i=()=>{this.off("error",t)};this.one("error",t),this.one("playing",i),this.resetRetryOnError_=()=>{this.off("error",t),this.off("playing",i)}}}else this.setTimeout(function(){this.error({code:4,message:this.options_.notSupportedMessage})},0)}src(e){return this.handleSrc_(e,!1)}src_(e){var t=this.selectSource([e]);return!t||(Pt(t.tech,this.techName_)?this.ready(function(){this.tech_.constructor.prototype.hasOwnProperty("setSource")?this.techCall_("setSource",e):this.techCall_("src",e.src),this.changingSrc_=!1},!0):(this.changingSrc_=!0,this.loadTech_(t.tech,t.source),this.tech_.ready(()=>{this.changingSrc_=!1})),!1)}load(){this.techCall_("load")}reset(){this.paused()?this.doReset_():Gt(this.play().then(()=>this.doReset_()))}doReset_(){this.tech_&&this.tech_.clearTracks("text"),this.resetCache_(),this.poster(""),this.loadTech_(this.options_.techOrder[0],null),this.techCall_("reset"),this.resetControlBarUI_(),_t(this)&&this.trigger("playerreset")}resetControlBarUI_(){this.resetProgressBar_(),this.resetPlaybackRate_(),this.resetVolumeBar_()}resetProgressBar_(){this.currentTime(0);var{currentTimeDisplay:e,durationDisplay:t,progressControl:i,remainingTimeDisplay:s}=this.controlBar||{},i=(i||{})["seekBar"];e&&e.updateContent(),t&&t.updateContent(),s&&s.updateContent(),i&&(i.update(),i.loadProgressBar)&&i.loadProgressBar.update()}resetPlaybackRate_(){this.playbackRate(this.defaultPlaybackRate()),this.handleTechRateChange_()}resetVolumeBar_(){this.volume(1),this.trigger("volumechange")}currentSources(){var e=this.currentSource(),t=[];return 0!==Object.keys(e).length&&t.push(e),this.cache_.sources||t}currentSource(){return this.cache_.source||{}}currentSrc(){return this.currentSource()&&this.currentSource().src||""}currentType(){return this.currentSource()&&this.currentSource().type||""}preload(e){if(void 0===e)return this.techGet_("preload");this.techCall_("setPreload",e),this.options_.preload=e}autoplay(e){if(void 0===e)return this.options_.autoplay||!1;let t;"string"==typeof e&&/(any|play|muted)/.test(e)||!0===e&&this.options_.normalizeAutoplay?(this.options_.autoplay=e,this.manualAutoplay_("string"==typeof e?e:"play"),t=!1):this.options_.autoplay=!!e,t="undefined"==typeof t?this.options_.autoplay:t,this.tech_&&this.techCall_("setAutoplay",t)}playsinline(e){return void 0!==e?(this.techCall_("setPlaysinline",e),this.options_.playsinline=e,this):this.techGet_("playsinline")}loop(e){if(void 0===e)return this.techGet_("loop");this.techCall_("setLoop",e),this.options_.loop=e}poster(e){if(void 0===e)return this.poster_;(e=e||"")!==this.poster_&&(this.poster_=e,this.techCall_("setPoster",e),this.isPosterFromTech_=!1,this.trigger("posterchange"))}handleTechPosterChange_(){var e;(!this.poster_||this.options_.techCanOverridePoster)&&this.tech_&&this.tech_.poster&&(e=this.tech_.poster()||"")!==this.poster_&&(this.poster_=e,this.isPosterFromTech_=!0,this.trigger("posterchange"))}controls(e){if(void 0===e)return!!this.controls_;this.controls_!==(e=!!e)&&(this.controls_=e,this.usingNativeControls()&&this.techCall_("setControls",e),this.controls_?(this.removeClass("vjs-controls-disabled"),this.addClass("vjs-controls-enabled"),this.trigger("controlsenabled"),this.usingNativeControls()||this.addTechControlsListeners_()):(this.removeClass("vjs-controls-enabled"),this.addClass("vjs-controls-disabled"),this.trigger("controlsdisabled"),this.usingNativeControls()||this.removeTechControlsListeners_()))}usingNativeControls(e){if(void 0===e)return!!this.usingNativeControls_;this.usingNativeControls_!==(e=!!e)&&(this.usingNativeControls_=e,this.usingNativeControls_?(this.addClass("vjs-using-native-controls"),this.trigger("usingnativecontrols")):(this.removeClass("vjs-using-native-controls"),this.trigger("usingcustomcontrols")))}error(t){if(void 0===t)return this.error_||null;if(B("beforeerror").forEach(e=>{e=e(this,t);K(e)&&!Array.isArray(e)||"string"==typeof e||"number"==typeof e||null===e?t=e:this.log.error("please return a value that MediaError expects in beforeerror hooks")}),this.options_.suppressNotSupportedError&&t&&4===t.code){const e=function(){this.error(t)};this.options_.suppressNotSupportedError=!1,this.any(["click","touchstart"],e),void this.one("loadstart",function(){this.off(["click","touchstart"],e)})}else null===t?(this.error_=t,this.removeClass("vjs-error"),this.errorDisplay&&this.errorDisplay.close()):(this.error_=new i(t),this.addClass("vjs-error"),d.error(`(CODE:${this.error_.code} ${i.errorTypes[this.error_.code]})`,this.error_.message,this.error_),this.trigger("error"),B("error").forEach(e=>e(this,this.error_)))}reportUserActivity(e){this.userActivity_=!0}userActive(e){if(void 0===e)return this.userActive_;(e=!!e)!==this.userActive_&&(this.userActive_=e,this.userActive_?(this.userActivity_=!0,this.removeClass("vjs-user-inactive"),this.addClass("vjs-user-active"),this.trigger("useractive")):(this.tech_&&this.tech_.one("mousemove",function(e){e.stopPropagation(),e.preventDefault()}),this.userActivity_=!1,this.removeClass("vjs-user-active"),this.addClass("vjs-user-inactive"),this.trigger("userinactive")))}listenForUserActivity_(){let t,i,s;const r=m(this,this.reportUserActivity);function e(e){r(),this.clearInterval(t)}this.on("mousedown",function(){r(),this.clearInterval(t),t=this.setInterval(r,250)}),this.on("mousemove",function(e){e.screenX===i&&e.screenY===s||(i=e.screenX,s=e.screenY,r())}),this.on("mouseup",e),this.on("mouseleave",e);var n=this.getChild("controlBar");!n||u||te||(n.on("mouseenter",function(e){0!==this.player().options_.inactivityTimeout&&(this.player().cache_.inactivityTimeout=this.player().options_.inactivityTimeout),this.player().options_.inactivityTimeout=0}),n.on("mouseleave",function(e){this.player().options_.inactivityTimeout=this.player().cache_.inactivityTimeout})),this.on("keydown",r),this.on("keyup",r);let a;this.setInterval(function(){var e;this.userActivity_&&(this.userActivity_=!1,this.userActive(!0),this.clearTimeout(a),(e=this.options_.inactivityTimeout)<=0||(a=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},e)))},250)}playbackRate(e){if(void 0===e)return this.tech_&&this.tech_.featuresPlaybackRate?this.cache_.lastPlaybackRate||this.techGet_("playbackRate"):1;this.techCall_("setPlaybackRate",e)}defaultPlaybackRate(e){return void 0!==e?this.techCall_("setDefaultPlaybackRate",e):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("defaultPlaybackRate"):1}isAudio(e){if(void 0===e)return!!this.isAudio_;this.isAudio_=!!e}enableAudioOnlyUI_(){this.addClass("vjs-audio-only-mode");var e=this.children();const t=this.getChild("ControlBar");var i=t&&t.currentHeight();e.forEach(e=>{e!==t&&e.el_&&!e.hasClass("vjs-hidden")&&(e.hide(),this.audioOnlyCache_.hiddenChildren.push(e))}),this.audioOnlyCache_.playerHeight=this.currentHeight(),this.height(i),this.trigger("audioonlymodechange")}disableAudioOnlyUI_(){this.removeClass("vjs-audio-only-mode"),this.audioOnlyCache_.hiddenChildren.forEach(e=>e.show()),this.height(this.audioOnlyCache_.playerHeight),this.trigger("audioonlymodechange")}audioOnlyMode(e){return"boolean"!=typeof e||e===this.audioOnlyMode_?this.audioOnlyMode_:(this.audioOnlyMode_=e)?(e=[],this.isInPictureInPicture()&&e.push(this.exitPictureInPicture()),this.isFullscreen()&&e.push(this.exitFullscreen()),this.audioPosterMode()&&e.push(this.audioPosterMode(!1)),Promise.all(e).then(()=>this.enableAudioOnlyUI_())):Promise.resolve().then(()=>this.disableAudioOnlyUI_())}enablePosterModeUI_(){(this.tech_&&this.tech_).hide(),this.addClass("vjs-audio-poster-mode"),this.trigger("audiopostermodechange")}disablePosterModeUI_(){(this.tech_&&this.tech_).show(),this.removeClass("vjs-audio-poster-mode"),this.trigger("audiopostermodechange")}audioPosterMode(e){return"boolean"!=typeof e||e===this.audioPosterMode_?this.audioPosterMode_:(this.audioPosterMode_=e)?(this.audioOnlyMode()?this.audioOnlyMode(!1):Promise.resolve()).then(()=>{this.enablePosterModeUI_()}):Promise.resolve().then(()=>{this.disablePosterModeUI_()})}addTextTrack(e,t,i){if(this.tech_)return this.tech_.addTextTrack(e,t,i)}addRemoteTextTrack(e,t){if(this.tech_)return this.tech_.addRemoteTextTrack(e,t)}removeRemoteTextTrack(e={}){let t=e["track"];if(t=t||e,this.tech_)return this.tech_.removeRemoteTextTrack(t)}getVideoPlaybackQuality(){return this.techGet_("getVideoPlaybackQuality")}videoWidth(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0}videoHeight(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0}language(e){if(void 0===e)return this.language_;this.language_!==String(e).toLowerCase()&&(this.language_=String(e).toLowerCase(),_t(this))&&this.trigger("languagechange")}languages(){return h(b.prototype.options_.languages,this.languages_)}toJSON(){var t=h(this.options_),i=t.tracks;t.tracks=[];for(let e=0;e<i.length;e++){var s=i[e];(s=h(s)).player=void 0,t.tracks[e]=s}return t}createModal(e,t){(t=t||{}).content=e||"";const i=new Qt(this,t);return this.addChild(i),i.on("dispose",()=>{this.removeChild(i)}),i.open(),i}updateCurrentBreakpoint_(){if(this.responsive()){var t=this.currentBreakpoint(),i=this.currentWidth();for(let e=0;e<Zr.length;e++){var s=Zr[e];if(i<=this.breakpoints_[s]){if(t===s)return;t&&this.removeClass(en[t]),this.addClass(en[s]),this.breakpoint_=s;break}}}}removeCurrentBreakpoint_(){var e=this.currentBreakpointClass();this.breakpoint_="",e&&this.removeClass(e)}breakpoints(e){return void 0!==e&&(this.breakpoint_="",this.breakpoints_=Object.assign({},tn,e),this.updateCurrentBreakpoint_()),Object.assign(this.breakpoints_)}responsive(e){return void 0===e?this.responsive_:(e=Boolean(e))!==this.responsive_?((this.responsive_=e)?(this.on("playerresize",this.boundUpdateCurrentBreakpoint_),this.updateCurrentBreakpoint_()):(this.off("playerresize",this.boundUpdateCurrentBreakpoint_),this.removeCurrentBreakpoint_()),e):void 0}currentBreakpoint(){return this.breakpoint_}currentBreakpointClass(){return en[this.breakpoint_]||""}loadMedia(e,t){var i,s,r,n,a,o;e&&"object"==typeof e&&(this.reset(),this.cache_.media=h(e),{artist:e,artwork:i,description:s,poster:r,src:n,textTracks:a,title:o}=this.cache_.media,!i&&r&&(this.cache_.media.artwork=[{src:r,type:Ss(r)}]),n&&this.src(n),r&&this.poster(r),Array.isArray(a)&&a.forEach(e=>this.addRemoteTextTrack(e,!1)),this.titleBar&&this.titleBar.update({title:o,description:s||e||""}),this.ready(t))}getMedia(){var e,t;return this.cache_.media?h(this.cache_.media):(e=this.poster(),t={src:this.currentSources(),textTracks:Array.prototype.map.call(this.remoteTextTracks(),e=>({kind:e.kind,label:e.label,language:e.language,src:e.src}))},e&&(t.poster=e,t.artwork=[{src:t.poster,type:Ss(t.poster)}]),t)}static getTagSettings(e){var t,i={sources:[],tracks:[]},s=Ae(e),r=s["data-setup"];if(Ee(e,"vjs-fill")&&(s.fill=!0),Ee(e,"vjs-fluid")&&(s.fluid=!0),null!==r&&([r,t]=$t(r||"{}"),r&&d.error(r),Object.assign(s,t)),Object.assign(i,s),e.hasChildNodes()){var n=e.childNodes;for(let e=0,t=n.length;e<t;e++){var a=n[e],o=a.nodeName.toLowerCase();"source"===o?i.sources.push(Ae(a)):"track"===o&&i.tracks.push(Ae(a))}}return i}debug(e){if(void 0===e)return this.debugEnabled_;e?(this.trigger("debugon"),this.previousLogLevel_=this.log.level,this.log.level("debug"),this.debugEnabled_=!0):(this.trigger("debugoff"),this.log.level(this.previousLogLevel_),this.previousLogLevel_=void 0,this.debugEnabled_=!1)}playbackRates(e){if(void 0===e)return this.cache_.playbackRates;Array.isArray(e)&&e.every(e=>"number"==typeof e)&&(this.cache_.playbackRates=e,this.trigger("playbackrateschange"))}}a.names.forEach(function(e){const t=a[e];b.prototype[t.getterName]=function(){return this.tech_?this.tech_[t.getterName]():(this[t.privateName]=this[t.privateName]||new t.ListClass,this[t.privateName])}}),b.prototype.crossorigin=b.prototype.crossOrigin,b.players={};Dr=window.navigator;b.prototype.options_={techOrder:_.defaultTechOrder_,html5:{},enableSourceset:!0,inactivityTimeout:2e3,playbackRates:[],liveui:!1,children:["mediaLoader","posterImage","titleBar","textTrackDisplay","loadingSpinner","bigPlayButton","liveTracker","controlBar","errorDisplay","textTrackSettings","resizeManager"],language:Dr&&(Dr.languages&&Dr.languages[0]||Dr.userLanguage||Dr.language)||"en",languages:{},notSupportedMessage:"No compatible source was found for this media.",normalizeAutoplay:!1,fullscreen:{options:{navigationUI:"hide"}},breakpoints:{},responsive:!1,audioOnlyMode:!1,audioPosterMode:!1},["ended","seeking","seekable","networkState","readyState"].forEach(function(e){b.prototype[e]=function(){return this.techGet_(e)}}),Qr.forEach(function(e){b.prototype[`handleTech${g(e)}_`]=function(){return this.trigger(e)}}),f.registerComponent("Player",b);function sn(t,i){function s(){hn(this,{name:t,plugin:i,instance:null},!0);var e=i.apply(this,arguments);return dn(this,t),hn(this,{name:t,plugin:i,instance:e}),e}return Object.keys(i).forEach(function(e){s[e]=i[e]}),s}const rn="plugin",nn="activePlugins_",an={},on=e=>an.hasOwnProperty(e),ln=e=>on(e)?an[e]:void 0,dn=(e,t)=>{e[nn]=e[nn]||{},e[nn][t]=!0},hn=(e,t,i)=>{i=(i?"before":"")+"pluginsetup";e.trigger(i,t),e.trigger(i+":"+t.name,t)},un=(i,s)=>(s.prototype.name=i,function(...e){hn(this,{name:i,plugin:s,instance:null},!0);const t=new s(this,...e);return this[i]=()=>t,hn(this,t.getEventHash()),t});class cn{constructor(e){if(this.constructor===cn)throw new Error("Plugin must be sub-classed; not directly instantiated.");this.player=e,this.log||(this.log=this.player.log.createLogger(this.name)),Ct(this),delete this.trigger,xt(this,this.constructor.defaultState),dn(e,this.name),this.dispose=this.dispose.bind(this),e.on("dispose",this.dispose)}version(){return this.constructor.VERSION}getEventHash(e={}){return e.name=this.name,e.plugin=this.constructor,e.instance=this,e}trigger(e,t={}){return lt(this.eventBusEl_,e,this.getEventHash(t))}handleStateChanged(e){}dispose(){var{name:e,player:t}=this;this.trigger("dispose"),this.off(),t.off("dispose",this.dispose),t[nn][e]=!1,this.player=this.state=null,t[e]=un(e,an[e])}static isBasic(e){e="string"==typeof e?ln(e):e;return"function"==typeof e&&!cn.prototype.isPrototypeOf(e.prototype)}static registerPlugin(e,t){if("string"!=typeof e)throw new Error(`Illegal plugin name, "${e}", must be a string, was ${typeof e}.`);if(on(e))d.warn(`A plugin named "${e}" already exists. You may want to avoid re-registering plugins!`);else if(b.prototype.hasOwnProperty(e))throw new Error(`Illegal plugin name, "${e}", cannot share a name with an existing player method!`);if("function"!=typeof t)throw new Error(`Illegal plugin for "${e}", must be a function, was ${typeof t}.`);return an[e]=t,e!==rn&&(cn.isBasic(t)?b.prototype[e]=sn(e,t):b.prototype[e]=un(e,t)),t}static deregisterPlugin(e){if(e===rn)throw new Error("Cannot de-register base plugin.");on(e)&&(delete an[e],delete b.prototype[e])}static getPlugins(e=Object.keys(an)){let i;return e.forEach(e=>{var t=ln(e);t&&((i=i||{})[e]=t)}),i}static getPluginVersion(e){e=ln(e);return e&&e.VERSION||""}}function pn(e,i,s,r){{var n=i+` is deprecated and will be removed in ${e}.0; please use ${s} instead.`,a=r;let t=!1;return function(...e){return t||d.warn(n),t=!0,a.apply(this,e)}}}cn.getPlugin=ln,cn.BASE_PLUGIN_NAME=rn,cn.registerPlugin(rn,cn),b.prototype.usingPlugin=function(e){return!!this[nn]&&!0===this[nn][e]},b.prototype.hasPlugin=function(e){return!!on(e)};const mn=e=>0===e.indexOf("#")?e.slice(1):e;function T(e,t,i){let s=T.getPlayer(e);if(s)t&&d.warn(`Player "${e}" is already initialised. Options will not be applied.`),i&&s.ready(i);else{const r="string"==typeof e?$e("#"+mn(e)):e;if(!ve(r))throw new TypeError("The element or ID supplied is not valid. (videojs)");r.ownerDocument.defaultView&&r.ownerDocument.body.contains(r)||d.warn("The element supplied is not included in the DOM"),!0===(t=t||{}).restoreEl&&(t.restoreEl=(r.parentNode&&r.parentNode.hasAttribute("data-vjs-player")?r.parentNode:r).cloneNode(!0)),B("beforesetup").forEach(e=>{e=e(r,h(t));!K(e)||Array.isArray(e)?d.error("please return an object in beforesetup hooks"):t=h(t,e)});e=f.getComponent("Player");s=new e(r,t,i),B("setup").forEach(e=>e(s))}return s}T.hooks_=U,T.hooks=B,T.hook=function(e,t){B(e,t)},T.hookOnce=function(s,e){B(s,[].concat(e).map(t=>{const i=(...e)=>(F(s,i),t(...e));return i}))},T.removeHook=F,!0!==window.VIDEOJS_NO_DYNAMIC_STYLE&&_e()&&!(Mi=$e(".vjs-styles-defaults"))&&(Mi=Ze("vjs-styles-defaults"),(Or=$e("head"))&&Or.insertBefore(Mi,Or.firstChild),et(Mi,`
- .video-js {
- width: 300px;
- height: 150px;
- }
- .vjs-fluid:not(.vjs-audio-only-mode) {
- padding-top: 56.25%
- }
- `)),Qe(1,T),T.VERSION=R,T.options=b.prototype.options_,T.getPlayers=()=>b.players,T.getPlayer=e=>{var t=b.players;let i;if("string"==typeof e){var s=mn(e),r=t[s];if(r)return r;i=$e("#"+s)}else i=e;if(ve(i)){var{player:r,playerId:s}=i;if(r||t[s])return r||t[s]}},T.getAllPlayers=()=>Object.keys(b.players).map(e=>b.players[e]).filter(Boolean),T.players=b.players,T.getComponent=f.getComponent,T.registerComponent=(e,t)=>{_.isTech(t)&&d.warn(`The ${e} tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)`),f.registerComponent.call(f,e,t)},T.getTech=_.getTech,T.registerTech=_.registerTech,T.use=function(e,t){hs[e]=hs[e]||[],hs[e].push(t)},Object.defineProperty(T,"middleware",{value:{},writeable:!1,enumerable:!0}),Object.defineProperty(T.middleware,"TERMINATOR",{value:cs,writeable:!1,enumerable:!0}),T.browser=e,T.obj=J,T.mergeOptions=pn(9,"videojs.mergeOptions","videojs.obj.merge",h),T.defineLazyProperty=pn(9,"videojs.defineLazyProperty","videojs.obj.defineLazyProperty",Q),T.bind=pn(9,"videojs.bind","native Function.prototype.bind",m),T.registerPlugin=cn.registerPlugin,T.deregisterPlugin=cn.deregisterPlugin,T.plugin=(e,t)=>(d.warn("videojs.plugin() is deprecated; use videojs.registerPlugin() instead"),cn.registerPlugin(e,t)),T.getPlugins=cn.getPlugins,T.getPlugin=cn.getPlugin,T.getPluginVersion=cn.getPluginVersion,T.addLanguage=function(e,t){return e=(""+e).toLowerCase(),T.options.languages=h(T.options.languages,{[e]:t}),T.options.languages[e]},T.log=d,T.createLogger=W,T.time=qt,T.createTimeRange=pn(9,"videojs.createTimeRange","videojs.time.createTimeRanges",Rt),T.createTimeRanges=pn(9,"videojs.createTimeRanges","videojs.time.createTimeRanges",Rt),T.formatTime=pn(9,"videojs.formatTime","videojs.time.formatTime",Ht),T.setFormatTime=pn(9,"videojs.setFormatTime","videojs.time.setFormatTime",Ft),T.resetFormatTime=pn(9,"videojs.resetFormatTime","videojs.time.resetFormatTime",jt),T.parseUrl=pn(9,"videojs.parseUrl","videojs.url.parseUrl",li),T.isCrossOrigin=pn(9,"videojs.isCrossOrigin","videojs.url.isCrossOrigin",hi),T.EventTarget=ft,T.any=ht,T.on=ot,T.one=dt,T.off=p,T.trigger=lt,T.xhr=bi,T.TextTrack=Ai,T.AudioTrack=Pi,T.VideoTrack=Li,["isEl","isTextNode","createEl","hasClass","addClass","removeClass","toggleClass","setAttributes","getAttributes","emptyEl","appendContent","insertContent"].forEach(e=>{T[e]=function(){return d.warn(`videojs.${e}() is deprecated; use videojs.dom.${e}() instead`),ze[e].apply(null,arguments)}}),T.computedStyle=pn(9,"videojs.computedStyle","videojs.dom.computedStyle",Ge),T.dom=ze,T.fn=mt,T.num=pi,T.str=Lt,T.url=ci,Dt(function(e,t){
- /*! @name videojs-contrib-quality-levels @version 3.0.0 @license Apache-2.0 */
- e.exports=function(e){function t(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}var i=t(e);class s{constructor(e){let t=this;t.id=e.id;t.label=t.id;t.width=e.width;t.height=e.height;t.bitrate=e.bandwidth;t.frameRate=e.frameRate;t.enabled_=e.enabled;Object.defineProperty(t,"enabled",{get(){return t.enabled_()},set(e){t.enabled_(e)}});return t}}class n extends i["default"].EventTarget{constructor(){super();let e=this;e.levels_=[];e.selectedIndex_=-1;Object.defineProperty(e,"selectedIndex",{get(){return e.selectedIndex_}});Object.defineProperty(e,"length",{get(){return e.levels_.length}});return e}addQualityLevel(e){let t=this.getQualityLevelById(e.id);if(t)return t;const i=this.levels_.length;t=new s(e);if(!(""+i in this))Object.defineProperty(this,i,{get(){return this.levels_[i]}});this.levels_.push(t);this.trigger({qualityLevel:t,type:"addqualitylevel"});return t}removeQualityLevel(i){let s=null;for(let e=0,t=this.length;e<t;e++)if(this[e]===i){s=this.levels_.splice(e,1)[0];if(this.selectedIndex_===e)this.selectedIndex_=-1;else if(this.selectedIndex_>e)this.selectedIndex_--;break}if(s)this.trigger({qualityLevel:i,type:"removequalitylevel"});return s}getQualityLevelById(i){for(let e=0,t=this.length;e<t;e++){const s=this[e];if(s.id===i)return s}return null}dispose(){this.selectedIndex_=-1;this.levels_.length=0}}n.prototype.allowedEvents_={change:"change",addqualitylevel:"addqualitylevel",removequalitylevel:"removequalitylevel"};for(const d in n.prototype.allowedEvents_)n.prototype["on"+d]=null;var a="3.0.0";const r=i["default"].registerPlugin||i["default"].plugin,o=function(e,t){const i=e.qualityLevels;const s=new n;const r=function(){s.dispose();e.qualityLevels=i;e.off("dispose",r)};e.on("dispose",r);e.qualityLevels=()=>s;e.qualityLevels.VERSION=a;return s},l=function(e){return o(this,i["default"].mergeOptions({},e))};return r("qualityLevels",l),l.VERSION=a,l}(T)});var gn=Dt(function(e,t){var i,n,s,r,a;i=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,n=/^(?=([^\/?#]*))\1([^]*)$/,s=/(?:\/|^)\.(?=\/)/g,r=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,a={buildAbsoluteURL:function(e,t,i){if(i=i||{},e=e.trim(),!(t=t.trim())){if(!i.alwaysNormalize)return e;var s=a.parseURL(e);if(s)return s.path=a.normalizePath(s.path),a.buildURLFromParts(s);throw new Error("Error trying to parse base URL.")}s=a.parseURL(t);if(!s)throw new Error("Error trying to parse relative URL.");if(s.scheme)return i.alwaysNormalize?(s.path=a.normalizePath(s.path),a.buildURLFromParts(s)):t;t=a.parseURL(e);if(!t)throw new Error("Error trying to parse base URL.");!t.netLoc&&t.path&&"/"!==t.path[0]&&(e=n.exec(t.path),t.netLoc=e[1],t.path=e[2]),t.netLoc&&!t.path&&(t.path="/");var r,e={scheme:t.scheme,netLoc:s.netLoc,path:null,params:s.params,query:s.query,fragment:s.fragment};return s.netLoc||(e.netLoc=t.netLoc,"/"!==s.path[0]&&(s.path?(r=(r=t.path).substring(0,r.lastIndexOf("/")+1)+s.path,e.path=a.normalizePath(r)):(e.path=t.path,s.params||(e.params=t.params,s.query)||(e.query=t.query)))),null===e.path&&(e.path=i.alwaysNormalize?a.normalizePath(s.path):s.path),a.buildURLFromParts(e)},parseURL:function(e){e=i.exec(e);return e?{scheme:e[1]||"",netLoc:e[2]||"",path:e[3]||"",params:e[4]||"",query:e[5]||"",fragment:e[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(s,"");e.length!==(e=e.replace(r,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}},e.exports=a}),fn="http://example.com",Lr=function(){function e(){this.listeners={}}var t=e.prototype;return t.on=function(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)},t.off=function(e,t){return!!this.listeners[e]&&(t=this.listeners[e].indexOf(t),this.listeners[e]=this.listeners[e].slice(0),this.listeners[e].splice(t,1),-1<t)},t.trigger=function(e){var t=this.listeners[e];if(t)if(2===arguments.length)for(var i=t.length,s=0;s<i;++s)t[s].call(this,arguments[1]);else for(var r=Array.prototype.slice.call(arguments,1),n=t.length,a=0;a<n;++a)t[a].apply(this,r)},t.dispose=function(){this.listeners={}},t.pipe=function(t){this.on("data",function(e){t.push(e)})},e}();function yn(e){e=e;for(var t=window.atob?window.atob(e):Buffer.from(e,"base64").toString("binary"),i=new Uint8Array(t.length),s=0;s<t.length;s++)i[s]=t.charCodeAt(s);return i}
- /*! @name m3u8-parser @version 6.0.0 @license Apache-2.0 */class _n extends Lr{constructor(){super(),this.buffer=""}push(e){let t;for(this.buffer+=e,t=this.buffer.indexOf("\n");-1<t;t=this.buffer.indexOf("\n"))this.trigger("data",this.buffer.substring(0,t)),this.buffer=this.buffer.substring(t+1)}}function vn(e){var e=/([0-9.]*)?@?([0-9.]*)?/.exec(e||""),t={};return e[1]&&(t.length=parseInt(e[1],10)),e[2]&&(t.offset=parseInt(e[2],10)),t}function bn(t){var i={};if(t){var s,r=t.split(new RegExp('(?:^|,)((?:[^=]*)=(?:"[^"]*"|[^,]*))'));let e=r.length;for(;e--;)""!==r[e]&&((s=/([^=]*)=(.*)/.exec(r[e]).slice(1))[0]=s[0].replace(/^\s+|\s+$/g,""),s[1]=s[1].replace(/^\s+|\s+$/g,""),s[1]=s[1].replace(/^['"](.*)['"]$/g,"$1"),i[s[0]]=s[1])}return i}const Tn=String.fromCharCode(9);class Sn extends Lr{constructor(){super(),this.customParsers=[],this.tagMappers=[]}push(i){let s,r;0!==(i=i.trim()).length&&("#"!==i[0]?this.trigger("data",{type:"uri",uri:i}):this.tagMappers.reduce((e,t)=>{t=t(i);return t===i?e:e.concat([t])},[i]).forEach(t=>{for(let e=0;e<this.customParsers.length;e++)if(this.customParsers[e].call(this,t))return;var e,i;0!==t.indexOf("#EXT")?this.trigger("data",{type:"comment",text:t.slice(1)}):(t=t.replace("\r",""),(s=/^#EXTM3U/.exec(t))?this.trigger("data",{type:"tag",tagType:"m3u"}):(s=/^#EXTINF:([0-9\.]*)?,?(.*)?$/.exec(t))?(r={type:"tag",tagType:"inf"},s[1]&&(r.duration=parseFloat(s[1])),s[2]&&(r.title=s[2]),this.trigger("data",r)):(s=/^#EXT-X-TARGETDURATION:([0-9.]*)?/.exec(t))?(r={type:"tag",tagType:"targetduration"},s[1]&&(r.duration=parseInt(s[1],10)),this.trigger("data",r)):(s=/^#EXT-X-VERSION:([0-9.]*)?/.exec(t))?(r={type:"tag",tagType:"version"},s[1]&&(r.version=parseInt(s[1],10)),this.trigger("data",r)):(s=/^#EXT-X-MEDIA-SEQUENCE:(\-?[0-9.]*)?/.exec(t))?(r={type:"tag",tagType:"media-sequence"},s[1]&&(r.number=parseInt(s[1],10)),this.trigger("data",r)):(s=/^#EXT-X-DISCONTINUITY-SEQUENCE:(\-?[0-9.]*)?/.exec(t))?(r={type:"tag",tagType:"discontinuity-sequence"},s[1]&&(r.number=parseInt(s[1],10)),this.trigger("data",r)):(s=/^#EXT-X-PLAYLIST-TYPE:(.*)?$/.exec(t))?(r={type:"tag",tagType:"playlist-type"},s[1]&&(r.playlistType=s[1]),this.trigger("data",r)):(s=/^#EXT-X-BYTERANGE:(.*)?$/.exec(t))?(r=fi(vn(s[1]),{type:"tag",tagType:"byterange"}),this.trigger("data",r)):(s=/^#EXT-X-ALLOW-CACHE:(YES|NO)?/.exec(t))?(r={type:"tag",tagType:"allow-cache"},s[1]&&(r.allowed=!/NO/.test(s[1])),this.trigger("data",r)):(s=/^#EXT-X-MAP:(.*)$/.exec(t))?(r={type:"tag",tagType:"map"},s[1]&&((i=bn(s[1])).URI&&(r.uri=i.URI),i.BYTERANGE)&&(r.byterange=vn(i.BYTERANGE)),this.trigger("data",r)):(s=/^#EXT-X-STREAM-INF:(.*)$/.exec(t))?(r={type:"tag",tagType:"stream-inf"},s[1]&&(r.attributes=bn(s[1]),r.attributes.RESOLUTION&&(i={},(e=r.attributes.RESOLUTION.split("x"))[0]&&(i.width=parseInt(e[0],10)),e[1]&&(i.height=parseInt(e[1],10)),r.attributes.RESOLUTION=i),r.attributes.BANDWIDTH&&(r.attributes.BANDWIDTH=parseInt(r.attributes.BANDWIDTH,10)),r.attributes["FRAME-RATE"]&&(r.attributes["FRAME-RATE"]=parseFloat(r.attributes["FRAME-RATE"])),r.attributes["PROGRAM-ID"])&&(r.attributes["PROGRAM-ID"]=parseInt(r.attributes["PROGRAM-ID"],10)),this.trigger("data",r)):(s=/^#EXT-X-MEDIA:(.*)$/.exec(t))?(r={type:"tag",tagType:"media"},s[1]&&(r.attributes=bn(s[1])),this.trigger("data",r)):(s=/^#EXT-X-ENDLIST/.exec(t))?this.trigger("data",{type:"tag",tagType:"endlist"}):(s=/^#EXT-X-DISCONTINUITY/.exec(t))?this.trigger("data",{type:"tag",tagType:"discontinuity"}):(s=/^#EXT-X-PROGRAM-DATE-TIME:(.*)$/.exec(t))?(r={type:"tag",tagType:"program-date-time"},s[1]&&(r.dateTimeString=s[1],r.dateTimeObject=new Date(s[1])),this.trigger("data",r)):(s=/^#EXT-X-KEY:(.*)$/.exec(t))?(r={type:"tag",tagType:"key"},s[1]&&(r.attributes=bn(s[1]),r.attributes.IV)&&("0x"===r.attributes.IV.substring(0,2).toLowerCase()&&(r.attributes.IV=r.attributes.IV.substring(2)),r.attributes.IV=r.attributes.IV.match(/.{8}/g),r.attributes.IV[0]=parseInt(r.attributes.IV[0],16),r.attributes.IV[1]=parseInt(r.attributes.IV[1],16),r.attributes.IV[2]=parseInt(r.attributes.IV[2],16),r.attributes.IV[3]=parseInt(r.attributes.IV[3],16),r.attributes.IV=new Uint32Array(r.attributes.IV)),this.trigger("data",r)):(s=/^#EXT-X-START:(.*)$/.exec(t))?(r={type:"tag",tagType:"start"},s[1]&&(r.attributes=bn(s[1]),r.attributes["TIME-OFFSET"]=parseFloat(r.attributes["TIME-OFFSET"]),r.attributes.PRECISE=/YES/.test(r.attributes.PRECISE)),this.trigger("data",r)):(s=/^#EXT-X-CUE-OUT-CONT:(.*)?$/.exec(t))?(r={type:"tag",tagType:"cue-out-cont"},s[1]?r.data=s[1]:r.data="",this.trigger("data",r)):(s=/^#EXT-X-CUE-OUT:(.*)?$/.exec(t))?(r={type:"tag",tagType:"cue-out"},s[1]?r.data=s[1]:r.data="",this.trigger("data",r)):(s=/^#EXT-X-CUE-IN:(.*)?$/.exec(t))?(r={type:"tag",tagType:"cue-in"},s[1]?r.data=s[1]:r.data="",this.trigger("data",r)):(s=/^#EXT-X-SKIP:(.*)$/.exec(t))&&s[1]?((r={type:"tag",tagType:"skip"}).attributes=bn(s[1]),r.attributes.hasOwnProperty("SKIPPED-SEGMENTS")&&(r.attributes["SKIPPED-SEGMENTS"]=parseInt(r.attributes["SKIPPED-SEGMENTS"],10)),r.attributes.hasOwnProperty("RECENTLY-REMOVED-DATERANGES")&&(r.attributes["RECENTLY-REMOVED-DATERANGES"]=r.attributes["RECENTLY-REMOVED-DATERANGES"].split(Tn)),this.trigger("data",r)):(s=/^#EXT-X-PART:(.*)$/.exec(t))&&s[1]?((r={type:"tag",tagType:"part"}).attributes=bn(s[1]),["DURATION"].forEach(function(e){r.attributes.hasOwnProperty(e)&&(r.attributes[e]=parseFloat(r.attributes[e]))}),["INDEPENDENT","GAP"].forEach(function(e){r.attributes.hasOwnProperty(e)&&(r.attributes[e]=/YES/.test(r.attributes[e]))}),r.attributes.hasOwnProperty("BYTERANGE")&&(r.attributes.byterange=vn(r.attributes.BYTERANGE)),this.trigger("data",r)):(s=/^#EXT-X-SERVER-CONTROL:(.*)$/.exec(t))&&s[1]?((r={type:"tag",tagType:"server-control"}).attributes=bn(s[1]),["CAN-SKIP-UNTIL","PART-HOLD-BACK","HOLD-BACK"].forEach(function(e){r.attributes.hasOwnProperty(e)&&(r.attributes[e]=parseFloat(r.attributes[e]))}),["CAN-SKIP-DATERANGES","CAN-BLOCK-RELOAD"].forEach(function(e){r.attributes.hasOwnProperty(e)&&(r.attributes[e]=/YES/.test(r.attributes[e]))}),this.trigger("data",r)):(s=/^#EXT-X-PART-INF:(.*)$/.exec(t))&&s[1]?((r={type:"tag",tagType:"part-inf"}).attributes=bn(s[1]),["PART-TARGET"].forEach(function(e){r.attributes.hasOwnProperty(e)&&(r.attributes[e]=parseFloat(r.attributes[e]))}),this.trigger("data",r)):(s=/^#EXT-X-PRELOAD-HINT:(.*)$/.exec(t))&&s[1]?((r={type:"tag",tagType:"preload-hint"}).attributes=bn(s[1]),["BYTERANGE-START","BYTERANGE-LENGTH"].forEach(function(e){var t;r.attributes.hasOwnProperty(e)&&(r.attributes[e]=parseInt(r.attributes[e],10),t="BYTERANGE-LENGTH"===e?"length":"offset",r.attributes.byterange=r.attributes.byterange||{},r.attributes.byterange[t]=r.attributes[e],delete r.attributes[e])}),this.trigger("data",r)):(s=/^#EXT-X-RENDITION-REPORT:(.*)$/.exec(t))&&s[1]?((r={type:"tag",tagType:"rendition-report"}).attributes=bn(s[1]),["LAST-MSN","LAST-PART"].forEach(function(e){r.attributes.hasOwnProperty(e)&&(r.attributes[e]=parseInt(r.attributes[e],10))}),this.trigger("data",r)):this.trigger("data",{type:"tag",data:t.slice(4)}))}))}addParser({expression:t,customType:i,dataParser:s,segment:r}){"function"!=typeof s&&(s=e=>e),this.customParsers.push(e=>{if(t.exec(e))return this.trigger("data",{type:"custom",data:s(e),customType:i,segment:r}),!0})}addTagMapper({expression:t,map:i}){this.tagMappers.push(e=>t.test(e)?i(e):e)}}function wn(t){const i={};return Object.keys(t).forEach(function(e){i[e.toLowerCase().replace(/-(\w)/g,e=>e[1].toUpperCase())]=t[e]}),i}function En(e){var t,i,s,r,n,{serverControl:e,targetDuration:a,partTargetDuration:o}=e;e&&(t="#EXT-X-SERVER-CONTROL",i="holdBack",s="partHoldBack",r=a&&3*a,n=o&&2*o,a&&!e.hasOwnProperty(i)&&(e[i]=r,this.trigger("info",{message:t+` defaulting HOLD-BACK to targetDuration * 3 (${r}).`})),r&&e[i]<r&&(this.trigger("warn",{message:t+` clamping HOLD-BACK (${e[i]}) to targetDuration * 3 (${r})`}),e[i]=r),o&&!e.hasOwnProperty(s)&&(e[s]=3*o,this.trigger("info",{message:t+` defaulting PART-HOLD-BACK to partTargetDuration * 3 (${e[s]}).`})),o)&&e[s]<n&&(this.trigger("warn",{message:t+` clamping PART-HOLD-BACK (${e[s]}) to partTargetDuration * 2 (${n}).`}),e[s]=n)}class kn extends Lr{constructor(){super(),this.lineStream=new _n,this.parseStream=new Sn,this.lineStream.pipe(this.parseStream);const e=this,s=[];let a={},r,o,l=!1;const d={AUDIO:{},VIDEO:{},"CLOSED-CAPTIONS":{},SUBTITLES:{}};let h=0,u=(this.manifest={allowCache:!0,discontinuityStarts:[],segments:[]},0),c=0;this.on("end",()=>{a.uri||!a.parts&&!a.preloadHints||(!a.map&&r&&(a.map=r),!a.key&&o&&(a.key=o),a.timeline||"number"!=typeof h||(a.timeline=h),this.manifest.preloadSegment=a)}),this.parseStream.on("data",function(n){let t,i;({tag(){({version(){n.version&&(this.manifest.version=n.version)},"allow-cache"(){this.manifest.allowCache=n.allowed,"allowed"in n||(this.trigger("info",{message:"defaulting allowCache to YES"}),this.manifest.allowCache=!0)},byterange(){var e={};"length"in n&&((a.byterange=e).length=n.length,"offset"in n||(n.offset=u)),"offset"in n&&((a.byterange=e).offset=n.offset),u=e.offset+e.length},endlist(){this.manifest.endList=!0},inf(){"mediaSequence"in this.manifest||(this.manifest.mediaSequence=0,this.trigger("info",{message:"defaulting media sequence to zero"})),"discontinuitySequence"in this.manifest||(this.manifest.discontinuitySequence=0,this.trigger("info",{message:"defaulting discontinuity sequence to zero"})),0<n.duration&&(a.duration=n.duration),0===n.duration&&(a.duration=.01,this.trigger("info",{message:"updating zero segment duration to a small value"})),this.manifest.segments=s},key(){if(n.attributes)if("NONE"===n.attributes.METHOD)o=null;else if(n.attributes.URI)if("com.apple.streamingkeydelivery"===n.attributes.KEYFORMAT)this.manifest.contentProtection=this.manifest.contentProtection||{},this.manifest.contentProtection["com.apple.fps.1_0"]={attributes:n.attributes};else if("com.microsoft.playready"===n.attributes.KEYFORMAT)this.manifest.contentProtection=this.manifest.contentProtection||{},this.manifest.contentProtection["com.microsoft.playready"]={uri:n.attributes.URI};else{if("urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"===n.attributes.KEYFORMAT)return-1===["SAMPLE-AES","SAMPLE-AES-CTR","SAMPLE-AES-CENC"].indexOf(n.attributes.METHOD)?void this.trigger("warn",{message:"invalid key method provided for Widevine"}):("SAMPLE-AES-CENC"===n.attributes.METHOD&&this.trigger("warn",{message:"SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead"}),"data:text/plain;base64,"!==n.attributes.URI.substring(0,23)?void this.trigger("warn",{message:"invalid key URI provided for Widevine"}):n.attributes.KEYID&&"0x"===n.attributes.KEYID.substring(0,2)?(this.manifest.contentProtection=this.manifest.contentProtection||{},void(this.manifest.contentProtection["com.widevine.alpha"]={attributes:{schemeIdUri:n.attributes.KEYFORMAT,keyId:n.attributes.KEYID.substring(2)},pssh:yn(n.attributes.URI.split(",")[1])})):void this.trigger("warn",{message:"invalid key ID provided for Widevine"}));n.attributes.METHOD||this.trigger("warn",{message:"defaulting key method to AES-128"}),o={method:n.attributes.METHOD||"AES-128",uri:n.attributes.URI},"undefined"!=typeof n.attributes.IV&&(o.iv=n.attributes.IV)}else this.trigger("warn",{message:"ignoring key declaration without URI"});else this.trigger("warn",{message:"ignoring key declaration without attribute list"})},"media-sequence"(){isFinite(n.number)?this.manifest.mediaSequence=n.number:this.trigger("warn",{message:"ignoring invalid media sequence: "+n.number})},"discontinuity-sequence"(){isFinite(n.number)?(this.manifest.discontinuitySequence=n.number,h=n.number):this.trigger("warn",{message:"ignoring invalid discontinuity sequence: "+n.number})},"playlist-type"(){/VOD|EVENT/.test(n.playlistType)?this.manifest.playlistType=n.playlistType:this.trigger("warn",{message:"ignoring unknown playlist type: "+n.playlist})},map(){r={},n.uri&&(r.uri=n.uri),n.byterange&&(r.byterange=n.byterange),o&&(r.key=o)},"stream-inf"(){this.manifest.playlists=s,this.manifest.mediaGroups=this.manifest.mediaGroups||d,n.attributes?(a.attributes||(a.attributes={}),fi(a.attributes,n.attributes)):this.trigger("warn",{message:"ignoring empty stream-inf attributes"})},media(){var e;this.manifest.mediaGroups=this.manifest.mediaGroups||d,n.attributes&&n.attributes.TYPE&&n.attributes["GROUP-ID"]&&n.attributes.NAME?((e=this.manifest.mediaGroups[n.attributes.TYPE])[n.attributes["GROUP-ID"]]=e[n.attributes["GROUP-ID"]]||{},t=e[n.attributes["GROUP-ID"]],(i={default:/yes/i.test(n.attributes.DEFAULT)}).default?i.autoselect=!0:i.autoselect=/yes/i.test(n.attributes.AUTOSELECT),n.attributes.LANGUAGE&&(i.language=n.attributes.LANGUAGE),n.attributes.URI&&(i.uri=n.attributes.URI),n.attributes["INSTREAM-ID"]&&(i.instreamId=n.attributes["INSTREAM-ID"]),n.attributes.CHARACTERISTICS&&(i.characteristics=n.attributes.CHARACTERISTICS),n.attributes.FORCED&&(i.forced=/yes/i.test(n.attributes.FORCED)),t[n.attributes.NAME]=i):this.trigger("warn",{message:"ignoring incomplete or missing media group"})},discontinuity(){h+=1,a.discontinuity=!0,this.manifest.discontinuityStarts.push(s.length)},"program-date-time"(){"undefined"==typeof this.manifest.dateTimeString&&(this.manifest.dateTimeString=n.dateTimeString,this.manifest.dateTimeObject=n.dateTimeObject),a.dateTimeString=n.dateTimeString,a.dateTimeObject=n.dateTimeObject},targetduration(){!isFinite(n.duration)||n.duration<0?this.trigger("warn",{message:"ignoring invalid target duration: "+n.duration}):(this.manifest.targetDuration=n.duration,En.call(this,this.manifest))},start(){!n.attributes||isNaN(n.attributes["TIME-OFFSET"])?this.trigger("warn",{message:"ignoring start declaration without appropriate attribute list"}):this.manifest.start={timeOffset:n.attributes["TIME-OFFSET"],precise:n.attributes.PRECISE}},"cue-out"(){a.cueOut=n.data},"cue-out-cont"(){a.cueOutCont=n.data},"cue-in"(){a.cueIn=n.data},skip(){this.manifest.skip=wn(n.attributes),this.warnOnMissingAttributes_("#EXT-X-SKIP",n.attributes,["SKIPPED-SEGMENTS"])},part(){l=!0;var e=this.manifest.segments.length,t=wn(n.attributes),t=(a.parts=a.parts||[],a.parts.push(t),t.byterange&&(t.byterange.hasOwnProperty("offset")||(t.byterange.offset=c),c=t.byterange.offset+t.byterange.length),a.parts.length-1);this.warnOnMissingAttributes_(`#EXT-X-PART #${t} for segment #`+e,n.attributes,["URI","DURATION"]),this.manifest.renditionReports&&this.manifest.renditionReports.forEach((e,t)=>{e.hasOwnProperty("lastPart")||this.trigger("warn",{message:`#EXT-X-RENDITION-REPORT #${t} lacks required attribute(s): LAST-PART`})})},"server-control"(){var e=this.manifest.serverControl=wn(n.attributes);e.hasOwnProperty("canBlockReload")||(e.canBlockReload=!1,this.trigger("info",{message:"#EXT-X-SERVER-CONTROL defaulting CAN-BLOCK-RELOAD to false"})),En.call(this,this.manifest),e.canSkipDateranges&&!e.hasOwnProperty("canSkipUntil")&&this.trigger("warn",{message:"#EXT-X-SERVER-CONTROL lacks required attribute CAN-SKIP-UNTIL which is required when CAN-SKIP-DATERANGES is set"})},"preload-hint"(){var t=this.manifest.segments.length,i=wn(n.attributes),e=i.type&&"PART"===i.type,s=(a.preloadHints=a.preloadHints||[],a.preloadHints.push(i),!i.byterange||i.byterange.hasOwnProperty("offset")||(i.byterange.offset=e?c:0,e&&(c=i.byterange.offset+i.byterange.length)),a.preloadHints.length-1);if(this.warnOnMissingAttributes_(`#EXT-X-PRELOAD-HINT #${s} for segment #`+t,n.attributes,["TYPE","URI"]),i.type)for(let e=0;e<a.preloadHints.length-1;e++){var r=a.preloadHints[e];r.type&&r.type===i.type&&this.trigger("warn",{message:`#EXT-X-PRELOAD-HINT #${s} for segment #${t} has the same TYPE ${i.type} as preload hint #`+e})}},"rendition-report"(){var e=wn(n.attributes),e=(this.manifest.renditionReports=this.manifest.renditionReports||[],this.manifest.renditionReports.push(e),this.manifest.renditionReports.length-1),t=["LAST-MSN","URI"];l&&t.push("LAST-PART"),this.warnOnMissingAttributes_("#EXT-X-RENDITION-REPORT #"+e,n.attributes,t)},"part-inf"(){this.manifest.partInf=wn(n.attributes),this.warnOnMissingAttributes_("#EXT-X-PART-INF",n.attributes,["PART-TARGET"]),this.manifest.partInf.partTarget&&(this.manifest.partTargetDuration=this.manifest.partInf.partTarget),En.call(this,this.manifest)}}[n.tagType]||function(){}).call(e)},uri(){a.uri=n.uri,s.push(a),!this.manifest.targetDuration||"duration"in a||(this.trigger("warn",{message:"defaulting segment duration to the target duration"}),a.duration=this.manifest.targetDuration),o&&(a.key=o),a.timeline=h,r&&(a.map=r),c=0,a={}},comment(){},custom(){n.segment?(a.custom=a.custom||{},a.custom[n.customType]=n.data):(this.manifest.custom=this.manifest.custom||{},this.manifest.custom[n.customType]=n.data)}})[n.type].call(e)})}warnOnMissingAttributes_(e,t,i){const s=[];i.forEach(function(e){t.hasOwnProperty(e)||s.push(e)}),s.length&&this.trigger("warn",{message:e+" lacks required attribute(s): "+s.join(", ")})}push(e){this.lineStream.push(e)}end(){this.lineStream.push("\n"),this.trigger("end")}addParser(e){this.parseStream.addParser(e)}addTagMapper(e){this.parseStream.addTagMapper(e)}}function Cn(e){return Dn.audio.test((e=void 0===e?"":e).trim().toLowerCase())}function In(e){return void 0===e&&(e=""),window.MediaSource&&window.MediaSource.isTypeSupported&&window.MediaSource.isTypeSupported(Bn(e))||!1}function xn(e){return(e=void 0===e?"":e).toLowerCase().split(",").every(function(e){e=e.trim();for(var t=0;t<Mn.length;t++){var i=Mn[t];if(Dn["muxer"+i].test(e))return!0}return!1})}function An(e){return jn.test(e)?"hls":Hn.test(e)?"dash":"application/vnd.videojs.vhs+json"===e?"vhs-json":null}function Pn(e,t){for(var i=void 0!==(t=(void 0===t?{}:t).le)&&t,s=(e=w(e="bigint"!=typeof e&&"number"!=typeof e||"number"==typeof e&&e!=e?0:e),t=e,Math.ceil(t.toString(2).length/8)),r=new Uint8Array(new ArrayBuffer(s)),n=0;n<s;n++){var a=i?n:Math.abs(n+1-r.length);r[a]=Number(e/Vn[n]&w(255)),e<0&&(r[a]=Math.abs(~r[a]),r[a]-=0===n?1:2)}return r}function Ln(e,t){if("string"!=typeof(e="string"!=typeof e&&e&&"function"==typeof e.toString?e.toString():e))return new Uint8Array;t||(e=unescape(encodeURIComponent(e)));for(var i=new Uint8Array(e.length),s=0;s<e.length;s++)i[s]=e.charCodeAt(s);return i}function On(e,t){if(/^[a-z]+:/i.test(t))return t;/^data:/.test(e)&&(e=window.location&&window.location.href||"");var i="function"==typeof window.URL,s=/^\/\//.test(e),r=!window.location&&!/\/\//i.test(e);return i?e=new window.URL(e,window.location||Wn):/\/\//i.test(e)||(e=gn.buildAbsoluteURL(window.location&&window.location.href||"",e)),i?(i=new URL(t,e),r?i.href.slice(Wn.length):s?i.href.slice(i.protocol.length):i.href):gn.buildAbsoluteURL(e,t)}var Dn={mp4:/^(av0?1|avc0?[1234]|vp0?9|flac|opus|mp3|mp4a|mp4v|stpp.ttml.im1t)/,webm:/^(vp0?[89]|av0?1|opus|vorbis)/,ogg:/^(vp0?[89]|theora|flac|opus|vorbis)/,video:/^(av0?1|avc0?[1234]|vp0?[89]|hvc1|hev1|theora|mp4v)/,audio:/^(mp4a|flac|vorbis|opus|ac-[34]|ec-3|alac|mp3|speex|aac)/,text:/^(stpp.ttml.im1t)/,muxerVideo:/^(avc0?1)/,muxerAudio:/^(mp4a)/,muxerText:/a^/},Nn=["video","audio","text"],Mn=["Video","Audio","Text"],Rn=function(e){return e&&e.replace(/avc1\.(\d+)\.(\d+)/i,function(e,t,i){return"avc1."+("00"+Number(t).toString(16)).slice(-2)+"00"+("00"+Number(i).toString(16)).slice(-2)})},Un=function(e){var e=(e=void 0===e?"":e).split(","),n=[];return e.forEach(function(s){var r;s=s.trim(),Nn.forEach(function(e){var t,i=Dn[e].exec(s.toLowerCase());!i||i.length<=1||(r=e,i=s.substring(0,i[1].length),t=s.replace(i,""),n.push({type:i,details:t,mediaType:e}))}),r||n.push({type:s,details:"",mediaType:"unknown"})}),n},Bn=function(e){var t,i,s;if(e&&"string"==typeof e)return i="video",1===(t=e.toLowerCase().split(",").map(function(e){return Rn(e.trim())})).length&&Cn(t[0])?i="audio":1===t.length&&(s=t[0],Dn.text.test((s=void 0===s?"":s).trim().toLowerCase()))&&(i="application"),s="mp4",t.every(function(e){return Dn.mp4.test(e)})?s="mp4":t.every(function(e){return Dn.webm.test(e)})?s="webm":t.every(function(e){return Dn.ogg.test(e)})&&(s="ogg"),i+"/"+s+';codecs="'+e+'"'},Fn="mp4a.40.2",jn=/^(audio|video|application)\/(x-|vnd\.apple\.)?mpegurl/i,Hn=/^application\/dash\+xml/i,qn=function(e){return"function"===ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer},S=function(e){return e instanceof Uint8Array?e:(Array.isArray(e)||qn(e)||e instanceof ArrayBuffer||(e="number"!=typeof e||"number"==typeof e&&e!=e?0:[e]),new Uint8Array(e&&e.buffer||e,e&&e.byteOffset||0,e&&e.byteLength||0))},w=window.BigInt||Number,Vn=[w("0x1"),w("0x100"),w("0x10000"),w("0x1000000"),w("0x100000000"),w("0x10000000000"),w("0x1000000000000"),w("0x100000000000000"),w("0x10000000000000000")],$n=(Ot=new Uint16Array([65484]),255!==(Ot=new Uint8Array(Ot.buffer,Ot.byteOffset,Ot.byteLength))[0]&&Ot[0],function(s,e){var e=void 0===e?{}:e,t=e.signed,t=void 0!==t&&t,e=e.le,r=void 0!==e&&e,e=(s=S(s),r?"reduce":"reduceRight"),e=(s[e]||Array.prototype[e]).call(s,function(e,t,i){i=r?i:Math.abs(i+1-s.length);return e+w(t)*Vn[i]},w(0));return t&&(t=Vn[s.length]/w(2)-w(1))<(e=w(e))&&(e=(e=e-t-t)-w(2)),Number(e)}),E=function(i,e,t){var t=void 0===t?{}:t,s=t.offset,r=void 0===s?0:s,s=t.mask,n=void 0===s?[]:s,t=(i=S(i),(e=S(e)).every||Array.prototype.every);return e.length&&i.length-r>=e.length&&t.call(e,function(e,t){return e===(n[t]?n[t]&i[r+t]:i[r+t])})},Wn="http://example.com";function Gn(e){e=e;for(var t=window.atob?window.atob(e):Buffer.from(e,"base64").toString("binary"),i=new Uint8Array(t.length),s=0;s<t.length;s++)i[s]=t.charCodeAt(s);return i}function zn(e,t){return(t=void 0===t?Object:t)&&"function"==typeof t.freeze?t.freeze(e):e}var Xn=zn({HTML:"text/html",isHTML:function(e){return e===Xn.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),Kn=zn({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===Kn.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"}),Yn={assign:function(e,t){if(null===e||"object"!=typeof e)throw new TypeError("target is not an object");for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},find:function(e,t,i){if(void 0===i&&(i=Array.prototype),e&&"function"==typeof i.find)return i.find.call(e,t);for(var s=0;s<e.length;s++)if(Object.prototype.hasOwnProperty.call(e,s)){var r=e[s];if(t.call(void 0,r,s,e))return r}},freeze:zn,MIME_TYPE:Xn,NAMESPACE:Kn},Qn=Yn.find,Jn=Yn.NAMESPACE;function Zn(e){return""!==e}function ea(e,t){return e.hasOwnProperty(t)||(e[t]=!0),e}function ta(e){return e?(e=(e=e)?e.split(/[\t\n\f\r ]+/).filter(Zn):[],Object.keys(e.reduce(ea,{}))):[]}function ia(e,t){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}function sa(e,t){var i=e.prototype;function s(){}i instanceof t||(s.prototype=t.prototype,ia(i,s=new s),e.prototype=i=s),i.constructor!=e&&(i.constructor=e)}var n={},t=(n.ELEMENT_NODE=1,n.ATTRIBUTE_NODE=2,n.TEXT_NODE=3,n.CDATA_SECTION_NODE=4,n.ENTITY_REFERENCE_NODE=5,n.ENTITY_NODE=6,n.PROCESSING_INSTRUCTION_NODE=7,n.COMMENT_NODE=8,n.DOCUMENT_NODE=9,n.DOCUMENT_TYPE_NODE=10,n.DOCUMENT_FRAGMENT_NODE=11,n.NOTATION_NODE=12,{}),k={},ra=(t.INDEX_SIZE_ERR=(k[1]="Index size error",1),t.DOMSTRING_SIZE_ERR=(k[2]="DOMString size error",2),t.HIERARCHY_REQUEST_ERR=(k[3]="Hierarchy request error",3)),na=(t.WRONG_DOCUMENT_ERR=(k[4]="Wrong document",4),t.INVALID_CHARACTER_ERR=(k[5]="Invalid character",5),t.NO_DATA_ALLOWED_ERR=(k[6]="No data allowed",6),t.NO_MODIFICATION_ALLOWED_ERR=(k[7]="No modification allowed",7),t.NOT_FOUND_ERR=(k[8]="Not found",8));t.NOT_SUPPORTED_ERR=(k[9]="Not supported",9),t.INUSE_ATTRIBUTE_ERR=(k[10]="Attribute in use",10);function C(e,t){var i;return t instanceof Error?i=t:(i=this,Error.call(this,k[e]),this.message=k[e],Error.captureStackTrace&&Error.captureStackTrace(this,C)),i.code=e,t&&(this.message=this.message+": "+t),i}function aa(){}function oa(e,t){this._node=e,this._refresh=t,la(this)}function la(e){var t,i=e._node._inc||e._node.ownerDocument._inc;e._inc!=i&&(t=e._refresh(e._node),Ga(e,"length",t.length),ia(t,e),e._inc=i)}function da(){}function ha(e,t){for(var i=e.length;i--;)if(e[i]===t)return i}function ua(e,t,i,s){s?t[ha(t,s)]=i:t[t.length++]=i,e&&(t=(i.ownerElement=e).ownerDocument)&&(s&&ya(t,e,s),s=e,e=i,(i=t)&&i._inc++,e.namespaceURI===Jn.XMLNS)&&(s._nsMap[e.prefix?e.localName:""]=e.value)}function ca(e,t,i){var s=ha(t,i);if(!(0<=s))throw new C(na,new Error(e.tagName+"@"+i));for(var r,n=t.length-1;s<n;)t[s]=t[++s];t.length=n,e&&(r=e.ownerDocument)&&(ya(r,e,i),i.ownerElement=null)}function pa(){}function I(){}function ma(e){return("<"==e?"<":">"==e&&">")||("&"==e?"&":'"'==e&&""")||"&#"+e.charCodeAt()+";"}function ga(e,t){if(t(e))return 1;if(e=e.firstChild)do{if(ga(e,t))return 1}while(e=e.nextSibling)}function fa(){this.ownerDocument=this}function ya(e,t,i){e&&e._inc++,i.namespaceURI===Jn.XMLNS&&delete t._nsMap[i.prefix?i.localName:""]}function _a(e,t,i){if(e&&e._inc){e._inc++;var s=t.childNodes;if(i)s[s.length++]=i;else{for(var r=t.firstChild,n=0;r;)r=(s[n++]=r).nextSibling;s.length=n,delete s[s.length]}}}function va(e,t){var i=t.previousSibling,s=t.nextSibling;return i?i.nextSibling=s:e.firstChild=s,s?s.previousSibling=i:e.lastChild=i,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,_a(e.ownerDocument,e),t}function ba(e){return e&&e.nodeType===I.DOCUMENT_TYPE_NODE}function Ta(e){return e&&e.nodeType===I.ELEMENT_NODE}function Sa(e){return e&&e.nodeType===I.TEXT_NODE}function wa(e,t){var i,e=e.childNodes||[];if(!Qn(e,Ta)&&!ba(t))return i=Qn(e,ba),!(t&&i&&e.indexOf(i)>e.indexOf(t))}function Ea(e,t){var i,e=e.childNodes||[];if(!Qn(e,function(e){return Ta(e)&&e!==t}))return i=Qn(e,ba),!(t&&i&&e.indexOf(i)>e.indexOf(t))}function ka(e,t,i){if(!(s=e)||s.nodeType!==I.DOCUMENT_NODE&&s.nodeType!==I.DOCUMENT_FRAGMENT_NODE&&s.nodeType!==I.ELEMENT_NODE)throw new C(ra,"Unexpected parent node type "+e.nodeType);var s;if(i&&i.parentNode!==e)throw new C(na,"child not in parent");if(!(s=t)||!(Ta(s)||Sa(s)||ba(s)||s.nodeType===I.DOCUMENT_FRAGMENT_NODE||s.nodeType===I.COMMENT_NODE||s.nodeType===I.PROCESSING_INSTRUCTION_NODE)||ba(t)&&e.nodeType!==I.DOCUMENT_NODE)throw new C(ra,"Unexpected node type "+t.nodeType+" for parent node type "+e.nodeType)}function Ca(e,t,i){var s=e.childNodes||[],r=t.childNodes||[];if(t.nodeType===I.DOCUMENT_FRAGMENT_NODE){var n=r.filter(Ta);if(1<n.length||Qn(r,Sa))throw new C(ra,"More than one element or text in fragment");if(1===n.length&&!wa(e,i))throw new C(ra,"Element in fragment can not be inserted before doctype")}if(Ta(t)&&!wa(e,i))throw new C(ra,"Only one element can be added and only after doctype");if(ba(t)){if(Qn(s,ba))throw new C(ra,"Only one doctype is allowed");r=Qn(s,Ta);if(i&&s.indexOf(r)<s.indexOf(i))throw new C(ra,"Doctype can only be inserted before an element");if(!i&&r)throw new C(ra,"Doctype can not be appended since element is present")}}function Ia(e,t,i){var s=e.childNodes||[],r=t.childNodes||[];if(t.nodeType===I.DOCUMENT_FRAGMENT_NODE){var n=r.filter(Ta);if(1<n.length||Qn(r,Sa))throw new C(ra,"More than one element or text in fragment");if(1===n.length&&!Ea(e,i))throw new C(ra,"Element in fragment can not be inserted before doctype")}if(Ta(t)&&!Ea(e,i))throw new C(ra,"Only one element can be added and only after doctype");if(ba(t)){if(Qn(s,function(e){return ba(e)&&e!==i}))throw new C(ra,"Only one doctype is allowed");r=Qn(s,Ta);if(i&&s.indexOf(r)<s.indexOf(i))throw new C(ra,"Doctype can only be inserted before an element")}}function xa(e,t,i,s){ka(e,t,i),e.nodeType===I.DOCUMENT_NODE&&(s||Ca)(e,t,i);s=t.parentNode;if(s&&s.removeChild(t),11===t.nodeType){var r=t.firstChild;if(null==r)return t;var n=t.lastChild}else r=n=t;s=i?i.previousSibling:e.lastChild;for(r.previousSibling=s,n.nextSibling=i,s?s.nextSibling=r:e.firstChild=r,null==i?e.lastChild=n:i.previousSibling=n;r.parentNode=e,r!==n&&(r=r.nextSibling););return _a(e.ownerDocument||e,e),11==t.nodeType&&(t.firstChild=t.lastChild=null),t}function Aa(){this._nsMap={}}function Pa(){}function La(){}function Oa(){}function Da(){}function Na(){}function Ma(){}function Ra(){}function Ua(){}function Ba(){}function Fa(){}function ja(){}function Ha(){}function qa(e,t){var i,s=[],r=9==this.nodeType&&this.documentElement||this,n=r.prefix,a=r.namespaceURI;return Wa(this,s,e,t,i=a&&null==n&&null==r.lookupPrefix(a)?[{namespace:a,prefix:null}]:i),s.join("")}function Va(e,t,i){var s=e.prefix||"",r=e.namespaceURI;if(r&&("xml"!==s||r!==Jn.XML)&&r!==Jn.XMLNS){for(var n=i.length;n--;){var a=i[n];if(a.prefix===s)return a.namespace!==r}return 1}}function $a(e,t,i){e.push(" ",t,'="',i.replace(/[<>&"\t\n\r]/g,ma),'"')}function Wa(e,t,i,s,r){if(r=r||[],s){if(!(e=s(e)))return;if("string"==typeof e)return void t.push(e)}switch(e.nodeType){case 1:var n=e.attributes,a=n.length,o=e.firstChild,l=e.tagName,d=l;if(!(i=Jn.isHTML(e.namespaceURI)||i)&&!e.prefix&&e.namespaceURI){for(var h,u=0;u<n.length;u++)if("xmlns"===n.item(u).name){h=n.item(u).value;break}if(!h)for(var c=r.length-1;0<=c;c--)if(""===(p=r[c]).prefix&&p.namespace===e.namespaceURI){h=p.namespace;break}if(h!==e.namespaceURI)for(var p,c=r.length-1;0<=c;c--)if((p=r[c]).namespace===e.namespaceURI){p.prefix&&(d=p.prefix+":"+l);break}}t.push("<",d);for(var m=0;m<a;m++)"xmlns"==(g=n.item(m)).prefix?r.push({prefix:g.localName,namespace:g.value}):"xmlns"==g.nodeName&&r.push({prefix:"",namespace:g.value});for(var g,f,y,m=0;m<a;m++)Va(g=n.item(m),0,r)&&($a(t,(f=g.prefix||"")?"xmlns:"+f:"xmlns",y=g.namespaceURI),r.push({prefix:f,namespace:y})),Wa(g,t,i,s,r);if(l===d&&Va(e,0,r)&&($a(t,(f=e.prefix||"")?"xmlns:"+f:"xmlns",y=e.namespaceURI),r.push({prefix:f,namespace:y})),o||i&&!/^(?:meta|link|img|br|hr|input)$/i.test(l)){if(t.push(">"),i&&/^script$/i.test(l))for(;o;)o.data?t.push(o.data):Wa(o,t,i,s,r.slice()),o=o.nextSibling;else for(;o;)Wa(o,t,i,s,r.slice()),o=o.nextSibling;t.push("</",d,">")}else t.push("/>");return;case 9:case 11:for(o=e.firstChild;o;)Wa(o,t,i,s,r.slice()),o=o.nextSibling;return;case 2:return $a(t,e.name,e.value);case 3:return t.push(e.data.replace(/[<&>]/g,ma));case 4:return t.push("<![CDATA[",e.data,"]]>");case 8:return t.push("\x3c!--",e.data,"--\x3e");case 10:var _=e.publicId,v=e.systemId;return t.push("<!DOCTYPE ",e.name),void(_?(t.push(" PUBLIC ",_),v&&"."!=v&&t.push(" ",v),t.push(">")):v&&"."!=v?t.push(" SYSTEM ",v,">"):((_=e.internalSubset)&&t.push(" [",_,"]"),t.push(">")));case 7:return t.push("<?",e.target," ",e.data,"?>");case 5:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName)}}function Ga(e,t,i){e[t]=i}t.INVALID_STATE_ERR=(k[11]="Invalid state",11),t.SYNTAX_ERR=(k[12]="Syntax error",12),t.INVALID_MODIFICATION_ERR=(k[13]="Invalid modification",13),t.NAMESPACE_ERR=(k[14]="Invalid namespace",14),t.INVALID_ACCESS_ERR=(k[15]="Invalid access",15),C.prototype=Error.prototype,ia(t,C),aa.prototype={length:0,item:function(e){return this[e]||null},toString:function(e,t){for(var i=[],s=0;s<this.length;s++)Wa(this[s],i,e,t);return i.join("")},filter:function(e){return Array.prototype.filter.call(this,e)},indexOf:function(e){return Array.prototype.indexOf.call(this,e)}},oa.prototype.item=function(e){return la(this),this[e]},sa(oa,aa),da.prototype={length:0,item:aa.prototype.item,getNamedItem:function(e){for(var t=this.length;t--;){var i=this[t];if(i.nodeName==e)return i}},setNamedItem:function(e){var t=e.ownerElement;if(t&&t!=this._ownerElement)throw new C(10);t=this.getNamedItem(e.nodeName);return ua(this._ownerElement,this,e,t),t},setNamedItemNS:function(e){var t=e.ownerElement;if(t&&t!=this._ownerElement)throw new C(10);return t=this.getNamedItemNS(e.namespaceURI,e.localName),ua(this._ownerElement,this,e,t),t},removeNamedItem:function(e){e=this.getNamedItem(e);return ca(this._ownerElement,this,e),e},removeNamedItemNS:function(e,t){e=this.getNamedItemNS(e,t);return ca(this._ownerElement,this,e),e},getNamedItemNS:function(e,t){for(var i=this.length;i--;){var s=this[i];if(s.localName==t&&s.namespaceURI==e)return s}return null}},pa.prototype={hasFeature:function(e,t){return!0},createDocument:function(e,t,i){var s=new fa;return s.implementation=this,s.childNodes=new aa,s.doctype=i||null,i&&s.appendChild(i),t&&(i=s.createElementNS(e,t),s.appendChild(i)),s},createDocumentType:function(e,t,i){var s=new Ma;return s.name=e,s.nodeName=e,s.publicId=t||"",s.systemId=i||"",s}},I.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(e,t){return xa(this,e,t)},replaceChild:function(e,t){xa(this,e,t,Ia),t&&this.removeChild(t)},removeChild:function(e){return va(this,e)},appendChild:function(e){return this.insertBefore(e,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(e){return function e(t,i,s){var r=new i.constructor;for(var n in i){var a;Object.prototype.hasOwnProperty.call(i,n)&&"object"!=typeof(a=i[n])&&a!=r[n]&&(r[n]=a)}i.childNodes&&(r.childNodes=new aa);r.ownerDocument=t;switch(r.nodeType){case 1:var o=i.attributes,l=r.attributes=new da,d=o.length;l._ownerElement=r;for(var h=0;h<d;h++)r.setAttributeNode(e(t,o.item(h),!0));break;case 2:s=!0}if(s)for(var u=i.firstChild;u;)r.appendChild(e(t,u,s)),u=u.nextSibling;return r}(this.ownerDocument||this,this,e)},normalize:function(){for(var e=this.firstChild;e;){var t=e.nextSibling;t&&3==t.nodeType&&3==e.nodeType?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t)}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t)},hasAttributes:function(){return 0<this.attributes.length},lookupPrefix:function(e){for(var t=this;t;){var i=t._nsMap;if(i)for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)&&i[s]===e)return s;t=2==t.nodeType?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var i=t._nsMap;if(i&&Object.prototype.hasOwnProperty.call(i,e))return i[e];t=2==t.nodeType?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){return null==this.lookupPrefix(e)}},ia(n,I),ia(n,I.prototype),fa.prototype={nodeName:"#document",nodeType:9,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(11==e.nodeType)for(var i=e.firstChild;i;){var s=i.nextSibling;this.insertBefore(i,t),i=s}else xa(this,e,t),null===(e.ownerDocument=this).documentElement&&1===e.nodeType&&(this.documentElement=e);return e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),va(this,e)},replaceChild:function(e,t){xa(this,e,t,Ia),e.ownerDocument=this,t&&this.removeChild(t),Ta(e)&&(this.documentElement=e)},importNode:function(e,t){return function e(t,i,s){var r;switch(i.nodeType){case 1:(r=i.cloneNode(!1)).ownerDocument=t;case 11:break;case 2:s=!0}r=r||i.cloneNode(!1);r.ownerDocument=t;r.parentNode=null;if(s)for(var n=i.firstChild;n;)r.appendChild(e(t,n,s)),n=n.nextSibling;return r}(this,e,t)},getElementById:function(t){var i=null;return ga(this.documentElement,function(e){if(1==e.nodeType&&e.getAttribute("id")==t)return i=e,!0}),i},getElementsByClassName:function(a){var o=ta(a);return new oa(this,function(r){var n=[];return 0<o.length&&ga(r.documentElement,function(e){var t,i,s;e!==r&&1===e.nodeType&&(t=e.getAttribute("class"))&&((i=a===t)||(t=ta(t),i=o.every((s=t,function(e){return s&&-1!==s.indexOf(e)}))),i)&&n.push(e)}),n})},createElement:function(e){var t=new Aa;return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new aa,(t.attributes=new da)._ownerElement=t},createDocumentFragment:function(){var e=new Fa;return e.ownerDocument=this,e.childNodes=new aa,e},createTextNode:function(e){var t=new Oa;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new Da;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new Na;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var i=new ja;return i.ownerDocument=this,i.tagName=i.target=e,i.nodeValue=i.data=t,i},createAttribute:function(e){var t=new Pa;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new Ba;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var i=new Aa,s=t.split(":"),r=i.attributes=new da;return i.childNodes=new aa,i.ownerDocument=this,i.nodeName=t,i.tagName=t,i.namespaceURI=e,2==s.length?(i.prefix=s[0],i.localName=s[1]):i.localName=t,r._ownerElement=i},createAttributeNS:function(e,t){var i=new Pa,s=t.split(":");return i.ownerDocument=this,i.nodeName=t,i.name=t,i.namespaceURI=e,i.specified=!0,2==s.length?(i.prefix=s[0],i.localName=s[1]):i.localName=t,i}},sa(fa,I),fa.prototype.getElementsByTagName=(Aa.prototype={nodeType:1,hasAttribute:function(e){return null!=this.getAttributeNode(e)},getAttribute:function(e){e=this.getAttributeNode(e);return e&&e.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){e=this.ownerDocument.createAttribute(e);e.value=e.nodeValue=""+t,this.setAttributeNode(e)},removeAttribute:function(e){e=this.getAttributeNode(e);e&&this.removeAttributeNode(e)},appendChild:function(e){return 11===e.nodeType?this.insertBefore(e,null):(t=this,(e=e).parentNode&&e.parentNode.removeChild(e),e.parentNode=t,e.previousSibling=t.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:t.firstChild=e,t.lastChild=e,_a(t.ownerDocument,t,e),e);var t},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){e=this.getAttributeNodeNS(e,t);e&&this.removeAttributeNode(e)},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t)},getAttributeNS:function(e,t){e=this.getAttributeNodeNS(e,t);return e&&e.value||""},setAttributeNS:function(e,t,i){e=this.ownerDocument.createAttributeNS(e,t);e.value=e.nodeValue=""+i,this.setAttributeNode(e)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(s){return new oa(this,function(t){var i=[];return ga(t,function(e){e===t||1!=e.nodeType||"*"!==s&&e.tagName!=s||i.push(e)}),i})},getElementsByTagNameNS:function(s,r){return new oa(this,function(t){var i=[];return ga(t,function(e){e===t||1!==e.nodeType||"*"!==s&&e.namespaceURI!==s||"*"!==r&&e.localName!=r||i.push(e)}),i})}}).getElementsByTagName,fa.prototype.getElementsByTagNameNS=Aa.prototype.getElementsByTagNameNS,sa(Aa,I),Pa.prototype.nodeType=2,sa(Pa,I),La.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(k[ra])},deleteData:function(e,t){this.replaceData(e,t,"")},replaceData:function(e,t,i){var s=this.data.substring(0,e),e=this.data.substring(e+t);this.nodeValue=this.data=i=s+i+e,this.length=i.length}},sa(La,I),Oa.prototype={nodeName:"#text",nodeType:3,splitText:function(e){var t=(i=this.data).substring(e),i=i.substring(0,e),e=(this.data=this.nodeValue=i,this.length=i.length,this.ownerDocument.createTextNode(t));return this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling),e}},sa(Oa,La),Da.prototype={nodeName:"#comment",nodeType:8},sa(Da,La),Na.prototype={nodeName:"#cdata-section",nodeType:4},sa(Na,La),Ma.prototype.nodeType=10,sa(Ma,I),Ra.prototype.nodeType=12,sa(Ra,I),Ua.prototype.nodeType=6,sa(Ua,I),Ba.prototype.nodeType=5,sa(Ba,I),Fa.prototype.nodeName="#document-fragment",Fa.prototype.nodeType=11,sa(Fa,I),ja.prototype.nodeType=7,sa(ja,I),Ha.prototype.serializeToString=function(e,t,i){return qa.call(e,t,i)},I.prototype.toString=qa;try{Object.defineProperty&&(Object.defineProperty(oa.prototype,"length",{get:function(){return la(this),this.$$length}}),Object.defineProperty(I.prototype,"textContent",{get:function(){return function e(t){switch(t.nodeType){case 1:case 11:var i=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&i.push(e(t)),t=t.nextSibling;return i.join("");default:return t.nodeValue}}(this)},set:function(e){switch(this.nodeType){case 1:case 11:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),Ga=function(e,t,i){e["$$"+t]=i})}catch(e){}var Pr={DocumentType:Ma,DOMException:C,DOMImplementation:pa,Element:Aa,Node:I,NodeList:aa,XMLSerializer:Ha},za=Dt(function(e,t){var i=Yn.freeze;t.XML_ENTITIES=i({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),t.HTML_ENTITIES=i({lt:"<",gt:">",amp:"&",quot:'"',apos:"'",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",times:"×",divide:"÷",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"",zwj:"",lrm:"",rlm:"",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",euro:"€",trade:"™",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"}),t.entityMap=t.HTML_ENTITIES}),Xa=(za.XML_ENTITIES,za.HTML_ENTITIES,za.entityMap,Yn.NAMESPACE),Rr=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,Mr=new RegExp("[\\-\\.0-9"+Rr.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),Ka=new RegExp("^"+Rr.source+Mr.source+"*(?::"+Rr.source+Mr.source+"*)?$"),Ya=0,Qa=1,Ja=2,Za=3,eo=4,to=5,io=6,so=7;function ro(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,ro)}function no(){}function ao(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function oo(e,t,i){for(var s=e.tagName,r=null,n=e.length;n--;){var a=e[n],o=a.qName,l=a.value,o=0<(h=o.indexOf(":"))?(d=a.prefix=o.slice(0,h),u=o.slice(h+1),"xmlns"===d&&u):(d=null,"xmlns"===(u=o)&&"");a.localName=u,!1!==o&&(null==r&&(r={},lo(i,i={})),i[o]=r[o]=l,a.uri=Xa.XMLNS,t.startPrefixMapping(o,l))}for(var d,n=e.length;n--;)(d=(a=e[n]).prefix)&&("xml"===d&&(a.uri=Xa.XML),"xmlns"!==d)&&(a.uri=i[d||""]);var h,u=0<(h=s.indexOf(":"))?(d=e.prefix=s.slice(0,h),e.localName=s.slice(h+1)):(d=null,e.localName=s),c=e.uri=i[d||""];if(t.startElement(c,u,s,e),!e.closed)return e.currentNSMap=i,e.localNSMap=r,1;if(t.endElement(c,u,s),r)for(d in r)Object.prototype.hasOwnProperty.call(r,d)&&t.endPrefixMapping(d)}function lo(e,t){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}function ho(){this.attributeNames={}}(ro.prototype=new Error).name=ro.name,no.prototype={parse:function(e,t,i){var s=this.domBuilder;s.startDocument(),lo(t,t={}),function(i,e,s,r,n){function a(e){var t=e.slice(1,-1);return Object.hasOwnProperty.call(s,t)?s[t]:"#"===t.charAt(0)?65535<(t=parseInt(t.substr(1).replace("x","0x")))?(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t))):String.fromCharCode(t):(n.error("entity not found:"+e),e)}function t(e){var t;m<e&&(t=i.substring(m,e).replace(/&#?\w+;/g,a),u&&o(m),r.characters(t,0,e-m),m=e)}function o(e,t){for(;d<=e&&(t=h.exec(i));)l=t.index,d=l+t[0].length,u.lineNumber++;u.columnNumber=e-l+1}var l=0,d=0,h=/.*(?:\r\n?|\n)|.*$/g,u=r.locator,c=[{currentNSMap:e}],p={},m=0;for(;;){try{var g,f,y=i.indexOf("<",m);if(y<0)return i.substr(m).match(/^\s*$/)||(g=r.doc,f=g.createTextNode(i.substr(m)),g.appendChild(f),r.currentElement=f);switch(m<y&&t(y),i.charAt(y+1)){case"/":var _=i.indexOf(">",y+3),v=i.substring(y+2,_).replace(/[ \t\n\r]+$/g,""),b=c.pop(),T=(_<0?(v=i.substring(y+2).replace(/[\s<].*/,""),n.error("end tag name: "+v+" is not complete:"+b.tagName),_=y+1+v.length):v.match(/\s</)&&(v=v.replace(/[\s<].*/,""),n.error("end tag name: "+v+" maybe not complete"),_=y+1+v.length),b.localNSMap),S=b.tagName==v;if(S||b.tagName&&b.tagName.toLowerCase()==v.toLowerCase()){if(r.endElement(b.uri,b.localName,v),T)for(var w in T)Object.prototype.hasOwnProperty.call(T,w)&&r.endPrefixMapping(w);S||n.fatalError("end tag name: "+v+" is not match the current start tagName:"+b.tagName)}else c.push(b);_++;break;case"?":u&&o(y),_=function(e,t,i){var s=e.indexOf("?>",t);if(s){e=e.substring(t,s).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(e)return e[0].length,i.processingInstruction(e[1],e[2]),s+2}return-1}(i,y,r);break;case"!":u&&o(y),_=function(e,t,i,s){{if("-"===e.charAt(t+2))return"-"===e.charAt(t+3)?(n=e.indexOf("--\x3e",t+4),t<n?(i.comment(e,t+4,n-t-4),n+3):(s.error("Unclosed comment"),-1)):-1;if("CDATA["==e.substr(t+3,6))return n=e.indexOf("]]>",t+9),i.startCDATA(),i.characters(e,t+9,n-t-9),i.endCDATA(),n+3;var r,s=function(e,t){var i,s=[],r=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;r.lastIndex=t,r.exec(e);for(;i=r.exec(e);)if(s.push(i),i[1])return s}(e,t),n=s.length;if(1<n&&/!doctype/i.test(s[0][0]))return e=s[1][0],r=t=!1,3<n&&(/^public$/i.test(s[2][0])?(t=s[3][0],r=4<n&&s[4][0]):/^system$/i.test(s[2][0])&&(r=s[3][0])),s=s[n-1],i.startDTD(e,t,r),i.endDTD(),s.index+s[0].length}return-1}(i,y,r,n);break;default:u&&o(y);var E=new ho,k=c[c.length-1].currentNSMap,_=function(e,t,s,i,r,n){function a(e,t,i){s.attributeNames.hasOwnProperty(e)&&n.fatalError("Attribute "+e+" redefined"),s.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,r),i)}var o,l=++t,d=Ya;for(;;){var h=e.charAt(l);switch(h){case"=":if(d===Qa)o=e.slice(t,l);else if(d!==Ja)throw new Error("attribute equal must after attrName");d=Za;break;case"'":case'"':if(d===Za||d===Qa){if(d===Qa&&(n.warning('attribute value must after "="'),o=e.slice(t,l)),t=l+1,!(0<(l=e.indexOf(h,t))))throw new Error("attribute value no end '"+h+"' match");u=e.slice(t,l),a(o,u,t-1)}else{if(d!=eo)throw new Error('attribute value must after "="');u=e.slice(t,l),a(o,u,t),n.warning('attribute "'+o+'" missed start quot('+h+")!!"),t=l+1}d=to;break;case"/":switch(d){case Ya:s.setTagName(e.slice(t,l));case to:case io:case so:d=so,s.closed=!0;case eo:case Qa:case Ja:break;default:throw new Error("attribute invalid close char('/')")}break;case"":return n.error("unexpected end of input"),d==Ya&&s.setTagName(e.slice(t,l)),l;case">":switch(d){case Ya:s.setTagName(e.slice(t,l));case to:case io:case so:break;case eo:case Qa:"/"===(u=e.slice(t,l)).slice(-1)&&(s.closed=!0,u=u.slice(0,-1));case Ja:d===Ja&&(u=o),d==eo?(n.warning('attribute "'+u+'" missed quot(")!'),a(o,u,t)):(Xa.isHTML(i[""])&&u.match(/^(?:disabled|checked|selected)$/i)||n.warning('attribute "'+u+'" missed value!! "'+u+'" instead!!'),a(u,u,t));break;case Za:throw new Error("attribute value missed!!")}return l;case"":h=" ";default:if(h<=" ")switch(d){case Ya:s.setTagName(e.slice(t,l)),d=io;break;case Qa:o=e.slice(t,l),d=Ja;break;case eo:var u=e.slice(t,l);n.warning('attribute "'+u+'" missed quot(")!!'),a(o,u,t);case to:d=io}else switch(d){case Ja:s.tagName,Xa.isHTML(i[""])&&o.match(/^(?:disabled|checked|selected)$/i)||n.warning('attribute "'+o+'" missed value!! "'+o+'" instead2!!'),a(o,o,t),t=l,d=Qa;break;case to:n.warning('attribute space is required"'+o+'"!!');case io:d=Qa,t=l;break;case Za:d=eo,t=l;break;case so:throw new Error("elements closed character '/' and '>' must be connected to")}}l++}}(i,y,E,k,a,n),C=E.length;if(!E.closed&&function(e,t,i,s){var r=s[i];null==r&&((r=e.lastIndexOf("</"+i+">"))<t&&(r=e.lastIndexOf("</"+i)),s[i]=r);return r<t}(i,_,E.tagName,p)&&(E.closed=!0,s.nbsp||n.warning("unclosed xml attribute")),u&&C){for(var I=ao(u,{}),x=0;x<C;x++){var A=E[x];o(A.offset),A.locator=ao(u,{})}r.locator=I,oo(E,r,k)&&c.push(E),r.locator=u}else oo(E,r,k)&&c.push(E);Xa.isHTML(E.uri)&&!E.closed?_=function(e,t,i,s,r){if(/^(?:script|textarea)$/i.test(i)){var n=e.indexOf("</"+i+">",t),e=e.substring(t+1,n);if(/[&<]/.test(e))return/^script$/i.test(i)?r.characters(e,0,e.length):(e=e.replace(/&#?\w+;/g,s),r.characters(e,0,e.length)),n}return t+1}(i,_,E.tagName,a,r):_++}}catch(e){if(e instanceof ro)throw e;n.error("element parse error: "+e),_=-1}m<_?m=_:t(Math.max(y,m)+1)}}(e,t,i,s,this.errorHandler),s.endDocument()}},ho.prototype={setTagName:function(e){if(!Ka.test(e))throw new Error("invalid tagName:"+e);this.tagName=e},addValue:function(e,t,i){if(!Ka.test(e))throw new Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:i}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}};var Nr={XMLReader:no,ParseError:ro},uo=Pr.DOMImplementation,co=Yn.NAMESPACE,po=Nr.ParseError,mo=Nr.XMLReader;function go(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n")}function fo(e){this.options=e||{locator:{}}}function yo(){this.cdata=!1}function _o(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}function vo(e){if(e)return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]"}function bo(e,t,i){return"string"==typeof e?e.substr(t,i):e.length>=t+i||t?new java.lang.String(e,t,i)+"":e}function To(e,t){(e.currentElement||e.doc).appendChild(t)}fo.prototype.parseFromString=function(e,t){var i=this.options,s=new mo,r=i.domBuilder||new yo,n=i.errorHandler,a=i.locator,o=i.xmlns||{},t=/\/x?html?$/.test(t),l=t?za.HTML_ENTITIES:za.XML_ENTITIES,n=(a&&r.setDocumentLocator(a),s.errorHandler=function(s,e,r){if(!s){if(e instanceof yo)return e;s=e}var n={},a=s instanceof Function;function t(t){var i=s[t];!i&&a&&(i=2==s.length?function(e){s(t,e)}:s),n[t]=i?function(e){i("[xmldom "+t+"]\t"+e+vo(r))}:function(){}}return r=r||{},t("warning"),t("error"),t("fatalError"),n}(n,r,a),s.domBuilder=i.domBuilder||r,t&&(o[""]=co.HTML),o.xml=o.xml||co.XML,i.normalizeLineEndings||go);return e&&"string"==typeof e?s.parse(n(e),o,l):s.errorHandler.error("invalid doc source"),r.doc},yo.prototype={startDocument:function(){this.doc=(new uo).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(e,t,i,s){var r=this.doc,n=r.createElementNS(e,i||t),a=s.length;To(this,n),this.currentElement=n,this.locator&&_o(this.locator,n);for(var o=0;o<a;o++){var e=s.getURI(o),l=s.getValue(o),i=s.getQName(o),d=r.createAttributeNS(e,i);this.locator&&_o(s.getLocator(o),d),d.value=d.nodeValue=l,n.setAttributeNode(d)}},endElement:function(e,t,i){var s=this.currentElement;s.tagName,this.currentElement=s.parentNode},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){e=this.doc.createProcessingInstruction(e,t);this.locator&&_o(this.locator,e),To(this,e)},ignorableWhitespace:function(e,t,i){},characters:function(e,t,i){var s;(e=bo.apply(this,arguments))&&(s=this.cdata?this.doc.createCDATASection(e):this.doc.createTextNode(e),this.currentElement?this.currentElement.appendChild(s):/^\s*$/.test(e)&&this.doc.appendChild(s),this.locator)&&_o(this.locator,s)},skippedEntity:function(e){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(e){(this.locator=e)&&(e.lineNumber=0)},comment:function(e,t,i){e=bo.apply(this,arguments);e=this.doc.createComment(e);this.locator&&_o(this.locator,e),To(this,e)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(e,t,i){var s=this.doc.implementation;s&&s.createDocumentType&&(s=s.createDocumentType(e,t,i),this.locator&&_o(this.locator,s),To(this,s),this.doc.doctype=s)},warning:function(e){},error:function(e){},fatalError:function(e){throw new po(e,this.locator)}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(e){yo.prototype[e]=function(){return null}});var So={__DOMHandler:yo,normalizeLineEndings:go,DOMParser:fo}.DOMParser;
- /*! @name mpd-parser @version 1.0.1 @license Apache-2.0 */
- const wo=e=>!!e&&"object"==typeof e,x=(...e)=>e.reduce((t,i)=>("object"==typeof i&&Object.keys(i).forEach(e=>{Array.isArray(t[e])&&Array.isArray(i[e])?t[e]=t[e].concat(i[e]):wo(t[e])&&wo(i[e])?t[e]=x(t[e],i[e]):t[e]=i[e]}),t),{}),Eo=t=>Object.keys(t).map(e=>t[e]),ko=e=>e.reduce((e,t)=>e.concat(t),[]),Co=t=>{if(!t.length)return[];var i=[];for(let e=0;e<t.length;e++)i.push(t[e]);return i};var Io={INVALID_NUMBER_OF_PERIOD:"INVALID_NUMBER_OF_PERIOD",DASH_EMPTY_MANIFEST:"DASH_EMPTY_MANIFEST",DASH_INVALID_XML:"DASH_INVALID_XML",NO_BASE_URL:"NO_BASE_URL",MISSING_SEGMENT_INFORMATION:"MISSING_SEGMENT_INFORMATION",SEGMENT_TIME_UNSPECIFIED:"SEGMENT_TIME_UNSPECIFIED",UNSUPPORTED_UTC_TIMING_SCHEME:"UNSUPPORTED_UTC_TIMING_SCHEME"};const xo=({baseUrl:s="",source:r="",range:n="",indexRange:a=""})=>{s={uri:r,resolvedUri:On(s||"",r)};if(n||a){r=(n||a).split("-");let e=window.BigInt?window.BigInt(r[0]):parseInt(r[0],10),t=window.BigInt?window.BigInt(r[1]):parseInt(r[1],10);e<Number.MAX_SAFE_INTEGER&&"bigint"==typeof e&&(e=Number(e)),t<Number.MAX_SAFE_INTEGER&&"bigint"==typeof t&&(t=Number(t));let i;"bigint"==typeof(i="bigint"==typeof t||"bigint"==typeof e?window.BigInt(t)-window.BigInt(e)+window.BigInt(1):t-e+1)&&i<Number.MAX_SAFE_INTEGER&&(i=Number(i)),s.byterange={length:i,offset:e}}return s},Ao=e=>(e&&"number"!=typeof e&&(e=parseInt(e,10)),isNaN(e)?null:e),Po={static(e){var{duration:t,timescale:i=1,sourceDuration:s,periodDuration:r}=e,e=Ao(e.endNumber),t=t/i;return"number"==typeof e?{start:0,end:e}:"number"==typeof r?{start:0,end:r/t}:{start:0,end:s/t}},dynamic(e){var{NOW:t,clientOffset:i,availabilityStartTime:s,timescale:r=1,duration:n,periodStart:a=0,minimumUpdatePeriod:o=0,timeShiftBufferDepth:l=1/0}=e,e=Ao(e.endNumber),t=(t+i)/1e3,i=s+a,s=Math.ceil((t+o-i)*r/n),a=Math.floor((t-i-l)*r/n),o=Math.floor((t-i)*r/n);return{start:Math.max(0,a),end:"number"==typeof e?e:Math.min(s,o)}}},Lo=e=>{var n,{type:t,duration:i,timescale:s=1,periodDuration:r,sourceDuration:a}=e,{start:o,end:l}=Po[t](e),o=((t,i)=>{var s=[];for(let e=t;e<i;e++)s.push(e);return s})(o,l).map((n=e,e=>{var{duration:t,timescale:i=1,periodStart:s,startNumber:r=1}=n;return{number:r+e,duration:t/i,timeline:s,time:e*t}}));return"static"===t&&(o[l=o.length-1].duration=("number"==typeof r?r:a)-i/s*l),o},Oo=e=>{var{baseUrl:t,initialization:i={},sourceDuration:s,indexRange:r="",periodStart:n,presentationTime:a,number:o=0,duration:l}=e;if(t)return i=xo({baseUrl:t,source:i.sourceURL,range:i.range}),(t=xo({baseUrl:t,source:t,indexRange:r})).map=i,l?(r=Lo(e)).length&&(t.duration=r[0].duration,t.timeline=r[0].timeline):s&&(t.duration=s,t.timeline=n),t.presentationTime=a||n,t.number=o,[t];throw new Error(Io.NO_BASE_URL)},Do=(e,i,s)=>{var r=e.sidx.map||null,n=e.sidx.duration,a=e.timeline||0,t=e.sidx.byterange,t=t.offset+t.length,o=i.timescale,l=i.references.filter(e=>1!==e.referenceType),d=[],h=e.endList?"static":"dynamic",u=e.sidx.timeline;let c=u,p=e.mediaSequence||0,m;m="bigint"==typeof i.firstOffset?window.BigInt(t)+i.firstOffset:t+i.firstOffset;for(let t=0;t<l.length;t++){var g=i.references[t],f=g.referencedSize,g=g.subsegmentDuration;let e;e="bigint"==typeof m?m+window.BigInt(f)-window.BigInt(1):m+f-1;var y=m+"-"+e,y={baseUrl:s,timescale:o,timeline:a,periodStart:u,presentationTime:c,number:p,duration:g,sourceDuration:n,indexRange:y,type:h},y=Oo(y)[0];r&&(y.map=r),d.push(y),"bigint"==typeof m?m+=window.BigInt(f):m+=f,c+=g/o,p++}return e.segments=d,e},No=["AUDIO","SUBTITLES"],Mo=e=>{return e=e,i=({timeline:e})=>e,Eo(e.reduce((t,e)=>(e.forEach(e=>{t[i(e)]=e}),t),{})).sort((e,t)=>e.timeline>t.timeline?1:-1);var i},Ro=e=>{let r=[];var n,a;return n=e,e=No,a=(e,t,i,s)=>{r=r.concat(e.playlists||[])},e.forEach(function(e){for(var t in n.mediaGroups[e])for(var i in n.mediaGroups[e][t]){var s=n.mediaGroups[e][t][i];a(s,e,t,i)}}),r},Uo=({playlist:i,mediaSequence:e})=>{i.mediaSequence=e,i.segments.forEach((e,t)=>{e.number=i.mediaSequence+t})},Bo=({oldManifest:e,newManifest:t})=>{var r,n,i=e.playlists.concat(Ro(e)),s=t.playlists.concat(Ro(t));return t.timelineStarts=Mo([e.timelineStarts,t.timelineStarts]),{oldPlaylists:r,newPlaylists:e,timelineStarts:n}=[{oldPlaylists:i,newPlaylists:s,timelineStarts:t.timelineStarts}][0],e.forEach(t=>{t.discontinuitySequence=n.findIndex(function({timeline:e}){return e===t.timeline});var e=((t,i)=>{for(let e=0;e<t.length;e++)if(t[e].attributes.NAME===i)return t[e];return null})(r,t.attributes.NAME);if(e&&!t.sidx){const s=t.segments[0];var i=e.segments.findIndex(function(e){return Math.abs(e.presentationTime-s.presentationTime)<1/60});-1===i?(Uo({playlist:t,mediaSequence:e.mediaSequence+e.segments.length}),t.segments[0].discontinuity=!0,t.discontinuityStarts.unshift(0),(!e.segments.length&&t.timeline>e.timeline||e.segments.length&&t.timeline>e.segments[e.segments.length-1].timeline)&&t.discontinuitySequence--):(e.segments[i].discontinuity&&!s.discontinuity&&(s.discontinuity=!0,t.discontinuityStarts.unshift(0),t.discontinuitySequence--),Uo({playlist:t,mediaSequence:e.segments[i].number}))}}),t},Fo=e=>e&&e.uri+"-"+(e=>{let t;return t="bigint"==typeof e.offset||"bigint"==typeof e.length?window.BigInt(e.offset)+window.BigInt(e.length)-window.BigInt(1):e.offset+e.length-1,e.offset+"-"+t})(e.byterange),jo=e=>{return Eo(e.reduce((e,t)=>{var i=t.attributes.id+(t.attributes.lang||"");return e[i]?(t.segments&&(t.segments[0]&&(t.segments[0].discontinuity=!0),e[i].segments.push(...t.segments)),t.attributes.contentProtection&&(e[i].attributes.contentProtection=t.attributes.contentProtection)):(e[i]=t,e[i].attributes.timelineStarts=[]),e[i].attributes.timelineStarts.push({start:t.attributes.periodStart,timeline:t.attributes.periodStart}),e},{})).map(e=>{var t,s;return e.discontinuityStarts=(t=e.segments||[],s="discontinuity",t.reduce((e,t,i)=>(t[s]&&e.push(i),e),[])),e})},Ho=(e,t)=>{var i=Fo(e.sidx),t=i&&t[i]&&t[i].sidx;return t&&Do(e,t,e.sidx.resolvedUri),e},qo=(e,o={})=>e.reduce((e,t)=>{var i,s,r,n,a=t.attributes.lang||"text";return e[a]||(e[a]={language:a,default:!1,autoselect:!1,playlists:[],uri:""}),e[a].playlists.push(Ho(({attributes:a,segments:t,mediaSequence:i,discontinuityStarts:s,discontinuitySequence:r}=[t][0],"undefined"==typeof t&&(t=[{uri:a.baseUrl,timeline:a.periodStart,resolvedUri:a.baseUrl||"",duration:a.sourceDuration,number:0}],a.duration=a.sourceDuration),n={NAME:a.id,BANDWIDTH:a.bandwidth,"PROGRAM-ID":1},a.codecs&&(n.CODECS=a.codecs),{attributes:n,uri:"",endList:"static"===a.type,timeline:a.periodStart,resolvedUri:a.baseUrl||"",targetDuration:a.duration,timelineStarts:a.timelineStarts,discontinuityStarts:s,discontinuitySequence:r,mediaSequence:i,segments:t}),o)),e},{}),Vo=({attributes:e,segments:t,sidx:i,discontinuityStarts:s})=>{s={attributes:{NAME:e.id,AUDIO:"audio",SUBTITLES:"subs",RESOLUTION:{width:e.width,height:e.height},CODECS:e.codecs,BANDWIDTH:e.bandwidth,"PROGRAM-ID":1},uri:"",endList:"static"===e.type,timeline:e.periodStart,resolvedUri:"",targetDuration:e.duration,discontinuityStarts:s,timelineStarts:e.timelineStarts,segments:t};return e.frameRate&&(s.attributes["FRAME-RATE"]=e.frameRate),e.contentProtection&&(s.contentProtection=e.contentProtection),i&&(s.sidx=i),s},$o=({attributes:e})=>"video/mp4"===e.mimeType||"video/webm"===e.mimeType||"video"===e.contentType,Wo=({attributes:e})=>"audio/mp4"===e.mimeType||"audio/webm"===e.mimeType||"audio"===e.contentType,Go=({attributes:e})=>"text/vtt"===e.mimeType||"text"===e.contentType,zo=i=>i?Object.keys(i).reduce((e,t)=>{t=i[t];return e.concat(t.playlists)},[]):[],Xo=({dashPlaylists:e,locations:t,sidxMapping:i={},previousManifest:s})=>{var r,n,a,o,l,d,h,u;return e.length?({sourceDuration:a,type:l,suggestedPresentationDelay:d,minimumUpdatePeriod:o}=e[0].attributes,r=jo(e.filter($o)).map(Vo),h=jo(e.filter(Wo)),n=jo(e.filter(Go)),e=e.map(e=>e.attributes.captionServices).filter(Boolean),a={allowCache:!0,discontinuityStarts:[],segments:[],endList:!0,mediaGroups:{AUDIO:{},VIDEO:{},"CLOSED-CAPTIONS":{},SUBTITLES:{}},uri:"",duration:a,playlists:((e,t={})=>{if(Object.keys(t).length)for(const i in e)e[i]=Ho(e[i],t);return e})(r,i)},0<=o&&(a.minimumUpdatePeriod=1e3*o),t&&(a.locations=t),"dynamic"===l&&(a.suggestedPresentationDelay=d),o=0===a.playlists.length,t=h.length?((e,n={},a)=>{let o;e=e.reduce((e,t)=>{var i=t.attributes.role&&t.attributes.role.value||"",s=t.attributes.lang||"";let r=t.attributes.label||"main";e[r=s&&!t.attributes.label?t.attributes.lang+(i?` (${i})`:""):r]||(e[r]={language:s,autoselect:!0,default:"main"===i,playlists:[],uri:""});s=Ho((({attributes:e,segments:t,sidx:i,mediaSequence:s,discontinuitySequence:r,discontinuityStarts:n},a)=>{r={attributes:{NAME:e.id,BANDWIDTH:e.bandwidth,CODECS:e.codecs,"PROGRAM-ID":1},uri:"",endList:"static"===e.type,timeline:e.periodStart,resolvedUri:"",targetDuration:e.duration,discontinuitySequence:r,discontinuityStarts:n,timelineStarts:e.timelineStarts,mediaSequence:s,segments:t};return e.contentProtection&&(r.contentProtection=e.contentProtection),i&&(r.sidx=i),a&&(r.attributes.AUDIO="audio",r.attributes.SUBTITLES="subs"),r})(t,a),n);return e[r].playlists.push(s),"undefined"==typeof o&&"main"===i&&((o=t).default=!0),e},{});return o||(e[Object.keys(e)[0]].default=!0),e})(h,i,o):null,l=n.length?qo(n,i):null,h=(d=r.concat(zo(t),zo(l))).map(({timelineStarts:e})=>e),a.timelineStarts=Mo(h),u=a.timelineStarts,d.forEach(t=>{t.mediaSequence=0,t.discontinuitySequence=u.findIndex(function({timeline:e}){return e===t.timeline}),t.segments&&t.segments.forEach((e,t)=>{e.number=t})}),t&&(a.mediaGroups.AUDIO.audio=t),l&&(a.mediaGroups.SUBTITLES.subs=l),e.length&&(a.mediaGroups["CLOSED-CAPTIONS"].cc=e.reduce((s,e)=>(e&&e.forEach(e=>{var{channel:t,language:i}=e;s[i]={autoselect:!1,default:!1,instreamId:t,language:i},e.hasOwnProperty("aspectRatio")&&(s[i].aspectRatio=e.aspectRatio),e.hasOwnProperty("easyReader")&&(s[i].easyReader=e.easyReader),e.hasOwnProperty("3D")&&(s[i]["3D"]=e["3D"])}),s),{})),s?Bo({oldManifest:s,newManifest:a}):a):{}},Ko=(s,r)=>{var{type:n,minimumUpdatePeriod:a=0,media:o="",sourceDuration:l,timescale:d=1,startNumber:h=1,periodStart:u}=s,c=[];let p=-1;for(let i=0;i<r.length;i++){var m=r[i],g=m.d,f=m.r||0,m=m.t||0;p<0&&(p=m),m&&m>p&&(p=m);let e;e=f<0?(m=i+1)===r.length?"dynamic"===n&&0<a&&0<o.indexOf("$Number$")?((e,t,i)=>{var{NOW:e,clientOffset:s,availabilityStartTime:r,timescale:n=1,periodStart:a=0,minimumUpdatePeriod:o=0}=e;return Math.ceil((((e+s)/1e3+o-(r+a))*n-t)/i)})(s,p,g):(l*d-p)/g:(r[m].t-p)/g:f+1;var y=h+c.length+e;let t=h+c.length;for(;t<y;)c.push({number:t,duration:g/d,time:p,timeline:u}),p+=g,t++}return c},Yo=/\$([A-z]*)(?:(%0)([0-9]+)d)?\$/g,Qo=(e,t)=>{return e.replace(Yo,(r=t,(e,t,i,s)=>{return"$$"===e?"$":"undefined"==typeof r[t]?e:(e=""+r[t],"RepresentationID"===t||(s=i?parseInt(s,10):1)<=e.length?e:new Array(s-e.length+1).join("0")+e)}));var r},Jo=(r,e)=>{const n={RepresentationID:r.id,Bandwidth:r.bandwidth||0};var{initialization:t={sourceURL:"",range:""}}=r;const a=xo({baseUrl:r.baseUrl,source:Qo(t.sourceURL,n),range:t.range});return t=e,((e=r).duration||t?e.duration?Lo(e):Ko(e,t):[{number:e.startNumber||1,duration:e.sourceDuration,time:0,timeline:e.periodStart}]).map(e=>{n.Number=e.number,n.Time=e.time;var t=Qo(r.media||"",n),i=r.timescale||1,s=r.presentationTimeOffset||0,s=r.periodStart+(e.time-s)/i;return{uri:t,timeline:e.timeline,duration:e.duration,resolvedUri:On(r.baseUrl||"",t),map:a,number:e.number,presentationTime:s}})},Zo=(r,e)=>{const{duration:t,segmentUrls:i=[],periodStart:n}=r;if(!t&&!e||t&&e)throw new Error(Io.SEGMENT_TIME_UNSPECIFIED);const a=i.map(e=>{var{baseUrl:t,initialization:i={}}=t=r,i=xo({baseUrl:t,source:i.sourceURL,range:i.range});return(t=xo({baseUrl:t,source:e.media,range:e.mediaRange})).map=i,t});let s;return t&&(s=Lo(r)),(s=e?Ko(r,e):s).map((e,t)=>{var i,s;if(a[t])return t=a[t],i=r.timescale||1,s=r.presentationTimeOffset||0,t.timeline=e.timeline,t.duration=e.duration,t.number=e.number,t.presentationTime=n+(e.time-s)/i,t}).filter(e=>e)},el=({attributes:e,segmentInfo:t})=>{let i,s;t.template?(s=Jo,i=x(e,t.template)):t.base?(s=Oo,i=x(e,t.base)):t.list&&(s=Zo,i=x(e,t.list));var r,n,a,e={attributes:e};return s&&(r=s(i,t.segmentTimeline),i.duration?({duration:n,timescale:a=1}=i,i.duration=n/a):r.length?i.duration=r.reduce((e,t)=>Math.max(e,Math.ceil(t.duration)),0):i.duration=0,e.attributes=i,e.segments=r,t.base)&&i.indexRange&&(e.sidx=r[0],e.segments=[]),e},tl=e=>e.map(el),A=(e,t)=>Co(e.childNodes).filter(({tagName:e})=>e===t),il=e=>e.textContent.trim(),sl=e=>{var t,i,s,r,n,e=/P(?:(\d*)Y)?(?:(\d*)M)?(?:(\d*)D)?(?:T(?:(\d*)H)?(?:(\d*)M)?(?:([\d.]*)S)?)?/.exec(e);return e?([e,t,i,s,r,n]=e.slice(1),31536e3*parseFloat(e||0)+2592e3*parseFloat(t||0)+86400*parseFloat(i||0)+3600*parseFloat(s||0)+60*parseFloat(r||0)+parseFloat(n||0)):0},rl={mediaPresentationDuration(e){return sl(e)},availabilityStartTime(e){return/^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(e=e)&&(e+="Z"),Date.parse(e)/1e3},minimumUpdatePeriod(e){return sl(e)},suggestedPresentationDelay(e){return sl(e)},type(e){return e},timeShiftBufferDepth(e){return sl(e)},start(e){return sl(e)},width(e){return parseInt(e,10)},height(e){return parseInt(e,10)},bandwidth(e){return parseInt(e,10)},frameRate(e){return parseFloat(e.split("/").reduce((e,t)=>e/t))},startNumber(e){return parseInt(e,10)},timescale(e){return parseInt(e,10)},presentationTimeOffset(e){return parseInt(e,10)},duration(e){var t=parseInt(e,10);return isNaN(t)?sl(e):t},d(e){return parseInt(e,10)},t(e){return parseInt(e,10)},r(e){return parseInt(e,10)},DEFAULT(e){return e}},P=e=>e&&e.attributes?Co(e.attributes).reduce((e,t)=>{var i=rl[t.name]||rl.DEFAULT;return e[t.name]=i(t.value),e},{}):{},nl={"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb":"com.adobe.primetime"},al=(e,i)=>i.length?ko(e.map(function(t){return i.map(function(e){return On(t,il(e))})})):e,ol=e=>{var t=A(e,"SegmentTemplate")[0],i=A(e,"SegmentList")[0],s=i&&A(i,"SegmentURL").map(e=>x({tag:"SegmentURL"},P(e))),e=A(e,"SegmentBase")[0],r=i||t,r=r&&A(r,"SegmentTimeline")[0],n=i||e||t,n=n&&A(n,"Initialization")[0],t=t&&P(t);t&&n?t.initialization=n&&P(n):t&&t.initialization&&(t.initialization={sourceURL:t.initialization});const a={template:t,segmentTimeline:r&&A(r,"S").map(e=>P(e)),list:i&&x(P(i),{segmentUrls:s,initialization:P(n)}),base:e&&x(P(e),{initialization:P(n)})};return Object.keys(a).forEach(e=>{a[e]||delete a[e]}),a},ll=(l,d,h)=>e=>{var t=P(e),i=al(d,A(e,"BaseURL")),s=A(e,"Role")[0],s={role:P(s)};let r=x(l,t,s);var n,a,o,t=A(e,"Accessibility")[0],t="urn:scte:dash:cc:cea-608:2015"===(s=P(t)).schemeIdUri?("string"!=typeof s.value?[]:s.value.split(";")).map(e=>{let t,i;return i=e,/^CC\d=/.test(e)?[t,i]=e.split("="):/^CC\d$/.test(e)&&(t=e),{channel:t,language:i}}):"urn:scte:dash:cc:cea-708:2015"===s.schemeIdUri?("string"!=typeof s.value?[]:s.value.split(";")).map(e=>{const i={channel:void 0,language:void 0,aspectRatio:1,easyReader:0,"3D":0};var t,s;return/=/.test(e)?([t,s=""]=e.split("="),i.channel=t,i.language=e,s.split(",").forEach(e=>{var[e,t]=e.split(":");"lang"===e?i.language=t:"er"===e?i.easyReader=Number(t):"war"===e?i.aspectRatio=Number(t):"3D"===e&&(i["3D"]=Number(t))})):i.language=e,i.channel&&(i.channel="SERVICE"+i.channel),i}):void 0,s=(t&&(r=x(r,{captionServices:t})),A(e,"Label")[0]),s=(s&&s.childNodes.length&&(t=s.childNodes[0].nodeValue.trim(),r=x(r,{label:t})),A(e,"ContentProtection").reduce((e,t)=>{var i=P(t),s=(i.schemeIdUri&&(i.schemeIdUri=i.schemeIdUri.toLowerCase()),nl[i.schemeIdUri]);return s&&(e[s]={attributes:i},i=A(t,"cenc:pssh")[0])&&(t=il(i),e[s].pssh=t&&Gn(t)),e},{})),t=(Object.keys(s).length&&(r=x(r,{contentProtection:s})),ol(e)),s=A(e,"Representation"),e=x(h,t);return ko(s.map((n=r,a=i,o=e,e=>{var t=A(e,"BaseURL"),t=al(a,t);const i=x(n,P(e)),s=ol(e);return t.map(e=>({segmentInfo:x(o,s),attributes:x(i,{baseUrl:e})}))})))},dl=(e,t={})=>{var{manifestUri:t="",NOW:i=Date.now(),clientOffset:s=0}=t,r=A(e,"Period");if(!r.length)throw new Error(Io.INVALID_NUMBER_OF_PERIOD);var n=A(e,"Location");const a=P(e);var o,l,t=al([t],A(e,"BaseURL"));a.type=a.type||"static",a.sourceDuration=a.mediaPresentationDuration||0,a.NOW=i,a.clientOffset=s,n.length&&(a.locations=n.map(il));const d=[];return r.forEach((e,t)=>{var i,s,r=P(e),t=d[t-1];r.start=({attributes:t,priorPeriodAttributes:i,mpdType:s}=[{attributes:r,priorPeriodAttributes:t?t.attributes:null,mpdType:a.type}][0],"number"==typeof t.start?t.start:i&&"number"==typeof i.start&&"number"==typeof i.duration?i.start+i.duration:i||"static"!==s?null:0),d.push({node:e,attributes:r})}),{locations:a.locations,representationInfo:ko(d.map((o=a,l=t,(e,t)=>{var i=al(l,A(e.node,"BaseURL")),s=x(o,{periodStart:e.attributes.start}),r=("number"==typeof e.attributes.duration&&(s.periodDuration=e.attributes.duration),A(e.node,"AdaptationSet")),e=ol(e.node);return ko(r.map(ll(s,i,e)))})))}},hl=e=>{if(""===e)throw new Error(Io.DASH_EMPTY_MANIFEST);var t,i=new So;let s;try{t=i.parseFromString(e,"application/xml"),s=t&&"MPD"===t.documentElement.tagName?t.documentElement:null}catch(e){}if(!s||s&&0<s.getElementsByTagName("parsererror").length)throw new Error(Io.DASH_INVALID_XML);return s},ul=e=>{e=hl(e);if(!(e=A(e,"UTCTiming")[0]))return null;var t=P(e);switch(t.schemeIdUri){case"urn:mpeg:dash:utc:http-head:2014":case"urn:mpeg:dash:utc:http-head:2012":t.method="HEAD";break;case"urn:mpeg:dash:utc:http-xsdate:2014":case"urn:mpeg:dash:utc:http-iso:2014":case"urn:mpeg:dash:utc:http-xsdate:2012":case"urn:mpeg:dash:utc:http-iso:2012":t.method="GET";break;case"urn:mpeg:dash:utc:direct:2014":case"urn:mpeg:dash:utc:direct:2012":t.method="DIRECT",t.value=Date.parse(t.value);break;default:throw new Error(Io.UNSUPPORTED_UTC_TIMING_SCHEME)}return t};function cl(e,t){var i,s,r;return void 0===t&&(t=0),(e=S(e)).length-t<10||!E(e,Sl,{offset:t})?t:(t+=(void 0===(s=t)&&(s=0),r=(i=S(i=e))[s+5],i=i[s+6]<<21|i[s+7]<<14|i[s+8]<<7|i[s+9],(16&r)>>4?20+i:10+i),cl(e,t))}function pl(e){return"string"==typeof e?Ln(e):e}function ml(e,t,i){void 0===i&&(i=!1),s=t,t=Array.isArray(s)?s.map(pl):[pl(s)],e=S(e);var s,r=[];if(t.length)for(var n=0;n<e.length;){var a=(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3])>>>0,o=e.subarray(n+4,n+8);if(0==a)break;a=n+a;if(a>e.length){if(i)break;a=e.length}var l=e.subarray(n+8,a);E(o,t[0])&&(1===t.length?r.push(l):r.push.apply(r,ml(l,t.slice(1),i))),n=a}return r}function gl(e,t,i){var s;return i>=t.length?t.length:(s=Cl(t,i,!1),E(e.bytes,s.bytes)?i:gl(e,t,i+(e=Cl(t,i+s.length)).length+e.value+s.length))}function fl(e,t){i=t,t=Array.isArray(i)?i.map(function(e){return Il(e)}):[Il(i)],e=S(e);var i,s=[];if(t.length)for(var r=0;r<e.length;){var n=Cl(e,r,!1),a=Cl(e,r+n.length),o=r+n.length+a.length,l=(127===a.value&&(a.value=gl(n,e,o),a.value!==e.length)&&(a.value-=o),o+a.value>e.length?e.length:o+a.value),o=e.subarray(o,l);E(t[0],n.bytes)&&(1===t.length?s.push(o):s=s.concat(fl(o,t.slice(1)))),r+=n.length+a.length+o.length}return s}function yl(e,t,i,s){void 0===s&&(s=1/0),e=S(e),i=[].concat(i);for(var r,n=0,a=0;n<e.length&&(a<s||r);){var o=void 0;if(E(e.subarray(n),xl)?o=4:E(e.subarray(n),Al)&&(o=3),o){if(a++,r)return Ll(e.subarray(r,n));var l=void 0;"h264"===t?l=31&e[n+o]:"h265"===t&&(l=e[n+o]>>1&63),-1!==i.indexOf(l)&&(r=n+o),n+=o+("h264"===t?1:2)}else n++}return e.subarray(0,0)}function _l(e){e=S(e);for(var t=0;t<Dl.length;t++){var i=Dl[t];if(Nl[i](e))return i}return""}var vl=Math.pow(2,32),bl=function(e){var t,e=new DataView(e.buffer,e.byteOffset,e.byteLength);return e.getBigUint64?(t=e.getBigUint64(0))<Number.MAX_SAFE_INTEGER?Number(t):t:e.getUint32(0)*vl+e.getUint32(4)},Tl=function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength),i={version:e[0],flags:new Uint8Array(e.subarray(1,4)),references:[],referenceId:t.getUint32(4),timescale:t.getUint32(8)},s=12,r=(0===i.version?(i.earliestPresentationTime=t.getUint32(s),i.firstOffset=t.getUint32(s+4),s+=8):(i.earliestPresentationTime=bl(e.subarray(s)),i.firstOffset=bl(e.subarray(s+8)),s+=16),t.getUint16(s+=2));for(s+=2;0<r;s+=12,r--)i.references.push({referenceType:(128&e[s])>>>7,referencedSize:2147483647&t.getUint32(s),subsegmentDuration:t.getUint32(s+4),startsWithSap:!!(128&e[s+8]),sapType:(112&e[s+8])>>>4,sapDeltaTime:268435455&t.getUint32(s+8)});return i},Sl=S([73,68,51]),wl={EBML:S([26,69,223,163]),DocType:S([66,130]),Segment:S([24,83,128,103]),SegmentInfo:S([21,73,169,102]),Tracks:S([22,84,174,107]),Track:S([174]),TrackNumber:S([215]),DefaultDuration:S([35,227,131]),TrackEntry:S([174]),TrackType:S([131]),FlagDefault:S([136]),CodecID:S([134]),CodecPrivate:S([99,162]),VideoTrack:S([224]),AudioTrack:S([225]),Cluster:S([31,67,182,117]),Timestamp:S([231]),TimestampScale:S([42,215,177]),BlockGroup:S([160]),BlockDuration:S([155]),Block:S([161]),SimpleBlock:S([163])},El=[128,64,32,16,8,4,2,1],kl=function(e){for(var t=1,i=0;i<El.length&&!(e&El[i]);i++)t++;return t},Cl=function(e,t,i,s){void 0===i&&(i=!0),void 0===s&&(s=!1);var r=kl(e[t]),n=e.subarray(t,t+r);return i&&((n=Array.prototype.slice.call(e,t,t+r))[0]^=El[r-1]),{length:r,value:$n(n,{signed:s}),bytes:n}},Il=function e(t){return"string"==typeof t?t.match(/.{1,2}/g).map(e):"number"==typeof t?Pn(t):t},xl=S([0,0,0,1]),Al=S([0,0,1]),Pl=S([0,0,3]),Ll=function(e){for(var t=[],i=1;i<e.length-2;)E(e.subarray(i,i+3),Pl)&&(t.push(i+2),i++),i++;if(0===t.length)return e;for(var s=e.length-t.length,r=new Uint8Array(s),n=0,i=0;i<s;n++,i++)n===t[0]&&(n++,t.shift()),r[i]=e[n];return r},L={webm:S([119,101,98,109]),matroska:S([109,97,116,114,111,115,107,97]),flac:S([102,76,97,67]),ogg:S([79,103,103,83]),ac3:S([11,119]),riff:S([82,73,70,70]),avi:S([65,86,73]),wav:S([87,65,86,69]),"3gp":S([102,116,121,112,51,103]),mp4:S([102,116,121,112]),fmp4:S([115,116,121,112]),mov:S([102,116,121,112,113,116]),moov:S([109,111,111,118]),moof:S([109,111,111,102])},Ol={aac:function(e){var t=cl(e);return E(e,[255,16],{offset:t,mask:[255,22]})},mp3:function(e){var t=cl(e);return E(e,[255,2],{offset:t,mask:[255,6]})},webm:function(e){e=fl(e,[wl.EBML,wl.DocType])[0];return E(e,L.webm)},mkv:function(e){e=fl(e,[wl.EBML,wl.DocType])[0];return E(e,L.matroska)},mp4:function(e){return!Ol["3gp"](e)&&!Ol.mov(e)&&(!!(E(e,L.mp4,{offset:4})||E(e,L.fmp4,{offset:4})||E(e,L.moof,{offset:4})||E(e,L.moov,{offset:4}))||void 0)},mov:function(e){return E(e,L.mov,{offset:4})},"3gp":function(e){return E(e,L["3gp"],{offset:4})},ac3:function(e){var t=cl(e);return E(e,L.ac3,{offset:t})},ts:function(e){if(e.length<189&&1<=e.length)return 71===e[0];for(var t=0;t+188<e.length&&t<188;){if(71===e[t]&&71===e[t+188])return!0;t+=1}return!1},flac:function(e){var t=cl(e);return E(e,L.flac,{offset:t})},ogg:function(e){return E(e,L.ogg)},avi:function(e){return E(e,L.riff)&&E(e,L.avi,{offset:8})},wav:function(e){return E(e,L.riff)&&E(e,L.wav,{offset:8})},h264:function(e){return yl(e,"h264",7,3).length},h265:function(e){return yl(e,"h265",[32,33],3).length}},Dl=Object.keys(Ol).filter(function(e){return"ts"!==e&&"h264"!==e&&"h265"!==e}).concat(["ts","h264","h265"]),Nl=(Dl.forEach(function(e){var t=Ol[e];Ol[e]=function(e){return t(S(e))}}),Ol),Ml=9e4;
- /*! @name @videojs/http-streaming @version 3.0.2 @license Apache-2.0 */
- const Rl=function(e,t){if(/^[a-z]+:/i.test(t))return t;/^data:/.test(e)&&(e=window.location&&window.location.href||"");var i="function"==typeof window.URL,s=/^\/\//.test(e),r=!window.location&&!/\/\//i.test(e);return i?e=new window.URL(e,window.location||fn):/\/\//i.test(e)||(e=gn.buildAbsoluteURL(window.location&&window.location.href||"",e)),i?(i=new URL(t,e),r?i.href.slice(fn.length):s?i.href.slice(i.protocol.length):i.href):gn.buildAbsoluteURL(e,t)},Ul=(e,t)=>t&&t.responseURL&&e!==t.responseURL?t.responseURL:e,Bl=e=>T.log.debug?T.log.debug.bind(T,"VHS:",e+" >"):function(){};function O(...e){var t=T.obj||T;return(t.merge||t.mergeOptions).apply(t,e)}function Fl(...e){var t=T.time||T;return(t.createTimeRanges||t.createTimeRanges).apply(t,e)}function jl(e,i){return Xl(e,function(e,t){return e-zl<=i&&t+zl>=i})}function Hl(e,t){return Xl(e,function(e){return e-Gl>=t})}function ql(e){if(e&&e.length&&e.end)return e.end(e.length-1)}function Vl(t,i){let s=0;if(t&&t.length)for(let e=0;e<t.length;e++){var r=t.start(e),n=t.end(e);n<i||(s+=r<i&&i<=n?n-i:n-r)}return s}function $l({defaultDuration:t,durationList:i,startIndex:s,endIndex:r}){let n=0;if(r<s&&([s,r]=[r,s]),s<0){for(let e=s;e<Math.min(0,r);e++)n+=t;s=0}for(let e=s;e<r;e++)n+=i[e].duration;return n}function Wl(e,t,i,s){if(!e||!e.segments)return null;if(e.endList)return nd(e);if(null===t)return null;t=t||0;let r=rd(e,e.mediaSequence+e.segments.length,t);return i&&(s="number"==typeof s?s:td(null,e),r-=s),Math.max(0,r)}const Gl=1/30,zl=3*Gl,Xl=function(e,t){var i=[];let s;if(e&&e.length)for(s=0;s<e.length;s++)t(e.start(s),e.end(s))&&i.push([e.start(s),e.end(s)]);return Fl(i)},Kl=t=>{var i=[];if(!t||!t.length)return"";for(let e=0;e<t.length;e++)i.push(t.start(e)+" => "+t.end(e));return i.join(", ")},Yl=t=>{var i=[];for(let e=0;e<t.length;e++)i.push({start:t.start(e),end:t.end(e)});return i},Ql=(t,e)=>{if(!e.preload)return e.duration;let i=0;return(e.parts||[]).forEach(function(e){i+=e.duration}),(e.preloadHints||[]).forEach(function(e){"PART"===e.type&&(i+=t.partTargetDuration)}),i},Jl=e=>(e.segments||[]).reduce((i,s,r)=>(s.parts?s.parts.forEach(function(e,t){i.push({duration:e.duration,segmentIndex:r,partIndex:t,part:e,segment:s})}):i.push({duration:s.duration,segmentIndex:r,partIndex:null,segment:s,part:null}),i),[]),Zl=e=>{e=e.segments&&e.segments.length&&e.segments[e.segments.length-1];return e&&e.parts||[]},ed=({preloadSegment:e})=>{var t;if(e)return{parts:e,preloadHints:t}=e,(t||[]).reduce((e,t)=>e+("PART"===t.type?1:0),0)+(e&&e.length?e.length:0)},td=(e,t)=>{return t.endList?0:e&&e.suggestedPresentationDelay?e.suggestedPresentationDelay:(e=0<Zl(t).length)&&t.serverControl&&t.serverControl.partHoldBack?t.serverControl.partHoldBack:e&&t.partTargetDuration?3*t.partTargetDuration:t.serverControl&&t.serverControl.holdBack?t.serverControl.holdBack:t.targetDuration?3*t.targetDuration:0},id=function(e,t){let i=0,s=t-e.mediaSequence,r=e.segments[s];if(r){if("undefined"!=typeof r.start)return{result:r.start,precise:!0};if("undefined"!=typeof r.end)return{result:r.end-r.duration,precise:!0}}for(;s--;){if("undefined"!=typeof(r=e.segments[s]).end)return{result:i+r.end,precise:!0};if(i+=Ql(e,r),"undefined"!=typeof r.start)return{result:i+r.start,precise:!0}}return{result:i,precise:!1}},sd=function(e,t){let i=0;var s;let r=t-e.mediaSequence;for(;r<e.segments.length;r++){if("undefined"!=typeof(s=e.segments[r]).start)return{result:s.start-i,precise:!0};if(i+=Ql(e,s),"undefined"!=typeof s.end)return{result:s.end-i,precise:!0}}return{result:-1,precise:!1}},rd=function(e,t,i){var s;return(t="undefined"==typeof t?e.mediaSequence+e.segments.length:t)<e.mediaSequence?0:(s=id(e,t)).precise?s.result:(e=sd(e,t)).precise?e.result:s.result+i},nd=function(e,t,i){if(!e)return 0;if("number"!=typeof i&&(i=0),"undefined"==typeof t){if(e.totalDuration)return e.totalDuration;if(!e.endList)return window.Infinity}return rd(e,t,i)};function ad(e){return e.excludeUntil&&e.excludeUntil>Date.now()}function od(e){return e.excludeUntil&&e.excludeUntil===1/0}function ld(e){var t=ad(e);return!e.disabled&&!t}function dd(e,t){return t.attributes&&t.attributes[e]}function hd(e,t){var i=e&&e.mediaGroups&&e.mediaGroups.AUDIO||{};let s=!1;for(const r in i){for(const n in i[r])if(s=t(i[r][n]))break;if(s)break}return!!s}const ud=(e,t)=>{if(1===e.playlists.length)return!0;const i=t.attributes.BANDWIDTH||Number.MAX_VALUE;return 0===e.playlists.filter(e=>!!ld(e)&&(e.attributes.BANDWIDTH||0)<i).length},cd=(e,t)=>!(!e&&!t||!e&&t||e&&!t||e!==t&&(!e.id||!t.id||e.id!==t.id)&&(!e.resolvedUri||!t.resolvedUri||e.resolvedUri!==t.resolvedUri)&&(!e.uri||!t.uri||e.uri!==t.uri)),pd=t=>{if(!t||!t.playlists||!t.playlists.length)return hd(t,e=>e.playlists&&e.playlists.length||e.uri);for(let e=0;e<t.playlists.length;e++){const s=t.playlists[e];var i=s.attributes&&s.attributes.CODECS;if(!i||!i.split(",").every(e=>Cn(e))){i=hd(t,e=>cd(s,e));if(!i)return!1}}return!0};var md={liveEdgeDelay:td,duration:nd,seekable:function(e,t,i){var s=t||0,e=Wl(e,t,!0,i);return null===e?Fl():Fl(s,e)},getMediaInfoForTime:function({playlist:t,currentTime:i,startingSegmentIndex:s,startingPartIndex:r,startTime:n,exactManifestTimings:a}){let o=i-n;var l=Jl(t);let d=0;for(let e=0;e<l.length;e++){var h=l[e];if(s===h.segmentIndex&&("number"!=typeof r||"number"!=typeof h.partIndex||r===h.partIndex)){d=e;break}}if(o<0){if(0<d)for(let e=d-1;0<=e;e--){var u=l[e];if(o+=u.duration,a){if(o<0)continue}else if(o+Gl<=0)continue;return{partIndex:u.partIndex,segmentIndex:u.segmentIndex,startTime:n-$l({defaultDuration:t.targetDuration,durationList:l,startIndex:d,endIndex:e})}}return{partIndex:l[0]&&l[0].partIndex||null,segmentIndex:l[0]&&l[0].segmentIndex||0,startTime:i}}if(d<0){for(let e=d;e<0;e++)if((o-=t.targetDuration)<0)return{partIndex:l[0]&&l[0].partIndex||null,segmentIndex:l[0]&&l[0].segmentIndex||0,startTime:i};d=0}for(let e=d;e<l.length;e++){var c=l[e];if(o-=c.duration,a){if(0<o)continue}else if(0<=o-Gl)continue;return{partIndex:c.partIndex,segmentIndex:c.segmentIndex,startTime:n+$l({defaultDuration:t.targetDuration,durationList:l,startIndex:d,endIndex:e})}}return{segmentIndex:l[l.length-1].segmentIndex,partIndex:l[l.length-1].partIndex,startTime:i}},isEnabled:ld,isDisabled:function(e){return e.disabled},isExcluded:ad,isIncompatible:od,playlistEnd:Wl,isAes:function(t){for(let e=0;e<t.segments.length;e++)if(t.segments[e].key)return!0;return!1},hasAttribute:dd,estimateSegmentRequestTime:function(e,t,i,s=0){return dd("BANDWIDTH",i)?(e*i.attributes.BANDWIDTH-8*s)/t:NaN},isLowestEnabledRendition:ud,isAudioOnly:pd,playlistMatch:cd,segmentDurationWithParts:Ql};const gd=T["log"],fd=(e,t)=>e+"-"+t,yd=(r,n)=>{r.mediaGroups&&["AUDIO","SUBTITLES"].forEach(e=>{if(r.mediaGroups[e])for(const i in r.mediaGroups[e])for(const s in r.mediaGroups[e][i]){var t=r.mediaGroups[e][i][s];n(t,e,i,s)}})},_d=({playlist:e,uri:t,id:i})=>{e.id=i,e.playlistErrors_=0,t&&(e.uri=t),e.attributes=e.attributes||{}},vd=(o,e,l=(e,t,i)=>`placeholder-uri-${e}-${t}-`+i)=>{o.uri=e;for(let e=0;e<o.playlists.length;e++){var t;o.playlists[e].uri||(t="placeholder-uri-"+e,o.playlists[e].uri=t)}const i=pd(o);yd(o,(e,r,n,a)=>{if(!e.playlists||!e.playlists.length){if(i&&"AUDIO"===r&&!e.uri)for(let e=0;e<o.playlists.length;e++){var t=o.playlists[e];if(t.attributes&&t.attributes.AUDIO&&t.attributes.AUDIO===n)return}e.playlists=[fi({},e)]}e.playlists.forEach(function(e,t){var i=l(r,n,a,e),s=fd(t,i);e.uri?e.resolvedUri=e.resolvedUri||Rl(o.uri,e.uri):(e.uri=0===t?i:s,e.resolvedUri=e.uri),e.id=e.id||s,e.attributes=e.attributes||{},o.playlists[e.id]=e,o.playlists[e.uri]=e})});{var s=o;let e=s.playlists.length;for(;e--;){var r=s.playlists[e];_d({playlist:r,id:fd(e,r.uri)}),r.resolvedUri=Rl(s.uri,r.uri),s.playlists[r.id]=r,(s.playlists[r.uri]=r).attributes.BANDWIDTH||gd.warn("Invalid playlist STREAM-INF detected. Missing BANDWIDTH attribute.")}}var n;n=o,yd(n,e=>{e.uri&&(e.resolvedUri=Rl(n.uri,e.uri))})};Dr=T.EventTarget;function bd(e){var t=e.segments||[],i=e.preloadSegment;if(i&&i.parts&&i.parts.length){if(i.preloadHints)for(let e=0;e<i.preloadHints.length;e++)if("MAP"===i.preloadHints[e].type)return t;i.duration=e.targetDuration,i.preload=!0,t.push(i)}return t}const Td=(t,i)=>{if(!t)return i;var s=O(t,i);if(t.preloadHints&&!i.preloadHints&&delete s.preloadHints,t.parts&&!i.parts)delete s.parts;else if(t.parts&&i.parts)for(let e=0;e<i.parts.length;e++)t.parts&&t.parts[e]&&(s.parts[e]=O(t.parts[e],i.parts[e]));return!t.skipped&&i.skipped&&(s.skipped=!1),t.preload&&!i.preload&&(s.preload=!1),s},Sd=(e,t)=>{!e.resolvedUri&&e.uri&&(e.resolvedUri=Rl(t,e.uri)),e.key&&!e.key.resolvedUri&&(e.key.resolvedUri=Rl(t,e.key.uri)),e.map&&!e.map.resolvedUri&&(e.map.resolvedUri=Rl(t,e.map.uri)),e.map&&e.map.key&&!e.map.key.resolvedUri&&(e.map.key.resolvedUri=Rl(t,e.map.key.uri)),e.parts&&e.parts.length&&e.parts.forEach(e=>{e.resolvedUri||(e.resolvedUri=Rl(t,e.uri))}),e.preloadHints&&e.preloadHints.length&&e.preloadHints.forEach(e=>{e.resolvedUri||(e.resolvedUri=Rl(t,e.uri))})},wd=(e,t)=>e===t||e.segments&&t.segments&&e.segments.length===t.segments.length&&e.endList===t.endList&&e.mediaSequence===t.mediaSequence&&e.preloadSegment===t.preloadSegment,Ed=(e,r,t=wd)=>{var i=O(e,{}),s=i.playlists[r.id];if(!s)return null;if(t(s,r))return null;r.segments=bd(r);const n=O(s,r);if(n.preloadSegment&&!r.preloadSegment&&delete n.preloadSegment,s.segments){if(r.skip){r.segments=r.segments||[];for(let e=0;e<r.skip.skippedSegments;e++)r.segments.unshift({skipped:!0})}n.segments=((e,t,i)=>{var s=e.slice(),r=t.slice(),n=(i=i||0,[]);let a;for(let e=0;e<r.length;e++){var o=s[e+i],l=r[e];o?(a=o.map||a,n.push(Td(o,l))):(a&&!l.map&&(l.map=a),n.push(l))}return n})(s.segments,r.segments,r.mediaSequence-s.mediaSequence)}n.segments.forEach(e=>{Sd(e,n.resolvedUri)});for(let e=0;e<i.playlists.length;e++)i.playlists[e].id===r.id&&(i.playlists[e]=n);return i.playlists[r.id]=n,i.playlists[r.uri]=n,yd(e,(t,e,i,s)=>{if(t.playlists)for(let e=0;e<t.playlists.length;e++)r.id===t.playlists[e].id&&(t.playlists[e]=n)}),i},kd=(e,t)=>{var i=e.segments||[],i=i[i.length-1],s=i&&i.parts&&i.parts[i.parts.length-1],s=s&&s.duration||i&&i.duration;return t&&s?1e3*s:500*(e.partTargetDuration||e.targetDuration||10)};class Cd extends Dr{constructor(e,t,i={}){if(super(),!e)throw new Error("A non-empty playlist URL or object is required");this.logger_=Bl("PlaylistLoader");var{withCredentials:i=!1}=i,e=(this.src=e,this.vhs_=t,this.withCredentials=i,t.options_);this.customTagParsers=e&&e.customTagParsers||[],this.customTagMappers=e&&e.customTagMappers||[],this.llhls=e&&e.llhls,this.state="HAVE_NOTHING",this.handleMediaupdatetimeout_=this.handleMediaupdatetimeout_.bind(this),this.on("mediaupdatetimeout",this.handleMediaupdatetimeout_)}handleMediaupdatetimeout_(){if("HAVE_METADATA"===this.state){var t=this.media();let e=Rl(this.main.uri,t.uri);this.llhls&&(e=((e,t)=>{if(!t.endList&&t.serverControl){const r={};if(t.serverControl.canBlockReload){var i,s=t["preloadSegment"];let e=t.mediaSequence+t.segments.length;s&&(s=s.parts||[],-1<(i=ed(t)-1)&&i!=s.length-1&&(r._HLS_part=i),-1<i||s.length)&&e--,r._HLS_msn=e}if(t.serverControl&&t.serverControl.canSkipUntil&&(r._HLS_skip=t.serverControl.canSkipDateranges?"v2":"YES"),Object.keys(r).length){const n=new window.URL(e);["_HLS_skip","_HLS_msn","_HLS_part"].forEach(function(e){r.hasOwnProperty(e)&&n.searchParams.set(e,r[e])}),e=n.toString()}}return e})(e,t)),this.state="HAVE_CURRENT_METADATA",this.request=this.vhs_.xhr({uri:e,withCredentials:this.withCredentials},(e,t)=>{if(this.request)return e?this.playlistRequestError(this.request,this.media(),"HAVE_METADATA"):void this.haveMetadata({playlistString:this.request.responseText,url:this.media().uri,id:this.media().id})})}}playlistRequestError(e,t,i){var{uri:t,id:s}=t;this.request=null,i&&(this.state=i),this.error={playlist:this.main.playlists[s],status:e.status,message:`HLS playlist request error at URL: ${t}.`,responseText:e.responseText,code:500<=e.status?4:2},this.trigger("error")}parseManifest_({url:t,manifestString:i}){{var[{onwarn:i,oninfo:e,manifestString:s,customTagParsers:r=[],customTagMappers:n=[],llhls:a}]=[{onwarn:({message:e})=>this.logger_(`m3u8-parser warn for ${t}: `+e),oninfo:({message:e})=>this.logger_(`m3u8-parser info for ${t}: `+e),manifestString:i,customTagParsers:this.customTagParsers,customTagMappers:this.customTagMappers,llhls:this.llhls}];const o=new kn,l=(i&&o.on("warn",i),e&&o.on("info",e),r.forEach(e=>o.addParser(e)),n.forEach(e=>o.addTagMapper(e)),o.push(s),o.end(),o.manifest);if(a||(["preloadSegment","skip","serverControl","renditionReports","partInf","partTargetDuration"].forEach(function(e){l.hasOwnProperty(e)&&delete l[e]}),l.segments&&l.segments.forEach(function(t){["parts","preloadHints"].forEach(function(e){t.hasOwnProperty(e)&&delete t[e]})})),!l.targetDuration){let e=10;l.segments&&l.segments.length&&(e=l.segments.reduce((e,t)=>Math.max(e,t.duration),0)),i&&i("manifest has no targetDuration defaulting to "+e),l.targetDuration=e}return(e=Zl(l)).length&&!l.partTargetDuration&&(r=e.reduce((e,t)=>Math.max(e,t.duration),0),i&&(i("manifest has no partTargetDuration defaulting to "+r),gd.error("LL-HLS manifest has parts but lacks required #EXT-X-PART-INF:PART-TARGET value. See https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-09#section-4.4.3.7. Playback is not guaranteed.")),l.partTargetDuration=r),l}}haveMetadata({playlistString:e,playlistObject:t,url:i,id:s}){this.request=null,this.state="HAVE_METADATA";t=t||this.parseManifest_({url:i,manifestString:e}),t.lastRequest=Date.now(),_d({playlist:t,uri:i,id:s}),e=Ed(this.main,t);this.targetDuration=t.partTargetDuration||t.targetDuration,this.pendingMedia_=null,e?(this.main=e,this.media_=this.main.playlists[s]):this.trigger("playlistunchanged"),this.updateMediaUpdateTimeout_(kd(this.media(),!!e)),this.trigger("loadedplaylist")}dispose(){this.trigger("dispose"),this.stopRequest(),window.clearTimeout(this.mediaUpdateTimeout),window.clearTimeout(this.finalRenditionTimeout),this.off()}stopRequest(){var e;this.request&&(e=this.request,this.request=null,e.onreadystatechange=null,e.abort())}media(i,e){if(!i)return this.media_;if("HAVE_NOTHING"===this.state)throw new Error("Cannot switch media playlist from "+this.state);if("string"==typeof i){if(!this.main.playlists[i])throw new Error("Unknown playlist URI: "+i);i=this.main.playlists[i]}if(window.clearTimeout(this.finalRenditionTimeout),e)e=(i.partTargetDuration||i.targetDuration)/2*1e3||5e3,this.finalRenditionTimeout=window.setTimeout(this.media.bind(this,i,!1),e);else{const s=this.state;var e=!this.media_||i.id!==this.media_.id,t=this.main.playlists[i.id];if(t&&t.endList||i.endList&&i.segments.length)this.request&&(this.request.onreadystatechange=null,this.request.abort(),this.request=null),this.state="HAVE_METADATA",this.media_=i,e&&(this.trigger("mediachanging"),"HAVE_MAIN_MANIFEST"===s?this.trigger("loadedmetadata"):this.trigger("mediachange"));else if(this.updateMediaUpdateTimeout_(kd(i,!0)),e){if(this.state="SWITCHING_MEDIA",this.request){if(i.resolvedUri===this.request.url)return;this.request.onreadystatechange=null,this.request.abort(),this.request=null}this.media_&&this.trigger("mediachanging"),this.pendingMedia_=i,this.request=this.vhs_.xhr({uri:i.resolvedUri,withCredentials:this.withCredentials},(e,t)=>{if(this.request){if(i.lastRequest=Date.now(),i.resolvedUri=Ul(i.resolvedUri,t),e)return this.playlistRequestError(this.request,i,s);this.haveMetadata({playlistString:t.responseText,url:i.uri,id:i.id}),"HAVE_MAIN_MANIFEST"===s?this.trigger("loadedmetadata"):this.trigger("mediachange")}})}}}pause(){this.mediaUpdateTimeout&&(window.clearTimeout(this.mediaUpdateTimeout),this.mediaUpdateTimeout=null),this.stopRequest(),"HAVE_NOTHING"===this.state&&(this.started=!1),"SWITCHING_MEDIA"===this.state?this.media_?this.state="HAVE_METADATA":this.state="HAVE_MAIN_MANIFEST":"HAVE_CURRENT_METADATA"===this.state&&(this.state="HAVE_METADATA")}load(e){this.mediaUpdateTimeout&&(window.clearTimeout(this.mediaUpdateTimeout),this.mediaUpdateTimeout=null);var t=this.media();e?(e=t?(t.partTargetDuration||t.targetDuration)/2*1e3:5e3,this.mediaUpdateTimeout=window.setTimeout(()=>{this.mediaUpdateTimeout=null,this.load()},e)):this.started?t&&!t.endList?this.trigger("mediaupdatetimeout"):this.trigger("loadedplaylist"):this.start()}updateMediaUpdateTimeout_(e){this.mediaUpdateTimeout&&(window.clearTimeout(this.mediaUpdateTimeout),this.mediaUpdateTimeout=null),this.media()&&!this.media().endList&&(this.mediaUpdateTimeout=window.setTimeout(()=>{this.mediaUpdateTimeout=null,this.trigger("mediaupdatetimeout"),this.updateMediaUpdateTimeout_(e)},e))}start(){this.started=!0,"object"==typeof this.src?(this.src.uri||(this.src.uri=window.location.href),this.src.resolvedUri=this.src.uri,setTimeout(()=>{this.setupInitialPlaylist(this.src)},0)):this.request=this.vhs_.xhr({uri:this.src,withCredentials:this.withCredentials},(e,t)=>{if(this.request){if(this.request=null,e)return this.error={status:t.status,message:`HLS playlist request error at URL: ${this.src}.`,responseText:t.responseText,code:2},"HAVE_NOTHING"===this.state&&(this.started=!1),this.trigger("error");this.src=Ul(this.src,t);e=this.parseManifest_({manifestString:t.responseText,url:this.src});this.setupInitialPlaylist(e)}})}srcUri(){return"string"==typeof this.src?this.src:this.src.uri}setupInitialPlaylist(e){var t,i,s,r;this.state="HAVE_MAIN_MANIFEST",e.playlists?(this.main=e,vd(this.main,this.srcUri()),e.playlists.forEach(t=>{t.segments=bd(t),t.segments.forEach(e=>{Sd(e,t.resolvedUri)})}),this.trigger("loadedplaylist"),this.request||this.media(this.main.playlists[0])):(t=this.srcUri()||window.location.href,this.main=(i=t,s=fd(0,i),(r={mediaGroups:{AUDIO:{},VIDEO:{},"CLOSED-CAPTIONS":{},SUBTITLES:{}},uri:window.location.href,resolvedUri:window.location.href,playlists:[{uri:i,id:s,resolvedUri:i,attributes:{}}]}).playlists[s]=r.playlists[0],r.playlists[i]=r.playlists[0],r),this.haveMetadata({playlistObject:e,url:t,id:this.main.playlists[0].id}),this.trigger("loadedmetadata"))}}function Id(e,t,i,s){var r="arraybuffer"===e.responseType?e.response:e.responseText;!t&&r&&(e.responseTime=Date.now(),e.roundTripTime=e.responseTime-e.requestTime,e.bytesReceived=r.byteLength||r.length,e.bandwidth||(e.bandwidth=Math.floor(e.bytesReceived/e.roundTripTime*8*1e3))),i.headers&&(e.responseHeaders=i.headers),t&&"ETIMEDOUT"===t.code&&(e.timedout=!0),s(t=t||e.aborted||200===i.statusCode||206===i.statusCode||0===i.statusCode?t:new Error("XHR Failed with a response of: "+(e&&(r||e.responseText))),e)}function xd(){function n(e,i){e=O({timeout:45e3},e);var t=n.beforeRequest||T.Vhs.xhr.beforeRequest;t&&"function"==typeof t&&(t=t(e))&&(e=t);const s=(!0===T.Vhs.xhr.original?Md:T.Vhs.xhr)(e,function(e,t){return Id(s,e,t,i)}),r=s.abort;return s.abort=function(){return s.aborted=!0,r.apply(s,arguments)},s.uri=e.uri,s.requestTime=Date.now(),s}return n.original=!0,n}function Ad(e){var t={};return e.byterange&&(t.Range=function(e){let t;return"bytes="+e.offset+"-"+(t="bigint"==typeof e.offset||"bigint"==typeof e.length?window.BigInt(e.offset)+window.BigInt(e.length)-window.BigInt(1):e.offset+e.length-1)}(e.byterange)),t}function Pd(e,t){return e=e.toString(16),"00".substring(0,2-e.length)+e+(t%2?" ":"")}function Ld(e){return 32<=e&&e<126?String.fromCharCode(e):"."}function Od(i){const s={};return Object.keys(i).forEach(e=>{var t=i[e];qn(t)?s[e]={bytes:t.buffer,byteOffset:t.byteOffset,byteLength:t.byteLength}:s[e]=t}),s}function Dd(e){var t=e.byterange||{length:1/0,offset:0};return[t.length,t.offset,e.resolvedUri].join(",")}function Nd(e){return e.resolvedUri}const Md=T["xhr"],Rd=e=>{var t,i,s=Array.prototype.slice.call(e);let r="";for(let e=0;e<s.length/16;e++)t=s.slice(16*e,16*e+16).map(Pd).join(""),i=s.slice(16*e,16*e+16).map(Ld).join(""),r+=t+" "+i+"\n";return r};Or=Object.freeze({__proto__:null,createTransferableMessage:Od,initSegmentId:Dd,segmentKeyId:Nd,hexDump:Rd,tagDump:({bytes:e})=>Rd(e),textRanges:e=>{let t="",i;for(i=0;i<e.length;i++)t+=(s=e,r=i,s.start(r)+"-"+s.end(r)+" ");var s,r;return t}});const Ud=.25,Bd=e=>e.transmuxedPresentationEnd-e.transmuxedPresentationStart-e.transmuxerPrependedSeconds,Fd=({playlist:e,time:t=void 0,callback:i})=>{var s,r;if(i)return e&&void 0!==t?(e=((t,i)=>{if(!i||!i.segments||0===i.segments.length)return null;let s=0,r;for(let e=0;e<i.segments.length&&(r=i.segments[e],!(t<=(s=r.videoTimingInfo?r.videoTimingInfo.transmuxedPresentationEnd:s+r.duration)));e++);var e=i.segments[i.segments.length-1];if(e.videoTimingInfo&&e.videoTimingInfo.transmuxedPresentationEnd<t)return null;if(t>s){if(t>s+e.duration*Ud)return null;r=e}return{segment:r,estimatedStart:r.videoTimingInfo?r.videoTimingInfo.transmuxedPresentationStart:s-r.duration,type:r.videoTimingInfo?"accurate":"estimate"}})(t,e))?"estimate"===e.type?i({message:"Accurate programTime could not be determined. Please seek to e.seekTime and try again",seekTime:e.estimatedStart}):(s={mediaSeconds:t},t=t,(r=(e=e.segment).dateTimeObject?(r=e.videoTimingInfo.transmuxerPrependedSeconds,t=t-(e.videoTimingInfo.transmuxedPresentationStart+r),new Date(e.dateTimeObject.getTime()+1e3*t)):null)&&(s.programDateTime=r.toISOString()),i(null,s)):i({message:"valid programTime was not found"}):i({message:"getProgramTime: playlist and time must be provided"});throw new Error("getProgramTime: callback must be provided")},jd=({programTime:e,playlist:t,retryCount:i=2,seekTo:s,pauseAfterSeek:r=!0,tech:n,callback:a})=>{var o,l,d;if(a)return"undefined"!=typeof e&&t&&s?t.endList||n.hasStarted_?(t=>{if(!t.segments||0===t.segments.length)return!1;for(let e=0;e<t.segments.length;e++)if(!t.segments[e].dateTimeObject)return!1;return!0})(t)?(d=((e,t)=>{let i;try{i=new Date(e)}catch(e){return null}if(!t||!t.segments||0===t.segments.length)return null;let s=t.segments[0];if(i<s.dateTimeObject)return null;for(let e=0;e<t.segments.length-1;e++){s=t.segments[e];var r=t.segments[e+1].dateTimeObject;if(i<r)break}var e=t.segments[t.segments.length-1],n=e.dateTimeObject,a=e.videoTimingInfo?Bd(e.videoTimingInfo):e.duration+e.duration*Ud,a=new Date(n.getTime()+1e3*a);return i>a?null:{segment:s=i>n?e:s,estimatedStart:s.videoTimingInfo?s.videoTimingInfo.transmuxedPresentationStart:md.duration(t,t.mediaSequence+t.segments.indexOf(s)),type:s.videoTimingInfo?"accurate":"estimate"}})(e,t))?(l=((e,t)=>{let i,s;try{i=new Date(e),s=new Date(t)}catch(e){}e=i.getTime();return(s.getTime()-e)/1e3})((o=d.segment).dateTimeObject,e),"estimate"===d.type?0===i?a({message:e+" is not buffered yet. Try again"}):(s(d.estimatedStart+l),void n.one("seeked",()=>{jd({programTime:e,playlist:t,retryCount:i-1,seekTo:s,pauseAfterSeek:r,tech:n,callback:a})})):(d=o.start+l,n.one("seeked",()=>a(null,n.currentTime())),r&&n.pause(),void s(d))):a({message:e+" was not found in the stream"}):a({message:"programDateTime tags must be provided in the manifest "+t.resolvedUri}):a({message:"player must be playing a live stream to start buffering"}):a({message:"seekToProgramTime: programTime, seekTo and playlist must be provided"});throw new Error("seekToProgramTime: callback must be provided")},Hd=(e,t)=>{if(4===e.readyState)return t()},qd=(e,t,r)=>{let s=[],n,a=!1;function o(e,t,i,s){return t.abort(),a=!0,r(e,t,i,s)}function i(e,t){var i;if(!a)return e?o(e,t,"",s):(i=t.responseText.substring(s&&s.byteLength||0,t.responseText.length),s=function(){for(var e,t,i,s=arguments.length,r=new Array(s),n=0;n<s;n++)r[n]=arguments[n];return(r=r.filter(function(e){return e&&(e.byteLength||e.length)&&"string"!=typeof e})).length<=1?S(r[0]):(e=r.reduce(function(e,t,i){return e+(t.byteLength||t.length)},0),t=new Uint8Array(e),i=0,r.forEach(function(e){e=S(e),t.set(e,i),i+=e.byteLength}),t)}(s,Ln(i,!0)),n=n||cl(s),s.length<10||n&&s.length<n+2||"ts"===(i=_l(s))&&s.length<188||!i&&s.length<376?Hd(t,()=>o(e,t,"",s)):o(null,t,i,s))}const l=t({uri:e,beforeSend(e){e.overrideMimeType("text/plain; charset=x-user-defined"),e.addEventListener("progress",function({}){return Id(e,null,{statusCode:e.status},i)})}},function(e,t){return Id(l,e,t,i)});return l};Mi=T.EventTarget;function Vd(t,i){if(!wd(t,i))return!1;if(t.sidx&&i.sidx&&(t.sidx.offset!==i.sidx.offset||t.sidx.length!==i.sidx.length))return!1;if(!t.sidx&&i.sidx||t.sidx&&!i.sidx)return!1;if(t.segments&&!i.segments||!t.segments&&i.segments)return!1;if(t.segments||i.segments)for(let e=0;e<t.segments.length;e++){var s=t.segments[e],r=i.segments[e];if(s.uri!==r.uri)return!1;if(s.byterange||r.byterange){s=s.byterange,r=r.byterange;if(s&&!r||!s&&r)return!1;if(s.offset!==r.offset||s.length!==r.length)return!1}}return!0}const $d=(e,t,i,s)=>{return`placeholder-uri-${e}-${t}-`+(s.attributes.NAME||i)},Wd=({mainXml:e,srcUrl:t,clientOffset:i,sidxMapping:s,previousManifest:r})=>{e=e,i={manifestUri:t,clientOffset:i,sidxMapping:s,previousManifest:r},e=dl(hl(e),i),s=tl(e.representationInfo);r=Xo({dashPlaylists:s,locations:e.locations,sidxMapping:i.sidxMapping,previousManifest:i.previousManifest});return vd(r,t,$d),r},Gd=(e,t,i)=>{let a=!0,o=O(e,{duration:t.duration,minimumUpdatePeriod:t.minimumUpdatePeriod,timelineStarts:t.timelineStarts});for(let e=0;e<t.playlists.length;e++){var s=t.playlists[e],r=(s.sidx&&(r=Fo(s.sidx),i)&&i[r]&&i[r].sidx&&Do(s,i[r].sidx,s.sidx.resolvedUri),Ed(o,s,Vd));r&&(o=r,a=!1)}var n,l;return yd(t,(e,t,i,s)=>{var r,n;e.playlists&&e.playlists.length&&(r=e.playlists[0].id,n=Ed(o,e.playlists[0],Vd))&&(s in(o=n).mediaGroups[t][i]||(o.mediaGroups[t][i][s]=e),o.mediaGroups[t][i][s].playlists[0]=o.playlists[r],a=!1)}),n=o,l=t,yd(n,(e,t,i,s)=>{s in l.mediaGroups[t][i]||delete n.mediaGroups[t][i][s]}),(a=t.minimumUpdatePeriod===e.minimumUpdatePeriod&&a)?null:o},zd=(e,t)=>{return(Boolean(!e.map&&!t.map)||Boolean(e.map&&t.map&&e.map.byterange.offset===t.map.byterange.offset&&e.map.byterange.length===t.map.byterange.length))&&e.uri===t.uri&&e.byterange.offset===t.byterange.offset&&e.byterange.length===t.byterange.length},Xd=(e,t)=>{var i={};for(const a in e){var s=e[a].sidx;if(s){var r=Fo(s);if(!t[r])break;var n=t[r].sidxInfo;zd(n,s)&&(i[r]=t[r])}}return i};class Kd extends Mi{constructor(e,t,i={},s){super(),this.mainPlaylistLoader_=s||this,s||(this.isMain_=!0);var{withCredentials:s=!1}=i;if(this.vhs_=t,this.withCredentials=s,!e)throw new Error("A non-empty playlist URL or object is required");this.on("minimumUpdatePeriod",()=>{this.refreshXml_()}),this.on("mediaupdatetimeout",()=>{this.refreshMedia_(this.media().id)}),this.state="HAVE_NOTHING",this.loadedPlaylists_={},this.logger_=Bl("DashPlaylistLoader"),this.isMain_?(this.mainPlaylistLoader_.srcUrl=e,this.mainPlaylistLoader_.sidxMapping_={}):this.childPlaylist_=e}requestErrored_(e,t,i){return!this.request||(this.request=null,e?(this.error="object"!=typeof e||e instanceof Error?{status:t.status,message:"DASH request error at URL: "+t.uri,response:t.response,code:2}:e,i&&(this.state=i),this.trigger("error"),!0):void 0)}addSidxSegments_(a,s,r){const n=a.sidx&&Fo(a.sidx);if(a.sidx&&n&&!this.mainPlaylistLoader_.sidxMapping_[n]){const o=Ul(a.sidx.resolvedUri),l=(t,i)=>{if(!this.requestErrored_(t,i,s)){t=this.mainPlaylistLoader_.sidxMapping_;let e;try{e=Tl(S(i.response).subarray(8))}catch(e){return void this.requestErrored_(e,i,s)}return t[n]={sidxInfo:a.sidx,sidx:e},Do(a,e,a.sidx.resolvedUri),r(!0)}};this.request=qd(o,this.vhs_.xhr,(e,t,i,s)=>{var r,n;return e?l(e,t):i&&"mp4"===i?({offset:r,length:n}=a.sidx.byterange,s.length>=n+r?l(e,{response:s.subarray(r,r+n),status:t.status,uri:t.uri}):void(this.request=this.vhs_.xhr({uri:o,responseType:"arraybuffer",headers:Ad({byterange:a.sidx.byterange})},l))):l({status:t.status,message:`Unsupported ${i||"unknown"} container type for sidx segment at URL: `+o,response:"",playlist:a,internal:!0,playlistExclusionDuration:1/0,code:2},t)})}else this.mediaRequest_=window.setTimeout(()=>r(!1),0)}dispose(){this.trigger("dispose"),this.stopRequest(),this.loadedPlaylists_={},window.clearTimeout(this.minimumUpdatePeriodTimeout_),window.clearTimeout(this.mediaRequest_),window.clearTimeout(this.mediaUpdateTimeout),this.mediaUpdateTimeout=null,this.mediaRequest_=null,this.minimumUpdatePeriodTimeout_=null,this.mainPlaylistLoader_.createMupOnMedia_&&(this.off("loadedmetadata",this.mainPlaylistLoader_.createMupOnMedia_),this.mainPlaylistLoader_.createMupOnMedia_=null),this.off()}hasPendingRequest(){return this.request||this.mediaRequest_}stopRequest(){var e;this.request&&(e=this.request,this.request=null,e.onreadystatechange=null,e.abort())}media(t){if(!t)return this.media_;if("HAVE_NOTHING"===this.state)throw new Error("Cannot switch media playlist from "+this.state);const i=this.state;if("string"==typeof t){if(!this.mainPlaylistLoader_.main.playlists[t])throw new Error("Unknown playlist URI: "+t);t=this.mainPlaylistLoader_.main.playlists[t]}var e=!this.media_||t.id!==this.media_.id;e&&this.loadedPlaylists_[t.id]&&this.loadedPlaylists_[t.id].endList?(this.state="HAVE_METADATA",this.media_=t,e&&(this.trigger("mediachanging"),this.trigger("mediachange"))):e&&(this.media_&&this.trigger("mediachanging"),this.addSidxSegments_(t,i,e=>{this.haveMetadata({startingState:i,playlist:t})}))}haveMetadata({startingState:e,playlist:t}){this.state="HAVE_METADATA",this.loadedPlaylists_[t.id]=t,this.mediaRequest_=null,this.refreshMedia_(t.id),"HAVE_MAIN_MANIFEST"===e?this.trigger("loadedmetadata"):this.trigger("mediachange")}pause(){this.mainPlaylistLoader_.createMupOnMedia_&&(this.off("loadedmetadata",this.mainPlaylistLoader_.createMupOnMedia_),this.mainPlaylistLoader_.createMupOnMedia_=null),this.stopRequest(),window.clearTimeout(this.mediaUpdateTimeout),this.mediaUpdateTimeout=null,this.isMain_&&(window.clearTimeout(this.mainPlaylistLoader_.minimumUpdatePeriodTimeout_),this.mainPlaylistLoader_.minimumUpdatePeriodTimeout_=null),"HAVE_NOTHING"===this.state&&(this.started=!1)}load(e){window.clearTimeout(this.mediaUpdateTimeout),this.mediaUpdateTimeout=null;var t=this.media();e?(e=t?t.targetDuration/2*1e3:5e3,this.mediaUpdateTimeout=window.setTimeout(()=>this.load(),e)):this.started?t&&!t.endList?(this.isMain_&&!this.minimumUpdatePeriodTimeout_&&(this.trigger("minimumUpdatePeriod"),this.updateMinimumUpdatePeriodTimeout_()),this.trigger("mediaupdatetimeout")):this.trigger("loadedplaylist"):this.start()}start(){this.started=!0,this.isMain_?this.requestMain_((e,t)=>{this.haveMain_(),this.hasPendingRequest()||this.media_||this.media(this.mainPlaylistLoader_.main.playlists[0])}):this.mediaRequest_=window.setTimeout(()=>this.haveMain_(),0)}requestMain_(s){this.request=this.vhs_.xhr({uri:this.mainPlaylistLoader_.srcUrl,withCredentials:this.withCredentials},(e,t)=>{if(this.requestErrored_(e,t))"HAVE_NOTHING"===this.state&&(this.started=!1);else{const i=t.responseText!==this.mainPlaylistLoader_.mainXml_;if(this.mainPlaylistLoader_.mainXml_=t.responseText,t.responseHeaders&&t.responseHeaders.date?this.mainLoaded_=Date.parse(t.responseHeaders.date):this.mainLoaded_=Date.now(),this.mainPlaylistLoader_.srcUrl=Ul(this.mainPlaylistLoader_.srcUrl,t),!i)return s(t,i);this.handleMain_(),this.syncClientServerClock_(()=>s(t,i))}})}syncClientServerClock_(s){const r=ul(this.mainPlaylistLoader_.mainXml_);return null===r?(this.mainPlaylistLoader_.clientOffset_=this.mainLoaded_-Date.now(),s()):"DIRECT"===r.method?(this.mainPlaylistLoader_.clientOffset_=r.value-Date.now(),s()):void(this.request=this.vhs_.xhr({uri:Rl(this.mainPlaylistLoader_.srcUrl,r.value),method:r.method,withCredentials:this.withCredentials},(t,i)=>{if(this.request){if(t)return this.mainPlaylistLoader_.clientOffset_=this.mainLoaded_-Date.now(),s();let e;e="HEAD"===r.method?i.responseHeaders&&i.responseHeaders.date?Date.parse(i.responseHeaders.date):this.mainLoaded_:Date.parse(i.responseText),this.mainPlaylistLoader_.clientOffset_=e-Date.now(),s()}}))}haveMain_(){this.state="HAVE_MAIN_MANIFEST",this.isMain_?this.trigger("loadedplaylist"):this.media_||this.media(this.childPlaylist_)}handleMain_(){this.mediaRequest_=null;var e=this.mainPlaylistLoader_.main;let t=Wd({mainXml:this.mainPlaylistLoader_.mainXml_,srcUrl:this.mainPlaylistLoader_.srcUrl,clientOffset:this.mainPlaylistLoader_.clientOffset_,sidxMapping:this.mainPlaylistLoader_.sidxMapping_,previousManifest:e});e&&(t=Gd(e,t,this.mainPlaylistLoader_.sidxMapping_)),this.mainPlaylistLoader_.main=t||e;var i=this.mainPlaylistLoader_.main.locations&&this.mainPlaylistLoader_.main.locations[0];return i&&i!==this.mainPlaylistLoader_.srcUrl&&(this.mainPlaylistLoader_.srcUrl=i),(!e||t&&t.minimumUpdatePeriod!==e.minimumUpdatePeriod)&&this.updateMinimumUpdatePeriodTimeout_(),Boolean(t)}updateMinimumUpdatePeriodTimeout_(){var e=this.mainPlaylistLoader_;e.createMupOnMedia_&&(e.off("loadedmetadata",e.createMupOnMedia_),e.createMupOnMedia_=null),e.minimumUpdatePeriodTimeout_&&(window.clearTimeout(e.minimumUpdatePeriodTimeout_),e.minimumUpdatePeriodTimeout_=null);let t=e.main&&e.main.minimumUpdatePeriod;0===t&&(e.media()?t=1e3*e.media().targetDuration:(e.createMupOnMedia_=e.updateMinimumUpdatePeriodTimeout_,e.one("loadedmetadata",e.createMupOnMedia_))),"number"!=typeof t||t<=0?t<0&&this.logger_(`found invalid minimumUpdatePeriod of ${t}, not setting a timeout`):this.createMUPTimeout_(t)}createMUPTimeout_(e){const t=this.mainPlaylistLoader_;t.minimumUpdatePeriodTimeout_=window.setTimeout(()=>{t.minimumUpdatePeriodTimeout_=null,t.trigger("minimumUpdatePeriod"),t.createMUPTimeout_(e)},e)}refreshXml_(){this.requestMain_((e,t)=>{t&&(this.media_&&(this.media_=this.mainPlaylistLoader_.main.playlists[this.media_.id]),this.mainPlaylistLoader_.sidxMapping_=((e,r)=>{let n=Xd(e.playlists,r);return yd(e,(e,t,i,s)=>{e.playlists&&e.playlists.length&&(e=e.playlists,n=O(n,Xd(e,r)))}),n})(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.sidxMapping_),this.addSidxSegments_(this.media(),this.state,e=>{this.refreshMedia_(this.media().id)}))})}refreshMedia_(e){if(!e)throw new Error("refreshMedia_ must take a media id");this.media_&&this.isMain_&&this.handleMain_();var t=this.mainPlaylistLoader_.main.playlists;const i=!this.media_||this.media_!==t[e];if(i?this.media_=t[e]:this.trigger("playlistunchanged"),!this.mediaUpdateTimeout){const s=()=>{this.media().endList||(this.mediaUpdateTimeout=window.setTimeout(()=>{this.trigger("mediaupdatetimeout"),s()},kd(this.media(),Boolean(i))))};s()}this.trigger("loadedplaylist")}}var D={GOAL_BUFFER_LENGTH:30,MAX_GOAL_BUFFER_LENGTH:60,BACK_BUFFER_LENGTH:30,GOAL_BUFFER_LENGTH_RATE:1,INITIAL_BANDWIDTH:4194304,BANDWIDTH_VARIANCE:1.2,BUFFER_LOW_WATER_LINE:0,MAX_BUFFER_LOW_WATER_LINE:30,EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE:16,BUFFER_LOW_WATER_LINE_RATE:1,BUFFER_HIGH_WATER_LINE:30};function Yd(e){return e.on=e.addEventListener,e.off=e.removeEventListener,e}const Qd=t=>{var i=new Uint8Array(new ArrayBuffer(t.length));for(let e=0;e<t.length;e++)i[e]=t.charCodeAt(e);return i.buffer};function Jd(s){return function(){const e=function(t){try{return URL.createObjectURL(new Blob([t],{type:"application/javascript"}))}catch(e){var i=new BlobBuilder;return i.append(t),URL.createObjectURL(i.getBlob())}}(s);var t=Yd(new Worker(e));t.objURL=e;const i=t.terminate;return t.on=t.addEventListener,t.off=t.removeEventListener,t.terminate=function(){return URL.revokeObjectURL(e),i.call(this)},t}}function Zd(e){return`var browserWorkerPolyFill = ${Yd.toString()};
- `+"browserWorkerPolyFill(self);\n"+e}function eh(e){return e.toString().replace(/^function.+?{/,"").slice(0,-1)}var th=Jd(Zd(eh(function(){function e(){this.init=function(){var n={};this.on=function(e,t){n[e]||(n[e]=[]),n[e]=n[e].concat(t)},this.off=function(e,t){return!!n[e]&&(t=n[e].indexOf(t),n[e]=n[e].slice(),n[e].splice(t,1),-1<t)},this.trigger=function(e){var t,i,s,r=n[e];if(r)if(2===arguments.length)for(i=r.length,t=0;t<i;++t)r[t].call(this,arguments[1]);else{for(s=[],t=arguments.length,t=1;t<arguments.length;++t)s.push(arguments[t]);for(i=r.length,t=0;t<i;++t)r[t].apply(this,s)}},this.dispose=function(){n={}}}}var l,R,U,B,F,j,H,q,V,$,W,G,z,X,K,Y,Q,J,Z,ee,d,te,ie,se,re,ne,ae,oe,t,le,de,he,ue,ce,pe,me,ge,fe="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i=(e.prototype.pipe=function(t){return this.on("data",function(e){t.push(e)}),this.on("done",function(e){t.flush(e)}),this.on("partialdone",function(e){t.partialFlush(e)}),this.on("endedtimeline",function(e){t.endTimeline(e)}),this.on("reset",function(e){t.reset(e)}),t},e.prototype.push=function(e){this.trigger("data",e)},e.prototype.flush=function(e){this.trigger("done",e)},e.prototype.partialFlush=function(e){this.trigger("partialdone",e)},e.prototype.endTimeline=function(e){this.trigger("endedtimeline",e)},e.prototype.reset=function(e){this.trigger("reset",e)},e),ye=Math.pow(2,32),_e={getUint64:function(e){var t,e=new DataView(e.buffer,e.byteOffset,e.byteLength);return e.getBigUint64?(t=e.getBigUint64(0))<Number.MAX_SAFE_INTEGER?Number(t):t:e.getUint32(0)*ye+e.getUint32(4)},MAX_UINT32:ye},ve=_e.MAX_UINT32;if(d={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],pasp:[],sdtp:[],smhd:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],styp:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[]},"undefined"!=typeof Uint8Array){for(var s in d)d.hasOwnProperty(s)&&(d[s]=[s.charCodeAt(0),s.charCodeAt(1),s.charCodeAt(2),s.charCodeAt(3)]);te=new Uint8Array(["i".charCodeAt(0),"s".charCodeAt(0),"o".charCodeAt(0),"m".charCodeAt(0)]),se=new Uint8Array(["a".charCodeAt(0),"v".charCodeAt(0),"c".charCodeAt(0),"1".charCodeAt(0)]),ie=new Uint8Array([0,0,0,1]),Ce=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),xe=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),re={video:Ce,audio:xe},oe=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),ae=new Uint8Array([0,0,0,0,0,0,0,0]),t=new Uint8Array([0,0,0,0,0,0,0,0]),le=t,de=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),he=t,ne=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}l=function(e){for(var t,i=[],s=0,r=1;r<arguments.length;r++)i.push(arguments[r]);for(r=i.length;r--;)s+=i[r].byteLength;for(t=new Uint8Array(s+8),new DataView(t.buffer,t.byteOffset,t.byteLength).setUint32(0,t.byteLength),t.set(e,4),r=0,s=8;r<i.length;r++)t.set(i[r],s),s+=i[r].byteLength;return t},R=function(){return l(d.dinf,l(d.dref,oe))},U=function(e){return l(d.esds,new Uint8Array([0,0,0,0,3,25,0,0,0,4,17,64,21,0,6,0,0,0,218,192,0,0,218,192,5,2,e.audioobjecttype<<3|e.samplingfrequencyindex>>>1,e.samplingfrequencyindex<<7|e.channelcount<<3,6,1,2]))},X=function(e){return l(d.hdlr,re[e])},z=function(e){var t=new Uint8Array([0,0,0,0,0,0,0,2,0,0,0,3,0,1,95,144,e.duration>>>24&255,e.duration>>>16&255,e.duration>>>8&255,255&e.duration,85,196,0,0]);return e.samplerate&&(t[12]=e.samplerate>>>24&255,t[13]=e.samplerate>>>16&255,t[14]=e.samplerate>>>8&255,t[15]=255&e.samplerate),l(d.mdhd,t)},G=function(e){return l(d.mdia,z(e),X(e.type),j(e))},F=function(e){return l(d.mfhd,new Uint8Array([0,0,0,0,(4278190080&e)>>24,(16711680&e)>>16,(65280&e)>>8,255&e]))},j=function(e){return l(d.minf,"video"===e.type?l(d.vmhd,ne):l(d.smhd,ae),R(),Y(e))},q=function(e){for(var t=e.length,i=[];t--;)i[t]=Z(e[t]);return l.apply(null,[d.mvex].concat(i))},V=function(e){e=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,2,0,1,95,144,(4278190080&e)>>24,(16711680&e)>>16,(65280&e)>>8,255&e,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return l(d.mvhd,e)},K=function(e){for(var t,i=e.samples||[],s=new Uint8Array(4+i.length),r=0;r<i.length;r++)t=i[r].flags,s[r+4]=t.dependsOn<<4|t.isDependedOn<<2|t.hasRedundancy;return l(d.sdtp,s)},Y=function(e){return l(d.stbl,Q(e),l(d.stts,he),l(d.stsc,le),l(d.stsz,de),l(d.stco,t))},Q=function(e){return l(d.stsd,new Uint8Array([0,0,0,0,0,0,0,1]),("video"===e.type?ue:ce)(e))},ue=function(e){for(var t,i,s=e.sps||[],r=e.pps||[],n=[],a=[],o=0;o<s.length;o++)n.push((65280&s[o].byteLength)>>>8),n.push(255&s[o].byteLength),n=n.concat(Array.prototype.slice.call(s[o]));for(o=0;o<r.length;o++)a.push((65280&r[o].byteLength)>>>8),a.push(255&r[o].byteLength),a=a.concat(Array.prototype.slice.call(r[o]));return t=[d.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(65280&e.width)>>8,255&e.width,(65280&e.height)>>8,255&e.height,0,72,0,0,0,72,0,0,0,0,0,0,0,1,19,118,105,100,101,111,106,115,45,99,111,110,116,114,105,98,45,104,108,115,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),l(d.avcC,new Uint8Array([1,e.profileIdc,e.profileCompatibility,e.levelIdc,255].concat([s.length],n,[r.length],a))),l(d.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192]))],e.sarRatio&&(i=e.sarRatio[0],e=e.sarRatio[1],t.push(l(d.pasp,new Uint8Array([(4278190080&i)>>24,(16711680&i)>>16,(65280&i)>>8,255&i,(4278190080&e)>>24,(16711680&e)>>16,(65280&e)>>8,255&e])))),l.apply(null,t)},ce=function(e){return l(d.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,(65280&e.channelcount)>>8,255&e.channelcount,(65280&e.samplesize)>>8,255&e.samplesize,0,0,0,0,(65280&e.samplerate)>>8,255&e.samplerate,0,0]),U(e))},W=function(e){e=new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,(4278190080&e.id)>>24,(16711680&e.id)>>16,(65280&e.id)>>8,255&e.id,0,0,0,0,(4278190080&e.duration)>>24,(16711680&e.duration)>>16,(65280&e.duration)>>8,255&e.duration,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,(65280&e.width)>>8,255&e.width,0,0,(65280&e.height)>>8,255&e.height,0,0]);return l(d.tkhd,e)},J=function(e){var t,i=l(d.tfhd,new Uint8Array([0,0,0,58,(4278190080&e.id)>>24,(16711680&e.id)>>16,(65280&e.id)>>8,255&e.id,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0])),s=Math.floor(e.baseMediaDecodeTime/ve),r=Math.floor(e.baseMediaDecodeTime%ve),s=l(d.tfdt,new Uint8Array([1,0,0,0,s>>>24&255,s>>>16&255,s>>>8&255,255&s,r>>>24&255,r>>>16&255,r>>>8&255,255&r]));return"audio"===e.type?(t=ee(e,92),l(d.traf,i,s,t)):(r=K(e),t=ee(e,r.length+92),l(d.traf,i,s,t,r))},$=function(e){return e.duration=e.duration||4294967295,l(d.trak,W(e),G(e))},Z=function(e){var t=new Uint8Array([0,0,0,0,(4278190080&e.id)>>24,(16711680&e.id)>>16,(65280&e.id)>>8,255&e.id,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return"video"!==e.type&&(t[t.length-1]=0),l(d.trex,t)},pe=function(e,t){var i=0,s=0,r=0,n=0;return e.length&&(void 0!==e[0].duration&&(i=1),void 0!==e[0].size&&(s=2),void 0!==e[0].flags&&(r=4),void 0!==e[0].compositionTimeOffset)&&(n=8),[0,0,i|s|r|n,1,(4278190080&e.length)>>>24,(16711680&e.length)>>>16,(65280&e.length)>>>8,255&e.length,(4278190080&t)>>>24,(16711680&t)>>>16,(65280&t)>>>8,255&t]},me=function(e,t){var i,s,r,n,a=e.samples||[];for(t+=20+16*a.length,e=pe(a,t),(s=new Uint8Array(e.length+16*a.length)).set(e),i=e.length,n=0;n<a.length;n++)r=a[n],s[i++]=(4278190080&r.duration)>>>24,s[i++]=(16711680&r.duration)>>>16,s[i++]=(65280&r.duration)>>>8,s[i++]=255&r.duration,s[i++]=(4278190080&r.size)>>>24,s[i++]=(16711680&r.size)>>>16,s[i++]=(65280&r.size)>>>8,s[i++]=255&r.size,s[i++]=r.flags.isLeading<<2|r.flags.dependsOn,s[i++]=r.flags.isDependedOn<<6|r.flags.hasRedundancy<<4|r.flags.paddingValue<<1|r.flags.isNonSyncSample,s[i++]=61440&r.flags.degradationPriority,s[i++]=15&r.flags.degradationPriority,s[i++]=(4278190080&r.compositionTimeOffset)>>>24,s[i++]=(16711680&r.compositionTimeOffset)>>>16,s[i++]=(65280&r.compositionTimeOffset)>>>8,s[i++]=255&r.compositionTimeOffset;return l(d.trun,s)},ge=function(e,t){var i,s,r,n,a=e.samples||[];for(t+=20+8*a.length,e=pe(a,t),(i=new Uint8Array(e.length+8*a.length)).set(e),s=e.length,n=0;n<a.length;n++)r=a[n],i[s++]=(4278190080&r.duration)>>>24,i[s++]=(16711680&r.duration)>>>16,i[s++]=(65280&r.duration)>>>8,i[s++]=255&r.duration,i[s++]=(4278190080&r.size)>>>24,i[s++]=(16711680&r.size)>>>16,i[s++]=(65280&r.size)>>>8,i[s++]=255&r.size;return l(d.trun,i)},ee=function(e,t){return("audio"===e.type?ge:me)(e,t)};function be(e,t){var i=Ie();return i.dataOffset=t,i.compositionTimeOffset=e.pts-e.dts,i.duration=e.duration,i.size=4*e.length,i.size+=e.byteLength,e.keyFrame&&(i.flags.dependsOn=2,i.flags.isNonSyncSample=0),i}function r(e){for(var t=[];e--;)t.push(0);return t}function n(e){e=e||{},n.prototype.init.call(this),this.parse708captions_="boolean"!=typeof e.parse708captions||e.parse708captions,this.captionPackets_=[],this.ccStreams_=[new g(0,0),new g(0,1),new g(1,0),new g(1,1)],this.parse708captions_&&(this.cc708Stream_=new m({captionServices:e.captionServices})),this.reset(),this.ccStreams_.forEach(function(e){e.on("data",this.trigger.bind(this,"data")),e.on("partialdone",this.trigger.bind(this,"partialdone")),e.on("done",this.trigger.bind(this,"done"))},this),this.parse708captions_&&(this.cc708Stream_.on("data",this.trigger.bind(this,"data")),this.cc708Stream_.on("partialdone",this.trigger.bind(this,"partialdone")),this.cc708Stream_.on("done",this.trigger.bind(this,"done")))}function o(e){return 32<=e&&e<=127||160<=e&&e<=255}function a(e){this.windowNum=e,this.reset()}function Te(e,t,i){this.serviceNum=e,this.text="",this.currentWindow=new a(-1),this.windows=[],this.stream=i,"string"==typeof t&&this.createTextDecoder(t)}function Se(e){return null===e?"":(e=Fe[e]||e,String.fromCharCode(e))}function h(){for(var e=[],t=je+1;t--;)e.push("");return e}function we(e,t){var i=1;for(t<e&&(i=-1);Math.abs(t-e)>We;)e+=i*$e;return e}function Ee(e){var t,i;Ee.prototype.init.call(this),this.type_=e||"shared",this.push=function(e){"shared"!==this.type_&&e.type!==this.type_||(void 0===i&&(i=e.dts),e.dts=we(e.dts,i),e.pts=we(e.pts,i),t=e.dts,this.trigger("data",e))},this.flush=function(){i=t,this.trigger("done")},this.endTimeline=function(){this.flush(),this.trigger("endedtimeline")},this.discontinuity=function(){t=i=void 0},this.reset=function(){this.discontinuity(),this.trigger("reset")}}var ke,Ce={ftyp:B=function(){return l(d.ftyp,te,ie,te,se)},mdat:function(e){return l(d.mdat,e)},moof:function(e,t){for(var i=[],s=t.length;s--;)i[s]=J(t[s]);return l.apply(null,[d.moof,F(e)].concat(i))},moov:H=function(e){for(var t=e.length,i=[];t--;)i[t]=$(e[t]);return l.apply(null,[d.moov,V(4294967295)].concat(i).concat(q(e)))},initSegment:function(e){var t=B(),e=H(e),i=new Uint8Array(t.byteLength+e.byteLength);return i.set(t),i.set(e,t.byteLength),i}},Ie=function(){return{size:0,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0,degradationPriority:0,isNonSyncSample:1}}},xe={groupNalsIntoFrames:function(e){var t,i,s=[],r=[];for(r.byteLength=0,r.nalCount=0,t=s.byteLength=r.duration=0;t<e.length;t++)"access_unit_delimiter_rbsp"===(i=e[t]).nalUnitType?(s.length&&(s.duration=i.dts-s.dts,r.byteLength+=s.byteLength,r.nalCount+=s.length,r.duration+=s.duration,r.push(s)),(s=[i]).byteLength=i.data.byteLength,s.pts=i.pts,s.dts=i.dts):("slice_layer_without_partitioning_rbsp_idr"===i.nalUnitType&&(s.keyFrame=!0),s.duration=i.dts-s.dts,s.byteLength+=i.data.byteLength,s.push(i));return r.length&&(!s.duration||s.duration<=0)&&(s.duration=r[r.length-1].duration),r.byteLength+=s.byteLength,r.nalCount+=s.length,r.duration+=s.duration,r.push(s),r},groupFramesIntoGops:function(e){var t,i,s=[],r=[];for(s.byteLength=0,s.nalCount=0,s.duration=0,s.pts=e[0].pts,s.dts=e[0].dts,r.byteLength=0,r.nalCount=0,r.duration=0,r.pts=e[0].pts,r.dts=e[0].dts,t=0;t<e.length;t++)(i=e[t]).keyFrame?(s.length&&(r.push(s),r.byteLength+=s.byteLength,r.nalCount+=s.nalCount,r.duration+=s.duration),(s=[i]).nalCount=i.length,s.byteLength=i.byteLength,s.pts=i.pts,s.dts=i.dts,s.duration=i.duration):(s.duration+=i.duration,s.nalCount+=i.length,s.byteLength+=i.byteLength,s.push(i));return r.length&&s.duration<=0&&(s.duration=r[r.length-1].duration),r.byteLength+=s.byteLength,r.nalCount+=s.nalCount,r.duration+=s.duration,r.push(s),r},extendFirstKeyFrame:function(e){var t;return!e[0][0].keyFrame&&1<e.length&&(t=e.shift(),e.byteLength-=t.byteLength,e.nalCount-=t.nalCount,e[0][0].dts=t.dts,e[0][0].pts=t.pts,e[0][0].duration+=t.duration),e},generateSampleTable:function(e,t){for(var i,s,r,n=t||0,a=[],o=0;o<e.length;o++)for(s=e[o],i=0;i<s.length;i++)r=s[i],n+=(r=be(r,n)).size,a.push(r);return a},concatenateNalData:function(e){for(var t,i,s,r,n,a=0,o=e.byteLength,l=e.nalCount,d=new Uint8Array(o+4*l),h=new DataView(d.buffer),u=0;u<e.length;u++)for(s=e[u],t=0;t<s.length;t++)for(r=s[t],i=0;i<r.length;i++)n=r[i],h.setUint32(a,n.data.byteLength),d.set(n.data,a+=4),a+=n.data.byteLength;return d},generateSampleTableForFrame:function(e,t){var i=[],e=be(e,t||0);return i.push(e),i},concatenateNalDataForFrame:function(e){for(var t,i=0,s=e.byteLength,r=e.length,n=new Uint8Array(s+4*r),a=new DataView(n.buffer),o=0;o<e.length;o++)t=e[o],a.setUint32(i,t.data.byteLength),n.set(t.data,i+=4),i+=t.data.byteLength;return n}},u=[33,16,5,32,164,27],Ae=[33,65,108,84,1,2,4,8,168,2,4,8,17,191,252],Pe=function(e){return 9e4*e},Le=function(e,t){return e*t},Oe=function(e){return e/9e4},De=function(e,t){return e/t},c={ONE_SECOND_IN_TS:9e4,secondsToVideoTs:Pe,secondsToAudioTs:Le,videoTsToSeconds:Oe,audioTsToSeconds:De,audioTsToVideoTs:function(e,t){return e/t*9e4},videoTsToAudioTs:function(e,t){return e/9e4*t},metadataTsToSeconds:function(e,t,i){return Oe(i?e:e-t)}},Ne=function(){var e,i;return ke||(e={96e3:[u,[227,64],r(154),[56]],88200:[u,[231],r(170),[56]],64e3:[u,[248,192],r(240),[56]],48e3:[u,[255,192],r(268),[55,148,128],r(54),[112]],44100:[u,[255,192],r(268),[55,163,128],r(84),[112]],32e3:[u,[255,192],r(268),[55,234],r(226),[112]],24e3:[u,[255,192],r(268),[55,255,128],r(268),[111,112],r(126),[224]],16e3:[u,[255,192],r(268),[55,255,128],r(268),[111,255],r(269),[223,108],r(195),[1,192]],12e3:[Ae,r(268),[3,127,248],r(268),[6,255,240],r(268),[13,255,224],r(268),[27,253,128],r(259),[56]],11025:[Ae,r(268),[3,127,248],r(268),[6,255,240],r(268),[13,255,224],r(268),[27,255,192],r(268),[55,175,128],r(108),[112]],8e3:[Ae,r(268),[3,121,16],r(47),[7]]},i=e,ke=Object.keys(i).reduce(function(e,t){return e[t]=new Uint8Array(i[t].reduce(function(e,t){return e.concat(t)},[])),e},{})),ke},Me=c,Pe={prefixWithSilence:function(e,t,i,s){var r,n,a,o,l,d=0,h=0;if(t.length&&(n=Me.audioTsToVideoTs(e.baseMediaDecodeTime,e.samplerate),r=Math.ceil(Me.ONE_SECOND_IN_TS/(e.samplerate/1024)),i&&s&&(n=n-Math.max(i,s),h=(d=Math.floor(n/r))*r),!(d<1||h>Me.ONE_SECOND_IN_TS/2))){for(a=(a=Ne()[e.samplerate])||t[0].data,o=0;o<d;o++)l=t[0],t.splice(0,0,{data:a,dts:l.dts-r,pts:l.pts-r});return e.baseMediaDecodeTime-=Math.floor(Me.videoTsToAudioTs(h,e.samplerate)),h}},trimAdtsFramesByEarliestDts:function(e,t,i){return t.minSegmentDts>=i?e:(t.minSegmentDts=1/0,e.filter(function(e){return e.dts>=i&&(t.minSegmentDts=Math.min(t.minSegmentDts,e.dts),t.minSegmentPts=t.minSegmentDts,!0)}))},generateSampleTable:function(e){for(var t,i=[],s=0;s<e.length;s++)t=e[s],i.push({size:t.data.byteLength,duration:1024});return i},concatenateFrameData:function(e){for(var t,i=0,s=new Uint8Array(function(e){for(var t=0,i=0;i<e.length;i++)t+=e[i].data.byteLength;return t}(e)),r=0;r<e.length;r++)t=e[r],s.set(t.data,i),i+=t.data.byteLength;return s}},Re=c.ONE_SECOND_IN_TS,Le={clearDtsInfo:function(e){delete e.minSegmentDts,delete e.maxSegmentDts,delete e.minSegmentPts,delete e.maxSegmentPts},calculateTrackBaseMediaDecodeTime:function(e,t){var i=e.minSegmentDts;return t||(i-=e.timelineStartInfo.dts),t=e.timelineStartInfo.baseMediaDecodeTime,t+=i,t=Math.max(0,t),"audio"===e.type&&(t*=e.samplerate/Re,t=Math.floor(t)),t},collectDtsInfo:function(e,t){"number"==typeof t.pts&&(void 0===e.timelineStartInfo.pts&&(e.timelineStartInfo.pts=t.pts),void 0===e.minSegmentPts?e.minSegmentPts=t.pts:e.minSegmentPts=Math.min(e.minSegmentPts,t.pts),void 0===e.maxSegmentPts?e.maxSegmentPts=t.pts:e.maxSegmentPts=Math.max(e.maxSegmentPts,t.pts)),"number"==typeof t.dts&&(void 0===e.timelineStartInfo.dts&&(e.timelineStartInfo.dts=t.dts),void 0===e.minSegmentDts?e.minSegmentDts=t.dts:e.minSegmentDts=Math.min(e.minSegmentDts,t.dts),void 0===e.maxSegmentDts?e.maxSegmentDts=t.dts:e.maxSegmentDts=Math.max(e.maxSegmentDts,t.dts))}},De={parseSei:function(e){for(var t=0,i={payloadType:-1,payloadSize:0},s=0,r=0;t<e.byteLength&&128!==e[t];){for(;255===e[t];)s+=255,t++;for(s+=e[t++];255===e[t];)r+=255,t++;if(r+=e[t++],!i.payload&&4===s){if("GA94"===String.fromCharCode(e[t+3],e[t+4],e[t+5],e[t+6])){i.payloadType=s,i.payloadSize=r,i.payload=e.subarray(t,t+r);break}i.payload=void 0}t+=r,r=s=0}return i},parseUserData:function(e){return 181!==e.payload[0]||49!=(e.payload[1]<<8|e.payload[2])||"GA94"!==String.fromCharCode(e.payload[3],e.payload[4],e.payload[5],e.payload[6])||3!==e.payload[7]?null:e.payload.subarray(8,e.payload.length-1)},parseCaptionPackets:function(e,t){var i,s,r,n,a=[];if(64&t[0])for(s=31&t[0],i=0;i<s;i++)n={type:3&t[2+(r=3*i)],pts:e},4&t[2+r]&&(n.ccData=t[3+r]<<8|t[4+r],a.push(n));return a},discardEmulationPreventionBytes:function(e){for(var t=e.byteLength,i=[],s=1;s<t-2;)0===e[s]&&0===e[s+1]&&3===e[s+2]?(i.push(s+2),s+=2):s++;if(0===i.length)return e;for(var r=t-i.length,n=new Uint8Array(r),a=0,s=0;s<r;a++,s++)a===i[0]&&(a++,i.shift()),n[s]=e[a];return n},USER_DATA_REGISTERED_ITU_T_T35:4},p=i,Ue=De,Be=((n.prototype=new p).push=function(e){var t;"sei_rbsp"===e.nalUnitType&&(t=Ue.parseSei(e.escapedRBSP)).payload&&t.payloadType===Ue.USER_DATA_REGISTERED_ITU_T_T35&&(t=Ue.parseUserData(t))&&(e.dts<this.latestDts_?this.ignoreNextEqualDts_=!0:e.dts===this.latestDts_&&this.ignoreNextEqualDts_?(this.numSameDts_--,this.numSameDts_||(this.ignoreNextEqualDts_=!1)):(t=Ue.parseCaptionPackets(e.pts,t),this.captionPackets_=this.captionPackets_.concat(t),this.latestDts_!==e.dts&&(this.numSameDts_=0),this.numSameDts_++,this.latestDts_=e.dts))},n.prototype.flushCCStreams=function(t){this.ccStreams_.forEach(function(e){return"flush"===t?e.flush():e.partialFlush()},this)},n.prototype.flushStream=function(e){this.captionPackets_.length&&(this.captionPackets_.forEach(function(e,t){e.presortIndex=t}),this.captionPackets_.sort(function(e,t){return e.pts===t.pts?e.presortIndex-t.presortIndex:e.pts-t.pts}),this.captionPackets_.forEach(function(e){e.type<2?this.dispatchCea608Packet(e):this.dispatchCea708Packet(e)},this),this.captionPackets_.length=0),this.flushCCStreams(e)},n.prototype.flush=function(){return this.flushStream("flush")},n.prototype.partialFlush=function(){return this.flushStream("partialFlush")},n.prototype.reset=function(){this.latestDts_=null,this.ignoreNextEqualDts_=!1,this.numSameDts_=0,this.activeCea608Channel_=[null,null],this.ccStreams_.forEach(function(e){e.reset()})},n.prototype.dispatchCea608Packet=function(e){this.setsTextOrXDSActive(e)?this.activeCea608Channel_[e.type]=null:this.setsChannel1Active(e)?this.activeCea608Channel_[e.type]=0:this.setsChannel2Active(e)&&(this.activeCea608Channel_[e.type]=1),null!==this.activeCea608Channel_[e.type]&&this.ccStreams_[(e.type<<1)+this.activeCea608Channel_[e.type]].push(e)},n.prototype.setsChannel1Active=function(e){return 4096==(30720&e.ccData)},n.prototype.setsChannel2Active=function(e){return 6144==(30720&e.ccData)},n.prototype.setsTextOrXDSActive=function(e){return 256==(28928&e.ccData)||4138==(30974&e.ccData)||6186==(30974&e.ccData)},n.prototype.dispatchCea708Packet=function(e){this.parse708captions_&&this.cc708Stream_.push(e)},{127:9834,4128:32,4129:160,4133:8230,4138:352,4140:338,4144:9608,4145:8216,4146:8217,4147:8220,4148:8221,4149:8226,4153:8482,4154:353,4156:339,4157:8480,4159:376,4214:8539,4215:8540,4216:8541,4217:8542,4218:9168,4219:9124,4220:9123,4221:9135,4222:9126,4223:9121,4256:12600}),m=(a.prototype.reset=function(){this.clearText(),this.pendingNewLine=!1,this.winAttr={},this.penAttr={},this.penLoc={},this.penColor={},this.visible=0,this.rowLock=0,this.columnLock=0,this.priority=0,this.relativePositioning=0,this.anchorVertical=0,this.anchorHorizontal=0,this.anchorPoint=0,this.rowCount=1,this.virtualRowCount=this.rowCount+1,this.columnCount=41,this.windowStyle=0,this.penStyle=0},a.prototype.getText=function(){return this.rows.join("\n")},a.prototype.clearText=function(){this.rows=[""],this.rowIdx=0},a.prototype.newLine=function(e){for(this.rows.length>=this.virtualRowCount&&"function"==typeof this.beforeRowOverflow&&this.beforeRowOverflow(e),0<this.rows.length&&(this.rows.push(""),this.rowIdx++);this.rows.length>this.virtualRowCount;)this.rows.shift(),this.rowIdx--},a.prototype.isEmpty=function(){return 0===this.rows.length||1===this.rows.length&&""===this.rows[0]},a.prototype.addText=function(e){this.rows[this.rowIdx]+=e},a.prototype.backspace=function(){var e;this.isEmpty()||(e=this.rows[this.rowIdx],this.rows[this.rowIdx]=e.substr(0,e.length-1))},Te.prototype.init=function(e,t){this.startPts=e;for(var i=0;i<8;i++)this.windows[i]=new a(i),"function"==typeof t&&(this.windows[i].beforeRowOverflow=t)},Te.prototype.setCurrentWindow=function(e){this.currentWindow=this.windows[e]},Te.prototype.createTextDecoder=function(t){if("undefined"==typeof TextDecoder)this.stream.trigger("log",{level:"warn",message:"The `encoding` option is unsupported without TextDecoder support"});else try{this.textDecoder_=new TextDecoder(t)}catch(e){this.stream.trigger("log",{level:"warn",message:"TextDecoder could not be created with "+t+" encoding. "+e})}},function(e){e=e||{},m.prototype.init.call(this);var t,i=this,s=e.captionServices||{},r={};Object.keys(s).forEach(e=>{t=s[e],/^SERVICE/.test(e)&&(r[e]=t.encoding)}),this.serviceEncodings=r,this.current708Packet=null,this.services={},this.push=function(e){(3===e.type||null===i.current708Packet)&&i.new708Packet(),i.add708Bytes(e)}}),Fe=(m.prototype=new p,m.prototype.new708Packet=function(){null!==this.current708Packet&&this.push708Packet(),this.current708Packet={data:[],ptsVals:[]}},m.prototype.add708Bytes=function(e){var t=e.ccData,i=t>>>8,t=255&t;this.current708Packet.ptsVals.push(e.pts),this.current708Packet.data.push(i),this.current708Packet.data.push(t)},m.prototype.push708Packet=function(){var e,t=this.current708Packet,i=t.data,s=null,r=0,n=i[r++];for(t.seq=n>>6,t.sizeCode=63&n;r<i.length;r++)e=31&(n=i[r++]),7===(s=n>>5)&&0<e&&(s=i[r++]),this.pushServiceBlock(s,r,e),0<e&&(r+=e-1)},m.prototype.pushServiceBlock=function(e,t,i){for(var s,r=t,n=this.current708Packet.data,a=(a=this.services[e])||this.initService(e,r);r<t+i&&r<n.length;r++)s=n[r],o(s)?r=this.handleText(r,a):24===s?r=this.multiByteCharacter(r,a):16===s?r=this.extendedCommands(r,a):128<=s&&s<=135?r=this.setCurrentWindow(r,a):152<=s&&s<=159?r=this.defineWindow(r,a):136===s?r=this.clearWindows(r,a):140===s?r=this.deleteWindows(r,a):137===s?r=this.displayWindows(r,a):138===s?r=this.hideWindows(r,a):139===s?r=this.toggleWindows(r,a):151===s?r=this.setWindowAttributes(r,a):144===s?r=this.setPenAttributes(r,a):145===s?r=this.setPenColor(r,a):146===s?r=this.setPenLocation(r,a):143===s?a=this.reset(r,a):8===s?a.currentWindow.backspace():12===s?a.currentWindow.clearText():13===s?a.currentWindow.pendingNewLine=!0:14===s?a.currentWindow.clearText():141===s&&r++},m.prototype.extendedCommands=function(e,t){var i=this.current708Packet.data[++e];return e=o(i)?this.handleText(e,t,{isExtended:!0}):e},m.prototype.getPts=function(e){return this.current708Packet.ptsVals[Math.floor(e/2)]},m.prototype.initService=function(t,e){var i,s="SERVICE"+t,r=this;return s in this.serviceEncodings&&(i=this.serviceEncodings[s]),this.services[t]=new Te(t,i,r),this.services[t].init(this.getPts(e),function(e){r.flushDisplayed(e,r.services[t])}),this.services[t]},m.prototype.handleText=function(e,t,i){var s,r=i&&i.isExtended,i=i&&i.isMultiByte,n=this.current708Packet.data,a=r?4096:0,o=n[e],n=n[e+1],l=t.currentWindow,n=t.textDecoder_&&!r?(i?(s=[o,n],e++):s=[o],t.textDecoder_.decode(new Uint8Array(s))):(i=Be[r=a|o]||r,4096&r&&r===i?"":String.fromCharCode(i));return l.pendingNewLine&&!l.isEmpty()&&l.newLine(this.getPts(e)),l.pendingNewLine=!1,l.addText(n),e},m.prototype.multiByteCharacter=function(e,t){var i=this.current708Packet.data,s=i[e+1],i=i[e+2];return e=o(s)&&o(i)?this.handleText(++e,t,{isMultiByte:!0}):e},m.prototype.setCurrentWindow=function(e,t){var i=this.current708Packet.data[e];return t.setCurrentWindow(7&i),e},m.prototype.defineWindow=function(e,t){var i=this.current708Packet.data,s=i[e],t=(t.setCurrentWindow(7&s),t.currentWindow),s=i[++e];return t.visible=(32&s)>>5,t.rowLock=(16&s)>>4,t.columnLock=(8&s)>>3,t.priority=7&s,s=i[++e],t.relativePositioning=(128&s)>>7,t.anchorVertical=127&s,s=i[++e],t.anchorHorizontal=s,s=i[++e],t.anchorPoint=(240&s)>>4,t.rowCount=15&s,s=i[++e],t.columnCount=63&s,s=i[++e],t.windowStyle=(56&s)>>3,t.penStyle=7&s,t.virtualRowCount=t.rowCount+1,e},m.prototype.setWindowAttributes=function(e,t){var i=this.current708Packet.data,t=(i[e],t.currentWindow.winAttr),s=i[++e];return t.fillOpacity=(192&s)>>6,t.fillRed=(48&s)>>4,t.fillGreen=(12&s)>>2,t.fillBlue=3&s,s=i[++e],t.borderType=(192&s)>>6,t.borderRed=(48&s)>>4,t.borderGreen=(12&s)>>2,t.borderBlue=3&s,s=i[++e],t.borderType+=(128&s)>>5,t.wordWrap=(64&s)>>6,t.printDirection=(48&s)>>4,t.scrollDirection=(12&s)>>2,t.justify=3&s,s=i[++e],t.effectSpeed=(240&s)>>4,t.effectDirection=(12&s)>>2,t.displayEffect=3&s,e},m.prototype.flushDisplayed=function(e,t){for(var i=[],s=0;s<8;s++)t.windows[s].visible&&!t.windows[s].isEmpty()&&i.push(t.windows[s].getText());t.endPts=e,t.text=i.join("\n\n"),this.pushCaption(t),t.startPts=e},m.prototype.pushCaption=function(e){""!==e.text&&(this.trigger("data",{startPts:e.startPts,endPts:e.endPts,text:e.text,stream:"cc708_"+e.serviceNum}),e.text="",e.startPts=e.endPts)},m.prototype.displayWindows=function(e,t){var i=this.current708Packet.data[++e],s=this.getPts(e);this.flushDisplayed(s,t);for(var r=0;r<8;r++)i&1<<r&&(t.windows[r].visible=1);return e},m.prototype.hideWindows=function(e,t){var i=this.current708Packet.data[++e],s=this.getPts(e);this.flushDisplayed(s,t);for(var r=0;r<8;r++)i&1<<r&&(t.windows[r].visible=0);return e},m.prototype.toggleWindows=function(e,t){var i=this.current708Packet.data[++e],s=this.getPts(e);this.flushDisplayed(s,t);for(var r=0;r<8;r++)i&1<<r&&(t.windows[r].visible^=1);return e},m.prototype.clearWindows=function(e,t){var i=this.current708Packet.data[++e],s=this.getPts(e);this.flushDisplayed(s,t);for(var r=0;r<8;r++)i&1<<r&&t.windows[r].clearText();return e},m.prototype.deleteWindows=function(e,t){var i=this.current708Packet.data[++e],s=this.getPts(e);this.flushDisplayed(s,t);for(var r=0;r<8;r++)i&1<<r&&t.windows[r].reset();return e},m.prototype.setPenAttributes=function(e,t){var i=this.current708Packet.data,t=(i[e],t.currentWindow.penAttr),s=i[++e];return t.textTag=(240&s)>>4,t.offset=(12&s)>>2,t.penSize=3&s,s=i[++e],t.italics=(128&s)>>7,t.underline=(64&s)>>6,t.edgeType=(56&s)>>3,t.fontStyle=7&s,e},m.prototype.setPenColor=function(e,t){var i=this.current708Packet.data,t=(i[e],t.currentWindow.penColor),s=i[++e];return t.fgOpacity=(192&s)>>6,t.fgRed=(48&s)>>4,t.fgGreen=(12&s)>>2,t.fgBlue=3&s,s=i[++e],t.bgOpacity=(192&s)>>6,t.bgRed=(48&s)>>4,t.bgGreen=(12&s)>>2,t.bgBlue=3&s,s=i[++e],t.edgeRed=(48&s)>>4,t.edgeGreen=(12&s)>>2,t.edgeBlue=3&s,e},m.prototype.setPenLocation=function(e,t){var i=this.current708Packet.data,s=(i[e],t.currentWindow.penLoc);return t.currentWindow.pendingNewLine=!0,t=i[++e],s.row=15&t,t=i[++e],s.column=63&t,e},m.prototype.reset=function(e,t){var i=this.getPts(e);return this.flushDisplayed(i,t),this.initService(t.serviceNum,e)},{42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,304:174,305:176,306:189,307:191,308:8482,309:162,310:163,311:9834,312:224,313:160,314:232,315:226,316:234,317:238,318:244,319:251,544:193,545:201,546:211,547:218,548:220,549:252,550:8216,551:161,552:42,553:39,554:8212,555:169,556:8480,557:8226,558:8220,559:8221,560:192,561:194,562:199,563:200,564:202,565:203,566:235,567:206,568:207,569:239,570:212,571:217,572:249,573:219,574:171,575:187,800:195,801:227,802:205,803:204,804:236,805:210,806:242,807:213,808:245,809:123,810:125,811:92,812:94,813:95,814:124,815:126,816:196,817:228,818:214,819:246,820:223,821:165,822:164,823:9474,824:197,825:229,826:216,827:248,828:9484,829:9488,830:9492,831:9496}),je=14,He=[4352,4384,4608,4640,5376,5408,5632,5664,5888,5920,4096,4864,4896,5120,5152],g=function(e,t){g.prototype.init.call(this),this.field_=e||0,this.dataChannel_=t||0,this.name_="CC"+(1+(this.field_<<1|this.dataChannel_)),this.setConstants(),this.reset(),this.push=function(e){var t,i,s,r,n=32639&e.ccData;n===this.lastControlCode_?this.lastControlCode_=null:(4096==(61440&n)?this.lastControlCode_=n:n!==this.PADDING_&&(this.lastControlCode_=null),t=n>>>8,i=255&n,n!==this.PADDING_&&(n===this.RESUME_CAPTION_LOADING_?this.mode_="popOn":n===this.END_OF_CAPTION_?(this.mode_="popOn",this.clearFormatting(e.pts),this.flushDisplayed(e.pts),r=this.displayed_,this.displayed_=this.nonDisplayed_,this.nonDisplayed_=r,this.startPts_=e.pts):n===this.ROLL_UP_2_ROWS_?(this.rollUpRows_=2,this.setRollUp(e.pts)):n===this.ROLL_UP_3_ROWS_?(this.rollUpRows_=3,this.setRollUp(e.pts)):n===this.ROLL_UP_4_ROWS_?(this.rollUpRows_=4,this.setRollUp(e.pts)):n===this.CARRIAGE_RETURN_?(this.clearFormatting(e.pts),this.flushDisplayed(e.pts),this.shiftRowsUp_(),this.startPts_=e.pts):n===this.BACKSPACE_?"popOn"===this.mode_?this.nonDisplayed_[this.row_]=this.nonDisplayed_[this.row_].slice(0,-1):this.displayed_[this.row_]=this.displayed_[this.row_].slice(0,-1):n===this.ERASE_DISPLAYED_MEMORY_?(this.flushDisplayed(e.pts),this.displayed_=h()):n===this.ERASE_NON_DISPLAYED_MEMORY_?this.nonDisplayed_=h():n===this.RESUME_DIRECT_CAPTIONING_?("paintOn"!==this.mode_&&(this.flushDisplayed(e.pts),this.displayed_=h()),this.mode_="paintOn",this.startPts_=e.pts):this.isSpecialCharacter(t,i)?(s=Se((t=(3&t)<<8)|i),this[this.mode_](e.pts,s),this.column_++):this.isExtCharacter(t,i)?("popOn"===this.mode_?this.nonDisplayed_[this.row_]=this.nonDisplayed_[this.row_].slice(0,-1):this.displayed_[this.row_]=this.displayed_[this.row_].slice(0,-1),s=Se((t=(3&t)<<8)|i),this[this.mode_](e.pts,s),this.column_++):this.isMidRowCode(t,i)?(this.clearFormatting(e.pts),this[this.mode_](e.pts," "),this.column_++,14==(14&i)&&this.addFormatting(e.pts,["i"]),1==(1&i)&&this.addFormatting(e.pts,["u"])):this.isOffsetControlCode(t,i)?this.column_+=3&i:this.isPAC(t,i)?(r=He.indexOf(7968&n),"rollUp"===this.mode_&&(r-this.rollUpRows_+1<0&&(r=this.rollUpRows_-1),this.setRollUp(e.pts,r)),r!==this.row_&&(this.clearFormatting(e.pts),this.row_=r),1&i&&-1===this.formatting_.indexOf("u")&&this.addFormatting(e.pts,["u"]),16==(16&n)&&(this.column_=4*((14&n)>>1)),this.isColorPAC(i)&&14==(14&i)&&this.addFormatting(e.pts,["i"])):this.isNormalChar(t)&&(0===i&&(i=null),s=Se(t),s+=Se(i),this[this.mode_](e.pts,s),this.column_+=s.length)))}},p=(g.prototype=new p,g.prototype.flushDisplayed=function(e){var t=this.displayed_.map(function(e,t){try{return e.trim()}catch(e){return this.trigger("log",{level:"warn",message:"Skipping a malformed 608 caption at index "+t+"."}),""}},this).join("\n").replace(/^\n+|\n+$/g,"");t.length&&this.trigger("data",{startPts:this.startPts_,endPts:e,text:t,stream:this.name_})},g.prototype.reset=function(){this.mode_="popOn",this.topRow_=0,this.startPts_=0,this.displayed_=h(),this.nonDisplayed_=h(),this.lastControlCode_=null,this.column_=0,this.row_=je,this.rollUpRows_=2,this.formatting_=[]},g.prototype.setConstants=function(){0===this.dataChannel_?(this.BASE_=16,this.EXT_=17,this.CONTROL_=(20|this.field_)<<8,this.OFFSET_=23):1===this.dataChannel_&&(this.BASE_=24,this.EXT_=25,this.CONTROL_=(28|this.field_)<<8,this.OFFSET_=31),this.PADDING_=0,this.RESUME_CAPTION_LOADING_=32|this.CONTROL_,this.END_OF_CAPTION_=47|this.CONTROL_,this.ROLL_UP_2_ROWS_=37|this.CONTROL_,this.ROLL_UP_3_ROWS_=38|this.CONTROL_,this.ROLL_UP_4_ROWS_=39|this.CONTROL_,this.CARRIAGE_RETURN_=45|this.CONTROL_,this.RESUME_DIRECT_CAPTIONING_=41|this.CONTROL_,this.BACKSPACE_=33|this.CONTROL_,this.ERASE_DISPLAYED_MEMORY_=44|this.CONTROL_,this.ERASE_NON_DISPLAYED_MEMORY_=46|this.CONTROL_},g.prototype.isSpecialCharacter=function(e,t){return e===this.EXT_&&48<=t&&t<=63},g.prototype.isExtCharacter=function(e,t){return(e===this.EXT_+1||e===this.EXT_+2)&&32<=t&&t<=63},g.prototype.isMidRowCode=function(e,t){return e===this.EXT_&&32<=t&&t<=47},g.prototype.isOffsetControlCode=function(e,t){return e===this.OFFSET_&&33<=t&&t<=35},g.prototype.isPAC=function(e,t){return e>=this.BASE_&&e<this.BASE_+8&&64<=t&&t<=127},g.prototype.isColorPAC=function(e){return 64<=e&&e<=79||96<=e&&e<=127},g.prototype.isNormalChar=function(e){return 32<=e&&e<=127},g.prototype.setRollUp=function(e,t){if("rollUp"!==this.mode_&&(this.row_=je,this.mode_="rollUp",this.flushDisplayed(e),this.nonDisplayed_=h(),this.displayed_=h()),void 0!==t&&t!==this.row_)for(var i=0;i<this.rollUpRows_;i++)this.displayed_[t-i]=this.displayed_[this.row_-i],this.displayed_[this.row_-i]="";void 0===t&&(t=this.row_),this.topRow_=t-this.rollUpRows_+1},g.prototype.addFormatting=function(e,t){this.formatting_=this.formatting_.concat(t);t=t.reduce(function(e,t){return e+"<"+t+">"},"");this[this.mode_](e,t)},g.prototype.clearFormatting=function(e){var t;this.formatting_.length&&(t=this.formatting_.reverse().reduce(function(e,t){return e+"</"+t+">"},""),this.formatting_=[],this[this.mode_](e,t))},g.prototype.popOn=function(e,t){var i=this.nonDisplayed_[this.row_];this.nonDisplayed_[this.row_]=i+=t},g.prototype.rollUp=function(e,t){var i=this.displayed_[this.row_];this.displayed_[this.row_]=i+=t},g.prototype.shiftRowsUp_=function(){for(var e=0;e<this.topRow_;e++)this.displayed_[e]="";for(e=this.row_+1;e<je+1;e++)this.displayed_[e]="";for(e=this.topRow_;e<this.row_;e++)this.displayed_[e]=this.displayed_[e+1];this.displayed_[this.row_]=""},g.prototype.paintOn=function(e,t){var i=this.displayed_[this.row_];this.displayed_[this.row_]=i+=t},{CaptionStream:n,Cea608Stream:g,Cea708Stream:m}),qe={H264_STREAM_TYPE:27,ADTS_STREAM_TYPE:15,METADATA_STREAM_TYPE:21},Ve=i,$e=8589934592,We=4294967296;Ee.prototype=new Ve;function Ge(e,t,i){for(var s="",r=t;r<i;r++)s+="%"+("00"+e[r].toString(16)).slice(-2);return s}function f(e,t,i){return decodeURIComponent(Ge(e,t,i))}function y(e,t,i){return unescape(Ge(e,t,i))}function _(e){return e[0]<<21|e[1]<<14|e[2]<<7|e[3]}var ze,Xe,Ke,Ve=Ee,Ye=we,Qe=(e,t,i)=>{if(e)for(var s=i;s<e.length;s++)if(e[s]===t)return s;return-1},Je=3,v={APIC:function(e){var t,i=1;e.data[0]!==Je||(t=Qe(e.data,0,1))<0||(e.mimeType=y(e.data,1,t),e.pictureType=e.data[i=t+1],(t=Qe(e.data,0,++i))<0)||(e.description=f(e.data,i,t),i=t+1,"--\x3e"===e.mimeType?e.url=y(e.data,i,e.data.length):e.pictureData=e.data.subarray(i,e.data.length))},"T*":function(e){e.data[0]===Je&&(e.value=f(e.data,1,e.data.length).replace(/\0*$/,""),e.values=e.value.split("\0"))},TXXX:function(e){var t;e.data[0]===Je&&-1!==(t=Qe(e.data,0,1))&&(e.description=f(e.data,1,t),e.value=f(e.data,t+1,e.data.length).replace(/\0*$/,""),e.data=e.value)},"W*":function(e){e.url=y(e.data,0,e.data.length).replace(/\0.*$/,"")},WXXX:function(e){var t;e.data[0]===Je&&-1!==(t=Qe(e.data,0,1))&&(e.description=f(e.data,1,t),e.url=y(e.data,t+1,e.data.length).replace(/\0.*$/,""))},PRIV:function(e){for(var t=0;t<e.data.length;t++)if(0===e.data[t]){e.owner=y(e.data,0,t);break}e.privateData=e.data.subarray(t+1),e.data=e.privateData}},b={parseId3Frames:function(e){var t,i=10,s=0,r=[];if(!(e.length<10||e[0]!=="I".charCodeAt(0)||e[1]!=="D".charCodeAt(0)||e[2]!=="3".charCodeAt(0))){s=_(e.subarray(6,10));s+=10,64&e[5]&&(i=(i+=4)+_(e.subarray(10,14)),s-=_(e.subarray(16,20)));do{if((t=_(e.subarray(i+4,i+8)))<1)break;var n={id:String.fromCharCode(e[i],e[i+1],e[i+2],e[i+3]),data:e.subarray(i+10,i+t+10)}}while(n.key=n.id,v[n.id]?v[n.id](n):"T"===n.id[0]?v["T*"](n):"W"===n.id[0]&&v["W*"](n),r.push(n),(i=i+10+t)<s);return r}},parseSyncSafeInteger:_,frameParsers:v},T=i,Ze=qe,S=b,et=function(e){var t,i={descriptor:e&&e.descriptor},l=0,d=[],h=0;if(et.prototype.init.call(this),this.dispatchType=Ze.METADATA_STREAM_TYPE.toString(16),i.descriptor)for(t=0;t<i.descriptor.length;t++)this.dispatchType+=("00"+i.descriptor[t].toString(16)).slice(-2);this.push=function(e){var t,i,s,r,n,a,o;if("timed-metadata"===e.type)if(e.dataAlignmentIndicator&&(h=0,d.length=0),0===d.length&&(e.data.length<10||e.data[0]!=="I".charCodeAt(0)||e.data[1]!=="D".charCodeAt(0)||e.data[2]!=="3".charCodeAt(0)))this.trigger("log",{level:"warn",message:"Skipping unrecognized metadata packet"});else if(d.push(e),h+=e.data.byteLength,1===d.length&&(l=S.parseSyncSafeInteger(e.data.subarray(6,10)),l+=10),!(h<l)){for(t={data:new Uint8Array(l),frames:[],pts:d[0].pts,dts:d[0].dts},r=0;r<l;)t.data.set(d[0].data.subarray(0,l-r),r),r+=d[0].data.byteLength,h-=d[0].data.byteLength,d.shift();i=10,64&t.data[5]&&(i=(i+=4)+S.parseSyncSafeInteger(t.data.subarray(10,14)),l-=S.parseSyncSafeInteger(t.data.subarray(16,20)));do{if((s=S.parseSyncSafeInteger(t.data.subarray(i+4,i+8)))<1){this.trigger("log",{level:"warn",message:"Malformed ID3 frame encountered. Skipping remaining metadata parsing."});break}}while((o={id:String.fromCharCode(t.data[i],t.data[i+1],t.data[i+2],t.data[i+3]),data:t.data.subarray(i+10,i+s+10)}).key=o.id,S.frameParsers[o.id]?S.frameParsers[o.id](o):"T"===o.id[0]?S.frameParsers["T*"](o):"W"===o.id[0]&&S.frameParsers["W*"](o),"com.apple.streaming.transportStreamTimestamp"===o.owner&&(a=(1&(n=o.data)[3])<<30|n[4]<<22|n[5]<<14|n[6]<<6|n[7]>>>2,a=(a*=4)+(3&n[7]),o.timeStamp=a,void 0===t.pts&&void 0===t.dts&&(t.pts=o.timeStamp,t.dts=o.timeStamp),this.trigger("timestamp",o)),t.frames.push(o),(i=i+10+s)<l);this.trigger("data",t)}}},b=(et.prototype=new T,et),T=i,tt=p,w=qe,it=function(){var r=new Uint8Array(188),n=0;it.prototype.init.call(this),this.push=function(e){var t,i=0,s=188;for(n?((t=new Uint8Array(e.byteLength+n)).set(r.subarray(0,n)),t.set(e,n),n=0):t=e;s<t.byteLength;)71===t[i]&&71===t[s]?(this.trigger("data",t.subarray(i,s)),i+=188,s+=188):(i++,s++);i<t.byteLength&&(r.set(t.subarray(i),0),n=t.byteLength-i)},this.flush=function(){188===n&&71===r[0]&&(this.trigger("data",r),n=0),this.trigger("done")},this.endTimeline=function(){this.flush(),this.trigger("endedtimeline")},this.reset=function(){n=0,this.trigger("reset")}},st=(it.prototype=new T,(ze=function(){var s,r,n,a;ze.prototype.init.call(this),(a=this).packetsWaitingForPmt=[],this.programMapTable=void 0,s=function(e,t){var i=0;t.payloadUnitStartIndicator&&(i+=e[i]+1),("pat"===t.type?r:n)(e.subarray(i),t)},r=function(e,t){t.section_number=e[7],t.last_section_number=e[8],a.pmtPid=(31&e[10])<<8|e[11],t.pmtPid=a.pmtPid},n=function(e,t){var i,s;if(1&e[5]){for(a.programMapTable={video:null,audio:null,"timed-metadata":{}},i=3+((15&e[1])<<8|e[2])-4,s=12+((15&e[10])<<8|e[11]);s<i;){var r=e[s],n=(31&e[s+1])<<8|e[s+2];r===w.H264_STREAM_TYPE&&null===a.programMapTable.video?a.programMapTable.video=n:r===w.ADTS_STREAM_TYPE&&null===a.programMapTable.audio?a.programMapTable.audio=n:r===w.METADATA_STREAM_TYPE&&(a.programMapTable["timed-metadata"][n]=r),s+=5+((15&e[s+3])<<8|e[s+4])}t.programMapTable=a.programMapTable}},this.push=function(e){var t={},i=4;if(t.payloadUnitStartIndicator=!!(64&e[1]),t.pid=31&e[1],t.pid<<=8,t.pid|=e[2],1<(48&e[3])>>>4&&(i+=e[i]+1),0===t.pid)t.type="pat",s(e.subarray(i),t),this.trigger("data",t);else if(t.pid===this.pmtPid)for(t.type="pmt",s(e.subarray(i),t),this.trigger("data",t);this.packetsWaitingForPmt.length;)this.processPes_.apply(this,this.packetsWaitingForPmt.shift());else void 0===this.programMapTable?this.packetsWaitingForPmt.push([e,i,t]):this.processPes_(e,i,t)},this.processPes_=function(e,t,i){i.pid===this.programMapTable.video?i.streamType=w.H264_STREAM_TYPE:i.pid===this.programMapTable.audio?i.streamType=w.ADTS_STREAM_TYPE:i.streamType=this.programMapTable["timed-metadata"][i.pid],i.type="pes",i.data=e.subarray(t),this.trigger("data",i)}}).prototype=new T,ze.STREAM_TYPES={h264:27,adts:15},(Xe=function(){function s(e,t,i){var s,r=new Uint8Array(e.size),n={type:t},a=0,o=0;if(e.data.length&&!(e.size<9)){for(n.trackId=e.data[0].pid,a=0;a<e.data.length;a++)s=e.data[a],r.set(s.data,o),o+=s.data.byteLength;d(r,n),t="video"===t||n.packetLength<=e.size,(i||t)&&(e.size=0,e.data.length=0),t&&l.trigger("data",n)}}var t,l=this,r=!1,n={data:[],size:0},a={data:[],size:0},o={data:[],size:0},d=function(e,t){var i=e[0]<<16|e[1]<<8|e[2];t.data=new Uint8Array,1==i&&(t.packetLength=6+(e[4]<<8|e[5]),t.dataAlignmentIndicator=0!=(4&e[6]),192&(i=e[7])&&(t.pts=(14&e[9])<<27|(255&e[10])<<20|(254&e[11])<<12|(255&e[12])<<5|(254&e[13])>>>3,t.pts*=4,t.pts+=(6&e[13])>>>1,t.dts=t.pts,64&i)&&(t.dts=(14&e[14])<<27|(255&e[15])<<20|(254&e[16])<<12|(255&e[17])<<5|(254&e[18])>>>3,t.dts*=4,t.dts+=(6&e[18])>>>1),t.data=e.subarray(9+e[8]))};Xe.prototype.init.call(this),this.push=function(i){({pat:function(){},pes:function(){var e,t;switch(i.streamType){case w.H264_STREAM_TYPE:e=n,t="video";break;case w.ADTS_STREAM_TYPE:e=a,t="audio";break;case w.METADATA_STREAM_TYPE:e=o,t="timed-metadata";break;default:return}i.payloadUnitStartIndicator&&s(e,t,!0),e.data.push(i),e.size+=i.data.byteLength},pmt:function(){var e={type:"metadata",tracks:[]};null!==(t=i.programMapTable).video&&e.tracks.push({timelineStartInfo:{baseMediaDecodeTime:0},id:+t.video,codec:"avc",type:"video"}),null!==t.audio&&e.tracks.push({timelineStartInfo:{baseMediaDecodeTime:0},id:+t.audio,codec:"adts",type:"audio"}),r=!0,l.trigger("data",e)}})[i.type]()},this.reset=function(){n.size=0,n.data.length=0,a.size=0,a.data.length=0,this.trigger("reset")},this.flushStreams_=function(){s(n,"video"),s(a,"audio"),s(o,"timed-metadata")},this.flush=function(){var e;!r&&t&&(e={type:"metadata",tracks:[]},null!==t.video&&e.tracks.push({timelineStartInfo:{baseMediaDecodeTime:0},id:+t.video,codec:"avc",type:"video"}),null!==t.audio&&e.tracks.push({timelineStartInfo:{baseMediaDecodeTime:0},id:+t.audio,codec:"adts",type:"audio"}),l.trigger("data",e)),r=!1,this.flushStreams_(),this.trigger("done")}}).prototype=new T,{PAT_PID:0,MP2T_PACKET_LENGTH:188,TransportPacketStream:it,TransportParseStream:ze,ElementaryStream:Xe,TimestampRolloverStream:Ve,CaptionStream:tt.CaptionStream,Cea608Stream:tt.Cea608Stream,Cea708Stream:tt.Cea708Stream,MetadataStream:b});for(Ke in w)w.hasOwnProperty(Ke)&&(st[Ke]=w[Ke]);var rt,nt,T=st,Ve=i,at=c.ONE_SECOND_IN_TS,ot=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],lt=function(l){var d,h=0;lt.prototype.init.call(this),this.skipWarn_=function(e,t){this.trigger("log",{level:"warn",message:`adts skiping bytes ${e} to ${t} in frame ${h} outside syncword`})},this.push=function(e){var t,i,s,r,n,a,o=0;if(l||(h=0),"audio"===e.type){for(d&&d.length?(s=d,(d=new Uint8Array(s.byteLength+e.data.byteLength)).set(s),d.set(e.data,s.byteLength)):d=e.data;o+7<d.length;)if(255!==d[o]||240!=(246&d[o+1]))"number"!=typeof a&&(a=o),o++;else{if("number"==typeof a&&(this.skipWarn_(a,o),a=null),i=2*(1&~d[o+1]),t=(3&d[o+3])<<11|d[o+4]<<3|(224&d[o+5])>>5,n=(r=1024*(1+(3&d[o+6])))*at/ot[(60&d[o+2])>>>2],d.byteLength-o<t)break;this.trigger("data",{pts:e.pts+h*n,dts:e.dts+h*n,sampleCount:r,audioobjecttype:1+(d[o+2]>>>6&3),channelcount:(1&d[o+2])<<2|(192&d[o+3])>>>6,samplerate:ot[(60&d[o+2])>>>2],samplingfrequencyindex:(60&d[o+2])>>>2,samplesize:16,data:d.subarray(o+7+i,o+t)}),h++,o+=t}"number"==typeof a&&(this.skipWarn_(a,o),a=null),d=d.subarray(o)}},this.flush=function(){h=0,this.trigger("done")},this.reset=function(){d=void 0,this.trigger("reset")},this.endTimeline=function(){d=void 0,this.trigger("endedtimeline")}},tt=(lt.prototype=new Ve,lt),b=i,dt=function(s){var r=s.byteLength,n=0,a=0;this.length=function(){return 8*r},this.bitsAvailable=function(){return 8*r+a},this.loadWord=function(){var e=s.byteLength-r,t=new Uint8Array(4),i=Math.min(4,r);if(0===i)throw new Error("no bytes available");t.set(s.subarray(e,e+i)),n=new DataView(t.buffer).getUint32(0),a=8*i,r-=i},this.skipBits=function(e){var t;e<a||(e=(e-=a)-8*(t=Math.floor(e/8)),r-=t,this.loadWord()),n<<=e,a-=e},this.readBits=function(e){var t=Math.min(a,e),i=n>>>32-t;return 0<(a-=t)?n<<=t:0<r&&this.loadWord(),0<(t=e-t)?i<<t|this.readBits(t):i},this.skipLeadingZeros=function(){for(var e=0;e<a;++e)if(0!=(n&2147483648>>>e))return n<<=e,a-=e,e;return this.loadWord(),e+this.skipLeadingZeros()},this.skipUnsignedExpGolomb=function(){this.skipBits(1+this.skipLeadingZeros())},this.skipExpGolomb=function(){this.skipBits(1+this.skipLeadingZeros())},this.readUnsignedExpGolomb=function(){var e=this.skipLeadingZeros();return this.readBits(e+1)-1},this.readExpGolomb=function(){var e=this.readUnsignedExpGolomb();return 1&e?1+e>>>1:-1*(e>>>1)},this.readBoolean=function(){return 1===this.readBits(1)},this.readUnsignedByte=function(){return this.readBits(8)},this.loadWord()},ht=function(){var s,r,n=0;ht.prototype.init.call(this),this.push=function(e){for(var t,i=(r=r?((t=new Uint8Array(r.byteLength+e.data.byteLength)).set(r),t.set(e.data,r.byteLength),t):e.data).byteLength;n<i-3;n++)if(1===r[n+2]){s=n+5;break}for(;s<i;)switch(r[s]){case 0:if(0!==r[s-1])s+=2;else if(0!==r[s-2])s++;else{for(n+3!==s-2&&this.trigger("data",r.subarray(n+3,s-2));1!==r[++s]&&s<i;);n=s-2,s+=3}break;case 1:0!==r[s-1]||0!==r[s-2]?s+=3:(this.trigger("data",r.subarray(n+3,s-2)),n=s-2,s+=3);break;default:s+=3}r=r.subarray(n),s-=n,n=0},this.reset=function(){r=null,n=0,this.trigger("reset")},this.flush=function(){r&&3<r.byteLength&&this.trigger("data",r.subarray(n+3)),r=null,n=0,this.trigger("done")},this.endTimeline=function(){this.flush(),this.trigger("endedtimeline")}};ht.prototype=new b,nt={100:!0,110:!0,122:!0,244:!0,44:!0,83:!0,86:!0,118:!0,128:!0,138:!0,139:!0,134:!0},(rt=function(){var i,s,r,n,a,o,g,t=new ht;rt.prototype.init.call(this),(i=this).push=function(e){"video"===e.type&&(s=e.trackId,r=e.pts,n=e.dts,t.push(e))},t.on("data",function(e){var t={trackId:s,pts:r,dts:n,data:e,nalUnitTypeCode:31&e[0]};switch(t.nalUnitTypeCode){case 5:t.nalUnitType="slice_layer_without_partitioning_rbsp_idr";break;case 6:t.nalUnitType="sei_rbsp",t.escapedRBSP=a(e.subarray(1));break;case 7:t.nalUnitType="seq_parameter_set_rbsp",t.escapedRBSP=a(e.subarray(1)),t.config=o(t.escapedRBSP);break;case 8:t.nalUnitType="pic_parameter_set_rbsp";break;case 9:t.nalUnitType="access_unit_delimiter_rbsp"}i.trigger("data",t)}),t.on("done",function(){i.trigger("done")}),t.on("partialdone",function(){i.trigger("partialdone")}),t.on("reset",function(){i.trigger("reset")}),t.on("endedtimeline",function(){i.trigger("endedtimeline")}),this.flush=function(){t.flush()},this.partialFlush=function(){t.partialFlush()},this.reset=function(){t.reset()},this.endTimeline=function(){t.endTimeline()},g=function(e,t){for(var i=8,s=8,r=0;r<e;r++)i=0===(s=0!==s?(i+t.readExpGolomb()+256)%256:s)?i:s},a=function(e){for(var t=e.byteLength,i=[],s=1;s<t-2;)0===e[s]&&0===e[s+1]&&3===e[s+2]?(i.push(s+2),s+=2):s++;if(0===i.length)return e;for(var r=t-i.length,n=new Uint8Array(r),a=0,s=0;s<r;a++,s++)a===i[0]&&(a++,i.shift()),n[s]=e[a];return n},o=function(e){var t,i,s,r,n,a,o=0,l=0,d=0,h=0,u=[1,1],c=new dt(e),e=c.readUnsignedByte(),p=c.readUnsignedByte(),m=c.readUnsignedByte();if(c.skipUnsignedExpGolomb(),nt[e]&&(3===(i=c.readUnsignedExpGolomb())&&c.skipBits(1),c.skipUnsignedExpGolomb(),c.skipUnsignedExpGolomb(),c.skipBits(1),c.readBoolean()))for(n=3!==i?8:12,a=0;a<n;a++)c.readBoolean()&&g(a<6?16:64,c);if(c.skipUnsignedExpGolomb(),0===(i=c.readUnsignedExpGolomb()))c.readUnsignedExpGolomb();else if(1===i)for(c.skipBits(1),c.skipExpGolomb(),c.skipExpGolomb(),t=c.readUnsignedExpGolomb(),a=0;a<t;a++)c.skipExpGolomb();if(c.skipUnsignedExpGolomb(),c.skipBits(1),i=c.readUnsignedExpGolomb(),s=c.readUnsignedExpGolomb(),0===(r=c.readBits(1))&&c.skipBits(1),c.skipBits(1),c.readBoolean()&&(o=c.readUnsignedExpGolomb(),l=c.readUnsignedExpGolomb(),d=c.readUnsignedExpGolomb(),h=c.readUnsignedExpGolomb()),c.readBoolean()&&c.readBoolean()){switch(c.readUnsignedByte()){case 1:u=[1,1];break;case 2:u=[12,11];break;case 3:u=[10,11];break;case 4:u=[16,11];break;case 5:u=[40,33];break;case 6:u=[24,11];break;case 7:u=[20,11];break;case 8:u=[32,11];break;case 9:u=[80,33];break;case 10:u=[18,11];break;case 11:u=[15,11];break;case 12:u=[64,33];break;case 13:u=[160,99];break;case 14:u=[4,3];break;case 15:u=[3,2];break;case 16:u=[2,1];break;case 255:u=[c.readUnsignedByte()<<8|c.readUnsignedByte(),c.readUnsignedByte()<<8|c.readUnsignedByte()]}u&&(u[0],u[1])}return{profileIdc:e,levelIdc:m,profileCompatibility:p,width:16*(i+1)-2*o-2*l,height:(2-r)*(s+1)*16-2*d-2*h,sarRatio:u}}}).prototype=new b;function ut(e){return e[0]<<21|e[1]<<14|e[2]<<7|e[3]}var Ve=rt,ct=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],pt=function(e,t){var i=0<=(i=e[t+6]<<21|e[t+7]<<14|e[t+8]<<7|e[t+9])?i:0;return(16&e[t+5])>>4?20+i:10+i},mt=function(e,t){return e.length-t<10||e[t]!=="I".charCodeAt(0)||e[t+1]!=="D".charCodeAt(0)||e[t+2]!=="3".charCodeAt(0)?t:(t+=pt(e,t),mt(e,t))},gt=function(e,t,i){for(var s="",r=t;r<i;r++)s+="%"+("00"+e[r].toString(16)).slice(-2);return s},b={isLikelyAacData:function(e){var t=mt(e,0);return e.length>=t+2&&255==(255&e[t])&&240==(240&e[t+1])&&16==(22&e[t+1])},parseId3TagSize:pt,parseAdtsSize:function(e,t){var i=(224&e[t+5])>>5,s=e[t+4]<<3;return 6144&e[t+3]|s|i},parseType:function(e,t){return e[t]==="I".charCodeAt(0)&&e[t+1]==="D".charCodeAt(0)&&e[t+2]==="3".charCodeAt(0)?"timed-metadata":!0&e[t]&&240==(240&e[t+1])?"audio":null},parseSampleRate:function(e){for(var t=0;t+5<e.length;){if(255===e[t]&&240==(246&e[t+1]))return ct[(60&e[t+2])>>>2];t++}return null},parseAacTimestamp:function(e){var t,i=10;64&e[5]&&(i=(i+=4)+ut(e.subarray(10,14)));do{if((t=ut(e.subarray(i+4,i+8)))<1)return null;if("PRIV"===String.fromCharCode(e[i],e[i+1],e[i+2],e[i+3]))for(var s,r,n=e.subarray(i+10,i+t+10),a=0;a<n.byteLength;a++)if(0===n[a]){if("com.apple.streaming.transportStreamTimestamp"===unescape(gt(n,0,a)))return r=(1&(s=n.subarray(a+1))[3])<<30|s[4]<<22|s[5]<<14|s[6]<<6|s[7]>>>2,(r*=4)+(3&s[7]);break}}while((i=i+10+t)<e.byteLength);return null}},E=i,ft=b,yt=function(){var n=new Uint8Array,a=0;yt.prototype.init.call(this),this.setTimestamp=function(e){a=e},this.push=function(e){var t,i,s=0,r=0;for(n.length?(i=n.length,(n=new Uint8Array(e.byteLength+i)).set(n.subarray(0,i)),n.set(e,i)):n=e;3<=n.length-r;)if(n[r]==="I".charCodeAt(0)&&n[r+1]==="D".charCodeAt(0)&&n[r+2]==="3".charCodeAt(0)){if(n.length-r<10)break;if(r+(s=ft.parseId3TagSize(n,r))>n.length)break;t={type:"timed-metadata",data:n.subarray(r,r+s)},this.trigger("data",t),r+=s}else if(255==(255&n[r])&&240==(240&n[r+1])){if(n.length-r<7)break;if(r+(s=ft.parseAdtsSize(n,r))>n.length)break;t={type:"audio",data:n.subarray(r,r+s),pts:a,dts:a},this.trigger("data",t),r+=s}else r++;i=n.length-r,n=0<i?n.subarray(r):new Uint8Array},this.reset=function(){n=new Uint8Array,this.trigger("reset")},this.endTimeline=function(){n=new Uint8Array,this.trigger("endedtimeline")}};yt.prototype=new E;function _t(e,t){for(var i=Object.keys(t),s=0;s<i.length;s++){var r=i[s];"headOfPipeline"!==r&&t[r].on&&t[r].on("log",Ot.bind(e,r))}}function vt(e,t){var i;if(e.length===t.length){for(i=0;i<e.length;i++)if(e[i]!==t[i])return;return 1}}function bt(e,t,i,s,r,n){return{start:{dts:e,pts:e+(i-t)},end:{dts:e+(s-t),pts:e+(r-i)},prependedContentDuration:n,baseMediaDecodeTime:e}}var Tt,St,k,E=i,C=Ce,I=xe,wt=Pe,x=Le,A=T,Et=c,kt=tt,Ct=Ve,It=yt,xt=b.isLikelyAacData,At=c.ONE_SECOND_IN_TS,Pt=["audioobjecttype","channelcount","samplerate","samplingfrequencyindex","samplesize"],Lt=["width","height","profileIdc","levelIdc","profileCompatibility","sarRatio"],Ot=function(e,t){t.stream=e,this.trigger("log",t)},Dt=function(n,a){var o=[],l=0,d=0,h=1/0,u=(a=a||{}).firstSequenceNumber||0;Dt.prototype.init.call(this),this.push=function(t){x.collectDtsInfo(n,t),n&&Pt.forEach(function(e){n[e]=t[e]}),o.push(t)},this.setEarliestDts=function(e){l=e},this.setVideoBaseMediaDecodeTime=function(e){h=e},this.setAudioAppendStart=function(e){d=e},this.flush=function(){var e,t,i,s,r;0!==o.length&&(e=wt.trimAdtsFramesByEarliestDts(o,n,l),n.baseMediaDecodeTime=x.calculateTrackBaseMediaDecodeTime(n,a.keepOriginalTimestamps),r=wt.prefixWithSilence(n,e,d,h),n.samples=wt.generateSampleTable(e),i=C.mdat(wt.concatenateFrameData(e)),o=[],s=C.moof(u,[n]),t=new Uint8Array(s.byteLength+i.byteLength),u++,t.set(s),t.set(i,s.byteLength),x.clearDtsInfo(n),i=Math.ceil(1024*At/n.samplerate),e.length&&(s=e.length*i,this.trigger("segmentTimingInfo",bt(Et.audioTsToVideoTs(n.baseMediaDecodeTime,n.samplerate),e[0].dts,e[0].pts,e[0].dts+s,e[0].pts+s,r||0)),this.trigger("timingInfo",{start:e[0].pts,end:e[0].pts+s})),this.trigger("data",{track:n,boxes:t})),this.trigger("done","AudioSegmentStream")},this.reset=function(){x.clearDtsInfo(n),o=[],this.trigger("reset")}};Dt.prototype=new E,(Tt=function(a,n){var t,i,o=[],d=[],l=(n=n||{}).firstSequenceNumber||0;Tt.prototype.init.call(this),delete a.minPTS,this.gopCache_=[],this.push=function(e){x.collectDtsInfo(a,e),"seq_parameter_set_rbsp"!==e.nalUnitType||t||(t=e.config,a.sps=[e.data],Lt.forEach(function(e){a[e]=t[e]},this)),"pic_parameter_set_rbsp"!==e.nalUnitType||i||(i=e.data,a.pps=[e.data]),o.push(e)},this.flush=function(){for(var e,t,i,s=0;o.length&&"access_unit_delimiter_rbsp"!==o[0].nalUnitType;)o.shift();if(0!==o.length){if(e=I.groupNalsIntoFrames(o),(e=I.groupFramesIntoGops(e))[0][0].keyFrame||((r=this.getGopForFusion_(o[0],a))?(s=r.duration,e.unshift(r),e.byteLength+=r.byteLength,e.nalCount+=r.nalCount,e.pts=r.pts,e.dts=r.dts,e.duration+=r.duration):e=I.extendFirstKeyFrame(e)),d.length){var r=n.alignGopsAtEnd?this.alignGopsAtEnd_(e):this.alignGopsAtStart_(e);if(!r)return this.gopCache_.unshift({gop:e.pop(),pps:a.pps,sps:a.sps}),this.gopCache_.length=Math.min(6,this.gopCache_.length),o=[],this.resetStream_(),void this.trigger("done","VideoSegmentStream");x.clearDtsInfo(a),e=r}x.collectDtsInfo(a,e),a.samples=I.generateSampleTable(e),r=C.mdat(I.concatenateNalData(e)),a.baseMediaDecodeTime=x.calculateTrackBaseMediaDecodeTime(a,n.keepOriginalTimestamps),this.trigger("processedGopsInfo",e.map(function(e){return{pts:e.pts,dts:e.dts,byteLength:e.byteLength}})),t=e[0],i=e[e.length-1],this.trigger("segmentTimingInfo",bt(a.baseMediaDecodeTime,t.dts,t.pts,i.dts+i.duration,i.pts+i.duration,s)),this.trigger("timingInfo",{start:e[0].pts,end:e[e.length-1].pts+e[e.length-1].duration}),this.gopCache_.unshift({gop:e.pop(),pps:a.pps,sps:a.sps}),this.gopCache_.length=Math.min(6,this.gopCache_.length),o=[],this.trigger("baseMediaDecodeTime",a.baseMediaDecodeTime),this.trigger("timelineStartInfo",a.timelineStartInfo),t=C.moof(l,[a]),i=new Uint8Array(t.byteLength+r.byteLength),l++,i.set(t),i.set(r,t.byteLength),this.trigger("data",{track:a,boxes:i})}this.resetStream_(),this.trigger("done","VideoSegmentStream")},this.reset=function(){this.resetStream_(),o=[],this.gopCache_.length=0,d.length=0,this.trigger("reset")},this.resetStream_=function(){x.clearDtsInfo(a),i=t=void 0},this.getGopForFusion_=function(e){for(var t,i,s,r=1/0,n=0;n<this.gopCache_.length;n++)i=(s=this.gopCache_[n]).gop,a.pps&&vt(a.pps[0],s.pps[0])&&a.sps&&vt(a.sps[0],s.sps[0])&&(i.dts<a.timelineStartInfo.dts||-1e4<=(i=e.dts-i.dts-i.duration)&&i<=45e3&&(!t||i<r)&&(t=s,r=i));return t?t.gop:null},this.alignGopsAtStart_=function(e){for(var t,i,s,r,n=e.byteLength,a=e.nalCount,o=e.duration,l=t=0;l<d.length&&t<e.length&&(i=d[l],s=e[t],i.pts!==s.pts);)s.pts>i.pts?l++:(t++,n-=s.byteLength,a-=s.nalCount,o-=s.duration);return 0===t?e:t===e.length?null:((r=e.slice(t)).byteLength=n,r.duration=o,r.nalCount=a,r.pts=r[0].pts,r.dts=r[0].dts,r)},this.alignGopsAtEnd_=function(e){for(var t,i,s,r,n=d.length-1,a=e.length-1,o=null,l=!1;0<=n&&0<=a;){if(t=d[n],i=e[a],t.pts===i.pts){l=!0;break}t.pts>i.pts?n--:(n===d.length-1&&(o=a),a--)}return l||null!==o?0===(s=l?a:o)?e:(r=(s=e.slice(s)).reduce(function(e,t){return e.byteLength+=t.byteLength,e.duration+=t.duration,e.nalCount+=t.nalCount,e},{byteLength:0,duration:0,nalCount:0}),s.byteLength=r.byteLength,s.duration=r.duration,s.nalCount=r.nalCount,s.pts=s[0].pts,s.dts=s[0].dts,s):null},this.alignGopsWith=function(e){d=e}}).prototype=new E,((k=function(e,t){this.numberOfTracks=0,this.metadataStream=t,"undefined"!=typeof(e=e||{}).remux?this.remuxTracks=!!e.remux:this.remuxTracks=!0,"boolean"==typeof e.keepOriginalTimestamps?this.keepOriginalTimestamps=e.keepOriginalTimestamps:this.keepOriginalTimestamps=!1,this.pendingTracks=[],this.videoTrack=null,this.pendingBoxes=[],this.pendingCaptions=[],this.pendingMetadata=[],this.pendingBytes=0,this.emittedTracks=0,k.prototype.init.call(this),this.push=function(e){return e.text?this.pendingCaptions.push(e):e.frames?this.pendingMetadata.push(e):(this.pendingTracks.push(e.track),this.pendingBytes+=e.boxes.byteLength,"video"===e.track.type&&(this.videoTrack=e.track,this.pendingBoxes.push(e.boxes)),void("audio"===e.track.type&&(this.audioTrack=e.track,this.pendingBoxes.unshift(e.boxes))))}}).prototype=new E).flush=function(e){var t,i,s,r=0,n={captions:[],captionStreams:{},metadata:[],info:{}},a=0;if(this.pendingTracks.length<this.numberOfTracks){if("VideoSegmentStream"!==e&&"AudioSegmentStream"!==e)return;if(this.remuxTracks)return;if(0===this.pendingTracks.length)return this.emittedTracks++,void(this.emittedTracks>=this.numberOfTracks&&(this.trigger("done"),this.emittedTracks=0))}if(this.videoTrack?(a=this.videoTrack.timelineStartInfo.pts,Lt.forEach(function(e){n.info[e]=this.videoTrack[e]},this)):this.audioTrack&&(a=this.audioTrack.timelineStartInfo.pts,Pt.forEach(function(e){n.info[e]=this.audioTrack[e]},this)),this.videoTrack||this.audioTrack){for(1===this.pendingTracks.length?n.type=this.pendingTracks[0].type:n.type="combined",this.emittedTracks+=this.pendingTracks.length,e=C.initSegment(this.pendingTracks),n.initSegment=new Uint8Array(e.byteLength),n.initSegment.set(e),n.data=new Uint8Array(this.pendingBytes),s=0;s<this.pendingBoxes.length;s++)n.data.set(this.pendingBoxes[s],r),r+=this.pendingBoxes[s].byteLength;for(s=0;s<this.pendingCaptions.length;s++)(t=this.pendingCaptions[s]).startTime=Et.metadataTsToSeconds(t.startPts,a,this.keepOriginalTimestamps),t.endTime=Et.metadataTsToSeconds(t.endPts,a,this.keepOriginalTimestamps),n.captionStreams[t.stream]=!0,n.captions.push(t);for(s=0;s<this.pendingMetadata.length;s++)(i=this.pendingMetadata[s]).cueTime=Et.metadataTsToSeconds(i.pts,a,this.keepOriginalTimestamps),n.metadata.push(i);for(n.metadata.dispatchType=this.metadataStream.dispatchType,this.pendingTracks.length=0,this.videoTrack=null,this.pendingBoxes.length=0,this.pendingCaptions.length=0,this.pendingBytes=0,this.pendingMetadata.length=0,this.trigger("data",n),s=0;s<n.captions.length;s++)t=n.captions[s],this.trigger("caption",t);for(s=0;s<n.metadata.length;s++)i=n.metadata[s],this.trigger("id3Frame",i)}this.emittedTracks>=this.numberOfTracks&&(this.trigger("done"),this.emittedTracks=0)},k.prototype.setRemux=function(e){this.remuxTracks=e},(St=function(s){var r,n,a=this,i=!0;St.prototype.init.call(this),s=s||{},this.baseMediaDecodeTime=s.baseMediaDecodeTime||0,this.transmuxPipeline_={},this.setupAacPipeline=function(){var t={};(this.transmuxPipeline_=t).type="aac",t.metadataStream=new A.MetadataStream,t.aacStream=new It,t.audioTimestampRolloverStream=new A.TimestampRolloverStream("audio"),t.timedMetadataTimestampRolloverStream=new A.TimestampRolloverStream("timed-metadata"),t.adtsStream=new kt,t.coalesceStream=new k(s,t.metadataStream),t.headOfPipeline=t.aacStream,t.aacStream.pipe(t.audioTimestampRolloverStream).pipe(t.adtsStream),t.aacStream.pipe(t.timedMetadataTimestampRolloverStream).pipe(t.metadataStream).pipe(t.coalesceStream),t.metadataStream.on("timestamp",function(e){t.aacStream.setTimestamp(e.timeStamp)}),t.aacStream.on("data",function(e){"timed-metadata"!==e.type&&"audio"!==e.type||t.audioSegmentStream||(n=n||{timelineStartInfo:{baseMediaDecodeTime:a.baseMediaDecodeTime},codec:"adts",type:"audio"},t.coalesceStream.numberOfTracks++,t.audioSegmentStream=new Dt(n,s),t.audioSegmentStream.on("log",a.getLogTrigger_("audioSegmentStream")),t.audioSegmentStream.on("timingInfo",a.trigger.bind(a,"audioTimingInfo")),t.adtsStream.pipe(t.audioSegmentStream).pipe(t.coalesceStream),a.trigger("trackinfo",{hasAudio:!!n,hasVideo:!!r}))}),t.coalesceStream.on("data",this.trigger.bind(this,"data")),t.coalesceStream.on("done",this.trigger.bind(this,"done")),_t(this,t)},this.setupTsPipeline=function(){var i={};(this.transmuxPipeline_=i).type="ts",i.metadataStream=new A.MetadataStream,i.packetStream=new A.TransportPacketStream,i.parseStream=new A.TransportParseStream,i.elementaryStream=new A.ElementaryStream,i.timestampRolloverStream=new A.TimestampRolloverStream,i.adtsStream=new kt,i.h264Stream=new Ct,i.captionStream=new A.CaptionStream(s),i.coalesceStream=new k(s,i.metadataStream),i.headOfPipeline=i.packetStream,i.packetStream.pipe(i.parseStream).pipe(i.elementaryStream).pipe(i.timestampRolloverStream),i.timestampRolloverStream.pipe(i.h264Stream),i.timestampRolloverStream.pipe(i.adtsStream),i.timestampRolloverStream.pipe(i.metadataStream).pipe(i.coalesceStream),i.h264Stream.pipe(i.captionStream).pipe(i.coalesceStream),i.elementaryStream.on("data",function(e){var t;if("metadata"===e.type){for(t=e.tracks.length;t--;)r||"video"!==e.tracks[t].type?n||"audio"!==e.tracks[t].type||((n=e.tracks[t]).timelineStartInfo.baseMediaDecodeTime=a.baseMediaDecodeTime):(r=e.tracks[t]).timelineStartInfo.baseMediaDecodeTime=a.baseMediaDecodeTime;r&&!i.videoSegmentStream&&(i.coalesceStream.numberOfTracks++,i.videoSegmentStream=new Tt(r,s),i.videoSegmentStream.on("log",a.getLogTrigger_("videoSegmentStream")),i.videoSegmentStream.on("timelineStartInfo",function(e){n&&!s.keepOriginalTimestamps&&(n.timelineStartInfo=e,i.audioSegmentStream.setEarliestDts(e.dts-a.baseMediaDecodeTime))}),i.videoSegmentStream.on("processedGopsInfo",a.trigger.bind(a,"gopInfo")),i.videoSegmentStream.on("segmentTimingInfo",a.trigger.bind(a,"videoSegmentTimingInfo")),i.videoSegmentStream.on("baseMediaDecodeTime",function(e){n&&i.audioSegmentStream.setVideoBaseMediaDecodeTime(e)}),i.videoSegmentStream.on("timingInfo",a.trigger.bind(a,"videoTimingInfo")),i.h264Stream.pipe(i.videoSegmentStream).pipe(i.coalesceStream)),n&&!i.audioSegmentStream&&(i.coalesceStream.numberOfTracks++,i.audioSegmentStream=new Dt(n,s),i.audioSegmentStream.on("log",a.getLogTrigger_("audioSegmentStream")),i.audioSegmentStream.on("timingInfo",a.trigger.bind(a,"audioTimingInfo")),i.audioSegmentStream.on("segmentTimingInfo",a.trigger.bind(a,"audioSegmentTimingInfo")),i.adtsStream.pipe(i.audioSegmentStream).pipe(i.coalesceStream)),a.trigger("trackinfo",{hasAudio:!!n,hasVideo:!!r})}}),i.coalesceStream.on("data",this.trigger.bind(this,"data")),i.coalesceStream.on("id3Frame",function(e){e.dispatchType=i.metadataStream.dispatchType,a.trigger("id3Frame",e)}),i.coalesceStream.on("caption",this.trigger.bind(this,"caption")),i.coalesceStream.on("done",this.trigger.bind(this,"done")),_t(this,i)},this.setBaseMediaDecodeTime=function(e){var t=this.transmuxPipeline_;s.keepOriginalTimestamps||(this.baseMediaDecodeTime=e),n&&(n.timelineStartInfo.dts=void 0,n.timelineStartInfo.pts=void 0,x.clearDtsInfo(n),t.audioTimestampRolloverStream)&&t.audioTimestampRolloverStream.discontinuity(),r&&(t.videoSegmentStream&&(t.videoSegmentStream.gopCache_=[]),r.timelineStartInfo.dts=void 0,r.timelineStartInfo.pts=void 0,x.clearDtsInfo(r),t.captionStream.reset()),t.timestampRolloverStream&&t.timestampRolloverStream.discontinuity()},this.setAudioAppendStart=function(e){n&&this.transmuxPipeline_.audioSegmentStream.setAudioAppendStart(e)},this.setRemux=function(e){var t=this.transmuxPipeline_;s.remux=e,t&&t.coalesceStream&&t.coalesceStream.setRemux(e)},this.alignGopsWith=function(e){r&&this.transmuxPipeline_.videoSegmentStream&&this.transmuxPipeline_.videoSegmentStream.alignGopsWith(e)},this.getLogTrigger_=function(t){var i=this;return function(e){e.stream=t,i.trigger("log",e)}},this.push=function(e){var t;i&&((t=xt(e))&&"aac"!==this.transmuxPipeline_.type?this.setupAacPipeline():t||"ts"===this.transmuxPipeline_.type||this.setupTsPipeline(),i=!1),this.transmuxPipeline_.headOfPipeline.push(e)},this.flush=function(){i=!0,this.transmuxPipeline_.headOfPipeline.flush()},this.endTimeline=function(){this.transmuxPipeline_.headOfPipeline.endTimeline()},this.reset=function(){this.transmuxPipeline_.headOfPipeline&&this.transmuxPipeline_.headOfPipeline.reset()},this.resetCaptions=function(){this.transmuxPipeline_.captionStream&&this.transmuxPipeline_.captionStream.reset()}}).prototype=new E;function Nt(e){var t="";return(t+=String.fromCharCode(e[0]))+String.fromCharCode(e[1])+String.fromCharCode(e[2])+String.fromCharCode(e[3])}function Mt(e,t){var i,s,r,n=[];if(!t.length)return null;for(i=0;i<e.byteLength;)s=$t(e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3]),r=Wt(e.subarray(i+4,i+8)),s=1<s?i+s:e.byteLength,r===t[0]&&(1===t.length?n.push(e.subarray(i+8,s)):(r=Mt(e.subarray(i+8,s),t.slice(1))).length&&(n=n.concat(r))),i=s;return n}function Rt(e){var t={version:e[0],flags:new Uint8Array(e.subarray(1,4))};return t.baseMediaDecodeTime=1===t.version?zt(e.subarray(4)):Gt(e[4]<<24|e[5]<<16|e[6]<<8|e[7]),t}function Ut(e){var t,i={version:e[0],flags:new Uint8Array(e.subarray(1,4)),samples:[]},s=new DataView(e.buffer,e.byteOffset,e.byteLength),r=1&i.flags[2],n=4&i.flags[2],a=1&i.flags[1],o=2&i.flags[1],l=4&i.flags[1],d=8&i.flags[1],h=s.getUint32(4),u=8;for(r&&(i.dataOffset=s.getInt32(u),u+=4),n&&h&&(t={flags:Xt(e.subarray(u,u+4))},u+=4,a&&(t.duration=s.getUint32(u),u+=4),o&&(t.size=s.getUint32(u),u+=4),d&&(t.compositionTimeOffset=1===i.version?s.getInt32(u):s.getUint32(u),u+=4),i.samples.push(t),h--);h--;)t={},a&&(t.duration=s.getUint32(u),u+=4),o&&(t.size=s.getUint32(u),u+=4),l&&(t.flags=Xt(e.subarray(u,u+4)),u+=4),d&&(t.compositionTimeOffset=1===i.version?s.getInt32(u):s.getUint32(u),u+=4),i.samples.push(t);return i}function Bt(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength),i=1&(e={version:e[0],flags:new Uint8Array(e.subarray(1,4)),trackId:t.getUint32(4)}).flags[2],s=2&e.flags[2],r=8&e.flags[2],n=16&e.flags[2],a=32&e.flags[2],o=65536&e.flags[0],l=131072&e.flags[0],d=8;return i&&(d+=4,e.baseDataOffset=t.getUint32(12),d+=4),s&&(e.sampleDescriptionIndex=t.getUint32(d),d+=4),r&&(e.defaultSampleDuration=t.getUint32(d),d+=4),n&&(e.defaultSampleSize=t.getUint32(d),d+=4),a&&(e.defaultSampleFlags=t.getUint32(d)),o&&(e.durationIsEmpty=!0),!i&&l&&(e.baseDataOffsetIsMoof=!0),e}function Ft(e){var t=31&e[1];return t<<8|e[2]}function jt(e){return!!(64&e[1])}function Ht(e){var t=0;return 1<(48&e[3])>>>4&&(t+=e[4]+1),t}function qt(e){switch(e){case 5:return"slice_layer_without_partitioning_rbsp_idr";case 6:return"sei_rbsp";case 7:return"seq_parameter_set_rbsp";case 8:return"pic_parameter_set_rbsp";case 9:return"access_unit_delimiter_rbsp";default:return null}}var Vt=St,i=function(e){return e>>>0},Pe=function(e){return("00"+e.toString(16)).slice(-2)},$t=i,Wt=Nt,Gt=i,zt=_e.getUint64,Xt=function(e){return{isLeading:(12&e[0])>>>2,dependsOn:3&e[0],isDependedOn:(192&e[1])>>>6,hasRedundancy:(48&e[1])>>>4,paddingValue:(14&e[1])>>>1,isNonSyncSample:1&e[1],degradationPriority:e[2]<<8|e[3]}},Le="undefined"!=typeof window?window:"undefined"!=typeof fe?fe:"undefined"!=typeof self?self:{},T=Le,Kt=De.discardEmulationPreventionBytes,Yt=p.CaptionStream,P=Mt,Qt=Rt,Jt=Ut,Zt=Bt,ei=T,ti=function(e,h){var i=P(e,["moof","traf"]),e=P(e,["mdat"]),u={},s=[];return e.forEach(function(e,t){t=i[t];s.push({mdat:e,traf:t})}),s.forEach(function(e){var t,i,s,r,n,a=e.mdat,e=e.traf,o=P(e,["tfhd"]),o=Zt(o[0]),l=o.trackId,d=P(e,["tfdt"]),d=0<d.length?Qt(d[0]).baseMediaDecodeTime:0,e=P(e,["trun"]);h===l&&0<e.length&&(t=d,i=o.defaultSampleDuration||0,s=o.defaultSampleSize||0,r=o.trackId,n=[],e.forEach(function(e){e=Jt(e).samples;e.forEach(function(e){void 0===e.duration&&(e.duration=i),void 0===e.size&&(e.size=s),e.trackId=r,e.dts=t,void 0===e.compositionTimeOffset&&(e.compositionTimeOffset=0),"bigint"==typeof t?(e.pts=t+ei.BigInt(e.compositionTimeOffset),t+=ei.BigInt(e.duration)):(e.pts=t+e.compositionTimeOffset,t+=e.duration)}),n=n.concat(e)}),d=function(e,t,i){for(var s,r,n=new DataView(e.buffer,e.byteOffset,e.byteLength),a={logs:[],seiNals:[]},o=0;o+4<e.length;o+=s)if(s=n.getUint32(o),o+=4,!(s<=0))switch(31&e[o]){case 6:var l=e.subarray(o+1,o+1+s),d=function(e,t){for(var i=e,s=0;s<t.length;s++){var r=t[s];if(i<r.size)return r;i-=r.size}return null}(o,t),l={nalUnitType:"sei_rbsp",size:s,data:l,escapedRBSP:Kt(l),trackId:i};if(d)l.pts=d.pts,l.dts=d.dts,r=d;else{if(!r){a.logs.push({level:"warn",message:"We've encountered a nal unit without data at "+o+" for trackId "+i+". See mux.js#223."});break}l.pts=r.pts,l.dts=r.dts}a.seiNals.push(l)}return a}(a,n,l),u[l]||(u[l]={seiNals:[],logs:[]}),u[l].seiNals=u[l].seiNals.concat(d.seiNals),u[l].logs=u[l].logs.concat(d.logs))}),u},ii=function(){var t,a,o,l,d,i,s=!1;this.isInitialized=function(){return s},this.init=function(e){t=new Yt,s=!0,i=!!e&&e.isPartial,t.on("data",function(e){e.startTime=e.startPts/l,e.endTime=e.endPts/l,d.captions.push(e),d.captionStreams[e.stream]=!0}),t.on("log",function(e){d.logs.push(e)})},this.isNewInit=function(e,t){return!(e&&0===e.length||t&&"object"==typeof t&&0===Object.keys(t).length||o===e[0]&&l===t[o])},this.parse=function(e,t,i){var s,r;if(!this.isInitialized())return null;if(!t||!i)return null;if(this.isNewInit(t,i))o=t[0],l=i[o];else if(null===o||!l)return a.push(e),null;for(;0<a.length;){var n=a.shift();this.parse(n,t,i)}return e=e,r=l,(s=null===(s=o)?null:{seiNals:(e=ti(e,s)[s]||{}).seiNals,logs:e.logs,timescale:r})&&s.logs&&(d.logs=d.logs.concat(s.logs)),null!==s&&s.seiNals?(this.pushNals(s.seiNals),this.flushStream(),d):d.logs.length?{logs:d.logs,captions:[],captionStreams:[]}:null},this.pushNals=function(e){if(!this.isInitialized()||!e||0===e.length)return null;e.forEach(function(e){t.push(e)})},this.flushStream=function(){if(!this.isInitialized())return null;i?t.partialFlush():t.flush()},this.clearParsedCaptions=function(){d.captions=[],d.captionStreams={},d.logs=[]},this.resetCaptionStream=function(){if(!this.isInitialized())return null;t.reset()},this.clearAllCaptions=function(){this.clearParsedCaptions(),this.resetCaptionStream()},this.reset=function(){a=[],l=o=null,d?this.clearParsedCaptions():d={captions:[],captionStreams:{},logs:[]},this.resetCaptionStream()},this.reset()},si=i,L=Pe,O=Mt,ri=Nt,ni=_e.getUint64,ai=T,oi=function(e){var t=0===e[0]?12:20;return si(e[t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])},li=function(n,e){e=O(e,["moof","traf"]).reduce(function(e,t){var i=O(t,["tfhd"])[0],i=si(i[4]<<24|i[5]<<16|i[6]<<8|i[7]),i=n[i]||9e4,t=O(t,["tfdt"])[0],s=new DataView(t.buffer,t.byteOffset,t.byteLength),t=1===t[0]?ni(t.subarray(4,12)):s.getUint32(4);let r;return"bigint"==typeof t?r=t/ai.BigInt(i):"number"!=typeof t||isNaN(t)||(r=t/i),e=(r=r<Number.MAX_SAFE_INTEGER?Number(r):r)<e?r:e},1/0);return"bigint"==typeof e||isFinite(e)?e:0},di=function(e){var e=O(e,["moov","trak"]),n=[];return e.forEach(function(e){var t,i={},s=O(e,["tkhd"])[0],r=(s&&(r=(s=new DataView(s.buffer,s.byteOffset,s.byteLength)).getUint8(0),i.id=0===r?s.getUint32(12):s.getUint32(20)),O(e,["mdia","hdlr"])[0]),r=(r&&(s=ri(r.subarray(8,12)),i.type="vide"===s?"video":"soun"===s?"audio":s),O(e,["mdia","minf","stbl","stsd"])[0]),s=(r&&(s=r.subarray(8),i.codec=ri(s.subarray(4,8)),r=O(s,[i.codec])[0])&&(/^[asm]vc[1-9]$/i.test(i.codec)?(t=r.subarray(78),"avcC"===ri(t.subarray(4,8))&&11<t.length?(i.codec+=".",i.codec+=L(t[9]),i.codec+=L(t[10]),i.codec+=L(t[11])):i.codec="avc1.4d400d"):/^mp4[a,v]$/i.test(i.codec)?(t=r.subarray(28),"esds"===ri(t.subarray(4,8))&&20<t.length&&0!==t[19]?(i.codec+="."+L(t[19]),i.codec+="."+L(t[20]>>>2&63).replace(/^0/,"")):i.codec="mp4a.40.2"):i.codec=i.codec.toLowerCase()),O(e,["mdia","mdhd"])[0]);s&&(i.timescale=oi(s)),n.push(i)}),n},hi=qe,ui=qe,D=Ye,N={},M=(N.ts={parseType:function(e,t){e=Ft(e);return 0===e?"pat":e===t?"pmt":t?"pes":null},parsePat:function(e){var t=jt(e),i=4+Ht(e);return t&&(i+=e[i]+1),(31&e[i+10])<<8|e[i+11]},parsePmt:function(e){var t={},i=jt(e),s=4+Ht(e);if(i&&(s+=e[s]+1),1&e[s+5]){for(var r=3+((15&e[s+1])<<8|e[s+2])-4,n=12+((15&e[s+10])<<8|e[s+11]);n<r;){var a=s+n;t[(31&e[a+1])<<8|e[a+2]]=e[a],n+=5+((15&e[a+3])<<8|e[a+4])}return t}},parsePayloadUnitStartIndicator:jt,parsePesType:function(e,t){switch(t[Ft(e)]){case hi.H264_STREAM_TYPE:return"video";case hi.ADTS_STREAM_TYPE:return"audio";case hi.METADATA_STREAM_TYPE:return"timed-metadata";default:return null}},parsePesTime:function(e){var t,i,s;return!jt(e)||(t=4+Ht(e))>=e.byteLength?null:(i=null,192&(s=e[t+7])&&((i={}).pts=(14&e[t+9])<<27|(255&e[t+10])<<20|(254&e[t+11])<<12|(255&e[t+12])<<5|(254&e[t+13])>>>3,i.pts*=4,i.pts+=(6&e[t+13])>>>1,i.dts=i.pts,64&s)&&(i.dts=(14&e[t+14])<<27|(255&e[t+15])<<20|(254&e[t+16])<<12|(255&e[t+17])<<5|(254&e[t+18])>>>3,i.dts*=4,i.dts+=(6&e[t+18])>>>1),i)},videoPacketContainsKeyFrame:function(e){for(var t=4+Ht(e),i=e.subarray(t),s=0,r=0,n=!1;r<i.byteLength-3;r++)if(1===i[r+2]){s=r+5;break}for(;s<i.byteLength;)switch(i[s]){case 0:if(0!==i[s-1])s+=2;else if(0!==i[s-2])s++;else{for(r+3!==s-2&&"slice_layer_without_partitioning_rbsp_idr"===qt(31&i[r+3])&&(n=!0);1!==i[++s]&&s<i.length;);r=s-2,s+=3}break;case 1:0!==i[s-1]||0!==i[s-2]?s+=3:("slice_layer_without_partitioning_rbsp_idr"===qt(31&i[r+3])&&(n=!0),r=s-2,s+=3);break;default:s+=3}return i=i.subarray(r),s-=r,r=0,n=i&&3<i.byteLength&&"slice_layer_without_partitioning_rbsp_idr"===qt(31&i[r+3])?!0:n}},N.aac=b,c.ONE_SECOND_IN_TS),ci=function(e,t){for(var i,s=0,r=188;r<e.byteLength;)if(71===e[s]&&71===e[r]){switch(i=e.subarray(s,r),N.ts.parseType(i,t.pid)){case"pat":t.pid=N.ts.parsePat(i);break;case"pmt":var n=N.ts.parsePmt(i);t.table=t.table||{},Object.keys(n).forEach(function(e){t.table[e]=n[e]})}s+=188,r+=188}else s++,r++},pi=function(e,t,i){for(var s,r,n,a,o=0,l=188,d=!1;l<=e.byteLength;)if(71!==e[o]||71!==e[l]&&l!==e.byteLength)o++,l++;else{if(s=e.subarray(o,l),"pes"===N.ts.parseType(s,t.pid)&&(r=N.ts.parsePesType(s,t.table),n=N.ts.parsePayloadUnitStartIndicator(s),"audio"===r)&&n&&(a=N.ts.parsePesTime(s))&&(a.type="audio",i.audio.push(a),d=!0),d)break;o+=188,l+=188}for(o=(l=e.byteLength)-188,d=!1;0<=o;)if(71!==e[o]||71!==e[l]&&l!==e.byteLength)o--,l--;else{if(s=e.subarray(o,l),"pes"===N.ts.parseType(s,t.pid)&&(r=N.ts.parsePesType(s,t.table),n=N.ts.parsePayloadUnitStartIndicator(s),"audio"===r)&&n&&(a=N.ts.parsePesTime(s))&&(a.type="audio",i.audio.push(a),d=!0),d)break;o-=188,l-=188}},mi=function(e,t,i){for(var s,r,n,a,o,l,d,h,u=0,c=188,p=!1,m={data:[],size:0};c<e.byteLength;)if(71===e[u]&&71===e[c]){if(s=e.subarray(u,c),"pes"===N.ts.parseType(s,t.pid))if(r=N.ts.parsePesType(s,t.table),n=N.ts.parsePayloadUnitStartIndicator(s),"video"===r&&(n&&!p&&(a=N.ts.parsePesTime(s))&&(a.type="video",i.video.push(a),p=!0),!i.firstKeyFrame)){if(n&&0!==m.size){for(o=new Uint8Array(m.size),l=0;m.data.length;)d=m.data.shift(),o.set(d,l),l+=d.byteLength;N.ts.videoPacketContainsKeyFrame(o)&&(h=N.ts.parsePesTime(o))&&(i.firstKeyFrame=h,i.firstKeyFrame.type="video"),m.size=0}m.data.push(s),m.size+=s.byteLength}if(p&&i.firstKeyFrame)break;u+=188,c+=188}else u++,c++;for(u=(c=e.byteLength)-188,p=!1;0<=u;)if(71===e[u]&&71===e[c]){if(s=e.subarray(u,c),"pes"===N.ts.parseType(s,t.pid)&&(r=N.ts.parsePesType(s,t.table),n=N.ts.parsePayloadUnitStartIndicator(s),"video"===r)&&n&&(a=N.ts.parsePesTime(s))&&(a.type="video",i.video.push(a),p=!0),p)break;u-=188,c-=188}else u--,c--},gi=function(e,t){var i,s,r,e=(N.aac.isLikelyAacData(e)?function(e){for(var t,i,s=!1,r=0,n=null,a=null,o=0,l=0;3<=e.length-l;){switch(N.aac.parseType(e,l)){case"timed-metadata":e.length-l<10?s=!0:(o=N.aac.parseId3TagSize(e,l))>e.length?s=!0:(null===a&&(t=e.subarray(l,l+o),a=N.aac.parseAacTimestamp(t)),l+=o);break;case"audio":e.length-l<7?s=!0:(o=N.aac.parseAdtsSize(e,l))>e.length?s=!0:(null===n&&(t=e.subarray(l,l+o),n=N.aac.parseSampleRate(t)),r++,l+=o);break;default:l++}if(s)return null}return null===n||null===a?null:{audio:[{type:"audio",dts:a,pts:a},{type:"audio",dts:a+1024*r*(i=M/n),pts:a+1024*r*i}]}}:function(e){var t,i={pid:null,table:null},s={};for(t in ci(e,i),i.table)if(i.table.hasOwnProperty(t))switch(i.table[t]){case ui.H264_STREAM_TYPE:s.video=[],mi(e,i,s),0===s.video.length&&delete s.video;break;case ui.ADTS_STREAM_TYPE:s.audio=[],pi(e,i,s),0===s.audio.length&&delete s.audio}return s})(e);return e&&(e.audio||e.video)?(t=t,(i=e).audio&&i.audio.length&&("undefined"!=typeof(s=t)&&!isNaN(s)||(s=i.audio[0].dts),i.audio.forEach(function(e){e.dts=D(e.dts,s),e.pts=D(e.pts,s),e.dtsTime=e.dts/M,e.ptsTime=e.pts/M})),i.video&&i.video.length&&("undefined"!=typeof(r=t)&&!isNaN(r)||(r=i.video[0].dts),i.video.forEach(function(e){e.dts=D(e.dts,r),e.pts=D(e.pts,r),e.dtsTime=e.dts/M,e.ptsTime=e.pts/M}),i.firstKeyFrame)&&((t=i.firstKeyFrame).dts=D(t.dts,r),t.pts=D(t.pts,r),t.dtsTime=t.dts/M,t.ptsTime=t.pts/M),e):null};class fi{constructor(e,t){this.options=t||{},this.self=e,this.init()}init(){var i,e;this.transmuxer&&this.transmuxer.dispose(),this.transmuxer=new Vt(this.options),i=this.self,(e=this.transmuxer).on("data",function(e){var t=e.initSegment,t=(e.initSegment={data:t.buffer,byteOffset:t.byteOffset,byteLength:t.byteLength},e.data);e.data=t.buffer,i.postMessage({action:"data",segment:e,byteOffset:t.byteOffset,byteLength:t.byteLength},[e.data])}),e.on("done",function(e){i.postMessage({action:"done"})}),e.on("gopInfo",function(e){i.postMessage({action:"gopInfo",gopInfo:e})}),e.on("videoSegmentTimingInfo",function(e){var t={start:{decode:c.videoTsToSeconds(e.start.dts),presentation:c.videoTsToSeconds(e.start.pts)},end:{decode:c.videoTsToSeconds(e.end.dts),presentation:c.videoTsToSeconds(e.end.pts)},baseMediaDecodeTime:c.videoTsToSeconds(e.baseMediaDecodeTime)};e.prependedContentDuration&&(t.prependedContentDuration=c.videoTsToSeconds(e.prependedContentDuration)),i.postMessage({action:"videoSegmentTimingInfo",videoSegmentTimingInfo:t})}),e.on("audioSegmentTimingInfo",function(e){var t={start:{decode:c.videoTsToSeconds(e.start.dts),presentation:c.videoTsToSeconds(e.start.pts)},end:{decode:c.videoTsToSeconds(e.end.dts),presentation:c.videoTsToSeconds(e.end.pts)},baseMediaDecodeTime:c.videoTsToSeconds(e.baseMediaDecodeTime)};e.prependedContentDuration&&(t.prependedContentDuration=c.videoTsToSeconds(e.prependedContentDuration)),i.postMessage({action:"audioSegmentTimingInfo",audioSegmentTimingInfo:t})}),e.on("id3Frame",function(e){i.postMessage({action:"id3Frame",id3Frame:e})}),e.on("caption",function(e){i.postMessage({action:"caption",caption:e})}),e.on("trackinfo",function(e){i.postMessage({action:"trackinfo",trackInfo:e})}),e.on("audioTimingInfo",function(e){i.postMessage({action:"audioTimingInfo",audioTimingInfo:{start:c.videoTsToSeconds(e.start),end:c.videoTsToSeconds(e.end)}})}),e.on("videoTimingInfo",function(e){i.postMessage({action:"videoTimingInfo",videoTimingInfo:{start:c.videoTsToSeconds(e.start),end:c.videoTsToSeconds(e.end)}})}),e.on("log",function(e){i.postMessage({action:"log",log:e})})}pushMp4Captions(e){this.captionParser||(this.captionParser=new ii,this.captionParser.init());var t=new Uint8Array(e.data,e.byteOffset,e.byteLength),e=this.captionParser.parse(t,e.trackIds,e.timescales);this.self.postMessage({action:"mp4Captions",captions:e&&e.captions||[],logs:e&&e.logs||[],data:t.buffer},[t.buffer])}probeMp4StartTime({timescales:e,data:t}){e=li(e,t);this.self.postMessage({action:"probeMp4StartTime",startTime:e,data:t},[t.buffer])}probeMp4Tracks({data:e}){var t=di(e);this.self.postMessage({action:"probeMp4Tracks",tracks:t,data:e},[e.buffer])}probeTs({data:e,baseStartTime:t}){t="number"!=typeof t||isNaN(t)?void 0:t*c.ONE_SECOND_IN_TS,t=gi(e,t);let i=null;t&&((i={hasVideo:t.video&&2===t.video.length||!1,hasAudio:t.audio&&2===t.audio.length||!1}).hasVideo&&(i.videoStart=t.video[0].ptsTime),i.hasAudio)&&(i.audioStart=t.audio[0].ptsTime),this.self.postMessage({action:"probeTs",result:i,data:e},[e.buffer])}clearAllMp4Captions(){this.captionParser&&this.captionParser.clearAllCaptions()}clearParsedMp4Captions(){this.captionParser&&this.captionParser.clearParsedCaptions()}push(e){e=new Uint8Array(e.data,e.byteOffset,e.byteLength);this.transmuxer.push(e)}reset(){this.transmuxer.reset()}setTimestampOffset(e){e=e.timestampOffset||0;this.transmuxer.setBaseMediaDecodeTime(Math.round(c.secondsToVideoTs(e)))}setAudioAppendStart(e){this.transmuxer.setAudioAppendStart(Math.ceil(c.secondsToVideoTs(e.appendStart)))}setRemux(e){this.transmuxer.setRemux(e.remux)}flush(e){this.transmuxer.flush(),self.postMessage({action:"done",type:"transmuxed"})}endTimeline(){this.transmuxer.endTimeline(),self.postMessage({action:"endedtimeline",type:"transmuxed"})}alignGopsWith(e){this.transmuxer.alignGopsWith(e.gopsToAlignWith.slice())}}self.onmessage=function(e){"init"===e.data.action&&e.data.options?this.messageHandlers=new fi(self,e.data.options):(this.messageHandlers||(this.messageHandlers=new fi(self)),e.data&&e.data.action&&"init"!==e.data.action&&this.messageHandlers[e.data.action]&&this.messageHandlers[e.data.action](e.data))}})));const ih=(e,t,i)=>{var{type:s,initSegment:r,captions:n,captionStreams:a,metadata:o,videoFrameDtsTime:l,videoFramePtsTime:d}=e.data.segment,t=(t.buffer.push({captions:n,captionStreams:a,metadata:o}),e.data.segment.boxes||{data:e.data.segment.data}),n={type:s,data:new Uint8Array(t.data,t.data.byteOffset,t.data.byteLength),initSegment:new Uint8Array(r.data,r.byteOffset,r.byteLength)};"undefined"!=typeof l&&(n.videoFrameDtsTime=l),"undefined"!=typeof d&&(n.videoFramePtsTime=d),i(n)},sh=({transmuxedData:e,callback:t})=>{e.buffer=[],t(e)},rh=(e,t)=>{t.gopInfo=e.data.gopInfo},nh=t=>{const{transmuxer:i,bytes:e,audioAppendStart:s,gopsToAlignWith:r,remux:n,onData:a,onTrackInfo:o,onAudioTimingInfo:l,onVideoTimingInfo:d,onVideoSegmentTimingInfo:h,onAudioSegmentTimingInfo:u,onId3:c,onCaptions:p,onDone:m,onEndedTimeline:g,onTransmuxerLog:f,isEndOfTimeline:y}=t,_={buffer:[]};let v=y;var b,T;i.onmessage=e=>{i.currentTransmux!==t||("data"===e.data.action&&ih(e,_,a),"trackinfo"===e.data.action&&o(e.data.trackInfo),"gopInfo"===e.data.action&&rh(e,_),"audioTimingInfo"===e.data.action&&l(e.data.audioTimingInfo),"videoTimingInfo"===e.data.action&&d(e.data.videoTimingInfo),"videoSegmentTimingInfo"===e.data.action&&h(e.data.videoSegmentTimingInfo),"audioSegmentTimingInfo"===e.data.action&&u(e.data.audioSegmentTimingInfo),"id3Frame"===e.data.action&&c([e.data.id3Frame],e.data.id3Frame.dispatchType),"caption"===e.data.action&&p(e.data.caption),"endedtimeline"===e.data.action&&(v=!1,g()),"log"===e.data.action&&f(e.data.log),"transmuxed"!==e.data.type)||v||(i.onmessage=null,sh({transmuxedData:_,callback:m}),ah(i))},s&&i.postMessage({action:"setAudioAppendStart",appendStart:s}),Array.isArray(r)&&i.postMessage({action:"alignGopsWith",gopsToAlignWith:r}),"undefined"!=typeof n&&i.postMessage({action:"setRemux",remux:n}),e.byteLength&&(b=e instanceof ArrayBuffer?e:e.buffer,T=e instanceof ArrayBuffer?0:e.byteOffset,i.postMessage({action:"push",data:b,byteOffset:T,byteLength:e.byteLength},[b])),y&&i.postMessage({action:"endTimeline"}),i.postMessage({action:"flush"})},ah=e=>{e.currentTransmux=null,e.transmuxQueue.length&&(e.currentTransmux=e.transmuxQueue.shift(),"function"==typeof e.currentTransmux?e.currentTransmux():nh(e.currentTransmux))},oh=(e,t)=>{e.postMessage({action:t}),ah(e)},lh=(e,t)=>{t.currentTransmux?t.transmuxQueue.push(oh.bind(null,t,e)):(t.currentTransmux=e,oh(t,e))};const dh=e=>{e.transmuxer.currentTransmux?e.transmuxer.transmuxQueue.push(e):(e.transmuxer.currentTransmux=e,nh(e))};var hh=e=>{lh("reset",e)},uh=(dh,e=>{const t=new th,i=(t.currentTransmux=null,t.transmuxQueue=[],t.terminate);return t.terminate=()=>(t.currentTransmux=null,t.transmuxQueue.length=0,i.call(t)),t.postMessage({action:"init",options:e}),t});function ch(t){const i=t.transmuxer,s=t.endAction||t.action,r=t.callback;var e,n=fi({},t,{endAction:null,transmuxer:null,callback:null});const a=e=>{e.data.action===s&&(i.removeEventListener("message",a),e.data.data&&(e.data.data=new Uint8Array(e.data.data,t.byteOffset||0,t.byteLength||e.data.data.byteLength),t.data)&&(t.data=e.data.data),r(e.data))};i.addEventListener("message",a),t.data?(e=t.data instanceof ArrayBuffer,n.byteOffset=e?0:t.data.byteOffset,n.byteLength=t.data.byteLength,e=[e?t.data:t.data.buffer],i.postMessage(n,e)):i.postMessage(n)}function ph(e){let t=0;return e.audio&&t++,e.video&&t++,t}function mh(e,t){var i=t.attributes||{},s=Lh(function(e){e=e.attributes||{};if(e.CODECS)return Un(e.CODECS)}(t)||[]);return!Ph(e,t)||s.audio||((e,t)=>{if(!Ph(e,t))return!0;var t=t.attributes||{},i=e.mediaGroups.AUDIO[t.AUDIO];for(const s in i)if(!i[s].uri&&!i[s].playlists)return!0;return!1})(e,t)||(t=Lh(function(e,t){if(e.mediaGroups.AUDIO&&t){var i=e.mediaGroups.AUDIO[t];if(i)for(var s in i){s=i[s];if(s.default&&s.playlists)return Un(s.playlists[0].attributes.CODECS)}}return null}(e,i.AUDIO)||[])).audio&&(s.audio=t.audio),s}function gh(e,t){return(e=e&&window.getComputedStyle(e))?e[t]:""}function fh(e,t){let i,s;return i=(i=e.attributes.BANDWIDTH?e.attributes.BANDWIDTH:i)||window.Number.MAX_VALUE,s=(s=t.attributes.BANDWIDTH?t.attributes.BANDWIDTH:s)||window.Number.MAX_VALUE,i-s}const yh={FAILURE:2,TIMEOUT:-101,ABORTED:-102},_h=e=>{e.forEach(e=>{e.abort()})},vh=e=>({bandwidth:e.bandwidth,bytesReceived:e.bytesReceived||0,roundTripTime:e.roundTripTime||0}),bh=e=>{var t=e.target,t={bandwidth:1/0,bytesReceived:0,roundTripTime:Date.now()-t.requestTime||0};return t.bytesReceived=e.loaded,t.bandwidth=Math.floor(t.bytesReceived/t.roundTripTime*8*1e3),t},Th=(e,t)=>t.timedout?{status:t.status,message:"HLS request timed-out at URL: "+t.uri,code:yh.TIMEOUT,xhr:t}:t.aborted?{status:t.status,message:"HLS request aborted at URL: "+t.uri,code:yh.ABORTED,xhr:t}:e?{status:t.status,message:"HLS request errored at URL: "+t.uri,code:yh.FAILURE,xhr:t}:"arraybuffer"===t.responseType&&0===t.response.byteLength?{status:t.status,message:"Empty HLS response at URL: "+t.uri,code:yh.FAILURE,xhr:t}:null,Sh=(r,n,a)=>(e,t)=>{var i=t.response,e=Th(e,t);if(e)return a(e,r);if(16!==i.byteLength)return a({status:t.status,message:"Invalid HLS key at URL: "+t.uri,code:yh.FAILURE,xhr:t},r);var e=new DataView(i),s=new Uint32Array([e.getUint32(0),e.getUint32(4),e.getUint32(8),e.getUint32(12)]);for(let e=0;e<n.length;e++)n[e].bytes=s;return a(null,r)},wh=(i,s)=>{var e,t=_l(i.map.bytes);if("mp4"!==t)return e=i.map.resolvedUri||i.map.uri,s({internal:!0,message:`Found unsupported ${t||"unknown"} container for initialization segment at URL: `+e,code:yh.FAILURE});ch({action:"probeMp4Tracks",data:i.map.bytes,transmuxer:i.transmuxer,callback:({tracks:e,data:t})=>(i.map.bytes=t,e.forEach(function(e){i.map.tracks=i.map.tracks||{},i.map.tracks[e.type]||"number"==typeof(i.map.tracks[e.type]=e).id&&e.timescale&&(i.map.timescales=i.map.timescales||{},i.map.timescales[e.id]=e.timescale)}),s(null))})},Eh=({segment:i,bytes:t,trackInfoFn:s,timingInfoFn:e,videoSegmentTimingInfoFn:r,audioSegmentTimingInfoFn:n,id3Fn:a,captionsFn:o,isEndOfTimeline:l,endedTimelineFn:d,dataFn:h,doneFn:u,onTransmuxerLog:c})=>{var p=i.map&&i.map.tracks||{};const m=Boolean(p.audio&&p.video);let g=e.bind(null,i,"audio","start");const f=e.bind(null,i,"audio","end");let y=e.bind(null,i,"video","start");const _=e.bind(null,i,"video","end");ch({action:"probeTs",transmuxer:i.transmuxer,data:t,baseStartTime:i.baseStartTime,callback:e=>{i.bytes=t=e.data;e=e.result;e&&(s(i,{hasAudio:e.hasAudio,hasVideo:e.hasVideo,isMuxed:m}),s=null,e.hasAudio&&!m&&g(e.audioStart),e.hasVideo&&y(e.videoStart),g=null,y=null),dh({bytes:t,transmuxer:i.transmuxer,audioAppendStart:i.audioAppendStart,gopsToAlignWith:i.gopsToAlignWith,remux:m,onData:e=>{e.type="combined"===e.type?"video":e.type,h(i,e)},onTrackInfo:e=>{s&&(m&&(e.isMuxed=!0),s(i,e))},onAudioTimingInfo:e=>{g&&"undefined"!=typeof e.start&&(g(e.start),g=null),f&&"undefined"!=typeof e.end&&f(e.end)},onVideoTimingInfo:e=>{y&&"undefined"!=typeof e.start&&(y(e.start),y=null),_&&"undefined"!=typeof e.end&&_(e.end)},onVideoSegmentTimingInfo:e=>{r(e)},onAudioSegmentTimingInfo:e=>{n(e)},onId3:(e,t)=>{a(i,e,t)},onCaptions:e=>{o(i,[e])},isEndOfTimeline:l,onEndedTimeline:()=>{d()},onTransmuxerLog:c,onDone:e=>{u&&(e.type="combined"===e.type?"video":e.type,u(null,i,e))}})}})},kh=({segment:i,bytes:s,trackInfoFn:e,timingInfoFn:r,videoSegmentTimingInfoFn:t,audioSegmentTimingInfoFn:n,id3Fn:a,captionsFn:o,isEndOfTimeline:l,endedTimelineFn:d,dataFn:h,doneFn:u,onTransmuxerLog:c})=>{let p=new Uint8Array(s);if(m=p,0<ml(m,["moof"]).length){i.isFmp4=!0;const g=i.map["tracks"],f={isFmp4:!0,hasVideo:!!g.video,hasAudio:!!g.audio},y=(g.audio&&g.audio.codec&&"enca"!==g.audio.codec&&(f.audioCodec=g.audio.codec),g.video&&g.video.codec&&"encv"!==g.video.codec&&(f.videoCodec=g.video.codec),g.video&&g.audio&&(f.isMuxed=!0),e(i,f),e=>{h(i,{data:p,type:f.hasAudio&&!f.isMuxed?"audio":"video"}),e&&e.length&&o(i,e),u(null,i,{})});void ch({action:"probeMp4StartTime",timescales:i.map.timescales,data:p,transmuxer:i.transmuxer,callback:({data:e,startTime:t})=>{s=e.buffer,i.bytes=p=e,f.hasAudio&&!f.isMuxed&&r(i,"audio","start",t),f.hasVideo&&r(i,"video","start",t),g.video&&e.byteLength&&i.transmuxer?ch({action:"pushMp4Captions",endAction:"mp4Captions",transmuxer:i.transmuxer,data:p,timescales:i.map.timescales,trackIds:[g.video.id],callback:e=>{s=e.data.buffer,i.bytes=p=e.data,e.logs.forEach(function(e){c(O(e,{stream:"mp4CaptionParser"}))}),y(e.captions)}}):y()}})}else{var m;i.transmuxer?("undefined"==typeof i.container&&(i.container=_l(p)),"ts"!==i.container&&"aac"!==i.container?(e(i,{hasAudio:!1,hasVideo:!1}),u(null,i,{})):Eh({segment:i,bytes:s,trackInfoFn:e,timingInfoFn:r,videoSegmentTimingInfoFn:t,audioSegmentTimingInfoFn:n,id3Fn:a,captionsFn:o,isEndOfTimeline:l,endedTimelineFn:d,dataFn:h,doneFn:u,onTransmuxerLog:c})):u(null,i,{})}},Ch=function({id:t,key:e,encryptedBytes:i,decryptionWorker:s},r){const n=e=>{e.data.source===t&&(s.removeEventListener("message",n),e=e.data.decrypted,r(new Uint8Array(e.bytes,e.byteOffset,e.byteLength)))};s.addEventListener("message",n);let a;a=e.bytes.slice?e.bytes.slice():new Uint32Array(Array.prototype.slice.call(e.bytes)),s.postMessage(Od({source:t,encrypted:i,key:a,iv:e.iv}),[i.buffer,a.buffer])},Ih=({decryptionWorker:e,segment:t,trackInfoFn:i,timingInfoFn:s,videoSegmentTimingInfoFn:r,audioSegmentTimingInfoFn:n,id3Fn:a,captionsFn:o,isEndOfTimeline:l,endedTimelineFn:d,dataFn:h,doneFn:u,onTransmuxerLog:c})=>{Ch({id:t.requestId,key:t.key,encryptedBytes:t.encryptedBytes,decryptionWorker:e},e=>{t.bytes=e,kh({segment:t,bytes:t.bytes,trackInfoFn:i,timingInfoFn:s,videoSegmentTimingInfoFn:r,audioSegmentTimingInfoFn:n,id3Fn:a,captionsFn:o,isEndOfTimeline:l,endedTimelineFn:d,dataFn:h,doneFn:u,onTransmuxerLog:c})})},xh=({xhr:e,xhrOptions:t,decryptionWorker:i,segment:s,abortFn:r,progressFn:n,trackInfoFn:a,timingInfoFn:o,videoSegmentTimingInfoFn:l,audioSegmentTimingInfoFn:d,id3Fn:h,captionsFn:u,isEndOfTimeline:c,endedTimelineFn:p,dataFn:m,doneFn:g,onTransmuxerLog:f})=>{const y=[];var _,v,i=(({activeXhrs:s,decryptionWorker:r,trackInfoFn:n,timingInfoFn:a,videoSegmentTimingInfoFn:o,audioSegmentTimingInfoFn:l,id3Fn:d,captionsFn:h,isEndOfTimeline:u,endedTimelineFn:c,dataFn:p,doneFn:m,onTransmuxerLog:g})=>{let f=0,y=!1;return(e,t)=>{if(!y){if(e)return y=!0,_h(s),m(e,t);if((f+=1)===s.length){const i=function(){if(t.encryptedBytes)return Ih({decryptionWorker:r,segment:t,trackInfoFn:n,timingInfoFn:a,videoSegmentTimingInfoFn:o,audioSegmentTimingInfoFn:l,id3Fn:d,captionsFn:h,isEndOfTimeline:u,endedTimelineFn:c,dataFn:p,doneFn:m,onTransmuxerLog:g});kh({segment:t,bytes:t.bytes,trackInfoFn:n,timingInfoFn:a,videoSegmentTimingInfoFn:o,audioSegmentTimingInfoFn:l,id3Fn:d,captionsFn:h,isEndOfTimeline:u,endedTimelineFn:c,dataFn:p,doneFn:m,onTransmuxerLog:g})};if(t.endOfAllRequests=Date.now(),t.map&&t.map.encryptedBytes&&!t.map.bytes)return Ch({decryptionWorker:r,id:t.requestId+"-init",encryptedBytes:t.map.encryptedBytes,key:t.map.key},e=>{t.map.bytes=e,wh(t,e=>{if(e)return _h(s),m(e,t);i()})});i()}}}})({activeXhrs:y,decryptionWorker:i,trackInfoFn:a,timingInfoFn:o,videoSegmentTimingInfoFn:l,audioSegmentTimingInfoFn:d,id3Fn:h,captionsFn:u,isEndOfTimeline:c,endedTimelineFn:p,dataFn:m,doneFn:g,onTransmuxerLog:f}),u=(s.key&&!s.key.bytes&&(a=[s.key],s.map&&!s.map.bytes&&s.map.key&&s.map.key.resolvedUri===s.key.resolvedUri&&a.push(s.map.key),o=e(O(t,{uri:s.key.resolvedUri,responseType:"arraybuffer"}),Sh(s,a,i)),y.push(o)),s.map&&!s.map.bytes&&(!s.map.key||s.key&&s.key.resolvedUri===s.map.key.resolvedUri||(l=e(O(t,{uri:s.map.key.resolvedUri,responseType:"arraybuffer"}),Sh(s,[s.map.key],i)),y.push(l)),d=O(t,{uri:s.map.resolvedUri,responseType:"arraybuffer",headers:Ad(s.map)}),{segment:_,finishProcessingFn:v}=[{segment:s,finishProcessingFn:i}][0],h=e(d,(e,t)=>{var e=Th(e,t);return e?v(e,_):(e=new Uint8Array(t.response),_.map.key?(_.map.encryptedBytes=e,v(null,_)):(_.map.bytes=e,void wh(_,function(e){if(e)return e.xhr=t,e.status=t.status,v(e,_);v(null,_)})))}),y.push(h)),O(t,{uri:s.part&&s.part.resolvedUri||s.resolvedUri,responseType:"arraybuffer",headers:Ad(s)}));({segment:b,finishProcessingFn:T,responseType:S}={segment:s,finishProcessingFn:i,responseType:u.responseType});var b,T,S,w,E,c=e(u,(e,t)=>{var e=Th(e,t);return e?T(e,b):(e="arraybuffer"!==S&&t.responseText?Qd(t.responseText.substring(b.lastReachedChar||0)):t.response,b.stats=vh(t),b.key?b.encryptedBytes=new Uint8Array(e):b.bytes=new Uint8Array(e),T(null,b))});c.addEventListener("progress",({segment:w,progressFn:E}=[{segment:s,progressFn:n}][0],e=>{var t=e.target;if(!t.aborted)return w.stats=O(w.stats,bh(e)),!w.stats.firstBytesReceivedAt&&w.stats.bytesReceived&&(w.stats.firstBytesReceivedAt=Date.now()),E(e,w)})),y.push(c);const k={};return y.forEach(e=>{var t,i;e.addEventListener("loadend",({loadendState:t,abortFn:i}=[{loadendState:k,abortFn:r}][0],e=>{e.target.aborted&&i&&!t.calledAbortFn&&(i(),t.calledAbortFn=!0)}))}),()=>_h(y)},Ah=Bl("CodecUtils"),Ph=(e,t)=>{t=t.attributes||{};return e&&e.mediaGroups&&e.mediaGroups.AUDIO&&t.AUDIO&&e.mediaGroups.AUDIO[t.AUDIO]},Lh=function(e){const s={};return e.forEach(({mediaType:e,type:t,details:i})=>{s[e]=s[e]||[],s[e].push(Rn(""+t+i))}),Object.keys(s).forEach(function(e){1<s[e].length?(Ah(`multiple ${e} codecs found as attributes: ${s[e].join(", ")}. Setting playlist codecs to null so that we wait for mux.js to probe segments for real codecs.`),s[e]=null):s[e]=s[e][0]}),s},Oh=Bl("PlaylistSelector"),Dh=function(e){var t;if(e&&e.playlist)return t=e.playlist,JSON.stringify({id:t.id,bandwidth:e.bandwidth,width:e.width,height:e.height,codecs:t.attributes&&t.attributes.CODECS||""})},Nh=function(e,s){const r=e.slice();e.sort(function(e,t){var i=s(e,t);return 0===i?r.indexOf(e)-r.indexOf(t):i})};function Mh(o,t,l,d,h,u){if(o){var c={bandwidth:t,width:l,height:d,limitRenditionByPlayerDimensions:h};let e=o.playlists,r=(md.isAudioOnly(o)&&(e=u.getAudioTrackPlaylists_(),c.audioOnly=!0),e.map(e=>{var t=e.attributes&&e.attributes.RESOLUTION&&e.attributes.RESOLUTION.width,i=e.attributes&&e.attributes.RESOLUTION&&e.attributes.RESOLUTION.height,s=e.attributes&&e.attributes.BANDWIDTH;return{bandwidth:s||window.Number.MAX_VALUE,width:t,height:i,playlist:e}})),n=(Nh(r,(e,t)=>e.bandwidth-t.bandwidth),(r=r.filter(e=>!md.isIncompatible(e.playlist))).filter(e=>md.isEnabled(e.playlist)));o=(n=n.length?n:r.filter(e=>!md.isDisabled(e.playlist))).filter(e=>e.bandwidth*D.BANDWIDTH_VARIANCE<t);let a=o[o.length-1];var p=o.filter(e=>e.bandwidth===a.bandwidth)[0];if(!1===h){const g=p||n[0]||r[0];if(g&&g.playlist){let e=p?"bandwidthBestRep":"sortedPlaylistReps";return n[0]&&(e="enabledPlaylistReps"),Oh(`choosing ${Dh(g)} using ${e} with options`,c),g.playlist}}else{var m,h=o.filter(e=>e.width&&e.height),o=(Nh(h,(e,t)=>e.width-t.width),h.filter(e=>e.width===l&&e.height===d)),o=(a=o[o.length-1],o.filter(e=>e.bandwidth===a.bandwidth)[0]);let t,i;o||(m=(t=h.filter(e=>e.width>l||e.height>d)).filter(e=>e.width===t[0].width&&e.height===t[0].height),a=m[m.length-1],i=m.filter(e=>e.bandwidth===a.bandwidth)[0]);let s;u.leastPixelDiffSelector&&(m=h.map(e=>(e.pixelDiff=Math.abs(e.width-l)+Math.abs(e.height-d),e)),Nh(m,(e,t)=>e.pixelDiff===t.pixelDiff?t.bandwidth-e.bandwidth:e.pixelDiff-t.pixelDiff),s=m[0]);const g=s||i||o||p||n[0]||r[0];if(g&&g.playlist){let e="sortedPlaylistReps";return s?e="leastPixelDiffRep":i?e="resolutionPlusOneRep":o?e="resolutionBestRep":p?e="bandwidthBestRep":n[0]&&(e="enabledPlaylistReps"),Oh(`choosing ${Dh(g)} using ${e} with options`,c),g.playlist}}return Oh("could not choose a playlist with options",c),null}}function Rh(){var e=this.useDevicePixelRatio&&window.devicePixelRatio||1;return Mh(this.playlists.main,this.systemBandwidth,parseInt(gh(this.tech_.el(),"width"),10)*e,parseInt(gh(this.tech_.el(),"height"),10)*e,this.limitRenditionByPlayerDimensions,this.playlistController_)}function Uh(e,t,i){let s;var r;if(i&&i.cues)for(s=i.cues.length;s--;)(r=i.cues[s]).startTime>=e&&r.endTime<=t&&i.removeCue(r)}const Bh=({inbandTextTracks:e,metadataArray:t,timestampOffset:i,videoDuration:s})=>{if(t){const a=window.WebKitDataCue||window.VTTCue,o=e.metadataTrack_;if(o&&(t.forEach(e=>{const s=e.cueTime+i;!("number"!=typeof s||window.isNaN(s)||s<0)&&s<1/0&&e.frames.forEach(e=>{var t,i=new a(s,s,e.value||e.url||e.data||"");i.frame=e,i.value=e,t=i,Object.defineProperties(t.frame,{id:{get(){return T.log.warn("cue.frame.id is deprecated. Use cue.value.key instead."),t.value.key}},value:{get(){return T.log.warn("cue.frame.value is deprecated. Use cue.value.data instead."),t.value.data}},privateData:{get(){return T.log.warn("cue.frame.privateData is deprecated. Use cue.value.data instead."),t.value.data}}}),o.addCue(i)})}),o.cues)&&o.cues.length){var r=o.cues,n=[];for(let e=0;e<r.length;e++)r[e]&&n.push(r[e]);const l=n.reduce((e,t)=>{var i=e[t.startTime]||[];return i.push(t),e[t.startTime]=i,e},{}),d=Object.keys(l).sort((e,t)=>Number(e)-Number(t));d.forEach((e,t)=>{e=l[e];const i=Number(d[t+1])||s;e.forEach(e=>{e.endTime=i})})}}},Fh=e=>"number"==typeof e&&isFinite(e),jh=e=>{var{startOfSegment:t,duration:i,segment:s,part:r,playlist:{mediaSequence:n,id:a,segments:o=[]},mediaIndex:l,partIndex:d,timeline:h}=e,o=o.length-1;let u="mediaIndex/partIndex increment";e.getMediaInfoForTime?u=`getMediaInfoForTime (${e.getMediaInfoForTime})`:e.isSyncRequest&&(u="getSyncSegmentCandidate (isSyncRequest)"),e.independent&&(u+=" with independent "+e.independent);var c="number"==typeof d,e=e.segment.uri?"segment":"pre-segment",p=c?ed({preloadSegment:s})-1:0;return e+` [${n+l}/${n+o}]`+(c?` part [${d}/${p}]`:"")+` segment start/end [${s.start} => ${s.end}]`+(c?` part start/end [${r.start} => ${r.end}]`:"")+` startOfSegment [${t}]`+` duration [${i}]`+` timeline [${h}]`+` selected by [${u}]`+` playlist [${a}]`},Hh=e=>e+"TimingInfo",qh=({timelineChangeController:e,currentTimeline:t,segmentTimeline:i,loaderType:s,audioDisabled:r})=>{return!(t===i||("audio"===s?(t=e.lastTimelineChange({type:"main"}))&&t.to===i:"main"!==s||!r||(t=e.pendingTimelineChange({type:"audio"}))&&t.to===i))},Vh=({segmentDuration:e,maxDuration:t})=>!!e&&Math.round(e)>t+Gl,$h=(e,t)=>{var i,s,r;return"hls"===t&&(t=(e=>{let s=0;return["video","audio"].forEach(function(t){t=e[t+"TimingInfo"];if(t){var{start:t,end:i}=t;let e;"bigint"==typeof t||"bigint"==typeof i?e=window.BigInt(i)-window.BigInt(t):"number"==typeof t&&"number"==typeof i&&(e=i-t),"undefined"!=typeof e&&e>s&&(s=e)}}),s="bigint"==typeof s&&s<Number.MAX_SAFE_INTEGER?Number(s):s})({audioTimingInfo:e.audioTimingInfo,videoTimingInfo:e.videoTimingInfo}))&&(i=e.playlist.targetDuration,s=Vh({segmentDuration:t,maxDuration:2*i}),r=Vh({segmentDuration:t,maxDuration:i}),t=`Segment with index ${e.mediaIndex} `+`from playlist ${e.playlist.id} `+`has a duration of ${t} `+`when the reported duration is ${e.duration} `+`and the target duration is ${i}. `+"For HLS content, a duration in excess of the target duration may result in playback issues. See the HLS specification section on EXT-X-TARGETDURATION for more details: https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.3.1",s||r)?{severity:s?"warn":"info",message:t}:null};class Wh extends T.EventTarget{constructor(e,t=0){if(super(),!e)throw new TypeError("Initialization settings are required");if("function"!=typeof e.currentTime)throw new TypeError("No currentTime getter specified");if(!e.mediaSource)throw new TypeError("No MediaSource specified");this.bandwidth=e.bandwidth,this.throughput={rate:0,count:0},this.roundTrip=NaN,this.resetStats_(),this.mediaIndex=null,this.partIndex=null,this.hasPlayed_=e.hasPlayed,this.currentTime_=e.currentTime,this.seekable_=e.seekable,this.seeking_=e.seeking,this.duration_=e.duration,this.mediaSource_=e.mediaSource,this.vhs_=e.vhs,this.loaderType_=e.loaderType,this.currentMediaInfo_=void 0,this.startingMediaInfo_=void 0,this.segmentMetadataTrack_=e.segmentMetadataTrack,this.goalBufferLength_=e.goalBufferLength,this.sourceType_=e.sourceType,this.sourceUpdater_=e.sourceUpdater,this.inbandTextTracks_=e.inbandTextTracks,this.state_="INIT",this.timelineChangeController_=e.timelineChangeController,this.shouldSaveSegmentTimingInfo_=!0,this.parse708captions_=e.parse708captions,this.useDtsForTimestampOffset_=e.useDtsForTimestampOffset,this.captionServices_=e.captionServices,this.exactManifestTimings=e.exactManifestTimings,this.checkBufferTimeout_=null,this.error_=void 0,this.currentTimeline_=-1,this.pendingSegment_=null,this.xhrOptions_=null,this.pendingSegments_=[],this.audioDisabled_=!1,this.isPendingTimestampOffset_=!1,this.gopBuffer_=[],this.timeMapping_=0,this.safeAppend_=11<=T.browser.IE_VERSION,this.appendInitSegment_={audio:!0,video:!0},this.playlistOfLastInitSegment_={audio:null,video:null},this.callQueue_=[],this.loadQueue_=[],this.metadataQueue_={id3:[],caption:[]},this.waitingOnRemove_=!1,this.quotaExceededErrorRetryTimeout_=null,this.activeInitSegmentId_=null,this.initSegments_={},this.cacheEncryptionKeys_=e.cacheEncryptionKeys,this.keyCache_={},this.decrypter_=e.decrypter,this.syncController_=e.syncController,this.syncPoint_={segmentIndex:0,time:0},this.transmuxer_=this.createTransmuxer_(),this.triggerSyncInfoUpdate_=()=>this.trigger("syncinfoupdate"),this.syncController_.on("syncinfoupdate",this.triggerSyncInfoUpdate_),this.mediaSource_.addEventListener("sourceopen",()=>{this.isEndOfStream_()||(this.ended_=!1)}),this.fetchAtBuffer_=!1,this.logger_=Bl(`SegmentLoader[${this.loaderType_}]`),Object.defineProperty(this,"state",{get(){return this.state_},set(e){e!==this.state_&&(this.logger_(this.state_+" -> "+e),this.state_=e,this.trigger("statechange"))}}),this.sourceUpdater_.on("ready",()=>{this.hasEnoughInfoToAppend_()&&this.processCallQueue_()}),"main"===this.loaderType_&&this.timelineChangeController_.on("pendingtimelinechange",()=>{this.hasEnoughInfoToAppend_()&&this.processCallQueue_()}),"audio"===this.loaderType_&&this.timelineChangeController_.on("timelinechange",()=>{this.hasEnoughInfoToLoad_()&&this.processLoadQueue_(),this.hasEnoughInfoToAppend_()&&this.processCallQueue_()})}createTransmuxer_(){return uh({remux:!1,alignGopsAtEnd:this.safeAppend_,keepOriginalTimestamps:!0,parse708captions:this.parse708captions_,captionServices:this.captionServices_})}resetStats_(){this.mediaBytesTransferred=0,this.mediaRequests=0,this.mediaRequestsAborted=0,this.mediaRequestsTimedout=0,this.mediaRequestsErrored=0,this.mediaTransferDuration=0,this.mediaSecondsLoaded=0,this.mediaAppends=0}dispose(){this.trigger("dispose"),this.state="DISPOSED",this.pause(),this.abort_(),this.transmuxer_&&this.transmuxer_.terminate(),this.resetStats_(),this.checkBufferTimeout_&&window.clearTimeout(this.checkBufferTimeout_),this.syncController_&&this.triggerSyncInfoUpdate_&&this.syncController_.off("syncinfoupdate",this.triggerSyncInfoUpdate_),this.off()}setAudio(e){this.audioDisabled_=!e,e?this.appendInitSegment_.audio=!0:this.sourceUpdater_.removeAudio(0,this.duration_())}abort(){"WAITING"!==this.state?this.pendingSegment_&&(this.pendingSegment_=null):(this.abort_(),this.state="READY",this.paused()||this.monitorBuffer_())}abort_(){this.pendingSegment_&&this.pendingSegment_.abortRequests&&this.pendingSegment_.abortRequests(),this.pendingSegment_=null,this.callQueue_=[],this.loadQueue_=[],this.metadataQueue_.id3=[],this.metadataQueue_.caption=[],this.timelineChangeController_.clearPendingTimelineChange(this.loaderType_),this.waitingOnRemove_=!1,window.clearTimeout(this.quotaExceededErrorRetryTimeout_),this.quotaExceededErrorRetryTimeout_=null}checkForAbort_(e){return"APPENDING"!==this.state||this.pendingSegment_?!this.pendingSegment_||this.pendingSegment_.requestId!==e:(this.state="READY",!0)}error(e){return"undefined"!=typeof e&&(this.logger_("error occurred:",e),this.error_=e),this.pendingSegment_=null,this.error_}endOfStream(){this.ended_=!0,this.transmuxer_&&hh(this.transmuxer_),this.gopBuffer_.length=0,this.pause(),this.trigger("ended")}buffered_(){var e=this.getMediaInfo_();if(!this.sourceUpdater_||!e)return Fl();if("main"===this.loaderType_){var{hasAudio:e,hasVideo:t,isMuxed:i}=e;if(t&&e&&!this.audioDisabled_&&!i)return this.sourceUpdater_.buffered();if(t)return this.sourceUpdater_.videoBuffered()}return this.sourceUpdater_.audioBuffered()}initSegmentForMap(e,t=!1){if(!e)return null;var i=Dd(e);let s=this.initSegments_[i];return t&&!s&&e.bytes&&(this.initSegments_[i]=s={resolvedUri:e.resolvedUri,byterange:e.byterange,bytes:e.bytes,tracks:e.tracks,timescales:e.timescales}),s||e}segmentKey(e,t=!1){if(!e)return null;var i=Nd(e);let s=this.keyCache_[i];this.cacheEncryptionKeys_&&t&&!s&&e.bytes&&(this.keyCache_[i]=s={resolvedUri:e.resolvedUri,bytes:e.bytes});t={resolvedUri:(s||e).resolvedUri};return s&&(t.bytes=s.bytes),t}couldBeginLoading_(){return this.playlist_&&!this.paused()}load(){if(this.monitorBuffer_(),this.playlist_)return"INIT"===this.state&&this.couldBeginLoading_()?this.init_():void(!this.couldBeginLoading_()||"READY"!==this.state&&"INIT"!==this.state||(this.state="READY"))}init_(){return this.state="READY",this.resetEverything(),this.monitorBuffer_()}playlist(t,i={}){if(t){var s,r=this.playlist_,n=this.pendingSegment_;this.playlist_=t,this.xhrOptions_=i,"INIT"===this.state&&(t.syncInfo={mediaSequence:t.mediaSequence,time:0},"main"===this.loaderType_)&&this.syncController_.setDateTimeMappingForStart(t);let e=null;if(r&&(r.id?e=r.id:r.uri&&(e=r.uri)),this.logger_(`playlist update [${e} => ${t.id||t.uri}]`),this.trigger("syncinfoupdate"),"INIT"===this.state&&this.couldBeginLoading_())return this.init_();r&&r.uri===t.uri?(i=t.mediaSequence-r.mediaSequence,this.logger_(`live window shift [${i}]`),null!==this.mediaIndex&&(this.mediaIndex-=i,this.mediaIndex<0?(this.mediaIndex=null,this.partIndex=null):(s=this.playlist_.segments[this.mediaIndex],!this.partIndex||s.parts&&s.parts.length&&s.parts[this.partIndex]||(s=this.mediaIndex,this.logger_(`currently processing part (index ${this.partIndex}) no longer exists.`),this.resetLoader(),this.mediaIndex=s))),n&&(n.mediaIndex-=i,n.mediaIndex<0?(n.mediaIndex=null,n.partIndex=null):(0<=n.mediaIndex&&(n.segment=t.segments[n.mediaIndex]),0<=n.partIndex&&n.segment.parts&&(n.part=n.segment.parts[n.partIndex]))),this.syncController_.saveExpiredSegmentInfo(r,t)):(null!==this.mediaIndex&&(t.endList?this.resyncLoader():this.resetLoader()),this.currentMediaInfo_=void 0,this.trigger("playlistupdate"))}}pause(){this.checkBufferTimeout_&&(window.clearTimeout(this.checkBufferTimeout_),this.checkBufferTimeout_=null)}paused(){return null===this.checkBufferTimeout_}resetEverything(e){this.ended_=!1,this.activeInitSegmentId_=null,this.appendInitSegment_={audio:!0,video:!0},this.resetLoader(),this.remove(0,1/0,e),this.transmuxer_&&(this.transmuxer_.postMessage({action:"clearAllMp4Captions"}),this.transmuxer_.postMessage({action:"reset"}))}resetLoader(){this.fetchAtBuffer_=!1,this.resyncLoader()}resyncLoader(){this.transmuxer_&&hh(this.transmuxer_),this.mediaIndex=null,this.partIndex=null,this.syncPoint_=null,this.isPendingTimestampOffset_=!1,this.callQueue_=[],this.loadQueue_=[],this.metadataQueue_.id3=[],this.metadataQueue_.caption=[],this.abort(),this.transmuxer_&&this.transmuxer_.postMessage({action:"clearParsedMp4Captions"})}remove(t,i,s=()=>{},r=!1){if((i=i===1/0?this.duration_():i)<=t)this.logger_("skipping remove because end ${end} is <= start ${start}");else if(this.sourceUpdater_&&this.getMediaInfo_()){let e=1;var n=()=>{0===--e&&s()};!r&&this.audioDisabled_||(e++,this.sourceUpdater_.removeAudio(t,i,n)),!r&&"main"!==this.loaderType_||(this.gopBuffer_=((t,i,e,s)=>{var r=Math.ceil((i-s)*Ml),n=Math.ceil((e-s)*Ml),i=t.slice();let a=t.length;for(;a--&&!(t[a].pts<=n););if(-1!==a){let e=a+1;for(;e--&&!(t[e].pts<=r););e=Math.max(e,0),i.splice(e,a-e+1)}return i})(this.gopBuffer_,t,i,this.timeMapping_),e++,this.sourceUpdater_.removeVideo(t,i,n));for(const a in this.inbandTextTracks_)Uh(t,i,this.inbandTextTracks_[a]);Uh(t,i,this.segmentMetadataTrack_),n()}else this.logger_("skipping remove because no source updater or starting media info")}monitorBuffer_(){this.checkBufferTimeout_&&window.clearTimeout(this.checkBufferTimeout_),this.checkBufferTimeout_=window.setTimeout(this.monitorBufferTick_.bind(this),1)}monitorBufferTick_(){"READY"===this.state&&this.fillBuffer_(),this.checkBufferTimeout_&&window.clearTimeout(this.checkBufferTimeout_),this.checkBufferTimeout_=window.setTimeout(this.monitorBufferTick_.bind(this),500)}fillBuffer_(){var e;this.sourceUpdater_.updating()||(e=this.chooseNextRequest_())&&("number"==typeof e.timestampOffset&&(this.isPendingTimestampOffset_=!1,this.timelineChangeController_.pendingTimelineChange({type:this.loaderType_,from:this.currentTimeline_,to:e.timeline})),this.loadSegment_(e))}isEndOfStream_(e=this.mediaIndex,t=this.playlist_,i=this.partIndex){var s;return!(!t||!this.mediaSource_)&&(s="number"==typeof e&&t.segments[e],e=e+1===t.segments.length,i=!s||!s.parts||i+1===s.parts.length,t.endList)&&"open"===this.mediaSource_.readyState&&e&&i}chooseNextRequest_(){var e=this.buffered_(),t=ql(e)||0,e=Vl(e,this.currentTime_()),i=!this.hasPlayed_()&&1<=e,s=e>=this.goalBufferLength_(),r=this.playlist_.segments;if(!r.length||i||s)return null;this.syncPoint_=this.syncPoint_||this.syncController_.getSyncPoint(this.playlist_,this.duration_(),this.currentTimeline_,this.currentTime_());var n,i={partIndex:null,mediaIndex:null,startOfSegment:null,playlist:this.playlist_,isSyncRequest:Boolean(!this.syncPoint_)},t=(i.isSyncRequest?i.mediaIndex=function(t,i,s){i=i||[];var r=[];let n=0;for(let e=0;e<i.length;e++){var a=i[e];if(t===a.timeline&&(r.push(e),(n+=a.duration)>s))return e}return 0===r.length?0:r[r.length-1]}(this.currentTimeline_,r,t):null!==this.mediaIndex?(s=r[this.mediaIndex],n="number"==typeof this.partIndex?this.partIndex:-1,i.startOfSegment=s.end||t,s.parts&&s.parts[n+1]?(i.mediaIndex=this.mediaIndex,i.partIndex=n+1):i.mediaIndex=this.mediaIndex+1):({segmentIndex:s,startTime:n,partIndex:o}=md.getMediaInfoForTime({exactManifestTimings:this.exactManifestTimings,playlist:this.playlist_,currentTime:this.fetchAtBuffer_?t:this.currentTime_(),startingPartIndex:this.syncPoint_.partIndex,startingSegmentIndex:this.syncPoint_.segmentIndex,startTime:this.syncPoint_.time}),i.getMediaInfoForTime=this.fetchAtBuffer_?"bufferedEnd "+t:"currentTime "+this.currentTime_(),i.mediaIndex=s,i.startOfSegment=n,i.partIndex=o),r[i.mediaIndex]);let a=t&&"number"==typeof i.partIndex&&t.parts&&t.parts[i.partIndex];if(!t||"number"==typeof i.partIndex&&!a)return null;"number"!=typeof i.partIndex&&t.parts&&(i.partIndex=0,a=t.parts[0]),e||!a||a.independent||(0===i.partIndex?(n=(s=r[i.mediaIndex-1]).parts&&s.parts.length&&s.parts[s.parts.length-1])&&n.independent&&(--i.mediaIndex,i.partIndex=s.parts.length-1,i.independent="previous segment"):t.parts[i.partIndex-1].independent&&(--i.partIndex,i.independent="previous part"));var o=this.mediaSource_&&"ended"===this.mediaSource_.readyState;return i.mediaIndex>=r.length-1&&o&&!this.seeking_()?null:this.generateSegmentInfo_(i)}generateSegmentInfo_(e){var{independent:e,playlist:t,mediaIndex:i,startOfSegment:s,isSyncRequest:r,partIndex:n,forceTimestampOffset:a,getMediaInfoForTime:o}=e,l=t.segments[i],d="number"==typeof n&&l.parts[n],i={requestId:"segment-loader-"+Math.random(),uri:d&&d.resolvedUri||l.resolvedUri,mediaIndex:i,partIndex:d?n:null,isSyncRequest:r,startOfSegment:s,playlist:t,bytes:null,encryptedBytes:null,timestampOffset:null,timeline:l.timeline,duration:d&&d.duration||l.duration,segment:l,part:d,byteLength:0,transmuxer:this.transmuxer_,getMediaInfoForTime:o,independent:e},n="undefined"!=typeof a?a:this.isPendingTimestampOffset_,r=(i.timestampOffset=this.timestampOffsetForSegment_({segmentTimeline:l.timeline,currentTimeline:this.currentTimeline_,startOfSegment:s,buffered:this.buffered_(),overrideCheck:n}),ql(this.sourceUpdater_.audioBuffered()));return"number"==typeof r&&(i.audioAppendStart=r-this.sourceUpdater_.audioTimestampOffset()),this.sourceUpdater_.videoBuffered().length&&(i.gopsToAlignWith=((e,t,i)=>{if("undefined"==typeof t||null===t||!e.length)return[];var s=Math.ceil((t-i+3)*Ml);let r;for(r=0;r<e.length&&!(e[r].pts>s);r++);return e.slice(r)})(this.gopBuffer_,this.currentTime_()-this.sourceUpdater_.videoTimestampOffset(),this.timeMapping_)),i}timestampOffsetForSegment_(e){return{segmentTimeline:e,currentTimeline:t,startOfSegment:i,buffered:s,overrideCheck:r}=[e][0],r||e!==t?!(e<t)&&s.length?s.end(s.length-1):i:null;var t,i,s,r}earlyAbortWhenNeeded_(t){if(!this.vhs_.tech_.paused()&&this.xhrOptions_.timeout&&this.playlist_.attributes.BANDWIDTH&&!(Date.now()-(t.firstBytesReceivedAt||Date.now())<1e3)){var e=this.currentTime_(),i=t.bandwidth,s=this.pendingSegment_.duration,t=md.estimateSegmentRequestTime(s,i,this.playlist_,t.bytesReceived),r=([r,n,a=1]=[this.buffered_(),e,this.vhs_.tech_.playbackRate()],((r.length?r.end(r.length-1):0)-n)/a-1);if(!(t<=r)){var n=function(e){const{main:t,currentTime:i,bandwidth:s,duration:r,segmentDuration:n,timeUntilRebuffer:a,currentTimeline:o,syncController:l}=e;e=t.playlists.filter(e=>!md.isIncompatible(e));let d=e.filter(md.isEnabled);var e=(d=d.length?d:e.filter(e=>!md.isDisabled(e))).filter(md.hasAttribute.bind(null,"BANDWIDTH")).map(e=>{var t=l.getSyncPoint(e,r,o,i)?1:2;return{playlist:e,rebufferingImpact:md.estimateSegmentRequestTime(n,s,e)*t-a}}),h=e.filter(e=>e.rebufferingImpact<=0);return Nh(h,(e,t)=>fh(t.playlist,e.playlist)),h.length?h[0]:(Nh(e,(e,t)=>e.rebufferingImpact-t.rebufferingImpact),e[0]||null)}({main:this.vhs_.playlists.main,currentTime:e,bandwidth:i,duration:this.duration_(),segmentDuration:s,timeUntilRebuffer:r,currentTimeline:this.currentTimeline_,syncController:this.syncController_});if(n){var a=t-r-n.rebufferingImpact;let e=.5;r<=Gl&&(e=1),!n.playlist||n.playlist.uri===this.playlist_.uri||a<e||(this.bandwidth=n.playlist.attributes.BANDWIDTH*D.BANDWIDTH_VARIANCE+1,this.trigger("earlyabort"))}}}}handleAbort_(e){this.logger_("Aborting "+jh(e)),this.mediaRequestsAborted+=1}handleProgress_(e,t){this.earlyAbortWhenNeeded_(t.stats),this.checkForAbort_(t.requestId)||this.trigger("progress")}handleTrackInfo_(e,t){this.earlyAbortWhenNeeded_(e.stats),this.checkForAbort_(e.requestId)||this.checkForIllegalMediaSwitch(t)||(function(t,i){if(!t&&!i||!t&&i||t&&!i)return!1;if(t!==i){var s=Object.keys(t).sort(),r=Object.keys(i).sort();if(s.length!==r.length)return!1;for(let e=0;e<s.length;e++){var n=s[e];if(n!==r[e])return!1;if(t[n]!==i[n])return!1}}return!0}(this.currentMediaInfo_,t=t||{})||(this.appendInitSegment_={audio:!0,video:!0},this.startingMediaInfo_=t,this.currentMediaInfo_=t,this.logger_("trackinfo update",t),this.trigger("trackinfo")),this.checkForAbort_(e.requestId))||(this.pendingSegment_.trackInfo=t,this.hasEnoughInfoToAppend_()&&this.processCallQueue_())}handleTimingInfo_(e,t,i,s){var r;this.earlyAbortWhenNeeded_(e.stats),this.checkForAbort_(e.requestId)||((e=this.pendingSegment_)[r=Hh(t)]=e[r]||{},e[r][i]=s,this.logger_(`timinginfo: ${t} - ${i} - `+s),this.hasEnoughInfoToAppend_()&&this.processCallQueue_())}handleCaptions_(e,t){if(this.earlyAbortWhenNeeded_(e.stats),!this.checkForAbort_(e.requestId))if(0===t.length)this.logger_("SegmentLoader received no captions from a caption event");else if(this.pendingSegment_.hasAppendedData_){const c=null===this.sourceUpdater_.videoTimestampOffset()?this.sourceUpdater_.audioTimestampOffset():this.sourceUpdater_.videoTimestampOffset(),p={};t.forEach(e=>{p[e.stream]=p[e.stream]||{startTime:1/0,captions:[],endTime:0};var t=p[e.stream];t.startTime=Math.min(t.startTime,e.startTime+c),t.endTime=Math.max(t.endTime,e.endTime+c),t.captions.push(e)}),Object.keys(p).forEach(e=>{var{startTime:t,endTime:i,captions:s}=p[e],r=this.inbandTextTracks_,n=(this.logger_(`adding cues from ${t} -> ${i} for `+e),r),a=this.vhs_.tech_,o=e;if(!n[o]){a.trigger({type:"usage",name:"vhs-608"});let s=o;/^cc708_/.test(o)&&(s="SERVICE"+o.split("_")[1]);var l=a.textTracks().getTrackById(s);if(l)n[o]=l;else{let e=o,t=o,i=!1;l=(a.options_.vhs&&a.options_.vhs.captionServices||{})[s];l&&(e=l.label,t=l.language,i=l.default),n[o]=a.addRemoteTextTrack({kind:"captions",id:s,default:i,label:e,language:t},!1).track}}Uh(t,i,r[e]);var{inbandTextTracks:d,captionArray:l,timestampOffset:h}={captionArray:s,inbandTextTracks:r,timestampOffset:c};if(l){const u=window.WebKitDataCue||window.VTTCue;l.forEach(e=>{var t=e.stream;d[t].addCue(new u(e.startTime+h,e.endTime+h,e.text))})}}),this.transmuxer_&&this.transmuxer_.postMessage({action:"clearParsedMp4Captions"})}else this.metadataQueue_.caption.push(this.handleCaptions_.bind(this,e,t))}handleId3_(e,t,i){var s,r,n,a;this.earlyAbortWhenNeeded_(e.stats),this.checkForAbort_(e.requestId)||(this.pendingSegment_.hasAppendedData_?(s=null===this.sourceUpdater_.videoTimestampOffset()?this.sourceUpdater_.audioTimestampOffset():this.sourceUpdater_.videoTimestampOffset(),r=this.inbandTextTracks_,n=i,a=this.vhs_.tech_,r.metadataTrack_||(r.metadataTrack_=a.addRemoteTextTrack({kind:"metadata",label:"Timed Metadata"},!1).track,r.metadataTrack_.inBandMetadataTrackDispatchType=n),Bh({inbandTextTracks:this.inbandTextTracks_,metadataArray:t,timestampOffset:s,videoDuration:this.duration_()})):this.metadataQueue_.id3.push(this.handleId3_.bind(this,e,t,i)))}processMetadataQueue_(){this.metadataQueue_.id3.forEach(e=>e()),this.metadataQueue_.caption.forEach(e=>e()),this.metadataQueue_.id3=[],this.metadataQueue_.caption=[]}processCallQueue_(){var e=this.callQueue_;this.callQueue_=[],e.forEach(e=>e())}processLoadQueue_(){var e=this.loadQueue_;this.loadQueue_=[],e.forEach(e=>e())}hasEnoughInfoToLoad_(){var e;return"audio"!==this.loaderType_||!(!(e=this.pendingSegment_)||this.getCurrentMediaInfo_()&&qh({timelineChangeController:this.timelineChangeController_,currentTimeline:this.currentTimeline_,segmentTimeline:e.timeline,loaderType:this.loaderType_,audioDisabled:this.audioDisabled_}))}getCurrentMediaInfo_(e=this.pendingSegment_){return e&&e.trackInfo||this.currentMediaInfo_}getMediaInfo_(e=this.pendingSegment_){return this.getCurrentMediaInfo_(e)||this.startingMediaInfo_}getPendingSegmentPlaylist(){return this.pendingSegment_?this.pendingSegment_.playlist:null}hasEnoughInfoToAppend_(){var e,t,i,s;return!!this.sourceUpdater_.ready()&&!(this.waitingOnRemove_||this.quotaExceededErrorRetryTimeout_||(e=this.pendingSegment_,t=this.getCurrentMediaInfo_(),!e)||!t||({hasAudio:t,hasVideo:i,isMuxed:s}=t,i&&!e.videoTimingInfo)||t&&!this.audioDisabled_&&!s&&!e.audioTimingInfo||qh({timelineChangeController:this.timelineChangeController_,currentTimeline:this.currentTimeline_,segmentTimeline:e.timeline,loaderType:this.loaderType_,audioDisabled:this.audioDisabled_}))}handleData_(t,e){if(this.earlyAbortWhenNeeded_(t.stats),!this.checkForAbort_(t.requestId))if(this.callQueue_.length||!this.hasEnoughInfoToAppend_())this.callQueue_.push(this.handleData_.bind(this,t,e));else{var i=this.pendingSegment_;if(this.setTimeMapping_(i.timeline),this.updateMediaSecondsLoaded_(i.part||i.segment),"closed"!==this.mediaSource_.readyState){if(t.map&&(t.map=this.initSegmentForMap(t.map,!0),i.segment.map=t.map),t.key&&this.segmentKey(t.key,!0),i.isFmp4=t.isFmp4,i.timingInfo=i.timingInfo||{},i.isFmp4)this.trigger("fmp4"),i.timingInfo.start=i[Hh(e.type)].start;else{t=this.getCurrentMediaInfo_(),t="main"===this.loaderType_&&t&&t.hasVideo;let e;t&&(e=i.videoTimingInfo.start),i.timingInfo.start=this.trueSegmentStart_({currentStart:i.timingInfo.start,playlist:i.playlist,mediaIndex:i.mediaIndex,currentVideoTimestampOffset:this.sourceUpdater_.videoTimestampOffset(),useVideoTimingInfo:t,firstVideoFrameTimeForData:e,videoTimingInfo:i.videoTimingInfo,audioTimingInfo:i.audioTimingInfo})}if(this.updateAppendInitSegmentStatus(i,e.type),this.updateSourceBufferTimestampOffset_(i),i.isSyncRequest){this.updateTimingInfoEnd_(i),this.syncController_.saveSegmentTimingInfo({segmentInfo:i,shouldSaveTimelineMapping:"main"===this.loaderType_});t=this.chooseNextRequest_();if(t.mediaIndex!==i.mediaIndex||t.partIndex!==i.partIndex)return void this.logger_("sync segment was incorrect, not appending");this.logger_("sync segment was correct, appending")}i.hasAppendedData_=!0,this.processMetadataQueue_(),this.appendData_(i,e)}}}updateAppendInitSegmentStatus(e,t){"main"!==this.loaderType_||"number"!=typeof e.timestampOffset||e.changedTimestampOffset||(this.appendInitSegment_={audio:!0,video:!0}),this.playlistOfLastInitSegment_[t]!==e.playlist&&(this.appendInitSegment_[t]=!0)}getInitSegmentAndUpdateState_({type:e,initSegment:t,map:i,playlist:s}){if(i){var r=Dd(i);if(this.activeInitSegmentId_===r)return null;t=this.initSegmentForMap(i,!0).bytes,this.activeInitSegmentId_=r}return t&&this.appendInitSegment_[e]?(this.playlistOfLastInitSegment_[e]=s,this.appendInitSegment_[e]=!1,this.activeInitSegmentId_=null,t):null}handleQuotaExceededError_({segmentInfo:e,type:t,bytes:i},s){var r=this.sourceUpdater_.audioBuffered(),n=this.sourceUpdater_.videoBuffered(),a=(1<r.length&&this.logger_("On QUOTA_EXCEEDED_ERR, found gaps in the audio buffer: "+Yl(r).join(", ")),1<n.length&&this.logger_("On QUOTA_EXCEEDED_ERR, found gaps in the video buffer: "+Yl(n).join(", ")),r.length?r.start(0):0),o=r.length?r.end(r.length-1):0,l=n.length?n.start(0):0,d=n.length?n.end(n.length-1):0;o-a<=1&&d-l<=1?(this.logger_("On QUOTA_EXCEEDED_ERR, single segment too large to append to buffer, triggering an error. "+`Appended byte length: ${i.byteLength}, `+`audio buffer: ${Yl(r).join(", ")}, `+`video buffer: ${Yl(n).join(", ")}, `),this.error({message:"Quota exceeded error with append of a single segment of content",excludeUntil:1/0}),this.trigger("error")):(this.waitingOnRemove_=!0,this.callQueue_.push(this.appendToSourceBuffer_.bind(this,{segmentInfo:e,type:t,bytes:i})),o=this.currentTime_()-1,this.logger_("On QUOTA_EXCEEDED_ERR, removing audio/video from 0 to "+o),this.remove(0,o,()=>{this.logger_("On QUOTA_EXCEEDED_ERR, retrying append in 1s"),this.waitingOnRemove_=!1,this.quotaExceededErrorRetryTimeout_=window.setTimeout(()=>{this.logger_("On QUOTA_EXCEEDED_ERR, re-processing call queue"),this.quotaExceededErrorRetryTimeout_=null,this.processCallQueue_()},1e3)},!0))}handleAppendError_({segmentInfo:e,type:t,bytes:i},s){s&&(22===s.code?this.handleQuotaExceededError_({segmentInfo:e,type:t,bytes:i}):(this.logger_("Received non QUOTA_EXCEEDED_ERR on append",s),this.error(`${t} append of ${i.length}b failed for segment `+`#${e.mediaIndex} in playlist `+e.playlist.id),this.trigger("appenderror")))}appendToSourceBuffer_({segmentInfo:e,type:t,initSegment:i,data:s,bytes:r}){if(!r){var n=[s];let e=s.byteLength;i&&(n.unshift(i),e+=i.byteLength),r=(e=>{let t=0,i;return e.bytes&&(i=new Uint8Array(e.bytes),e.segments.forEach(e=>{i.set(e,t),t+=e.byteLength})),i})({bytes:e,segments:n})}this.sourceUpdater_.appendBuffer({segmentInfo:e,type:t,bytes:r},this.handleAppendError_.bind(this,{segmentInfo:e,type:t,bytes:r}))}handleSegmentTimingInfo_(e,t,i){this.pendingSegment_&&t===this.pendingSegment_.requestId&&((t=this.pendingSegment_.segment)[e=e+"TimingInfo"]||(t[e]={}),t[e].transmuxerPrependedSeconds=i.prependedContentDuration||0,t[e].transmuxedPresentationStart=i.start.presentation,t[e].transmuxedDecodeStart=i.start.decode,t[e].transmuxedPresentationEnd=i.end.presentation,t[e].transmuxedDecodeEnd=i.end.decode,t[e].baseMediaDecodeTime=i.baseMediaDecodeTime)}appendData_(e,t){var{type:i,data:s}=t;s&&s.byteLength&&("audio"===i&&this.audioDisabled_||(t=this.getInitSegmentAndUpdateState_({type:i,initSegment:t.initSegment,playlist:e.playlist,map:e.isFmp4?e.segment.map:null}),this.appendToSourceBuffer_({segmentInfo:e,type:i,initSegment:t,data:s})))}loadSegment_(t){this.state="WAITING",this.pendingSegment_=t,this.trimBackBuffer_(t),"number"==typeof t.timestampOffset&&this.transmuxer_&&this.transmuxer_.postMessage({action:"clearAllMp4Captions"}),this.hasEnoughInfoToLoad_()?this.updateTransmuxerAndRequestSegment_(t):this.loadQueue_.push(()=>{var e=fi({},t,{forceTimestampOffset:!0});fi(t,this.generateSegmentInfo_(e)),this.isPendingTimestampOffset_=!1,this.updateTransmuxerAndRequestSegment_(t)})}updateTransmuxerAndRequestSegment_(s){this.shouldUpdateTransmuxerTimestampOffset_(s.timestampOffset)&&(this.gopBuffer_.length=0,s.gopsToAlignWith=[],this.timeMapping_=0,this.transmuxer_.postMessage({action:"reset"}),this.transmuxer_.postMessage({action:"setTimestampOffset",timestampOffset:s.timestampOffset}));var e=this.createSimplifiedSegmentObj_(s),t=this.isEndOfStream_(s.mediaIndex,s.playlist,s.partIndex),i=null!==this.mediaIndex,r=s.timeline!==this.currentTimeline_&&0<s.timeline,t=t||i&&r;this.logger_("Requesting "+jh(s)),e.map&&!e.map.bytes&&(this.logger_("going to request init segment."),this.appendInitSegment_={video:!0,audio:!0}),s.abortRequests=xh({xhr:this.vhs_.xhr,xhrOptions:this.xhrOptions_,decryptionWorker:this.decrypter_,segment:e,abortFn:this.handleAbort_.bind(this,s),progressFn:this.handleProgress_.bind(this),trackInfoFn:this.handleTrackInfo_.bind(this),timingInfoFn:this.handleTimingInfo_.bind(this),videoSegmentTimingInfoFn:this.handleSegmentTimingInfo_.bind(this,"video",s.requestId),audioSegmentTimingInfoFn:this.handleSegmentTimingInfo_.bind(this,"audio",s.requestId),captionsFn:this.handleCaptions_.bind(this),isEndOfTimeline:t,endedTimelineFn:()=>{this.logger_("received endedtimeline callback")},id3Fn:this.handleId3_.bind(this),dataFn:this.handleData_.bind(this),doneFn:this.segmentRequestFinished_.bind(this),onTransmuxerLog:({message:e,level:t,stream:i})=>{this.logger_(jh(s)+` logged from transmuxer stream ${i} as a ${t}: `+e)}})}trimBackBuffer_(e){var t=((e,t,i)=>{let s=t-D.BACK_BUFFER_LENGTH;return e.length&&(s=Math.max(s,e.start(0))),Math.min(t-i,s)})(this.seekable_(),this.currentTime_(),this.playlist_.targetDuration||10);0<t&&this.remove(0,t)}createSimplifiedSegmentObj_(e){var t=e.segment,i=e.part,i={resolvedUri:(i||t).resolvedUri,byterange:(i||t).byterange,requestId:e.requestId,transmuxer:e.transmuxer,audioAppendStart:e.audioAppendStart,gopsToAlignWith:e.gopsToAlignWith,part:e.part},s=e.playlist.segments[e.mediaIndex-1];return s&&s.timeline===t.timeline&&(s.videoTimingInfo?i.baseStartTime=s.videoTimingInfo.transmuxedDecodeEnd:s.audioTimingInfo&&(i.baseStartTime=s.audioTimingInfo.transmuxedDecodeEnd)),t.key&&(s=t.key.iv||new Uint32Array([0,0,0,e.mediaIndex+e.playlist.mediaSequence]),i.key=this.segmentKey(t.key),i.key.iv=s),t.map&&(i.map=this.initSegmentForMap(t.map)),i}saveTransferStats_(e){this.mediaRequests+=1,e&&(this.mediaBytesTransferred+=e.bytesReceived,this.mediaTransferDuration+=e.roundTripTime)}saveBandwidthRelatedStats_(e,t){this.pendingSegment_.byteLength=t.bytesReceived,e<1/60?this.logger_("Ignoring segment's bandwidth because its duration of "+e+" is less than the min to record "+1/60):(this.bandwidth=t.bandwidth,this.roundTrip=t.roundTripTime)}handleTimeout_(){this.mediaRequestsTimedout+=1,this.bandwidth=1,this.roundTrip=NaN,this.trigger("bandwidthupdate"),this.trigger("timeout")}segmentRequestFinished_(e,t,i){if(this.callQueue_.length)this.callQueue_.push(this.segmentRequestFinished_.bind(this,e,t,i));else if(this.saveTransferStats_(t.stats),this.pendingSegment_&&t.requestId===this.pendingSegment_.requestId){if(e)return this.pendingSegment_=null,this.state="READY",e.code===yh.ABORTED?void 0:(this.pause(),e.code===yh.TIMEOUT?void this.handleTimeout_():(this.mediaRequestsErrored+=1,this.error(e),void this.trigger("error")));e=this.pendingSegment_;this.saveBandwidthRelatedStats_(e.duration,t.stats),e.endOfAllRequests=t.endOfAllRequests,i.gopInfo&&(this.gopBuffer_=((e,t,i)=>{if(!t.length)return e;if(i)return t.slice();var s=t[0].pts;let r=0;for(r;r<e.length&&!(e[r].pts>=s);r++);return e.slice(0,r).concat(t)})(this.gopBuffer_,i.gopInfo,this.safeAppend_)),this.state="APPENDING",this.trigger("appending"),this.waitForAppendsToComplete_(e)}}setTimeMapping_(e){e=this.syncController_.mappingForTimeline(e);null!==e&&(this.timeMapping_=e)}updateMediaSecondsLoaded_(e){"number"==typeof e.start&&"number"==typeof e.end?this.mediaSecondsLoaded+=e.end-e.start:this.mediaSecondsLoaded+=e.duration}shouldUpdateTransmuxerTimestampOffset_(e){return null!==e&&("main"===this.loaderType_&&e!==this.sourceUpdater_.videoTimestampOffset()||!this.audioDisabled_&&e!==this.sourceUpdater_.audioTimestampOffset())}trueSegmentStart_({currentStart:e,playlist:t,mediaIndex:i,firstVideoFrameTimeForData:s,currentVideoTimestampOffset:r,useVideoTimingInfo:n,videoTimingInfo:a,audioTimingInfo:o}){return"undefined"!=typeof e?e:n?(e=t.segments[i-1],0!==i&&e&&"undefined"!=typeof e.start&&e.end===s+r?a.start:s):o.start}waitForAppendsToComplete_(e){var t,i,s=this.getCurrentMediaInfo_(e);s?({hasAudio:s,hasVideo:i,isMuxed:t}=s,i="main"===this.loaderType_&&i,s=!this.audioDisabled_&&s&&!t,e.waitingOnAppends=0,e.hasAppendedData_?(i&&e.waitingOnAppends++,s&&e.waitingOnAppends++,i&&this.sourceUpdater_.videoQueueCallback(this.checkAppendsDone_.bind(this,e)),s&&this.sourceUpdater_.audioQueueCallback(this.checkAppendsDone_.bind(this,e))):(e.timingInfo||"number"!=typeof e.timestampOffset||(this.isPendingTimestampOffset_=!0),e.timingInfo={start:0},e.waitingOnAppends++,this.isPendingTimestampOffset_||(this.updateSourceBufferTimestampOffset_(e),this.processMetadataQueue_()),this.checkAppendsDone_(e))):(this.error({message:"No starting media returned, likely due to an unsupported media format.",playlistExclusionDuration:1/0}),this.trigger("error"))}checkAppendsDone_(e){this.checkForAbort_(e.requestId)||(e.waitingOnAppends--,0===e.waitingOnAppends&&this.handleAppendsDone_())}checkForIllegalMediaSwitch(e){i=this.loaderType_,t=this.getCurrentMediaInfo_(),e=e;var t,i="main"===i&&t&&e?e.hasAudio||e.hasVideo?t.hasVideo&&!e.hasVideo?"Only audio found in segment when we expected video. We can't switch to audio only from a stream that had video. To get rid of this message, please add codec information to the manifest.":!t.hasVideo&&e.hasVideo?"Video found in segment when we expected only audio. We can't switch to a stream with video from an audio only stream. To get rid of this message, please add codec information to the manifest.":null:"Neither audio nor video found in segment.":null;return!!i&&(this.error({message:i,playlistExclusionDuration:1/0}),this.trigger("error"),!0)}updateSourceBufferTimestampOffset_(t){if(null!==t.timestampOffset&&"number"==typeof t.timingInfo.start&&!t.changedTimestampOffset&&"main"===this.loaderType_){let e=!1;t.timestampOffset-=this.getSegmentStartTimeForTimestampOffsetCalculation_({videoTimingInfo:t.segment.videoTimingInfo,audioTimingInfo:t.segment.audioTimingInfo,timingInfo:t.timingInfo}),t.changedTimestampOffset=!0,t.timestampOffset!==this.sourceUpdater_.videoTimestampOffset()&&(this.sourceUpdater_.videoTimestampOffset(t.timestampOffset),e=!0),t.timestampOffset!==this.sourceUpdater_.audioTimestampOffset()&&(this.sourceUpdater_.audioTimestampOffset(t.timestampOffset),e=!0),e&&this.trigger("timestampoffset")}}getSegmentStartTimeForTimestampOffsetCalculation_({videoTimingInfo:e,audioTimingInfo:t,timingInfo:i}){return this.useDtsForTimestampOffset_?e&&"number"==typeof e.transmuxedDecodeStart?e.transmuxedDecodeStart:t&&"number"==typeof t.transmuxedDecodeStart?t.transmuxedDecodeStart:i.start:i.start}updateTimingInfoEnd_(e){e.timingInfo=e.timingInfo||{};var t=this.getMediaInfo_(),t="main"===this.loaderType_&&t&&t.hasVideo&&e.videoTimingInfo?e.videoTimingInfo:e.audioTimingInfo;t&&(e.timingInfo.end="number"==typeof t.end?t.end:t.start+e.duration)}handleAppendsDone_(){var e,t,i;this.pendingSegment_&&this.trigger("appendsdone"),this.pendingSegment_?(e=this.pendingSegment_,this.updateTimingInfoEnd_(e),this.shouldSaveSegmentTimingInfo_&&this.syncController_.saveSegmentTimingInfo({segmentInfo:e,shouldSaveTimelineMapping:"main"===this.loaderType_}),(t=$h(e,this.sourceType_))&&("warn"===t.severity?T.log.warn(t.message):this.logger_(t.message)),this.recordThroughput_(e),this.pendingSegment_=null,this.state="READY",e.isSyncRequest&&(this.trigger("syncinfoupdate"),!e.hasAppendedData_)?this.logger_("Throwing away un-appended sync request "+jh(e)):(this.logger_("Appended "+jh(e)),this.addSegmentMetadataCue_(e),this.fetchAtBuffer_=!0,this.currentTimeline_!==e.timeline&&(this.timelineChangeController_.lastTimelineChange({type:this.loaderType_,from:this.currentTimeline_,to:e.timeline}),"main"!==this.loaderType_||this.audioDisabled_||this.timelineChangeController_.lastTimelineChange({type:"audio",from:this.currentTimeline_,to:e.timeline})),this.currentTimeline_=e.timeline,this.trigger("syncinfoupdate"),t=e.segment,i=e.part,t=t.end&&this.currentTime_()-t.end>3*e.playlist.targetDuration,i=i&&i.end&&this.currentTime_()-i.end>3*e.playlist.partTargetDuration,t||i?(this.logger_(`bad ${t?"segment":"part"} `+jh(e)),this.resetEverything()):(null!==this.mediaIndex&&this.trigger("bandwidthupdate"),this.trigger("progress"),this.mediaIndex=e.mediaIndex,this.partIndex=e.partIndex,this.isEndOfStream_(e.mediaIndex,e.playlist,e.partIndex)&&this.endOfStream(),this.trigger("appended"),e.hasAppendedData_&&this.mediaAppends++,this.paused()||this.monitorBuffer_()))):(this.state="READY",this.paused()||this.monitorBuffer_())}recordThroughput_(e){var t,i;e.duration<1/60?this.logger_("Ignoring segment's throughput because its duration of "+e.duration+" is less than the min to record "+1/60):(t=this.throughput.rate,i=Date.now()-e.endOfAllRequests+1,e=Math.floor(e.byteLength/i*8*1e3),this.throughput.rate+=(e-t)/++this.throughput.count)}addSegmentMetadataCue_(e){var t,i,s,r;this.segmentMetadataTrack_&&(t=(r=e.segment).start,i=r.end,Fh(t))&&Fh(i)&&(Uh(t,i,this.segmentMetadataTrack_),s=window.WebKitDataCue||window.VTTCue,r={custom:r.custom,dateTimeObject:r.dateTimeObject,dateTimeString:r.dateTimeString,bandwidth:e.playlist.attributes.BANDWIDTH,resolution:e.playlist.attributes.RESOLUTION,codecs:e.playlist.attributes.CODECS,byteLength:e.byteLength,uri:e.uri,timeline:e.timeline,playlist:e.playlist.id,start:t,end:i},(e=new s(t,i,JSON.stringify(r))).value=r,this.segmentMetadataTrack_.addCue(e))}}function Gh(){}function zh(e){return"string"!=typeof e?e:e.replace(/./,e=>e.toUpperCase())}const Xh=["video","audio"],Kh=(e,t)=>{var i=t[e+"Buffer"];return i&&i.updating||t.queuePending[e]},Yh=(i,s)=>{if(0!==s.queue.length){let e=0,t=s.queue[e];if("mediaSource"===t.type)s.updating()||"closed"===s.mediaSource.readyState||(s.queue.shift(),t.action(s),t.doneFn&&t.doneFn(),Yh("audio",s),Yh("video",s));else if("mediaSource"!==i&&s.ready()&&"closed"!==s.mediaSource.readyState&&!Kh(i,s)){if(t.type!==i){if(null===(e=((t,i)=>{for(let e=0;e<i.length;e++){var s=i[e];if("mediaSource"===s.type)return null;if(s.type===t)return e}return null})(i,s.queue)))return;t=s.queue[e]}s.queue.splice(e,1),(s.queuePending[i]=t).action(i,s),t.doneFn||(s.queuePending[i]=null,Yh(i,s))}}},Qh=(e,t)=>{var i=t[e+"Buffer"],s=zh(e);i&&(i.removeEventListener("updateend",t[`on${s}UpdateEnd_`]),i.removeEventListener("error",t[`on${s}Error_`]),t.codecs[e]=null,t[e+"Buffer"]=null)},Jh=(e,t)=>e&&t&&-1!==Array.prototype.indexOf.call(e.sourceBuffers,t),Zh={appendBuffer:(s,r,n)=>(t,i)=>{var e=i[t+"Buffer"];if(Jh(i.mediaSource,e)){i.logger_(`Appending segment ${r.mediaIndex}'s ${s.length} bytes to ${t}Buffer`);try{e.appendBuffer(s)}catch(e){i.logger_(`Error with code ${e.code} `+(22===e.code?"(QUOTA_EXCEEDED_ERR) ":"")+`when appending segment ${r.mediaIndex} to ${t}Buffer`),i.queuePending[t]=null,n(e)}}},remove:(s,r)=>(t,i)=>{var e=i[t+"Buffer"];if(Jh(i.mediaSource,e)){i.logger_(`Removing ${s} to ${r} from ${t}Buffer`);try{e.remove(s,r)}catch(e){i.logger_(`Remove ${s} to ${r} from ${t}Buffer failed`)}}},timestampOffset:s=>(e,t)=>{var i=t[e+"Buffer"];Jh(t.mediaSource,i)&&(t.logger_(`Setting ${e}timestampOffset to `+s),i.timestampOffset=s)},callback:i=>(e,t)=>{i()},endOfStream:t=>e=>{if("open"===e.mediaSource.readyState){e.logger_(`Calling mediaSource endOfStream(${t||""})`);try{e.mediaSource.endOfStream(t)}catch(e){T.log.warn("Failed to call media source endOfStream",e)}}},duration:t=>e=>{e.logger_("Setting mediaSource duration to "+t);try{e.mediaSource.duration=t}catch(e){T.log.warn("Failed to set media source duration",e)}},abort:()=>(t,e)=>{if("open"===e.mediaSource.readyState){var i=e[t+"Buffer"];if(Jh(e.mediaSource,i)){e.logger_(`calling abort on ${t}Buffer`);try{i.abort()}catch(e){T.log.warn(`Failed to abort on ${t}Buffer`,e)}}}},addSourceBuffer:(s,r)=>e=>{var t=zh(s),i=Bn(r),i=(e.logger_(`Adding ${s}Buffer with codec ${r} to mediaSource`),e.mediaSource.addSourceBuffer(i));i.addEventListener("updateend",e[`on${t}UpdateEnd_`]),i.addEventListener("error",e[`on${t}Error_`]),e.codecs[s]=r,e[s+"Buffer"]=i},removeSourceBuffer:i=>e=>{var t=e[i+"Buffer"];if(Qh(i,e),Jh(e.mediaSource,t)){e.logger_(`Removing ${i}Buffer with codec ${e.codecs[i]} from mediaSource`);try{e.mediaSource.removeSourceBuffer(t)}catch(e){T.log.warn(`Failed to removeSourceBuffer ${i}Buffer`,e)}}},changeType:r=>(e,t)=>{var i=t[e+"Buffer"],s=Bn(r);Jh(t.mediaSource,i)&&t.codecs[e]!==r&&(t.logger_(`changing ${e}Buffer codec from ${t.codecs[e]} to `+r),i.changeType(s),t.codecs[e]=r)}},eu=({type:e,sourceUpdater:t,action:i,doneFn:s,name:r})=>{t.queue.push({type:e,action:i,doneFn:s,name:r}),Yh(e,t)},tu=(i,s)=>e=>{var t;s.queuePending[i]&&(t=s.queuePending[i].doneFn,s.queuePending[i]=null,t)&&t(s[i+"Error_"]),Yh(i,s)};class iu extends T.EventTarget{constructor(e){super(),this.mediaSource=e,this.sourceopenListener_=()=>Yh("mediaSource",this),this.mediaSource.addEventListener("sourceopen",this.sourceopenListener_),this.logger_=Bl("SourceUpdater"),this.audioTimestampOffset_=0,this.videoTimestampOffset_=0,this.queue=[],this.queuePending={audio:null,video:null},this.delayedAudioAppendQueue_=[],this.videoAppendQueued_=!1,this.codecs={},this.onVideoUpdateEnd_=tu("video",this),this.onAudioUpdateEnd_=tu("audio",this),this.onVideoError_=e=>{this.videoError_=e},this.onAudioError_=e=>{this.audioError_=e},this.createdSourceBuffers_=!1,this.initializedEme_=!1,this.triggeredReady_=!1}initializedEme(){this.initializedEme_=!0,this.triggerReady()}hasCreatedSourceBuffers(){return this.createdSourceBuffers_}hasInitializedAnyEme(){return this.initializedEme_}ready(){return this.hasCreatedSourceBuffers()&&this.hasInitializedAnyEme()}createSourceBuffers(e){this.hasCreatedSourceBuffers()||(this.addOrChangeSourceBuffers(e),this.createdSourceBuffers_=!0,this.trigger("createdsourcebuffers"),this.triggerReady())}triggerReady(){this.ready()&&!this.triggeredReady_&&(this.triggeredReady_=!0,this.trigger("ready"))}addSourceBuffer(e,t){eu({type:"mediaSource",sourceUpdater:this,action:Zh.addSourceBuffer(e,t),name:"addSourceBuffer"})}abort(e){eu({type:e,sourceUpdater:this,action:Zh.abort(e),name:"abort"})}removeSourceBuffer(e){this.canRemoveSourceBuffer()?eu({type:"mediaSource",sourceUpdater:this,action:Zh.removeSourceBuffer(e),name:"removeSourceBuffer"}):T.log.error("removeSourceBuffer is not supported!")}canRemoveSourceBuffer(){return!T.browser.IE_VERSION&&!T.browser.IS_FIREFOX&&window.MediaSource&&window.MediaSource.prototype&&"function"==typeof window.MediaSource.prototype.removeSourceBuffer}static canChangeType(){return window.SourceBuffer&&window.SourceBuffer.prototype&&"function"==typeof window.SourceBuffer.prototype.changeType}canChangeType(){return this.constructor.canChangeType()}changeType(e,t){this.canChangeType()?eu({type:e,sourceUpdater:this,action:Zh.changeType(t),name:"changeType"}):T.log.error("changeType is not supported!")}addOrChangeSourceBuffers(i){if(!i||"object"!=typeof i||0===Object.keys(i).length)throw new Error("Cannot addOrChangeSourceBuffers to undefined codecs");Object.keys(i).forEach(e=>{var t=i[e];if(!this.hasCreatedSourceBuffers())return this.addSourceBuffer(e,t);this.canChangeType()&&this.changeType(e,t)})}appendBuffer(e,t){var{segmentInfo:i,type:s,bytes:r}=e;this.processedAppend_=!0,"audio"===s&&this.videoBuffer&&!this.videoAppendQueued_?(this.delayedAudioAppendQueue_.push([e,t]),this.logger_(`delayed audio append of ${r.length} until video append`)):(e=t,eu({type:s,sourceUpdater:this,action:Zh.appendBuffer(r,i||{mediaIndex:-1},e),doneFn:t,name:"appendBuffer"}),"video"===s&&(this.videoAppendQueued_=!0,this.delayedAudioAppendQueue_.length)&&(r=this.delayedAudioAppendQueue_.slice(),this.logger_(`queuing delayed audio ${r.length} appendBuffers`),this.delayedAudioAppendQueue_.length=0,r.forEach(e=>{this.appendBuffer.apply(this,e)})))}audioBuffered(){return Jh(this.mediaSource,this.audioBuffer)&&this.audioBuffer.buffered||Fl()}videoBuffered(){return Jh(this.mediaSource,this.videoBuffer)&&this.videoBuffer.buffered||Fl()}buffered(){var e=Jh(this.mediaSource,this.videoBuffer)?this.videoBuffer:null,t=Jh(this.mediaSource,this.audioBuffer)?this.audioBuffer:null;if(t&&!e)return this.audioBuffered();if(e&&!t)return this.videoBuffered();{var r=this.audioBuffered();var n=this.videoBuffered();let e=null,t=null,i=0;var a=[],o=[];if(!(r&&r.length&&n&&n.length))return Fl();let s=r.length;for(;s--;)a.push({time:r.start(s),type:"start"}),a.push({time:r.end(s),type:"end"});for(s=n.length;s--;)a.push({time:n.start(s),type:"start"}),a.push({time:n.end(s),type:"end"});for(a.sort(function(e,t){return e.time-t.time}),s=0;s<a.length;s++)"start"===a[s].type?2===++i&&(e=a[s].time):"end"===a[s].type&&1===--i&&(t=a[s].time),null!==e&&null!==t&&(o.push([e,t]),e=null,t=null);return Fl(o);return}}setDuration(e,t=Gh){eu({type:"mediaSource",sourceUpdater:this,action:Zh.duration(e),name:"duration",doneFn:t})}endOfStream(e=null,t=Gh){"string"!=typeof e&&(e=void 0),eu({type:"mediaSource",sourceUpdater:this,action:Zh.endOfStream(e),name:"endOfStream",doneFn:t})}removeAudio(e,t,i=Gh){this.audioBuffered().length&&0!==this.audioBuffered().end(0)?eu({type:"audio",sourceUpdater:this,action:Zh.remove(e,t),doneFn:i,name:"remove"}):i()}removeVideo(e,t,i=Gh){this.videoBuffered().length&&0!==this.videoBuffered().end(0)?eu({type:"video",sourceUpdater:this,action:Zh.remove(e,t),doneFn:i,name:"remove"}):i()}updating(){return!(!Kh("audio",this)&&!Kh("video",this))}audioTimestampOffset(e){return"undefined"!=typeof e&&this.audioBuffer&&this.audioTimestampOffset_!==e&&(eu({type:"audio",sourceUpdater:this,action:Zh.timestampOffset(e),name:"timestampOffset"}),this.audioTimestampOffset_=e),this.audioTimestampOffset_}videoTimestampOffset(e){return"undefined"!=typeof e&&this.videoBuffer&&this.videoTimestampOffset!==e&&(eu({type:"video",sourceUpdater:this,action:Zh.timestampOffset(e),name:"timestampOffset"}),this.videoTimestampOffset_=e),this.videoTimestampOffset_}audioQueueCallback(e){this.audioBuffer&&eu({type:"audio",sourceUpdater:this,action:Zh.callback(e),name:"callback"})}videoQueueCallback(e){this.videoBuffer&&eu({type:"video",sourceUpdater:this,action:Zh.callback(e),name:"callback"})}dispose(){this.trigger("dispose"),Xh.forEach(e=>{this.abort(e),this.canRemoveSourceBuffer()?this.removeSourceBuffer(e):this[e+"QueueCallback"](()=>Qh(e,this))}),this.videoAppendQueued_=!1,this.delayedAudioAppendQueue_.length=0,this.sourceopenListener_&&this.mediaSource.removeEventListener("sourceopen",this.sourceopenListener_),this.off()}}const su=e=>decodeURIComponent(escape(String.fromCharCode.apply(null,e))),ru=new Uint8Array("\n\n".split("").map(e=>e.charCodeAt(0)));class nu extends Error{constructor(){super("Trying to parse received VTT cues, but there is no WebVTT. Make sure vtt.js is loaded.")}}class au extends Wh{constructor(e,t={}){super(e,t),this.mediaSource_=null,this.subtitlesTrack_=null,this.loaderType_="subtitle",this.featuresNativeTextTracks_=e.featuresNativeTextTracks,this.loadVttJs=e.loadVttJs,this.shouldSaveSegmentTimingInfo_=!1}createTransmuxer_(){return null}buffered_(){var e;return this.subtitlesTrack_&&this.subtitlesTrack_.cues&&this.subtitlesTrack_.cues.length?Fl([[(e=this.subtitlesTrack_.cues)[0].startTime,e[e.length-1].startTime]]):Fl()}initSegmentForMap(e,t=!1){if(!e)return null;var i=Dd(e);let s=this.initSegments_[i];return t&&!s&&e.bytes&&(t=ru.byteLength+e.bytes.byteLength,(t=new Uint8Array(t)).set(e.bytes),t.set(ru,e.bytes.byteLength),this.initSegments_[i]=s={resolvedUri:e.resolvedUri,byterange:e.byterange,bytes:t}),s||e}couldBeginLoading_(){return this.playlist_&&this.subtitlesTrack_&&!this.paused()}init_(){return this.state="READY",this.resetEverything(),this.monitorBuffer_()}track(e){return"undefined"!=typeof e&&(this.subtitlesTrack_=e,"INIT"===this.state&&this.couldBeginLoading_())&&this.init_(),this.subtitlesTrack_}remove(e,t){Uh(e,t,this.subtitlesTrack_)}fillBuffer_(){var e=this.chooseNextRequest_();e&&(null===this.syncController_.timestampOffsetForTimeline(e.timeline)?(this.syncController_.one("timestampoffset",()=>{this.state="READY",this.paused()||this.monitorBuffer_()}),this.state="WAITING_ON_TIMELINE"):this.loadSegment_(e))}timestampOffsetForSegment_(){return null}chooseNextRequest_(){return this.skipEmptySegments_(super.chooseNextRequest_())}skipEmptySegments_(e){for(;e&&e.segment.empty;){if(e.mediaIndex+1>=e.playlist.segments.length){e=null;break}e=this.generateSegmentInfo_({playlist:e.playlist,mediaIndex:e.mediaIndex+1,startOfSegment:e.startOfSegment+e.duration,isSyncRequest:e.isSyncRequest})}return e}stopForError(e){this.error(e),this.state="READY",this.pause(),this.trigger("error")}segmentRequestFinished_(e,t,i){if(this.subtitlesTrack_)if(this.saveTransferStats_(t.stats),this.pendingSegment_)if(e)e.code===yh.TIMEOUT&&this.handleTimeout_(),e.code===yh.ABORTED?this.mediaRequestsAborted+=1:this.mediaRequestsErrored+=1,this.stopForError(e);else{var s=this.pendingSegment_,r=(this.saveBandwidthRelatedStats_(s.duration,t.stats),t.key&&this.segmentKey(t.key,!0),this.state="APPENDING",this.trigger("appending"),s.segment);if(r.map&&(r.map.bytes=t.map.bytes),s.bytes=t.bytes,"function"!=typeof window.WebVTT&&"function"==typeof this.loadVttJs)this.state="WAITING_ON_VTTJS",this.loadVttJs().then(()=>this.segmentRequestFinished_(e,t,i),()=>this.stopForError({message:"Error loading vtt.js"}));else{r.requested=!0;try{this.parseVTTCues_(s)}catch(e){return void this.stopForError({message:e.message})}if(this.updateTimeMapping_(s,this.syncController_.timelines[s.timeline],this.playlist_),s.cues.length?s.timingInfo={start:s.cues[0].startTime,end:s.cues[s.cues.length-1].endTime}:s.timingInfo={start:s.startOfSegment,end:s.startOfSegment+s.duration},s.isSyncRequest)this.trigger("syncinfoupdate"),this.pendingSegment_=null,this.state="READY";else{s.byteLength=s.bytes.byteLength,this.mediaSecondsLoaded+=r.duration,s.cues.forEach(e=>{this.subtitlesTrack_.addCue(this.featuresNativeTextTracks_?new window.VTTCue(e.startTime,e.endTime,e.text):e)});var n=this.subtitlesTrack_,a=n.cues;if(a)for(let i=0;i<a.length;i++){var o=[];let t=0;for(let e=0;e<a.length;e++)a[i].startTime===a[e].startTime&&a[i].endTime===a[e].endTime&&a[i].text===a[e].text&&1<++t&&o.push(a[e]);o.length&&o.forEach(e=>n.removeCue(e))}this.handleAppendsDone_()}}}else this.state="READY",this.mediaRequestsAborted+=1;else this.state="READY"}handleData_(){}updateTimingInfoEnd_(){}parseVTTCues_(t){let e,i=!1;if("function"!=typeof window.WebVTT)throw new nu;"function"==typeof window.TextDecoder?e=new window.TextDecoder("utf8"):(e=window.WebVTT.StringDecoder(),i=!0);var s=new window.WebVTT.Parser(window,window.vttjs,e);if(t.cues=[],t.timestampmap={MPEGTS:0,LOCAL:0},s.oncue=t.cues.push.bind(t.cues),s.ontimestampmap=e=>{t.timestampmap=e},s.onparsingerror=e=>{T.log.warn("Error encountered when parsing cues: "+e.message)},t.segment.map){let e=t.segment.map.bytes;i&&(e=su(e)),s.parse(e)}let r=t.bytes;i&&(r=su(r)),s.parse(r),s.flush()}updateTimeMapping_(e,t,i){var s=e.segment;if(t)if(e.cues.length){var r=e.timestampmap;const n=r.MPEGTS/Ml-r.LOCAL+t.mapping;e.cues.forEach(e=>{e.startTime+=n,e.endTime+=n}),i.syncInfo||(r=e.cues[0].startTime,t=e.cues[e.cues.length-1].startTime,i.syncInfo={mediaSequence:i.mediaSequence+e.mediaIndex,time:Math.min(r,t-s.duration)})}else s.empty=!0}}const ou=[{name:"VOD",run:(e,t,i,s,r)=>{return i!==1/0?{time:0,segmentIndex:0,partIndex:null}:null}},{name:"ProgramDateTime",run:(t,i,e,s,r)=>{if(!Object.keys(t.timelineToDatetimeMappings).length)return null;let n=null,a=null;var o=Jl(i);r=r||0;for(let e=0;e<o.length;e++){var l=o[i.endList||0===r?e:o.length-(e+1)],d=l.segment,h=t.timelineToDatetimeMappings[d.timeline];if(h&&d.dateTimeObject){let t=d.dateTimeObject.getTime()/1e3+h;if(d.parts&&"number"==typeof l.partIndex)for(let e=0;e<l.partIndex;e++)t+=d.parts[e].duration;h=Math.abs(r-t);if(null!==a&&(0===h||a<h))break;a=h,n={time:t,segmentIndex:l.segmentIndex,partIndex:l.partIndex}}}return n}},{name:"Segment",run:(e,t,i,s,r)=>{let n=null,a=null;r=r||0;var o=Jl(t);for(let e=0;e<o.length;e++){var l=o[t.endList||0===r?e:o.length-(e+1)],d=l.segment,h=l.part&&l.part.start||d&&d.start;if(d.timeline===s&&"undefined"!=typeof h){d=Math.abs(r-h);if(null!==a&&a<d)break;(!n||null===a||a>=d)&&(a=d,n={time:h,segmentIndex:l.segmentIndex,partIndex:l.partIndex})}}return n}},{name:"Discontinuity",run:(i,s,e,t,r)=>{let n=null;if(r=r||0,s.discontinuityStarts&&s.discontinuityStarts.length){let t=null;for(let e=0;e<s.discontinuityStarts.length;e++){var a=s.discontinuityStarts[e],o=s.discontinuitySequence+e+1,o=i.discontinuities[o];if(o){var l=Math.abs(r-o.time);if(null!==t&&t<l)break;(!n||null===t||t>=l)&&(t=l,n={time:o.time,segmentIndex:a,partIndex:null})}}}return n}},{name:"Playlist",run:(e,t,i,s,r)=>{return t.syncInfo?{time:t.syncInfo.time,segmentIndex:t.syncInfo.mediaSequence-t.mediaSequence,partIndex:null}:null}}];class lu extends T.EventTarget{constructor(e=0){super(),this.timelines=[],this.discontinuities=[],this.timelineToDatetimeMappings={},this.logger_=Bl("SyncController")}getSyncPoint(e,t,i,s){e=this.runStrategies_(e,t,i,s);return e.length?this.selectSyncPoint_(e,{key:"time",value:s}):null}getExpiredTime(e,t){return e&&e.segments&&(t=this.runStrategies_(e,t,e.discontinuitySequence,0)).length?(0<(t=this.selectSyncPoint_(t,{key:"segmentIndex",value:0})).segmentIndex&&(t.time*=-1),Math.abs(t.time+$l({defaultDuration:e.targetDuration,durationList:e.segments,startIndex:t.segmentIndex,endIndex:0}))):null}runStrategies_(t,i,s,r){var n=[];for(let e=0;e<ou.length;e++){var a=ou[e],o=a.run(this,t,i,s,r);o&&(o.strategy=a.name,n.push({strategy:a.name,syncPoint:o}))}return n}selectSyncPoint_(t,i){let s=t[0].syncPoint,r=Math.abs(t[0].syncPoint[i.key]-i.value),n=t[0].strategy;for(let e=1;e<t.length;e++){var a=Math.abs(t[e].syncPoint[i.key]-i.value);a<r&&(r=a,s=t[e].syncPoint,n=t[e].strategy)}return this.logger_(`syncPoint for [${i.key}: ${i.value}] chosen with strategy`+` [${n}]: [time:${s.time},`+" segmentIndex:"+s.segmentIndex+("number"==typeof s.partIndex?",partIndex:"+s.partIndex:"")+"]"),s}saveExpiredSegmentInfo(t,i){var s=i.mediaSequence-t.mediaSequence;if(86400<s)T.log.warn(`Not saving expired segment info. Media sequence gap ${s} is too large.`);else for(let e=s-1;0<=e;e--){var r=t.segments[e];if(r&&"undefined"!=typeof r.start){i.syncInfo={mediaSequence:t.mediaSequence+e,time:r.start},this.logger_(`playlist refresh sync: [time:${i.syncInfo.time},`+` mediaSequence: ${i.syncInfo.mediaSequence}]`),this.trigger("syncinfoupdate");break}}}setDateTimeMappingForStart(e){var t;this.timelineToDatetimeMappings={},e.segments&&e.segments.length&&e.segments[0].dateTimeObject&&(t=(e=e.segments[0]).dateTimeObject.getTime()/1e3,this.timelineToDatetimeMappings[e.timeline]=-t)}saveSegmentTimingInfo({segmentInfo:e,shouldSaveTimelineMapping:t}){var i=this.calculateSegmentTimeMapping_(e,e.timingInfo,t),s=e.segment,i=(i&&(this.saveDiscontinuitySyncInfo_(e),e.playlist.syncInfo||(e.playlist.syncInfo={mediaSequence:e.playlist.mediaSequence+e.mediaIndex,time:s.start})),s.dateTimeObject);s.discontinuity&&t&&i&&(this.timelineToDatetimeMappings[s.timeline]=-i.getTime()/1e3)}timestampOffsetForTimeline(e){return"undefined"==typeof this.timelines[e]?null:this.timelines[e].time}mappingForTimeline(e){return"undefined"==typeof this.timelines[e]?null:this.timelines[e].mapping}calculateSegmentTimeMapping_(e,t,i){var s=e.segment,r=e.part;let n=this.timelines[e.timeline],a,o;if("number"==typeof e.timestampOffset)n={time:e.startOfSegment,mapping:e.startOfSegment-t.start},i&&(this.timelines[e.timeline]=n,this.trigger("timestampoffset"),this.logger_(`time mapping for timeline ${e.timeline}: `+`[time: ${n.time}] [mapping: ${n.mapping}]`)),a=e.startOfSegment;else{if(!n)return!1;a=t.start+n.mapping}return o=t.end+n.mapping,r&&(r.start=a,r.end=o),(!s.start||a<s.start)&&(s.start=a),s.end=o,!0}saveDiscontinuitySyncInfo_(t){var i=t.playlist,s=t.segment;if(s.discontinuity)this.discontinuities[s.timeline]={time:s.start,accuracy:0};else if(i.discontinuityStarts&&i.discontinuityStarts.length)for(let e=0;e<i.discontinuityStarts.length;e++){var r=i.discontinuityStarts[e],n=i.discontinuitySequence+e+1,a=r-t.mediaIndex,o=Math.abs(a);if(!this.discontinuities[n]||this.discontinuities[n].accuracy>o){let e;e=a<0?s.start-$l({defaultDuration:i.targetDuration,durationList:i.segments,startIndex:t.mediaIndex,endIndex:r}):s.end+$l({defaultDuration:i.targetDuration,durationList:i.segments,startIndex:t.mediaIndex+1,endIndex:r}),this.discontinuities[n]={time:e,accuracy:o}}}}dispose(){this.trigger("dispose"),this.off()}}class du extends T.EventTarget{constructor(){super(),this.pendingTimelineChanges_={},this.lastTimelineChanges_={}}clearPendingTimelineChange(e){this.pendingTimelineChanges_[e]=null,this.trigger("pendingtimelinechange")}pendingTimelineChange({type:e,from:t,to:i}){return"number"==typeof t&&"number"==typeof i&&(this.pendingTimelineChanges_[e]={type:e,from:t,to:i},this.trigger("pendingtimelinechange")),this.pendingTimelineChanges_[e]}lastTimelineChange({type:e,from:t,to:i}){return"number"==typeof t&&"number"==typeof i&&(this.lastTimelineChanges_[e]={type:e,from:t,to:i},delete this.pendingTimelineChanges_[e],this.trigger("timelinechange")),this.lastTimelineChanges_[e]}dispose(){this.trigger("dispose"),this.pendingTimelineChanges_={},this.lastTimelineChanges_={},this.off()}}var hu=Jd(Zd(eh(function(){var e=function(){function e(){this.listeners={}}var t=e.prototype;return t.on=function(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)},t.off=function(e,t){return!!this.listeners[e]&&(t=this.listeners[e].indexOf(t),this.listeners[e]=this.listeners[e].slice(0),this.listeners[e].splice(t,1),-1<t)},t.trigger=function(e){var t=this.listeners[e];if(t)if(2===arguments.length)for(var i=t.length,s=0;s<i;++s)t[s].call(this,arguments[1]);else for(var r=Array.prototype.slice.call(arguments,1),n=t.length,a=0;a<n;++a)t[a].apply(this,r)},t.dispose=function(){this.listeners={}},t.pipe=function(t){this.on("data",function(e){t.push(e)})},e}();
- /*! @name pkcs7 @version 1.0.4 @license Apache-2.0 */let h=null;class g{constructor(e){h=h||function(){var e=[[[],[],[],[],[]],[[],[],[],[],[]]],t=e[0],i=e[1],s=t[4],r=i[4];let n,a,o;var l,d,h,u,c=[],p=[];let m,g;for(n=0;n<256;n++)p[(c[n]=n<<1^283*(n>>7))^n]=n;for(a=o=0;!s[a];a^=l||1,o=p[o]||1)for(u=(u=o^o<<1^o<<2^o<<3^o<<4)>>8^255&u^99,h=c[d=c[l=c[r[s[a]=u]=a]]],g=16843009*h^65537*d^257*l^16843008*a,m=257*c[u]^16843008*u,n=0;n<4;n++)t[n][a]=m=m<<24^m>>>8,i[n][u]=g=g<<24^g>>>8;for(n=0;n<5;n++)t[n]=t[n].slice(0),i[n]=i[n].slice(0);return e}(),this._tables=[[h[0][0].slice(),h[0][1].slice(),h[0][2].slice(),h[0][3].slice(),h[0][4].slice()],[h[1][0].slice(),h[1][1].slice(),h[1][2].slice(),h[1][3].slice(),h[1][4].slice()]];let t,i,s;var r=this._tables[0][4],n=this._tables[1],a=e.length;let o=1;if(4!==a&&6!==a&&8!==a)throw new Error("Invalid aes key size");var l=e.slice(0),d=[];for(this._key=[l,d],t=a;t<4*a+28;t++)s=l[t-1],(t%a==0||8===a&&t%a==4)&&(s=r[s>>>24]<<24^r[s>>16&255]<<16^r[s>>8&255]<<8^r[255&s],t%a==0)&&(s=s<<8^s>>>24^o<<24,o=o<<1^283*(o>>7)),l[t]=l[t-a]^s;for(i=0;t;i++,t--)s=l[3&i?t:t-4],t<=4||i<4?d[i]=s:d[i]=n[0][r[s>>>24]]^n[1][r[s>>16&255]]^n[2][r[s>>8&255]]^n[3][r[255&s]]}decrypt(e,t,i,s,r,n){var a,o,l=this._key[1];let d=e^l[0],h=s^l[1],u=i^l[2],c=t^l[3],p;var m=l.length/4-2;let g,f=4;var e=this._tables[1],y=e[0],_=e[1],v=e[2],b=e[3],T=e[4];for(g=0;g<m;g++)p=y[d>>>24]^_[h>>16&255]^v[u>>8&255]^b[255&c]^l[f],a=y[h>>>24]^_[u>>16&255]^v[c>>8&255]^b[255&d]^l[f+1],o=y[u>>>24]^_[c>>16&255]^v[d>>8&255]^b[255&h]^l[f+2],c=y[c>>>24]^_[d>>16&255]^v[h>>8&255]^b[255&u]^l[f+3],f+=4,d=p,h=a,u=o;for(g=0;g<4;g++)r[(3&-g)+n]=T[d>>>24]<<24^T[h>>16&255]<<16^T[u>>8&255]<<8^T[255&c]^l[f++],p=d,d=h,h=u,u=c,c=p}}class l extends e{constructor(){super(e),this.jobs=[],this.delay=1,this.timeout_=null}processJob_(){this.jobs.shift()(),this.jobs.length?this.timeout_=setTimeout(this.processJob_.bind(this),this.delay):this.timeout_=null}push(e){this.jobs.push(e),this.timeout_||(this.timeout_=setTimeout(this.processJob_.bind(this),this.delay))}}function f(e){return e<<24|(65280&e)<<8|(16711680&e)>>8|e>>>24}class d{constructor(e,t,i,s){var r=d.STEP,n=new Int32Array(e.buffer);const a=new Uint8Array(e.byteLength);let o=0;for(this.asyncStream_=new l,this.asyncStream_.push(this.decryptChunk_(n.subarray(o,o+r),t,i,a)),o=r;o<n.length;o+=r)i=new Uint32Array([f(n[o-4]),f(n[o-3]),f(n[o-2]),f(n[o-1])]),this.asyncStream_.push(this.decryptChunk_(n.subarray(o,o+r),t,i,a));this.asyncStream_.push(function(){var e;
- /*! @name aes-decrypter @version 4.0.1 @license Apache-2.0 */s(null,(e=a).subarray(0,e.byteLength-e[e.byteLength-1]))})}static get STEP(){return 32e3}decryptChunk_(t,i,s,r){return function(){var e=function(e,t,i){var s,r,n,a,o=new Int32Array(e.buffer,e.byteOffset,e.byteLength>>2),l=new g(Array.prototype.slice.call(t)),t=new Uint8Array(e.byteLength),d=new Int32Array(t.buffer);let h,u,c,p,m;for(h=i[0],u=i[1],c=i[2],p=i[3],m=0;m<o.length;m+=4)s=f(o[m]),r=f(o[m+1]),n=f(o[m+2]),a=f(o[m+3]),l.decrypt(s,r,n,a,d,m),d[m]=f(d[m]^h),d[m+1]=f(d[m+1]^u),d[m+2]=f(d[m+2]^c),d[m+3]=f(d[m+3]^p),h=s,u=r,c=n,p=a;return t}(t,i,s);r.set(e,t.byteOffset)}}}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t="undefined"!=typeof window?window:"undefined"!=typeof t?t:"undefined"!=typeof self?self:{},t=t.BigInt||Number;t("0x1"),t("0x100"),t("0x10000"),t("0x1000000"),t("0x100000000"),t("0x10000000000"),t("0x1000000000000"),t("0x100000000000000"),t("0x10000000000000000"),t=new Uint16Array([65484]),255!==(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength))[0]&&t[0];function r(s){const r={};return Object.keys(s).forEach(e=>{var t,i=s[e];t=i,("function"===ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer)?r[e]={bytes:i.buffer,byteOffset:i.byteOffset,byteLength:i.byteLength}:r[e]=i}),r}self.onmessage=function(e){const i=e.data;var e=new Uint8Array(i.encrypted.bytes,i.encrypted.byteOffset,i.encrypted.byteLength),t=new Uint32Array(i.key.bytes,i.key.byteOffset,i.key.byteLength/4),s=new Uint32Array(i.iv.bytes,i.iv.byteOffset,i.iv.byteLength/4);new d(e,t,s,function(e,t){self.postMessage(r({source:i.source,decrypted:t}),[t.buffer])})}})));const uu=(e,t)=>{e.abort(),e.pause(),t&&t.activePlaylistLoader&&(t.activePlaylistLoader.pause(),t.activePlaylistLoader=null)},cu=(e,t)=>{(t.activePlaylistLoader=e).load()},pu={AUDIO:(a,o)=>()=>{var{segmentLoaders:{[a]:e},mediaTypes:{[a]:t},excludePlaylist:i}=o,e=(uu(e,t),t.activeTrack()),s=t.activeGroup(),s=(s.filter(e=>e.default)[0]||s[0]).id,r=t.tracks[s];if(e===r)i({error:{message:"Problem encountered loading the default audio track."}});else{T.log.warn("Problem encountered loading the alternate audio track.Switching back to default.");for(const n in t.tracks)t.tracks[n].enabled=t.tracks[n]===r;t.onTrackChanged()}},SUBTITLES:(i,s)=>()=>{var{segmentLoaders:{[i]:e},mediaTypes:{[i]:t}}=s,e=(T.log.warn("Problem encountered loading the subtitle track.Disabling subtitle track."),uu(e,t),t.activeTrack());e&&(e.mode="disabled"),t.onTrackChanged()}},mu={AUDIO:(e,t,i)=>{if(!t)return;const{tech:s,requestOptions:r,segmentLoaders:{[e]:n}}=i;t.on("loadedmetadata",()=>{var e=t.media();n.playlist(e,r),(!s.paused()||e.endList&&"none"!==s.preload())&&n.load()}),t.on("loadedplaylist",()=>{n.playlist(t.media(),r),s.paused()||n.load()}),t.on("error",pu[e](e,i))},SUBTITLES:(e,t,i)=>{const{tech:s,requestOptions:r,segmentLoaders:{[e]:n},mediaTypes:{[e]:a}}=i;t.on("loadedmetadata",()=>{var e=t.media();n.playlist(e,r),n.track(a.activeTrack()),(!s.paused()||e.endList&&"none"!==s.preload())&&n.load()}),t.on("loadedplaylist",()=>{n.playlist(t.media(),r),s.paused()||n.load()}),t.on("error",pu[e](e,i))}},gu={AUDIO:(i,s)=>{var r,{vhs:n,sourceType:a,segmentLoaders:{[i]:e},requestOptions:o,main:{mediaGroups:l},mediaTypes:{[i]:{groups:d,tracks:h,logger_:u}},mainPlaylistLoader:c}=s,p=pd(c.main);l[i]&&0!==Object.keys(l[i]).length||(l[i]={main:{default:{default:!0}}},p&&(l[i].main.default.playlists=c.main.playlists));for(const m in l[i]){d[m]||(d[m]=[]);for(const g in l[i][m]){let e=l[i][m][g],t;t=p?(u(`AUDIO group '${m}' label '${g}' is a main playlist`),e.isMainPlaylist=!0,null):"vhs-json"===a&&e.playlists?new Cd(e.playlists[0],n,o):e.resolvedUri?new Cd(e.resolvedUri,n,o):e.playlists&&"dash"===a?new Kd(e.playlists[0],n,o,c):null,e=O({id:g,playlistLoader:t},e),mu[i](i,e.playlistLoader,s),d[m].push(e),"undefined"==typeof h[g]&&(r=new T.AudioTrack({id:g,kind:(e=>{let t=e.default?"main":"alternative";return t=e.characteristics&&0<=e.characteristics.indexOf("public.accessibility.describes-video")?"main-desc":t})(e),enabled:!1,language:e.language,default:e.default,label:g}),h[g]=r)}}e.on("error",pu[i](i,s))},SUBTITLES:(i,s)=>{var r,{tech:n,vhs:a,sourceType:o,segmentLoaders:{[i]:e},requestOptions:l,main:{mediaGroups:d},mediaTypes:{[i]:{groups:h,tracks:u}},mainPlaylistLoader:c}=s;for(const p in d[i]){h[p]||(h[p]=[]);for(const m in d[i][p])if(!d[i][p][m].forced){let e=d[i][p][m],t;if("hls"===o)t=new Cd(e.resolvedUri,a,l);else if("dash"===o){if(!e.playlists.filter(e=>e.excludeUntil!==1/0).length)return;t=new Kd(e.playlists[0],a,l,c)}else"vhs-json"===o&&(t=new Cd(e.playlists?e.playlists[0]:e.resolvedUri,a,l));e=O({id:m,playlistLoader:t},e),mu[i](i,e.playlistLoader,s),h[p].push(e),"undefined"==typeof u[m]&&(r=n.addRemoteTextTrack({id:m,kind:"subtitles",default:e.default&&e.autoselect,language:e.language,label:m},!1).track,u[m]=r)}}e.on("error",pu[i](i,s))},"CLOSED-CAPTIONS":(e,t)=>{var{tech:i,main:{mediaGroups:s},mediaTypes:{[e]:{groups:r,tracks:n}}}=t;for(const l in s[e]){r[l]||(r[l]=[]);for(const d in s[e][l]){var a=s[e][l][d];if(/^(?:CC|SERVICE)/.test(a.instreamId)){var o=i.options_.vhs&&i.options_.vhs.captionServices||{};let e={label:d,language:a.language,instreamId:a.instreamId,default:a.default&&a.autoselect};void 0===(e=o[e.instreamId]?O(e,o[e.instreamId]):e).default&&delete e.default,r[l].push(O({id:d},a)),"undefined"==typeof n[d]&&(o=i.addRemoteTextTrack({id:e.instreamId,kind:"captions",default:e.default,language:e.language,label:e.label},!1).track,n[d]=o)}}}}},fu=(t,i)=>{for(let e=0;e<t.length;e++){if(cd(i,t[e]))return!0;if(t[e].playlists&&fu(t[e].playlists,i))return!0}return!1},yu={AUDIO:(i,s)=>()=>{var{[i]:{tracks:e}}=s["mediaTypes"];for(const t in e)if(e[t].enabled)return e[t];return null},SUBTITLES:(i,s)=>()=>{var{[i]:{tracks:e}}=s["mediaTypes"];for(const t in e)if("showing"===e[t].mode||"hidden"===e[t].mode)return e[t];return null}},_u=n=>{["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(e=>{gu[e](e,n)});const{mediaTypes:a,mainPlaylistLoader:e,tech:t,vhs:i,segmentLoaders:{AUDIO:s,main:r}}=n;["AUDIO","SUBTITLES"].forEach(e=>{var o,l,d,h,i,s,u,c,t,r;a[e].activeGroup=(o=e,l=n,t=>{var{mainPlaylistLoader:e,mediaTypes:{[o]:{groups:i}}}=l,s=e.media();if(!s)return null;let r=null;s.attributes[o]&&(r=i[s.attributes[o]]);var n=Object.keys(i);if(!r)if("AUDIO"===o&&1<n.length&&pd(l.main))for(let e=0;e<n.length;e++){var a=i[n[e]];if(fu(a,s)){r=a;break}}else i.main?r=i.main:1===n.length&&(r=i[n[0]]);return"undefined"==typeof t?r:null!==t&&r&&r.filter(e=>e.id===t.id)[0]||null}),a[e].activeTrack=yu[e](e,n),a[e].onGroupChanged=(d=e,h=n,()=>{var{segmentLoaders:{[d]:e,main:t},mediaTypes:{[d]:i}}=h,s=i.activeTrack(),r=i.getActiveGroup(),n=i.activePlaylistLoader,a=i.lastGroup_;r&&a&&r.id===a.id||(i.lastGroup_=r,i.lastTrack_=s,uu(e,i),r&&!r.isMainPlaylist&&(r.playlistLoader?(e.resyncLoader(),cu(r.playlistLoader,i)):n&&t.resetEverything()))}),a[e].onGroupChanging=(i=e,s=n,()=>{var{segmentLoaders:{[i]:e},mediaTypes:{[i]:t}}=s;t.lastGroup_=null,e.abort(),e.pause()}),a[e].onTrackChanged=(u=e,c=n,()=>{var e,t,{mainPlaylistLoader:i,segmentLoaders:{[u]:s,main:r},mediaTypes:{[u]:n}}=c,a=n.activeTrack(),o=n.getActiveGroup(),l=n.activePlaylistLoader,d=n.lastTrack_;if((!d||!a||d.id!==a.id)&&(n.lastGroup_=o,n.lastTrack_=a,uu(s,n),o)){if(o.isMainPlaylist)return!a||!d||a.id===d.id||(t=(e=c.vhs.playlistController_).selectPlaylist(),e.media()===t)?void 0:(n.logger_(`track change. Switching main audio from ${d.id} to `+a.id),i.pause(),r.resetEverything(),void e.fastQualityChange_(t));if("AUDIO"===u){if(!o.playlistLoader)return r.setAudio(!0),void r.resetEverything();s.setAudio(!0),r.setAudio(!1)}l===o.playlistLoader||(s.track&&s.track(a),s.resetEverything()),cu(o.playlistLoader,n)}}),a[e].getActiveGroup=([t,r]=[e,n["mediaTypes"]],()=>{var e=r[t].activeTrack();return e?r[t].activeGroup(e):null})});var o=a.AUDIO.activeGroup();o&&(o=(o.filter(e=>e.default)[0]||o[0]).id,a.AUDIO.tracks[o].enabled=!0,a.AUDIO.onGroupChanged(),a.AUDIO.onTrackChanged(),(a.AUDIO.getActiveGroup().playlistLoader?(r.setAudio(!1),s):r).setAudio(!0)),e.on("mediachange",()=>{["AUDIO","SUBTITLES"].forEach(e=>a[e].onGroupChanged())}),e.on("mediachanging",()=>{["AUDIO","SUBTITLES"].forEach(e=>a[e].onGroupChanging())});const l=()=>{a.AUDIO.onTrackChanged(),t.trigger({type:"usage",name:"vhs-audio-change"})};t.audioTracks().addEventListener("change",l),t.remoteTextTracks().addEventListener("change",a.SUBTITLES.onTrackChanged),i.on("dispose",()=>{t.audioTracks().removeEventListener("change",l),t.remoteTextTracks().removeEventListener("change",a.SUBTITLES.onTrackChanged)}),t.clearTracks("audio");for(const d in a.AUDIO.tracks)t.audioTracks().addTrack(a.AUDIO.tracks[d])};let vu;const bu=["mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaBytesTransferred","mediaAppends"];class Tu extends T.EventTarget{constructor(e){super();const{src:t,withCredentials:i,tech:r,bandwidth:s,externVhs:n,useCueTags:a,playlistExclusionDuration:o,enableLowInitialPlaylist:l,sourceType:d,cacheEncryptionKeys:h,bufferBasedABR:u,leastPixelDiffSelector:c,captionServices:p}=e;if(!t)throw new Error("A non-empty playlist URL or JSON manifest string is required");let m=e["maxPlaylistRetries"];null!==m&&"undefined"!=typeof m||(m=1/0),vu=n,this.bufferBasedABR=Boolean(u),this.leastPixelDiffSelector=Boolean(c),this.withCredentials=i,this.tech_=r,this.vhs_=r.vhs,this.sourceType_=d,this.useCueTags_=a,this.playlistExclusionDuration=o,this.maxPlaylistRetries=m,this.enableLowInitialPlaylist=l,this.useCueTags_&&(this.cueTagsTrack_=this.tech_.addTextTrack("metadata","ad-cues"),this.cueTagsTrack_.inBandMetadataTrackDispatchType=""),this.requestOptions_={withCredentials:i,maxPlaylistRetries:m,timeout:null},this.on("error",this.pauseLoading),this.mediaTypes_=(()=>{const t={};return["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(e=>{t[e]={groups:{},tracks:{},activePlaylistLoader:null,activeGroup:Gh,activeTrack:Gh,getActiveGroup:Gh,onGroupChanged:Gh,onTrackChanged:Gh,lastTrack_:null,logger_:Bl(`MediaGroups[${e}]`)}}),t})(),this.mediaSource=new window.MediaSource,this.handleDurationChange_=this.handleDurationChange_.bind(this),this.handleSourceOpen_=this.handleSourceOpen_.bind(this),this.handleSourceEnded_=this.handleSourceEnded_.bind(this),this.mediaSource.addEventListener("durationchange",this.handleDurationChange_),this.mediaSource.addEventListener("sourceopen",this.handleSourceOpen_),this.mediaSource.addEventListener("sourceended",this.handleSourceEnded_),this.seekable_=Fl(),this.hasPlayed_=!1,this.syncController_=new lu(e),this.segmentMetadataTrack_=r.addRemoteTextTrack({kind:"metadata",label:"segment-metadata"},!1).track,this.decrypter_=new hu,this.sourceUpdater_=new iu(this.mediaSource),this.inbandTextTracks_={},this.timelineChangeController_=new du;var g={vhs:this.vhs_,parse708captions:e.parse708captions,useDtsForTimestampOffset:e.useDtsForTimestampOffset,captionServices:p,mediaSource:this.mediaSource,currentTime:this.tech_.currentTime.bind(this.tech_),seekable:()=>this.seekable(),seeking:()=>this.tech_.seeking(),duration:()=>this.duration(),hasPlayed:()=>this.hasPlayed_,goalBufferLength:()=>this.goalBufferLength(),bandwidth:s,syncController:this.syncController_,decrypter:this.decrypter_,sourceType:this.sourceType_,inbandTextTracks:this.inbandTextTracks_,cacheEncryptionKeys:h,sourceUpdater:this.sourceUpdater_,timelineChangeController:this.timelineChangeController_,exactManifestTimings:e.exactManifestTimings},g=(this.mainPlaylistLoader_=new("dash"===this.sourceType_?Kd:Cd)(t,this.vhs_,this.requestOptions_),this.setupMainPlaylistLoaderListeners_(),this.mainSegmentLoader_=new Wh(O(g,{segmentMetadataTrack:this.segmentMetadataTrack_,loaderType:"main"}),e),this.audioSegmentLoader_=new Wh(O(g,{loaderType:"audio"}),e),this.subtitleSegmentLoader_=new au(O(g,{loaderType:"vtt",featuresNativeTextTracks:this.tech_.featuresNativeTextTracks,loadVttJs:()=>new Promise((e,t)=>{function i(){r.off("vttjserror",s),e()}function s(){r.off("vttjsloaded",i),t()}r.one("vttjsloaded",i),r.one("vttjserror",s),r.addWebVttScript_()})}),e),this.setupSegmentLoaderListeners_(),this.bufferBasedABR&&(this.mainPlaylistLoader_.one("loadedplaylist",()=>this.startABRTimer_()),this.tech_.on("pause",()=>this.stopABRTimer_()),this.tech_.on("play",()=>this.startABRTimer_())),bu.forEach(e=>{this[e+"_"]=function(e){return this.audioSegmentLoader_[e]+this.mainSegmentLoader_[e]}.bind(this,e)}),this.logger_=Bl("pc"),this.triggeredFmp4Usage=!1,"none"===this.tech_.preload()?(this.loadOnPlay_=()=>{this.loadOnPlay_=null,this.mainPlaylistLoader_.load()},this.tech_.one("play",this.loadOnPlay_)):this.mainPlaylistLoader_.load(),this.timeToLoadedData__=-1,this.mainAppendsToLoadedData__=-1,this.audioAppendsToLoadedData__=-1,"none"===this.tech_.preload()?"play":"loadstart");this.tech_.one(g,()=>{const e=Date.now();this.tech_.one("loadeddata",()=>{this.timeToLoadedData__=Date.now()-e,this.mainAppendsToLoadedData__=this.mainSegmentLoader_.mediaAppends,this.audioAppendsToLoadedData__=this.audioSegmentLoader_.mediaAppends})})}mainAppendsToLoadedData_(){return this.mainAppendsToLoadedData__}audioAppendsToLoadedData_(){return this.audioAppendsToLoadedData__}appendsToLoadedData_(){var e=this.mainAppendsToLoadedData_(),t=this.audioAppendsToLoadedData_();return-1===e||-1===t?-1:e+t}timeToLoadedData_(){return this.timeToLoadedData__}checkABR_(e="abr"){var t=this.selectPlaylist();t&&this.shouldSwitchToMedia_(t)&&this.switchMedia_(t,e)}switchMedia_(e,t,i){var s=this.media(),s=s&&(s.id||s.uri),r=e.id||e.uri;s&&s!==r&&(this.logger_(`switch media ${s} -> ${r} from `+t),this.tech_.trigger({type:"usage",name:"vhs-rendition-change-"+t})),this.mainPlaylistLoader_.media(e,i)}startABRTimer_(){this.stopABRTimer_(),this.abrTimer_=window.setInterval(()=>this.checkABR_(),250)}stopABRTimer_(){this.tech_.scrubbing&&this.tech_.scrubbing()||(window.clearInterval(this.abrTimer_),this.abrTimer_=null)}getAudioTrackPlaylists_(){var t=this.main(),e=t&&t.playlists||[];if(!t||!t.mediaGroups||!t.mediaGroups.AUDIO)return e;var i=t.mediaGroups.AUDIO,s=Object.keys(i);let r;if(Object.keys(this.mediaTypes_.AUDIO.groups).length)r=this.mediaTypes_.AUDIO.activeTrack();else{var n=i.main||s.length&&i[s[0]];for(const d in n)if(n[d].default){r={label:d};break}}if(!r)return e;var a=[];for(const h in i)if(i[h][r.label]){var o=i[h][r.label];if(o.playlists&&o.playlists.length)a.push.apply(a,o.playlists);else if(o.uri)a.push(o);else if(t.playlists.length)for(let e=0;e<t.playlists.length;e++){var l=t.playlists[e];l.attributes&&l.attributes.AUDIO&&l.attributes.AUDIO===h&&a.push(l)}}return a.length?a:e}setupMainPlaylistLoaderListeners_(){this.mainPlaylistLoader_.on("loadedmetadata",()=>{var e=this.mainPlaylistLoader_.media(),t=1.5*e.targetDuration*1e3;ud(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.media())?this.requestOptions_.timeout=0:this.requestOptions_.timeout=t,e.endList&&"none"!==this.tech_.preload()&&(this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.mainSegmentLoader_.load()),_u({sourceType:this.sourceType_,segmentLoaders:{AUDIO:this.audioSegmentLoader_,SUBTITLES:this.subtitleSegmentLoader_,main:this.mainSegmentLoader_},tech:this.tech_,requestOptions:this.requestOptions_,mainPlaylistLoader:this.mainPlaylistLoader_,vhs:this.vhs_,main:this.main(),mediaTypes:this.mediaTypes_,excludePlaylist:this.excludePlaylist.bind(this)}),this.triggerPresenceUsage_(this.main(),e),this.setupFirstPlay(),!this.mediaTypes_.AUDIO.activePlaylistLoader||this.mediaTypes_.AUDIO.activePlaylistLoader.media()?this.trigger("selectedinitialmedia"):this.mediaTypes_.AUDIO.activePlaylistLoader.one("loadedmetadata",()=>{this.trigger("selectedinitialmedia")})}),this.mainPlaylistLoader_.on("loadedplaylist",()=>{this.loadOnPlay_&&this.tech_.off("play",this.loadOnPlay_);let t=this.mainPlaylistLoader_.media();if(!t){this.excludeUnsupportedVariants_();let e;if(!(e=(e=this.enableLowInitialPlaylist?this.selectInitialPlaylist():e)||this.selectPlaylist())||!this.shouldSwitchToMedia_(e))return;if(this.initialMedia_=e,this.switchMedia_(this.initialMedia_,"initial"),!("vhs-json"===this.sourceType_&&this.initialMedia_.segments))return;t=this.initialMedia_}this.handleUpdatedMediaPlaylist(t)}),this.mainPlaylistLoader_.on("error",()=>{var e=this.mainPlaylistLoader_.error;this.excludePlaylist({playlistToExclude:e.playlist,error:e})}),this.mainPlaylistLoader_.on("mediachanging",()=>{this.mainSegmentLoader_.abort(),this.mainSegmentLoader_.pause()}),this.mainPlaylistLoader_.on("mediachange",()=>{var e=this.mainPlaylistLoader_.media(),t=1.5*e.targetDuration*1e3;ud(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.media())?this.requestOptions_.timeout=0:this.requestOptions_.timeout=t,this.mainPlaylistLoader_.load(),this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.mainSegmentLoader_.load(),this.tech_.trigger({type:"mediachange",bubbles:!0})}),this.mainPlaylistLoader_.on("playlistunchanged",()=>{var e=this.mainPlaylistLoader_.media();"playlist-unchanged"!==e.lastExcludeReason_&&this.stuckAtPlaylistEnd_(e)&&(this.excludePlaylist({error:{message:"Playlist no longer updating.",reason:"playlist-unchanged"}}),this.tech_.trigger("playliststuck"))}),this.mainPlaylistLoader_.on("renditiondisabled",()=>{this.tech_.trigger({type:"usage",name:"vhs-rendition-disabled"})}),this.mainPlaylistLoader_.on("renditionenabled",()=>{this.tech_.trigger({type:"usage",name:"vhs-rendition-enabled"})})}handleUpdatedMediaPlaylist(e){this.useCueTags_&&this.updateAdCues_(e),this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.updateDuration(!e.endList),this.tech_.paused()||(this.mainSegmentLoader_.load(),this.audioSegmentLoader_&&this.audioSegmentLoader_.load())}triggerPresenceUsage_(e,t){var i=e.mediaGroups||{};let s=!0;e=Object.keys(i.AUDIO);for(const r in i.AUDIO)for(const n in i.AUDIO[r])i.AUDIO[r][n].uri||(s=!1);s&&this.tech_.trigger({type:"usage",name:"vhs-demuxed"}),Object.keys(i.SUBTITLES).length&&this.tech_.trigger({type:"usage",name:"vhs-webvtt"}),vu.Playlist.isAes(t)&&this.tech_.trigger({type:"usage",name:"vhs-aes"}),e.length&&1<Object.keys(i.AUDIO[e[0]]).length&&this.tech_.trigger({type:"usage",name:"vhs-alternate-audio"}),this.useCueTags_&&this.tech_.trigger({type:"usage",name:"vhs-playlist-cue-tags"})}shouldSwitchToMedia_(t){var e=this.mainPlaylistLoader_.media()||this.mainPlaylistLoader_.pendingMedia_,i=this.tech_.currentTime(),s=this.bufferLowWaterLine(),r=this.bufferHighWaterLine(),{currentPlaylist:i,buffered:e,currentTime:t,nextPlaylist:s,bufferLowWaterLine:r,bufferHighWaterLine:n,duration:a,bufferBasedABR:o,log:l}=[{buffered:this.tech_.buffered(),currentTime:i,currentPlaylist:e,nextPlaylist:t,bufferLowWaterLine:s,bufferHighWaterLine:r,duration:this.duration(),bufferBasedABR:this.bufferBasedABR,log:this.logger_}][0];if(s){var d=`allowing switch ${i&&i.id||"null"} -> `+s.id;if(!i)return l(d+" as current playlist is not set"),!0;if(s.id!==i.id){var h=Boolean(jl(e,t).length);if(!i.endList)return h||"number"!=typeof i.partTargetDuration?(l(d+" as current playlist is live"),!0):(l(`not ${d} as current playlist is live llhls, but currentTime isn't in buffered.`),!1);h=Vl(e,t),e=o?D.EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE:D.MAX_BUFFER_LOW_WATER_LINE;if(a<e)return l(d+` as duration < max low water line (${a} < ${e})`),!0;t=s.attributes.BANDWIDTH,a=i.attributes.BANDWIDTH;if(t<a&&(!o||h<n)){let e=d+` as next bandwidth < current bandwidth (${t} < ${a})`;return o&&(e+=` and forwardBuffer < bufferHighWaterLine (${h} < ${n})`),l(e),!0}if((!o||a<t)&&r<=h){let e=d+` as forwardBuffer >= bufferLowWaterLine (${h} >= ${r})`;return o&&(e+=` and next bandwidth > current bandwidth (${t} > ${a})`),l(e),!0}l(`not ${d} as no switching criteria met`)}}else T.log.warn("We received no playlist to switch to. Please check your stream.");return!1}setupSegmentLoaderListeners_(){this.mainSegmentLoader_.on("bandwidthupdate",()=>{this.checkABR_("bandwidthupdate"),this.tech_.trigger("bandwidthupdate")}),this.mainSegmentLoader_.on("timeout",()=>{this.bufferBasedABR&&this.mainSegmentLoader_.load()}),this.bufferBasedABR||this.mainSegmentLoader_.on("progress",()=>{this.trigger("progress")}),this.mainSegmentLoader_.on("error",()=>{var e=this.mainSegmentLoader_.error();this.excludePlaylist({playlistToExclude:e.playlist,error:e})}),this.mainSegmentLoader_.on("appenderror",()=>{this.error=this.mainSegmentLoader_.error_,this.trigger("error")}),this.mainSegmentLoader_.on("syncinfoupdate",()=>{this.onSyncInfoUpdate_()}),this.mainSegmentLoader_.on("timestampoffset",()=>{this.tech_.trigger({type:"usage",name:"vhs-timestamp-offset"})}),this.audioSegmentLoader_.on("syncinfoupdate",()=>{this.onSyncInfoUpdate_()}),this.audioSegmentLoader_.on("appenderror",()=>{this.error=this.audioSegmentLoader_.error_,this.trigger("error")}),this.mainSegmentLoader_.on("ended",()=>{this.logger_("main segment loader ended"),this.onEndOfStream()}),this.mainSegmentLoader_.on("earlyabort",e=>{this.bufferBasedABR||(this.delegateLoaders_("all",["abort"]),this.excludePlaylist({error:{message:"Aborted early because there isn't enough bandwidth to complete the request without rebuffering."},playlistExclusionDuration:120}))});var e=()=>{if(!this.sourceUpdater_.hasCreatedSourceBuffers())return this.tryToCreateSourceBuffers_();var e=this.getCodecsOrExclude_();e&&this.sourceUpdater_.addOrChangeSourceBuffers(e)};this.mainSegmentLoader_.on("trackinfo",e),this.audioSegmentLoader_.on("trackinfo",e),this.mainSegmentLoader_.on("fmp4",()=>{this.triggeredFmp4Usage||(this.tech_.trigger({type:"usage",name:"vhs-fmp4"}),this.triggeredFmp4Usage=!0)}),this.audioSegmentLoader_.on("fmp4",()=>{this.triggeredFmp4Usage||(this.tech_.trigger({type:"usage",name:"vhs-fmp4"}),this.triggeredFmp4Usage=!0)}),this.audioSegmentLoader_.on("ended",()=>{this.logger_("audioSegmentLoader ended"),this.onEndOfStream()})}mediaSecondsLoaded_(){return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded+this.mainSegmentLoader_.mediaSecondsLoaded)}load(){this.mainSegmentLoader_.load(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.load(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.load()}fastQualityChange_(e=this.selectPlaylist()){e===this.mainPlaylistLoader_.media()?this.logger_("skipping fastQualityChange because new media is same as old"):(this.switchMedia_(e,"fast-quality"),this.mainSegmentLoader_.resetEverything(()=>{T.browser.IE_VERSION||T.browser.IS_EDGE?this.tech_.setCurrentTime(this.tech_.currentTime()+.04):this.tech_.setCurrentTime(this.tech_.currentTime())}))}play(){var e;if(!this.setupFirstPlay())return this.tech_.ended()&&this.tech_.setCurrentTime(0),this.hasPlayed_&&this.load(),e=this.tech_.seekable(),this.tech_.duration()===1/0&&this.tech_.currentTime()<e.start(0)?this.tech_.setCurrentTime(e.end(e.length-1)):void 0}setupFirstPlay(){var e=this.mainPlaylistLoader_.media();if(!e||this.tech_.paused()||this.hasPlayed_)return!1;if(!e.endList){const t=this.seekable();if(!t.length)return!1;if(T.browser.IE_VERSION&&0===this.tech_.readyState())return this.tech_.one("loadedmetadata",()=>{this.trigger("firstplay"),this.tech_.setCurrentTime(t.end(0)),this.hasPlayed_=!0}),!1;this.trigger("firstplay"),this.tech_.setCurrentTime(t.end(0))}return this.hasPlayed_=!0,this.load(),!0}handleSourceOpen_(){var e;this.tryToCreateSourceBuffers_(),this.tech_.autoplay()&&"undefined"!=typeof(e=this.tech_.play())&&"function"==typeof e.then&&e.then(null,e=>{}),this.trigger("sourceopen")}handleSourceEnded_(){var e,t;this.inbandTextTracks_.metadataTrack_&&(e=this.inbandTextTracks_.metadataTrack_.cues)&&e.length&&(t=this.duration(),e[e.length-1].endTime=isNaN(t)||Math.abs(t)===1/0?Number.MAX_VALUE:t)}handleDurationChange_(){this.tech_.trigger("durationchange")}onEndOfStream(){let e=this.mainSegmentLoader_.ended_;var t;this.mediaTypes_.AUDIO.activePlaylistLoader&&(t=this.mainSegmentLoader_.getCurrentMediaInfo_(),e=(t&&!t.hasVideo||e)&&this.audioSegmentLoader_.ended_),e&&(this.stopABRTimer_(),this.sourceUpdater_.endOfStream())}stuckAtPlaylistEnd_(e){var t,i;return!!this.seekable().length&&null!==(t=this.syncController_.getExpiredTime(e,this.duration()))&&(e=vu.Playlist.playlistEnd(e,t),t=this.tech_.currentTime(),(i=this.tech_.buffered()).length?(i=i.end(i.length-1))-t<=zl&&e-i<=zl:e-t<=zl)}excludePlaylist({playlistToExclude:s=this.mainPlaylistLoader_.media(),error:t={},playlistExclusionDuration:i}){if(s=s||this.mainPlaylistLoader_.media(),i=i||t.playlistExclusionDuration||this.playlistExclusionDuration,s){s.playlistErrors_++;var r=this.mainPlaylistLoader_.main.playlists,n=r.filter(ld),n=1===n.length&&n[0]===s;if(1===r.length&&i!==1/0)return T.log.warn(`Problem encountered with playlist ${s.id}. `+"Trying again since it is the only playlist."),this.tech_.trigger("retryplaylist"),this.mainPlaylistLoader_.load(n);if(n){let i=!1;r.forEach(e=>{var t;e!==s&&"undefined"!=typeof(t=e.excludeUntil)&&t!==1/0&&(i=!0,delete e.excludeUntil)}),i&&(T.log.warn("Removing other playlists from the exclusion list because the last rendition is about to be excluded."),this.tech_.trigger("retryplaylist"))}let e;e=s.playlistErrors_>this.maxPlaylistRetries?1/0:Date.now()+1e3*i,s.excludeUntil=e,t.reason&&(s.lastExcludeReason_=t.reason),this.tech_.trigger("excludeplaylist"),this.tech_.trigger({type:"usage",name:"vhs-rendition-excluded"});var a,r=this.selectPlaylist();if(r)return i=t.internal?this.logger_:T.log.warn,a=t.message?" "+t.message:"",i(`${t.internal?"Internal problem":"Problem"} encountered with playlist ${s.id}.`+a+` Switching to playlist ${r.id}.`),r.attributes.AUDIO!==s.attributes.AUDIO&&this.delegateLoaders_("audio",["abort","pause"]),r.attributes.SUBTITLES!==s.attributes.SUBTITLES&&this.delegateLoaders_("subtitle",["abort","pause"]),this.delegateLoaders_("main",["abort","pause"]),i=r.targetDuration/2*1e3||5e3,a="number"==typeof r.lastRequest&&Date.now()-r.lastRequest<=i,this.switchMedia_(r,"exclude",n||a);this.error="Playback cannot continue. No available working or supported playlists.",this.trigger("error")}else this.error=t,"open"!==this.mediaSource.readyState?this.trigger("error"):this.sourceUpdater_.endOfStream("network")}pauseLoading(){this.delegateLoaders_("all",["abort","pause"]),this.stopABRTimer_()}delegateLoaders_(i,e){const s=[];var t="all"===i,r=(!t&&"main"!==i||s.push(this.mainPlaylistLoader_),[]);!t&&"audio"!==i||r.push("AUDIO"),!t&&"subtitle"!==i||(r.push("CLOSED-CAPTIONS"),r.push("SUBTITLES")),r.forEach(e=>{e=this.mediaTypes_[e]&&this.mediaTypes_[e].activePlaylistLoader;e&&s.push(e)}),["main","audio","subtitle"].forEach(e=>{var t=this[e+"SegmentLoader_"];!t||i!==e&&"all"!==i||s.push(t)}),s.forEach(t=>e.forEach(e=>{"function"==typeof t[e]&&t[e]()}))}setCurrentTime(e){var t=jl(this.tech_.buffered(),e);return this.mainPlaylistLoader_&&this.mainPlaylistLoader_.media()&&this.mainPlaylistLoader_.media().segments?t&&t.length?e:(this.mainSegmentLoader_.resetEverything(),this.mainSegmentLoader_.abort(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.resetEverything(),this.audioSegmentLoader_.abort()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.resetEverything(),this.subtitleSegmentLoader_.abort()),void this.load()):0}duration(){var e;return this.mainPlaylistLoader_&&(e=this.mainPlaylistLoader_.media())?e.endList?this.mediaSource?this.mediaSource.duration:vu.Playlist.duration(e):1/0:0}seekable(){return this.seekable_}onSyncInfoUpdate_(){let i;if(this.mainPlaylistLoader_){var s=this.mainPlaylistLoader_.media();if(s){var r=this.syncController_.getExpiredTime(s,this.duration());if(null!==r){var n=this.mainPlaylistLoader_.main,a=vu.Playlist.seekable(s,r,vu.Playlist.liveEdgeDelay(n,s));if(0!==a.length){if(this.mediaTypes_.AUDIO.activePlaylistLoader){if(s=this.mediaTypes_.AUDIO.activePlaylistLoader.media(),null===(r=this.syncController_.getExpiredTime(s,this.duration())))return;if(0===(i=vu.Playlist.seekable(s,r,vu.Playlist.liveEdgeDelay(n,s))).length)return}let e,t;this.seekable_&&this.seekable_.length&&(e=this.seekable_.end(0),t=this.seekable_.start(0)),!i||i.start(0)>a.end(0)||a.start(0)>i.end(0)?this.seekable_=a:this.seekable_=Fl([[(i.start(0)>a.start(0)?i:a).start(0),(i.end(0)<a.end(0)?i:a).end(0)]]),this.seekable_&&this.seekable_.length&&this.seekable_.end(0)===e&&this.seekable_.start(0)===t||(this.logger_(`seekable updated [${Kl(this.seekable_)}]`),this.tech_.trigger("seekablechanged"))}}}}}updateDuration(t){if(this.updateDuration_&&(this.mediaSource.removeEventListener("sourceopen",this.updateDuration_),this.updateDuration_=null),"open"!==this.mediaSource.readyState)this.updateDuration_=this.updateDuration.bind(this,t),this.mediaSource.addEventListener("sourceopen",this.updateDuration_);else{if(t)return(t=this.seekable()).length?void((isNaN(this.mediaSource.duration)||this.mediaSource.duration<t.end(t.length-1))&&this.sourceUpdater_.setDuration(t.end(t.length-1))):void 0;t=this.tech_.buffered();let e=vu.Playlist.duration(this.mainPlaylistLoader_.media());0<t.length&&(e=Math.max(e,t.end(t.length-1))),this.mediaSource.duration!==e&&this.sourceUpdater_.setDuration(e)}}dispose(){this.trigger("dispose"),this.decrypter_.terminate(),this.mainPlaylistLoader_.dispose(),this.mainSegmentLoader_.dispose(),this.loadOnPlay_&&this.tech_.off("play",this.loadOnPlay_),["AUDIO","SUBTITLES"].forEach(e=>{var t=this.mediaTypes_[e].groups;for(const i in t)t[i].forEach(e=>{e.playlistLoader&&e.playlistLoader.dispose()})}),this.audioSegmentLoader_.dispose(),this.subtitleSegmentLoader_.dispose(),this.sourceUpdater_.dispose(),this.timelineChangeController_.dispose(),this.stopABRTimer_(),this.updateDuration_&&this.mediaSource.removeEventListener("sourceopen",this.updateDuration_),this.mediaSource.removeEventListener("durationchange",this.handleDurationChange_),this.mediaSource.removeEventListener("sourceopen",this.handleSourceOpen_),this.mediaSource.removeEventListener("sourceended",this.handleSourceEnded_),this.off()}main(){return this.mainPlaylistLoader_.main}media(){return this.mainPlaylistLoader_.media()||this.initialMedia_}areMediaTypesKnown_(){var e=!!this.mediaTypes_.AUDIO.activePlaylistLoader,t=!!this.mainSegmentLoader_.getCurrentMediaInfo_(),e=!e||!!this.audioSegmentLoader_.getCurrentMediaInfo_();return t&&e}getCodecsOrExclude_(){const r={main:this.mainSegmentLoader_.getCurrentMediaInfo_()||{},audio:this.audioSegmentLoader_.getCurrentMediaInfo_()||{}},t=this.mainSegmentLoader_.getPendingSegmentPlaylist()||this.media();r.video=r.main;var e=mh(this.main(),t);const n={};var i=!!this.mediaTypes_.AUDIO.activePlaylistLoader;if(r.main.hasVideo&&(n.video=e.video||r.main.videoCodec||"avc1.4d400d"),r.main.isMuxed&&(n.video+=","+(e.audio||r.main.audioCodec||Fn)),(r.main.hasAudio&&!r.main.isMuxed||r.audio.hasAudio||i)&&(n.audio=e.audio||r.main.audioCodec||r.audio.audioCodec||Fn,r.audio.isFmp4=(r.main.hasAudio&&!r.main.isMuxed?r.main:r.audio).isFmp4),n.audio||n.video){const a={};let s;if(["video","audio"].forEach(function(e){var t,i;n.hasOwnProperty(e)&&(t=r[e].isFmp4,i=n[e],!(t?In:xn)(i))&&(t=r[e].isFmp4?"browser":"muxer",a[t]=a[t]||[],a[t].push(n[e]),"audio"===e&&(s=t))}),i&&s&&t.attributes.AUDIO){const o=t.attributes.AUDIO;this.main().playlists.forEach(e=>{(e.attributes&&e.attributes.AUDIO)===o&&e!==t&&(e.excludeUntil=1/0)}),this.logger_(`excluding audio group ${o} as ${s} does not support codec(s): "${n.audio}"`)}if(!Object.keys(a).length){if(this.sourceUpdater_.hasCreatedSourceBuffers()&&!this.sourceUpdater_.canChangeType()){const l=[];if(["video","audio"].forEach(e=>{var t=(Un(this.sourceUpdater_.codecs[e]||"")[0]||{}).type,i=(Un(n[e]||"")[0]||{}).type;t&&i&&t.toLowerCase()!==i.toLowerCase()&&l.push(`"${this.sourceUpdater_.codecs[e]}" -> "${n[e]}"`)}),l.length)return void this.excludePlaylist({playlistToExclude:t,error:{message:`Codec switching not supported: ${l.join(", ")}.`,internal:!0},playlistExclusionDuration:1/0})}return n}e=Object.keys(a).reduce((e,t)=>(e&&(e+=", "),e+=`${t} does not support codec(s): "${a[t].join(",")}"`),"")+".",this.excludePlaylist({playlistToExclude:t,error:{internal:!0,message:e},playlistExclusionDuration:1/0})}else this.excludePlaylist({playlistToExclude:t,error:{message:"Could not determine codecs for playlist."},playlistExclusionDuration:1/0})}tryToCreateSourceBuffers_(){var e;"open"!==this.mediaSource.readyState||this.sourceUpdater_.hasCreatedSourceBuffers()||this.areMediaTypesKnown_()&&(e=this.getCodecsOrExclude_())&&(this.sourceUpdater_.createSourceBuffers(e),e=[e.video,e.audio].filter(Boolean).join(","),this.excludeIncompatibleVariants_(e))}excludeUnsupportedVariants_(){const s=this.main().playlists,r=[];Object.keys(s).forEach(e=>{var t,i,e=s[e];-1===r.indexOf(e.id)&&(r.push(e.id),i=[],!(t=mh(this.main,e)).audio||xn(t.audio)||In(t.audio)||i.push("audio codec "+t.audio),!t.video||xn(t.video)||In(t.video)||i.push("video codec "+t.video),t.text&&"stpp.ttml.im1t"===t.text&&i.push("text codec "+t.text),i.length)&&(e.excludeUntil=1/0,this.logger_(`excluding ${e.id} for unsupported: `+i.join(", ")))})}excludeIncompatibleVariants_(e){const r=[],n=this.main().playlists;e=Lh(Un(e));const a=ph(e),o=e.video&&Un(e.video)[0]||null,l=e.audio&&Un(e.audio)[0]||null;Object.keys(n).forEach(e=>{var t,i,s,e=n[e];-1===r.indexOf(e.id)&&e.excludeUntil!==1/0&&(r.push(e.id),t=[],s=mh(this.mainPlaylistLoader_.main,e),i=ph(s),s.audio||s.video)&&(i!==a&&t.push(`codec count "${i}" !== "${a}"`),this.sourceUpdater_.canChangeType()||(i=s.video&&Un(s.video)[0]||null,s=s.audio&&Un(s.audio)[0]||null,i&&o&&i.type.toLowerCase()!==o.type.toLowerCase()&&t.push(`video codec "${i.type}" !== "${o.type}"`),s&&l&&s.type.toLowerCase()!==l.type.toLowerCase()&&t.push(`audio codec "${s.type}" !== "${l.type}"`)),t.length)&&(e.excludeUntil=1/0,this.logger_(`excluding ${e.id}: `+t.join(" && ")))})}updateAdCues_(e){let t=0;var s=this.seekable(),[r,n,s=0]=(s.length&&(t=s.start(0)),[e,this.cueTagsTrack_,t]);if(r.segments){let t=s,i;for(let e=0;e<r.segments.length;e++){var a,o,l=r.segments[e];if(i=i||function(e,t){var i=e.cues;for(let e=0;e<i.length;e++){var s=i[e];if(t>=s.adStartTime&&t<=s.adEndTime)return s}return null}(n,t+l.duration/2)){if("cueIn"in l){i.endTime=t,i.adEndTime=t,t+=l.duration,i=null;continue}if(t<i.endTime){t+=l.duration;continue}i.endTime+=l.duration}else"cueOut"in l&&((i=new window.VTTCue(t,t+l.duration,l.cueOut)).adStartTime=t,i.adEndTime=t+parseFloat(l.cueOut),n.addCue(i)),"cueOutCont"in l&&([a,o]=l.cueOutCont.split("/").map(parseFloat),(i=new window.VTTCue(t,t+l.duration,"")).adStartTime=t-a,i.adEndTime=i.adStartTime+o,n.addCue(i));t+=l.duration}}}goalBufferLength(){var e=this.tech_.currentTime(),t=D.GOAL_BUFFER_LENGTH,i=D.GOAL_BUFFER_LENGTH_RATE,s=Math.max(t,D.MAX_GOAL_BUFFER_LENGTH);return Math.min(t+e*i,s)}bufferLowWaterLine(){var e=this.tech_.currentTime(),t=D.BUFFER_LOW_WATER_LINE,i=D.BUFFER_LOW_WATER_LINE_RATE,s=Math.max(t,D.MAX_BUFFER_LOW_WATER_LINE),r=Math.max(t,D.EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE);return Math.min(t+e*i,this.bufferBasedABR?r:s)}bufferHighWaterLine(){return D.BUFFER_HIGH_WATER_LINE}}class Su{constructor(e,t,i){var s,r,n,a,o=e["playlistController_"],l=o.fastQualityChange_.bind(o);t.attributes&&(s=t.attributes.RESOLUTION,this.width=s&&s.width,this.height=s&&s.height,this.bandwidth=t.attributes.BANDWIDTH,this.frameRate=t.attributes["FRAME-RATE"]),this.codecs=mh(o.main(),t),this.playlist=t,this.id=i,this.enabled=(r=e.playlists,n=t.id,a=l,e=>{var t=r.main.playlists[n],i=od(t),s=ld(t);return"undefined"==typeof e?s:(e?delete t.disabled:t.disabled=!0,e===s||i||(a(),e?r.trigger("renditionenabled"):r.trigger("renditiondisabled")),e)})}}const wu=["seeking","seeked","pause","playing","error"];class Eu{constructor(e){this.playlistController_=e.playlistController,this.tech_=e.tech,this.seekable=e.seekable,this.allowSeeksWithinUnsafeLiveWindow=e.allowSeeksWithinUnsafeLiveWindow,this.liveRangeSafeTimeDelta=e.liveRangeSafeTimeDelta,this.media=e.media,this.consecutiveUpdates=0,this.lastRecordedTime=null,this.checkCurrentTimeTimeout_=null,this.logger_=Bl("PlaybackWatcher"),this.logger_("initialize");const t=()=>this.monitorCurrentTime_(),i=()=>this.monitorCurrentTime_(),s=()=>this.techWaiting_(),r=()=>this.resetTimeUpdate_(),n=this.playlistController_,a=["main","subtitle","audio"],o={},l=(a.forEach(e=>{o[e]={reset:()=>this.resetSegmentDownloads_(e),updateend:()=>this.checkSegmentDownloads_(e)},n[e+"SegmentLoader_"].on("appendsdone",o[e].updateend),n[e+"SegmentLoader_"].on("playlistupdate",o[e].reset),this.tech_.on(["seeked","seeking"],o[e].reset)}),t=>{["main","audio"].forEach(e=>{n[e+"SegmentLoader_"][t]("appended",this.seekingAppendCheck_)})});this.seekingAppendCheck_=()=>{this.fixesBadSeeks_()&&(this.consecutiveUpdates=0,this.lastRecordedTime=this.tech_.currentTime(),l("off"))},this.clearSeekingAppendCheck_=()=>l("off"),this.watchForBadSeeking_=()=>{this.clearSeekingAppendCheck_(),l("on")},this.tech_.on("seeked",this.clearSeekingAppendCheck_),this.tech_.on("seeking",this.watchForBadSeeking_),this.tech_.on("waiting",s),this.tech_.on(wu,r),this.tech_.on("canplay",i),this.tech_.one("play",t),this.dispose=()=>{this.clearSeekingAppendCheck_(),this.logger_("dispose"),this.tech_.off("waiting",s),this.tech_.off(wu,r),this.tech_.off("canplay",i),this.tech_.off("play",t),this.tech_.off("seeking",this.watchForBadSeeking_),this.tech_.off("seeked",this.clearSeekingAppendCheck_),a.forEach(e=>{n[e+"SegmentLoader_"].off("appendsdone",o[e].updateend),n[e+"SegmentLoader_"].off("playlistupdate",o[e].reset),this.tech_.off(["seeked","seeking"],o[e].reset)}),this.checkCurrentTimeTimeout_&&window.clearTimeout(this.checkCurrentTimeTimeout_),this.resetTimeUpdate_()}}monitorCurrentTime_(){this.checkCurrentTime_(),this.checkCurrentTimeTimeout_&&window.clearTimeout(this.checkCurrentTimeTimeout_),this.checkCurrentTimeTimeout_=window.setTimeout(this.monitorCurrentTime_.bind(this),250)}resetSegmentDownloads_(e){var t=this.playlistController_[e+"SegmentLoader_"];0<this[e+"StalledDownloads_"]&&this.logger_(`resetting possible stalled download count for ${e} loader`),this[e+"StalledDownloads_"]=0,this[e+"Buffered_"]=t.buffered_()}checkSegmentDownloads_(e){var t=this.playlistController_,i=t[e+"SegmentLoader_"],s=i.buffered_(),r=function(t,i){if(t!==i){if(!t&&i||!i&&t)return!0;if(t.length!==i.length)return!0;for(let e=0;e<t.length;e++)if(t.start(e)!==i.start(e)||t.end(e)!==i.end(e))return!0}return!1}(this[e+"Buffered_"],s);this[e+"Buffered_"]=s,r?this.resetSegmentDownloads_(e):(this[e+"StalledDownloads_"]++,this.logger_(`found #${this[e+"StalledDownloads_"]} ${e} appends that did not increase buffer (possible stalled download)`,{playlistId:i.playlist_&&i.playlist_.id,buffered:Yl(s)}),this[e+"StalledDownloads_"]<10||(this.logger_(e+" loader stalled download exclusion"),this.resetSegmentDownloads_(e),this.tech_.trigger({type:"usage",name:`vhs-${e}-download-exclusion`}),"subtitle"!==e&&t.excludePlaylist({error:{message:`Excessive ${e} segment downloading detected.`},playlistExclusionDuration:1/0})))}checkCurrentTime_(){var e,t;if(!this.tech_.paused()&&!this.tech_.seeking())return e=this.tech_.currentTime(),t=this.tech_.buffered(),this.lastRecordedTime===e&&(!t.length||e+zl>=t.end(t.length-1))?this.techWaiting_():void(5<=this.consecutiveUpdates&&e===this.lastRecordedTime?(this.consecutiveUpdates++,this.waiting_()):e===this.lastRecordedTime?this.consecutiveUpdates++:(this.consecutiveUpdates=0,this.lastRecordedTime=e))}resetTimeUpdate_(){this.consecutiveUpdates=0}fixesBadSeeks_(){if(!this.tech_.seeking())return!1;var e=this.seekable(),t=this.tech_.currentTime();let i;if(this.afterSeekableWindow_(e,t,this.media(),this.allowSeeksWithinUnsafeLiveWindow)&&(s=e.end(e.length-1),i=s),this.beforeSeekableWindow_(e,t)&&(s=e.start(0),i=s+(s===e.end(0)?0:zl)),"undefined"!=typeof i)this.logger_(`Trying to seek outside of seekable at time ${t} with `+`seekable range ${Kl(e)}. Seeking to `+i+".");else{var s=this.playlistController_.sourceUpdater_,e=this.tech_.buffered(),r=s.audioBuffer?s.audioBuffered():null,s=s.videoBuffer?s.videoBuffered():null,n=this.media(),a=n.partTargetDuration||2*(n.targetDuration-Gl),o=[r,s];for(let e=0;e<o.length;e++)if(o[e])if(Vl(o[e],t)<a)return!1;if(0===(n=Hl(e,t)).length)return!1;i=n.start(0)+zl,this.logger_(`Buffered region starts (${n.start(0)}) `+` just beyond seek point (${t}). Seeking to ${i}.`)}return this.tech_.setCurrentTime(i),!0}waiting_(){var e,t;this.techWaiting_()||(e=this.tech_.currentTime(),t=this.tech_.buffered(),(t=jl(t,e)).length&&e+3<=t.end(0)&&(this.resetTimeUpdate_(),this.tech_.setCurrentTime(e),this.logger_(`Stopped at ${e} while inside a buffered region `+`[${t.start(0)} -> ${t.end(0)}]. Attempting to resume `+"playback by seeking to the current time."),this.tech_.trigger({type:"usage",name:"vhs-unknown-waiting"})))}techWaiting_(){var e,t=this.seekable(),i=this.tech_.currentTime();return!!this.tech_.seeking()||(this.beforeSeekableWindow_(t,i)?(t=t.end(t.length-1),this.logger_(`Fell out of live window at time ${i}. Seeking to `+"live point (seekable end) "+t),this.resetTimeUpdate_(),this.tech_.setCurrentTime(t),this.tech_.trigger({type:"usage",name:"vhs-live-resync"}),!0):(t=this.tech_.vhs.playlistController_.sourceUpdater_,e=this.tech_.buffered(),this.videoUnderflow_({audioBuffered:t.audioBuffered(),videoBuffered:t.videoBuffered(),currentTime:i})?(this.resetTimeUpdate_(),this.tech_.setCurrentTime(i),this.tech_.trigger({type:"usage",name:"vhs-video-underflow"}),!0):0<(t=Hl(e,i)).length&&(this.logger_(`Stopped at ${i} and seeking to `+t.start(0)),this.resetTimeUpdate_(),this.skipTheGap_(i),!0)))}afterSeekableWindow_(e,t,i,s=!1){if(!e.length)return!1;let r=e.end(e.length-1)+zl;var n=!i.endList;return t>(r=n&&s?e.end(e.length-1)+3*i.targetDuration:r)}beforeSeekableWindow_(e,t){return!!(e.length&&0<e.start(0)&&t<e.start(0)-this.liveRangeSafeTimeDelta)}videoUnderflow_({videoBuffered:t,audioBuffered:i,currentTime:s}){if(t){let e;var r,n;return t.length&&i.length?(r=jl(t,s-3),n=jl(t,s),(i=jl(i,s)).length&&!n.length&&r.length&&(e={start:r.end(0),end:i.end(0)})):Hl(t,s).length||(e=this.gapFromVideoUnderflow_(t,s)),!!e&&(this.logger_(`Encountered a gap in video from ${e.start} to ${e.end}. `+"Seeking to current time "+s),!0)}}skipTheGap_(e){var t=this.tech_.buffered(),i=this.tech_.currentTime(),t=Hl(t,i);this.resetTimeUpdate_(),0!==t.length&&i===e&&(this.logger_("skipTheGap_:","currentTime:",i,"scheduled currentTime:",e,"nextRange start:",t.start(0)),this.tech_.setCurrentTime(t.start(0)+Gl),this.tech_.trigger({type:"usage",name:"vhs-gap-skip"}))}gapFromVideoUnderflow_(e,t){var i=function(t){if(t.length<2)return Fl();var i=[];for(let e=1;e<t.length;e++){var s=t.end(e-1),r=t.start(e);i.push([s,r])}return Fl(i)}(e);for(let e=0;e<i.length;e++){var s=i.start(e),r=i.end(e);if(t-s<4&&2<t-s)return{start:s,end:r}}return null}}const ku={errorInterval:30,getSource(e){return e(this.tech({IWillNotUseThisInPlugins:!0}).currentSource_||this.currentSource())}},Cu=function(t,e){let i=0,s=0;function r(e){null!=e&&(s=t.duration()!==1/0&&t.currentTime()||0,t.one("loadedmetadata",l),t.src(e),t.trigger({type:"usage",name:"vhs-error-reload"}),t.play())}function n(){if(Date.now()-i<1e3*o.errorInterval)t.trigger({type:"usage",name:"vhs-error-reload-canceled"});else{if(o.getSource&&"function"==typeof o.getSource)return i=Date.now(),o.getSource.call(t,r);T.log.error("ERROR: reloadSourceOnError - The option getSource must be a function!")}}function a(){t.off("loadedmetadata",l),t.off("error",n),t.off("dispose",a)}const o=O(ku,e),l=(t.ready(()=>{t.trigger({type:"usage",name:"vhs-error-reload-initialized"})}),function(){s&&t.currentTime(s)});t.on("error",n),t.on("dispose",a),t.reloadSourceOnError=function(e){a(),Cu(t,e)}};function Iu(t,e){var i=e.media();let s=-1;for(let e=0;e<t.length;e++)if(t[e].id===i.id){s=e;break}t.selectedIndex_=s,t.trigger({selectedIndex:s,type:"change"})}const N={PlaylistLoader:Cd,Playlist:md,utils:Or,STANDARD_PLAYLIST_SELECTOR:Rh,INITIAL_PLAYLIST_SELECTOR:function(){var e=this.playlists.main.playlists.filter(md.isEnabled),e=(Nh(e,(e,t)=>fh(e,t)),e.filter(e=>!!mh(this.playlists.main,e).video));return e[0]||null},lastBandwidthSelector:Rh,movingAverageBandwidthSelector:function(t){let i=-1,s=-1;if(t<0||1<t)throw new Error("Moving average bandwidth decay must be between 0 and 1.");return function(){var e=this.useDevicePixelRatio&&window.devicePixelRatio||1;return i<0&&(i=this.systemBandwidth,s=this.systemBandwidth),0<this.systemBandwidth&&this.systemBandwidth!==s&&(i=t*this.systemBandwidth+(1-t)*i,s=this.systemBandwidth),Mh(this.playlists.main,i,parseInt(gh(this.tech_.el(),"width"),10)*e,parseInt(gh(this.tech_.el(),"height"),10)*e,this.limitRenditionByPlayerDimensions,this.playlistController_)}},comparePlaylistBandwidth:fh,comparePlaylistResolution:function(e,t){let i,s;return i=(i=e.attributes.RESOLUTION&&e.attributes.RESOLUTION.width?e.attributes.RESOLUTION.width:i)||window.Number.MAX_VALUE,s=(s=t.attributes.RESOLUTION&&t.attributes.RESOLUTION.width?t.attributes.RESOLUTION.width:s)||window.Number.MAX_VALUE,i===s&&e.attributes.BANDWIDTH&&t.attributes.BANDWIDTH?e.attributes.BANDWIDTH-t.attributes.BANDWIDTH:i-s},xhr:xd()},xu=(Object.keys(D).forEach(t=>{Object.defineProperty(N,t,{get(){return T.log.warn(`using Vhs.${t} is UNSAFE be sure you know what you are doing`),D[t]},set(e){T.log.warn(`using Vhs.${t} is UNSAFE be sure you know what you are doing`),"number"!=typeof e||e<0?T.log.warn(`value of Vhs.${t} must be greater than or equal to 0`):D[t]=e}})}),"videojs-vhs"),Au=(N.canPlaySource=function(){return T.log.warn("VHS is no longer a tech. Please remove it from your player's techOrder.")},({player:s,sourceKeySystems:e,audioMedia:t,mainPlaylists:i})=>{if(!s.eme.initializeMediaKeys)return Promise.resolve();var r,t=t?i.concat([t]):i,t=(i=t,r=Object.keys(e),i.reduce((e,s)=>{var t;return s.contentProtection&&(t=r.reduce((e,t)=>{var i=s.contentProtection[t];return i&&i.pssh&&(e[t]={pssh:i.pssh}),e},{}),Object.keys(t).length)&&e.push(t),e},[]));const n=[],a=[];return t.forEach(e=>{a.push(new Promise((e,t)=>{s.tech_.one("keysessioncreated",e)})),n.push(new Promise((t,i)=>{s.eme.initializeMediaKeys({keySystems:e},e=>{e?i(e):t()})}))}),Promise.race([Promise.all(n),Promise.race(a)])}),Pu=({player:e,sourceKeySystems:t,media:i,audioMedia:s})=>{t=((e,t,i)=>{if(!e)return e;let s={};t&&t.attributes&&t.attributes.CODECS&&(s=Lh(Un(t.attributes.CODECS))),i&&i.attributes&&i.attributes.CODECS&&(s.audio=i.attributes.CODECS);var r=Bn(s.video),n=Bn(s.audio),a={};for(const o in e)a[o]={},n&&(a[o].audioContentType=n),r&&(a[o].videoContentType=r),t.contentProtection&&t.contentProtection[o]&&t.contentProtection[o].pssh&&(a[o].pssh=t.contentProtection[o].pssh),"string"==typeof e[o]&&(a[o].url=e[o]);return O(e,a)})(t,i,s);return!(!t||(e.currentSource().keySystems=t)&&!e.eme&&(T.log.warn("DRM encrypted source cannot be decrypted without a DRM plugin"),1))},Lu=()=>{if(!window.localStorage)return null;var e=window.localStorage.getItem(xu);if(!e)return null;try{return JSON.parse(e)}catch(e){return null}};N.supportsNativeHls=function(){if(!document||!document.createElement)return!1;const t=document.createElement("video");return!!T.getTech("Html5").isSupported()&&["application/vnd.apple.mpegurl","audio/mpegurl","audio/x-mpegurl","application/x-mpegurl","video/x-mpegurl","video/mpegurl","application/mpegurl"].some(function(e){return/maybe|probably/i.test(t.canPlayType(e))})}(),N.supportsNativeDash=!!(document&&document.createElement&&T.getTech("Html5").isSupported())&&/maybe|probably/i.test(document.createElement("video").canPlayType("application/dash+xml")),N.supportsTypeNatively=e=>"hls"===e?N.supportsNativeHls:"dash"===e&&N.supportsNativeDash,N.isSupported=function(){return T.log.warn("VHS is no longer a tech. Please remove it from your player's techOrder.")};class Ou extends T.getComponent("Component"){constructor(e,t,i){if(super(t,i.vhs),"number"==typeof i.initialBandwidth&&(this.options_.bandwidth=i.initialBandwidth),this.logger_=Bl("VhsHandler"),t.options_&&t.options_.playerId&&(i=T.getPlayer(t.options_.playerId),this.player_=i),this.tech_=t,this.source_=e,this.stats={},this.ignoreNextSeekingEvent_=!1,this.setOptions_(),this.options_.overrideNative&&t.overrideNativeAudioTracks&&t.overrideNativeVideoTracks)t.overrideNativeAudioTracks(!0),t.overrideNativeVideoTracks(!0);else if(this.options_.overrideNative&&(t.featuresNativeVideoTracks||t.featuresNativeAudioTracks))throw new Error("Overriding native VHS requires emulated tracks. See https://git.io/vMpjB");this.on(document,["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"],e=>{var t=document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement;t&&t.contains(this.tech_.el())?this.playlistController_.fastQualityChange_():this.playlistController_.checkABR_()}),this.on(this.tech_,"seeking",function(){this.ignoreNextSeekingEvent_?this.ignoreNextSeekingEvent_=!1:this.setCurrentTime(this.tech_.currentTime())}),this.on(this.tech_,"error",function(){this.tech_.error()&&this.playlistController_&&this.playlistController_.pauseLoading()}),this.on(this.tech_,"play",this.play)}setOptions_(){var e;this.options_.withCredentials=this.options_.withCredentials||!1,this.options_.limitRenditionByPlayerDimensions=!1!==this.options_.limitRenditionByPlayerDimensions,this.options_.useDevicePixelRatio=this.options_.useDevicePixelRatio||!1,this.options_.useBandwidthFromLocalStorage="undefined"!=typeof this.source_.useBandwidthFromLocalStorage?this.source_.useBandwidthFromLocalStorage:this.options_.useBandwidthFromLocalStorage||!1,this.options_.useNetworkInformationApi=this.options_.useNetworkInformationApi||!1,this.options_.useDtsForTimestampOffset=this.options_.useDtsForTimestampOffset||!1,this.options_.customTagParsers=this.options_.customTagParsers||[],this.options_.customTagMappers=this.options_.customTagMappers||[],this.options_.cacheEncryptionKeys=this.options_.cacheEncryptionKeys||!1,this.options_.llhls=!1!==this.options_.llhls,this.options_.bufferBasedABR=this.options_.bufferBasedABR||!1,"number"!=typeof this.options_.playlistExclusionDuration&&(this.options_.playlistExclusionDuration=300),"number"!=typeof this.options_.bandwidth&&this.options_.useBandwidthFromLocalStorage&&((e=Lu())&&e.bandwidth&&(this.options_.bandwidth=e.bandwidth,this.tech_.trigger({type:"usage",name:"vhs-bandwidth-from-local-storage"})),e)&&e.throughput&&(this.options_.throughput=e.throughput,this.tech_.trigger({type:"usage",name:"vhs-throughput-from-local-storage"})),"number"!=typeof this.options_.bandwidth&&(this.options_.bandwidth=D.INITIAL_BANDWIDTH),this.options_.enableLowInitialPlaylist=this.options_.enableLowInitialPlaylist&&this.options_.bandwidth===D.INITIAL_BANDWIDTH,["withCredentials","useDevicePixelRatio","limitRenditionByPlayerDimensions","bandwidth","customTagParsers","customTagMappers","cacheEncryptionKeys","playlistSelector","initialPlaylistSelector","bufferBasedABR","liveRangeSafeTimeDelta","llhls","useNetworkInformationApi","useDtsForTimestampOffset","exactManifestTimings","leastPixelDiffSelector"].forEach(e=>{"undefined"!=typeof this.source_[e]&&(this.options_[e]=this.source_[e])}),this.limitRenditionByPlayerDimensions=this.options_.limitRenditionByPlayerDimensions,this.useDevicePixelRatio=this.options_.useDevicePixelRatio}src(e,t){e&&(this.setOptions_(),this.options_.src=0===(e=this.source_.src).toLowerCase().indexOf("data:application/vnd.videojs.vhs+json,")?JSON.parse(e.substring(e.indexOf(",")+1)):e,this.options_.tech=this.tech_,this.options_.externVhs=N,this.options_.sourceType=An(t),this.options_.seekTo=e=>{this.tech_.setCurrentTime(e)},this.playlistController_=new Tu(this.options_),e=O({liveRangeSafeTimeDelta:zl},this.options_,{seekable:()=>this.seekable(),media:()=>this.playlistController_.media(),playlistController:this.playlistController_}),this.playbackWatcher_=new Eu(e),this.playlistController_.on("error",()=>{var e=T.players[this.tech_.options_.playerId];let t=this.playlistController_.error;"object"!=typeof t||t.code?"string"==typeof t&&(t={message:t,code:3}):t.code=3,e.error(t)}),t=this.options_.bufferBasedABR?N.movingAverageBandwidthSelector(.55):N.STANDARD_PLAYLIST_SELECTOR,this.playlistController_.selectPlaylist=(this.selectPlaylist||t).bind(this),this.playlistController_.selectInitialPlaylist=N.INITIAL_PLAYLIST_SELECTOR.bind(this),this.playlists=this.playlistController_.mainPlaylistLoader_,this.mediaSource=this.playlistController_.mediaSource,Object.defineProperties(this,{selectPlaylist:{get(){return this.playlistController_.selectPlaylist},set(e){this.playlistController_.selectPlaylist=e.bind(this)}},throughput:{get(){return this.playlistController_.mainSegmentLoader_.throughput.rate},set(e){this.playlistController_.mainSegmentLoader_.throughput.rate=e,this.playlistController_.mainSegmentLoader_.throughput.count=1}},bandwidth:{get(){let e=this.playlistController_.mainSegmentLoader_.bandwidth;var t=window.navigator.connection||window.navigator.mozConnection||window.navigator.webkitConnection;return this.options_.useNetworkInformationApi&&t&&(t=1e3*t.downlink*1e3,e=1e7<=t&&1e7<=e?Math.max(e,t):t),e},set(e){this.playlistController_.mainSegmentLoader_.bandwidth=e,this.playlistController_.mainSegmentLoader_.throughput={rate:0,count:0}}},systemBandwidth:{get(){var e=1/(this.bandwidth||1);let t;return t=0<this.throughput?1/this.throughput:0,Math.floor(1/(e+t))},set(){T.log.error('The "systemBandwidth" property is read-only')}}}),this.options_.bandwidth&&(this.bandwidth=this.options_.bandwidth),this.options_.throughput&&(this.throughput=this.options_.throughput),Object.defineProperties(this.stats,{bandwidth:{get:()=>this.bandwidth||0,enumerable:!0},mediaRequests:{get:()=>this.playlistController_.mediaRequests_()||0,enumerable:!0},mediaRequestsAborted:{get:()=>this.playlistController_.mediaRequestsAborted_()||0,enumerable:!0},mediaRequestsTimedout:{get:()=>this.playlistController_.mediaRequestsTimedout_()||0,enumerable:!0},mediaRequestsErrored:{get:()=>this.playlistController_.mediaRequestsErrored_()||0,enumerable:!0},mediaTransferDuration:{get:()=>this.playlistController_.mediaTransferDuration_()||0,enumerable:!0},mediaBytesTransferred:{get:()=>this.playlistController_.mediaBytesTransferred_()||0,enumerable:!0},mediaSecondsLoaded:{get:()=>this.playlistController_.mediaSecondsLoaded_()||0,enumerable:!0},mediaAppends:{get:()=>this.playlistController_.mediaAppends_()||0,enumerable:!0},mainAppendsToLoadedData:{get:()=>this.playlistController_.mainAppendsToLoadedData_()||0,enumerable:!0},audioAppendsToLoadedData:{get:()=>this.playlistController_.audioAppendsToLoadedData_()||0,enumerable:!0},appendsToLoadedData:{get:()=>this.playlistController_.appendsToLoadedData_()||0,enumerable:!0},timeToLoadedData:{get:()=>this.playlistController_.timeToLoadedData_()||0,enumerable:!0},buffered:{get:()=>Yl(this.tech_.buffered()),enumerable:!0},currentTime:{get:()=>this.tech_.currentTime(),enumerable:!0},currentSource:{get:()=>this.tech_.currentSource_,enumerable:!0},currentTech:{get:()=>this.tech_.name_,enumerable:!0},duration:{get:()=>this.tech_.duration(),enumerable:!0},main:{get:()=>this.playlists.main,enumerable:!0},playerDimensions:{get:()=>this.tech_.currentDimensions(),enumerable:!0},seekable:{get:()=>Yl(this.tech_.seekable()),enumerable:!0},timestamp:{get:()=>Date.now(),enumerable:!0},videoPlaybackQuality:{get:()=>this.tech_.getVideoPlaybackQuality(),enumerable:!0}}),this.tech_.one("canplay",this.playlistController_.setupFirstPlay.bind(this.playlistController_)),this.tech_.on("bandwidthupdate",()=>{if(this.options_.useBandwidthFromLocalStorage){var e={bandwidth:this.bandwidth,throughput:Math.round(this.throughput)};if(window.localStorage){var t=(t=Lu())?O(t,e):e;try{window.localStorage.setItem(xu,JSON.stringify(t))}catch(e){return}}}}),this.playlistController_.on("selectedinitialmedia",()=>{var i;(i=this).representations=()=>{var e=i.playlistController_.main(),e=pd(e)?i.playlistController_.getAudioTrackPlaylists_():e.playlists;return e?e.filter(e=>!od(e)).map((e,t)=>new Su(i,e,e.id)):[]}}),this.playlistController_.sourceUpdater_.on("createdsourcebuffers",()=>{this.setupEme_()}),this.on(this.playlistController_,"progress",function(){this.tech_.trigger("progress")}),this.on(this.playlistController_,"firstplay",function(){this.ignoreNextSeekingEvent_=!0}),this.setupQualityLevels_(),this.tech_.el())&&(this.mediaSourceUrl_=window.URL.createObjectURL(this.playlistController_.mediaSource),this.tech_.src(this.mediaSourceUrl_))}createKeySessions_(){var e=this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader;this.logger_("waiting for EME key session creation"),Au({player:this.player_,sourceKeySystems:this.source_.keySystems,audioMedia:e&&e.media(),mainPlaylists:this.playlists.main.playlists}).then(()=>{this.logger_("created EME key session"),this.playlistController_.sourceUpdater_.initializedEme()}).catch(e=>{this.logger_("error while creating EME key session",e),this.player_.error({message:"Failed to initialize media keys for EME",code:3})})}handleWaitingForKey_(){this.logger_("waitingforkey fired, attempting to create any new key sessions"),this.createKeySessions_()}setupEme_(){var e=this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader,e=Pu({player:this.player_,sourceKeySystems:this.source_.keySystems,media:this.playlists.media(),audioMedia:e&&e.media()});this.player_.tech_.on("keystatuschange",e=>{if("output-restricted"===e.status){e=this.playlistController_.main();if(e&&e.playlists){const t=[];e.playlists.forEach(e=>{e&&e.attributes&&e.attributes.RESOLUTION&&720<=e.attributes.RESOLUTION.height&&(!e.excludeUntil||e.excludeUntil<1/0)&&(e.excludeUntil=1/0,t.push(e))}),t.length&&(T.log.warn('DRM keystatus changed to "output-restricted." Removing the following HD playlists that will most likely fail to play and clearing the buffer. This may be due to HDCP restrictions on the stream and the capabilities of the current device.',...t),this.playlistController_.fastQualityChange_())}}}),this.handleWaitingForKey_=this.handleWaitingForKey_.bind(this),this.player_.tech_.on("waitingforkey",this.handleWaitingForKey_),11!==T.browser.IE_VERSION&&e?this.createKeySessions_():this.playlistController_.sourceUpdater_.initializedEme()}setupQualityLevels_(){var e=T.players[this.tech_.options_.playerId];e&&e.qualityLevels&&!this.qualityLevels_&&(this.qualityLevels_=e.qualityLevels(),this.playlistController_.on("selectedinitialmedia",()=>{var t,e;t=this.qualityLevels_,(e=this).representations().forEach(e=>{t.addQualityLevel(e)}),Iu(t,e.playlists)}),this.playlists.on("mediachange",()=>{Iu(this.qualityLevels_,this.playlists)}))}static version(){return{"@videojs/http-streaming":"3.0.2","mux.js":"6.3.0","mpd-parser":"1.0.1","m3u8-parser":"6.0.0","aes-decrypter":"4.0.1"}}version(){return this.constructor.version()}canChangeType(){return iu.canChangeType()}play(){this.playlistController_.play()}setCurrentTime(e){this.playlistController_.setCurrentTime(e)}duration(){return this.playlistController_.duration()}seekable(){return this.playlistController_.seekable()}dispose(){this.playbackWatcher_&&this.playbackWatcher_.dispose(),this.playlistController_&&this.playlistController_.dispose(),this.qualityLevels_&&this.qualityLevels_.dispose(),this.tech_&&this.tech_.vhs&&delete this.tech_.vhs,this.mediaSourceUrl_&&window.URL.revokeObjectURL&&(window.URL.revokeObjectURL(this.mediaSourceUrl_),this.mediaSourceUrl_=null),this.tech_&&this.tech_.off("waitingforkey",this.handleWaitingForKey_),super.dispose()}convertToProgramTime(e,t){return Fd({playlist:this.playlistController_.media(),time:e,callback:t})}seekToProgramTime(e,t,i=!0,s=2){return jd({programTime:e,playlist:this.playlistController_.media(),retryCount:s,pauseAfterSeek:i,seekTo:this.options_.seekTo,tech:this.options_.tech,callback:t})}}const Du={name:"videojs-http-streaming",VERSION:"3.0.2",canHandleSource(e,t={}){t=O(T.options,t);return Du.canPlayType(e.type,t)},handleSource(e,t,i={}){i=O(T.options,i);return t.vhs=new Ou(e,t,i),t.vhs.xhr=xd(),t.vhs.src(e.src,e.type),t.vhs},canPlayType(e,t){e=An(e);return e&&(t=Du.getOverrideNative(t),!N.supportsTypeNatively(e)||t)?"maybe":""},getOverrideNative(e={}){var{vhs:e={}}=e,t=!(T.browser.IS_ANY_SAFARI||T.browser.IS_IOS),{overrideNative:e=t}=e;return e}};return In("avc1.4d400d,mp4a.40.2")&&T.getTech("Html5").registerSourceHandler(Du,0),T.VhsHandler=Ou,T.VhsSourceHandler=Du,T.Vhs=N,T.use||T.registerComponent("Vhs",N),T.options.vhs=T.options.vhs||{},T.getPlugin&&T.getPlugin("reloadSourceOnError")||T.registerPlugin("reloadSourceOnError",function(e){Cu(this,e)}),T});!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.flvjs=t():e.flvjs=t()}(self,(function(){return function(){var e={264:function(e,t,i){
- e.exports=function(){"use strict";function e(e){var t=typeof e;return null!==e&&("object"===t||"function"===t)}function t(e){return"function"==typeof e}var n=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},r=0,s=void 0,o=void 0,a=function(e,t){E[r]=e,E[r+1]=t,2===(r+=2)&&(o?o(b):R())};function h(e){o=e}function u(e){a=e}var d="undefined"!=typeof window?window:void 0,l=d||{},c=l.MutationObserver||l.WebKitMutationObserver,_="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function p(){return function(){return process.nextTick(b)}}function m(){return void 0!==s?function(){s(b)}:y()}function g(){var e=0,t=new c(b),i=document.createTextNode("");return t.observe(i,{characterData:!0}),function(){i.data=e=++e%2}}function v(){var e=new MessageChannel;return e.port1.onmessage=b,function(){return e.port2.postMessage(0)}}function y(){var e=setTimeout;return function(){return e(b,1)}}var E=new Array(1e3);function b(){for(var e=0;e<r;e+=2)(0,E[e])(E[e+1]),E[e]=void 0,E[e+1]=void 0;r=0}function S(){try{var e=Function("return this")().require("vertx");return s=e.runOnLoop||e.runOnContext,m()}catch(e){return y()}}var R=void 0;function A(e,t){var i=this,n=new this.constructor(O);void 0===n[w]&&W(n);var r=i._state;if(r){var s=arguments[r-1];a((function(){return V(r,n,s,i._result)}))}else F(i,n,e,t);return n}function L(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var i=new t(O);return x(i,e),i}R=_?p():c?g():f?v():void 0===d?S():y();var w=Math.random().toString(36).substring(2);function O(){}var T=void 0,C=1,k=2;function D(){return new TypeError("You cannot resolve a promise with itself")}function B(){return new TypeError("A promises callback cannot return that same promise.")}function I(e,t,i,n){try{e.call(t,i,n)}catch(e){return e}}function M(e,t,i){a((function(e){var n=!1,r=I(i,t,(function(i){n||(n=!0,t!==i?x(e,i):G(e,i))}),(function(t){n||(n=!0,Z(e,t))}),"Settle: "+(e._label||" unknown promise"));!n&&r&&(n=!0,Z(e,r))}),e)}function U(e,t){t._state===C?G(e,t._result):t._state===k?Z(e,t._result):F(t,void 0,(function(t){return x(e,t)}),(function(t){return Z(e,t)}))}function P(e,i,n){i.constructor===e.constructor&&n===A&&i.constructor.resolve===L?U(e,i):void 0===n?G(e,i):t(n)?M(e,i,n):G(e,i)}function x(t,i){if(t===i)Z(t,D());else if(e(i)){var n=void 0;try{n=i.then}catch(e){return void Z(t,e)}P(t,i,n)}else G(t,i)}function N(e){e._onerror&&e._onerror(e._result),j(e)}function G(e,t){e._state===T&&(e._result=t,e._state=C,0!==e._subscribers.length&&a(j,e))}function Z(e,t){e._state===T&&(e._state=k,e._result=t,a(N,e))}function F(e,t,i,n){var r=e._subscribers,s=r.length;e._onerror=null,r[s]=t,r[s+C]=i,r[s+k]=n,0===s&&e._state&&a(j,e)}function j(e){var t=e._subscribers,i=e._state;if(0!==t.length){for(var n=void 0,r=void 0,s=e._result,o=0;o<t.length;o+=3)n=t[o],r=t[o+i],n?V(i,n,r,s):r(s);e._subscribers.length=0}}function V(e,i,n,r){var s=t(n),o=void 0,a=void 0,h=!0;if(s){try{o=n(r)}catch(e){h=!1,a=e}if(i===o)return void Z(i,B())}else o=r;i._state!==T||(s&&h?x(i,o):!1===h?Z(i,a):e===C?G(i,o):e===k&&Z(i,o))}function z(e,t){try{t((function(t){x(e,t)}),(function(t){Z(e,t)}))}catch(t){Z(e,t)}}var H=0;function K(){return H++}function W(e){e[w]=H++,e._state=void 0,e._result=void 0,e._subscribers=[]}function q(){return new Error("Array Methods must be provided an Array")}var Y=function(){function e(e,t){this._instanceConstructor=e,this.promise=new e(O),this.promise[w]||W(this.promise),n(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?G(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&G(this.promise,this._result))):Z(this.promise,q())}return e.prototype._enumerate=function(e){for(var t=0;this._state===T&&t<e.length;t++)this._eachEntry(e[t],t)},e.prototype._eachEntry=function(e,t){var i=this._instanceConstructor,n=i.resolve;if(n===L){var r=void 0,s=void 0,o=!1;try{r=e.then}catch(e){o=!0,s=e}if(r===A&&e._state!==T)this._settledAt(e._state,t,e._result);else if("function"!=typeof r)this._remaining--,this._result[t]=e;else if(i===te){var a=new i(O);o?Z(a,s):P(a,e,r),this._willSettleAt(a,t)}else this._willSettleAt(new i((function(t){return t(e)})),t)}else this._willSettleAt(n(e),t)},e.prototype._settledAt=function(e,t,i){var n=this.promise;n._state===T&&(this._remaining--,e===k?Z(n,i):this._result[t]=i),0===this._remaining&&G(n,this._result)},e.prototype._willSettleAt=function(e,t){var i=this;F(e,void 0,(function(e){return i._settledAt(C,t,e)}),(function(e){return i._settledAt(k,t,e)}))},e}();function X(e){return new Y(this,e).promise}function J(e){var t=this;return n(e)?new t((function(i,n){for(var r=e.length,s=0;s<r;s++)t.resolve(e[s]).then(i,n)})):new t((function(e,t){return t(new TypeError("You must pass an array to race."))}))}function Q(e){var t=new this(O);return Z(t,e),t}function $(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function ee(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}var te=function(){function e(t){this[w]=K(),this._result=this._state=void 0,this._subscribers=[],O!==t&&("function"!=typeof t&&$(),this instanceof e?z(this,t):ee())}return e.prototype.catch=function(e){return this.then(null,e)},e.prototype.finally=function(e){var i=this,n=i.constructor;return t(e)?i.then((function(t){return n.resolve(e()).then((function(){return t}))}),(function(t){return n.resolve(e()).then((function(){throw t}))})):i.then(e,e)},e}();function ie(){var e=void 0;if(void 0!==i.g)e=i.g;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var n=null;try{n=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===n&&!t.cast)return}e.Promise=te}return te.prototype.then=A,te.all=X,te.race=J,te.resolve=L,te.reject=Q,te._setScheduler=h,te._setAsap=u,te._asap=a,te.polyfill=ie,te.Promise=te,te}()},716:function(e){"use strict";var t,i="object"==typeof Reflect?Reflect:null,n=i&&"function"==typeof i.apply?i.apply:function(e,t,i){return Function.prototype.apply.call(e,t,i)};t=i&&"function"==typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var r=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,e.exports.once=function(e,t){return new Promise((function(i,n){function r(i){e.removeListener(t,s),n(i)}function s(){"function"==typeof e.removeListener&&e.removeListener("error",r),i([].slice.call(arguments))}p(e,t,s,{once:!0}),"error"!==t&&function(e,t,i){"function"==typeof e.on&&p(e,"error",t,i)}(e,r,{once:!0})}))},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var o=10;function a(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function h(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function u(e,t,i,n){var r,s,o,u;if(a(i),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,i.listener?i.listener:i),s=e._events),o=s[t]),void 0===o)o=s[t]=i,++e._eventsCount;else if("function"==typeof o?o=s[t]=n?[i,o]:[o,i]:n?o.unshift(i):o.push(i),(r=h(e))>0&&o.length>r&&!o.warned){o.warned=!0;var d=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");d.name="MaxListenersExceededWarning",d.emitter=e,d.type=t,d.count=o.length,u=d,console&&console.warn&&console.warn(u)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function l(e,t,i){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:i},r=d.bind(n);return r.listener=i,n.wrapFn=r,r}function c(e,t,i){var n=e._events;if(void 0===n)return[];var r=n[t];return void 0===r?[]:"function"==typeof r?i?[r.listener||r]:[r]:i?function(e){for(var t=new Array(e.length),i=0;i<t.length;++i)t[i]=e[i].listener||e[i];return t}(r):f(r,r.length)}function _(e){var t=this._events;if(void 0!==t){var i=t[e];if("function"==typeof i)return 1;if(void 0!==i)return i.length}return 0}function f(e,t){for(var i=new Array(t),n=0;n<t;++n)i[n]=e[n];return i}function p(e,t,i,n){if("function"==typeof e.on)n.once?e.once(t,i):e.on(t,i);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function r(s){n.once&&e.removeEventListener(t,r),i(s)}))}}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return h(this)},s.prototype.emit=function(e){for(var t=[],i=1;i<arguments.length;i++)t.push(arguments[i]);var r="error"===e,s=this._events;if(void 0!==s)r=r&&void 0===s.error;else if(!r)return!1;if(r){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var h=s[e];if(void 0===h)return!1;if("function"==typeof h)n(h,this,t);else{var u=h.length,d=f(h,u);for(i=0;i<u;++i)n(d[i],this,t)}return!0},s.prototype.addListener=function(e,t){return u(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return u(this,e,t,!0)},s.prototype.once=function(e,t){return a(t),this.on(e,l(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return a(t),this.prependListener(e,l(this,e,t)),this},s.prototype.removeListener=function(e,t){var i,n,r,s,o;if(a(t),void 0===(n=this._events))return this;if(void 0===(i=n[e]))return this;if(i===t||i.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,i.listener||t));else if("function"!=typeof i){for(r=-1,s=i.length-1;s>=0;s--)if(i[s]===t||i[s].listener===t){o=i[s].listener,r=s;break}if(r<0)return this;0===r?i.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(i,r),1===i.length&&(n[e]=i[0]),void 0!==n.removeListener&&this.emit("removeListener",e,o||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,i,n;if(void 0===(i=this._events))return this;if(void 0===i.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==i[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete i[e]),this;if(0===arguments.length){var r,s=Object.keys(i);for(n=0;n<s.length;++n)"removeListener"!==(r=s[n])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=i[e]))this.removeListener(e,t);else if(void 0!==t)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},s.prototype.listeners=function(e){return c(this,e,!0)},s.prototype.rawListeners=function(e){return c(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):_.call(e,t)},s.prototype.listenerCount=_,s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},397:function(e,t,i){function n(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.i=function(e){return e},i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},i.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var n=i(i.s=ENTRY_MODULE);return n.default||n}var r="[\\.|\\-|\\+|\\w|/|@]+",s="\\(\\s*(/\\*.*?\\*/)?\\s*.*?("+r+").*?\\)";function o(e){return(e+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function a(e,t,n){var a={};a[n]=[];var h=t.toString(),u=h.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);if(!u)return a;for(var d,l=u[1],c=new RegExp("(\\\\n|\\W)"+o(l)+s,"g");d=c.exec(h);)"dll-reference"!==d[3]&&a[n].push(d[3]);for(c=new RegExp("\\("+o(l)+'\\("(dll-reference\\s('+r+'))"\\)\\)'+s,"g");d=c.exec(h);)e[d[2]]||(a[n].push(d[1]),e[d[2]]=i(d[1]).m),a[d[2]]=a[d[2]]||[],a[d[2]].push(d[4]);for(var _,f=Object.keys(a),p=0;p<f.length;p++)for(var m=0;m<a[f[p]].length;m++)_=a[f[p]][m],isNaN(1*_)||(a[f[p]][m]=1*a[f[p]][m]);return a}function h(e){return Object.keys(e).reduce((function(t,i){return t||e[i].length>0}),!1)}e.exports=function(e,t){t=t||{};var r={main:i.m},s=t.all?{main:Object.keys(r.main)}:function(e,t){for(var i={main:[t]},n={main:[]},r={main:{}};h(i);)for(var s=Object.keys(i),o=0;o<s.length;o++){var u=s[o],d=i[u].pop();if(r[u]=r[u]||{},!r[u][d]&&e[u][d]){r[u][d]=!0,n[u]=n[u]||[],n[u].push(d);for(var l=a(e,e[u][d],u),c=Object.keys(l),_=0;_<c.length;_++)i[c[_]]=i[c[_]]||[],i[c[_]]=i[c[_]].concat(l[c[_]])}}return n}(r,e),o="";Object.keys(s).filter((function(e){return"main"!==e})).forEach((function(e){for(var t=0;s[e][t];)t++;s[e].push(t),r[e][t]="(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })",o=o+"var "+e+" = ("+n.toString().replace("ENTRY_MODULE",JSON.stringify(t))+")({"+s[e].map((function(t){return JSON.stringify(t)+": "+r[e][t].toString()})).join(",")+"});\n"})),o=o+"new (("+n.toString().replace("ENTRY_MODULE",JSON.stringify(e))+")({"+s.main.map((function(e){return JSON.stringify(e)+": "+r.main[e].toString()})).join(",")+"}))(self);";var u=new window.Blob([o],{type:"text/javascript"});if(t.bare)return u;var d=(window.URL||window.webkitURL||window.mozURL||window.msURL).createObjectURL(u),l=new window.Worker(d);return l.objectURL=d,l}},118:function(e,t){"use strict";var i=function(){function e(){this.mimeType=null,this.duration=null,this.hasAudio=null,this.hasVideo=null,this.audioCodec=null,this.videoCodec=null,this.audioDataRate=null,this.videoDataRate=null,this.audioSampleRate=null,this.audioChannelCount=null,this.width=null,this.height=null,this.fps=null,this.profile=null,this.level=null,this.refFrames=null,this.chromaFormat=null,this.sarNum=null,this.sarDen=null,this.metadata=null,this.segments=null,this.segmentCount=null,this.hasKeyframesIndex=null,this.keyframesIndex=null}return e.prototype.isComplete=function(){var e=!1===this.hasAudio||!0===this.hasAudio&&null!=this.audioCodec&&null!=this.audioSampleRate&&null!=this.audioChannelCount,t=!1===this.hasVideo||!0===this.hasVideo&&null!=this.videoCodec&&null!=this.width&&null!=this.height&&null!=this.fps&&null!=this.profile&&null!=this.level&&null!=this.refFrames&&null!=this.chromaFormat&&null!=this.sarNum&&null!=this.sarDen;return null!=this.mimeType&&null!=this.duration&&null!=this.metadata&&null!=this.hasKeyframesIndex&&e&&t},e.prototype.isSeekable=function(){return!0===this.hasKeyframesIndex},e.prototype.getNearestKeyframe=function(e){if(null==this.keyframesIndex)return null;var t=this.keyframesIndex,i=this._search(t.times,e);return{index:i,milliseconds:t.times[i],fileposition:t.filepositions[i]}},e.prototype._search=function(e,t){var i=0,n=e.length-1,r=0,s=0,o=n;for(t<e[0]&&(i=0,s=o+1);s<=o;){if((r=s+Math.floor((o-s)/2))===n||t>=e[r]&&t<e[r+1]){i=r;break}e[r]<t?s=r+1:o=r-1}return i},e}();t.Z=i},51:function(e,t,i){"use strict";i.d(t,{J1:function(){return o},Vn:function(){return s},Wk:function(){return n},Yy:function(){return r}});var n=function(e,t,i,n,r){this.dts=e,this.pts=t,this.duration=i,this.originalDts=n,this.isSyncPoint=r,this.fileposition=null},r=function(){function e(){this.beginDts=0,this.endDts=0,this.beginPts=0,this.endPts=0,this.originalBeginDts=0,this.originalEndDts=0,this.syncPoints=[],this.firstSample=null,this.lastSample=null}return e.prototype.appendSyncPoint=function(e){e.isSyncPoint=!0,this.syncPoints.push(e)},e}(),s=function(){function e(){this._list=[]}return e.prototype.clear=function(){this._list=[]},e.prototype.appendArray=function(e){var t=this._list;0!==e.length&&(t.length>0&&e[0].originalDts<t[t.length-1].originalDts&&this.clear(),Array.prototype.push.apply(t,e))},e.prototype.getLastSyncPointBeforeDts=function(e){if(0==this._list.length)return null;var t=this._list,i=0,n=t.length-1,r=0,s=0,o=n;for(e<t[0].dts&&(i=0,s=o+1);s<=o;){if((r=s+Math.floor((o-s)/2))===n||e>=t[r].dts&&e<t[r+1].dts){i=r;break}t[r].dts<e?s=r+1:o=r-1}return this._list[i]},e}(),o=function(){function e(e){this._type=e,this._list=[],this._lastAppendLocation=-1}return Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"length",{get:function(){return this._list.length},enumerable:!1,configurable:!0}),e.prototype.isEmpty=function(){return 0===this._list.length},e.prototype.clear=function(){this._list=[],this._lastAppendLocation=-1},e.prototype._searchNearestSegmentBefore=function(e){var t=this._list;if(0===t.length)return-2;var i=t.length-1,n=0,r=0,s=i,o=0;if(e<t[0].originalBeginDts)return o=-1;for(;r<=s;){if((n=r+Math.floor((s-r)/2))===i||e>t[n].lastSample.originalDts&&e<t[n+1].originalBeginDts){o=n;break}t[n].originalBeginDts<e?r=n+1:s=n-1}return o},e.prototype._searchNearestSegmentAfter=function(e){return this._searchNearestSegmentBefore(e)+1},e.prototype.append=function(e){var t=this._list,i=e,n=this._lastAppendLocation,r=0;-1!==n&&n<t.length&&i.originalBeginDts>=t[n].lastSample.originalDts&&(n===t.length-1||n<t.length-1&&i.originalBeginDts<t[n+1].originalBeginDts)?r=n+1:t.length>0&&(r=this._searchNearestSegmentBefore(i.originalBeginDts)+1),this._lastAppendLocation=r,this._list.splice(r,0,i)},e.prototype.getLastSegmentBefore=function(e){var t=this._searchNearestSegmentBefore(e);return t>=0?this._list[t]:null},e.prototype.getLastSampleBefore=function(e){var t=this.getLastSegmentBefore(e);return null!=t?t.lastSample:null},e.prototype.getLastSyncPointBefore=function(e){for(var t=this._searchNearestSegmentBefore(e),i=this._list[t].syncPoints;0===i.length&&t>0;)t--,i=this._list[t].syncPoints;return i.length>0?i[i.length-1]:null},e}()},18:function(e,t,i){"use strict";i.d(t,{Z:function(){return O}});var n=i(716),r=i.n(n),s=i(300),o=i(538),a=i(118);function h(e,t,i){var n=e;if(t+i<n.length){for(;i--;)if(128!=(192&n[++t]))return!1;return!0}return!1}var u,d=function(e){for(var t=[],i=e,n=0,r=e.length;n<r;)if(i[n]<128)t.push(String.fromCharCode(i[n])),++n;else{if(i[n]<192);else if(i[n]<224){if(h(i,n,1))if((s=(31&i[n])<<6|63&i[n+1])>=128){t.push(String.fromCharCode(65535&s)),n+=2;continue}}else if(i[n]<240){if(h(i,n,2))if((s=(15&i[n])<<12|(63&i[n+1])<<6|63&i[n+2])>=2048&&55296!=(63488&s)){t.push(String.fromCharCode(65535&s)),n+=3;continue}}else if(i[n]<248){var s;if(h(i,n,3))if((s=(7&i[n])<<18|(63&i[n+1])<<12|(63&i[n+2])<<6|63&i[n+3])>65536&&s<1114112){s-=65536,t.push(String.fromCharCode(s>>>10|55296)),t.push(String.fromCharCode(1023&s|56320)),n+=4;continue}}t.push(String.fromCharCode(65533)),++n}return t.join("")},l=i(29),c=(u=new ArrayBuffer(2),new DataView(u).setInt16(0,256,!0),256===new Int16Array(u)[0]),_=function(){function e(){}return e.parseScriptData=function(t,i,n){var r={};try{var o=e.parseValue(t,i,n),a=e.parseValue(t,i+o.size,n-o.size);r[o.data]=a.data}catch(e){s.Z.e("AMF",e.toString())}return r},e.parseObject=function(t,i,n){if(n<3)throw new l.rT("Data not enough when parse ScriptDataObject");var r=e.parseString(t,i,n),s=e.parseValue(t,i+r.size,n-r.size),o=s.objectEnd;return{data:{name:r.data,value:s.data},size:r.size+s.size,objectEnd:o}},e.parseVariable=function(t,i,n){return e.parseObject(t,i,n)},e.parseString=function(e,t,i){if(i<2)throw new l.rT("Data not enough when parse String");var n=new DataView(e,t,i).getUint16(0,!c);return{data:n>0?d(new Uint8Array(e,t+2,n)):"",size:2+n}},e.parseLongString=function(e,t,i){if(i<4)throw new l.rT("Data not enough when parse LongString");var n=new DataView(e,t,i).getUint32(0,!c);return{data:n>0?d(new Uint8Array(e,t+4,n)):"",size:4+n}},e.parseDate=function(e,t,i){if(i<10)throw new l.rT("Data size invalid when parse Date");var n=new DataView(e,t,i),r=n.getFloat64(0,!c),s=n.getInt16(8,!c);return{data:new Date(r+=60*s*1e3),size:10}},e.parseValue=function(t,i,n){if(n<1)throw new l.rT("Data not enough when parse Value");var r,o=new DataView(t,i,n),a=1,h=o.getUint8(0),u=!1;try{switch(h){case 0:r=o.getFloat64(1,!c),a+=8;break;case 1:r=!!o.getUint8(1),a+=1;break;case 2:var d=e.parseString(t,i+1,n-1);r=d.data,a+=d.size;break;case 3:r={};var _=0;for(9==(16777215&o.getUint32(n-4,!c))&&(_=3);a<n-4;){var f=e.parseObject(t,i+a,n-a-_);if(f.objectEnd)break;r[f.data.name]=f.data.value,a+=f.size}if(a<=n-3)9===(16777215&o.getUint32(a-1,!c))&&(a+=3);break;case 8:r={},a+=4;_=0;for(9==(16777215&o.getUint32(n-4,!c))&&(_=3);a<n-8;){var p=e.parseVariable(t,i+a,n-a-_);if(p.objectEnd)break;r[p.data.name]=p.data.value,a+=p.size}if(a<=n-3)9===(16777215&o.getUint32(a-1,!c))&&(a+=3);break;case 9:r=void 0,a=1,u=!0;break;case 10:r=[];var m=o.getUint32(1,!c);a+=4;for(var g=0;g<m;g++){var v=e.parseValue(t,i+a,n-a);r.push(v.data),a+=v.size}break;case 11:var y=e.parseDate(t,i+1,n-1);r=y.data,a+=y.size;break;case 12:var E=e.parseString(t,i+1,n-1);r=E.data,a+=E.size;break;default:a=n,s.Z.w("AMF","Unsupported AMF value type "+h)}}catch(e){s.Z.e("AMF",e.toString())}return{data:r,size:a,objectEnd:u}},e}(),f=function(){function e(e){this.TAG="ExpGolomb",this._buffer=e,this._buffer_index=0,this._total_bytes=e.byteLength,this._total_bits=8*e.byteLength,this._current_word=0,this._current_word_bits_left=0}return e.prototype.destroy=function(){this._buffer=null},e.prototype._fillCurrentWord=function(){var e=this._total_bytes-this._buffer_index;if(e<=0)throw new l.rT("ExpGolomb: _fillCurrentWord() but no bytes available");var t=Math.min(4,e),i=new Uint8Array(4);i.set(this._buffer.subarray(this._buffer_index,this._buffer_index+t)),this._current_word=new DataView(i.buffer).getUint32(0,!1),this._buffer_index+=t,this._current_word_bits_left=8*t},e.prototype.readBits=function(e){if(e>32)throw new l.OC("ExpGolomb: readBits() bits exceeded max 32bits!");if(e<=this._current_word_bits_left){var t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}var i=this._current_word_bits_left?this._current_word:0;i>>>=32-this._current_word_bits_left;var n=e-this._current_word_bits_left;this._fillCurrentWord();var r=Math.min(n,this._current_word_bits_left),s=this._current_word>>>32-r;return this._current_word<<=r,this._current_word_bits_left-=r,i=i<<r|s},e.prototype.readBool=function(){return 1===this.readBits(1)},e.prototype.readByte=function(){return this.readBits(8)},e.prototype._skipLeadingZero=function(){var e;for(e=0;e<this._current_word_bits_left;e++)if(0!=(this._current_word&2147483648>>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()},e.prototype.readUEG=function(){var e=this._skipLeadingZero();return this.readBits(e+1)-1},e.prototype.readSEG=function(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)},e}(),p=function(){function e(){}return e._ebsp2rbsp=function(e){for(var t=e,i=t.byteLength,n=new Uint8Array(i),r=0,s=0;s<i;s++)s>=2&&3===t[s]&&0===t[s-1]&&0===t[s-2]||(n[r]=t[s],r++);return new Uint8Array(n.buffer,0,r)},e.parseSPS=function(t){var i=e._ebsp2rbsp(t),n=new f(i);n.readByte();var r=n.readByte();n.readByte();var s=n.readByte();n.readUEG();var o=e.getProfileString(r),a=e.getLevelString(s),h=1,u=420,d=8;if((100===r||110===r||122===r||244===r||44===r||83===r||86===r||118===r||128===r||138===r||144===r)&&(3===(h=n.readUEG())&&n.readBits(1),h<=3&&(u=[0,420,422,444][h]),d=n.readUEG()+8,n.readUEG(),n.readBits(1),n.readBool()))for(var l=3!==h?8:12,c=0;c<l;c++)n.readBool()&&(c<6?e._skipScalingList(n,16):e._skipScalingList(n,64));n.readUEG();var _=n.readUEG();if(0===_)n.readUEG();else if(1===_){n.readBits(1),n.readSEG(),n.readSEG();var p=n.readUEG();for(c=0;c<p;c++)n.readSEG()}var m=n.readUEG();n.readBits(1);var g=n.readUEG(),v=n.readUEG(),y=n.readBits(1);0===y&&n.readBits(1),n.readBits(1);var E=0,b=0,S=0,R=0;n.readBool()&&(E=n.readUEG(),b=n.readUEG(),S=n.readUEG(),R=n.readUEG());var A=1,L=1,w=0,O=!0,T=0,C=0;if(n.readBool()){if(n.readBool()){var k=n.readByte();k>0&&k<16?(A=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][k-1],L=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][k-1]):255===k&&(A=n.readByte()<<8|n.readByte(),L=n.readByte()<<8|n.readByte())}if(n.readBool()&&n.readBool(),n.readBool()&&(n.readBits(4),n.readBool()&&n.readBits(24)),n.readBool()&&(n.readUEG(),n.readUEG()),n.readBool()){var D=n.readBits(32),B=n.readBits(32);O=n.readBool(),w=(T=B)/(C=2*D)}}var I=1;1===A&&1===L||(I=A/L);var M=0,U=0;0===h?(M=1,U=2-y):(M=3===h?1:2,U=(1===h?2:1)*(2-y));var P=16*(g+1),x=16*(v+1)*(2-y);P-=(E+b)*M,x-=(S+R)*U;var N=Math.ceil(P*I);return n.destroy(),n=null,{profile_string:o,level_string:a,bit_depth:d,ref_frames:m,chroma_format:u,chroma_format_string:e.getChromaFormatString(u),frame_rate:{fixed:O,fps:w,fps_den:C,fps_num:T},sar_ratio:{width:A,height:L},codec_size:{width:P,height:x},present_size:{width:N,height:x}}},e._skipScalingList=function(e,t){for(var i=8,n=8,r=0;r<t;r++)0!==n&&(n=(i+e.readSEG()+256)%256),i=0===n?i:n},e.getProfileString=function(e){switch(e){case 66:return"Baseline";case 77:return"Main";case 88:return"Extended";case 100:return"High";case 110:return"High10";case 122:return"High422";case 244:return"High444";default:return"Unknown"}},e.getLevelString=function(e){return(e/10).toFixed(1)},e.getChromaFormatString=function(e){switch(e){case 420:return"4:2:0";case 422:return"4:2:2";case 444:return"4:4:4";default:return"Unknown"}},e}(),m=function(){function e(){}return e.parseSPS=function(t){var i=p._ebsp2rbsp(t),n=new f(i),r={};n.readBits(16),n.readBits(4);var s=n.readBits(3);n.readBits(1),e._hvcc_parse_ptl(n,r,s),n.readUEG();var o=0,a=n.readUEG();3==a&&(o=n.readBits(1)),r.sar_width=r.sar_height=1,r.conf_win_left_offset=r.conf_win_right_offset=r.conf_win_top_offset=r.conf_win_bottom_offset=0,r.def_disp_win_left_offset=r.def_disp_win_right_offset=r.def_disp_win_top_offset=r.def_disp_win_bottom_offset=0;var h=n.readUEG(),u=n.readUEG();n.readBits(1)&&(r.conf_win_left_offset=n.readUEG(),r.conf_win_right_offset=n.readUEG(),r.conf_win_top_offset=n.readUEG(),r.conf_win_bottom_offset=n.readUEG(),1===r.default_display_window_flag&&(r.conf_win_left_offset+r.def_disp_win_left_offset,r.conf_win_right_offset+r.def_disp_win_right_offset,r.conf_win_top_offset+r.def_disp_win_top_offset,r.conf_win_bottom_offset,r.def_disp_win_bottom_offset));var d=n.readUEG()+8;n.readUEG();for(var l=n.readUEG(),c=n.readBits(1)?0:s;c<=s;c++)e._skip_sub_layer_ordering_info(n);n.readUEG(),n.readUEG(),n.readUEG(),n.readUEG(),n.readUEG(),n.readUEG(),n.readBits(1)&&n.readBits(1)&&e._skip_scaling_list_data(n),n.readBits(1),n.readBits(1),n.readBits(1)&&(n.readBits(4),n.readBits(4),n.readUEG(),n.readUEG(),n.readBits(1));var _=[],m=n.readUEG();for(c=0;c<m;c++){var g=e._parse_rps(n,c,m,_);if(g<0)return g}if(n.readBits(1)){var v=n.readUEG();for(c=0;c<v;c++){var y=Math.min(l+4,16);if(y>32){for(var E=y/32,b=y%32,S=0;S<E;S++)n.readBits(32);n.readBits(b)}else n.readBits(y);n.readBits(1)}}n.readBits(1),n.readBits(1),n.readBits(1)&&e._hvcc_parse_vui(n,r,s);var R=e.getProfileString(r.profile_idc),A=e.getLevelString(r.level_idc),L=1;1===r.sar_width&&1===r.sar_height||(L=r.sar_width/r.sar_height);var w=h,O=u,T=1===a&&0===o?2:1;w-=(1!==a&&2!=a||0!==o?1:2)*(r.conf_win_left_offset+r.conf_win_right_offset),O-=T*(r.conf_win_top_offset+r.conf_win_bottom_offset);var C=Math.ceil(w*L);return n.destroy(),n=null,{profile_string:R,level_string:A,profile_idc:r.profile_idc,level_idc:r.level_idc,bit_depth:d,ref_frames:1,chroma_format:a,chroma_format_string:e.getChromaFormatString(a),frame_rate:{fixed:r.fps_fixed,fps:r.fps,fps_den:r.fps_den,fps_num:r.fps_num},sar_ratio:{width:r.sar_width,height:r.sar_height},codec_size:{width:w,height:O},present_size:{width:C,height:O}}},e._hvcc_parse_ptl=function(e,t,i){e.readBits(2);var n=e.readBits(1),r=e.readBits(5);e.readBits(32),e.readBits(32),e.readBits(16);var s=e.readByte();void 0===t.tier_flag||void 0===t.level_idc||t.tier_flag<n?t.level_idc=s:t.level_idc=Math.max(t.level_idc,s),t.profile_idc=Math.max(void 0===t.profile_idc?0:t.profile_idc,r);for(var o=[],a=[],h=0;h<i;h++)o.push(e.readBits(1)),a.push(e.readBits(1));if(i>0)for(h=i;h<8;h++)e.readBits(2);for(h=0;h<i;h++)o[h]&&(e.readBits(32),e.readBits(32),e.readBits(24)),a[h]&&e.readByte()},e._parse_rps=function(e,t,i,n){if(t&&e.readBits(1)){if(t>=i)return-1;e.readBits(1),e.readUEG(),n[t]=0;for(var r=0;r<=n[t-1];r++){var s=0,o=e.readBits(1);o||(s=e.readBits(1)),(o||s)&&n[t]++}}else{var a=e.readUEG(),h=e.readUEG();n[t]=a+h;for(r=0;r<a;r++)e.readUEG(),e.readBits(1);for(r=0;r<h;r++)e.readUEG(),e.readBits(1)}return 0},e._hvcc_parse_vui=function(t,i,n){t.readBits(1)&&255==t.readByte()&&(i.sar_width=t.readBits(16),i.sar_height=t.readBits(16)),t.readBits(1)&&t.readBits(1),t.readBits(1)&&(t.readBits(4),t.readBits(1)&&t.readBits(24)),t.readBits(1)&&(t.readUEG(),t.readUEG()),t.readBits(3),i.default_display_window_flag=t.readBits(1),i.default_display_window_flag&&(i.def_disp_win_left_offset=t.readUEG(),i.def_disp_win_right_offset=t.readUEG(),i.def_disp_win_top_offset=t.readUEG(),i.def_disp_win_bottom_offset=t.readUEG()),t.readBits(1)&&(e._skip_timing_info(t,i),t.readBits(1)&&e._skip_hrd_parameters(t,i,1,n)),t.readBits(1)&&(t.readBits(3),t.readUEG(),t.readUEG(),t.readUEG(),t.readUEG(),t.readUEG())},e._skip_sub_layer_ordering_info=function(e,t){e.readUEG(),e.readUEG(),e.readUEG()},e._skip_scaling_list_data=function(e){for(var t=0;t<4;t++)for(var i=0;i<(3==t?2:6);i++)if(e.readBits(1)){var n=Math.min(64,1<<4+(t<<1));t>1&&e.readSEG();for(var r=0;r<n;r++)e.readSEG()}else e.readUEG()},e._skip_sub_layer_hrd_parameters=function(e,t,i){for(var n=0;n<=t;n++)e.readUEG(),e.readUEG(),i&&(e.readUEG(),e.readUEG()),e.readBits(1)},e._skip_timing_info=function(e,t){t.fps_den=e.readBits(32),t.fps_num=e.readBits(32),t.fps_den>0&&(t.fps=t.fps_num/t.fps_den);var i=0;e.readBits(1)&&(i=e.readUEG())>=0&&(t.fps/=i+1)},e._skip_hrd_parameters=function(t,i,n){var r=0,s=0;if(i&&(r=t.readBits(1),s=t.readBits(1),r||s)){var o=t.readBits(1);o&&t.readBits(19),t.readByte(),o&&t.readBits(4),t.readBits(15)}for(var a=0;a<=n;a++){var h=0,u=0,d=0,l=t.readBits(1);hvcc.fps_fixed=l,l||(d=t.readBits(1)),d?t.readUEG():u=t.readBits(1),u||(h=t.readUEG(t)),r&&e._skip_sub_layer_hrd_parameters(t,h,0),s&&e._skip_sub_layer_hrd_parameters(t,h,0)}},e.getProfileString=function(e){switch(e){case 1:return"Main";case 2:return"Main10";case 3:return"MainSP";case 4:return"Rext";case 9:return"SCC";default:return"Unknown"}},e.getLevelString=function(e){return(e/30).toFixed(1)},e.getChromaFormatString=function(e){switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}},e}(),g=i(600);var v=function(){function e(e,t){this.TAG="FLVDemuxer",this._config=t,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._dataOffset=e.dataOffset,this._firstParse=!0,this._dispatch=!1,this._hasAudio=e.hasAudioTrack,this._hasVideo=e.hasVideoTrack,this._hasAudioFlagOverrided=!1,this._hasVideoFlagOverrided=!1,this._audioInitialMetadataDispatched=!1,this._videoInitialMetadataDispatched=!1,this._mediaInfo=new a.Z,this._mediaInfo.hasAudio=this._hasAudio,this._mediaInfo.hasVideo=this._hasVideo,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._naluLengthSize=4,this._timestampBase=0,this._timescale=1e3,this._duration=0,this._durationOverrided=!1,this._referenceFrameRate={fixed:!0,fps:23.976,fps_num:23976,fps_den:1e3},this._flvSoundRateTable=[5500,11025,22050,44100,48e3],this._mpegSamplingRates=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],this._mpegAudioV10SampleRateTable=[44100,48e3,32e3,0],this._mpegAudioV20SampleRateTable=[22050,24e3,16e3,0],this._mpegAudioV25SampleRateTable=[11025,12e3,8e3,0],this._mpegAudioL1BitRateTable=[0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1],this._mpegAudioL2BitRateTable=[0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],this._mpegAudioL3BitRateTable=[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],this._videoTrack={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this._audioTrack={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._littleEndian=function(){var e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),256===new Int16Array(e)[0]}()}return e.prototype.destroy=function(){this._mediaInfo=null,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._videoTrack=null,this._audioTrack=null,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null},e.probe=function(e){var t=new Uint8Array(e),i={match:!1};if(t.byteLength<4)return i;if(70!==t[0]||76!==t[1]||86!==t[2]||1!==t[3])return i;var n,r,s=(4&t[4])>>>2!=0,o=0!=(1&t[4]),a=(n=t)[r=5]<<24|n[r+1]<<16|n[r+2]<<8|n[r+3];return a<9?i:{match:!0,consumed:a,dataOffset:a,hasAudioTrack:s,hasVideoTrack:o}},e.prototype.bindDataSource=function(e){return e.onDataArrival=this.parseChunks.bind(this),this},Object.defineProperty(e.prototype,"onTrackMetadata",{get:function(){return this._onTrackMetadata},set:function(e){this._onTrackMetadata=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMediaInfo",{get:function(){return this._onMediaInfo},set:function(e){this._onMediaInfo=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMetaDataArrived",{get:function(){return this._onMetaDataArrived},set:function(e){this._onMetaDataArrived=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onScriptDataArrived",{get:function(){return this._onScriptDataArrived},set:function(e){this._onScriptDataArrived=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{get:function(){return this._onError},set:function(e){this._onError=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDataAvailable",{get:function(){return this._onDataAvailable},set:function(e){this._onDataAvailable=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"timestampBase",{get:function(){return this._timestampBase},set:function(e){this._timestampBase=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedDuration",{get:function(){return this._duration},set:function(e){this._durationOverrided=!0,this._duration=e,this._mediaInfo.duration=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedHasAudio",{set:function(e){this._hasAudioFlagOverrided=!0,this._hasAudio=e,this._mediaInfo.hasAudio=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedHasVideo",{set:function(e){this._hasVideoFlagOverrided=!0,this._hasVideo=e,this._mediaInfo.hasVideo=e},enumerable:!1,configurable:!0}),e.prototype.resetMediaInfo=function(){this._mediaInfo=new a.Z},e.prototype._isInitialMetadataDispatched=function(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!(this._hasAudio||!this._hasVideo)&&this._videoInitialMetadataDispatched},e.prototype.parseChunks=function(t,i){if(!(this._onError&&this._onMediaInfo&&this._onTrackMetadata&&this._onDataAvailable))throw new l.rT("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified");var n=0,r=this._littleEndian;if(0===i){if(!(t.byteLength>13))return 0;n=e.probe(t).dataOffset}this._firstParse&&(this._firstParse=!1,i+n!==this._dataOffset&&s.Z.w(this.TAG,"First time parsing but chunk byteStart invalid!"),0!==(o=new DataView(t,n)).getUint32(0,!r)&&s.Z.w(this.TAG,"PrevTagSize0 !== 0 !!!"),n+=4);for(;n<t.byteLength;){this._dispatch=!0;var o=new DataView(t,n);if(n+11+4>t.byteLength)break;var a=o.getUint8(0),h=16777215&o.getUint32(0,!r);if(n+11+h+4>t.byteLength)break;if(8===a||9===a||18===a){var u=o.getUint8(4),d=o.getUint8(5),c=o.getUint8(6)|d<<8|u<<16|o.getUint8(7)<<24;0!==(16777215&o.getUint32(7,!r))&&s.Z.w(this.TAG,"Meet tag which has StreamID != 0!");var _=n+11;switch(a){case 8:this._parseAudioData(t,_,h,c);break;case 9:this._parseVideoData(t,_,h,c,i+n);break;case 18:this._parseScriptData(t,_,h)}var f=o.getUint32(11+h,!r);f!==11+h&&s.Z.w(this.TAG,"Invalid PrevTagSize ".concat(f)),n+=11+h+4}else s.Z.w(this.TAG,"Unsupported tag type ".concat(a,", skipped")),n+=11+h+4}return this._isInitialMetadataDispatched()&&this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack),n},e.prototype._parseScriptData=function(e,t,i){var n=_.parseScriptData(e,t,i);if(n.hasOwnProperty("onMetaData")){if(null==n.onMetaData||"object"!=typeof n.onMetaData)return void s.Z.w(this.TAG,"Invalid onMetaData structure!");this._metadata&&s.Z.w(this.TAG,"Found another onMetaData tag!"),this._metadata=n;var r=this._metadata.onMetaData;if(this._onMetaDataArrived&&this._onMetaDataArrived(Object.assign({},r)),"boolean"==typeof r.hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=r.hasAudio,this._mediaInfo.hasAudio=this._hasAudio),"boolean"==typeof r.hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=r.hasVideo,this._mediaInfo.hasVideo=this._hasVideo),"number"==typeof r.audiodatarate&&(this._mediaInfo.audioDataRate=r.audiodatarate),"number"==typeof r.videodatarate&&(this._mediaInfo.videoDataRate=r.videodatarate),"number"==typeof r.width&&(this._mediaInfo.width=r.width),"number"==typeof r.height&&(this._mediaInfo.height=r.height),"number"==typeof r.duration){if(!this._durationOverrided){var o=Math.floor(r.duration*this._timescale);this._duration=o,this._mediaInfo.duration=o}}else this._mediaInfo.duration=0;if("number"==typeof r.framerate){var a=Math.floor(1e3*r.framerate);if(a>0){var h=a/1e3;this._referenceFrameRate.fixed=!0,this._referenceFrameRate.fps=h,this._referenceFrameRate.fps_num=a,this._referenceFrameRate.fps_den=1e3,this._mediaInfo.fps=h}}if("object"==typeof r.keyframes){this._mediaInfo.hasKeyframesIndex=!0;var u=r.keyframes;this._mediaInfo.keyframesIndex=this._parseKeyframesIndex(u),r.keyframes=null}else this._mediaInfo.hasKeyframesIndex=!1;this._dispatch=!1,this._mediaInfo.metadata=r,s.Z.v(this.TAG,"Parsed onMetaData"),this._mediaInfo.isComplete()&&this._onMediaInfo(this._mediaInfo)}Object.keys(n).length>0&&this._onScriptDataArrived&&this._onScriptDataArrived(Object.assign({},n))},e.prototype._parseKeyframesIndex=function(e){for(var t=[],i=[],n=1;n<e.times.length;n++){var r=this._timestampBase+Math.floor(1e3*e.times[n]);t.push(r),i.push(e.filepositions[n])}return{times:t,filepositions:i}},e.prototype._parseAudioData=function(e,t,i,n){if(i<=1)s.Z.w(this.TAG,"Flv: Invalid audio packet, missing SoundData payload!");else if(!0!==this._hasAudioFlagOverrided||!1!==this._hasAudio){this._littleEndian;var r=new DataView(e,t,i).getUint8(0),o=r>>>4;if(2===o||10===o){var a=0,h=(12&r)>>>2;if(h>=0&&h<=4){a=this._flvSoundRateTable[h];var u=1&r,d=this._audioMetadata,l=this._audioTrack;if(d||(!1===this._hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),(d=this._audioMetadata={}).type="audio",d.id=l.id,d.timescale=this._timescale,d.duration=this._duration,d.audioSampleRate=a,d.channelCount=0===u?1:2),10===o){var c=this._parseAACAudioData(e,t+1,i-1);if(null==c)return;if(0===c.packetType){d.config&&s.Z.w(this.TAG,"Found another AudioSpecificConfig!");var _=c.data;d.audioSampleRate=_.samplingRate,d.channelCount=_.channelCount,d.codec=_.codec,d.originalCodec=_.originalCodec,d.config=_.config,d.refSampleDuration=1024/d.audioSampleRate*d.timescale,s.Z.v(this.TAG,"Parsed AudioSpecificConfig"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",d),(m=this._mediaInfo).audioCodec=d.originalCodec,m.audioSampleRate=d.audioSampleRate,m.audioChannelCount=d.channelCount,m.hasVideo?null!=m.videoCodec&&(m.mimeType='video/x-flv; codecs="'+m.videoCodec+","+m.audioCodec+'"'):m.mimeType='video/x-flv; codecs="'+m.audioCodec+'"',m.isComplete()&&this._onMediaInfo(m)}else if(1===c.packetType){var f=this._timestampBase+n,p={unit:c.data,length:c.data.byteLength,dts:f,pts:f};l.samples.push(p),l.length+=c.data.length}else s.Z.e(this.TAG,"Flv: Unsupported AAC data type ".concat(c.packetType))}else if(2===o){if(!d.codec){var m;if(null==(_=this._parseMP3AudioData(e,t+1,i-1,!0)))return;d.audioSampleRate=_.samplingRate,d.channelCount=_.channelCount,d.codec=_.codec,d.originalCodec=_.originalCodec,d.refSampleDuration=1152/d.audioSampleRate*d.timescale,s.Z.v(this.TAG,"Parsed MPEG Audio Frame Header"),this._audioInitialMetadataDispatched=!0,this._onTrackMetadata("audio",d),(m=this._mediaInfo).audioCodec=d.codec,m.audioSampleRate=d.audioSampleRate,m.audioChannelCount=d.channelCount,m.audioDataRate=_.bitRate,m.hasVideo?null!=m.videoCodec&&(m.mimeType='video/x-flv; codecs="'+m.videoCodec+","+m.audioCodec+'"'):m.mimeType='video/x-flv; codecs="'+m.audioCodec+'"',m.isComplete()&&this._onMediaInfo(m)}var v=this._parseMP3AudioData(e,t+1,i-1,!1);if(null==v)return;f=this._timestampBase+n;var y={unit:v,length:v.byteLength,dts:f,pts:f};l.samples.push(y),l.length+=v.length}}else this._onError(g.Z.FORMAT_ERROR,"Flv: Invalid audio sample rate idx: "+h)}else this._onError(g.Z.CODEC_UNSUPPORTED,"Flv: Unsupported audio codec idx: "+o)}},e.prototype._parseAACAudioData=function(e,t,i){if(!(i<=1)){var n={},r=new Uint8Array(e,t,i);return n.packetType=r[0],0===r[0]?n.data=this._parseAACAudioSpecificConfig(e,t+1,i-1):n.data=r.subarray(1),n}s.Z.w(this.TAG,"Flv: Invalid AAC packet, missing AACPacketType or/and Data!")},e.prototype._parseAACAudioSpecificConfig=function(e,t,i){var n,r,s=new Uint8Array(e,t,i),o=null,a=0,h=null;if(a=n=s[0]>>>3,(r=(7&s[0])<<1|s[1]>>>7)<0||r>=this._mpegSamplingRates.length)this._onError(g.Z.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!");else{var u=this._mpegSamplingRates[r],d=(120&s[1])>>>3;if(!(d<0||d>=8)){5===a&&(h=(7&s[1])<<1|s[2]>>>7,(124&s[2])>>>2);var l=self.navigator.userAgent.toLowerCase();return-1!==l.indexOf("firefox")?r>=6?(a=5,o=new Array(4),h=r-3):(a=2,o=new Array(2),h=r):-1!==l.indexOf("android")?(a=2,o=new Array(2),h=r):(a=5,h=r,o=new Array(4),r>=6?h=r-3:1===d&&(a=2,o=new Array(2),h=r)),o[0]=a<<3,o[0]|=(15&r)>>>1,o[1]=(15&r)<<7,o[1]|=(15&d)<<3,5===a&&(o[1]|=(15&h)>>>1,o[2]=(1&h)<<7,o[2]|=8,o[3]=0),{config:o,samplingRate:u,channelCount:d,codec:"mp4a.40."+a,originalCodec:"mp4a.40."+n}}this._onError(g.Z.FORMAT_ERROR,"Flv: AAC invalid channel configuration")}},e.prototype._parseMP3AudioData=function(e,t,i,n){if(!(i<4)){this._littleEndian;var r=new Uint8Array(e,t,i),o=null;if(n){if(255!==r[0])return;var a=r[1]>>>3&3,h=(6&r[1])>>1,u=(240&r[2])>>>4,d=(12&r[2])>>>2,l=3!==(r[3]>>>6&3)?2:1,c=0,_=0;switch(a){case 0:c=this._mpegAudioV25SampleRateTable[d];break;case 2:c=this._mpegAudioV20SampleRateTable[d];break;case 3:c=this._mpegAudioV10SampleRateTable[d]}switch(h){case 1:34,u<this._mpegAudioL3BitRateTable.length&&(_=this._mpegAudioL3BitRateTable[u]);break;case 2:33,u<this._mpegAudioL2BitRateTable.length&&(_=this._mpegAudioL2BitRateTable[u]);break;case 3:32,u<this._mpegAudioL1BitRateTable.length&&(_=this._mpegAudioL1BitRateTable[u])}o={bitRate:_,samplingRate:c,channelCount:l,codec:"mp3",originalCodec:"mp3"}}else o=r;return o}s.Z.w(this.TAG,"Flv: Invalid MP3 packet, header missing!")},e.prototype._parseVideoData=function(e,t,i,n,r){if(i<=1)s.Z.w(this.TAG,"Flv: Invalid video packet, missing VideoData payload!");else if(!0!==this._hasVideoFlagOverrided||!1!==this._hasVideo){var o=new Uint8Array(e,t,i)[0],a=(240&o)>>>4,h=15&o;if(7===h)this._parseAVCVideoPacket(e,t+1,i-1,n,r,a);else{if(12!==h)return void this._onError(g.Z.CODEC_UNSUPPORTED,"Flv: Unsupported codec in video frame: ".concat(h));this._parseHVCVideoPacket(e,t+1,i-1,n,r,a)}}},e.prototype._parseAVCVideoPacket=function(e,t,i,n,r,o){if(i<4)s.Z.w(this.TAG,"Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime");else{var a=this._littleEndian,h=new DataView(e,t,i),u=h.getUint8(0),d=(16777215&h.getUint32(0,!a))<<8>>8;if(0===u)this._parseAVCDecoderConfigurationRecord(e,t+4,i-4);else if(1===u)this._parseAVCVideoData(e,t+4,i-4,n,r,o,d);else if(2!==u)return void this._onError(g.Z.FORMAT_ERROR,"Flv: Invalid video packet type ".concat(u))}},e.prototype._parseAVCDecoderConfigurationRecord=function(e,t,i){if(i<7)s.Z.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");else{var n=this._videoMetadata,r=this._videoTrack,o=this._littleEndian,a=new DataView(e,t,i);n?void 0!==n.avcc&&s.Z.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),(n=this._videoMetadata={}).type="video",n.id=r.id,n.timescale=this._timescale,n.duration=this._duration);var h=a.getUint8(0),u=a.getUint8(1);a.getUint8(2),a.getUint8(3);if(1===h&&0!==u)if(this._naluLengthSize=1+(3&a.getUint8(4)),3===this._naluLengthSize||4===this._naluLengthSize){var d=31&a.getUint8(5);if(0!==d){d>1&&s.Z.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = ".concat(d));for(var l=6,c=0;c<d;c++){var _=a.getUint16(l,!o);if(l+=2,0!==_){var f=new Uint8Array(e,t+l,_);l+=_;var m=p.parseSPS(f);if(0===c){n.codecWidth=m.codec_size.width,n.codecHeight=m.codec_size.height,n.presentWidth=m.present_size.width,n.presentHeight=m.present_size.height,n.profile=m.profile_string,n.level=m.level_string,n.bitDepth=m.bit_depth,n.chromaFormat=m.chroma_format,n.sarRatio=m.sar_ratio,n.frameRate=m.frame_rate,!1!==m.frame_rate.fixed&&0!==m.frame_rate.fps_num&&0!==m.frame_rate.fps_den||(n.frameRate=this._referenceFrameRate);var v=n.frameRate.fps_den,y=n.frameRate.fps_num;n.refSampleDuration=n.timescale*(v/y);for(var E=f.subarray(1,4),b="avc1.",S=0;S<3;S++){var R=E[S].toString(16);R.length<2&&(R="0"+R),b+=R}n.codec=b;var A=this._mediaInfo;A.width=n.codecWidth,A.height=n.codecHeight,A.fps=n.frameRate.fps,A.profile=n.profile,A.level=n.level,A.refFrames=m.ref_frames,A.chromaFormat=m.chroma_format_string,A.sarNum=n.sarRatio.width,A.sarDen=n.sarRatio.height,A.videoCodec=b,A.hasAudio?null!=A.audioCodec&&(A.mimeType='video/x-flv; codecs="'+A.videoCodec+","+A.audioCodec+'"'):A.mimeType='video/x-flv; codecs="'+A.videoCodec+'"',A.isComplete()&&this._onMediaInfo(A)}}}var L=a.getUint8(l);if(0!==L){L>1&&s.Z.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = ".concat(L)),l++;for(c=0;c<L;c++){_=a.getUint16(l,!o);l+=2,0!==_&&(l+=_)}n.avcc=new Uint8Array(i),n.avcc.set(new Uint8Array(e,t,i),0),s.Z.v(this.TAG,"Parsed AVCDecoderConfigurationRecord"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._videoInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("video",n)}else this._onError(g.Z.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord: No PPS")}else this._onError(g.Z.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord: No SPS")}else this._onError(g.Z.FORMAT_ERROR,"Flv: Strange NaluLengthSizeMinusOne: ".concat(this._naluLengthSize-1));else this._onError(g.Z.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord")}},e.prototype._parseAVCVideoData=function(e,t,i,n,r,o,a){for(var h=this._littleEndian,u=new DataView(e,t,i),d=[],l=0,c=0,_=this._naluLengthSize,f=this._timestampBase+n,p=1===o;c<i;){if(c+4>=i){s.Z.w(this.TAG,"Malformed Nalu near timestamp ".concat(f,", offset = ").concat(c,", dataSize = ").concat(i));break}var m=u.getUint32(c,!h);if(3===_&&(m>>>=8),m>i-_)return void s.Z.w(this.TAG,"Malformed Nalus near timestamp ".concat(f,", NaluSize > DataSize!"));var g=31&u.getUint8(c+_);5===g&&(p=!0);var v=new Uint8Array(e,t+c,_+m),y={type:g,data:v};d.push(y),l+=v.byteLength,c+=_+m}if(d.length){var E=this._videoTrack,b={units:d,length:l,isKeyframe:p,dts:f,cts:a,pts:f+a};p&&(b.fileposition=r),E.samples.push(b),E.length+=l}},e.prototype._parseHVCVideoPacket=function(e,t,i,n,r,o){if(i<4)s.Z.w(this.TAG,"Flv: Invalid HVC packet, missing HVCPacketType or/and CompositionTime");else{var a=this._littleEndian,h=new DataView(e,t,i),u=h.getUint8(0),d=(16777215&h.getUint32(0,!a))<<8>>8;if(0===u)this._parseHVCDecoderConfigurationRecord(e,t+4,i-4);else if(1===u)this._parseHVCVideoData(e,t+4,i-4,n,r,o,d);else if(2!==u)return void this._onError(g.Z.FORMAT_ERROR,"Flv: Invalid video packet type ".concat(u))}},e.prototype._parseHVCDecoderConfigurationRecord=function(e,t,i){if(i<23)s.Z.w(this.TAG,"Flv: Invalid HVCDecoderConfigurationRecord, lack of data!");else{var n=this._videoMetadata,r=this._videoTrack,o=this._littleEndian,a=new DataView(e,t,i);n?void 0!==n.hvcc&&s.Z.w(this.TAG,"Found another HVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),(n=this._videoMetadata={}).type="video",n.id=r.id,n.timescale=this._timescale,n.duration=this._duration);var h=a.getUint8(0),u=31&a.getUint8(1);if(1===h&&0!==u)if(this._naluLengthSize=1+(3&a.getUint8(21)),3===this._naluLengthSize||4===this._naluLengthSize){for(var d,l,c,_=a.getUint8(22),f=23,p=[],v=0;v<_;v++){var y=63&a.getUint8(f++),E=a.getUint16(f,!o);if(f+=2,0!==E){switch(y){case 32:d+=E;break;case 33:l+=E;break;case 34:c+=E}for(var b=0;b<E;b++){var S=a.getUint16(f,!o);if(f+=2,0!==S){if(33===y){var R=new Uint8Array(e,t+f,S);p.push(R)}f+=S}}}}if(0!==d)if(d>1&&s.Z.w(this.TAG,"Flv: Strange HVCDecoderConfigurationRecord: VPS Count = ".concat(d)),0!==l)if(l>1&&s.Z.w(this.TAG,"Flv: Strange HVCDecoderConfigurationRecord: SPS Count = ".concat(l)),0!==c){c>1&&s.Z.w(this.TAG,"Flv: Strange HVCDecoderConfigurationRecord: PPS Count = ".concat(l));var A=p[0],L=m.parseSPS(A);n.codecWidth=L.codec_size.width,n.codecHeight=L.codec_size.height,n.presentWidth=L.present_size.width,n.presentHeight=L.present_size.height,n.profile=L.profile_string,n.level=L.level_string,n.profile_idc=L.profile_idc,n.level_idc=L.level_idc,n.bitDepth=L.bit_depth,n.chromaFormat=L.chroma_format,n.sarRatio=L.sar_ratio,n.frameRate=L.frame_rate,!1!==L.frame_rate.fixed&&0!==L.frame_rate.fps_num&&0!==L.frame_rate.fps_den||(n.frameRate=this._referenceFrameRate);var w=n.frameRate.fps_den,O=n.frameRate.fps_num;n.refSampleDuration=n.timescale*(w/O);var T="hvc1."+n.profile_idc+".1.L"+n.level_idc+".B0";n.codec=T;var C=this._mediaInfo;C.width=n.codecWidth,C.height=n.codecHeight,C.fps=n.frameRate.fps,C.profile=n.profile,C.level=n.level,C.refFrames=L.ref_frames,C.chromaFormat=L.chroma_format_string,C.sarNum=n.sarRatio.width,C.sarDen=n.sarRatio.height,C.videoCodec=T,C.hasAudio?null!=C.audioCodec&&(C.mimeType='video/x-flv; codecs="'+C.videoCodec+","+C.audioCodec+'"'):C.mimeType='video/x-flv; codecs="'+C.videoCodec+'"',C.isComplete()&&this._onMediaInfo(C),n.hvcc=new Uint8Array(i),n.hvcc.set(new Uint8Array(e,t,i),0),s.Z.v(this.TAG,"Parsed HVCDecoderConfigurationRecord"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._videoInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("video",n)}else this._onError(g.Z.FORMAT_ERROR,"Flv: Invalid HVCDecoderConfigurationRecord: No PPS");else this._onError(g.Z.FORMAT_ERROR,"Flv: Invalid HVCDecoderConfigurationRecord: No SPS");else this._onError(g.Z.FORMAT_ERROR,"Flv: Invalid HVCDecoderConfigurationRecord: No VPS")}else this._onError(g.Z.FORMAT_ERROR,"Flv: Strange NaluLengthSizeMinusOne: ".concat(this._naluLengthSize-1));else this._onError(g.Z.FORMAT_ERROR,"Flv: Invalid HVCDecoderConfigurationRecord")}},e.prototype._parseHVCVideoData=function(e,t,i,n,r,o,a){for(var h=this._littleEndian,u=new DataView(e,t,i),d=[],l=0,c=0,_=this._naluLengthSize,f=this._timestampBase+n,p=1===o;c<i;){if(c+4>=i){s.Z.w(this.TAG,"Malformed Nalu near timestamp ".concat(f,", offset = ").concat(c,", dataSize = ").concat(i));break}var m=u.getUint32(c,!h);if(3===_&&(m>>>=8),m>i-_)return void s.Z.w(this.TAG,"Malformed Nalus near timestamp ".concat(f,", NaluSize > DataSize!"));var g=u.getUint8(c+_)>>1&63;g>=16&&g<=23&&(p=!0);var v=new Uint8Array(e,t+c,_+m),y={type:g,data:v};d.push(y),l+=v.byteLength,c+=_+m}if(d.length){var E=this._videoTrack,b={units:d,length:l,isKeyframe:p,dts:f,cts:a,pts:f+a};p&&(b.fileposition=r),E.samples.push(b),E.length+=l}},e}(),y=v,E=function(){function e(){}return e.init=function(){for(var t in e.types={hvc1:[],hvcC:[],avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],pasp:[],".mp3":[]},e.types)e.types.hasOwnProperty(t)&&(e.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);var i=e.constants={};i.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),i.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),i.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),i.STSC=i.STCO=i.STTS,i.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),i.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),i.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),i.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),i.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])},e.box=function(e){for(var t=8,i=null,n=Array.prototype.slice.call(arguments,1),r=n.length,s=0;s<r;s++)t+=n[s].byteLength;(i=new Uint8Array(t))[0]=t>>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);var o=8;for(s=0;s<r;s++)i.set(n[s],o),o+=n[s].byteLength;return i},e.generateInitSegment=function(t){var i=e.box(e.types.ftyp,e.constants.FTYP),n=e.moov(t),r=new Uint8Array(i.byteLength+n.byteLength);return r.set(i,0),r.set(n,i.byteLength),r},e.moov=function(t){var i=e.mvhd(t.timescale,t.duration),n=e.trak(t),r=e.mvex(t);return e.box(e.types.moov,i,n,r)},e.mvhd=function(t,i){return e.box(e.types.mvhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))},e.trak=function(t){return e.box(e.types.trak,e.tkhd(t),e.mdia(t))},e.tkhd=function(t){var i=t.id,n=t.duration,r=t.presentWidth,s=t.presentHeight;return e.box(e.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,n>>>24&255,n>>>16&255,n>>>8&255,255&n,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,s>>>8&255,255&s,0,0]))},e.mdia=function(t){return e.box(e.types.mdia,e.mdhd(t),e.hdlr(t),e.minf(t))},e.mdhd=function(t){var i=t.timescale,n=t.duration;return e.box(e.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,n>>>24&255,n>>>16&255,n>>>8&255,255&n,85,196,0,0]))},e.hdlr=function(t){var i=null;return i="audio"===t.type?e.constants.HDLR_AUDIO:e.constants.HDLR_VIDEO,e.box(e.types.hdlr,i)},e.minf=function(t){var i=null;return i="audio"===t.type?e.box(e.types.smhd,e.constants.SMHD):e.box(e.types.vmhd,e.constants.VMHD),e.box(e.types.minf,i,e.dinf(),e.stbl(t))},e.dinf=function(){return e.box(e.types.dinf,e.box(e.types.dref,e.constants.DREF))},e.stbl=function(t){return e.box(e.types.stbl,e.stsd(t),e.box(e.types.stts,e.constants.STTS),e.box(e.types.stsc,e.constants.STSC),e.box(e.types.stsz,e.constants.STSZ),e.box(e.types.stco,e.constants.STCO))},e.stsd=function(t){return"audio"===t.type?"mp3"===t.codec?e.box(e.types.stsd,e.constants.STSD_PREFIX,e.mp3(t)):e.box(e.types.stsd,e.constants.STSD_PREFIX,e.mp4a(t)):t.codec.indexOf("avc1")>=0?e.box(e.types.stsd,e.constants.STSD_PREFIX,e.avc1(t)):e.box(e.types.stsd,e.constants.STSD_PREFIX,e.hvc1(t))},e.mp3=function(t){var i=t.channelCount,n=t.audioSampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,i,0,16,0,0,0,0,n>>>8&255,255&n,0,0]);return e.box(e.types[".mp3"],r)},e.mp4a=function(t){var i=t.channelCount,n=t.audioSampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,i,0,16,0,0,0,0,n>>>8&255,255&n,0,0]);return e.box(e.types.mp4a,r,e.esds(t))},e.esds=function(t){var i=t.config||[],n=i.length,r=new Uint8Array([0,0,0,0,3,23+n,0,1,0,4,15+n,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([n]).concat(i).concat([6,1,2]));return e.box(e.types.esds,r)},e.avc1=function(t){var i=t.avcc,n=t.codecWidth,r=t.codecHeight,s=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,n>>>8&255,255&n,r>>>8&255,255&r,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return e.box(e.types.avc1,s,e.box(e.types.avcC,i))},e.hvc1=function(t){var i=t.hvcc,n=t.codecWidth,r=t.codecHeight,s=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,n>>>8&255,255&n,r>>>8&255,255&r,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return e.box(e.types.hvc1,s,e.box(e.types.hvcC,i))},e.mvex=function(t){return e.box(e.types.mvex,e.trex(t))},e.trex=function(t){var i=t.id,n=new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return e.box(e.types.trex,n)},e.moof=function(t,i){return e.box(e.types.moof,e.mfhd(t.sequenceNumber),e.traf(t,i))},e.mfhd=function(t){var i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t]);return e.box(e.types.mfhd,i)},e.traf=function(t,i){var n=t.id,r=e.box(e.types.tfhd,new Uint8Array([0,0,0,0,n>>>24&255,n>>>16&255,n>>>8&255,255&n])),s=e.box(e.types.tfdt,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),o=e.sdtp(t),a=e.trun(t,o.byteLength+16+16+8+16+8+8);return e.box(e.types.traf,r,s,a,o)},e.sdtp=function(t){for(var i=t.samples||[],n=i.length,r=new Uint8Array(4+n),s=0;s<n;s++){var o=i[s].flags;r[s+4]=o.isLeading<<6|o.dependsOn<<4|o.isDependedOn<<2|o.hasRedundancy}return e.box(e.types.sdtp,r)},e.trun=function(t,i){var n=t.samples||[],r=n.length,s=12+16*r,o=new Uint8Array(s);i+=8+s,o.set([0,0,15,1,r>>>24&255,r>>>16&255,r>>>8&255,255&r,i>>>24&255,i>>>16&255,i>>>8&255,255&i],0);for(var a=0;a<r;a++){var h=n[a].duration,u=n[a].size,d=n[a].flags,l=n[a].cts;o.set([h>>>24&255,h>>>16&255,h>>>8&255,255&h,u>>>24&255,u>>>16&255,u>>>8&255,255&u,d.isLeading<<2|d.dependsOn,d.isDependedOn<<6|d.hasRedundancy<<4|d.isNonSync,0,0,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*a)}return e.box(e.types.trun,o)},e.mdat=function(t){return e.box(e.types.mdat,t)},e}();E.init();var b=E,S=function(){function e(){}return e.getSilentFrame=function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null},e}(),R=i(51),A=function(){function e(e){this.TAG="MP4Remuxer",this._config=e,this._isLive=!0===e.isLive,this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList=new R.J1("audio"),this._videoSegmentInfoList=new R.J1("video"),this._onInitSegment=null,this._onMediaSegment=null,this._forceFirstIDR=!(!o.Z.chrome||!(o.Z.version.major<50||50===o.Z.version.major&&o.Z.version.build<2661)),this._fillSilentAfterSeek=o.Z.msedge||o.Z.msie,this._mp3UseMpegAudio=!o.Z.firefox,this._fillAudioTimestampGap=this._config.fixAudioTimestampGap}return e.prototype.destroy=function(){this._dtsBase=-1,this._dtsBaseInited=!1,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList.clear(),this._audioSegmentInfoList=null,this._videoSegmentInfoList.clear(),this._videoSegmentInfoList=null,this._onInitSegment=null,this._onMediaSegment=null},e.prototype.bindDataSource=function(e){return e.onDataAvailable=this.remux.bind(this),e.onTrackMetadata=this._onTrackMetadataReceived.bind(this),this},Object.defineProperty(e.prototype,"onInitSegment",{get:function(){return this._onInitSegment},set:function(e){this._onInitSegment=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMediaSegment",{get:function(){return this._onMediaSegment},set:function(e){this._onMediaSegment=e},enumerable:!1,configurable:!0}),e.prototype.insertDiscontinuity=function(){this._audioNextDts=this._videoNextDts=void 0},e.prototype.seek=function(e){this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._videoSegmentInfoList.clear(),this._audioSegmentInfoList.clear()},e.prototype.remux=function(e,t){if(!this._onMediaSegment)throw new l.rT("MP4Remuxer: onMediaSegment callback must be specificed!");this._dtsBaseInited||this._calculateDtsBase(e,t),this._remuxVideo(t),this._remuxAudio(e)},e.prototype._onTrackMetadataReceived=function(e,t){var i=null,n="mp4",r=t.codec;if("audio"===e)this._audioMeta=t,"mp3"===t.codec&&this._mp3UseMpegAudio?(n="mpeg",r="",i=new Uint8Array):i=b.generateInitSegment(t);else{if("video"!==e)return;this._videoMeta=t,i=b.generateInitSegment(t)}if(!this._onInitSegment)throw new l.rT("MP4Remuxer: onInitSegment callback must be specified!");this._onInitSegment(e,{type:e,data:i.buffer,codec:r,container:"".concat(e,"/").concat(n),mediaDuration:t.duration})},e.prototype._calculateDtsBase=function(e,t){this._dtsBaseInited||(e.samples&&e.samples.length&&(this._audioDtsBase=e.samples[0].dts),t.samples&&t.samples.length&&(this._videoDtsBase=t.samples[0].dts),this._dtsBase=Math.min(this._audioDtsBase,this._videoDtsBase),this._dtsBaseInited=!0)},e.prototype.flushStashedSamples=function(){var e=this._videoStashedLastSample,t=this._audioStashedLastSample,i={type:"video",id:1,sequenceNumber:0,samples:[],length:0};null!=e&&(i.samples.push(e),i.length=e.length);var n={type:"audio",id:2,sequenceNumber:0,samples:[],length:0};null!=t&&(n.samples.push(t),n.length=t.length),this._videoStashedLastSample=null,this._audioStashedLastSample=null,this._remuxVideo(i,!0),this._remuxAudio(n,!0)},e.prototype._remuxAudio=function(e,t){if(null!=this._audioMeta){var i,n=e,r=n.samples,a=void 0,h=-1,u=this._audioMeta.refSampleDuration,d="mp3"===this._audioMeta.codec&&this._mp3UseMpegAudio,l=this._dtsBaseInited&&void 0===this._audioNextDts,c=!1;if(r&&0!==r.length&&(1!==r.length||t)){var _=0,f=null,p=0;d?(_=0,p=n.length):(_=8,p=8+n.length);var m=null;if(r.length>1&&(p-=(m=r.pop()).length),null!=this._audioStashedLastSample){var g=this._audioStashedLastSample;this._audioStashedLastSample=null,r.unshift(g),p+=g.length}null!=m&&(this._audioStashedLastSample=m);var v=r[0].dts-this._dtsBase;if(this._audioNextDts)a=v-this._audioNextDts;else if(this._audioSegmentInfoList.isEmpty())a=0,this._fillSilentAfterSeek&&!this._videoSegmentInfoList.isEmpty()&&"mp3"!==this._audioMeta.originalCodec&&(c=!0);else{var y=this._audioSegmentInfoList.getLastSampleBefore(v);if(null!=y){var E=v-(y.originalDts+y.duration);E<=3&&(E=0),a=v-(y.dts+y.duration+E)}else a=0}if(c){var A=v-a,L=this._videoSegmentInfoList.getLastSegmentBefore(v);if(null!=L&&L.beginDts<A){if(P=S.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount)){var w=L.beginDts,O=A-L.beginDts;s.Z.v(this.TAG,"InsertPrefixSilentAudio: dts: ".concat(w,", duration: ").concat(O)),r.unshift({unit:P,dts:w,pts:w}),p+=P.byteLength}}else c=!1}for(var T=[],C=0;C<r.length;C++){var k=(g=r[C]).unit,D=g.dts-this._dtsBase,B=(w=D,!1),I=null,M=0;if(!(D<-.001)){if("mp3"!==this._audioMeta.codec){var U=D;if(this._audioNextDts&&(U=this._audioNextDts),(a=D-U)<=-3*u){s.Z.w(this.TAG,"Dropping 1 audio frame (originalDts: ".concat(D," ms ,curRefDts: ").concat(U," ms) due to dtsCorrection: ").concat(a," ms overlap."));continue}if(a>=3*u&&this._fillAudioTimestampGap&&!o.Z.safari){B=!0;var P,x=Math.floor(a/u);s.Z.w(this.TAG,"Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\n"+"originalDts: ".concat(D," ms, curRefDts: ").concat(U," ms, ")+"dtsCorrection: ".concat(Math.round(a)," ms, generate: ").concat(x," frames")),w=Math.floor(U),M=Math.floor(U+u)-w,null==(P=S.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount))&&(s.Z.w(this.TAG,"Unable to generate silent frame for "+"".concat(this._audioMeta.originalCodec," with ").concat(this._audioMeta.channelCount," channels, repeat last frame")),P=k),I=[];for(var N=0;N<x;N++){U+=u;var G=Math.floor(U),Z=Math.floor(U+u)-G,F={dts:G,pts:G,cts:0,unit:P,size:P.byteLength,duration:Z,originalDts:D,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}};I.push(F),p+=F.size}this._audioNextDts=U+u}else w=Math.floor(U),M=Math.floor(U+u)-w,this._audioNextDts=U+u}else{if(w=D-a,C!==r.length-1)M=r[C+1].dts-this._dtsBase-a-w;else if(null!=m)M=m.dts-this._dtsBase-a-w;else M=T.length>=1?T[T.length-1].duration:Math.floor(u);this._audioNextDts=w+M}-1===h&&(h=w),T.push({dts:w,pts:w,cts:0,unit:g.unit,size:g.unit.byteLength,duration:M,originalDts:D,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),B&&T.push.apply(T,I)}}if(0===T.length)return n.samples=[],void(n.length=0);d?f=new Uint8Array(p):((f=new Uint8Array(p))[0]=p>>>24&255,f[1]=p>>>16&255,f[2]=p>>>8&255,f[3]=255&p,f.set(b.types.mdat,4));for(C=0;C<T.length;C++){k=T[C].unit;f.set(k,_),_+=k.byteLength}var j=T[T.length-1];i=j.dts+j.duration;var V=new R.Yy;V.beginDts=h,V.endDts=i,V.beginPts=h,V.endPts=i,V.originalBeginDts=T[0].originalDts,V.originalEndDts=j.originalDts+j.duration,V.firstSample=new R.Wk(T[0].dts,T[0].pts,T[0].duration,T[0].originalDts,!1),V.lastSample=new R.Wk(j.dts,j.pts,j.duration,j.originalDts,!1),this._isLive||this._audioSegmentInfoList.append(V),n.samples=T,n.sequenceNumber++;var z=null;z=d?new Uint8Array:b.moof(n,h),n.samples=[],n.length=0;var H={type:"audio",data:this._mergeBoxes(z,f).buffer,sampleCount:T.length,info:V};d&&l&&(H.timestampOffset=h),this._onMediaSegment("audio",H)}}},e.prototype._remuxVideo=function(e,t){if(null!=this._videoMeta){var i,n,r=e,s=r.samples,o=void 0,a=-1,h=-1;if(s&&0!==s.length&&(1!==s.length||t)){var u=8,d=null,l=8+e.length,c=null;if(s.length>1&&(l-=(c=s.pop()).length),null!=this._videoStashedLastSample){var _=this._videoStashedLastSample;this._videoStashedLastSample=null,s.unshift(_),l+=_.length}null!=c&&(this._videoStashedLastSample=c);var f=s[0].dts-this._dtsBase;if(this._videoNextDts)o=f-this._videoNextDts;else if(this._videoSegmentInfoList.isEmpty())o=0;else{var p=this._videoSegmentInfoList.getLastSampleBefore(f);if(null!=p){var m=f-(p.originalDts+p.duration);m<=3&&(m=0),o=f-(p.dts+p.duration+m)}else o=0}for(var g=new R.Yy,v=[],y=0;y<s.length;y++){var E=(_=s[y]).dts-this._dtsBase,S=_.isKeyframe,A=E-o,L=_.cts,w=A+L;-1===a&&(a=A,h=w);var O=0;if(y!==s.length-1)O=s[y+1].dts-this._dtsBase-o-A;else if(null!=c)O=c.dts-this._dtsBase-o-A;else O=v.length>=1?v[v.length-1].duration:Math.floor(this._videoMeta.refSampleDuration);if(S){var T=new R.Wk(A,w,O,_.dts,!0);T.fileposition=_.fileposition,g.appendSyncPoint(T)}v.push({dts:A,pts:w,cts:L,units:_.units,size:_.length,isKeyframe:S,duration:O,originalDts:E,flags:{isLeading:0,dependsOn:S?2:1,isDependedOn:S?1:0,hasRedundancy:0,isNonSync:S?0:1}})}(d=new Uint8Array(l))[0]=l>>>24&255,d[1]=l>>>16&255,d[2]=l>>>8&255,d[3]=255&l,d.set(b.types.mdat,4);for(y=0;y<v.length;y++)for(var C=v[y].units;C.length;){var k=C.shift().data;d.set(k,u),u+=k.byteLength}var D=v[v.length-1];if(i=D.dts+D.duration,n=D.pts+D.duration,this._videoNextDts=i,g.beginDts=a,g.endDts=i,g.beginPts=h,g.endPts=n,g.originalBeginDts=v[0].originalDts,g.originalEndDts=D.originalDts+D.duration,g.firstSample=new R.Wk(v[0].dts,v[0].pts,v[0].duration,v[0].originalDts,v[0].isKeyframe),g.lastSample=new R.Wk(D.dts,D.pts,D.duration,D.originalDts,D.isKeyframe),this._isLive||this._videoSegmentInfoList.append(g),r.samples=v,r.sequenceNumber++,this._forceFirstIDR){var B=v[0].flags;B.dependsOn=2,B.isNonSync=0}var I=b.moof(r,a);r.samples=[],r.length=0,this._onMediaSegment("video",{type:"video",data:this._mergeBoxes(I,d).buffer,sampleCount:v.length,info:g})}}},e.prototype._mergeBoxes=function(e,t){var i=new Uint8Array(e.byteLength+t.byteLength);return i.set(e,0),i.set(t,e.byteLength),i},e}(),L=i(34),w=i(257),O=(i(939),function(){function e(e,t){this.TAG="TransmuxingController",this._emitter=new(r()),this._config=t,e.segments||(e.segments=[{duration:e.duration,filesize:e.filesize,url:e.url}]),"boolean"!=typeof e.cors&&(e.cors=!0),"boolean"!=typeof e.withCredentials&&(e.withCredentials=!1),this._mediaDataSource=e,this._currentSegmentIndex=0;var i=0;this._mediaDataSource.segments.forEach((function(n){n.timestampBase=i,i+=n.duration,n.cors=e.cors,n.withCredentials=e.withCredentials,t.referrerPolicy&&(n.referrerPolicy=t.referrerPolicy)})),isNaN(i)||this._mediaDataSource.duration===i||(this._mediaDataSource.duration=i),this._mediaInfo=null,this._demuxer=null,this._remuxer=null,this._ioctl=null,this._pendingSeekTime=null,this._pendingResolveSeekPoint=null,this._statisticsReporter=null}return e.prototype.destroy=function(){this._mediaInfo=null,this._mediaDataSource=null,this._statisticsReporter&&this._disableStatisticsReporter(),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null),this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.start=function(){this._loadSegment(0),this._enableStatisticsReporter()},e.prototype._loadSegment=function(e,t){this._currentSegmentIndex=e;var i=this._mediaDataSource.segments[e],n=this._ioctl=new L.Z(i,this._config,e);n.onError=this._onIOException.bind(this),n.onSeeked=this._onIOSeeked.bind(this),n.onComplete=this._onIOComplete.bind(this),n.onRedirect=this._onIORedirect.bind(this),n.onRecoveredEarlyEof=this._onIORecoveredEarlyEof.bind(this),t?this._demuxer.bindDataSource(this._ioctl):n.onDataArrival=this._onInitChunkArrival.bind(this),n.open(t)},e.prototype.stop=function(){this._internalAbort(),this._disableStatisticsReporter()},e.prototype._internalAbort=function(){this._ioctl&&(this._ioctl.destroy(),this._ioctl=null)},e.prototype.pause=function(){this._ioctl&&this._ioctl.isWorking()&&(this._ioctl.pause(),this._disableStatisticsReporter())},e.prototype.resume=function(){this._ioctl&&this._ioctl.isPaused()&&(this._ioctl.resume(),this._enableStatisticsReporter())},e.prototype.seek=function(e){if(null!=this._mediaInfo&&this._mediaInfo.isSeekable()){var t=this._searchSegmentIndexContains(e);if(t===this._currentSegmentIndex){var i=this._mediaInfo.segments[t];if(null==i)this._pendingSeekTime=e;else{var n=i.getNearestKeyframe(e);this._remuxer.seek(n.milliseconds),this._ioctl.seek(n.fileposition),this._pendingResolveSeekPoint=n.milliseconds}}else{var r=this._mediaInfo.segments[t];if(null==r)this._pendingSeekTime=e,this._internalAbort(),this._remuxer.seek(),this._remuxer.insertDiscontinuity(),this._loadSegment(t);else{n=r.getNearestKeyframe(e);this._internalAbort(),this._remuxer.seek(e),this._remuxer.insertDiscontinuity(),this._demuxer.resetMediaInfo(),this._demuxer.timestampBase=this._mediaDataSource.segments[t].timestampBase,this._loadSegment(t,n.fileposition),this._pendingResolveSeekPoint=n.milliseconds,this._reportSegmentMediaInfo(t)}}this._enableStatisticsReporter()}},e.prototype._searchSegmentIndexContains=function(e){for(var t=this._mediaDataSource.segments,i=t.length-1,n=0;n<t.length;n++)if(e<t[n].timestampBase){i=n-1;break}return i},e.prototype._onInitChunkArrival=function(e,t){var i=this,n=null,r=0;if(t>0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,r=this._demuxer.parseChunks(e,t);else if((n=y.probe(e)).match){this._demuxer=new y(n,this._config),this._remuxer||(this._remuxer=new A(this._config));var o=this._mediaDataSource;null==o.duration||isNaN(o.duration)||(this._demuxer.overridedDuration=o.duration),"boolean"==typeof o.hasAudio&&(this._demuxer.overridedHasAudio=o.hasAudio),"boolean"==typeof o.hasVideo&&(this._demuxer.overridedHasVideo=o.hasVideo),this._demuxer.timestampBase=o.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),r=this._demuxer.parseChunks(e,t)}else n=null,s.Z.e(this.TAG,"Non-FLV, Unsupported media type!"),Promise.resolve().then((function(){i._internalAbort()})),this._emitter.emit(w.Z.DEMUX_ERROR,g.Z.FORMAT_UNSUPPORTED,"Non-FLV, Unsupported media type"),r=0;return r},e.prototype._onMediaInfo=function(e){var t=this;null==this._mediaInfo&&(this._mediaInfo=Object.assign({},e),this._mediaInfo.keyframesIndex=null,this._mediaInfo.segments=[],this._mediaInfo.segmentCount=this._mediaDataSource.segments.length,Object.setPrototypeOf(this._mediaInfo,a.Z.prototype));var i=Object.assign({},e);Object.setPrototypeOf(i,a.Z.prototype),this._mediaInfo.segments[this._currentSegmentIndex]=i,this._reportSegmentMediaInfo(this._currentSegmentIndex),null!=this._pendingSeekTime&&Promise.resolve().then((function(){var e=t._pendingSeekTime;t._pendingSeekTime=null,t.seek(e)}))},e.prototype._onMetaDataArrived=function(e){this._emitter.emit(w.Z.METADATA_ARRIVED,e)},e.prototype._onScriptDataArrived=function(e){this._emitter.emit(w.Z.SCRIPTDATA_ARRIVED,e)},e.prototype._onIOSeeked=function(){this._remuxer.insertDiscontinuity()},e.prototype._onIOComplete=function(e){var t=e+1;t<this._mediaDataSource.segments.length?(this._internalAbort(),this._remuxer.flushStashedSamples(),this._loadSegment(t)):(this._remuxer.flushStashedSamples(),this._emitter.emit(w.Z.LOADING_COMPLETE),this._disableStatisticsReporter())},e.prototype._onIORedirect=function(e){var t=this._ioctl.extraData;this._mediaDataSource.segments[t].redirectedURL=e},e.prototype._onIORecoveredEarlyEof=function(){this._emitter.emit(w.Z.RECOVERED_EARLY_EOF)},e.prototype._onIOException=function(e,t){s.Z.e(this.TAG,"IOException: type = ".concat(e,", code = ").concat(t.code,", msg = ").concat(t.msg)),this._emitter.emit(w.Z.IO_ERROR,e,t),this._disableStatisticsReporter()},e.prototype._onDemuxException=function(e,t){s.Z.e(this.TAG,"DemuxException: type = ".concat(e,", info = ").concat(t)),this._emitter.emit(w.Z.DEMUX_ERROR,e,t)},e.prototype._onRemuxerInitSegmentArrival=function(e,t){this._emitter.emit(w.Z.INIT_SEGMENT,e,t)},e.prototype._onRemuxerMediaSegmentArrival=function(e,t){if(null==this._pendingSeekTime&&(this._emitter.emit(w.Z.MEDIA_SEGMENT,e,t),null!=this._pendingResolveSeekPoint&&"video"===e)){var i=t.info.syncPoints,n=this._pendingResolveSeekPoint;this._pendingResolveSeekPoint=null,o.Z.safari&&i.length>0&&i[0].originalDts===n&&(n=i[0].pts),this._emitter.emit(w.Z.RECOMMEND_SEEKPOINT,n)}},e.prototype._enableStatisticsReporter=function(){null==this._statisticsReporter&&(this._statisticsReporter=self.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval))},e.prototype._disableStatisticsReporter=function(){this._statisticsReporter&&(self.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},e.prototype._reportSegmentMediaInfo=function(e){var t=this._mediaInfo.segments[e],i=Object.assign({},t);i.duration=this._mediaInfo.duration,i.segmentCount=this._mediaInfo.segmentCount,delete i.segments,delete i.keyframesIndex,this._emitter.emit(w.Z.MEDIA_INFO,i)},e.prototype._reportStatisticsInfo=function(){var e={};e.url=this._ioctl.currentURL,e.hasRedirect=this._ioctl.hasRedirect,e.hasRedirect&&(e.redirectedURL=this._ioctl.currentRedirectedURL),e.speed=this._ioctl.currentSpeed,e.loaderType=this._ioctl.loaderType,e.currentSegmentIndex=this._currentSegmentIndex,e.totalSegmentCount=this._mediaDataSource.segments.length,this._emitter.emit(w.Z.STATISTICS_INFO,e)},e}())},257:function(e,t){"use strict";t.Z={IO_ERROR:"io_error",DEMUX_ERROR:"demux_error",INIT_SEGMENT:"init_segment",MEDIA_SEGMENT:"media_segment",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info",RECOMMEND_SEEKPOINT:"recommend_seekpoint"}},82:function(e,t,i){"use strict";i(300),i(846),i(219),i(18),i(257)},600:function(e,t){"use strict";t.Z={OK:"OK",FORMAT_ERROR:"FormatError",FORMAT_UNSUPPORTED:"FormatUnsupported",CODEC_UNSUPPORTED:"CodecUnsupported"}},60:function(e,t,i){"use strict";i.d(t,{default:function(){return B}});var n=i(219),r=i(34),s={enableWorker:!1,enableStashBuffer:!0,stashInitialSize:void 0,isLive:!1,lazyLoad:!0,lazyLoadMaxDuration:180,lazyLoadRecoverDuration:30,deferLoadAfterSourceOpen:!0,autoCleanupMaxBackwardDuration:180,autoCleanupMinBackwardDuration:120,statisticsInfoReportInterval:600,fixAudioTimestampGap:!0,accurateSeek:!1,seekType:"range",seekParamStart:"bstart",seekParamEnd:"bend",rangeLoadZeroStart:!1,customSeekHandler:void 0,reuseRedirectedURL:!1,headers:void 0,customLoader:void 0};function o(){return Object.assign({},s)}var a=function(){function e(){}return e.supportMSEH264Playback=function(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')},e.supportMSEH265Playback=function(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="hvc1.1.6.L93.B0"')},e.supportNetworkStreamIO=function(){var e=new r.Z({},o()),t=e.loaderType;return e.destroy(),"fetch-stream-loader"==t||"xhr-moz-chunked-loader"==t},e.getNetworkLoaderTypeName=function(){var e=new r.Z({},o()),t=e.loaderType;return e.destroy(),t},e.supportNativeMediaPlayback=function(t){null==e.videoElement&&(e.videoElement=window.document.createElement("video"));var i=e.videoElement.canPlayType(t);return"probably"===i||"maybe"==i},e.getFeatureList=function(){var t={mseFlvPlayback:!1,mseLiveFlvPlayback:!1,networkStreamIO:!1,networkLoaderName:"",nativeMP4H264Playback:!1,nativeMP4H265Playback:!1,nativeWebmVP8Playback:!1,nativeWebmVP9Playback:!1};return t.mseFlvPlayback=e.supportMSEH264Playback(),t.networkStreamIO=e.supportNetworkStreamIO(),t.networkLoaderName=e.getNetworkLoaderTypeName(),t.mseLiveFlvPlayback=t.mseFlvPlayback&&t.networkStreamIO,t.nativeMP4H264Playback=e.supportNativeMediaPlayback('video/mp4; codecs="avc1.42001E, mp4a.40.2"'),t.nativeMP4H265Playback=e.supportNativeMediaPlayback('video/mp4; codecs="hvc1.1.6.L93.B0"'),t.nativeWebmVP8Playback=e.supportNativeMediaPlayback('video/webm; codecs="vp8.0, vorbis"'),t.nativeWebmVP9Playback=e.supportNativeMediaPlayback('video/webm; codecs="vp9"'),t},e}(),h=a,u=i(939),d=i(716),l=i.n(d),c=i(300),_=i(538),f={ERROR:"error",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info"},p=i(397),m=i.n(p),g=i(846),v=i(18),y=i(257),E=(i(82),i(118)),b=function(){function e(e,t){if(this.TAG="Transmuxer",this._emitter=new(l()),t.enableWorker&&"undefined"!=typeof Worker)try{this._worker=m()(82),this._workerDestroying=!1,this._worker.addEventListener("message",this._onWorkerMessage.bind(this)),this._worker.postMessage({cmd:"init",param:[e,t]}),this.e={onLoggingConfigChanged:this._onLoggingConfigChanged.bind(this)},g.Z.registerListener(this.e.onLoggingConfigChanged),this._worker.postMessage({cmd:"logging_config",param:g.Z.getConfig()})}catch(i){c.Z.e(this.TAG,"Error while initialize transmuxing worker, fallback to inline transmuxing"),this._worker=null,this._controller=new v.Z(e,t)}else this._controller=new v.Z(e,t);if(this._controller){var i=this._controller;i.on(y.Z.IO_ERROR,this._onIOError.bind(this)),i.on(y.Z.DEMUX_ERROR,this._onDemuxError.bind(this)),i.on(y.Z.INIT_SEGMENT,this._onInitSegment.bind(this)),i.on(y.Z.MEDIA_SEGMENT,this._onMediaSegment.bind(this)),i.on(y.Z.LOADING_COMPLETE,this._onLoadingComplete.bind(this)),i.on(y.Z.RECOVERED_EARLY_EOF,this._onRecoveredEarlyEof.bind(this)),i.on(y.Z.MEDIA_INFO,this._onMediaInfo.bind(this)),i.on(y.Z.METADATA_ARRIVED,this._onMetaDataArrived.bind(this)),i.on(y.Z.SCRIPTDATA_ARRIVED,this._onScriptDataArrived.bind(this)),i.on(y.Z.STATISTICS_INFO,this._onStatisticsInfo.bind(this)),i.on(y.Z.RECOMMEND_SEEKPOINT,this._onRecommendSeekpoint.bind(this))}}return e.prototype.destroy=function(){this._worker?this._workerDestroying||(this._workerDestroying=!0,this._worker.postMessage({cmd:"destroy"}),g.Z.removeListener(this.e.onLoggingConfigChanged),this.e=null):(this._controller.destroy(),this._controller=null),this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.hasWorker=function(){return null!=this._worker},e.prototype.open=function(){this._worker?this._worker.postMessage({cmd:"start"}):this._controller.start()},e.prototype.close=function(){this._worker?this._worker.postMessage({cmd:"stop"}):this._controller.stop()},e.prototype.seek=function(e){this._worker?this._worker.postMessage({cmd:"seek",param:e}):this._controller.seek(e)},e.prototype.pause=function(){this._worker?this._worker.postMessage({cmd:"pause"}):this._controller.pause()},e.prototype.resume=function(){this._worker?this._worker.postMessage({cmd:"resume"}):this._controller.resume()},e.prototype._onInitSegment=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(y.Z.INIT_SEGMENT,e,t)}))},e.prototype._onMediaSegment=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(y.Z.MEDIA_SEGMENT,e,t)}))},e.prototype._onLoadingComplete=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(y.Z.LOADING_COMPLETE)}))},e.prototype._onRecoveredEarlyEof=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(y.Z.RECOVERED_EARLY_EOF)}))},e.prototype._onMediaInfo=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.Z.MEDIA_INFO,e)}))},e.prototype._onMetaDataArrived=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.Z.METADATA_ARRIVED,e)}))},e.prototype._onScriptDataArrived=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.Z.SCRIPTDATA_ARRIVED,e)}))},e.prototype._onStatisticsInfo=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.Z.STATISTICS_INFO,e)}))},e.prototype._onIOError=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(y.Z.IO_ERROR,e,t)}))},e.prototype._onDemuxError=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(y.Z.DEMUX_ERROR,e,t)}))},e.prototype._onRecommendSeekpoint=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.Z.RECOMMEND_SEEKPOINT,e)}))},e.prototype._onLoggingConfigChanged=function(e){this._worker&&this._worker.postMessage({cmd:"logging_config",param:e})},e.prototype._onWorkerMessage=function(e){var t=e.data,i=t.data;if("destroyed"===t.msg||this._workerDestroying)return this._workerDestroying=!1,this._worker.terminate(),void(this._worker=null);switch(t.msg){case y.Z.INIT_SEGMENT:case y.Z.MEDIA_SEGMENT:this._emitter.emit(t.msg,i.type,i.data);break;case y.Z.LOADING_COMPLETE:case y.Z.RECOVERED_EARLY_EOF:this._emitter.emit(t.msg);break;case y.Z.MEDIA_INFO:Object.setPrototypeOf(i,E.Z.prototype),this._emitter.emit(t.msg,i);break;case y.Z.METADATA_ARRIVED:case y.Z.SCRIPTDATA_ARRIVED:case y.Z.STATISTICS_INFO:this._emitter.emit(t.msg,i);break;case y.Z.IO_ERROR:case y.Z.DEMUX_ERROR:this._emitter.emit(t.msg,i.type,i.info);break;case y.Z.RECOMMEND_SEEKPOINT:this._emitter.emit(t.msg,i);break;case"logcat_callback":c.Z.emitter.emit("log",i.type,i.logcat)}},e}(),S={ERROR:"error",SOURCE_OPEN:"source_open",UPDATE_END:"update_end",VIDEO_TYPE:"video_type",BUFFER_FULL:"buffer_full"},R=i(51),A=i(29),L=function(){function e(e){this.TAG="MSEController",this._config=e,this._emitter=new(l()),this._config.isLive&&null==this._config.autoCleanupSourceBuffer&&(this._config.autoCleanupSourceBuffer=!0),this.e={onSourceOpen:this._onSourceOpen.bind(this),onSourceEnded:this._onSourceEnded.bind(this),onSourceClose:this._onSourceClose.bind(this),onSourceBufferError:this._onSourceBufferError.bind(this),onSourceBufferUpdateEnd:this._onSourceBufferUpdateEnd.bind(this)},this._mediaSource=null,this._mediaSourceObjectURL=null,this._mediaElement=null,this._isBufferFull=!1,this._hasPendingEos=!1,this._requireSetMediaDuration=!1,this._pendingMediaDuration=0,this._pendingSourceBufferInit=[],this._mimeTypes={video:null,audio:null},this._sourceBuffers={video:null,audio:null},this._lastInitSegments={video:null,audio:null},this._pendingSegments={video:[],audio:[]},this._pendingRemoveRanges={video:[],audio:[]},this._idrList=new R.Vn}return e.prototype.destroy=function(){(this._mediaElement||this._mediaSource)&&this.detachMediaElement(),this.e=null,this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.attachMediaElement=function(e){if(this._mediaSource)throw new A.rT("MediaSource has been attached to an HTMLMediaElement!");var t=this._mediaSource=new window.MediaSource;t.addEventListener("sourceopen",this.e.onSourceOpen),t.addEventListener("sourceended",this.e.onSourceEnded),t.addEventListener("sourceclose",this.e.onSourceClose),this._mediaElement=e,this._mediaSourceObjectURL=window.URL.createObjectURL(this._mediaSource),e.src=this._mediaSourceObjectURL},e.prototype.detachMediaElement=function(){if(this._mediaSource){var e=this._mediaSource;for(var t in this._sourceBuffers){var i=this._pendingSegments[t];i.splice(0,i.length),this._pendingSegments[t]=null,this._pendingRemoveRanges[t]=null,this._lastInitSegments[t]=null;var n=this._sourceBuffers[t];if(n){if("closed"!==e.readyState){try{e.removeSourceBuffer(n)}catch(e){c.Z.e(this.TAG,e.message)}n.removeEventListener("error",this.e.onSourceBufferError),n.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd)}this._mimeTypes[t]=null,this._sourceBuffers[t]=null}}if("open"===e.readyState)try{e.endOfStream()}catch(e){c.Z.e(this.TAG,e.message)}e.removeEventListener("sourceopen",this.e.onSourceOpen),e.removeEventListener("sourceended",this.e.onSourceEnded),e.removeEventListener("sourceclose",this.e.onSourceClose),this._pendingSourceBufferInit=[],this._isBufferFull=!1,this._idrList.clear(),this._mediaSource=null}this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement=null),this._mediaSourceObjectURL&&(window.URL.revokeObjectURL(this._mediaSourceObjectURL),this._mediaSourceObjectURL=null)},e.prototype.appendInitSegment=function(e,t){var i=this;if(!this._mediaSource||"open"!==this._mediaSource.readyState)return this._pendingSourceBufferInit.push(e),void this._pendingSegments[e.type].push(e);var n=e,r="".concat(n.container);n.codec&&n.codec.length>0&&(r+=";codecs=".concat(n.codec));var s=!1;if(c.Z.v(this.TAG,"Received Initialization Segment, mimeType: "+r),r.includes("video/mp4;")&&setTimeout((function(){return i._emitter.emit(S.VIDEO_TYPE,r)}),500),this._lastInitSegments[n.type]=n,r!==this._mimeTypes[n.type]){if(this._mimeTypes[n.type])c.Z.v(this.TAG,"Notice: ".concat(n.type," mimeType changed, origin: ").concat(this._mimeTypes[n.type],", target: ").concat(r));else{s=!0;try{var o=this._sourceBuffers[n.type]=this._mediaSource.addSourceBuffer(r);o.addEventListener("error",this.e.onSourceBufferError),o.addEventListener("updateend",this.e.onSourceBufferUpdateEnd)}catch(e){return c.Z.e(this.TAG,e.message),void this._emitter.emit(S.ERROR,{code:e.code,msg:e.message})}}this._mimeTypes[n.type]=r}t||this._pendingSegments[n.type].push(n),s||this._sourceBuffers[n.type]&&!this._sourceBuffers[n.type].updating&&this._doAppendSegments(),_.Z.safari&&"audio/mpeg"===n.container&&n.mediaDuration>0&&(this._requireSetMediaDuration=!0,this._pendingMediaDuration=n.mediaDuration/1e3,this._updateMediaSourceDuration())},e.prototype.appendMediaSegment=function(e){var t=e;this._pendingSegments[t.type].push(t),this._config.autoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanupSourceBuffer();var i=this._sourceBuffers[t.type];!i||i.updating||this._hasPendingRemoveRanges()||this._doAppendSegments()},e.prototype.seek=function(e){for(var t in this._sourceBuffers)if(this._sourceBuffers[t]){var i=this._sourceBuffers[t];if("open"===this._mediaSource.readyState)try{i.abort()}catch(e){c.Z.e(this.TAG,e.message)}this._idrList.clear();var n=this._pendingSegments[t];if(n.splice(0,n.length),"closed"!==this._mediaSource.readyState){for(var r=0;r<i.buffered.length;r++){var s=i.buffered.start(r),o=i.buffered.end(r);this._pendingRemoveRanges[t].push({start:s,end:o})}if(i.updating||this._doRemoveRanges(),_.Z.safari){var a=this._lastInitSegments[t];a&&(this._pendingSegments[t].push(a),i.updating||this._doAppendSegments())}}}},e.prototype.endOfStream=function(){var e=this._mediaSource,t=this._sourceBuffers;e&&"open"===e.readyState?t.video&&t.video.updating||t.audio&&t.audio.updating?this._hasPendingEos=!0:(this._hasPendingEos=!1,e.endOfStream()):e&&"closed"===e.readyState&&this._hasPendingSegments()&&(this._hasPendingEos=!0)},e.prototype.getNearestKeyframe=function(e){return this._idrList.getLastSyncPointBeforeDts(e)},e.prototype._needCleanupSourceBuffer=function(){if(!this._config.autoCleanupSourceBuffer)return!1;var e=this._mediaElement.currentTime;for(var t in this._sourceBuffers){var i=this._sourceBuffers[t];if(i){var n=i.buffered;if(n.length>=1&&e-n.start(0)>=this._config.autoCleanupMaxBackwardDuration)return!0}}return!1},e.prototype._doCleanupSourceBuffer=function(){var e=this._mediaElement.currentTime;for(var t in this._sourceBuffers){var i=this._sourceBuffers[t];if(i){for(var n=i.buffered,r=!1,s=0;s<n.length;s++){var o=n.start(s),a=n.end(s);if(o<=e&&e<a+3){if(e-o>=this._config.autoCleanupMaxBackwardDuration){r=!0;var h=e-this._config.autoCleanupMinBackwardDuration;this._pendingRemoveRanges[t].push({start:o,end:h})}}else a<e&&(r=!0,this._pendingRemoveRanges[t].push({start:o,end:a}))}r&&!i.updating&&this._doRemoveRanges()}}},e.prototype._updateMediaSourceDuration=function(){var e=this._sourceBuffers;if(0!==this._mediaElement.readyState&&"open"===this._mediaSource.readyState&&!(e.video&&e.video.updating||e.audio&&e.audio.updating)){var t=this._mediaSource.duration,i=this._pendingMediaDuration;i>0&&(isNaN(t)||i>t)&&(c.Z.v(this.TAG,"Update MediaSource duration from ".concat(t," to ").concat(i)),this._mediaSource.duration=i),this._requireSetMediaDuration=!1,this._pendingMediaDuration=0}},e.prototype._doRemoveRanges=function(){for(var e in this._pendingRemoveRanges)if(this._sourceBuffers[e]&&!this._sourceBuffers[e].updating)for(var t=this._sourceBuffers[e],i=this._pendingRemoveRanges[e];i.length&&!t.updating;){var n=i.shift();t.remove(n.start,n.end)}},e.prototype._doAppendSegments=function(){var e=this._pendingSegments;for(var t in e)if(this._sourceBuffers[t]&&!this._sourceBuffers[t].updating&&e[t].length>0){var i=e[t].shift();if(i.timestampOffset){var n=this._sourceBuffers[t].timestampOffset,r=i.timestampOffset/1e3;Math.abs(n-r)>.1&&(c.Z.v(this.TAG,"Update MPEG audio timestampOffset from ".concat(n," to ").concat(r)),this._sourceBuffers[t].timestampOffset=r),delete i.timestampOffset}if(!i.data||0===i.data.byteLength)continue;try{this._sourceBuffers[t].appendBuffer(i.data),this._isBufferFull=!1,"video"===t&&i.hasOwnProperty("info")&&this._idrList.appendArray(i.info.syncPoints)}catch(e){this._pendingSegments[t].unshift(i),22===e.code?(this._isBufferFull||this._emitter.emit(S.BUFFER_FULL),this._isBufferFull=!0):(c.Z.e(this.TAG,t,e.message),this._emitter.emit(S.ERROR,{code:e.code,msg:e.message}))}}},e.prototype._onSourceOpen=function(){if(c.Z.v(this.TAG,"MediaSource onSourceOpen"),this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._pendingSourceBufferInit.length>0)for(var e=this._pendingSourceBufferInit;e.length;){var t=e.shift();this.appendInitSegment(t,!0)}this._hasPendingSegments()&&this._doAppendSegments(),this._emitter.emit(S.SOURCE_OPEN)},e.prototype._onSourceEnded=function(){c.Z.v(this.TAG,"MediaSource onSourceEnded")},e.prototype._onSourceClose=function(){c.Z.v(this.TAG,"MediaSource onSourceClose"),this._mediaSource&&null!=this.e&&(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._mediaSource.removeEventListener("sourceended",this.e.onSourceEnded),this._mediaSource.removeEventListener("sourceclose",this.e.onSourceClose))},e.prototype._hasPendingSegments=function(){var e=this._pendingSegments;return(e.video&&e.video.length)>0||e.audio&&e.audio.length>0},e.prototype._hasPendingRemoveRanges=function(){var e=this._pendingRemoveRanges;return(e.video&&e.video.length)>0||e.audio&&e.audio.length>0},e.prototype._onSourceBufferUpdateEnd=function(){this._requireSetMediaDuration?this._updateMediaSourceDuration():this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()?this._doAppendSegments():this._hasPendingEos&&this.endOfStream(),this._emitter.emit(S.UPDATE_END)},e.prototype._onSourceBufferError=function(e){c.Z.e(this.TAG,"SourceBuffer Error: ".concat(e))},e}(),w=i(600),O={NETWORK_ERROR:"NetworkError",MEDIA_ERROR:"MediaError",OTHER_ERROR:"OtherError"},T={NETWORK_EXCEPTION:u.nm.EXCEPTION,NETWORK_STATUS_CODE_INVALID:u.nm.HTTP_STATUS_CODE_INVALID,NETWORK_TIMEOUT:u.nm.CONNECTING_TIMEOUT,NETWORK_UNRECOVERABLE_EARLY_EOF:u.nm.UNRECOVERABLE_EARLY_EOF,MEDIA_MSE_ERROR:"MediaMSEError",MEDIA_FORMAT_ERROR:w.Z.FORMAT_ERROR,MEDIA_FORMAT_UNSUPPORTED:w.Z.FORMAT_UNSUPPORTED,MEDIA_CODEC_UNSUPPORTED:w.Z.CODEC_UNSUPPORTED},C=function(){function e(e,t){if(this.TAG="FlvPlayer",this._type="FlvPlayer",this._emitter=new(l()),this._config=o(),"object"==typeof t&&Object.assign(this._config,t),"flv"!==e.type.toLowerCase())throw new A.OC("FlvPlayer requires an flv MediaDataSource input!");!0===e.isLive&&(this._config.isLive=!0),this.e={onvLoadedMetadata:this._onvLoadedMetadata.bind(this),onvSeeking:this._onvSeeking.bind(this),onvCanPlay:this._onvCanPlay.bind(this),onvStalled:this._onvStalled.bind(this),onvProgress:this._onvProgress.bind(this)},self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now,this._pendingSeekTime=null,this._requestSetTime=!1,this._seekpointRecord=null,this._progressChecker=null,this._mediaDataSource=e,this._mediaElement=null,this._msectl=null,this._transmuxer=null,this._mseSourceOpened=!1,this._hasPendingLoad=!1,this._receivedCanPlay=!1,this._mediaInfo=null,this._statisticsInfo=null;var i=_.Z.chrome&&(_.Z.version.major<50||50===_.Z.version.major&&_.Z.version.build<2661);this._alwaysSeekKeyframe=!!(i||_.Z.msedge||_.Z.msie),this._alwaysSeekKeyframe&&(this._config.accurateSeek=!1)}return e.prototype.destroy=function(){null!=this._progressChecker&&(window.clearInterval(this._progressChecker),this._progressChecker=null),this._transmuxer&&this.unload(),this._mediaElement&&this.detachMediaElement(),this.e=null,this._mediaDataSource=null,this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){var i=this;e===f.MEDIA_INFO?null!=this._mediaInfo&&Promise.resolve().then((function(){i._emitter.emit(f.MEDIA_INFO,i.mediaInfo)})):e===f.STATISTICS_INFO&&null!=this._statisticsInfo&&Promise.resolve().then((function(){i._emitter.emit(f.STATISTICS_INFO,i.statisticsInfo)})),this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.attachMediaElement=function(e){var t=this;if(this._mediaElement=e,e.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),e.addEventListener("seeking",this.e.onvSeeking),e.addEventListener("canplay",this.e.onvCanPlay),e.addEventListener("stalled",this.e.onvStalled),e.addEventListener("progress",this.e.onvProgress),this._msectl=new L(this._config),this._msectl.on(S.UPDATE_END,this._onmseUpdateEnd.bind(this)),this._msectl.on(S.BUFFER_FULL,this._onmseBufferFull.bind(this)),this._msectl.on(S.SOURCE_OPEN,(function(){t._mseSourceOpened=!0,t._hasPendingLoad&&(t._hasPendingLoad=!1,t.load())})),this._msectl.on(S.ERROR,(function(e){t._emitter.emit(f.ERROR,O.MEDIA_ERROR,T.MEDIA_MSE_ERROR,e)})),this._msectl.on(S.VIDEO_TYPE,(function(e){t._emitter.emit(S.VIDEO_TYPE,e)})),this._msectl.attachMediaElement(e),null!=this._pendingSeekTime)try{e.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(e){}},e.prototype.detachMediaElement=function(){this._mediaElement&&(this._msectl.detachMediaElement(),this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement.removeEventListener("seeking",this.e.onvSeeking),this._mediaElement.removeEventListener("canplay",this.e.onvCanPlay),this._mediaElement.removeEventListener("stalled",this.e.onvStalled),this._mediaElement.removeEventListener("progress",this.e.onvProgress),this._mediaElement=null),this._msectl&&(this._msectl.destroy(),this._msectl=null)},e.prototype.load=function(){var e=this;if(!this._mediaElement)throw new A.rT("HTMLMediaElement must be attached before load()!");if(this._transmuxer)throw new A.rT("FlvPlayer.load() has been called, please call unload() first!");this._hasPendingLoad||(this._config.deferLoadAfterSourceOpen&&!1===this._mseSourceOpened?this._hasPendingLoad=!0:(this._mediaElement.readyState>0&&(this._requestSetTime=!0,this._mediaElement.currentTime=0),this._transmuxer=new b(this._mediaDataSource,this._config),this._transmuxer.on(y.Z.INIT_SEGMENT,(function(t,i){e._msectl.appendInitSegment(i)})),this._transmuxer.on(y.Z.MEDIA_SEGMENT,(function(t,i){if(e._msectl.appendMediaSegment(i),e._config.lazyLoad&&!e._config.isLive){var n=e._mediaElement.currentTime;i.info.endDts>=1e3*(n+e._config.lazyLoadMaxDuration)&&null==e._progressChecker&&(c.Z.v(e.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),e._suspendTransmuxer())}})),this._transmuxer.on(y.Z.LOADING_COMPLETE,(function(){e._msectl.endOfStream(),e._emitter.emit(f.LOADING_COMPLETE)})),this._transmuxer.on(y.Z.RECOVERED_EARLY_EOF,(function(){e._emitter.emit(f.RECOVERED_EARLY_EOF)})),this._transmuxer.on(y.Z.IO_ERROR,(function(t,i){e._emitter.emit(f.ERROR,O.NETWORK_ERROR,t,i)})),this._transmuxer.on(y.Z.DEMUX_ERROR,(function(t,i){e._emitter.emit(f.ERROR,O.MEDIA_ERROR,t,{code:-1,msg:i})})),this._transmuxer.on(y.Z.MEDIA_INFO,(function(t){e._mediaInfo=t,e._emitter.emit(f.MEDIA_INFO,Object.assign({},t))})),this._transmuxer.on(y.Z.METADATA_ARRIVED,(function(t){e._emitter.emit(f.METADATA_ARRIVED,t)})),this._transmuxer.on(y.Z.SCRIPTDATA_ARRIVED,(function(t){e._emitter.emit(f.SCRIPTDATA_ARRIVED,t)})),this._transmuxer.on(y.Z.STATISTICS_INFO,(function(t){e._statisticsInfo=e._fillStatisticsInfo(t),e._emitter.emit(f.STATISTICS_INFO,Object.assign({},e._statisticsInfo))})),this._transmuxer.on(y.Z.RECOMMEND_SEEKPOINT,(function(t){e._mediaElement&&!e._config.accurateSeek&&(e._requestSetTime=!0,e._mediaElement.currentTime=t/1e3)})),this._transmuxer.open()))},e.prototype.unload=function(){this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.seek(0),this._transmuxer&&(this._transmuxer.close(),this._transmuxer.destroy(),this._transmuxer=null)},e.prototype.play=function(){return this._mediaElement.play()},e.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(e){this._mediaElement.volume=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(e){this._mediaElement.muted=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"speed",{get:function(){return this._mediaElement.playbackRate},set:function(e){this._mediaElement.playbackRate=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(e){this._mediaElement?this._internalSeek(e):this._pendingSeekTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"mediaInfo",{get:function(){return Object.assign({},this._mediaInfo)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"statisticsInfo",{get:function(){return null==this._statisticsInfo&&(this._statisticsInfo={}),this._statisticsInfo=this._fillStatisticsInfo(this._statisticsInfo),Object.assign({},this._statisticsInfo)},enumerable:!1,configurable:!0}),e.prototype._fillStatisticsInfo=function(e){if(e.playerType=this._type,!(this._mediaElement instanceof HTMLVideoElement))return e;var t=!0,i=0,n=0;if(this._mediaElement.getVideoPlaybackQuality){var r=this._mediaElement.getVideoPlaybackQuality();i=r.totalVideoFrames,n=r.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,n=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=i,e.droppedFrames=n),e},e.prototype._onmseUpdateEnd=function(){if(this._config.lazyLoad&&!this._config.isLive){for(var e=this._mediaElement.buffered,t=this._mediaElement.currentTime,i=0,n=0;n<e.length;n++){var r=e.start(n),s=e.end(n);if(r<=t&&t<s){r,i=s;break}}i>=t+this._config.lazyLoadMaxDuration&&null==this._progressChecker&&(c.Z.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}},e.prototype._onmseBufferFull=function(){c.Z.v(this.TAG,"MSE SourceBuffer is full, suspend transmuxing task"),null==this._progressChecker&&this._suspendTransmuxer()},e.prototype._suspendTransmuxer=function(){this._transmuxer&&(this._transmuxer.pause(),null==this._progressChecker&&(this._progressChecker=window.setInterval(this._checkProgressAndResume.bind(this),1e3)))},e.prototype._checkProgressAndResume=function(){for(var e=this._mediaElement.currentTime,t=this._mediaElement.buffered,i=!1,n=0;n<t.length;n++){var r=t.start(n),s=t.end(n);if(e>=r&&e<s){e>=s-this._config.lazyLoadRecoverDuration&&(i=!0);break}}i&&(window.clearInterval(this._progressChecker),this._progressChecker=null,i&&(c.Z.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))},e.prototype._isTimepointBuffered=function(e){for(var t=this._mediaElement.buffered,i=0;i<t.length;i++){var n=t.start(i),r=t.end(i);if(e>=n&&e<r)return!0}return!1},e.prototype._internalSeek=function(e){var t=this._isTimepointBuffered(e),i=!1,n=0;if(e<1&&this._mediaElement.buffered.length>0){var r=this._mediaElement.buffered.start(0);(r<1&&e<r||_.Z.safari)&&(i=!0,n=_.Z.safari?.1:r)}if(i)this._requestSetTime=!0,this._mediaElement.currentTime=n;else if(t){if(this._alwaysSeekKeyframe){var s=this._msectl.getNearestKeyframe(Math.floor(1e3*e));this._requestSetTime=!0,this._mediaElement.currentTime=null!=s?s.dts/1e3:e}else this._requestSetTime=!0,this._mediaElement.currentTime=e;null!=this._progressChecker&&this._checkProgressAndResume()}else null!=this._progressChecker&&(window.clearInterval(this._progressChecker),this._progressChecker=null),this._msectl.seek(e),this._transmuxer.seek(Math.floor(1e3*e)),this._config.accurateSeek&&(this._requestSetTime=!0,this._mediaElement.currentTime=e)},e.prototype._checkAndApplyUnbufferedSeekpoint=function(){if(this._seekpointRecord)if(this._seekpointRecord.recordTime<=this._now()-100){var e=this._mediaElement.currentTime;this._seekpointRecord=null,this._isTimepointBuffered(e)||(null!=this._progressChecker&&(window.clearTimeout(this._progressChecker),this._progressChecker=null),this._msectl.seek(e),this._transmuxer.seek(Math.floor(1e3*e)),this._config.accurateSeek&&(this._requestSetTime=!0,this._mediaElement.currentTime=e))}else window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this),50)},e.prototype._checkAndResumeStuckPlayback=function(e){var t=this._mediaElement;if(e||!this._receivedCanPlay||t.readyState<2){var i=t.buffered;i.length>0&&t.currentTime<i.start(0)&&(c.Z.w(this.TAG,"Playback seems stuck at ".concat(t.currentTime,", seek to ").concat(i.start(0))),this._requestSetTime=!0,this._mediaElement.currentTime=i.start(0),this._mediaElement.removeEventListener("progress",this.e.onvProgress))}else this._mediaElement.removeEventListener("progress",this.e.onvProgress)},e.prototype._onvLoadedMetadata=function(e){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null)},e.prototype._onvSeeking=function(e){var t=this._mediaElement.currentTime,i=this._mediaElement.buffered;if(this._requestSetTime)this._requestSetTime=!1;else{if(t<1&&i.length>0){var n=i.start(0);if(n<1&&t<n||_.Z.safari)return this._requestSetTime=!0,void(this._mediaElement.currentTime=_.Z.safari?.1:n)}if(this._isTimepointBuffered(t)){if(this._alwaysSeekKeyframe){var r=this._msectl.getNearestKeyframe(Math.floor(1e3*t));null!=r&&(this._requestSetTime=!0,this._mediaElement.currentTime=r.dts/1e3)}null!=this._progressChecker&&this._checkProgressAndResume()}else this._seekpointRecord={seekPoint:t,recordTime:this._now()},window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this),50)}},e.prototype._onvCanPlay=function(e){this._receivedCanPlay=!0,this._mediaElement.removeEventListener("canplay",this.e.onvCanPlay)},e.prototype._onvStalled=function(e){this._checkAndResumeStuckPlayback(!0)},e.prototype._onvProgress=function(e){this._checkAndResumeStuckPlayback()},e}(),k=function(){function e(e,t){if(this.TAG="NativePlayer",this._type="NativePlayer",this._emitter=new(l()),this._config=o(),"object"==typeof t&&Object.assign(this._config,t),"flv"===e.type.toLowerCase())throw new A.OC("NativePlayer does't support flv MediaDataSource input!");if(e.hasOwnProperty("segments"))throw new A.OC("NativePlayer(".concat(e.type,") doesn't support multipart playback!"));this.e={onvLoadedMetadata:this._onvLoadedMetadata.bind(this)},this._pendingSeekTime=null,this._statisticsReporter=null,this._mediaDataSource=e,this._mediaElement=null}return e.prototype.destroy=function(){this._mediaElement&&(this.unload(),this.detachMediaElement()),this.e=null,this._mediaDataSource=null,this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){var i=this;e===f.MEDIA_INFO?null!=this._mediaElement&&0!==this._mediaElement.readyState&&Promise.resolve().then((function(){i._emitter.emit(f.MEDIA_INFO,i.mediaInfo)})):e===f.STATISTICS_INFO&&null!=this._mediaElement&&0!==this._mediaElement.readyState&&Promise.resolve().then((function(){i._emitter.emit(f.STATISTICS_INFO,i.statisticsInfo)})),this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.attachMediaElement=function(e){if(this._mediaElement=e,e.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),null!=this._pendingSeekTime)try{e.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(e){}},e.prototype.detachMediaElement=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement=null),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},e.prototype.load=function(){if(!this._mediaElement)throw new A.rT("HTMLMediaElement must be attached before load()!");this._mediaElement.src=this._mediaDataSource.url,this._mediaElement.readyState>0&&(this._mediaElement.currentTime=0),this._mediaElement.preload="auto",this._mediaElement.load(),this._statisticsReporter=window.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval)},e.prototype.unload=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src")),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},e.prototype.play=function(){return this._mediaElement.play()},e.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(e){this._mediaElement.volume=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(e){this._mediaElement.muted=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"speed",{get:function(){return this._mediaElement.playbackRate},set:function(e){this._mediaElement.playbackRate=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(e){this._mediaElement?this._mediaElement.currentTime=e:this._pendingSeekTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"mediaInfo",{get:function(){var e={mimeType:(this._mediaElement instanceof HTMLAudioElement?"audio/":"video/")+this._mediaDataSource.type};return this._mediaElement&&(e.duration=Math.floor(1e3*this._mediaElement.duration),this._mediaElement instanceof HTMLVideoElement&&(e.width=this._mediaElement.videoWidth,e.height=this._mediaElement.videoHeight)),e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"statisticsInfo",{get:function(){var e={playerType:this._type,url:this._mediaDataSource.url};if(!(this._mediaElement instanceof HTMLVideoElement))return e;var t=!0,i=0,n=0;if(this._mediaElement.getVideoPlaybackQuality){var r=this._mediaElement.getVideoPlaybackQuality();i=r.totalVideoFrames,n=r.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,n=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=i,e.droppedFrames=n),e},enumerable:!1,configurable:!0}),e.prototype._onvLoadedMetadata=function(e){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null),this._emitter.emit(f.MEDIA_INFO,this.mediaInfo)},e.prototype._reportStatisticsInfo=function(){this._emitter.emit(f.STATISTICS_INFO,this.statisticsInfo)},e}();n.Z.install();var D={createPlayer:function(e,t){var i=e;if(null==i||"object"!=typeof i)throw new A.OC("MediaDataSource must be an javascript object!");if(!i.hasOwnProperty("type"))throw new A.OC("MediaDataSource must has type field to indicate video file type!");return"flv"===i.type?new C(i,t):new k(i,t)},isSupported:function(){return h.supportMSEH264Playback()},getFeatureList:function(){return h.getFeatureList()}};D.BaseLoader=u.fp,D.LoaderStatus=u.GM,D.LoaderErrors=u.nm,D.Events=f,D.ErrorTypes=O,D.ErrorDetails=T,D.FlvPlayer=C,D.NativePlayer=k,D.LoggingControl=g.Z,Object.defineProperty(D,"version",{enumerable:!0,get:function(){return"1.7.2"}}),window.flv265=D;var B=D},324:function(e,t,i){e.exports=i(60).default},34:function(e,t,i){"use strict";i.d(t,{Z:function(){return E}});var n,r=i(300),s=function(){function e(){this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._totalBytes=0,this._lastSecondBytes=0,self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now}return e.prototype.reset=function(){this._firstCheckpoint=this._lastCheckpoint=0,this._totalBytes=this._intervalBytes=0,this._lastSecondBytes=0},e.prototype.addBytes=function(e){0===this._firstCheckpoint?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=e,this._totalBytes+=e):this._now()-this._lastCheckpoint<1e3?(this._intervalBytes+=e,this._totalBytes+=e):(this._lastSecondBytes=this._intervalBytes,this._intervalBytes=e,this._totalBytes+=e,this._lastCheckpoint=this._now())},Object.defineProperty(e.prototype,"currentKBps",{get:function(){this.addBytes(0);var e=(this._now()-this._lastCheckpoint)/1e3;return 0==e&&(e=1),this._intervalBytes/e/1024},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastSecondKBps",{get:function(){return this.addBytes(0),0!==this._lastSecondBytes?this._lastSecondBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"averageKBps",{get:function(){var e=(this._now()-this._firstCheckpoint)/1e3;return this._totalBytes/e/1024},enumerable:!1,configurable:!0}),e}(),o=i(939),a=i(538),h=i(29),u=(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}),d=function(e){function t(t,i){var n=e.call(this,"fetch-stream-loader")||this;return n.TAG="FetchStreamLoader",n._seekHandler=t,n._config=i,n._needStash=!0,n._requestAbort=!1,n._contentLength=null,n._receivedLength=0,n}return u(t,e),t.isSupported=function(){try{var e=a.Z.msedge&&a.Z.version.minor>=15048,t=!a.Z.msedge||e;return self.fetch&&self.ReadableStream&&t}catch(e){return!1}},t.prototype.destroy=function(){this.isWorking()&&this.abort(),e.prototype.destroy.call(this)},t.prototype.open=function(e,t){var i=this;this._dataSource=e,this._range=t;var n=e.url;this._config.reuseRedirectedURL&&null!=e.redirectedURL&&(n=e.redirectedURL);var r=this._seekHandler.getConfig(n,t),s=new self.Headers;if("object"==typeof r.headers){var a=r.headers;for(var u in a)a.hasOwnProperty(u)&&s.append(u,a[u])}var d={method:"GET",headers:s,mode:"cors",cache:"default",referrerPolicy:"no-referrer-when-downgrade"};if("object"==typeof this._config.headers)for(var u in this._config.headers)s.append(u,this._config.headers[u]);!1===e.cors&&(d.mode="same-origin"),e.withCredentials&&(d.credentials="include"),e.referrerPolicy&&(d.referrerPolicy=e.referrerPolicy),self.AbortController&&(this._abortController=new self.AbortController,d.signal=this._abortController.signal),this._status=o.GM.kConnecting,self.fetch(r.url,d).then((function(e){if(i._requestAbort)return i._status=o.GM.kIdle,void e.body.cancel();if(e.ok&&e.status>=200&&e.status<=299){if(e.url!==r.url&&i._onURLRedirect){var t=i._seekHandler.removeURLParameters(e.url);i._onURLRedirect(t)}var n=e.headers.get("Content-Length");return null!=n&&(i._contentLength=parseInt(n),0!==i._contentLength&&i._onContentLengthKnown&&i._onContentLengthKnown(i._contentLength)),i._pump.call(i,e.body.getReader())}if(i._status=o.GM.kError,!i._onError)throw new h.OZ("FetchStreamLoader: Http code invalid, "+e.status+" "+e.statusText);i._onError(o.nm.HTTP_STATUS_CODE_INVALID,{code:e.status,msg:e.statusText})})).catch((function(e){if(!i._abortController||!i._abortController.signal.aborted){if(i._status=o.GM.kError,!i._onError)throw e;i._onError(o.nm.EXCEPTION,{code:-1,msg:e.message})}}))},t.prototype.abort=function(){if(this._requestAbort=!0,(this._status!==o.GM.kBuffering||!a.Z.chrome)&&this._abortController)try{this._abortController.abort()}catch(e){}},t.prototype._pump=function(e){var t=this;return e.read().then((function(i){if(i.done)if(null!==t._contentLength&&t._receivedLength<t._contentLength){t._status=o.GM.kError;var n=o.nm.EARLY_EOF,r={code:-1,msg:"Fetch stream meet Early-EOF"};if(!t._onError)throw new h.OZ(r.msg);t._onError(n,r)}else t._status=o.GM.kComplete,t._onComplete&&t._onComplete(t._range.from,t._range.from+t._receivedLength-1);else{if(t._abortController&&t._abortController.signal.aborted)return void(t._status=o.GM.kComplete);if(!0===t._requestAbort)return t._status=o.GM.kComplete,e.cancel();t._status=o.GM.kBuffering;var s=i.value.buffer,a=t._range.from+t._receivedLength;t._receivedLength+=s.byteLength,t._onDataArrival&&t._onDataArrival(s,a,t._receivedLength),t._pump(e)}})).catch((function(e){if(t._abortController&&t._abortController.signal.aborted)t._status=o.GM.kComplete;else if(11!==e.code||!a.Z.msedge){t._status=o.GM.kError;var i=0,n=null;if(19!==e.code&&"network error"!==e.message||!(null===t._contentLength||null!==t._contentLength&&t._receivedLength<t._contentLength)?(i=o.nm.EXCEPTION,n={code:e.code,msg:e.message}):(i=o.nm.EARLY_EOF,n={code:e.code,msg:"Fetch stream meet Early-EOF"}),!t._onError)throw new h.OZ(n.msg);t._onError(i,n)}}))},t}(o.fp),l=function(){var e=function(t,i){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},e(t,i)};return function(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=t}e(t,i),t.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),c=function(e){function t(t,i){var n=e.call(this,"xhr-moz-chunked-loader")||this;return n.TAG="MozChunkedLoader",n._seekHandler=t,n._config=i,n._needStash=!0,n._xhr=null,n._requestAbort=!1,n._contentLength=null,n._receivedLength=0,n}return l(t,e),t.isSupported=function(){try{var e=new XMLHttpRequest;return e.open("GET","https://example.com",!0),e.responseType="moz-chunked-arraybuffer","moz-chunked-arraybuffer"===e.responseType}catch(e){return r.Z.w("MozChunkedLoader",e.message),!1}},t.prototype.destroy=function(){this.isWorking()&&this.abort(),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onloadend=null,this._xhr.onerror=null,this._xhr=null),e.prototype.destroy.call(this)},t.prototype.open=function(e,t){this._dataSource=e,this._range=t;var i=e.url;this._config.reuseRedirectedURL&&null!=e.redirectedURL&&(i=e.redirectedURL);var n=this._seekHandler.getConfig(i,t);this._requestURL=n.url;var r=this._xhr=new XMLHttpRequest;if(r.open("GET",n.url,!0),r.responseType="moz-chunked-arraybuffer",r.onreadystatechange=this._onReadyStateChange.bind(this),r.onprogress=this._onProgress.bind(this),r.onloadend=this._onLoadEnd.bind(this),r.onerror=this._onXhrError.bind(this),e.withCredentials&&(r.withCredentials=!0),"object"==typeof n.headers){var s=n.headers;for(var a in s)s.hasOwnProperty(a)&&r.setRequestHeader(a,s[a])}if("object"==typeof this._config.headers){s=this._config.headers;for(var a in s)s.hasOwnProperty(a)&&r.setRequestHeader(a,s[a])}this._status=o.GM.kConnecting,r.send()},t.prototype.abort=function(){this._requestAbort=!0,this._xhr&&this._xhr.abort(),this._status=o.GM.kComplete},t.prototype._onReadyStateChange=function(e){var t=e.target;if(2===t.readyState){if(null!=t.responseURL&&t.responseURL!==this._requestURL&&this._onURLRedirect){var i=this._seekHandler.removeURLParameters(t.responseURL);this._onURLRedirect(i)}if(0!==t.status&&(t.status<200||t.status>299)){if(this._status=o.GM.kError,!this._onError)throw new h.OZ("MozChunkedLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(o.nm.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}else this._status=o.GM.kBuffering}},t.prototype._onProgress=function(e){if(this._status!==o.GM.kError){null===this._contentLength&&null!==e.total&&0!==e.total&&(this._contentLength=e.total,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength));var t=e.target.response,i=this._range.from+this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,i,this._receivedLength)}},t.prototype._onLoadEnd=function(e){!0!==this._requestAbort?this._status!==o.GM.kError&&(this._status=o.GM.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1)):this._requestAbort=!1},t.prototype._onXhrError=function(e){this._status=o.GM.kError;var t=0,i=null;if(this._contentLength&&e.loaded<this._contentLength?(t=o.nm.EARLY_EOF,i={code:-1,msg:"Moz-Chunked stream meet Early-Eof"}):(t=o.nm.EXCEPTION,i={code:-1,msg:e.constructor.name+" "+e.type}),!this._onError)throw new h.OZ(i.msg);this._onError(t,i)},t}(o.fp),_=function(){var e=function(t,i){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},e(t,i)};return function(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=t}e(t,i),t.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),f=(function(e){function t(t,i){var n=e.call(this,"xhr-msstream-loader")||this;return n.TAG="MSStreamLoader",n._seekHandler=t,n._config=i,n._needStash=!0,n._xhr=null,n._reader=null,n._totalRange=null,n._currentRange=null,n._currentRequestURL=null,n._currentRedirectedURL=null,n._contentLength=null,n._receivedLength=0,n._bufferLimit=16777216,n._lastTimeBufferSize=0,n._isReconnecting=!1,n}_(t,e),t.isSupported=function(){try{if(void 0===self.MSStream||void 0===self.MSStreamReader)return!1;var e=new XMLHttpRequest;return e.open("GET","https://example.com",!0),e.responseType="ms-stream","ms-stream"===e.responseType}catch(e){return r.Z.w("MSStreamLoader",e.message),!1}},t.prototype.destroy=function(){this.isWorking()&&this.abort(),this._reader&&(this._reader.onprogress=null,this._reader.onload=null,this._reader.onerror=null,this._reader=null),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr=null),e.prototype.destroy.call(this)},t.prototype.open=function(e,t){this._internalOpen(e,t,!1)},t.prototype._internalOpen=function(e,t,i){this._dataSource=e,i?this._currentRange=t:this._totalRange=t;var n=e.url;this._config.reuseRedirectedURL&&(null!=this._currentRedirectedURL?n=this._currentRedirectedURL:null!=e.redirectedURL&&(n=e.redirectedURL));var r=this._seekHandler.getConfig(n,t);this._currentRequestURL=r.url;var s=this._reader=new self.MSStreamReader;s.onprogress=this._msrOnProgress.bind(this),s.onload=this._msrOnLoad.bind(this),s.onerror=this._msrOnError.bind(this);var a=this._xhr=new XMLHttpRequest;if(a.open("GET",r.url,!0),a.responseType="ms-stream",a.onreadystatechange=this._xhrOnReadyStateChange.bind(this),a.onerror=this._xhrOnError.bind(this),e.withCredentials&&(a.withCredentials=!0),"object"==typeof r.headers){var h=r.headers;for(var u in h)h.hasOwnProperty(u)&&a.setRequestHeader(u,h[u])}if("object"==typeof this._config.headers){h=this._config.headers;for(var u in h)h.hasOwnProperty(u)&&a.setRequestHeader(u,h[u])}this._isReconnecting?this._isReconnecting=!1:this._status=o.GM.kConnecting,a.send()},t.prototype.abort=function(){this._internalAbort(),this._status=o.GM.kComplete},t.prototype._internalAbort=function(){this._reader&&(1===this._reader.readyState&&this._reader.abort(),this._reader.onprogress=null,this._reader.onload=null,this._reader.onerror=null,this._reader=null),this._xhr&&(this._xhr.abort(),this._xhr.onreadystatechange=null,this._xhr=null)},t.prototype._xhrOnReadyStateChange=function(e){var t=e.target;if(2===t.readyState)if(t.status>=200&&t.status<=299){if(this._status=o.GM.kBuffering,null!=t.responseURL){var i=this._seekHandler.removeURLParameters(t.responseURL);t.responseURL!==this._currentRequestURL&&i!==this._currentRedirectedURL&&(this._currentRedirectedURL=i,this._onURLRedirect&&this._onURLRedirect(i))}var n=t.getResponseHeader("Content-Length");if(null!=n&&null==this._contentLength){var r=parseInt(n);r>0&&(this._contentLength=r,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength))}}else{if(this._status=o.GM.kError,!this._onError)throw new h.OZ("MSStreamLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(o.nm.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}else if(3===t.readyState&&t.status>=200&&t.status<=299){this._status=o.GM.kBuffering;var s=t.response;this._reader.readAsArrayBuffer(s)}},t.prototype._xhrOnError=function(e){this._status=o.GM.kError;var t=o.nm.EXCEPTION,i={code:-1,msg:e.constructor.name+" "+e.type};if(!this._onError)throw new h.OZ(i.msg);this._onError(t,i)},t.prototype._msrOnProgress=function(e){var t=e.target.result;if(null!=t){var i=t.slice(this._lastTimeBufferSize);this._lastTimeBufferSize=t.byteLength;var n=this._totalRange.from+this._receivedLength;this._receivedLength+=i.byteLength,this._onDataArrival&&this._onDataArrival(i,n,this._receivedLength),t.byteLength>=this._bufferLimit&&(r.Z.v(this.TAG,"MSStream buffer exceeded max size near ".concat(n+i.byteLength,", reconnecting...")),this._doReconnectIfNeeded())}else this._doReconnectIfNeeded()},t.prototype._doReconnectIfNeeded=function(){if(null==this._contentLength||this._receivedLength<this._contentLength){this._isReconnecting=!0,this._lastTimeBufferSize=0,this._internalAbort();var e={from:this._totalRange.from+this._receivedLength,to:-1};this._internalOpen(this._dataSource,e,!0)}},t.prototype._msrOnLoad=function(e){this._status=o.GM.kComplete,this._onComplete&&this._onComplete(this._totalRange.from,this._totalRange.from+this._receivedLength-1)},t.prototype._msrOnError=function(e){this._status=o.GM.kError;var t=0,i=null;if(this._contentLength&&this._receivedLength<this._contentLength?(t=o.nm.EARLY_EOF,i={code:-1,msg:"MSStream meet Early-Eof"}):(t=o.nm.EARLY_EOF,i={code:-1,msg:e.constructor.name+" "+e.type}),!this._onError)throw new h.OZ(i.msg);this._onError(t,i)}}(o.fp),function(){var e=function(t,i){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},e(t,i)};return function(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=t}e(t,i),t.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}()),p=function(e){function t(t,i){var n=e.call(this,"xhr-range-loader")||this;return n.TAG="RangeLoader",n._seekHandler=t,n._config=i,n._needStash=!1,n._chunkSizeKBList=[128,256,384,512,768,1024,1536,2048,3072,4096,5120,6144,7168,8192],n._currentChunkSizeKB=384,n._currentSpeedNormalized=0,n._zeroSpeedChunkCount=0,n._xhr=null,n._speedSampler=new s,n._requestAbort=!1,n._waitForTotalLength=!1,n._totalLengthReceived=!1,n._currentRequestURL=null,n._currentRedirectedURL=null,n._currentRequestRange=null,n._totalLength=null,n._contentLength=null,n._receivedLength=0,n._lastTimeLoaded=0,n}return f(t,e),t.isSupported=function(){try{var e=new XMLHttpRequest;return e.open("GET","https://example.com",!0),e.responseType="arraybuffer","arraybuffer"===e.responseType}catch(e){return r.Z.w("RangeLoader",e.message),!1}},t.prototype.destroy=function(){this.isWorking()&&this.abort(),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr=null),e.prototype.destroy.call(this)},Object.defineProperty(t.prototype,"currentSpeed",{get:function(){return this._speedSampler.lastSecondKBps},enumerable:!1,configurable:!0}),t.prototype.open=function(e,t){this._dataSource=e,this._range=t,this._status=o.GM.kConnecting;var i=!1;null!=this._dataSource.filesize&&0!==this._dataSource.filesize&&(i=!0,this._totalLength=this._dataSource.filesize),this._totalLengthReceived||i?this._openSubRange():(this._waitForTotalLength=!0,this._internalOpen(this._dataSource,{from:0,to:-1}))},t.prototype._openSubRange=function(){var e=1024*this._currentChunkSizeKB,t=this._range.from+this._receivedLength,i=t+e;null!=this._contentLength&&i-this._range.from>=this._contentLength&&(i=this._range.from+this._contentLength-1),this._currentRequestRange={from:t,to:i},this._internalOpen(this._dataSource,this._currentRequestRange)},t.prototype._internalOpen=function(e,t){this._lastTimeLoaded=0;var i=e.url;this._config.reuseRedirectedURL&&(null!=this._currentRedirectedURL?i=this._currentRedirectedURL:null!=e.redirectedURL&&(i=e.redirectedURL));var n=this._seekHandler.getConfig(i,t);this._currentRequestURL=n.url;var r=this._xhr=new XMLHttpRequest;if(r.open("GET",n.url,!0),r.responseType="arraybuffer",r.onreadystatechange=this._onReadyStateChange.bind(this),r.onprogress=this._onProgress.bind(this),r.onload=this._onLoad.bind(this),r.onerror=this._onXhrError.bind(this),e.withCredentials&&(r.withCredentials=!0),"object"==typeof n.headers){var s=n.headers;for(var o in s)s.hasOwnProperty(o)&&r.setRequestHeader(o,s[o])}if("object"==typeof this._config.headers){s=this._config.headers;for(var o in s)s.hasOwnProperty(o)&&r.setRequestHeader(o,s[o])}r.send()},t.prototype.abort=function(){this._requestAbort=!0,this._internalAbort(),this._status=o.GM.kComplete},t.prototype._internalAbort=function(){this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr.abort(),this._xhr=null)},t.prototype._onReadyStateChange=function(e){var t=e.target;if(2===t.readyState){if(null!=t.responseURL){var i=this._seekHandler.removeURLParameters(t.responseURL);t.responseURL!==this._currentRequestURL&&i!==this._currentRedirectedURL&&(this._currentRedirectedURL=i,this._onURLRedirect&&this._onURLRedirect(i))}if(t.status>=200&&t.status<=299){if(this._waitForTotalLength)return;this._status=o.GM.kBuffering}else{if(this._status=o.GM.kError,!this._onError)throw new h.OZ("RangeLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(o.nm.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}}},t.prototype._onProgress=function(e){if(this._status!==o.GM.kError){if(null===this._contentLength){var t=!1;if(this._waitForTotalLength){this._waitForTotalLength=!1,this._totalLengthReceived=!0,t=!0;var i=e.total;this._internalAbort(),null!=i&0!==i&&(this._totalLength=i)}if(-1===this._range.to?this._contentLength=this._totalLength-this._range.from:this._contentLength=this._range.to-this._range.from+1,t)return void this._openSubRange();this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)}var n=e.loaded-this._lastTimeLoaded;this._lastTimeLoaded=e.loaded,this._speedSampler.addBytes(n)}},t.prototype._normalizeSpeed=function(e){var t=this._chunkSizeKBList,i=t.length-1,n=0,r=0,s=i;if(e<t[0])return t[0];for(;r<=s;){if((n=r+Math.floor((s-r)/2))===i||e>=t[n]&&e<t[n+1])return t[n];t[n]<e?r=n+1:s=n-1}},t.prototype._onLoad=function(e){if(this._status!==o.GM.kError)if(this._waitForTotalLength)this._waitForTotalLength=!1;else{this._lastTimeLoaded=0;var t=this._speedSampler.lastSecondKBps;if(0===t&&(this._zeroSpeedChunkCount++,this._zeroSpeedChunkCount>=3&&(t=this._speedSampler.currentKBps)),0!==t){var i=this._normalizeSpeed(t);this._currentSpeedNormalized!==i&&(this._currentSpeedNormalized=i,this._currentChunkSizeKB=i)}var n=e.target.response,r=this._range.from+this._receivedLength;this._receivedLength+=n.byteLength;var s=!1;null!=this._contentLength&&this._receivedLength<this._contentLength?this._openSubRange():s=!0,this._onDataArrival&&this._onDataArrival(n,r,this._receivedLength),s&&(this._status=o.GM.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1))}},t.prototype._onXhrError=function(e){this._status=o.GM.kError;var t=0,i=null;if(this._contentLength&&this._receivedLength>0&&this._receivedLength<this._contentLength?(t=o.nm.EARLY_EOF,i={code:-1,msg:"RangeLoader meet Early-Eof"}):(t=o.nm.EXCEPTION,i={code:-1,msg:e.constructor.name+" "+e.type}),!this._onError)throw new h.OZ(i.msg);this._onError(t,i)},t}(o.fp),m=function(){var e=function(t,i){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},e(t,i)};return function(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=t}e(t,i),t.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),g=function(e){function t(){var t=e.call(this,"websocket-loader")||this;return t.TAG="WebSocketLoader",t._needStash=!0,t._ws=null,t._requestAbort=!1,t._receivedLength=0,t}return m(t,e),t.isSupported=function(){try{return void 0!==self.WebSocket}catch(e){return!1}},t.prototype.destroy=function(){this._ws&&this.abort(),e.prototype.destroy.call(this)},t.prototype.open=function(e){try{var t=this._ws=new self.WebSocket(e.url);t.binaryType="arraybuffer",t.onopen=this._onWebSocketOpen.bind(this),t.onclose=this._onWebSocketClose.bind(this),t.onmessage=this._onWebSocketMessage.bind(this),t.onerror=this._onWebSocketError.bind(this),this._status=o.GM.kConnecting}catch(e){this._status=o.GM.kError;var i={code:e.code,msg:e.message};if(!this._onError)throw new h.OZ(i.msg);this._onError(o.nm.EXCEPTION,i)}},t.prototype.abort=function(){var e=this._ws;!e||0!==e.readyState&&1!==e.readyState||(this._requestAbort=!0,e.close()),this._ws=null,this._status=o.GM.kComplete},t.prototype._onWebSocketOpen=function(e){this._status=o.GM.kBuffering},t.prototype._onWebSocketClose=function(e){!0!==this._requestAbort?(this._status=o.GM.kComplete,this._onComplete&&this._onComplete(0,this._receivedLength-1)):this._requestAbort=!1},t.prototype._onWebSocketMessage=function(e){var t=this;if(e.data instanceof ArrayBuffer)this._dispatchArrayBuffer(e.data);else if(e.data instanceof Blob){var i=new FileReader;i.onload=function(){t._dispatchArrayBuffer(i.result)},i.readAsArrayBuffer(e.data)}else{this._status=o.GM.kError;var n={code:-1,msg:"Unsupported WebSocket message type: "+e.data.constructor.name};if(!this._onError)throw new h.OZ(n.msg);this._onError(o.nm.EXCEPTION,n)}},t.prototype._dispatchArrayBuffer=function(e){var t=e,i=this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,i,this._receivedLength)},t.prototype._onWebSocketError=function(e){this._status=o.GM.kError;var t={code:e.code,msg:e.message};if(!this._onError)throw new h.OZ(t.msg);this._onError(o.nm.EXCEPTION,t)},t}(o.fp),v=function(){function e(e){this._zeroStart=e||!1}return e.prototype.getConfig=function(e,t){var i={};if(0!==t.from||-1!==t.to){var n=void 0;n=-1!==t.to?"bytes=".concat(t.from.toString(),"-").concat(t.to.toString()):"bytes=".concat(t.from.toString(),"-"),i.Range=n}else this._zeroStart&&(i.Range="bytes=0-");return{url:e,headers:i}},e.prototype.removeURLParameters=function(e){return e},e}(),y=function(){function e(e,t){this._startName=e,this._endName=t}return e.prototype.getConfig=function(e,t){var i=e;if(0!==t.from||-1!==t.to){var n=!0;-1===i.indexOf("?")&&(i+="?",n=!1),n&&(i+="&"),i+="".concat(this._startName,"=").concat(t.from.toString()),-1!==t.to&&(i+="&".concat(this._endName,"=").concat(t.to.toString()))}return{url:i,headers:{}}},e.prototype.removeURLParameters=function(e){var t=e.split("?")[0],i=void 0,n=e.indexOf("?");-1!==n&&(i=e.substring(n+1));var r="";if(null!=i&&i.length>0)for(var s=i.split("&"),o=0;o<s.length;o++){var a=s[o].split("="),h=o>0;a[0]!==this._startName&&a[0]!==this._endName&&(h&&(r+="&"),r+=s[o])}return 0===r.length?t:t+"?"+r},e}(),E=function(){function e(e,t,i){this.TAG="IOController",this._config=t,this._extraData=i,this._stashInitialSize=393216,null!=t.stashInitialSize&&t.stashInitialSize>0&&(this._stashInitialSize=t.stashInitialSize),this._stashUsed=0,this._stashSize=this._stashInitialSize,this._bufferSize=3145728,this._stashBuffer=new ArrayBuffer(this._bufferSize),this._stashByteStart=0,this._enableStash=!0,!1===t.enableStashBuffer&&(this._enableStash=!1),this._loader=null,this._loaderClass=null,this._seekHandler=null,this._dataSource=e,this._isWebSocketURL=/wss?:\/\/(.+?)/.test(e.url),this._refTotalLength=e.filesize?e.filesize:null,this._totalLength=this._refTotalLength,this._fullRequestFlag=!1,this._currentRange=null,this._redirectedURL=null,this._speedNormalized=0,this._speedSampler=new s,this._speedNormalizeList=[64,128,256,384,512,768,1024,1536,2048,3072,4096],this._isEarlyEofReconnecting=!1,this._paused=!1,this._resumeFrom=0,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._selectSeekHandler(),this._selectLoader(),this._createLoader()}return e.prototype.destroy=function(){this._loader.isWorking()&&this._loader.abort(),this._loader.destroy(),this._loader=null,this._loaderClass=null,this._dataSource=null,this._stashBuffer=null,this._stashUsed=this._stashSize=this._bufferSize=this._stashByteStart=0,this._currentRange=null,this._speedSampler=null,this._isEarlyEofReconnecting=!1,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._extraData=null},e.prototype.isWorking=function(){return this._loader&&this._loader.isWorking()&&!this._paused},e.prototype.isPaused=function(){return this._paused},Object.defineProperty(e.prototype,"status",{get:function(){return this._loader.status},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"extraData",{get:function(){return this._extraData},set:function(e){this._extraData=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDataArrival",{get:function(){return this._onDataArrival},set:function(e){this._onDataArrival=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onSeeked",{get:function(){return this._onSeeked},set:function(e){this._onSeeked=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{get:function(){return this._onError},set:function(e){this._onError=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onComplete",{get:function(){return this._onComplete},set:function(e){this._onComplete=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onRedirect",{get:function(){return this._onRedirect},set:function(e){this._onRedirect=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onRecoveredEarlyEof",{get:function(){return this._onRecoveredEarlyEof},set:function(e){this._onRecoveredEarlyEof=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentURL",{get:function(){return this._dataSource.url},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasRedirect",{get:function(){return null!=this._redirectedURL||null!=this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentRedirectedURL",{get:function(){return this._redirectedURL||this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentSpeed",{get:function(){return this._loaderClass===p?this._loader.currentSpeed:this._speedSampler.lastSecondKBps},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"loaderType",{get:function(){return this._loader.type},enumerable:!1,configurable:!0}),e.prototype._selectSeekHandler=function(){var e=this._config;if("range"===e.seekType)this._seekHandler=new v(this._config.rangeLoadZeroStart);else if("param"===e.seekType){var t=e.seekParamStart||"bstart",i=e.seekParamEnd||"bend";this._seekHandler=new y(t,i)}else{if("custom"!==e.seekType)throw new h.OC("Invalid seekType in config: ".concat(e.seekType));if("function"!=typeof e.customSeekHandler)throw new h.OC("Custom seekType specified in config but invalid customSeekHandler!");this._seekHandler=new e.customSeekHandler}},e.prototype._selectLoader=function(){if(null!=this._config.customLoader)this._loaderClass=this._config.customLoader;else if(this._isWebSocketURL)this._loaderClass=g;else if(d.isSupported())this._loaderClass=d;else if(c.isSupported())this._loaderClass=c;else{if(!p.isSupported())throw new h.OZ("Your browser doesn't support xhr with arraybuffer responseType!");this._loaderClass=p}},e.prototype._createLoader=function(){this._loader=new this._loaderClass(this._seekHandler,this._config),!1===this._loader.needStashBuffer&&(this._enableStash=!1),this._loader.onContentLengthKnown=this._onContentLengthKnown.bind(this),this._loader.onURLRedirect=this._onURLRedirect.bind(this),this._loader.onDataArrival=this._onLoaderChunkArrival.bind(this),this._loader.onComplete=this._onLoaderComplete.bind(this),this._loader.onError=this._onLoaderError.bind(this)},e.prototype.open=function(e){this._currentRange={from:0,to:-1},e&&(this._currentRange.from=e),this._speedSampler.reset(),e||(this._fullRequestFlag=!0),this._loader.open(this._dataSource,Object.assign({},this._currentRange))},e.prototype.abort=function(){this._loader.abort(),this._paused&&(this._paused=!1,this._resumeFrom=0)},e.prototype.pause=function(){this.isWorking()&&(this._loader.abort(),0!==this._stashUsed?(this._resumeFrom=this._stashByteStart,this._currentRange.to=this._stashByteStart-1):this._resumeFrom=this._currentRange.to+1,this._stashUsed=0,this._stashByteStart=0,this._paused=!0)},e.prototype.resume=function(){if(this._paused){this._paused=!1;var e=this._resumeFrom;this._resumeFrom=0,this._internalSeek(e,!0)}},e.prototype.seek=function(e){this._paused=!1,this._stashUsed=0,this._stashByteStart=0,this._internalSeek(e,!0)},e.prototype._internalSeek=function(e,t){this._loader.isWorking()&&this._loader.abort(),this._flushStashBuffer(t),this._loader.destroy(),this._loader=null;var i={from:e,to:-1};this._currentRange={from:i.from,to:-1},this._speedSampler.reset(),this._stashSize=this._stashInitialSize,this._createLoader(),this._loader.open(this._dataSource,i),this._onSeeked&&this._onSeeked()},e.prototype.updateUrl=function(e){if(!e||"string"!=typeof e||0===e.length)throw new h.OC("Url must be a non-empty string!");this._dataSource.url=e},e.prototype._expandBuffer=function(e){for(var t=this._stashSize;t+1048576<e;)t*=2;if((t+=1048576)!==this._bufferSize){var i=new ArrayBuffer(t);if(this._stashUsed>0){var n=new Uint8Array(this._stashBuffer,0,this._stashUsed);new Uint8Array(i,0,t).set(n,0)}this._stashBuffer=i,this._bufferSize=t}},e.prototype._normalizeSpeed=function(e){var t=this._speedNormalizeList,i=t.length-1,n=0,r=0,s=i;if(e<t[0])return t[0];for(;r<=s;){if((n=r+Math.floor((s-r)/2))===i||e>=t[n]&&e<t[n+1])return t[n];t[n]<e?r=n+1:s=n-1}},e.prototype._adjustStashSize=function(e){var t=0;(t=this._config.isLive||e<512?e:e>=512&&e<=1024?Math.floor(1.5*e):2*e)>8192&&(t=8192);var i=1024*t+1048576;this._bufferSize<i&&this._expandBuffer(i),this._stashSize=1024*t},e.prototype._dispatchChunks=function(e,t){return this._currentRange.to=t+e.byteLength-1,this._onDataArrival(e,t)},e.prototype._onURLRedirect=function(e){this._redirectedURL=e,this._onRedirect&&this._onRedirect(e)},e.prototype._onContentLengthKnown=function(e){e&&this._fullRequestFlag&&(this._totalLength=e,this._fullRequestFlag=!1)},e.prototype._onLoaderChunkArrival=function(e,t,i){if(!this._onDataArrival)throw new h.rT("IOController: No existing consumer (onDataArrival) callback!");if(!this._paused){this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,this._onRecoveredEarlyEof&&this._onRecoveredEarlyEof()),this._speedSampler.addBytes(e.byteLength);var n=this._speedSampler.lastSecondKBps;if(0!==n){var r=this._normalizeSpeed(n);this._speedNormalized!==r&&(this._speedNormalized=r,this._adjustStashSize(r))}if(this._enableStash)if(0===this._stashUsed&&0===this._stashByteStart&&(this._stashByteStart=t),this._stashUsed+e.byteLength<=this._stashSize){(a=new Uint8Array(this._stashBuffer,0,this._stashSize)).set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength}else{a=new Uint8Array(this._stashBuffer,0,this._bufferSize);if(this._stashUsed>0){var s=this._stashBuffer.slice(0,this._stashUsed);if((u=this._dispatchChunks(s,this._stashByteStart))<s.byteLength){if(u>0){d=new Uint8Array(s,u);a.set(d,0),this._stashUsed=d.byteLength,this._stashByteStart+=u}}else this._stashUsed=0,this._stashByteStart+=u;this._stashUsed+e.byteLength>this._bufferSize&&(this._expandBuffer(this._stashUsed+e.byteLength),a=new Uint8Array(this._stashBuffer,0,this._bufferSize)),a.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength}else{if((u=this._dispatchChunks(e,t))<e.byteLength)(o=e.byteLength-u)>this._bufferSize&&(this._expandBuffer(o),a=new Uint8Array(this._stashBuffer,0,this._bufferSize)),a.set(new Uint8Array(e,u),0),this._stashUsed+=o,this._stashByteStart=t+u}}else if(0===this._stashUsed){var o;if((u=this._dispatchChunks(e,t))<e.byteLength)(o=e.byteLength-u)>this._bufferSize&&this._expandBuffer(o),(a=new Uint8Array(this._stashBuffer,0,this._bufferSize)).set(new Uint8Array(e,u),0),this._stashUsed+=o,this._stashByteStart=t+u}else{var a,u;if(this._stashUsed+e.byteLength>this._bufferSize&&this._expandBuffer(this._stashUsed+e.byteLength),(a=new Uint8Array(this._stashBuffer,0,this._bufferSize)).set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength,(u=this._dispatchChunks(this._stashBuffer.slice(0,this._stashUsed),this._stashByteStart))<this._stashUsed&&u>0){var d=new Uint8Array(this._stashBuffer,u);a.set(d,0)}this._stashUsed-=u,this._stashByteStart+=u}}},e.prototype._flushStashBuffer=function(e){if(this._stashUsed>0){var t=this._stashBuffer.slice(0,this._stashUsed),i=this._dispatchChunks(t,this._stashByteStart),n=t.byteLength-i;if(i<t.byteLength){if(!e){if(i>0){var s=new Uint8Array(this._stashBuffer,0,this._bufferSize),o=new Uint8Array(t,i);s.set(o,0),this._stashUsed=o.byteLength,this._stashByteStart+=i}return 0}r.Z.w(this.TAG,"".concat(n," bytes unconsumed data remain when flush buffer, dropped"))}return this._stashUsed=0,this._stashByteStart=0,n}return 0},e.prototype._onLoaderComplete=function(e,t){this._flushStashBuffer(!0),this._onComplete&&this._onComplete(this._extraData)},e.prototype._onLoaderError=function(e,t){switch(r.Z.e(this.TAG,"Loader error, code = ".concat(t.code,", msg = ").concat(t.msg)),this._flushStashBuffer(!1),this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,e=o.nm.UNRECOVERABLE_EARLY_EOF),e){case o.nm.EARLY_EOF:if(!this._config.isLive&&this._totalLength){var i=this._currentRange.to+1;return void(i<this._totalLength&&(r.Z.w(this.TAG,"Connection lost, trying reconnect..."),this._isEarlyEofReconnecting=!0,this._internalSeek(i,!1)))}e=o.nm.UNRECOVERABLE_EARLY_EOF;case o.nm.UNRECOVERABLE_EARLY_EOF:case o.nm.CONNECTING_TIMEOUT:case o.nm.HTTP_STATUS_CODE_INVALID:case o.nm.EXCEPTION:}if(!this._onError)throw new h.OZ("IOException: "+t.msg);this._onError(e,t)},e}()},939:function(e,t,i){"use strict";i.d(t,{GM:function(){return r},fp:function(){return o},nm:function(){return s}});var n=i(29),r={kIdle:0,kConnecting:1,kBuffering:2,kError:3,kComplete:4},s={OK:"OK",EXCEPTION:"Exception",HTTP_STATUS_CODE_INVALID:"HttpStatusCodeInvalid",CONNECTING_TIMEOUT:"ConnectingTimeout",EARLY_EOF:"EarlyEof",UNRECOVERABLE_EARLY_EOF:"UnrecoverableEarlyEof"},o=function(){function e(e){this._type=e||"undefined",this._status=r.kIdle,this._needStash=!1,this._onContentLengthKnown=null,this._onURLRedirect=null,this._onDataArrival=null,this._onError=null,this._onComplete=null}return e.prototype.destroy=function(){this._status=r.kIdle,this._onContentLengthKnown=null,this._onURLRedirect=null,this._onDataArrival=null,this._onError=null,this._onComplete=null},e.prototype.isWorking=function(){return this._status===r.kConnecting||this._status===r.kBuffering},Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"status",{get:function(){return this._status},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"needStashBuffer",{get:function(){return this._needStash},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onContentLengthKnown",{get:function(){return this._onContentLengthKnown},set:function(e){this._onContentLengthKnown=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onURLRedirect",{get:function(){return this._onURLRedirect},set:function(e){this._onURLRedirect=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDataArrival",{get:function(){return this._onDataArrival},set:function(e){this._onDataArrival=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{get:function(){return this._onError},set:function(e){this._onError=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onComplete",{get:function(){return this._onComplete},set:function(e){this._onComplete=e},enumerable:!1,configurable:!0}),e.prototype.open=function(e,t){throw new n.do("Unimplemented abstract function!")},e.prototype.abort=function(){throw new n.do("Unimplemented abstract function!")},e}()},538:function(e,t){"use strict";var i={};!function(){var e=self.navigator.userAgent.toLowerCase(),t=/(edge)\/([\w.]+)/.exec(e)||/(opr)[\/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(iemobile)[\/]([\w.]+)/.exec(e)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(firefox)[ \/]([\w.]+)/.exec(e)||[],n=/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(windows phone)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(android)/.exec(e)||/(windows)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||[],r={browser:t[5]||t[3]||t[1]||"",version:t[2]||t[4]||"0",majorVersion:t[4]||t[2]||"0",platform:n[0]||""},s={};if(r.browser){s[r.browser]=!0;var o=r.majorVersion.split(".");s.version={major:parseInt(r.majorVersion,10),string:r.version},o.length>1&&(s.version.minor=parseInt(o[1],10)),o.length>2&&(s.version.build=parseInt(o[2],10))}if(r.platform&&(s[r.platform]=!0),(s.chrome||s.opr||s.safari)&&(s.webkit=!0),s.rv||s.iemobile){s.rv&&delete s.rv;var a="msie";r.browser=a,s[a]=!0}if(s.edge){delete s.edge;var h="msedge";r.browser=h,s[h]=!0}if(s.opr){var u="opera";r.browser=u,s[u]=!0}if(s.safari&&s.android){var d="android";r.browser=d,s[d]=!0}for(var l in s.name=r.browser,s.platform=r.platform,i)i.hasOwnProperty(l)&&delete i[l];Object.assign(i,s)}(),t.Z=i},29:function(e,t,i){"use strict";i.d(t,{OC:function(){return a},OZ:function(){return s},do:function(){return h},rT:function(){return o}});var n,r=(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}),s=function(){function e(e){this._message=e}return Object.defineProperty(e.prototype,"name",{get:function(){return"RuntimeException"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this._message},enumerable:!1,configurable:!0}),e.prototype.toString=function(){return this.name+": "+this.message},e}(),o=function(e){function t(t){return e.call(this,t)||this}return r(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"IllegalStateException"},enumerable:!1,configurable:!0}),t}(s),a=function(e){function t(t){return e.call(this,t)||this}return r(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"InvalidArgumentException"},enumerable:!1,configurable:!0}),t}(s),h=function(e){function t(t){return e.call(this,t)||this}return r(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"NotImplementedException"},enumerable:!1,configurable:!0}),t}(s)},300:function(e,t,i){"use strict";var n=i(716),r=i.n(n),s=function(){function e(){}return e.e=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var n="[".concat(t,"] > ").concat(i);e.ENABLE_CALLBACK&&e.emitter.emit("log","error",n),e.ENABLE_ERROR&&(console.error?console.error(n):console.warn?console.warn(n):console.log(n))},e.i=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var n="[".concat(t,"] > ").concat(i);e.ENABLE_CALLBACK&&e.emitter.emit("log","info",n),e.ENABLE_INFO&&(console.info?console.info(n):console.log(n))},e.w=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var n="[".concat(t,"] > ").concat(i);e.ENABLE_CALLBACK&&e.emitter.emit("log","warn",n),e.ENABLE_WARN&&(console.warn?console.warn(n):console.log(n))},e.d=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var n="[".concat(t,"] > ").concat(i);e.ENABLE_CALLBACK&&e.emitter.emit("log","debug",n),e.ENABLE_DEBUG&&(console.debug?console.debug(n):console.log(n))},e.v=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var n="[".concat(t,"] > ").concat(i);e.ENABLE_CALLBACK&&e.emitter.emit("log","verbose",n),e.ENABLE_VERBOSE&&console.log(n)},e}();s.GLOBAL_TAG="flv.js",s.FORCE_GLOBAL_TAG=!1,s.ENABLE_ERROR=!0,s.ENABLE_INFO=!1,s.ENABLE_WARN=!1,s.ENABLE_DEBUG=!1,s.ENABLE_VERBOSE=!1,s.ENABLE_CALLBACK=!1,s.emitter=new(r()),t.Z=s},846:function(e,t,i){"use strict";var n=i(716),r=i.n(n),s=i(300),o=function(){function e(){}return Object.defineProperty(e,"forceGlobalTag",{get:function(){return s.Z.FORCE_GLOBAL_TAG},set:function(t){s.Z.FORCE_GLOBAL_TAG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"globalTag",{get:function(){return s.Z.GLOBAL_TAG},set:function(t){s.Z.GLOBAL_TAG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableAll",{get:function(){return s.Z.ENABLE_VERBOSE&&s.Z.ENABLE_DEBUG&&s.Z.ENABLE_INFO&&s.Z.ENABLE_WARN&&s.Z.ENABLE_ERROR},set:function(t){s.Z.ENABLE_VERBOSE=t,s.Z.ENABLE_DEBUG=t,s.Z.ENABLE_INFO=t,s.Z.ENABLE_WARN=t,s.Z.ENABLE_ERROR=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableDebug",{get:function(){return s.Z.ENABLE_DEBUG},set:function(t){s.Z.ENABLE_DEBUG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableVerbose",{get:function(){return s.Z.ENABLE_VERBOSE},set:function(t){s.Z.ENABLE_VERBOSE=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableInfo",{get:function(){return s.Z.ENABLE_INFO},set:function(t){s.Z.ENABLE_INFO=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableWarn",{get:function(){return s.Z.ENABLE_WARN},set:function(t){s.Z.ENABLE_WARN=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableError",{get:function(){return s.Z.ENABLE_ERROR},set:function(t){s.Z.ENABLE_ERROR=t,e._notifyChange()},enumerable:!1,configurable:!0}),e.getConfig=function(){return{globalTag:s.Z.GLOBAL_TAG,forceGlobalTag:s.Z.FORCE_GLOBAL_TAG,enableVerbose:s.Z.ENABLE_VERBOSE,enableDebug:s.Z.ENABLE_DEBUG,enableInfo:s.Z.ENABLE_INFO,enableWarn:s.Z.ENABLE_WARN,enableError:s.Z.ENABLE_ERROR,enableCallback:s.Z.ENABLE_CALLBACK}},e.applyConfig=function(e){s.Z.GLOBAL_TAG=e.globalTag,s.Z.FORCE_GLOBAL_TAG=e.forceGlobalTag,s.Z.ENABLE_VERBOSE=e.enableVerbose,s.Z.ENABLE_DEBUG=e.enableDebug,s.Z.ENABLE_INFO=e.enableInfo,s.Z.ENABLE_WARN=e.enableWarn,s.Z.ENABLE_ERROR=e.enableError,s.Z.ENABLE_CALLBACK=e.enableCallback},e._notifyChange=function(){var t=e.emitter;if(t.listenerCount("change")>0){var i=e.getConfig();t.emit("change",i)}},e.registerListener=function(t){e.emitter.addListener("change",t)},e.removeListener=function(t){e.emitter.removeListener("change",t)},e.addLogListener=function(t){s.Z.emitter.addListener("log",t),s.Z.emitter.listenerCount("log")>0&&(s.Z.ENABLE_CALLBACK=!0,e._notifyChange())},e.removeLogListener=function(t){s.Z.emitter.removeListener("log",t),0===s.Z.emitter.listenerCount("log")&&(s.Z.ENABLE_CALLBACK=!1,e._notifyChange())},e}();o.emitter=new(r()),t.Z=o},219:function(e,t,i){"use strict";var n=function(){function e(){}return e.install=function(){Object.setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Object.assign=Object.assign||function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;i<arguments.length;i++){var n=arguments[i];if(null!=n)for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}return t},"function"!=typeof self.Promise&&i(264).polyfill()},e}();n.install(),t.Z=n}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,i),s.exports}return i.m=e,i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,{a:t}),t},i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i(324)}()}));
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.flvjs=t():e.flvjs=t()}(this,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=230)}([function(e,t,r){"use strict";var i=r(8),n=r.n(i),a=function(){function e(){}return e.e=function(t,r){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var i="["+t+"] > "+r;e.ENABLE_CALLBACK&&e.emitter.emit("log","error",i),e.ENABLE_ERROR&&(console.error?console.error(i):console.warn?console.warn(i):console.log(i))},e.i=function(t,r){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var i="["+t+"] > "+r;e.ENABLE_CALLBACK&&e.emitter.emit("log","info",i),e.ENABLE_INFO&&(console.info?console.info(i):console.log(i))},e.w=function(t,r){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var i="["+t+"] > "+r;e.ENABLE_CALLBACK&&e.emitter.emit("log","warn",i),e.ENABLE_WARN&&(console.warn?console.warn(i):console.log(i))},e.d=function(t,r){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var i="["+t+"] > "+r;e.ENABLE_CALLBACK&&e.emitter.emit("log","debug",i),e.ENABLE_DEBUG&&(console.debug?console.debug(i):console.log(i))},e.v=function(t,r){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var i="["+t+"] > "+r;e.ENABLE_CALLBACK&&e.emitter.emit("log","verbose",i),e.ENABLE_VERBOSE&&console.log(i)},e}();a.GLOBAL_TAG="flv.js",a.FORCE_GLOBAL_TAG=!1,a.ENABLE_ERROR=!0,a.ENABLE_INFO=!1,a.ENABLE_WARN=!1,a.ENABLE_DEBUG=!1,a.ENABLE_VERBOSE=!1,a.ENABLE_CALLBACK=!1,a.emitter=new n.a,t.a=a},function(e,t,r){"use strict";r.d(t,"G",(function(){return i})),r.d(t,"E",(function(){return n})),r.d(t,"F",(function(){return a})),r.d(t,"w",(function(){return o})),r.d(t,"l",(function(){return s})),r.d(t,"q",(function(){return u})),r.d(t,"y",(function(){return d})),r.d(t,"v",(function(){return h})),r.d(t,"k",(function(){return l})),r.d(t,"s",(function(){return f})),r.d(t,"t",(function(){return c})),r.d(t,"m",(function(){return p})),r.d(t,"D",(function(){return m})),r.d(t,"x",(function(){return g})),r.d(t,"A",(function(){return _})),r.d(t,"B",(function(){return y})),r.d(t,"u",(function(){return b})),r.d(t,"r",(function(){return v})),r.d(t,"o",(function(){return w})),r.d(t,"z",(function(){return E})),r.d(t,"n",(function(){return A})),r.d(t,"b",(function(){return S})),r.d(t,"a",(function(){return M})),r.d(t,"f",(function(){return T})),r.d(t,"p",(function(){return R})),r.d(t,"C",(function(){return k})),r.d(t,"i",(function(){return D})),r.d(t,"d",(function(){return x})),r.d(t,"h",(function(){return C})),r.d(t,"c",(function(){return P})),r.d(t,"j",(function(){return N})),r.d(t,"e",(function(){return L})),r.d(t,"g",(function(){return B}));var i=1,n=2,a=3,o=1,s=2,u=3,d=4,h=6,l=7,f=10,c=11,p=12,m=13,g=14,_=15,y=16,b=20,v=21,w=102,E=103,A=200,S=1,M=2,T=3,R=22,k=23,I=!0,O=!0;function D(e){I=e}function x(){return I}function C(e){e}function P(){return O}function N(e){return new Promise((function(t){return setTimeout(t,e)}))}function L(e){var t,r=new Date,i=r.getFullYear(),n=r.getMonth()+1,a=r.getDate();r.getDay();t=i+"-"+n+"-"+a+" "+r.getHours()+":"+r.getMinutes()+":"+r.getSeconds(),console.log("["+t+"]: "+e)}function B(){for(var e=window.location.href.split("/"),t="",r=0;r<3;r++)t+=e[r],t+="/";return t}},function(e,t,r){"use strict";t.a={IO_ERROR:"io_error",DEMUX_ERROR:"demux_error",INIT_SEGMENT:"init_segment",MEDIA_SEGMENT:"media_segment",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info",RECOMMEND_SEEKPOINT:"recommend_seekpoint",RECONNECT_ING:"reconnect_ing",RECONNECT_SUCCESS:"reconnect_success",IS_ENCODED_H265:"encoded_265",SOURCE_ENDED:"source_ended",UPDATE_DURATION:"update_duration",UPDATE_KBPS:"update_kbps",SOCKET_CLOSE:"socket_close",SEI_DATA:"sei_data",AUDIO_ERROR:"audio_error",ON_DBL_CLICK:"ondblclick",RECORDING:"recording"}},function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"b",(function(){return o})),r.d(t,"a",(function(){return s}));var i=r(4);function n(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var a={kIdle:0,kConnecting:1,kBuffering:2,kError:3,kComplete:4},o={OK:"OK",EXCEPTION:"Exception",HTTP_STATUS_CODE_INVALID:"HttpStatusCodeInvalid",CONNECTING_TIMEOUT:"ConnectingTimeout",EARLY_EOF:"EarlyEof",UNRECOVERABLE_EARLY_EOF:"UnrecoverableEarlyEof"},s=function(){function e(e){this._type=e||"undefined",this._status=a.kIdle,this._needStash=!1,this._onContentLengthKnown=null,this._onURLRedirect=null,this._onDataArrival=null,this._onHLSError=null,this._onError=null,this._onComplete=null}var t,r,o,s=e.prototype;return s.destroy=function(){this._status=a.kIdle,this._onContentLengthKnown=null,this._onURLRedirect=null,this._onDataArrival=null,this._onError=null,this._onHLSError=null,this._onComplete=null},s.isWorking=function(){return this._status===a.kConnecting||this._status===a.kBuffering},s.open=function(e,t){throw new i.c("Unimplemented abstract function!")},s.abort=function(){throw new i.c("Unimplemented abstract function!")},t=e,(r=[{key:"type",get:function(){return this._type}},{key:"status",get:function(){return this._status}},{key:"needStashBuffer",get:function(){return this._needStash}},{key:"onContentLengthKnown",get:function(){return this._onContentLengthKnown},set:function(e){this._onContentLengthKnown=e}},{key:"onURLRedirect",get:function(){return this._onURLRedirect},set:function(e){this._onURLRedirect=e}},{key:"onDataArrival",get:function(){return this._onDataArrival},set:function(e){this._onDataArrival=e}},{key:"onHLSError",get:function(){return this._onHLSError},set:function(e){this._onHLSError=e}},{key:"onError",get:function(){return this._onError},set:function(e){this._onError=e}},{key:"onComplete",get:function(){return this._onComplete},set:function(e){this._onComplete=e}}])&&n(t.prototype,r),o&&n(t,o),Object.defineProperty(t,"prototype",{writable:!1}),e}()},function(e,t,r){"use strict";function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,n(e,t)}function n(e,t){return(n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function o(e,t,r){return t&&a(e.prototype,t),r&&a(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}r.d(t,"d",(function(){return s})),r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return d})),r.d(t,"c",(function(){return h}));var s=function(){function e(e){this._message=e}return e.prototype.toString=function(){return this.name+": "+this.message},o(e,[{key:"name",get:function(){return"RuntimeException"}},{key:"message",get:function(){return this._message}}]),e}(),u=function(e){function t(t){return e.call(this,t)||this}return i(t,e),o(t,[{key:"name",get:function(){return"IllegalStateException"}}]),t}(s),d=function(e){function t(t){return e.call(this,t)||this}return i(t,e),o(t,[{key:"name",get:function(){return"InvalidArgumentException"}}]),t}(s),h=function(e){function t(t){return e.call(this,t)||this}return i(t,e),o(t,[{key:"name",get:function(){return"NotImplementedException"}}]),t}(s)},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},function(e,t,r){
- /*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
- var i=r(10),n=i.Buffer;function a(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return n(e,t,r)}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?e.exports=i:(a(i,t),t.Buffer=o),o.prototype=Object.create(n.prototype),a(n,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return n(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var i=n(e);return void 0!==t?"string"==typeof r?i.fill(t,r):i.fill(t):i.fill(0),i},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i.SlowBuffer(e)}},function(e,t,r){"use strict";var i={};!function(){var e=self.navigator.userAgent.toLowerCase(),t=/(edge)\/([\w.]+)/.exec(e)||/(opr)[\/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(iemobile)[\/]([\w.]+)/.exec(e)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(firefox)[ \/]([\w.]+)/.exec(e)||[],r=/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(windows phone)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(android)/.exec(e)||/(windows)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||[],n={browser:t[5]||t[3]||t[1]||"",version:t[2]||t[4]||"0",majorVersion:t[4]||t[2]||"0",platform:r[0]||""},a={};if(n.browser){a[n.browser]=!0;var o=n.majorVersion.split(".");a.version={major:parseInt(n.majorVersion,10),string:n.version},o.length>1&&(a.version.minor=parseInt(o[1],10)),o.length>2&&(a.version.build=parseInt(o[2],10))}if(n.platform&&(a[n.platform]=!0),(a.chrome||a.opr||a.safari)&&(a.webkit=!0),a.rv||a.iemobile){a.rv&&delete a.rv;n.browser="msie",a.msie=!0}if(a.edge){delete a.edge;n.browser="msedge",a.msedge=!0}if(a.opr){n.browser="opera",a.opera=!0}if(a.safari&&a.android){n.browser="android",a.android=!0}for(var s in a.name=n.browser,a.platform=n.platform,i)i.hasOwnProperty(s)&&delete i[s];Object.assign(i,a)}(),t.a=i},function(e,t,r){"use strict";var i,n="object"==typeof Reflect?Reflect:null,a=n&&"function"==typeof n.apply?n.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};i=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,e.exports.once=function(e,t){return new Promise((function(r,i){function n(r){e.removeListener(t,a),i(r)}function a(){"function"==typeof e.removeListener&&e.removeListener("error",n),r([].slice.call(arguments))}_(e,t,a,{once:!0}),"error"!==t&&function(e,t,r){"function"==typeof e.on&&_(e,"error",t,r)}(e,n,{once:!0})}))},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var u=10;function d(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function h(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function l(e,t,r,i){var n,a,o,s;if(d(r),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),a=e._events),o=a[t]),void 0===o)o=a[t]=r,++e._eventsCount;else if("function"==typeof o?o=a[t]=i?[r,o]:[o,r]:i?o.unshift(r):o.push(r),(n=h(e))>0&&o.length>n&&!o.warned){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=o.length,s=u,console&&console.warn&&console.warn(s)}return e}function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function c(e,t,r){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},n=f.bind(i);return n.listener=r,i.wrapFn=n,n}function p(e,t,r){var i=e._events;if(void 0===i)return[];var n=i[t];return void 0===n?[]:"function"==typeof n?r?[n.listener||n]:[n]:r?function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(n):g(n,n.length)}function m(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function g(e,t){for(var r=new Array(t),i=0;i<t;++i)r[i]=e[i];return r}function _(e,t,r,i){if("function"==typeof e.on)i.once?e.once(t,r):e.on(t,r);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function n(a){i.once&&e.removeEventListener(t,n),r(a)}))}}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return u},set:function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");u=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return h(this)},s.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var i="error"===e,n=this._events;if(void 0!==n)i=i&&void 0===n.error;else if(!i)return!1;if(i){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=n[e];if(void 0===u)return!1;if("function"==typeof u)a(u,this,t);else{var d=u.length,h=g(u,d);for(r=0;r<d;++r)a(h[r],this,t)}return!0},s.prototype.addListener=function(e,t){return l(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return l(this,e,t,!0)},s.prototype.once=function(e,t){return d(t),this.on(e,c(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return d(t),this.prependListener(e,c(this,e,t)),this},s.prototype.removeListener=function(e,t){var r,i,n,a,o;if(d(t),void 0===(i=this._events))return this;if(void 0===(r=i[e]))return this;if(r===t||r.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(n=-1,a=r.length-1;a>=0;a--)if(r[a]===t||r[a].listener===t){o=r[a].listener,n=a;break}if(n<0)return this;0===n?r.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(r,n),1===r.length&&(i[e]=r[0]),void 0!==i.removeListener&&this.emit("removeListener",e,o||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,r,i;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var n,a=Object.keys(r);for(i=0;i<a.length;++i)"removeListener"!==(n=a[i])&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(void 0!==t)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this},s.prototype.listeners=function(e){return p(this,e,!0)},s.prototype.rawListeners=function(e){return p(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},s.prototype.listenerCount=m,s.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]}},function(e,t){var r,i,n=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===a||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:a}catch(e){r=a}try{i="function"==typeof clearTimeout?clearTimeout:o}catch(e){i=o}}();var u,d=[],h=!1,l=-1;function f(){h&&u&&(h=!1,u.length?d=u.concat(d):l=-1,d.length&&c())}function c(){if(!h){var e=s(f);h=!0;for(var t=d.length;t;){for(u=d,d=[];++l<t;)u&&u[l].run();l=-1,t=d.length}u=null,h=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===o||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function m(){}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];d.push(new p(e,t)),1!==d.length||h||s(c)},p.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=m,n.addListener=m,n.once=m,n.off=m,n.removeListener=m,n.removeAllListeners=m,n.emit=m,n.prependListener=m,n.prependOnceListener=m,n.listeners=function(e){return[]},n.binding=function(e){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},function(e,t,r){"use strict";(function(e){
- /*!
- * The buffer module from node.js, for the browser.
- *
- * @author Feross Aboukhadijeh <http://feross.org>
- * @license MIT
- */
- var i=r(125),n=r(126),a=r(66);function o(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=u.prototype:(null===e&&(e=new u(t)),e.length=t),e}function u(e,t,r){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return l(this,e)}return d(this,e,t,r)}function d(e,t,r,i){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,i){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(i||0))throw new RangeError("'length' is out of bounds");t=void 0===r&&void 0===i?new Uint8Array(t):void 0===i?new Uint8Array(t,r):new Uint8Array(t,r,i);u.TYPED_ARRAY_SUPPORT?(e=t).__proto__=u.prototype:e=f(e,t);return e}(e,t,r,i):"string"==typeof t?function(e,t,r){"string"==typeof r&&""!==r||(r="utf8");if(!u.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var i=0|p(t,r),n=(e=s(e,i)).write(t,r);n!==i&&(e=e.slice(0,n));return e}(e,t,r):function(e,t){if(u.isBuffer(t)){var r=0|c(t.length);return 0===(e=s(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(i=t.length)!=i?s(e,0):f(e,t);if("Buffer"===t.type&&a(t.data))return f(e,t.data)}var i;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function h(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function l(e,t){if(h(t),e=s(e,t<0?0:0|c(t)),!u.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function f(e,t){var r=t.length<0?0:0|c(t.length);e=s(e,r);for(var i=0;i<r;i+=1)e[i]=255&t[i];return e}function c(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function p(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return j(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(i)return j(e).length;t=(""+t).toLowerCase(),i=!0}}function m(e,t,r){var i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return I(this,t,r);case"utf8":case"utf-8":return T(this,t,r);case"ascii":return R(this,t,r);case"latin1":case"binary":return k(this,t,r);case"base64":return M(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,r);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function g(e,t,r){var i=e[t];e[t]=e[r],e[r]=i}function _(e,t,r,i,n){if(0===e.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=n?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(n)return-1;r=e.length-1}else if(r<0){if(!n)return-1;r=0}if("string"==typeof t&&(t=u.from(t,i)),u.isBuffer(t))return 0===t.length?-1:y(e,t,r,i,n);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):y(e,[t],r,i,n);throw new TypeError("val must be string, number or Buffer")}function y(e,t,r,i,n){var a,o=1,s=e.length,u=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;o=2,s/=2,u/=2,r/=2}function d(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(n){var h=-1;for(a=r;a<s;a++)if(d(e,a)===d(t,-1===h?0:a-h)){if(-1===h&&(h=a),a-h+1===u)return h*o}else-1!==h&&(a-=a-h),h=-1}else for(r+u>s&&(r=s-u),a=r;a>=0;a--){for(var l=!0,f=0;f<u;f++)if(d(e,a+f)!==d(t,f)){l=!1;break}if(l)return a}return-1}function b(e,t,r,i){r=Number(r)||0;var n=e.length-r;i?(i=Number(i))>n&&(i=n):i=n;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");i>a/2&&(i=a/2);for(var o=0;o<i;++o){var s=parseInt(t.substr(2*o,2),16);if(isNaN(s))return o;e[r+o]=s}return o}function v(e,t,r,i){return X(j(t,e.length-r),e,r,i)}function w(e,t,r,i){return X(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,i)}function E(e,t,r,i){return w(e,t,r,i)}function A(e,t,r,i){return X(H(t),e,r,i)}function S(e,t,r,i){return X(function(e,t){for(var r,i,n,a=[],o=0;o<e.length&&!((t-=2)<0);++o)r=e.charCodeAt(o),i=r>>8,n=r%256,a.push(n),a.push(i);return a}(t,e.length-r),e,r,i)}function M(e,t,r){return 0===t&&r===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,r))}function T(e,t,r){r=Math.min(e.length,r);for(var i=[],n=t;n<r;){var a,o,s,u,d=e[n],h=null,l=d>239?4:d>223?3:d>191?2:1;if(n+l<=r)switch(l){case 1:d<128&&(h=d);break;case 2:128==(192&(a=e[n+1]))&&(u=(31&d)<<6|63&a)>127&&(h=u);break;case 3:a=e[n+1],o=e[n+2],128==(192&a)&&128==(192&o)&&(u=(15&d)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:a=e[n+1],o=e[n+2],s=e[n+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&d)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,i.push(h>>>10&1023|55296),h=56320|1023&h),i.push(h),n+=l}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",i=0;for(;i<t;)r+=String.fromCharCode.apply(String,e.slice(i,i+=4096));return r}(i)}t.Buffer=u,t.SlowBuffer=function(e){+e!=e&&(e=0);return u.alloc(+e)},t.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=o(),u.poolSize=8192,u._augment=function(e){return e.__proto__=u.prototype,e},u.from=function(e,t,r){return d(null,e,t,r)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(e,t,r){return function(e,t,r,i){return h(t),t<=0?s(e,t):void 0!==r?"string"==typeof i?s(e,t).fill(r,i):s(e,t).fill(r):s(e,t)}(null,e,t,r)},u.allocUnsafe=function(e){return l(null,e)},u.allocUnsafeSlow=function(e){return l(null,e)},u.isBuffer=function(e){return!(null==e||!e._isBuffer)},u.compare=function(e,t){if(!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,i=t.length,n=0,a=Math.min(r,i);n<a;++n)if(e[n]!==t[n]){r=e[n],i=t[n];break}return r<i?-1:i<r?1:0},u.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(e,t){if(!a(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var i=u.allocUnsafe(t),n=0;for(r=0;r<e.length;++r){var o=e[r];if(!u.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,n),n+=o.length}return i},u.byteLength=p,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},u.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},u.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},u.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?T(this,0,e):m.apply(this,arguments)},u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},u.prototype.compare=function(e,t,r,i,n){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===i&&(i=0),void 0===n&&(n=this.length),t<0||r>e.length||i<0||n>this.length)throw new RangeError("out of range index");if(i>=n&&t>=r)return 0;if(i>=n)return-1;if(t>=r)return 1;if(this===e)return 0;for(var a=(n>>>=0)-(i>>>=0),o=(r>>>=0)-(t>>>=0),s=Math.min(a,o),d=this.slice(i,n),h=e.slice(t,r),l=0;l<s;++l)if(d[l]!==h[l]){a=d[l],o=h[l];break}return a<o?-1:o<a?1:0},u.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},u.prototype.indexOf=function(e,t,r){return _(this,e,t,r,!0)},u.prototype.lastIndexOf=function(e,t,r){return _(this,e,t,r,!1)},u.prototype.write=function(e,t,r,i){if(void 0===t)i="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)i=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===i&&(i="utf8")):(i=r,r=void 0)}var n=this.length-t;if((void 0===r||r>n)&&(r=n),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var a=!1;;)switch(i){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return v(this,e,t,r);case"ascii":return w(this,e,t,r);case"latin1":case"binary":return E(this,e,t,r);case"base64":return A(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,r);default:if(a)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function R(e,t,r){var i="";r=Math.min(e.length,r);for(var n=t;n<r;++n)i+=String.fromCharCode(127&e[n]);return i}function k(e,t,r){var i="";r=Math.min(e.length,r);for(var n=t;n<r;++n)i+=String.fromCharCode(e[n]);return i}function I(e,t,r){var i=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>i)&&(r=i);for(var n="",a=t;a<r;++a)n+=U(e[a]);return n}function O(e,t,r){for(var i=e.slice(t,r),n="",a=0;a<i.length;a+=2)n+=String.fromCharCode(i[a]+256*i[a+1]);return n}function D(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function x(e,t,r,i,n,a){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>n||t<a)throw new RangeError('"value" argument is out of bounds');if(r+i>e.length)throw new RangeError("Index out of range")}function C(e,t,r,i){t<0&&(t=65535+t+1);for(var n=0,a=Math.min(e.length-r,2);n<a;++n)e[r+n]=(t&255<<8*(i?n:1-n))>>>8*(i?n:1-n)}function P(e,t,r,i){t<0&&(t=4294967295+t+1);for(var n=0,a=Math.min(e.length-r,4);n<a;++n)e[r+n]=t>>>8*(i?n:3-n)&255}function N(e,t,r,i,n,a){if(r+i>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function L(e,t,r,i,a){return a||N(e,0,r,4),n.write(e,t,r,i,23,4),r+4}function B(e,t,r,i,a){return a||N(e,0,r,8),n.write(e,t,r,i,52,8),r+8}u.prototype.slice=function(e,t){var r,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=void 0===t?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t<e&&(t=e),u.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=u.prototype;else{var n=t-e;r=new u(n,void 0);for(var a=0;a<n;++a)r[a]=this[a+e]}return r},u.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||D(e,t,this.length);for(var i=this[e],n=1,a=0;++a<t&&(n*=256);)i+=this[e+a]*n;return i},u.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||D(e,t,this.length);for(var i=this[e+--t],n=1;t>0&&(n*=256);)i+=this[e+--t]*n;return i},u.prototype.readUInt8=function(e,t){return t||D(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||D(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||D(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||D(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||D(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||D(e,t,this.length);for(var i=this[e],n=1,a=0;++a<t&&(n*=256);)i+=this[e+a]*n;return i>=(n*=128)&&(i-=Math.pow(2,8*t)),i},u.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||D(e,t,this.length);for(var i=t,n=1,a=this[e+--i];i>0&&(n*=256);)a+=this[e+--i]*n;return a>=(n*=128)&&(a-=Math.pow(2,8*t)),a},u.prototype.readInt8=function(e,t){return t||D(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||D(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(e,t){t||D(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(e,t){return t||D(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||D(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||D(e,4,this.length),n.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||D(e,4,this.length),n.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||D(e,8,this.length),n.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||D(e,8,this.length),n.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,r,i){(e=+e,t|=0,r|=0,i)||x(this,e,t,r,Math.pow(2,8*r)-1,0);var n=1,a=0;for(this[t]=255&e;++a<r&&(n*=256);)this[t+a]=e/n&255;return t+r},u.prototype.writeUIntBE=function(e,t,r,i){(e=+e,t|=0,r|=0,i)||x(this,e,t,r,Math.pow(2,8*r)-1,0);var n=r-1,a=1;for(this[t+n]=255&e;--n>=0&&(a*=256);)this[t+n]=e/a&255;return t+r},u.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):C(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):C(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):P(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,r,i){if(e=+e,t|=0,!i){var n=Math.pow(2,8*r-1);x(this,e,t,r,n-1,-n)}var a=0,o=1,s=0;for(this[t]=255&e;++a<r&&(o*=256);)e<0&&0===s&&0!==this[t+a-1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+r},u.prototype.writeIntBE=function(e,t,r,i){if(e=+e,t|=0,!i){var n=Math.pow(2,8*r-1);x(this,e,t,r,n-1,-n)}var a=r-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+r},u.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):C(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):C(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):P(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,r){return L(this,e,t,!0,r)},u.prototype.writeFloatBE=function(e,t,r){return L(this,e,t,!1,r)},u.prototype.writeDoubleLE=function(e,t,r){return B(this,e,t,!0,r)},u.prototype.writeDoubleBE=function(e,t,r){return B(this,e,t,!1,r)},u.prototype.copy=function(e,t,r,i){if(r||(r=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<r&&(i=r),i===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-r&&(i=e.length-t+r);var n,a=i-r;if(this===e&&r<t&&t<i)for(n=a-1;n>=0;--n)e[n+t]=this[n+r];else if(a<1e3||!u.TYPED_ARRAY_SUPPORT)for(n=0;n<a;++n)e[n+t]=this[n+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+a),t);return a},u.prototype.fill=function(e,t,r,i){if("string"==typeof e){if("string"==typeof t?(i=t,t=0,r=this.length):"string"==typeof r&&(i=r,r=this.length),1===e.length){var n=e.charCodeAt(0);n<256&&(e=n)}if(void 0!==i&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!u.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var a;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(a=t;a<r;++a)this[a]=e;else{var o=u.isBuffer(e)?e:j(new u(e,i).toString()),s=o.length;for(a=0;a<r-t;++a)this[a+t]=o[a%s]}return this};var F=/[^+\/0-9A-Za-z-_]/g;function U(e){return e<16?"0"+e.toString(16):e.toString(16)}function j(e,t){var r;t=t||1/0;for(var i=e.length,n=null,a=[],o=0;o<i;++o){if((r=e.charCodeAt(o))>55295&&r<57344){if(!n){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===i){(t-=3)>-1&&a.push(239,191,189);continue}n=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),n=r;continue}r=65536+(n-55296<<10|r-56320)}else n&&(t-=3)>-1&&a.push(239,191,189);if(n=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function H(e){return i.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(F,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function X(e,t,r,i){for(var n=0;n<i&&!(n+r>=t.length||n>=e.length);++n)t[n+r]=e[n];return n}}).call(this,r(13))},function(e,t,r){(function(e){!function(e,t){"use strict";function i(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function a(e,t,r){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=a:t.BN=a,a.BN=a,a.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(178).Buffer}catch(e){}function s(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function u(e,t,r){var i=s(e,r);return r-1>=t&&(i|=s(e,r-1)<<4),i}function d(e,t,r,i){for(var n=0,a=Math.min(e.length,r),o=t;o<a;o++){var s=e.charCodeAt(o)-48;n*=i,n+=s>=49?s-49+10:s>=17?s-17+10:s}return n}a.isBN=function(e){return e instanceof a||null!==e&&"object"==typeof e&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),i(t===(0|t)&&t>=2&&t<=36);var n=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<e.length&&(16===t?this._parseHex(e,n,r):(this._parseBase(e,t,n),"le"===r&&this._initArray(this.toArray(),t,r)))},a.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(i(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},a.prototype._initArray=function(e,t,r){if(i("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var a,o,s=0;if("be"===r)for(n=e.length-1,a=0;n>=0;n-=3)o=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(n=0,a=0;n<e.length;n+=3)o=e[n]|e[n+1]<<8|e[n+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var n,a=0,o=0;if("be"===r)for(i=e.length-1;i>=t;i-=2)n=u(e,t,i)<<a,this.words[o]|=67108863&n,a>=18?(a-=18,o+=1,this.words[o]|=n>>>26):a+=8;else for(i=(e.length-t)%2==0?t+1:t;i<e.length;i+=2)n=u(e,t,i)<<a,this.words[o]|=67108863&n,a>=18?(a-=18,o+=1,this.words[o]|=n>>>26):a+=8;this.strip()},a.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=t)i++;i--,n=n/t|0;for(var a=e.length-r,o=a%i,s=Math.min(a,a-o)+r,u=0,h=r;h<s;h+=i)u=d(e,h,h+i,t),this.imuln(n),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u);if(0!==o){var l=1;for(u=d(e,h,e.length,t),h=0;h<o;h++)l*=t;this.imuln(l),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u)}this.strip()},a.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},a.prototype.clone=function(){var e=new a(null);return this.copy(e),e},a.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},a.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(e,t,r){r.negative=t.negative^e.negative;var i=e.length+t.length|0;r.length=i,i=i-1|0;var n=0|e.words[0],a=0|t.words[0],o=n*a,s=67108863&o,u=o/67108864|0;r.words[0]=s;for(var d=1;d<i;d++){for(var h=u>>>26,l=67108863&u,f=Math.min(d,t.length-1),c=Math.max(0,d-e.length+1);c<=f;c++){var p=d-c|0;h+=(o=(n=0|e.words[p])*(a=0|t.words[c])+l)/67108864|0,l=67108863&o}r.words[d]=0|l,u=0|h}return 0!==u?r.words[d]=0|u:r.length--,r.strip()}a.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var n=0,a=0,o=0;o<this.length;o++){var s=this.words[o],u=(16777215&(s<<n|a)).toString(16);r=0!==(a=s>>>24-n&16777215)||o!==this.length-1?h[6-u.length]+u+r:u+r,(n+=2)>=26&&(n-=26,o--)}for(0!==a&&(r=a.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var d=l[e],c=f[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(c).toString(e);r=(p=p.idivn(c)).isZero()?m+r:h[d-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(e,t){return i(void 0!==o),this.toArrayLike(o,e,t)},a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,r){var n=this.byteLength(),a=r||Math.max(1,n);i(n<=a,"byte array longer than desired length"),i(a>0,"Requested array length <= 0"),this.strip();var o,s,u="le"===t,d=new e(a),h=this.clone();if(u){for(s=0;!h.isZero();s++)o=h.andln(255),h.iushrn(8),d[s]=o;for(;s<a;s++)d[s]=0}else{for(s=0;s<a-n;s++)d[s]=0;for(s=0;!h.isZero();s++)o=h.andln(255),h.iushrn(8),d[a-s-1]=o}return d},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},a.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return 0!==this.negative},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this.strip()},a.prototype.ior=function(e){return i(0==(this.negative|e.negative)),this.iuor(e)},a.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this.strip()},a.prototype.iand=function(e){return i(0==(this.negative|e.negative)),this.iuand(e)},a.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var i=0;i<r.length;i++)this.words[i]=t.words[i]^r.words[i];if(this!==t)for(;i<t.length;i++)this.words[i]=t.words[i];return this.length=t.length,this.strip()},a.prototype.ixor=function(e){return i(0==(this.negative|e.negative)),this.iuxor(e)},a.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var n=0;n<t;n++)this.words[n]=67108863&~this.words[n];return r>0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var r=e/26|0,n=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<n:this.words[r]&~(1<<n),this.strip()},a.prototype.iadd=function(e){var t,r,i;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,i=e):(r=e,i=this);for(var n=0,a=0;a<i.length;a++)t=(0|r.words[a])+(0|i.words[a])+n,this.words[a]=67108863&t,n=t>>>26;for(;0!==n&&a<r.length;a++)t=(0|r.words[a])+n,this.words[a]=67108863&t,n=t>>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this},a.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},a.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,i,n=this.cmp(e);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=e):(r=e,i=this);for(var a=0,o=0;o<i.length;o++)a=(t=(0|r.words[o])-(0|i.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<r.length;o++)a=(t=(0|r.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this.strip()},a.prototype.sub=function(e){return this.clone().isub(e)};var p=function(e,t,r){var i,n,a,o=e.words,s=t.words,u=r.words,d=0,h=0|o[0],l=8191&h,f=h>>>13,c=0|o[1],p=8191&c,m=c>>>13,g=0|o[2],_=8191&g,y=g>>>13,b=0|o[3],v=8191&b,w=b>>>13,E=0|o[4],A=8191&E,S=E>>>13,M=0|o[5],T=8191&M,R=M>>>13,k=0|o[6],I=8191&k,O=k>>>13,D=0|o[7],x=8191&D,C=D>>>13,P=0|o[8],N=8191&P,L=P>>>13,B=0|o[9],F=8191&B,U=B>>>13,j=0|s[0],H=8191&j,X=j>>>13,W=0|s[1],V=8191&W,z=W>>>13,q=0|s[2],G=8191&q,Q=q>>>13,Y=0|s[3],K=8191&Y,J=Y>>>13,Z=0|s[4],$=8191&Z,ee=Z>>>13,te=0|s[5],re=8191&te,ie=te>>>13,ne=0|s[6],ae=8191&ne,oe=ne>>>13,se=0|s[7],ue=8191&se,de=se>>>13,he=0|s[8],le=8191&he,fe=he>>>13,ce=0|s[9],pe=8191&ce,me=ce>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(d+(i=Math.imul(l,H))|0)+((8191&(n=(n=Math.imul(l,X))+Math.imul(f,H)|0))<<13)|0;d=((a=Math.imul(f,X))+(n>>>13)|0)+(ge>>>26)|0,ge&=67108863,i=Math.imul(p,H),n=(n=Math.imul(p,X))+Math.imul(m,H)|0,a=Math.imul(m,X);var _e=(d+(i=i+Math.imul(l,V)|0)|0)+((8191&(n=(n=n+Math.imul(l,z)|0)+Math.imul(f,V)|0))<<13)|0;d=((a=a+Math.imul(f,z)|0)+(n>>>13)|0)+(_e>>>26)|0,_e&=67108863,i=Math.imul(_,H),n=(n=Math.imul(_,X))+Math.imul(y,H)|0,a=Math.imul(y,X),i=i+Math.imul(p,V)|0,n=(n=n+Math.imul(p,z)|0)+Math.imul(m,V)|0,a=a+Math.imul(m,z)|0;var ye=(d+(i=i+Math.imul(l,G)|0)|0)+((8191&(n=(n=n+Math.imul(l,Q)|0)+Math.imul(f,G)|0))<<13)|0;d=((a=a+Math.imul(f,Q)|0)+(n>>>13)|0)+(ye>>>26)|0,ye&=67108863,i=Math.imul(v,H),n=(n=Math.imul(v,X))+Math.imul(w,H)|0,a=Math.imul(w,X),i=i+Math.imul(_,V)|0,n=(n=n+Math.imul(_,z)|0)+Math.imul(y,V)|0,a=a+Math.imul(y,z)|0,i=i+Math.imul(p,G)|0,n=(n=n+Math.imul(p,Q)|0)+Math.imul(m,G)|0,a=a+Math.imul(m,Q)|0;var be=(d+(i=i+Math.imul(l,K)|0)|0)+((8191&(n=(n=n+Math.imul(l,J)|0)+Math.imul(f,K)|0))<<13)|0;d=((a=a+Math.imul(f,J)|0)+(n>>>13)|0)+(be>>>26)|0,be&=67108863,i=Math.imul(A,H),n=(n=Math.imul(A,X))+Math.imul(S,H)|0,a=Math.imul(S,X),i=i+Math.imul(v,V)|0,n=(n=n+Math.imul(v,z)|0)+Math.imul(w,V)|0,a=a+Math.imul(w,z)|0,i=i+Math.imul(_,G)|0,n=(n=n+Math.imul(_,Q)|0)+Math.imul(y,G)|0,a=a+Math.imul(y,Q)|0,i=i+Math.imul(p,K)|0,n=(n=n+Math.imul(p,J)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,J)|0;var ve=(d+(i=i+Math.imul(l,$)|0)|0)+((8191&(n=(n=n+Math.imul(l,ee)|0)+Math.imul(f,$)|0))<<13)|0;d=((a=a+Math.imul(f,ee)|0)+(n>>>13)|0)+(ve>>>26)|0,ve&=67108863,i=Math.imul(T,H),n=(n=Math.imul(T,X))+Math.imul(R,H)|0,a=Math.imul(R,X),i=i+Math.imul(A,V)|0,n=(n=n+Math.imul(A,z)|0)+Math.imul(S,V)|0,a=a+Math.imul(S,z)|0,i=i+Math.imul(v,G)|0,n=(n=n+Math.imul(v,Q)|0)+Math.imul(w,G)|0,a=a+Math.imul(w,Q)|0,i=i+Math.imul(_,K)|0,n=(n=n+Math.imul(_,J)|0)+Math.imul(y,K)|0,a=a+Math.imul(y,J)|0,i=i+Math.imul(p,$)|0,n=(n=n+Math.imul(p,ee)|0)+Math.imul(m,$)|0,a=a+Math.imul(m,ee)|0;var we=(d+(i=i+Math.imul(l,re)|0)|0)+((8191&(n=(n=n+Math.imul(l,ie)|0)+Math.imul(f,re)|0))<<13)|0;d=((a=a+Math.imul(f,ie)|0)+(n>>>13)|0)+(we>>>26)|0,we&=67108863,i=Math.imul(I,H),n=(n=Math.imul(I,X))+Math.imul(O,H)|0,a=Math.imul(O,X),i=i+Math.imul(T,V)|0,n=(n=n+Math.imul(T,z)|0)+Math.imul(R,V)|0,a=a+Math.imul(R,z)|0,i=i+Math.imul(A,G)|0,n=(n=n+Math.imul(A,Q)|0)+Math.imul(S,G)|0,a=a+Math.imul(S,Q)|0,i=i+Math.imul(v,K)|0,n=(n=n+Math.imul(v,J)|0)+Math.imul(w,K)|0,a=a+Math.imul(w,J)|0,i=i+Math.imul(_,$)|0,n=(n=n+Math.imul(_,ee)|0)+Math.imul(y,$)|0,a=a+Math.imul(y,ee)|0,i=i+Math.imul(p,re)|0,n=(n=n+Math.imul(p,ie)|0)+Math.imul(m,re)|0,a=a+Math.imul(m,ie)|0;var Ee=(d+(i=i+Math.imul(l,ae)|0)|0)+((8191&(n=(n=n+Math.imul(l,oe)|0)+Math.imul(f,ae)|0))<<13)|0;d=((a=a+Math.imul(f,oe)|0)+(n>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,i=Math.imul(x,H),n=(n=Math.imul(x,X))+Math.imul(C,H)|0,a=Math.imul(C,X),i=i+Math.imul(I,V)|0,n=(n=n+Math.imul(I,z)|0)+Math.imul(O,V)|0,a=a+Math.imul(O,z)|0,i=i+Math.imul(T,G)|0,n=(n=n+Math.imul(T,Q)|0)+Math.imul(R,G)|0,a=a+Math.imul(R,Q)|0,i=i+Math.imul(A,K)|0,n=(n=n+Math.imul(A,J)|0)+Math.imul(S,K)|0,a=a+Math.imul(S,J)|0,i=i+Math.imul(v,$)|0,n=(n=n+Math.imul(v,ee)|0)+Math.imul(w,$)|0,a=a+Math.imul(w,ee)|0,i=i+Math.imul(_,re)|0,n=(n=n+Math.imul(_,ie)|0)+Math.imul(y,re)|0,a=a+Math.imul(y,ie)|0,i=i+Math.imul(p,ae)|0,n=(n=n+Math.imul(p,oe)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,oe)|0;var Ae=(d+(i=i+Math.imul(l,ue)|0)|0)+((8191&(n=(n=n+Math.imul(l,de)|0)+Math.imul(f,ue)|0))<<13)|0;d=((a=a+Math.imul(f,de)|0)+(n>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,i=Math.imul(N,H),n=(n=Math.imul(N,X))+Math.imul(L,H)|0,a=Math.imul(L,X),i=i+Math.imul(x,V)|0,n=(n=n+Math.imul(x,z)|0)+Math.imul(C,V)|0,a=a+Math.imul(C,z)|0,i=i+Math.imul(I,G)|0,n=(n=n+Math.imul(I,Q)|0)+Math.imul(O,G)|0,a=a+Math.imul(O,Q)|0,i=i+Math.imul(T,K)|0,n=(n=n+Math.imul(T,J)|0)+Math.imul(R,K)|0,a=a+Math.imul(R,J)|0,i=i+Math.imul(A,$)|0,n=(n=n+Math.imul(A,ee)|0)+Math.imul(S,$)|0,a=a+Math.imul(S,ee)|0,i=i+Math.imul(v,re)|0,n=(n=n+Math.imul(v,ie)|0)+Math.imul(w,re)|0,a=a+Math.imul(w,ie)|0,i=i+Math.imul(_,ae)|0,n=(n=n+Math.imul(_,oe)|0)+Math.imul(y,ae)|0,a=a+Math.imul(y,oe)|0,i=i+Math.imul(p,ue)|0,n=(n=n+Math.imul(p,de)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,de)|0;var Se=(d+(i=i+Math.imul(l,le)|0)|0)+((8191&(n=(n=n+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;d=((a=a+Math.imul(f,fe)|0)+(n>>>13)|0)+(Se>>>26)|0,Se&=67108863,i=Math.imul(F,H),n=(n=Math.imul(F,X))+Math.imul(U,H)|0,a=Math.imul(U,X),i=i+Math.imul(N,V)|0,n=(n=n+Math.imul(N,z)|0)+Math.imul(L,V)|0,a=a+Math.imul(L,z)|0,i=i+Math.imul(x,G)|0,n=(n=n+Math.imul(x,Q)|0)+Math.imul(C,G)|0,a=a+Math.imul(C,Q)|0,i=i+Math.imul(I,K)|0,n=(n=n+Math.imul(I,J)|0)+Math.imul(O,K)|0,a=a+Math.imul(O,J)|0,i=i+Math.imul(T,$)|0,n=(n=n+Math.imul(T,ee)|0)+Math.imul(R,$)|0,a=a+Math.imul(R,ee)|0,i=i+Math.imul(A,re)|0,n=(n=n+Math.imul(A,ie)|0)+Math.imul(S,re)|0,a=a+Math.imul(S,ie)|0,i=i+Math.imul(v,ae)|0,n=(n=n+Math.imul(v,oe)|0)+Math.imul(w,ae)|0,a=a+Math.imul(w,oe)|0,i=i+Math.imul(_,ue)|0,n=(n=n+Math.imul(_,de)|0)+Math.imul(y,ue)|0,a=a+Math.imul(y,de)|0,i=i+Math.imul(p,le)|0,n=(n=n+Math.imul(p,fe)|0)+Math.imul(m,le)|0,a=a+Math.imul(m,fe)|0;var Me=(d+(i=i+Math.imul(l,pe)|0)|0)+((8191&(n=(n=n+Math.imul(l,me)|0)+Math.imul(f,pe)|0))<<13)|0;d=((a=a+Math.imul(f,me)|0)+(n>>>13)|0)+(Me>>>26)|0,Me&=67108863,i=Math.imul(F,V),n=(n=Math.imul(F,z))+Math.imul(U,V)|0,a=Math.imul(U,z),i=i+Math.imul(N,G)|0,n=(n=n+Math.imul(N,Q)|0)+Math.imul(L,G)|0,a=a+Math.imul(L,Q)|0,i=i+Math.imul(x,K)|0,n=(n=n+Math.imul(x,J)|0)+Math.imul(C,K)|0,a=a+Math.imul(C,J)|0,i=i+Math.imul(I,$)|0,n=(n=n+Math.imul(I,ee)|0)+Math.imul(O,$)|0,a=a+Math.imul(O,ee)|0,i=i+Math.imul(T,re)|0,n=(n=n+Math.imul(T,ie)|0)+Math.imul(R,re)|0,a=a+Math.imul(R,ie)|0,i=i+Math.imul(A,ae)|0,n=(n=n+Math.imul(A,oe)|0)+Math.imul(S,ae)|0,a=a+Math.imul(S,oe)|0,i=i+Math.imul(v,ue)|0,n=(n=n+Math.imul(v,de)|0)+Math.imul(w,ue)|0,a=a+Math.imul(w,de)|0,i=i+Math.imul(_,le)|0,n=(n=n+Math.imul(_,fe)|0)+Math.imul(y,le)|0,a=a+Math.imul(y,fe)|0;var Te=(d+(i=i+Math.imul(p,pe)|0)|0)+((8191&(n=(n=n+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;d=((a=a+Math.imul(m,me)|0)+(n>>>13)|0)+(Te>>>26)|0,Te&=67108863,i=Math.imul(F,G),n=(n=Math.imul(F,Q))+Math.imul(U,G)|0,a=Math.imul(U,Q),i=i+Math.imul(N,K)|0,n=(n=n+Math.imul(N,J)|0)+Math.imul(L,K)|0,a=a+Math.imul(L,J)|0,i=i+Math.imul(x,$)|0,n=(n=n+Math.imul(x,ee)|0)+Math.imul(C,$)|0,a=a+Math.imul(C,ee)|0,i=i+Math.imul(I,re)|0,n=(n=n+Math.imul(I,ie)|0)+Math.imul(O,re)|0,a=a+Math.imul(O,ie)|0,i=i+Math.imul(T,ae)|0,n=(n=n+Math.imul(T,oe)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,oe)|0,i=i+Math.imul(A,ue)|0,n=(n=n+Math.imul(A,de)|0)+Math.imul(S,ue)|0,a=a+Math.imul(S,de)|0,i=i+Math.imul(v,le)|0,n=(n=n+Math.imul(v,fe)|0)+Math.imul(w,le)|0,a=a+Math.imul(w,fe)|0;var Re=(d+(i=i+Math.imul(_,pe)|0)|0)+((8191&(n=(n=n+Math.imul(_,me)|0)+Math.imul(y,pe)|0))<<13)|0;d=((a=a+Math.imul(y,me)|0)+(n>>>13)|0)+(Re>>>26)|0,Re&=67108863,i=Math.imul(F,K),n=(n=Math.imul(F,J))+Math.imul(U,K)|0,a=Math.imul(U,J),i=i+Math.imul(N,$)|0,n=(n=n+Math.imul(N,ee)|0)+Math.imul(L,$)|0,a=a+Math.imul(L,ee)|0,i=i+Math.imul(x,re)|0,n=(n=n+Math.imul(x,ie)|0)+Math.imul(C,re)|0,a=a+Math.imul(C,ie)|0,i=i+Math.imul(I,ae)|0,n=(n=n+Math.imul(I,oe)|0)+Math.imul(O,ae)|0,a=a+Math.imul(O,oe)|0,i=i+Math.imul(T,ue)|0,n=(n=n+Math.imul(T,de)|0)+Math.imul(R,ue)|0,a=a+Math.imul(R,de)|0,i=i+Math.imul(A,le)|0,n=(n=n+Math.imul(A,fe)|0)+Math.imul(S,le)|0,a=a+Math.imul(S,fe)|0;var ke=(d+(i=i+Math.imul(v,pe)|0)|0)+((8191&(n=(n=n+Math.imul(v,me)|0)+Math.imul(w,pe)|0))<<13)|0;d=((a=a+Math.imul(w,me)|0)+(n>>>13)|0)+(ke>>>26)|0,ke&=67108863,i=Math.imul(F,$),n=(n=Math.imul(F,ee))+Math.imul(U,$)|0,a=Math.imul(U,ee),i=i+Math.imul(N,re)|0,n=(n=n+Math.imul(N,ie)|0)+Math.imul(L,re)|0,a=a+Math.imul(L,ie)|0,i=i+Math.imul(x,ae)|0,n=(n=n+Math.imul(x,oe)|0)+Math.imul(C,ae)|0,a=a+Math.imul(C,oe)|0,i=i+Math.imul(I,ue)|0,n=(n=n+Math.imul(I,de)|0)+Math.imul(O,ue)|0,a=a+Math.imul(O,de)|0,i=i+Math.imul(T,le)|0,n=(n=n+Math.imul(T,fe)|0)+Math.imul(R,le)|0,a=a+Math.imul(R,fe)|0;var Ie=(d+(i=i+Math.imul(A,pe)|0)|0)+((8191&(n=(n=n+Math.imul(A,me)|0)+Math.imul(S,pe)|0))<<13)|0;d=((a=a+Math.imul(S,me)|0)+(n>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,i=Math.imul(F,re),n=(n=Math.imul(F,ie))+Math.imul(U,re)|0,a=Math.imul(U,ie),i=i+Math.imul(N,ae)|0,n=(n=n+Math.imul(N,oe)|0)+Math.imul(L,ae)|0,a=a+Math.imul(L,oe)|0,i=i+Math.imul(x,ue)|0,n=(n=n+Math.imul(x,de)|0)+Math.imul(C,ue)|0,a=a+Math.imul(C,de)|0,i=i+Math.imul(I,le)|0,n=(n=n+Math.imul(I,fe)|0)+Math.imul(O,le)|0,a=a+Math.imul(O,fe)|0;var Oe=(d+(i=i+Math.imul(T,pe)|0)|0)+((8191&(n=(n=n+Math.imul(T,me)|0)+Math.imul(R,pe)|0))<<13)|0;d=((a=a+Math.imul(R,me)|0)+(n>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,i=Math.imul(F,ae),n=(n=Math.imul(F,oe))+Math.imul(U,ae)|0,a=Math.imul(U,oe),i=i+Math.imul(N,ue)|0,n=(n=n+Math.imul(N,de)|0)+Math.imul(L,ue)|0,a=a+Math.imul(L,de)|0,i=i+Math.imul(x,le)|0,n=(n=n+Math.imul(x,fe)|0)+Math.imul(C,le)|0,a=a+Math.imul(C,fe)|0;var De=(d+(i=i+Math.imul(I,pe)|0)|0)+((8191&(n=(n=n+Math.imul(I,me)|0)+Math.imul(O,pe)|0))<<13)|0;d=((a=a+Math.imul(O,me)|0)+(n>>>13)|0)+(De>>>26)|0,De&=67108863,i=Math.imul(F,ue),n=(n=Math.imul(F,de))+Math.imul(U,ue)|0,a=Math.imul(U,de),i=i+Math.imul(N,le)|0,n=(n=n+Math.imul(N,fe)|0)+Math.imul(L,le)|0,a=a+Math.imul(L,fe)|0;var xe=(d+(i=i+Math.imul(x,pe)|0)|0)+((8191&(n=(n=n+Math.imul(x,me)|0)+Math.imul(C,pe)|0))<<13)|0;d=((a=a+Math.imul(C,me)|0)+(n>>>13)|0)+(xe>>>26)|0,xe&=67108863,i=Math.imul(F,le),n=(n=Math.imul(F,fe))+Math.imul(U,le)|0,a=Math.imul(U,fe);var Ce=(d+(i=i+Math.imul(N,pe)|0)|0)+((8191&(n=(n=n+Math.imul(N,me)|0)+Math.imul(L,pe)|0))<<13)|0;d=((a=a+Math.imul(L,me)|0)+(n>>>13)|0)+(Ce>>>26)|0,Ce&=67108863;var Pe=(d+(i=Math.imul(F,pe))|0)+((8191&(n=(n=Math.imul(F,me))+Math.imul(U,pe)|0))<<13)|0;return d=((a=Math.imul(U,me))+(n>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,u[0]=ge,u[1]=_e,u[2]=ye,u[3]=be,u[4]=ve,u[5]=we,u[6]=Ee,u[7]=Ae,u[8]=Se,u[9]=Me,u[10]=Te,u[11]=Re,u[12]=ke,u[13]=Ie,u[14]=Oe,u[15]=De,u[16]=xe,u[17]=Ce,u[18]=Pe,0!==d&&(u[19]=d,r.length++),r};function m(e,t,r){return(new g).mulp(e,t,r)}function g(e,t){this.x=e,this.y=t}Math.imul||(p=c),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?p(this,e,t):r<63?c(this,e,t):r<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var i=0,n=0,a=0;a<r.length-1;a++){var o=n;n=0;for(var s=67108863&i,u=Math.min(a,t.length-1),d=Math.max(0,a-e.length+1);d<=u;d++){var h=a-d,l=(0|e.words[h])*(0|t.words[d]),f=67108863&l;s=67108863&(f=f+s|0),n+=(o=(o=o+(l/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}r.words[a]=s,i=o,o=n}return 0!==i?r.words[a]=i:r.length--,r.strip()}(this,e,t):m(this,e,t)},g.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,i=0;i<e;i++)t[i]=this.revBin(i,r,e);return t},g.prototype.revBin=function(e,t,r){if(0===e||e===r-1)return e;for(var i=0,n=0;n<t;n++)i|=(1&e)<<t-n-1,e>>=1;return i},g.prototype.permute=function(e,t,r,i,n,a){for(var o=0;o<a;o++)i[o]=t[e[o]],n[o]=r[e[o]]},g.prototype.transform=function(e,t,r,i,n,a){this.permute(a,e,t,r,i,n);for(var o=1;o<n;o<<=1)for(var s=o<<1,u=Math.cos(2*Math.PI/s),d=Math.sin(2*Math.PI/s),h=0;h<n;h+=s)for(var l=u,f=d,c=0;c<o;c++){var p=r[h+c],m=i[h+c],g=r[h+c+o],_=i[h+c+o],y=l*g-f*_;_=l*_+f*g,g=y,r[h+c]=p+g,i[h+c]=m+_,r[h+c+o]=p-g,i[h+c+o]=m-_,c!==s&&(y=u*l-d*f,f=u*f+d*l,l=y)}},g.prototype.guessLen13b=function(e,t){var r=1|Math.max(t,e),i=1&r,n=0;for(r=r/2|0;r;r>>>=1)n++;return 1<<n+1+i},g.prototype.conjugate=function(e,t,r){if(!(r<=1))for(var i=0;i<r/2;i++){var n=e[i];e[i]=e[r-i-1],e[r-i-1]=n,n=t[i],t[i]=-t[r-i-1],t[r-i-1]=-n}},g.prototype.normalize13b=function(e,t){for(var r=0,i=0;i<t/2;i++){var n=8192*Math.round(e[2*i+1]/t)+Math.round(e[2*i]/t)+r;e[i]=67108863&n,r=n<67108864?0:n/67108864|0}return e},g.prototype.convert13b=function(e,t,r,n){for(var a=0,o=0;o<t;o++)a+=0|e[o],r[2*o]=8191&a,a>>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*t;o<n;++o)r[o]=0;i(0===a),i(0==(-8192&a))},g.prototype.stub=function(e){for(var t=new Array(e),r=0;r<e;r++)t[r]=0;return t},g.prototype.mulp=function(e,t,r){var i=2*this.guessLen13b(e.length,t.length),n=this.makeRBT(i),a=this.stub(i),o=new Array(i),s=new Array(i),u=new Array(i),d=new Array(i),h=new Array(i),l=new Array(i),f=r.words;f.length=i,this.convert13b(e.words,e.length,o,i),this.convert13b(t.words,t.length,d,i),this.transform(o,a,s,u,i,n),this.transform(d,a,h,l,i,n);for(var c=0;c<i;c++){var p=s[c]*h[c]-u[c]*l[c];u[c]=s[c]*l[c]+u[c]*h[c],s[c]=p}return this.conjugate(s,u,i),this.transform(s,u,f,a,i,n),this.conjugate(f,a,i),this.normalize13b(f,i),r.negative=e.negative^t.negative,r.length=e.length+t.length,r.strip()},a.prototype.mul=function(e){var t=new a(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},a.prototype.mulf=function(e){var t=new a(null);return t.words=new Array(this.length+e.length),m(this,e,t)},a.prototype.imul=function(e){return this.clone().mulTo(e,this)},a.prototype.imuln=function(e){i("number"==typeof e),i(e<67108864);for(var t=0,r=0;r<this.length;r++){var n=(0|this.words[r])*e,a=(67108863&n)+(67108863&t);t>>=26,t+=n/67108864|0,t+=a>>>26,this.words[r]=67108863&a}return 0!==t&&(this.words[r]=t,this.length++),this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var i=r/26|0,n=r%26;t[r]=(e.words[i]&1<<n)>>>n}return t}(e);if(0===t.length)return new a(1);for(var r=this,i=0;i<t.length&&0===t[i];i++,r=r.sqr());if(++i<t.length)for(var n=r.sqr();i<t.length;i++,n=n.sqr())0!==t[i]&&(r=r.mul(n));return r},a.prototype.iushln=function(e){i("number"==typeof e&&e>=0);var t,r=e%26,n=(e-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,u=(0|this.words[t])-s<<r;this.words[t]=u|o,o=s>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t<n;t++)this.words[t]=0;this.length+=n}return this.strip()},a.prototype.ishln=function(e){return i(0===this.negative),this.iushln(e)},a.prototype.iushrn=function(e,t,r){var n;i("number"==typeof e&&e>=0),n=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,u=r;if(n-=o,n=Math.max(0,n),u){for(var d=0;d<o;d++)u.words[d]=this.words[d];u.length=o}if(0===o);else if(this.length>o)for(this.length-=o,d=0;d<this.length;d++)this.words[d]=this.words[d+o];else this.words[0]=0,this.length=1;var h=0;for(d=this.length-1;d>=0&&(0!==h||d>=n);d--){var l=0|this.words[d];this.words[d]=h<<26-a|l>>>a,h=l&s}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(e,t,r){return i(0===this.negative),this.iushrn(e,t,r)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,n=1<<t;return!(this.length<=r)&&!!(this.words[r]&n)},a.prototype.imaskn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var n=67108863^67108863>>>t<<t;this.words[this.length-1]&=n}return this.strip()},a.prototype.maskn=function(e){return this.clone().imaskn(e)},a.prototype.iaddn=function(e){return i("number"==typeof e),i(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},a.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},a.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this.strip()},a.prototype.addn=function(e){return this.clone().iaddn(e)},a.prototype.subn=function(e){return this.clone().isubn(e)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(e,t,r){var n,a,o=e.length+r;this._expand(o);var s=0;for(n=0;n<e.length;n++){a=(0|this.words[n+r])+s;var u=(0|e.words[n])*t;s=((a-=67108863&u)>>26)-(u/67108864|0),this.words[n+r]=67108863&a}for(;n<this.length-r;n++)s=(a=(0|this.words[n+r])+s)>>26,this.words[n+r]=67108863&a;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n<this.length;n++)s=(a=-(0|this.words[n])+s)>>26,this.words[n]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(e,t){var r=(this.length,e.length),i=this.clone(),n=e,o=0|n.words[n.length-1];0!==(r=26-this._countBits(o))&&(n=n.ushln(r),i.iushln(r),o=0|n.words[n.length-1]);var s,u=i.length-n.length;if("mod"!==t){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var d=0;d<s.length;d++)s.words[d]=0}var h=i.clone()._ishlnsubmul(n,1,u);0===h.negative&&(i=h,s&&(s.words[u]=1));for(var l=u-1;l>=0;l--){var f=67108864*(0|i.words[n.length+l])+(0|i.words[n.length+l-1]);for(f=Math.min(f/o|0,67108863),i._ishlnsubmul(n,f,l);0!==i.negative;)f--,i.negative=0,i._ishlnsubmul(n,1,l),i.isZero()||(i.negative^=1);s&&(s.words[l]=f)}return s&&s.strip(),i.strip(),"div"!==t&&0!==r&&i.iushrn(r),{div:s||null,mod:i}},a.prototype.divmod=function(e,t,r){return i(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(n=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:n,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modn(e.words[0]))}:this._wordDiv(e,t);var n,o,s},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,i=e.ushrn(1),n=e.andln(1),a=r.cmp(i);return a<0||1===n&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modn=function(e){i(e<=67108863);for(var t=(1<<26)%e,r=0,n=this.length-1;n>=0;n--)r=(t*r+(0|this.words[n]))%e;return r},a.prototype.idivn=function(e){i(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*t;this.words[r]=n/e|0,t=n%e}return this.strip()},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),d=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++d;for(var h=r.clone(),l=t.clone();!t.isZero();){for(var f=0,c=1;0==(t.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(h),o.isub(l)),n.iushrn(1),o.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(h),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(u)):(r.isub(t),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(d)}},a.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var l=0,f=1;0==(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(n=0===t.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(e),n},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var i=0;t.isEven()&&r.isEven();i++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var n=t.cmp(r);if(n<0){var a=t;t=r,r=a}else if(0===n||0===r.cmpn(1))break;t.isub(r)}return r.iushln(i)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,r=(e-t)/26,n=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=n,this;for(var a=n,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),i(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:n<e?-1:1}return 0!==this.negative?0|-t:t},a.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},a.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var i=0|this.words[r],n=0|e.words[r];if(i!==n){i<n?t=-1:i>n&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new A(e)},a.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var _={k256:null,p224:null,p192:null,p25519:null};function y(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){A.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},y.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var i=t<this.n?-1:r.ucmp(this.p);return 0===i?(r.words[0]=0,r.length=1):i>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(e,t){e.iushrn(this.n,0,t)},y.prototype.imulK=function(e){return e.imul(this.k)},n(b,y),b.prototype.split=function(e,t){for(var r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var n=e.words[9];for(t.words[t.length++]=4194303&n,i=10;i<e.length;i++){var a=0|e.words[i];e.words[i-10]=(4194303&a)<<4|n>>>22,n=a}n>>>=22,e.words[i-10]=n,0===n&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var i=0|e.words[r];t+=977*i,e.words[r]=67108863&t,t=64*i+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(v,y),n(w,y),n(E,y),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var i=19*(0|e.words[r])+t,n=67108863&i;i>>>=26,e.words[r]=n,t=i}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(_[e])return _[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new v;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return _[e]=t,t},A.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},A.prototype._verify2=function(e,t){i(0==(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},A.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},A.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},A.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},A.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},A.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},A.prototype.isqr=function(e){return this.imul(e,e.clone())},A.prototype.sqr=function(e){return this.mul(e,e)},A.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var r=this.m.add(new a(1)).iushrn(2);return this.pow(e,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),d=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new a(2*h*h).toRed(this);0!==this.pow(h,d).cmp(u);)h.redIAdd(u);for(var l=this.pow(h,n),f=this.pow(e,n.addn(1).iushrn(1)),c=this.pow(e,n),p=o;0!==c.cmp(s);){for(var m=c,g=0;0!==m.cmp(s);g++)m=m.redSqr();i(g<p);var _=this.pow(l,new a(1).iushln(p-g-1));f=f.redMul(_),l=_.redSqr(),c=c.redMul(l),p=g}return f},A.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},A.prototype.pow=function(e,t){if(t.isZero())return new a(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new a(1).toRed(this),r[1]=e;for(var i=2;i<r.length;i++)r[i]=this.mul(r[i-1],e);var n=r[0],o=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),i=t.length-1;i>=0;i--){for(var d=t.words[i],h=u-1;h>=0;h--){var l=d>>h&1;n!==r[0]&&(n=this.sqr(n)),0!==l||0!==o?(o<<=1,o|=l,(4===++s||0===i&&0===h)&&(n=this.mul(n,r[o]),s=0,o=0)):s=0}u=26}return n},A.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},A.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new S(e)},n(S,A),S.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},S.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},S.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var r=e.mul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,this)}).call(this,r(55)(e))},function(e,t,r){"use strict";t.a={OK:"OK",FORMAT_ERROR:"FormatError",FORMAT_UNSUPPORTED:"FormatUnsupported",CODEC_UNSUPPORTED:"CodecUnsupported"}},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=r,r.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)}},function(e,t,r){"use strict";var i=t,n=r(11),a=r(14),o=r(108);i.assert=a,i.toArray=o.toArray,i.zero2=o.zero2,i.toHex=o.toHex,i.encode=o.encode,i.getNAF=function(e,t,r){var i=new Array(Math.max(e.bitLength(),r)+1);i.fill(0);for(var n=1<<t+1,a=e.clone(),o=0;o<i.length;o++){var s,u=a.andln(n-1);a.isOdd()?(s=u>(n>>1)-1?(n>>1)-u:u,a.isubn(s)):s=0,i[o]=s,a.iushrn(1)}return i},i.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var i,n=0,a=0;e.cmpn(-n)>0||t.cmpn(-a)>0;){var o,s,u=e.andln(3)+n&3,d=t.andln(3)+a&3;3===u&&(u=-1),3===d&&(d=-1),o=0==(1&u)?0:3!==(i=e.andln(7)+n&7)&&5!==i||2!==d?u:-u,r[0].push(o),s=0==(1&d)?0:3!==(i=t.andln(7)+a&7)&&5!==i||2!==u?d:-d,r[1].push(s),2*n===o+1&&(n=1-n),2*a===s+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return r},i.cachedProperty=function(e,t,r){var i="_"+t;e.prototype[t]=function(){return void 0!==this[i]?this[i]:this[i]=r.call(this)}},i.parseBytes=function(e){return"string"==typeof e?i.toArray(e,"hex"):e},i.intFromLE=function(e){return new n(e,"hex","le")}},function(e,t,r){"use strict";function i(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}r.d(t,"d",(function(){return n})),r.d(t,"b",(function(){return a})),r.d(t,"a",(function(){return o})),r.d(t,"c",(function(){return s}));var n=function(e,t,r,i,n){this.dts=e,this.pts=t,this.duration=r,this.originalDts=i,this.isSyncPoint=n,this.fileposition=null},a=function(){function e(){this.beginDts=0,this.endDts=0,this.beginPts=0,this.endPts=0,this.originalBeginDts=0,this.originalEndDts=0,this.syncPoints=[],this.firstSample=null,this.lastSample=null}return e.prototype.appendSyncPoint=function(e){e.isSyncPoint=!0,this.syncPoints.push(e)},e}(),o=function(){function e(){this._list=[]}var t=e.prototype;return t.clear=function(){this._list=[]},t.appendArray=function(e){var t=this._list;0!==e.length&&(t.length>0&&e[0].originalDts<t[t.length-1].originalDts&&this.clear(),Array.prototype.push.apply(t,e))},t.getLastSyncPointBeforeDts=function(e){if(0==this._list.length)return null;var t=this._list,r=0,i=t.length-1,n=0,a=0,o=i;for(e<t[0].dts&&(r=0,a=o+1);a<=o;){if((n=a+Math.floor((o-a)/2))===i||e>=t[n].dts&&e<t[n+1].dts){r=n;break}t[n].dts<e?a=n+1:o=n-1}return this._list[r]},e}(),s=function(){function e(e){this._type=e,this._list=[],this._lastAppendLocation=-1}var t,r,n,a=e.prototype;return a.isEmpty=function(){return 0===this._list.length},a.clear=function(){this._list=[],this._lastAppendLocation=-1},a._searchNearestSegmentBefore=function(e){var t=this._list;if(0===t.length)return-2;var r=t.length-1,i=0,n=0,a=r,o=0;if(e<t[0].originalBeginDts)return o=-1;for(;n<=a;){if((i=n+Math.floor((a-n)/2))===r||e>t[i].lastSample.originalDts&&e<t[i+1].originalBeginDts){o=i;break}t[i].originalBeginDts<e?n=i+1:a=i-1}return o},a._searchNearestSegmentAfter=function(e){return this._searchNearestSegmentBefore(e)+1},a.append=function(e){var t=this._list,r=e,i=this._lastAppendLocation,n=0;-1!==i&&i<t.length&&r.originalBeginDts>=t[i].lastSample.originalDts&&(i===t.length-1||i<t.length-1&&r.originalBeginDts<t[i+1].originalBeginDts)?n=i+1:t.length>0&&(n=this._searchNearestSegmentBefore(r.originalBeginDts)+1),this._lastAppendLocation=n,this._list.splice(n,0,r)},a.getLastSegmentBefore=function(e){var t=this._searchNearestSegmentBefore(e);return t>=0?this._list[t]:null},a.getLastSampleBefore=function(e){var t=this.getLastSegmentBefore(e);return null!=t?t.lastSample:null},a.getLastSyncPointBefore=function(e){for(var t=this._searchNearestSegmentBefore(e),r=this._list[t].syncPoints;0===r.length&&t>0;)t--,r=this._list[t].syncPoints;return r.length>0?r[r.length-1]:null},t=e,(r=[{key:"type",get:function(){return this._type}},{key:"length",get:function(){return this._list.length}}])&&i(t.prototype,r),n&&i(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()},function(e,t,r){"use strict";var i=function(){function e(){this.mimeType=null,this.duration=null,this.hasAudio=null,this.hasVideo=null,this.audioCodec=null,this.videoCodec=null,this.audioDataRate=null,this.videoDataRate=null,this.audioSampleRate=null,this.audioChannelCount=null,this.width=null,this.height=null,this.fps=null,this.profile=null,this.level=null,this.refFrames=null,this.chromaFormat=null,this.sarNum=null,this.sarDen=null,this.metadata=null,this.segments=null,this.segmentCount=null,this.hasKeyframesIndex=null,this.keyframesIndex=null}var t=e.prototype;return t.isComplete=function(){var e=!1===this.hasAudio||!0===this.hasAudio&&null!=this.audioCodec&&null!=this.audioSampleRate&&null!=this.audioChannelCount,t=!1===this.hasVideo||!0===this.hasVideo&&null!=this.videoCodec&&null!=this.width&&null!=this.height&&null!=this.fps&&null!=this.profile&&null!=this.level&&null!=this.refFrames&&null!=this.chromaFormat&&null!=this.sarNum&&null!=this.sarDen;return null!=this.mimeType&&null!=this.duration&&null!=this.metadata&&null!=this.hasKeyframesIndex&&e&&t},t.isSeekable=function(){return!0===this.hasKeyframesIndex},t.getNearestKeyframe=function(e){if(null==this.keyframesIndex)return null;var t=this.keyframesIndex,r=this._search(t.times,e);return{index:r,milliseconds:t.times[r],fileposition:t.filepositions[r]}},t._search=function(e,t){var r=0,i=e.length-1,n=0,a=0,o=i;for(t<e[0]&&(r=0,a=o+1);a<=o;){if((n=a+Math.floor((o-a)/2))===i||t>=e[n]&&t<e[n+1]){r=n;break}e[n]<t?a=n+1:o=n-1}return r},e}();t.a=i},function(e,t,r){"use strict";var i=r(14),n=r(5);function a(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function u(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=n,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16))}else for(var i=0,n=0;n<e.length;n++){var o=e.charCodeAt(n);o<128?r[i++]=o:o<2048?(r[i++]=o>>6|192,r[i++]=63&o|128):a(e,n)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++n)),r[i++]=o>>18|240,r[i++]=o>>12&63|128,r[i++]=o>>6&63|128,r[i++]=63&o|128):(r[i++]=o>>12|224,r[i++]=o>>6&63|128,r[i++]=63&o|128)}else for(n=0;n<e.length;n++)r[n]=0|e[n];return r},t.toHex=function(e){for(var t="",r=0;r<e.length;r++)t+=s(e[r].toString(16));return t},t.htonl=o,t.toHex32=function(e,t){for(var r="",i=0;i<e.length;i++){var n=e[i];"little"===t&&(n=o(n)),r+=u(n.toString(16))}return r},t.zero2=s,t.zero8=u,t.join32=function(e,t,r,n){var a=r-t;i(a%4==0);for(var o=new Array(a/4),s=0,u=t;s<o.length;s++,u+=4){var d;d="big"===n?e[u]<<24|e[u+1]<<16|e[u+2]<<8|e[u+3]:e[u+3]<<24|e[u+2]<<16|e[u+1]<<8|e[u],o[s]=d>>>0}return o},t.split32=function(e,t){for(var r=new Array(4*e.length),i=0,n=0;i<e.length;i++,n+=4){var a=e[i];"big"===t?(r[n]=a>>>24,r[n+1]=a>>>16&255,r[n+2]=a>>>8&255,r[n+3]=255&a):(r[n+3]=a>>>24,r[n+2]=a>>>16&255,r[n+1]=a>>>8&255,r[n]=255&a)}return r},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,r){return e+t+r>>>0},t.sum32_4=function(e,t,r,i){return e+t+r+i>>>0},t.sum32_5=function(e,t,r,i,n){return e+t+r+i+n>>>0},t.sum64=function(e,t,r,i){var n=e[t],a=i+e[t+1]>>>0,o=(a<i?1:0)+r+n;e[t]=o>>>0,e[t+1]=a},t.sum64_hi=function(e,t,r,i){return(t+i>>>0<t?1:0)+e+r>>>0},t.sum64_lo=function(e,t,r,i){return t+i>>>0},t.sum64_4_hi=function(e,t,r,i,n,a,o,s){var u=0,d=t;return u+=(d=d+i>>>0)<t?1:0,u+=(d=d+a>>>0)<a?1:0,e+r+n+o+(u+=(d=d+s>>>0)<s?1:0)>>>0},t.sum64_4_lo=function(e,t,r,i,n,a,o,s){return t+i+a+s>>>0},t.sum64_5_hi=function(e,t,r,i,n,a,o,s,u,d){var h=0,l=t;return h+=(l=l+i>>>0)<t?1:0,h+=(l=l+a>>>0)<a?1:0,h+=(l=l+s>>>0)<s?1:0,e+r+n+o+u+(h+=(l=l+d>>>0)<d?1:0)>>>0},t.sum64_5_lo=function(e,t,r,i,n,a,o,s,u,d){return t+i+a+s+d>>>0},t.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},t.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},t.shr64_hi=function(e,t,r){return e>>>r},t.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},function(e,t,r){"use strict";var i=r(8),n=r.n(i),a=r(0);function o(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var s=function(){function e(){}var t,r,i;return e.getConfig=function(){return{globalTag:a.a.GLOBAL_TAG,forceGlobalTag:a.a.FORCE_GLOBAL_TAG,enableVerbose:a.a.ENABLE_VERBOSE,enableDebug:a.a.ENABLE_DEBUG,enableInfo:a.a.ENABLE_INFO,enableWarn:a.a.ENABLE_WARN,enableError:a.a.ENABLE_ERROR,enableCallback:a.a.ENABLE_CALLBACK}},e.applyConfig=function(e){a.a.GLOBAL_TAG=e.globalTag,a.a.FORCE_GLOBAL_TAG=e.forceGlobalTag,a.a.ENABLE_VERBOSE=e.enableVerbose,a.a.ENABLE_DEBUG=e.enableDebug,a.a.ENABLE_INFO=e.enableInfo,a.a.ENABLE_WARN=e.enableWarn,a.a.ENABLE_ERROR=e.enableError,a.a.ENABLE_CALLBACK=e.enableCallback},e._notifyChange=function(){var t=e.emitter;if(t.listenerCount("change")>0){var r=e.getConfig();t.emit("change",r)}},e.registerListener=function(t){e.emitter.addListener("change",t)},e.removeListener=function(t){e.emitter.removeListener("change",t)},e.addLogListener=function(t){a.a.emitter.addListener("log",t),a.a.emitter.listenerCount("log")>0&&(a.a.ENABLE_CALLBACK=!0,e._notifyChange())},e.removeLogListener=function(t){a.a.emitter.removeListener("log",t),0===a.a.emitter.listenerCount("log")&&(a.a.ENABLE_CALLBACK=!1,e._notifyChange())},t=e,i=[{key:"forceGlobalTag",get:function(){return a.a.FORCE_GLOBAL_TAG},set:function(t){a.a.FORCE_GLOBAL_TAG=t,e._notifyChange()}},{key:"globalTag",get:function(){return a.a.GLOBAL_TAG},set:function(t){a.a.GLOBAL_TAG=t,e._notifyChange()}},{key:"enableAll",get:function(){return a.a.ENABLE_VERBOSE&&a.a.ENABLE_DEBUG&&a.a.ENABLE_INFO&&a.a.ENABLE_WARN&&a.a.ENABLE_ERROR},set:function(t){a.a.ENABLE_VERBOSE=t,a.a.ENABLE_DEBUG=t,a.a.ENABLE_INFO=t,a.a.ENABLE_WARN=t,a.a.ENABLE_ERROR=t,e._notifyChange()}},{key:"enableDebug",get:function(){return a.a.ENABLE_DEBUG},set:function(t){a.a.ENABLE_DEBUG=t,e._notifyChange()}},{key:"enableVerbose",get:function(){return a.a.ENABLE_VERBOSE},set:function(t){a.a.ENABLE_VERBOSE=t,e._notifyChange()}},{key:"enableInfo",get:function(){return a.a.ENABLE_INFO},set:function(t){a.a.ENABLE_INFO=t,e._notifyChange()}},{key:"enableWarn",get:function(){return a.a.ENABLE_WARN},set:function(t){a.a.ENABLE_WARN=t,e._notifyChange()}},{key:"enableError",get:function(){return a.a.ENABLE_ERROR},set:function(t){a.a.ENABLE_ERROR=t,e._notifyChange()}}],(r=null)&&o(t.prototype,r),i&&o(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();s.emitter=new n.a,t.a=s},function(e,t,r){var i=r(6).Buffer,n=r(148).Transform,a=r(22).StringDecoder;function o(e){n.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(5)(o,n),o.prototype.update=function(e,t,r){"string"==typeof e&&(e=i.from(e,t));var n=this._update(e);return this.hashMode?this:(r&&(n=this._toString(n,r)),n)},o.prototype.setAutoPadding=function(){},o.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},o.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},o.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},o.prototype._transform=function(e,t,r){var i;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){i=e}finally{r(i)}},o.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},o.prototype._finalOrDigest=function(e){var t=this.__final()||i.alloc(0);return e&&(t=this._toString(t,e,!0)),t},o.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new a(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var i=this._decoder.write(e);return r&&(i+=this._decoder.end()),i},e.exports=o},function(e,t,r){function i(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=e,r.c=t,r.i=function(e){return e},r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},r.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r.oe=function(e){throw console.error(e),e};var i=r(r.s=ENTRY_MODULE);return i.default||i}function n(e){return(e+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function a(e,t,i){var a={};a[i]=[];var o=t.toString(),s=o.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);if(!s)return a;for(var u,d=s[1],h=new RegExp("(\\\\n|\\W)"+n(d)+"\\(\\s*(/\\*.*?\\*/)?\\s*.*?([\\.|\\-|\\+|\\w|/|@]+).*?\\)","g");u=h.exec(o);)"dll-reference"!==u[3]&&a[i].push(u[3]);for(h=new RegExp("\\("+n(d)+'\\("(dll-reference\\s([\\.|\\-|\\+|\\w|/|@]+))"\\)\\)\\(\\s*(/\\*.*?\\*/)?\\s*.*?([\\.|\\-|\\+|\\w|/|@]+).*?\\)',"g");u=h.exec(o);)e[u[2]]||(a[i].push(u[1]),e[u[2]]=r(u[1]).m),a[u[2]]=a[u[2]]||[],a[u[2]].push(u[4]);for(var l,f=Object.keys(a),c=0;c<f.length;c++)for(var p=0;p<a[f[c]].length;p++)l=a[f[c]][p],isNaN(1*l)||(a[f[c]][p]=1*a[f[c]][p]);return a}function o(e){return Object.keys(e).reduce((function(t,r){return t||e[r].length>0}),!1)}e.exports=function(e,t){t=t||{};var n={main:r.m},s=t.all?{main:Object.keys(n.main)}:function(e,t){for(var r={main:[t]},i={main:[]},n={main:{}};o(r);)for(var s=Object.keys(r),u=0;u<s.length;u++){var d=s[u],h=r[d].pop();if(n[d]=n[d]||{},!n[d][h]&&e[d][h]){n[d][h]=!0,i[d]=i[d]||[],i[d].push(h);for(var l=a(e,e[d][h],d),f=Object.keys(l),c=0;c<f.length;c++)r[f[c]]=r[f[c]]||[],r[f[c]]=r[f[c]].concat(l[f[c]])}}return i}(n,e),u="";Object.keys(s).filter((function(e){return"main"!==e})).forEach((function(e){for(var t=0;s[e][t];)t++;s[e].push(t),n[e][t]="(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })",u=u+"var "+e+" = ("+i.toString().replace("ENTRY_MODULE",JSON.stringify(t))+")({"+s[e].map((function(t){return JSON.stringify(t)+": "+n[e][t].toString()})).join(",")+"});\n"})),u=u+"new (("+i.toString().replace("ENTRY_MODULE",JSON.stringify(e))+")({"+s.main.map((function(e){return JSON.stringify(e)+": "+n.main[e].toString()})).join(",")+"}))(self);";var d=new window.Blob([u],{type:"text/javascript"});if(t.bare)return d;var h=(window.URL||window.webkitURL||window.mozURL||window.msURL).createObjectURL(d),l=new window.Worker(h);return l.objectURL=h,l}},function(e,t,r){"use strict";var i=r(6).Buffer,n=i.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(i.isEncoding===n||!n(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=d,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=h,this.end=l,t=3;break;default:return this.write=f,void(this.end=c)}this.lastNeed=0,this.lastTotal=0,this.lastChar=i.allocUnsafe(t)}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var i=r.charCodeAt(r.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function d(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function h(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function f(e){return e.toString(this.encoding)}function c(e){return e&&e.length?this.write(e):""}t.StringDecoder=a,a.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""},a.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},a.prototype.text=function(e,t){var r=function(e,t,r){var i=t.length-1;if(i<r)return 0;var n=o(t[i]);if(n>=0)return n>0&&(e.lastNeed=n-1),n;if(--i<r||-2===n)return 0;if((n=o(t[i]))>=0)return n>0&&(e.lastNeed=n-2),n;if(--i<r||-2===n)return 0;if((n=o(t[i]))>=0)return n>0&&(2===n?n=0:e.lastNeed=n-3),n;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var i=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,i),e.toString("utf8",t,i)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,r){"use strict";var i=r(38),n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=l;var a=Object.create(r(32));a.inherits=r(5);var o=r(81),s=r(51);a.inherits(l,o);for(var u=n(s.prototype),d=0;d<u.length;d++){var h=u[d];l.prototype[h]||(l.prototype[h]=s.prototype[h])}function l(e){if(!(this instanceof l))return new l(e);o.call(this,e),s.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",f)}function f(){this.allowHalfOpen||this._writableState.ended||i.nextTick(c,this)}function c(e){e.end()}Object.defineProperty(l.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(l.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),l.prototype._destroy=function(e,t){this.push(null),this.end(),i.nextTick(t,e)}},function(e,t,r){"use strict";(function(t,i){var n=r(6).Buffer,a=t.crypto||t.msCrypto;a&&a.getRandomValues?e.exports=function(e,t){if(e>4294967295)throw new RangeError("requested too many random bytes");var r=n.allocUnsafe(e);if(e>0)if(e>65536)for(var o=0;o<e;o+=65536)a.getRandomValues(r.slice(o,o+65536));else a.getRandomValues(r);if("function"==typeof t)return i.nextTick((function(){t(null,r)}));return r}:e.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}}).call(this,r(13),r(9))},function(e,t,r){"use strict";var i={};function n(e,t,r){r||(r=Error);var n=function(e){var r,i;function n(r,i,n){return e.call(this,function(e,r,i){return"string"==typeof t?t:t(e,r,i)}(r,i,n))||this}return i=e,(r=n).prototype=Object.create(i.prototype),r.prototype.constructor=r,r.__proto__=i,n}(r);n.prototype.name=r.name,n.prototype.code=e,i[e]=n}function a(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,r){var i,n,o,s;if("string"==typeof t&&(n="not ",t.substr(!o||o<0?0:+o,n.length)===n)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))s="The ".concat(e," ").concat(i," ").concat(a(t,"type"));else{var u=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";s='The "'.concat(e,'" ').concat(u," ").concat(i," ").concat(a(t,"type"))}return s+=". Received type ".concat(typeof r)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.codes=i},function(e,t,r){"use strict";(function(t){var i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=d;var n=r(73),a=r(77);r(5)(d,n);for(var o=i(a.prototype),s=0;s<o.length;s++){var u=o[s];d.prototype[u]||(d.prototype[u]=a.prototype[u])}function d(e){if(!(this instanceof d))return new d(e);n.call(this,e),a.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",h)))}function h(){this._writableState.ended||t.nextTick(l,this)}function l(e){e.end()}Object.defineProperty(d.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(d.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(d.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(d.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})}).call(this,r(9))},function(e,t,r){var i=r(6).Buffer;function n(e,t){this._block=i.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}n.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=i.from(e,t));for(var r=this._block,n=this._blockSize,a=e.length,o=this._len,s=0;s<a;){for(var u=o%n,d=Math.min(a-s,n-u),h=0;h<d;h++)r[u+h]=e[s+h];s+=d,(o+=d)%n==0&&this._update(r)}return this._len+=a,this},n.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var i=(4294967295&r)>>>0,n=(r-i)/4294967296;this._block.writeUInt32BE(n,this._blockSize-8),this._block.writeUInt32BE(i,this._blockSize-4)}this._update(this._block);var a=this._hash();return e?a.toString(e):a},n.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=n},function(e,t,r){"use strict";var i={};function n(e,t,r){r||(r=Error);var n=function(e){var r,i;function n(r,i,n){return e.call(this,function(e,r,i){return"string"==typeof t?t:t(e,r,i)}(r,i,n))||this}return i=e,(r=n).prototype=Object.create(i.prototype),r.prototype.constructor=r,r.__proto__=i,n}(r);n.prototype.name=r.name,n.prototype.code=e,i[e]=n}function a(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,r){var i,n,o,s;if("string"==typeof t&&(n="not ",t.substr(!o||o<0?0:+o,n.length)===n)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))s="The ".concat(e," ").concat(i," ").concat(a(t,"type"));else{var u=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";s='The "'.concat(e,'" ').concat(u," ").concat(i," ").concat(a(t,"type"))}return s+=". Received type ".concat(typeof r)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.codes=i},function(e,t,r){"use strict";(function(t){var i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=d;var n=r(102),a=r(106);r(5)(d,n);for(var o=i(a.prototype),s=0;s<o.length;s++){var u=o[s];d.prototype[u]||(d.prototype[u]=a.prototype[u])}function d(e){if(!(this instanceof d))return new d(e);n.call(this,e),a.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",h)))}function h(){this._writableState.ended||t.nextTick(l,this)}function l(e){e.end()}Object.defineProperty(d.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(d.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(d.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(d.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})}).call(this,r(9))},function(e,t,r){"use strict";
- /*! @name @videojs/vhs-utils @version 1.3.0 @license MIT */var i=function(){function e(){this.listeners={}}var t=e.prototype;return t.on=function(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)},t.off=function(e,t){if(!this.listeners[e])return!1;var r=this.listeners[e].indexOf(t);return this.listeners[e]=this.listeners[e].slice(0),this.listeners[e].splice(r,1),r>-1},t.trigger=function(e){var t=this.listeners[e];if(t)if(2===arguments.length)for(var r=t.length,i=0;i<r;++i)t[i].call(this,arguments[1]);else for(var n=Array.prototype.slice.call(arguments,1),a=t.length,o=0;o<a;++o)t[o].apply(this,n)},t.dispose=function(){this.listeners={}},t.pipe=function(e){this.on("data",(function(t){e.push(t)}))},e}();e.exports=i},function(e,t,r){"use strict";var i=r(5),n=r(44),a=r(47),o=r(48),s=r(20);function u(e){s.call(this,"digest"),this._hash=e}i(u,s),u.prototype._update=function(e){this._hash.update(e)},u.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new n:"rmd160"===e||"ripemd160"===e?new a:new u(o(e))}},function(e,t,r){function i(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===i(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===i(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===i(e)},t.isError=function(e){return"[object Error]"===i(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=r(10).Buffer.isBuffer},function(e,t,r){(function(t){e.exports=function(e,r){for(var i=Math.min(e.length,r.length),n=new t(i),a=0;a<i;++a)n[a]=e[a]^r[a];return n}}).call(this,r(10).Buffer)},function(e,t,r){"use strict";var i=r(18),n=r(14);function a(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=a,a.prototype.update=function(e,t){if(e=i.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=i.join32(e,0,e.length-r,this.endian);for(var n=0;n<e.length;n+=this._delta32)this._update(e,n,n+this._delta32)}return this},a.prototype.digest=function(e){return this.update(this._pad()),n(null===this.pending),this._digest(e)},a.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,i=new Array(r+this.padLength);i[0]=128;for(var n=1;n<r;n++)i[n]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)i[n++]=0;i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=e>>>24&255,i[n++]=e>>>16&255,i[n++]=e>>>8&255,i[n++]=255&e}else for(i[n++]=255&e,i[n++]=e>>>8&255,i[n++]=e>>>16&255,i[n++]=e>>>24&255,i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=0,a=8;a<this.padLength;a++)i[n++]=0;return i}},function(e,t,r){"use strict";var i=r(5),n=r(64).Reporter,a=r(62).Buffer;function o(e,t){n.call(this,t),a.isBuffer(e)?(this.base=e,this.offset=0,this.length=e.length):this.error("Input not Buffer")}function s(e,t){if(Array.isArray(e))this.length=0,this.value=e.map((function(e){return s.isEncoderBuffer(e)||(e=new s(e,t)),this.length+=e.length,e}),this);else if("number"==typeof e){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if("string"==typeof e)this.value=e,this.length=a.byteLength(e);else{if(!a.isBuffer(e))return t.error("Unsupported type: "+typeof e);this.value=e,this.length=e.length}}i(o,n),t.DecoderBuffer=o,o.isDecoderBuffer=function(e){return e instanceof o||"object"==typeof e&&a.isBuffer(e.base)&&"DecoderBuffer"===e.constructor.name&&"number"==typeof e.offset&&"number"==typeof e.length&&"function"==typeof e.save&&"function"==typeof e.restore&&"function"==typeof e.isEmpty&&"function"==typeof e.readUInt8&&"function"==typeof e.skip&&"function"==typeof e.raw},o.prototype.save=function(){return{offset:this.offset,reporter:n.prototype.save.call(this)}},o.prototype.restore=function(e){var t=new o(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,n.prototype.restore.call(this,e.reporter),t},o.prototype.isEmpty=function(){return this.offset===this.length},o.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||"DecoderBuffer overrun")},o.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||"DecoderBuffer overrun");var r=new o(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+e,this.offset+=e,r},o.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},t.EncoderBuffer=s,s.isEncoderBuffer=function(e){return e instanceof s||"object"==typeof e&&"EncoderBuffer"===e.constructor.name&&"number"==typeof e.length&&"function"==typeof e.join},s.prototype.join=function(e,t){return e||(e=a.alloc(this.length)),t||(t=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(e,t),t+=r.length})):("number"==typeof this.value?e[t]=this.value:"string"==typeof this.value?e.write(this.value,t):a.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length)),e}},function(e,t,r){"use strict";var i=r(8),n=r.n(i),a=r(0),o=r(7),s=r(17);function u(e,t,r){var i=e;if(t+r<i.length){for(;r--;)if(128!=(192&i[++t]))return!1;return!0}return!1}var d,h=function(e){for(var t=[],r=e,i=0,n=e.length;i<n;)if(r[i]<128)t.push(String.fromCharCode(r[i])),++i;else{if(r[i]<192);else if(r[i]<224){if(u(r,i,1)){var a=(31&r[i])<<6|63&r[i+1];if(a>=128){t.push(String.fromCharCode(65535&a)),i+=2;continue}}}else if(r[i]<240){if(u(r,i,2)){var o=(15&r[i])<<12|(63&r[i+1])<<6|63&r[i+2];if(o>=2048&&55296!=(63488&o)){t.push(String.fromCharCode(65535&o)),i+=3;continue}}}else if(r[i]<248&&u(r,i,3)){var s=(7&r[i])<<18|(63&r[i+1])<<12|(63&r[i+2])<<6|63&r[i+3];if(s>65536&&s<1114112){s-=65536,t.push(String.fromCharCode(s>>>10|55296)),t.push(String.fromCharCode(1023&s|56320)),i+=4;continue}}t.push(String.fromCharCode(65533)),++i}return t.join("")},l=r(4),f=(d=new ArrayBuffer(2),new DataView(d).setInt16(0,256,!0),256===new Int16Array(d)[0]),c=function(){function e(){}return e.parseScriptData=function(t,r,i){var n={};try{var o=e.parseValue(t,r,i),s=e.parseValue(t,r+o.size,i-o.size);n[o.data]=s.data}catch(e){a.a.e("AMF",e.toString())}return n},e.parseObject=function(t,r,i){if(i<3)throw new l.a("Data not enough when parse ScriptDataObject");var n=e.parseString(t,r,i),a=e.parseValue(t,r+n.size,i-n.size),o=a.objectEnd;return{data:{name:n.data,value:a.data},size:n.size+a.size,objectEnd:o}},e.parseVariable=function(t,r,i){return e.parseObject(t,r,i)},e.parseString=function(e,t,r){if(r<2)throw new l.a("Data not enough when parse String");var i=new DataView(e,t,r).getUint16(0,!f);return{data:i>0?h(new Uint8Array(e,t+2,i)):"",size:2+i}},e.parseLongString=function(e,t,r){if(r<4)throw new l.a("Data not enough when parse LongString");var i=new DataView(e,t,r).getUint32(0,!f);return{data:i>0?h(new Uint8Array(e,t+4,i)):"",size:4+i}},e.parseDate=function(e,t,r){if(r<10)throw new l.a("Data size invalid when parse Date");var i=new DataView(e,t,r),n=i.getFloat64(0,!f),a=i.getInt16(8,!f);return{data:new Date(n+=60*a*1e3),size:10}},e.parseValue=function(t,r,i){if(i<1)throw new l.a("Data not enough when parse Value");var n,o=new DataView(t,r,i),s=1,u=o.getUint8(0),d=!1;try{switch(u){case 0:n=o.getFloat64(1,!f),s+=8;break;case 1:n=!!o.getUint8(1),s+=1;break;case 2:var h=e.parseString(t,r+1,i-1);n=h.data,s+=h.size;break;case 3:n={};var c=0;for(9==(16777215&o.getUint32(i-4,!f))&&(c=3);s<i-4;){var p=e.parseObject(t,r+s,i-s-c);if(p.objectEnd)break;n[p.data.name]=p.data.value,s+=p.size}if(s<=i-3)9===(16777215&o.getUint32(s-1,!f))&&(s+=3);break;case 8:n={},s+=4;var m=0;for(9==(16777215&o.getUint32(i-4,!f))&&(m=3);s<i-8;){var g=e.parseVariable(t,r+s,i-s-m);if(g.objectEnd)break;n[g.data.name]=g.data.value,s+=g.size}if(s<=i-3)9===(16777215&o.getUint32(s-1,!f))&&(s+=3);break;case 9:n=void 0,s=1,d=!0;break;case 10:n=[];var _=o.getUint32(1,!f);s+=4;for(var y=0;y<_;y++){var b=e.parseValue(t,r+s,i-s);n.push(b.data),s+=b.size}break;case 11:var v=e.parseDate(t,r+1,i-1);n=v.data,s+=v.size;break;case 12:var w=e.parseString(t,r+1,i-1);n=w.data,s+=w.size;break;default:s=i,a.a.w("AMF","Unsupported AMF value type "+u)}}catch(e){a.a.e("AMF",e.toString())}return{data:n,size:s,objectEnd:d}},e}(),p=function(){function e(e){this.TAG="ExpGolomb",this._buffer=e,this._buffer_index=0,this._total_bytes=e.byteLength,this._total_bits=8*e.byteLength,this._current_word=0,this._current_word_bits_left=0}var t=e.prototype;return t.destroy=function(){this._buffer=null},t._fillCurrentWord=function(){var e=this._total_bytes-this._buffer_index;if(e<=0)throw new l.a("ExpGolomb: _fillCurrentWord() but no bytes available");var t=Math.min(4,e),r=new Uint8Array(4);r.set(this._buffer.subarray(this._buffer_index,this._buffer_index+t)),this._current_word=new DataView(r.buffer).getUint32(0,!1),this._buffer_index+=t,this._current_word_bits_left=8*t},t.readBits=function(e){if(e>32)throw new l.b("ExpGolomb: readBits() bits exceeded max 32bits!");if(e<=this._current_word_bits_left){var t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}var r=this._current_word_bits_left?this._current_word:0;r>>>=32-this._current_word_bits_left;var i=e-this._current_word_bits_left;this._fillCurrentWord();var n=Math.min(i,this._current_word_bits_left),a=this._current_word>>>32-n;return this._current_word<<=n,this._current_word_bits_left-=n,r=r<<n|a},t.readBool=function(){return 1===this.readBits(1)},t.readByte=function(){return this.readBits(8)},t._skipLeadingZero=function(){var e;for(e=0;e<this._current_word_bits_left;e++)if(0!=(this._current_word&2147483648>>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()},t.readUEG=function(){var e=this._skipLeadingZero();return this.readBits(e+1)-1},t.readSEG=function(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)},e}(),m=function(){function e(){}return e._ebsp2rbsp=function(e){for(var t=e,r=t.byteLength,i=new Uint8Array(r),n=0,a=0;a<r;a++)a>=2&&3===t[a]&&0===t[a-1]&&0===t[a-2]||(i[n]=t[a],n++);return new Uint8Array(i.buffer,0,n)},e.parseSPS=function(t){var r=e._ebsp2rbsp(t),i=new p(r);i.readByte();var n=i.readByte();i.readByte();var a=i.readByte();i.readUEG();var o=e.getProfileString(n),s=e.getLevelString(a),u=1,d=420,h=8;if((100===n||110===n||122===n||244===n||44===n||83===n||86===n||118===n||128===n||138===n||144===n)&&(3===(u=i.readUEG())&&i.readBits(1),u<=3&&(d=[0,420,422,444][u]),h=i.readUEG()+8,i.readUEG(),i.readBits(1),i.readBool()))for(var l=3!==u?8:12,f=0;f<l;f++)i.readBool()&&(f<6?e._skipScalingList(i,16):e._skipScalingList(i,64));i.readUEG();var c=i.readUEG();if(0===c)i.readUEG();else if(1===c){i.readBits(1),i.readSEG(),i.readSEG();for(var m=i.readUEG(),g=0;g<m;g++)i.readSEG()}var _=i.readUEG();i.readBits(1);var y=i.readUEG(),b=i.readUEG(),v=i.readBits(1);0===v&&i.readBits(1),i.readBits(1);var w=0,E=0,A=0,S=0;i.readBool()&&(w=i.readUEG(),E=i.readUEG(),A=i.readUEG(),S=i.readUEG());var M=1,T=1,R=0,k=!0,I=0,O=0;if(i.readBool()){if(i.readBool()){var D=i.readByte();D>0&&D<16?(M=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][D-1],T=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][D-1]):255===D&&(M=i.readByte()<<8|i.readByte(),T=i.readByte()<<8|i.readByte())}if(i.readBool()&&i.readBool(),i.readBool()&&(i.readBits(4),i.readBool()&&i.readBits(24)),i.readBool()&&(i.readUEG(),i.readUEG()),i.readBool()){var x=i.readBits(32),C=i.readBits(32);k=i.readBool(),R=(I=C)/(O=2*x)}}var P=1;1===M&&1===T||(P=M/T);var N=0,L=0;0===u?(N=1,L=2-v):(N=3===u?1:2,L=(1===u?2:1)*(2-v));var B=16*(y+1),F=16*(b+1)*(2-v);B-=(w+E)*N,F-=(A+S)*L;var U=Math.ceil(B*P);return i.destroy(),i=null,{avc_profile:n,profile_string:o,avc_level:a,level_string:s,bit_depth:h,ref_frames:_,chroma_format:d,chroma_format_string:e.getChromaFormatString(d),frame_rate:{fixed:k,fps:R,fps_den:O,fps_num:I},sar_ratio:{width:M,height:T},codec_size:{width:B,height:F},present_size:{width:U,height:F}}},e._skipScalingList=function(e,t){for(var r=8,i=8,n=0;n<t;n++)0!==i&&(i=(r+e.readSEG()+256)%256),r=0===i?r:i},e.getProfileString=function(e){switch(e){case 66:return"Baseline";case 77:return"Main";case 88:return"Extended";case 100:return"High";case 110:return"High10";case 122:return"High422";case 244:return"High444";default:return"Unknown"}},e.getLevelString=function(e){return(e/10).toFixed(1)},e.getChromaFormatString=function(e){switch(e){case 420:return"4:2:0";case 422:return"4:2:2";case 444:return"4:4:4";default:return"Unknown"}},e}(),g=r(1),_=r(12);function y(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var b=function(){function e(e,t){this.TAG="FLVDemuxer",this._config=t,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._dataOffset=e.dataOffset,this._firstParse=!0,this._dispatch=!1,this._hasAudio=e.hasAudioTrack,this._hasVideo=e.hasVideoTrack,this._hasAudioFlagOverrided=!1,this._hasVideoFlagOverrided=!1,this._audioInitialMetadataDispatched=!1,this._videoInitialMetadataDispatched=!1,this._mediaInfo=new s.a,this._mediaInfo.hasAudio=this._hasAudio,this._mediaInfo.hasVideo=this._hasVideo,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._naluLengthSize=4,this._timestampBase=0,this._timescale=1e3,this._duration=0,this._durationOverrided=!1,this._referenceFrameRate={fixed:!0,fps:23.976,fps_num:23976,fps_den:1e3},this._flvSoundRateTable=[5500,11025,22050,44100,48e3],this._mpegSamplingRates=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],this._mpegAudioV10SampleRateTable=[44100,48e3,32e3,0],this._mpegAudioV20SampleRateTable=[22050,24e3,16e3,0],this._mpegAudioV25SampleRateTable=[11025,12e3,8e3,0],this._mpegAudioL1BitRateTable=[0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1],this._mpegAudioL2BitRateTable=[0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],this._mpegAudioL3BitRateTable=[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],this._videoTrack={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this._audioTrack={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._littleEndian=function(){var e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),256===new Int16Array(e)[0]}(),this._onReceiveH265MediaFLVFrame=null,this._onAudioError=null,this._videoCodecId=0,this._audioCodecId=0,this._AVC_SPS=null,this._AVC_PPS=null,this._HEVC_VPS=null,this._HEVC_SPS=null,this._HEVC_PPS=null,this._StartCode=[0,0,0,1],this._SampleRate=8e3,this._ChannelNum=1,this._AudioMaxFrameSize=0,this._DebugBuf=null,this._DebugBufPos=0,this._lastAudioPts=0,this._lastVideoPts=0,this._index=0,this._allowAudio=!1,this.sei_data=null}var t,r,i,n=e.prototype;return n.destroy=function(){this._mediaInfo=null,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._videoTrack=null,this._audioTrack=null,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._onAudioError=null,this._onReceiveSEIData=null,this._onReceiveH265MediaFLVFrame=null},e.probe=function(e){var t=new Uint8Array(e),r={match:!1};if(70!==t[0]||76!==t[1]||86!==t[2]||1!==t[3])return r;var i,n,a=(4&t[4])>>>2!=0,o=0!=(1&t[4]),s=(i=t)[n=5]<<24|i[n+1]<<16|i[n+2]<<8|i[n+3];return s<9?r:{match:!0,consumed:s,dataOffset:s,hasAudioTrack:a,hasVideoTrack:o}},n.bindDataSource=function(e){return e.onDataArrival=this.parseChunks.bind(this),this},n.resetMediaInfo=function(){this._mediaInfo=new s.a},n._isInitialMetadataDispatched=function(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!(this._hasAudio||!this._hasVideo)&&this._videoInitialMetadataDispatched},n.parseChunks=function(t,r){if(!(this._onError&&this._onMediaInfo&&this._onTrackMetadata&&this._onDataAvailable))throw new l.a("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified");var i=0,n=this._littleEndian;if(0===r){if(!(t.byteLength>13))return 0;i=e.probe(t).dataOffset}this._firstParse&&(this._firstParse=!1,r+i!==this._dataOffset&&a.a.w(this.TAG,"First time parsing but chunk byteStart invalid!"),0!==new DataView(t,i).getUint32(0,!n)&&a.a.w(this.TAG,"PrevTagSize0 !== 0 !!!"),i+=4);for(;i<t.byteLength;){this._dispatch=!0;var o=new DataView(t,i);if(i+11+4>t.byteLength)break;var s=o.getUint8(0),u=16777215&o.getUint32(0,!n);if(i+11+u+4>t.byteLength)break;if(8===s||9===s||18===s){var d=o.getUint8(4),h=o.getUint8(5),f=o.getUint8(6)|h<<8|d<<16|o.getUint8(7)<<24;0!==(16777215&o.getUint32(7,!n))&&a.a.w(this.TAG,"Meet tag which has StreamID != 0!");var c=i+11;switch(s){case 8:f-this._lastAudioPts<=0&&(this._index>1&&(this._hasAudioFlagOverrided=!0,this._mediaInfo.hasAudio=!1,this._hasAudio=!1,this._onAudioError()),this._index++),this._lastAudioPts=f,this._audioCodecId=this._parseAudioData(t,c,u,f);break;case 9:this._lastVideoPts=f,this._parseVideoData(t,c,u,f,r+i);break;case 18:this._parseScriptData(t,c,u)}var p=o.getUint32(11+u,!n);p!==11+u&&a.a.w(this.TAG,"Invalid PrevTagSize "+p),i+=11+u+4}else a.a.w(this.TAG,"Unsupported tag type "+s+", skipped"),i+=11+u+4}return this._isInitialMetadataDispatched()&&this._dispatch&&(this._audioTrack.samples.length||this._videoTrack.samples.length)&&(7===this._videoCodecId||0===this._videoCodecId?"auto"===this._config.decodeType?this._onDataAvailable(this._audioTrack,this._videoTrack):(this._videoTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeVideo(27,this._videoTrack),this._audioTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeAudio(10===this._audioCodecId?86018:0,this._audioTrack)):12===this._videoCodecId&&(this._videoTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeVideo(173,this._videoTrack),this._audioTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeAudio(10===this._audioCodecId?86018:0,this._audioTrack))),i},n._parseScriptData=function(e,t,r){new DataView(e,t,r);var i=c.parseScriptData(e,t,r);if(i.hasOwnProperty("onMetaData")){if(null==i.onMetaData||"object"!=typeof i.onMetaData)return void a.a.w(this.TAG,"Invalid onMetaData structure!");this._metadata&&a.a.w(this.TAG,"Found another onMetaData tag!"),this._metadata=i;var n=this._metadata.onMetaData;if(this._onMetaDataArrived&&this._onMetaDataArrived(Object.assign({},n)),"boolean"==typeof n.hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=n.hasAudio,this._mediaInfo.hasAudio=this._hasAudio),"boolean"==typeof n.hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=n.hasVideo,this._mediaInfo.hasVideo=this._hasVideo),"number"==typeof n.audiodatarate&&(this._mediaInfo.audioDataRate=n.audiodatarate),"number"==typeof n.videodatarate&&(this._mediaInfo.videoDataRate=n.videodatarate),"number"==typeof n.width&&(this._mediaInfo.width=n.width),"number"==typeof n.height&&(this._mediaInfo.height=n.height),"number"==typeof n.duration){if(!this._durationOverrided){var o=Math.floor(n.duration*this._timescale);this._duration=o,this._mediaInfo.duration=o}}else this._mediaInfo.duration=0;if("number"==typeof n.framerate){var s=Math.floor(1e3*n.framerate);if(s>0){var u=s/1e3;this._referenceFrameRate.fixed=!0,this._referenceFrameRate.fps=u,this._referenceFrameRate.fps_num=s,this._referenceFrameRate.fps_den=1e3,this._mediaInfo.fps=u}}if("object"==typeof n.keyframes){this._mediaInfo.hasKeyframesIndex=!0;var d=n.keyframes;this._mediaInfo.keyframesIndex=this._parseKeyframesIndex(d),n.keyframes=null}else this._mediaInfo.hasKeyframesIndex=!1;this._dispatch=!1,this._mediaInfo.metadata=n,a.a.v(this.TAG,"Parsed onMetaData"),this._mediaInfo.isComplete()&&this._onMediaInfo(this._mediaInfo)}Object.keys(i).length>0&&this._onScriptDataArrived&&this._onScriptDataArrived(Object.assign({},i))},n._parseKeyframesIndex=function(e){for(var t=[],r=[],i=1;i<e.times.length;i++){var n=this._timestampBase+Math.floor(1e3*e.times[i]);t.push(n),r.push(e.filepositions[i])}return{times:t,filepositions:r}},n._parseAudioData=function(e,t,r,i){if(r<=1)return a.a.w(this.TAG,"Flv: Invalid audio packet, missing SoundData payload!"),0;if(!0===this._hasAudioFlagOverrided&&!1===this._hasAudio)return 0;this._littleEndian;var n=new DataView(e,t,r).getUint8(0),o=n>>>4;if(2!==o&&10!==o)return this._onError(_.a.CODEC_UNSUPPORTED,"Flv: Unsupported audio codec idx: "+o),0;var s=0,u=(12&n)>>>2;if(!(u>=0&&u<=4))return this._onError(_.a.FORMAT_ERROR,"Flv: Invalid audio sample rate idx: "+u),0;s=this._flvSoundRateTable[u];var d=1&n,h=this._audioMetadata,l=this._audioTrack;if(h||(!1===this._hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),(h=this._audioMetadata={}).type="audio",h.id=l.id,h.timescale=this._timescale,h.duration=this._duration,h.audioSampleRate=s,h.channelCount=0===d?1:2),10===o){var f=this._parseAACAudioData(e,t+1,r-1);if(null==f)return 0;if(0===f.packetType){h.config&&a.a.w(this.TAG,"Found another AudioSpecificConfig!");var c=f.data;h.audioSampleRate=c.samplingRate,h.channelCount=c.channelCount,h.codec=c.codec,h.originalCodec=c.originalCodec,h.config=c.config,h.refSampleDuration=1024/h.audioSampleRate*h.timescale,a.a.v(this.TAG,"Parsed AudioSpecificConfig"),this._SampleRate=c.samplingRate,this._ChannelNum=c.channelCount,this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.samples.length||this._videoTrack.samples.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",h);var p=this._mediaInfo;p.audioCodec=h.originalCodec,p.audioSampleRate=h.audioSampleRate,p.audioChannelCount=h.channelCount,p.hasVideo?null!=p.videoCodec&&(p.mimeType='video/x-flv; codecs="'+p.videoCodec+","+p.audioCodec+'"'):p.mimeType='video/x-flv; codecs="'+p.audioCodec+'"',p.isComplete()&&this._onMediaInfo(p)}else if(1===f.packetType){var m=this._timestampBase+i,g={unit:f.data,length:f.data.byteLength,dts:m,pts:m};l.samples.push(g),l.length+=f.data.length,f.data.length>this._AudioMaxFrameSize&&(this._AudioMaxFrameSize=f.data.length)}else a.a.e(this.TAG,"Flv: Unsupported AAC data type "+f.packetType)}else if(2===o){if(!h.codec){var y=this._parseMP3AudioData(e,t+1,r-1,!0);if(null==y)return 0;h.audioSampleRate=y.samplingRate,h.channelCount=y.channelCount,h.codec=y.codec,h.originalCodec=y.originalCodec,h.refSampleDuration=1152/h.audioSampleRate*h.timescale,a.a.v(this.TAG,"Parsed MPEG Audio Frame Header"),this._audioInitialMetadataDispatched=!0,this._onTrackMetadata("audio",h);var b=this._mediaInfo;b.audioCodec=h.codec,b.audioSampleRate=h.audioSampleRate,b.audioChannelCount=h.channelCount,b.audioDataRate=y.bitRate,b.hasVideo?null!=b.videoCodec&&(b.mimeType='video/x-flv; codecs="'+b.videoCodec+","+b.audioCodec+'"'):b.mimeType='video/x-flv; codecs="'+b.audioCodec+'"',b.isComplete()&&this._onMediaInfo(b)}var v=this._parseMP3AudioData(e,t+1,r-1,!1);if(null==v)return 0;var w=this._timestampBase+i,E={unit:v,length:v.byteLength,dts:w,pts:w};l.samples.push(E),l.length+=v.length}return o},n._parseAACAudioData=function(e,t,r){if(!(r<=1)){var i={},n=new Uint8Array(e,t,r);return i.packetType=n[0],0===n[0]?i.data=this._parseAACAudioSpecificConfig(e,t+1,r-1):i.data=n.subarray(1),i}a.a.w(this.TAG,"Flv: Invalid AAC packet, missing AACPacketType or/and Data!")},n._parseAACAudioSpecificConfig=function(e,t,r){var i,n,a=new Uint8Array(e,t,r),o=null,s=0,u=null;if(s=i=a[0]>>>3,(n=(7&a[0])<<1|a[1]>>>7)<0||n>=this._mpegSamplingRates.length)this._onError(_.a.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!");else{var d=this._mpegSamplingRates[n],h=(120&a[1])>>>3;if(!(h<0||h>=8)){5===s&&(u=(7&a[1])<<1|a[2]>>>7,(124&a[2])>>>2);var l=self.navigator.userAgent.toLowerCase();return-1!==l.indexOf("firefox")?n>=6?(s=5,o=new Array(4),u=n-3):(s=2,o=new Array(2),u=n):-1!==l.indexOf("android")?(s=2,o=new Array(2),u=n):(s=5,u=n,o=new Array(4),n>=6?u=n-3:1===h&&(s=2,o=new Array(2),u=n)),o[0]=s<<3,o[0]|=(15&n)>>>1,o[1]=(15&n)<<7,o[1]|=(15&h)<<3,5===s&&(o[1]|=(15&u)>>>1,o[2]=(1&u)<<7,o[2]|=8,o[3]=0),{config:o,samplingRate:d,channelCount:h,codec:"mp4a.40."+s,originalCodec:"mp4a.40."+i}}this._onError(_.a.FORMAT_ERROR,"Flv: AAC invalid channel configuration")}},n._parseMP3AudioData=function(e,t,r,i){if(!(r<4)){this._littleEndian;var n=new Uint8Array(e,t,r),o=null;if(i){if(255!==n[0])return;var s=n[1]>>>3&3,u=(6&n[1])>>1,d=(240&n[2])>>>4,h=(12&n[2])>>>2,l=3!==(n[3]>>>6&3)?2:1,f=0,c=0;switch(s){case 0:f=this._mpegAudioV25SampleRateTable[h];break;case 2:f=this._mpegAudioV20SampleRateTable[h];break;case 3:f=this._mpegAudioV10SampleRateTable[h]}switch(u){case 1:34,d<this._mpegAudioL3BitRateTable.length&&(c=this._mpegAudioL3BitRateTable[d]);break;case 2:33,d<this._mpegAudioL2BitRateTable.length&&(c=this._mpegAudioL2BitRateTable[d]);break;case 3:32,d<this._mpegAudioL1BitRateTable.length&&(c=this._mpegAudioL1BitRateTable[d])}o={bitRate:c,samplingRate:f,channelCount:l,codec:"mp3",originalCodec:"mp3"}}else o=n;return o}a.a.w(this.TAG,"Flv: Invalid MP3 packet, header missing!")},n._parseVideoData=function(e,t,r,i,n){if(r<=1)a.a.w(this.TAG,"Flv: Invalid video packet, missing VideoData payload!");else if(!0!==this._hasVideoFlagOverrided||!1!==this._hasVideo){var o=new Uint8Array(e,t,r)[0],s=(240&o)>>>4;this._videoCodecId=15&o,7===this._videoCodecId||12===this._videoCodecId?(g.h(7===this._videoCodecId?"H264":"H265"),this._parseAVCAndHEVCVideoPacket(e,t+1,r-1,i,n,s)):this._onError(_.a.CODEC_UNSUPPORTED,"Flv: Unsupported codec in video frame: "+codecId)}},n._parseAVCAndHEVCVideoPacket=function(e,t,r,i,n,o){if(r<4)a.a.w(this.TAG,"Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime");else{var s=this._littleEndian,u=new DataView(e,t,r),d=u.getUint8(0),h=(16777215&u.getUint32(0,!s))<<8>>8;if(0===d)7===this._videoCodecId?this._parseAVCDecoderConfigurationRecord(e,t+4,r-4):this._parseHEVCDecoderConfigurationRecord(e,t+4,r-4);else if(1===d)7===this._videoCodecId?this._parseAVCVideoData(e,t+4,r-4,i,n,o,h):this._parseHEVCVideoData(e,t+4,r-4,i,n,o,h);else if(2!==d)return void this._onError(_.a.FORMAT_ERROR,"Flv: Invalid video packet type "+d)}},n._parseAVCDecoderConfigurationRecord=function(e,t,r){if(r<7)a.a.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");else{var i=this._videoMetadata,n=this._videoTrack,o=this._littleEndian,s=new DataView(e,t,r);if(i)void 0!==i.avcc&&a.a.w(this.TAG,"Found another AVCDecoderConfigurationRecord!");else{!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),(i=this._videoMetadata={}).type="video",i.id=n.id,i.timescale=this._timescale,i.duration=this._duration;var u=s.getUint8(0),d=s.getUint8(1);s.getUint8(2),s.getUint8(3);if(1===u&&0!==d)if(this._naluLengthSize=1+(3&s.getUint8(4)),3===this._naluLengthSize||4===this._naluLengthSize){var h=31&s.getUint8(5);if(0!==h){h>1&&a.a.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = "+h);for(var l=6,f=0;f<h;f++){var c=s.getUint16(l,!o);if(l+=2,0!==c){var p=new Uint8Array(e,t+l,c);this._AVC_SPS=new Uint8Array(c+4),l+=c,this._AVC_SPS.set(this._StartCode,0),this._AVC_SPS.set(p,4);var g=m.parseSPS(p);if(0===f){i.codecWidth=g.codec_size.width,i.codecHeight=g.codec_size.height,i.presentWidth=g.present_size.width,i.presentHeight=g.present_size.height,i.profile=g.profile_string,i.level=g.level_string,i.bitDepth=g.bit_depth,i.chromaFormat=g.chroma_format,i.sarRatio=g.sar_ratio,i.frameRate=g.frame_rate,!1!==g.frame_rate.fixed&&0!==g.frame_rate.fps_num&&0!==g.frame_rate.fps_den||(i.frameRate=this._referenceFrameRate);var y=i.frameRate.fps_den,b=i.frameRate.fps_num;i.refSampleDuration=i.timescale*(y/b);for(var v=p.subarray(1,4),w="avc1.",E=0;E<3;E++){var A=v[E].toString(16);A.length<2&&(A="0"+A),w+=A}i.codec=w;var S=this._mediaInfo;S.width=i.codecWidth,S.height=i.codecHeight,S.fps=i.frameRate.fps,S.profile=i.profile,S.level=i.level,S.refFrames=g.ref_frames,S.chromaFormat=g.chroma_format_string,S.sarNum=i.sarRatio.width,S.sarDen=i.sarRatio.height,S.videoCodec=w,S.hasAudio?null!=S.audioCodec&&(S.mimeType='video/x-flv; codecs="'+S.videoCodec+","+S.audioCodec+'"'):S.mimeType='video/x-flv; codecs="'+S.videoCodec+'"',S.isComplete()&&this._onMediaInfo(S)}}}var M=s.getUint8(l);if(0!==M){M>1&&a.a.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = "+M),l++;for(var T=0;T<M;T++){var R=s.getUint16(l,!o);if(l+=2,0!==R){var k=new Uint8Array(e,t+l,R);this._AVC_PPS=new Uint8Array(R+4),this._AVC_PPS.set(this._StartCode,0),this._AVC_PPS.set(k,4),l+=R}}i.avcc=new Uint8Array(r),i.avcc.set(new Uint8Array(e,t,r),0),a.a.v(this.TAG,"Parsed AVCDecoderConfigurationRecord"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._videoInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("video",i)}else this._onError(_.a.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord: No PPS")}else this._onError(_.a.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord: No SPS")}else this._onError(_.a.FORMAT_ERROR,"Flv: Strange NaluLengthSizeMinusOne: "+(this._naluLengthSize-1));else this._onError(_.a.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord")}}},n._parseHEVCDecoderConfigurationRecord=function(e,t,r){if(r<7)a.a.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");else{var i=this._videoMetadata,n=this._videoTrack,o=this._littleEndian,s=new DataView(e,t,r);i?void 0!==i.avcc&&a.a.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),(i=this._videoMetadata={}).type="video",i.id=n.id,i.timescale=this._timescale,i.duration=this._duration);var u=s.getUint8(0),d=s.getUint8(1),h=s.getUint8(2),l=s.getUint8(3);if(0===u&&0===d&&0===h&&1===l);else{var f=22,c=s.getUint8(f);f+=1;for(var p=0;p<c;p++){var m=s.getUint8(f);f+=1;s.getUint16(f,!o);f+=2;var g=s.getUint16(f,!o);if(f+=2,32===m||160==m){var _=new Uint8Array(e,t+f,g);this._HEVC_VPS=new Uint8Array(g+4),this._HEVC_VPS.set(this._StartCode,0),this._HEVC_VPS.set(_,4)}else if(33===m||161==m){var y=new Uint8Array(e,t+f,g);this._HEVC_SPS=new Uint8Array(g+4),this._HEVC_SPS.set(this._StartCode,0),this._HEVC_SPS.set(y,4)}else if(34===m||162==m){var b=new Uint8Array(e,t+f,g);this._HEVC_PPS=new Uint8Array(g+4),this._HEVC_PPS.set(this._StartCode,0),this._HEVC_PPS.set(b,4)}else if(39===m){var v=new Uint8Array(e,t+f,g);console.log(" 265 sei = ",v)}f+=g}}this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._videoInitialMetadataDispatched=!0,this._dispatch=!1}},n._parseAVCVideoData=function(e,t,r,i,n,o,s){var u=0,d=this._littleEndian,h=new DataView(e,t,r),l=[],f=0,c=0,p=this._naluLengthSize,m=this._timestampBase+i,g=1===o,_=!0;for(7==this._videoCodecId&&("auto"!==this._config.decodeType&&"hard"!==this._config.decodeType||(_=!1));c<r;){if(c+4>=r){a.a.w(this.TAG,"Malformed Nalu near timestamp "+m+", offset = "+c+", dataSize = "+r);break}var y=h.getUint32(c,!d);if(3===p&&(y>>>=8),y>r-p)return void a.a.w(this.TAG,"Malformed Nalus near timestamp "+m+", NaluSize > DataSize!");if(5===(u=31&h.getUint8(c+p))&&(g=!0,l.length<1&&this._AVC_SPS&&this._AVC_SPS.length>0))if(_){var b={type:7,data:this._AVC_SPS};l.push(b),f+=b.data.length;var v={type:8,data:this._AVC_PPS};l.push(v),f+=v.data.length}else{var w=this._AVC_SPS.subarray(0,this._AVC_SPS.length),E=w.length-4;w[0]=E>>24,w[1]=E>>16,w[2]=E>>8,w[3]=255&E;var A={type:7,data:w};l.push(A),f+=A.data.length;var S=this._AVC_PPS.subarray(0,this._AVC_PPS.length),M=S.length-4;S[0]=M>>24,S[1]=M>>16,S[2]=M>>8,S[3]=255&M;var T={type:8,data:S};l.push(T),f+=T.data.length}if(6===u&&l.length<1){var R=h.getUint8(c+p+1);h.getUint8(c+p+4);if(100===R){for(var k=0,I=0,O=0;O<10;O++){var D=255&h.getUint8(c+p+1+1+I);if(I++,k+=D,255!==D)break}var x=void 0,C=null;(k>16||k>=3)&&(x=new Uint8Array(e,t+c+p+1+I+1,k-1),C=new TextDecoder("utf-8").decode(x)),this.sei_data=C}else this.sei_data=null}var P=new Uint8Array(e,t+c,p+y),N={type:u,data:P};l.push(N),f+=P.byteLength,c+=p+y}if(6===u&&"soft"!==this._config.decodeType)return console.log("{unitType:"+u+",decodeType:"+this._config.decodeType);if(l.length){var L=this._videoTrack,B={units:l,length:f,isKeyframe:g,dts:m,cts:s,pts:m+s,sei:this.deepClone(this.sei_data)};if(1===l.length)if(6===l[0].type)return;g&&(B.fileposition=n),L.samples.push(B),L.length+=f,this.sei_data=null}},n._makeH265Header=function(e){var t=2;switch(e){case 78:case 80:t=1;break;case 64:case 66:case 32:case 34:case 36:case 38:case 40:case 42:t=1}return t},n._parseHEVCVideoData=function(e,t,r,i,n,o,s){var u=this._littleEndian,d=new DataView(e,t,r),h=this._timestampBase+i,l=1===o,f=[],c=0;for(this._naluLengthSize;c<r;){if(c+4>=r){a.a.w(this.TAG,"Malformed Nalu near timestamp "+h+", offset = "+c+", dataSize = "+r);break}var p=d.getUint8(c),m=d.getUint8(c+1),g=d.getUint8(c+2),_=d.getUint8(c+3);if(0===p&&0===m&&0===g&&1===_);else{var y=d.getUint32(c,!u);c+=4;var b=d.getUint8(c);if(c+=1,y>r-4)return void a.a.w(this.TAG,"Malformed Nalus near timestamp "+h+", NaluSize > DataSize!");if(y+c-1>r)break;var v=d.getUint8(c-1),w=this._makeH265Header(v);if((32===v||34===v||36===v||38===v||40===v||42===v)&&f.length<1){if(this._HEVC_VPS){var E={type:5,data:this._HEVC_VPS};f.push(E),this._HEVC_VPS.length}if(this._HEVC_SPS){var A={type:6,data:this._HEVC_SPS};f.push(A),this._HEVC_SPS.length}if(this._HEVC_PPS){var S={type:7,data:this._HEVC_PPS};f.push(S),this._HEVC_PPS.length}}if(1===w&&this._HEVC_VPS&&this._HEVC_VPS[0],78!=b&&t+c-1-4>=0&&y>0){var M=new Uint8Array(e,t+c-1-4,y+4);M[0]=0,M[1]=0,M[2]=0,M[3]=1;var T={type:5,data:M};f.push(T),M.length}else if(78===b&&t+c-1-4>=0&&y>0){var R=new Uint8Array(e,t+c-1-4+4+3,y-5),k=new TextDecoder("utf-8").decode(R);this.sei_data=k.trim()}c+=y-1}}if(f.length){var I=this._videoTrack,O={units:f,length:0,isKeyframe:l,dts:h,cts:s,pts:h+s,sei:this.deepClone(this.sei_data)};l&&(O.fileposition=n),I.samples.push(O),I.length+=0,this.sei_data=null}},n._onDataAvailableToSoftwareDecodeVideo=function(e,t){var r=t.samples,i=-1;for(r.length>1&&(i=0);r.length;){for(var n=r.shift(),a=0,o=0;o<n.units.length;o++)a+=n.units[o].data.length;for(var s=0,u=new Uint8Array(a);n.units.length;){var d=n.units.shift();27===e&&(d.data[0]=0,d.data[1]=0,d.data[2]=0,d.data[3]=1),u.set(d.data,s),s+=d.data.length}this._onReceiveH265MediaFLVFrame&&(i>=0&&i++,this._onReceiveH265MediaFLVFrame("video",!0,1,e,n.isKeyframe,u,a,n.pts,0,0,0,n.sei))}},n._onDataAvailableToSoftwareDecodeAudio=function(e,t){var r=t.samples,i=-1;for(r.length>1&&(i=0);r.length;){var n=r.shift();this._onReceiveH265MediaFLVFrame&&(i>=0&&i++,this._onReceiveH265MediaFLVFrame("audio",!0,2,e,0,n.unit,n.length,n.pts,this._SampleRate,this._ChannelNum,this._SampleRate>=44100?32:16))}},n.deepClone=function(e){var t=Object.prototype.toString;if(!e||"object"!=typeof e)return e;if(e.nodeType&&"cloneNode"in e)return e.cloneNode(!0);if("[object Date]"===t.call(e))return new Date(e.getTime());if("[object RegExp]"===t.call(e)){var r=[];return e.global&&r.push("g"),e.multiline&&r.push("m"),e.ignoreCase&&r.push("i"),new RegExp(e.source,r.join(""))}var i=Array.isArray(e)?[]:e.constructor?new e.constructor:{};for(var n in e)i[n]=this.deepClone(e[n]);return i},t=e,(r=[{key:"onTrackMetadata",get:function(){return this._onTrackMetadata},set:function(e){this._onTrackMetadata=e}},{key:"onMediaInfo",get:function(){return this._onMediaInfo},set:function(e){this._onMediaInfo=e}},{key:"onMetaDataArrived",get:function(){return this._onMetaDataArrived},set:function(e){this._onMetaDataArrived=e}},{key:"onReceiveH265MediaFLVFrame",get:function(){return this._onReceiveH265MediaFLVFrame},set:function(e){this._onReceiveH265MediaFLVFrame=e}},{key:"onAudioError",get:function(){return this._onAudioError},set:function(e){this._onAudioError=e}},{key:"onReceiveSEIData",get:function(){return this._onReceiveSEIData},set:function(e){this._onReceiveSEIData=e}},{key:"onScriptDataArrived",get:function(){return this._onScriptDataArrived},set:function(e){this._onScriptDataArrived=e}},{key:"onError",get:function(){return this._onError},set:function(e){this._onError=e}},{key:"onDataAvailable",get:function(){return this._onDataAvailable},set:function(e){this._onDataAvailable=e}},{key:"timestampBase",get:function(){return this._timestampBase},set:function(e){this._timestampBase=e}},{key:"overridedDuration",get:function(){return this._duration},set:function(e){this._durationOverrided=!0,this._duration=e,this._mediaInfo.duration=e}},{key:"overridedHasAudio",set:function(e){this._hasAudioFlagOverrided=!0,this._hasAudio=e,this._mediaInfo.hasAudio=e}},{key:"overridedHasVideo",set:function(e){this._hasVideoFlagOverrided=!0,this._hasVideo=e,this._mediaInfo.hasVideo=e}}])&&y(t.prototype,r),i&&y(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();function v(e,t,r){var i,n,a,o,s,u=navigator.userAgent.toLowerCase(),d=r,h=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];if(i=1+((192&e[t+2])>>>6),!((n=(60&e[t+2])>>>2)>h.length-1))return o=(1&e[t+2])<<2,o|=(192&e[t+3])>>>6,/firefox/i.test(u)?n>=6?(i=5,s=new Array(4),a=n-3):(i=2,s=new Array(2),a=n):-1!==u.indexOf("android")?(i=2,s=new Array(2),a=n):(i=5,s=new Array(4),r&&(-1!==r.indexOf("mp4a.40.29")||-1!==r.indexOf("mp4a.40.5"))||!r&&n>=6?a=n-3:((r&&-1!==r.indexOf("mp4a.40.2")&&(n>=6&&1===o||/vivaldi/i.test(u))||!r&&1===o)&&(i=2,s=new Array(2)),a=n)),s[0]=i<<3,s[0]|=(14&n)>>1,s[1]|=(1&n)<<7,s[1]|=o<<3,5===i&&(s[1]|=(14&a)>>1,s[2]=(1&a)<<7,s[2]|=8,s[3]=0),{config:s,samplerate:h[n],channelCount:o,codec:"mp4a.40."+i,manifestCodec:d};console.log("ADTS parse fail. reason: 'invalid ADTS sampling index:${adtsSampleingIndex}'")}function w(e,t){return 255===e[t]&&240==(246&e[t+1])}function E(e,t){return 1&e[t+1]?7:9}function A(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function S(e,t){return!!(t+1<e.length&&w(e,t))}function M(e,t,r){return v(e,t,r)}function T(e){return 9216e4/e}function R(e,t,r,i,n){var a=function(e,t,r,i,n){var a,o,s=e.length;if(a=E(e,t),o=A(e,t),(o-=a)>0&&t+a+o<=s)return{headerLength:a,frameLength:o,stamp:r+i*n}}(t,r,i,n,T(e));if(a){var o=a.stamp,s=a.headerLength,u=a.frameLength;return{sample:{unit:t.subarray(r+s,r+s+u),pts:o,dts:o},length:u+s}}}var k=function(){function e(e){this.data=e,this.bytesAvailable=e.byteLength,this.word=0,this.bitsAvailable=0}var t=e.prototype;return t.loadWord=function(){var e=this.data,t=this.bytesAvailable,r=e.byteLength-t,i=new Uint8Array(4),n=Math.min(4,t);if(0===n)throw new Error("no bytes available");i.set(e.subarray(r,r+n)),this.word=new DataView(i.buffer).getUint32(0),this.bitsAvailable=8*n,this.bytesAvailable-=n},t.skipBits=function(e){var t;this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,e-=(t=e>>3)>>3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)},t.readBits=function(e){var t=Math.min(this.bitsAvailable,e),r=this.word>>>32-t;return e>32&&logger.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0?this.word<<=t:this.bytesAvailable>0&&this.loadWord(),(t=e-t)>0&&this.bitsAvailable?r<<t|this.readBits(t):r},t.skipLZ=function(){var e;for(e=0;e<this.bitsAvailable;++e)if(0!=(this.word&2147483648>>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},t.skipUEG=function(){this.skipBits(1+this.skipLZ())},t.skipEG=function(){this.skipBits(1+this.skipLZ())},t.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},t.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},t.readBoolean=function(){return 1===this.readBits(1)},t.readUByte=function(){return this.readBits(8)},t.readUShort=function(){return this.readBits(16)},t.readUInt=function(){return this.readBits(32)},t.skipScalingList=function(e){var t,r=8,i=8;for(t=0;t<e;t++)0!==i&&(i=(r+this.readEG()+256)%256),r=0===i?r:i},t.readSPS=function(){var e,t,r,i,n,a,o,s=0,u=0,d=0,h=0,l=this.readUByte.bind(this),f=this.readBits.bind(this),c=this.readUEG.bind(this),p=this.readBoolean.bind(this),m=this.skipBits.bind(this),g=this.skipEG.bind(this),_=this.skipUEG.bind(this),y=this.skipScalingList.bind(this);if(l(),e=l(),f(5),m(3),l(),_(),100===e||110===e||122===e||244===e||44===e||83===e||86===e||118===e||128===e){var b=c();if(3===b&&m(1),_(),_(),m(1),p())for(a=3!==b?8:12,o=0;o<a;o++)p()&&y(o<6?16:64)}_();var v=c();if(0===v)c();else if(1===v)for(m(1),g(),g(),t=c(),o=0;o<t;o++)g();_(),m(1),r=c(),i=c(),0===(n=f(1))&&m(1),m(1),p()&&(s=c(),u=c(),d=c(),h=c());var w=[1,1];if(p()&&p())switch(l()){case 1:w=[1,1];break;case 2:w=[12,11];break;case 3:w=[10,11];break;case 4:w=[16,11];break;case 5:w=[40,33];break;case 6:w=[24,11];break;case 7:w=[20,11];break;case 8:w=[32,11];break;case 9:w=[80,33];break;case 10:w=[18,11];break;case 11:w=[15,11];break;case 12:w=[64,33];break;case 13:w=[160,99];break;case 14:w=[4,3];break;case 15:w=[3,2];break;case 16:w=[2,1];break;case 255:w=[l()<<8|l(),l()<<8|l()]}return{width:Math.ceil(16*(r+1)-2*s-2*u),height:(2-n)*(i+1)*16-(n?2:4)*(d+h),pixelRatio:w}},t.readSliceType=function(){return this.readUByte(),this.readUEG(),this.readUEG()},e}();function I(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var O=function(){function e(e,t,r){this.TAG="M3U8Demuxer",this._config=e,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._hasAudio=!1,this._hasVideo=!1,this._hasAudioFlagOverrided=!1,this._hasVideoFlagOverrided=!1,this._initVideoMetadata=!1,this._initAudioMetadata=!1,this._mediaInfo=new s.a,this._mediaInfo.hasAudio=!1,this._mediaInfo.hasVideo=!1,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this.tagPosition=0,this.filePosition=0,this.isHEVC=0,this.isAAC=0,this.avcTrackPid=-1,this.audioTrackPid=-1,this.id3TrackPid=-1,this.audioSampleRate=0,this.audioChannel=2,this.audioBitPerSample=16,this.avcTrackPesData=null,this.audioTrackPesData=null,this.id3TrackPesData=null,this.findKeyframe=!0,this.syncVideoPts=0,this.syncAudioPts=0,this.startVideoPts=0,this.startAudioPts=0,this.accurateTimeOffset=0,this.lastVideoPts=0,this.currentVideoPts=0,this.seekVideoHistoryPts=0,this.currentAudioPts=0,this.audioFrameNum=0,this.reset=0,this._videoTrack={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this._audioTrack={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._timestampBase=0,this._timescale=1e3,this._duration=0,this._durationOverrided=!1,this._AVC_SPS=null,this._AVC_PPS=null,this._HEVC_VPS=null,this._HEVC_SPS=null,this._HEVC_PPS=null,this._StartCode=[0,0,0,1],this._AVC_Config=null,this._callbackInitFlag=!1,this._callbackMediaDataFunc=t,this._callbackMediaDataUserPtr=r,this._onReceiveH265MediaHLSFrame=null}var t,r,i,n=e.prototype;return n.bindDataSource=function(e){return e.onDataArrival=this.append.bind(this),this},n.resetMediaInfo=function(){this._mediaInfo=new s.a},n.resetMediaPts=function(e){this.reset=e,this.syncVideoPts=0,this.syncAudioPts=0,this.findKeyframe=!0,this._videoTrack.samples=[],this._audioTrack.samples=[]},n._onDataAvailableToSoftwareDecodeVideo=function(e,t){var r=t.samples;if(e<1&&r.length>0)console.log("EXCEPTION:: No used...");else{var i=-1;for(r.length>1&&(i=0);r.length;){for(var n=r.shift(),a=0,o=0;o<n.units.length;o++)a+=n.units[o].data.length;for(var s=0,u=new Uint8Array(a);n.units.length;){var d=n.units.shift();27==e&&(d.data[0]=0,d.data[1]=0,d.data[2]=0,d.data[3]=1),u.set(d.data,s),s+=d.data.length}this._onReceiveH265MediaHLSFrame&&(i>=0&&i++,this._onReceiveH265MediaHLSFrame("video",!0,1,e,n.isKeyframe,u,a,n.pts,0,0,0))}}},n._onDataAvailableToSoftwareDecodeAudio=function(e,t){var r=t.samples,i=-1;for(r.length>1&&(i=0);r.length;){var n=r.shift();this._onReceiveH265MediaHLSFrame&&(i>=0&&i++,this._onReceiveH265MediaHLSFrame("audio",!0,2,e,0,n.unit,n.length,n.pts,this._SampleRate,this._ChannelNum,this._SampleRate>=44100?32:16))}},e.createTrack=function(e,t){return{container:"video"===e||"audio"===e?"video/mp2t":void 0,type:e,id:RemuxerTrackIdConfig[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:"video"===e?0:void 0,isAAC:"audio"===e||void 0,duration:"audio"===e?t:void 0,isHEVC:0}},e._syncOffset=function(e){for(var t=Math.min(1e3,e.length-564),r=0;r<t;){if(71===e[r]&&71===e[r+188]&&71===e[r+376])return r;r++}return-1},n.destroy=function(){this._initPTS=this._initDTS=void 0,this._duration=0,this._onReceiveH265MediaHLSFrame=null},n.parsePAT=function(e,t){return(31&e[t+10])<<8|e[t+11]},n.parsePMT=function(e,t,r,i){var n,a,o={audio:-1,avc:-1,hevc:-1,id3:-1,isAAC:!0};for(n=t+3+((15&e[t+1])<<8|e[t+2])-4,t+=12+((15&e[t+10])<<8|e[t+11]);t<n;){switch(a=(31&e[t+1])<<8|e[t+2],e[t]){case 207:if(!i)break;case 15:-1===o.audio&&(o.audio=a);break;case 21:-1===o.id3&&(o.id3=a);break;case 219:if(!i){logger.log("unknown stream type:"+e[t]);break}case 27:-1===o.avc&&(o.avc=a),g.h("H264");break;case 36:-1===o.avc&&(o.avc=a,o.hevc=a),g.h("H265");break;case 3:case 4:r?-1===o.audio&&(o.audio=a,o.isAAC=!1):logger.log("MPEG audio found, not supported in this browser for now");break;case 36:console.warn("HEVC stream type found, not supported for now")}t+=5+((15&e[t+3])<<8|e[t+4])}return o},n.parsePES=function(e){if(1!==this.reset){var t,r,i,n,a,o,s,u,d=0,h=e.data;if(!e||0===e.size)return null;for(;h[0].length<19&&h.length>1;){var l=new Uint8Array(h[0].length+h[1].length);l.set(h[0]),l.set(h[1],h[0].length),h[0]=l,h.splice(1,1)}if(1===((t=h[0])[0]<<16)+(t[1]<<8)+t[2]){if((i=(t[4]<<8)+t[5])&&i>e.size-6)return null;if(192&(r=t[7])&&((o=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2)>4294967295&&(o-=4294967295),64&r?((s=536870912*(14&t[14])+4194304*(255&t[15])+16384*(254&t[16])+128*(255&t[17])+(254&t[18])/2)>4294967295&&(s-=4294967295),o-s>54e5&&(console.warn(Math.round((o-s)/9e4)+"s delta between PTS and DTS, align them"),o=s)):s=o),u=(n=t[8])+9,e.size<=u)return null;e.size-=u,a=new Uint8Array(e.size);for(var f=0,c=h.length;f<c;f++){var p=(t=h[f]).byteLength;if(u){if(u>p){u-=p;continue}t=t.subarray(u),p-=u,u=0}a.set(t,d),d+=p}return i&&(i-=n+3),{data:a,pts:o,dts:s,len:i}}return null}},n.pushAccesUnit=function(e,t){if(e.units.length&&e.frame){var r=t.samples,i=r.length;if(isNaN(e.pts)){if(!i)return void t.dropped++;var n=r[i-1];e.pts=n.pts,e.dts=n.dts}!this.config.forceKeyFrameOnDiscontinuity||!0===e.key||t.sps&&(i||this.contiguous)?(e.id=i,r.push(e)):t.dropped++}e.debug.length&&logger.log(e.pts+"/"+e.dts+":"+e.debug)},n.parseAVCPES=function(e,t,r){var i=this,n=0;(0===this.startVideoPts||e.pts<this.startVideoPts)&&(this.startVideoPts=e.pts,n=1),this.audioFrameNum=0;var o=this._parseAVCNALu(e.data),s=[],u=0;e.data=null;var d=!1;o.forEach((function(t){var r=t.data.length,n=new Uint8Array(4+r);n[0]=r>>24&255,n[1]=r>>16&255,n[2]=r>>8&255,n[3]=255&r,n.set(t.data,4);var o={type:t.type,data:n};switch(u+=n.length,s.push(o),t.type){case 1:!0;break;case 5:!0,i.findKeyframe=!1,d=!0;break;case 6:!0;var h=new k(i.discardEPB(t.data));h.readUByte();for(var l=0,f=0,c=!1,p=0;!c&&h.bytesAvailable>1;){l=0;do{l+=p=h.readUByte()}while(255===p);f=0;do{f+=p=h.readUByte()}while(255===p);if(4===l&&0!==h.bytesAvailable){if(c=!0,181===h.readUByte())if(49===h.readUShort())if(1195456820===h.readUInt())if(3===h.readUByte()){for(var g=h.readUByte(),_=31&g,y=[g,h.readUByte()],b=0;b<_;b++)y.push(h.readUByte()),y.push(h.readUByte()),y.push(h.readUByte());i._insertSampleInOrder(i._txtTrack.samples,{type:3,pts:e.pts,bytes:y})}}else if(5===l&&0!==h.bytesAvailable){if(c=!0,f>16){for(var v=[],w=0;w<16;w++)v.push(h.readUByte().toString(16)),3!==w&&5!==w&&7!==w&&9!==w||v.push("-");for(var E=f-16,A=new Uint8Array(E),S=0;S<E;S++)A[S]=h.readUByte()}}else if(f<h.bytesAvailable)for(var M=0;M<f;M++)h.readUByte()}break;case 7:!0,!0,i.findKeyframe=!1,i.tagPosition=i.filePosition,i._AVC_Config=m.parseSPS(t.data);var T=i._AVC_Config,R="avc1.";if(T)for(var I=t.data.subarray(1,4),O=0;O<3;O++){var D=I[O].toString(16);D.length<2&&(D="0"+D),R+=D}if(!i._initVideoMetadata){null==i._AVC_SPS&&(i._AVC_SPS=new Uint8Array(t.data.length+4),i._AVC_SPS.set(i._StartCode,0),i._AVC_SPS.set(t.data,4));var x=i._videoMetadata,C=i._videoTrack;if(x?void 0!==x.avcc&&a.a.w(i.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===i._hasVideo&&!1===i._hasVideoFlagOverrided&&(i._hasVideo=!0,i._mediaInfo.hasVideo=!0),(x=i._videoMetadata={}).type="video",x.id=C.id,x.timescale=i._timescale,x.duration=i._duration),x.codecWidth=T.codec_size.width,x.codecHeight=T.codec_size.height,x.presentWidth=T.present_size.width,x.presentHeight=T.present_size.height,x.profile=T.profile_string,x.level=T.level_string,x.bitDepth=T.bit_depth,x.chromaFormat=T.chroma_format,x.sarRatio=T.sar_ratio,x.frameRate=T.frame_rate,!1!==T.frame_rate.fixed&&0!==T.frame_rate.fps_num&&0!==T.frame_rate.fps_den||(x.frameRate=i._referenceFrameRate),void 0!==x.frameRate){var P=x.frameRate.fps_den,N=x.frameRate.fps_num;x.refSampleDuration=x.timescale*(P/N)}x.codec=R;var L=i._mediaInfo;L.width=x.codecWidth,L.height=x.codecHeight,void 0!==x.frameRate&&(L.fps=x.frameRate.fps),L.profile=x.profile,L.level=x.level,L.refFrames=T.ref_frames,L.chromaFormat=T.chroma_format_string,L.sarNum=x.sarRatio.width,L.sarDen=x.sarRatio.height,L.videoCodec=R,L.hasAudio?null!=L.audioCodec&&(L.mimeType='video/x-flv; codecs="'+L.videoCodec+","+L.audioCodec+'"'):L.mimeType='video/x-flv; codecs="'+L.videoCodec+'"',L.isComplete()&&i._onMediaInfo(L)}break;case 8:if(!0,i.findKeyframe=!1,null==i._AVC_PPS&&(i._AVC_PPS=new Uint8Array(t.data.length+4),i._AVC_PPS.set(i._StartCode,0),i._AVC_PPS.set(t.data,4)),!i._initVideoMetadata){i._initVideoMetadata=!0;var B=i._videoMetadata;if(null==B.avcc){var F=0,U=i._AVC_SPS.length-4+8+1+2+(i._AVC_PPS.length-4);B.avcc=new Uint8Array(U+1),B.avcc[0]=1,B.avcc[1]=i._AVC_SPS[5],B.avcc[2]=i._AVC_SPS[6],B.avcc[3]=i._AVC_SPS[7],B.avcc[4]=255,B.avcc[5]=225,F=6;new Uint8Array;B.avcc[F++]=i._AVC_SPS.length-4>>8,B.avcc[F++]=i._AVC_SPS.length-4&255;var j=i._AVC_SPS.subarray(4,i._AVC_SPS.length);B.avcc.set(j,F),F+=j.length,B.avcc[F++]=1,B.avcc[F++]=i._AVC_PPS.length-4>>8,B.avcc[F++]=i._AVC_PPS.length-4&255;var H=i._AVC_PPS.subarray(4,i._AVC_PPS.length);B.avcc.set(H,F),F+=H.length,B.avcc[U]=1}i._onTrackMetadata("video",B)}break;case 9:case 12:default:!1}}));var h=(e.pts-this.startVideoPts)/90;d&&this.syncVideoPts<1&&(this.syncVideoPts=this.startVideoPts);var l=this._videoTrack,f={units:s,length:u,isKeyframe:d,dts:h,cts:0,pts:h};d&&(f.fileposition=this.tagPosition),0!==this.reset||this.findKeyframe||(l.samples.push(f),l.length+=u),this.filePosition+=u,this.accurateTimeOffset=f.pts,this.lastVideoPts=e.pts,1===n&&(this.seekVideoHistoryPts=h),t&&0===this.reset&&(console.log("this._config",this._config,this._config.decodeType),"auto"===this._config.decodeType||"hard"===this._config.decodeType?(this._onDataAvailable(this._audioTrack,this._videoTrack),console.log("_onDataAvailable",this._audioTrack,this._videoTrack)):(this._videoTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeVideo(27,this._videoTrack),this._audioTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeAudio(86018,this._audioTrack)))},n.parseHEVCPES=function(e,t,r){(0===this.startVideoPts||e.pts<this.startVideoPts)&&(this.startVideoPts=e.pts);var i=[],n=0,a={type:1,data:e.data},o=0;if((n+=e.data.length)>32)for(var s=0;s<32;s++)if(0===e.data[s]&&0===e.data[s+1]&&0===e.data[s+2]&&1===e.data[s+3]&&(64===e.data[s+4]||70===e.data[s+4])){o=1,this.findKeyframe=!1;break}i.push(a);var u=(e.pts-this.startVideoPts)/90;o&&this.syncVideoPts<1&&(this.syncVideoPts=this.startVideoPts);var d=this._videoTrack,h={units:i,length:n,isKeyframe:o,dts:u,cts:0,pts:u};o&&(h.fileposition=this.tagPosition),d.samples.push(h),d.length+=n,this._videoTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeVideo(173,this._videoTrack),this._audioTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeAudio(86018,this._audioTrack)},n._insertSampleInOrder=function(e,t){var r=e.length;if(r>0){if(t.pts>=e[r-1].pts)e.push(t);else for(var i=r-1;i>=0;i--)if(t.pts<e[i].pts){e.splice(i,0,t);break}}else e.push(t)},n._getLastNalUnit=function(){var e,t=this.avcSample;if(!t||0===t.units.length){var r=this._avcTrack.samples;t=r[r.length-1]}if(t){var i=t.units;e=i[i.length-1]}return e},n._parseAVCNALu=function(e){var t,r,i,n=0,a=e.byteLength,o=0,s=[],u=-1;for(-1===o&&(u=0,i=31&e[0],o=0,n=1);n<a;)if(t=e[n++],o)if(1!==o)if(t)if(1===t){if(u>=0)9!=(r={data:e.subarray(u,n-o-1),type:i}).type&&s.push(r);else;n<a?(u=n,i=31&e[n],o=0):o=-1}else o=0;else o=3;else o=t?0:2;else o=t?0:1;if(u>=0&&o>=0&&(r={data:e.subarray(u,a),type:i,state:o},s.push(r)),0===s.length){var d=this._getLastNalUnit();if(d){var h=new Uint8Array(d.data.byteLength+e.byteLength);h.set(d.data,0),h.set(e,d.data.byteLength),d.data=h}}return s},n.discardEPB=function(e){for(var t,r,i=e.byteLength,n=[],a=1;a<i-2;)0===e[a]&&0===e[a+1]&&3===e[a+2]?(n.push(a+2),a+=2):a++;if(0===n.length)return e;t=i-n.length,r=new Uint8Array(t);var o=0;for(a=0;a<t;o++,a++)o===n[0]&&(o++,n.shift()),r[a]=e[o];return r},n.parseAACPES=function(e,t){0===this.startAudioPts&&(this.startAudioPts=e.pts);var r,i,n,o,s,u,d,h=this._audioTrack,l=e.data,f=e.pts,c=this.aacOverFlow,p=this.aacLastPTS;if(c){var m=new Uint8Array(c.byteLength+l.byteLength);m.set(c,0),m.set(l,c.byteLength),l=m}for(n=0,s=l.length;n<s-1&&!S(l,n);n++);if(n&&(n<s-1?(u="AAC PES did not start with ADTS header,offset:"+n,d=!1):(u="no ADTS header found in AAC PES",d=!0),logger.warn("parsing error:"+u),this.observer.trigger(Event.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_PARSING_ERROR,fatal:d,reason:u}),d))return;if(this.audioSampleRate<1){var g=M(l,n,this.audioCodec);if(g&&(this.audioSampleRate=g.samplerate,this.audioChannel=g.channelCount,this.audioBitPerSample=16,!this._initAudioMetadata)){this._initAudioMetadata=!0;var _=this._audioMetadata,y=this._audioTrack;_||((_=this._audioMetadata={}).type="audio",_.id=y.id,_.timescale=1e3,_.duration=0,_.audioSampleRate=this.audioSampleRate,_.channelCount=this.audioChannel),_.config&&a.a.w(this.TAG,"Found another AudioSpecificConfig!");g.config;_.audioSampleRate=g.samplerate,_.channelCount=g.channelCount,_.codec=g.codec,_.originalCodec=g.originalCodec,_.config=g.config,_.refSampleDuration=1024/_.audioSampleRate*_.timescale,this._SampleRate=g.samplerate,this._ChannelNum=g.channelCount,this._onDataAvailable(this._audioTrack,this._videoTrack),this._onTrackMetadata("audio",_);var b=this._mediaInfo;b.audioCodec=_.originalCodec,b.audioSampleRate=_.audioSampleRate,b.audioChannelCount=_.channelCount,b.hasVideo?null!=b.videoCodec&&(b.mimeType='video/x-flv; codecs="'+b.videoCodec+","+b.audioCodec+'"'):b.mimeType='video/x-flv; codecs="'+b.audioCodec+'"',b.isComplete()&&this._onMediaInfo(b)}}if(i=0,r=T(this.audioSampleRate),c&&p){var v=p+r;Math.abs(v-f)>1&&(console.log("AAC: align PTS for overlapping frames by "+Math.round((v-f)/90)),f=v)}for(;n<s;)if(S(l,n)&&n+5<s){var w=R(this.audioSampleRate,l,n,f,i);if(!w)break;var E=Math.round((w.sample.pts-this.startAudioPts)/90),A={unit:w.sample.unit,length:w.length,dts:E,pts:E};0!==this.reset||this.findKeyframe||(this.syncAudioPts<1&&this.syncVideoPts>0&&(this.syncAudioPts=this.syncVideoPts),this.syncAudioPts>0&&(h.samples.push(A),h.length+=w.length)),n+=w.length,o=w.sample.pts,i++}else n++;c=n<s?l.subarray(n,s):null,this.aacOverFlow=c,this.aacLastPTS=o},n.parseMPEGPES=function(e){for(var t=e.data,r=t.length,i=0,n=0,a=e.pts;n<r;)if(MpegAudio.isHeader(t,n)){var o=MpegAudio.appendFrame(this._audioTrack,t,n,a,i);if(!o)break;n+=o.length,i++}else n++},n.append=function(t,r,i){if(null!=t&&1!==this.reset){var n,a,o,s,u,d,h=t.length,l=!1,f=-1,c=-1,p=-1,m=this.avcTrackPesData,g=this.audioTrackPesData,_=this.id3TrackPesData,y=!1,b=e._syncOffset(t);for(h-=(h+b)%188,n=b;n<h;n+=188)if(71===t[n]){if(a=!!(64&t[n+1]),o=((31&t[n+1])<<8)+t[n+2],(48&t[n+3])>>4>1){if((s=n+5+t[n+4])===n+188)continue}else s=n+4;switch(o){case f:a&&(m&&(u=this.parsePES(m))&&(1===this.isHEVC?this.parseHEVCPES(u,!1,i):this.parseAVCPES(u,!1,i)),m={data:[],size:0}),m&&(m.data.push(t.subarray(s,n+188)),m.size+=n+188-s);break;case c:a&&(g&&(u=this.parsePES(g))&&(this.isAAC?this.parseAACPES(u,!1):this.parseMPEGPES(u)),g={data:[],size:0}),g&&(g.data.push(t.subarray(s,n+188)),g.size+=n+188-s);break;case p:a&&(_&&(u=this.parsePES(_))&&parseID3PES(u),_={data:[],size:0}),_&&(_.data.push(t.subarray(s,n+188)),_.size+=n+188-s);break;case 0:a&&(s+=t[s]+1),d=this.parsePAT(t,s);break;case d:a&&(s+=t[s]+1);var v=this.parsePMT(t,s,!1,!1);f=v.avc,v.hevc>0&&(f=v.hevc,this.isHEVC=1),f>0&&(this.avcTrackPid=f),!this._callbackInitFlag&&this._callbackMediaDataFunc&&(this._callbackInitFlag=!0,1===this.isHEVC||"auto"!==this._config.decodeType&&"hard"!==this._config.decodeType||this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!1,1,0,0,null,0,0,0,0)),(c=v.audio)>0&&(this.audioTrackPid=c,this.isAAC=v.isAAC),(p=v.id3)>0&&(this.id3TrackPid=p),l&&!y&&(console.log("reparse from beginning"),l=!1,n=b-188),y=!0;break;case 17:case 8191:break;default:l=!0}}else console.log("parse error... reason: 'TS packet did not start with 0x47'");m&&(u=this.parsePES(m))?(1==this.isHEVC?this.parseHEVCPES(u,!0,i):this.parseAVCPES(u,!0,i),this.avcTrackPesData=null):this.avcTrackPesData=m,g&&(u=this.parsePES(g))?(this.isAAC?this.parseAACPES(u,!0):this.parseMPEGPES(u),this.audioTrackPesData=null):(g&&g.size&&logger.log("last AAC PES packet truncated,might overlap between fragments"),this.audioTrackPesData=g),_&&(u=this.parsePES(_))?(parseID3PES(u),this.id3TrackPesData=null):this.id3TrackPesData=_}},t=e,(r=[{key:"onReceiveH265MediaHLSFrame",get:function(){return this._onReceiveH265MediaHLSFrame},set:function(e){this._onReceiveH265MediaHLSFrame=e}},{key:"onTrackMetadata",get:function(){return this._onTrackMetadata},set:function(e){this._onTrackMetadata=e}},{key:"onMediaInfo",get:function(){return this._onMediaInfo},set:function(e){this._onMediaInfo=e}},{key:"onMetaDataArrived",get:function(){return this._onMetaDataArrived},set:function(e){this._onMetaDataArrived=e}},{key:"onScriptDataArrived",get:function(){return this._onScriptDataArrived},set:function(e){this._onScriptDataArrived=e}},{key:"onError",get:function(){return this._onError},set:function(e){this._onError=e}},{key:"onDataAvailable",get:function(){return this._onDataAvailable},set:function(e){this._onDataAvailable=e}},{key:"timestampBase",get:function(){return this._timestampBase},set:function(e){this._timestampBase=e}},{key:"overridedDuration",get:function(){return this._duration},set:function(e){this._durationOverrided=!0,this._duration=e,this._mediaInfo.duration=e}},{key:"overridedHasAudio",set:function(e){this._hasAudioFlagOverrided=!0,this._hasAudio=e,this._mediaInfo.hasAudio=e}},{key:"overridedHasVideo",set:function(e){this._hasVideoFlagOverrided=!0,this._hasVideo=e,this._mediaInfo.hasVideo=e}}])&&I(t.prototype,r),i&&I(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}(),D=function(){function e(){}return e.init=function(){for(var t in e.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[]},e.types)e.types.hasOwnProperty(t)&&(e.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);var r=e.constants={};r.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),r.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),r.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),r.STSC=r.STCO=r.STTS,r.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),r.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),r.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),r.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),r.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),r.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])},e.box=function(e){for(var t=8,r=null,i=Array.prototype.slice.call(arguments,1),n=i.length,a=0;a<n;a++)t+=i[a].byteLength;(r=new Uint8Array(t))[0]=t>>>24&255,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,r.set(e,4);for(var o=8,s=0;s<n;s++)r.set(i[s],o),o+=i[s].byteLength;return r},e.generateInitSegment=function(t){var r=e.box(e.types.ftyp,e.constants.FTYP),i=e.moov(t),n=new Uint8Array(r.byteLength+i.byteLength);return n.set(r,0),n.set(i,r.byteLength),n},e.moov=function(t){var r=e.mvhd(t.timescale,t.duration),i=e.trak(t),n=e.mvex(t);return e.box(e.types.moov,r,i,n)},e.mvhd=function(t,r){return e.box(e.types.mvhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))},e.trak=function(t){return e.box(e.types.trak,e.tkhd(t),e.mdia(t))},e.tkhd=function(t){var r=t.id,i=t.duration,n=t.presentWidth,a=t.presentHeight;return e.box(e.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>>8&255,255&n,0,0,a>>>8&255,255&a,0,0]))},e.mdia=function(t){return e.box(e.types.mdia,e.mdhd(t),e.hdlr(t),e.minf(t))},e.mdhd=function(t){var r=t.timescale,i=t.duration;return e.box(e.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,i>>>24&255,i>>>16&255,i>>>8&255,255&i,85,196,0,0]))},e.hdlr=function(t){var r=null;return r="audio"===t.type?e.constants.HDLR_AUDIO:e.constants.HDLR_VIDEO,e.box(e.types.hdlr,r)},e.minf=function(t){var r=null;return r="audio"===t.type?e.box(e.types.smhd,e.constants.SMHD):e.box(e.types.vmhd,e.constants.VMHD),e.box(e.types.minf,r,e.dinf(),e.stbl(t))},e.dinf=function(){return e.box(e.types.dinf,e.box(e.types.dref,e.constants.DREF))},e.stbl=function(t){return e.box(e.types.stbl,e.stsd(t),e.box(e.types.stts,e.constants.STTS),e.box(e.types.stsc,e.constants.STSC),e.box(e.types.stsz,e.constants.STSZ),e.box(e.types.stco,e.constants.STCO))},e.stsd=function(t){return"audio"===t.type?"mp3"===t.codec?e.box(e.types.stsd,e.constants.STSD_PREFIX,e.mp3(t)):e.box(e.types.stsd,e.constants.STSD_PREFIX,e.mp4a(t)):e.box(e.types.stsd,e.constants.STSD_PREFIX,e.avc1(t))},e.mp3=function(t){var r=t.channelCount,i=t.audioSampleRate,n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,r,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return e.box(e.types[".mp3"],n)},e.mp4a=function(t){var r=t.channelCount,i=t.audioSampleRate,n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,r,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return e.box(e.types.mp4a,n,e.esds(t))},e.esds=function(t){var r=t.config||[],i=r.length,n=new Uint8Array([0,0,0,0,3,23+i,0,1,0,4,15+i,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([i]).concat(r).concat([6,1,2]));return e.box(e.types.esds,n)},e.avc1=function(t){var r=t.avcc,i=t.codecWidth,n=t.codecHeight,a=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,n>>>8&255,255&n,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return e.box(e.types.avc1,a,e.box(e.types.avcC,r))},e.mvex=function(t){return e.box(e.types.mvex,e.trex(t))},e.trex=function(t){var r=t.id,i=new Uint8Array([0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return e.box(e.types.trex,i)},e.moof=function(t,r){return e.box(e.types.moof,e.mfhd(t.sequenceNumber),e.traf(t,r))},e.mfhd=function(t){var r=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t]);return e.box(e.types.mfhd,r)},e.traf=function(t,r){var i=t.id,n=e.box(e.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),a=e.box(e.types.tfdt,new Uint8Array([0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r])),o=e.sdtp(t),s=e.trun(t,o.byteLength+16+16+8+16+8+8);return e.box(e.types.traf,n,a,s,o)},e.sdtp=function(t){for(var r=t.samples||[],i=r.length,n=new Uint8Array(4+i),a=0;a<i;a++){var o=r[a].flags;n[a+4]=o.isLeading<<6|o.dependsOn<<4|o.isDependedOn<<2|o.hasRedundancy}return e.box(e.types.sdtp,n)},e.trun=function(t,r){var i=t.samples||[],n=i.length,a=12+16*n,o=new Uint8Array(a);r+=8+a,o.set([0,0,15,1,n>>>24&255,n>>>16&255,n>>>8&255,255&n,r>>>24&255,r>>>16&255,r>>>8&255,255&r],0);for(var s=0;s<n;s++){var u=i[s].duration,d=i[s].size,h=i[s].flags,l=i[s].cts;o.set([u>>>24&255,u>>>16&255,u>>>8&255,255&u,d>>>24&255,d>>>16&255,d>>>8&255,255&d,h.isLeading<<2|h.dependsOn,h.isDependedOn<<6|h.hasRedundancy<<4|h.isNonSync,0,0,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*s)}return e.box(e.types.trun,o)},e.mdat=function(t){return e.box(e.types.mdat,t)},e}();D.init();var x=D,C=function(){function e(){}return e.getSilentFrame=function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null},e}(),P=r(21),N=r(16);function L(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var B=function(){function e(e){this.TAG="MP4Remuxer",this._config=e,this._isLive=!0===e.isLive,this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList=new N.c("audio"),this._videoSegmentInfoList=new N.c("video"),this._onInitSegment=null,this._onMediaSegment=null,this._forceFirstIDR=!(!o.a.chrome||!(o.a.version.major<50||50===o.a.version.major&&o.a.version.build<2661)),this._fillSilentAfterSeek=o.a.msedge||o.a.msie,this._mp3UseMpegAudio=!o.a.firefox,this._fillAudioTimestampGap=this._config.fixAudioTimestampGap,this._recordWorker=null,this._findKeyframe=!0,this._initRecordFlag=!1,this._recordFileName="record.mp4"}var t,r,i,n=e.prototype;return n.destroy=function(){this._dtsBase=-1,this._dtsBaseInited=!1,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList.clear(),this._audioSegmentInfoList=null,this._videoSegmentInfoList.clear(),this._videoSegmentInfoList=null,this._onInitSegment=null,this._onMediaSegment=null,this._recordWorker&&(this._recordWorker.terminate(),this._recordWorker=null)},n.bindDataSource=function(e){return e.onDataAvailable=this.remux.bind(this),e.onTrackMetadata=this._onTrackMetadataReceived.bind(this),this},n.insertDiscontinuity=function(){this._audioNextDts=this._videoNextDts=void 0},n.seek=function(e){this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._videoSegmentInfoList.clear(),this._audioSegmentInfoList.clear()},n.remux=function(e,t){if(!this._onMediaSegment)throw new l.a("MP4Remuxer: onMediaSegment callback must be specificed!");this._dtsBaseInited||this._calculateDtsBase(e,t),this._remuxVideo(t),this._remuxAudio(e)},n._onTrackMetadataReceived=function(e,t){var r=null,i="mp4",n=t.codec;if("audio"===e)this._audioMeta=t,"mp3"===t.codec&&this._mp3UseMpegAudio?(i="mpeg",n="",r=new Uint8Array):r=x.generateInitSegment(t);else{if("video"!==e)return;this._videoMeta=t,r=x.generateInitSegment(t)}if(!this._onInitSegment)throw new l.a("MP4Remuxer: onInitSegment callback must be specified!");this._onInitSegment(e,{type:e,data:r.buffer,codec:n,container:e+"/"+i,mediaDuration:t.duration})},n._calculateDtsBase=function(e,t){this._dtsBaseInited||(e.samples&&e.samples.length&&(this._audioDtsBase=e.samples[0].dts),t.samples&&t.samples.length&&(this._videoDtsBase=t.samples[0].dts),this._dtsBase=Math.min(this._audioDtsBase,this._videoDtsBase),this._dtsBaseInited=!0)},n.flushStashedSamples=function(){var e=this._videoStashedLastSample,t=this._audioStashedLastSample,r={type:"video",id:1,sequenceNumber:0,samples:[],length:0};null!=e&&(r.samples.push(e),r.length=e.length);var i={type:"audio",id:2,sequenceNumber:0,samples:[],length:0};null!=t&&(i.samples.push(t),i.length=t.length),this._videoStashedLastSample=null,this._audioStashedLastSample=null,this._remuxVideo(r,!0),this._remuxAudio(i,!0)},n._remuxAudio=function(e,t){if(null!=this._audioMeta){var r,i=e,n=i.samples,s=void 0,u=-1,d=this._audioMeta.refSampleDuration,h="mp3"===this._audioMeta.codec&&this._mp3UseMpegAudio,l=this._dtsBaseInited&&void 0===this._audioNextDts,f=!1;if(n&&0!==n.length&&(1!==n.length||t)){if(!g.c())for(var c=0;c<n.length;c++)n.shift();var p=0,m=null,_=0;h?(p=0,_=i.length):(p=8,_=8+i.length);var y=null;if(n.length>1&&(_-=(y=n.pop()).length),null!=this._audioStashedLastSample){var b=this._audioStashedLastSample;this._audioStashedLastSample=null,n.unshift(b),_+=b.length}null!=y&&(this._audioStashedLastSample=y);var v=n[0].dts-this._dtsBase;if(this._audioNextDts)s=v-this._audioNextDts;else if(this._audioSegmentInfoList.isEmpty())s=0,this._fillSilentAfterSeek&&!this._videoSegmentInfoList.isEmpty()&&"mp3"!==this._audioMeta.originalCodec&&(f=!0);else{var w=this._audioSegmentInfoList.getLastSampleBefore(v);if(null!=w){var E=v-(w.originalDts+w.duration);E<=3&&(E=0),s=v-(w.dts+w.duration+E)}else s=0}if(f){var A=v-s,S=this._videoSegmentInfoList.getLastSegmentBefore(v);if(null!=S&&S.beginDts<A){var M=C.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount);if(M){var T=S.beginDts,R=A-S.beginDts;a.a.v(this.TAG,"InsertPrefixSilentAudio: dts: "+T+", duration: "+R),n.unshift({unit:M,dts:T,pts:T}),_+=M.byteLength}}else f=!1}for(var k=[],I=0;I<n.length;I++){var O=n[I],D=O.unit,P=O.dts-this._dtsBase,L=P,B=!1,F=null,U=0;if(!(P<-.001)){if("mp3"!==this._audioMeta.codec){var j=P;if(this._audioNextDts&&(j=this._audioNextDts),(s=P-j)<=-3*d){a.a.w(this.TAG,"Dropping 1 audio frame (originalDts: "+P+" ms ,curRefDts: "+j+" ms) due to dtsCorrection: "+s+" ms overlap.");continue}if(s>=3*d&&this._fillAudioTimestampGap&&!o.a.safari){B=!0;var H=Math.floor(s/d);a.a.w(this.TAG,"Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\noriginalDts: "+P+" ms, curRefDts: "+j+" ms, dtsCorrection: "+Math.round(s)+" ms, generate: "+H+" frames"),L=Math.floor(j),U=Math.floor(j+d)-L;var X=C.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount);null==X&&(a.a.w(this.TAG,"Unable to generate silent frame for "+this._audioMeta.originalCodec+" with "+this._audioMeta.channelCount+" channels, repeat last frame"),X=D),F=[];for(var W=0;W<H;W++){j+=d;var V=Math.floor(j),z=Math.floor(j+d)-V,q={dts:V,pts:V,cts:0,unit:X,size:X.byteLength,duration:z,originalDts:P,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}};F.push(q),_+=q.size}this._audioNextDts=j+d}else L=Math.floor(j),U=Math.floor(j+d)-L,this._audioNextDts=j+d}else{if(L=P-s,I!==n.length-1)U=n[I+1].dts-this._dtsBase-s-L;else if(null!=y)U=y.dts-this._dtsBase-s-L;else U=k.length>=1?k[k.length-1].duration:Math.floor(d);this._audioNextDts=L+U}if(-1===u&&(u=L),this._initRecordFlag&&this._recordWorker&&!this._findKeyframe){var G=new Uint8Array(O.unit),Q={cmd:g.q,mediaType:"audio",dat:G,pts:L};this._recordWorker.postMessage(Q,[Q.dat.buffer])}k.push({dts:L,pts:L,cts:0,unit:O.unit,size:O.unit.byteLength,duration:U,originalDts:P,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),B&&k.push.apply(k,F)}}if(0===k.length)return i.samples=[],void(i.length=0);h?m=new Uint8Array(_):((m=new Uint8Array(_))[0]=_>>>24&255,m[1]=_>>>16&255,m[2]=_>>>8&255,m[3]=255&_,m.set(x.types.mdat,4));for(var Y=0;Y<k.length;Y++){var K=k[Y].unit;m.set(K,p),p+=K.byteLength}var J=k[k.length-1];r=J.dts+J.duration;var Z=new N.b;Z.beginDts=u,Z.endDts=r,Z.beginPts=u,Z.endPts=r,Z.originalBeginDts=k[0].originalDts,Z.originalEndDts=J.originalDts+J.duration,Z.firstSample=new N.d(k[0].dts,k[0].pts,k[0].duration,k[0].originalDts,!1),Z.lastSample=new N.d(J.dts,J.pts,J.duration,J.originalDts,!1),this._isLive||this._audioSegmentInfoList.append(Z),i.samples=k,i.sequenceNumber++;var $=null;$=h?new Uint8Array:x.moof(i,u),i.samples=[],i.length=0;var ee={type:"audio",data:this._mergeBoxes($,m).buffer,sampleCount:k.length,info:Z};h&&l&&(ee.timestampOffset=u),this._onMediaSegment("audio",ee)}}},n._remuxVideo=function(e,t){if(null!=this._videoMeta){var r,i,n=e,a=n.samples,o=void 0,s=-1,u=-1;if(a&&0!==a.length&&(1!==a.length||t)){var d=8,h=null,l=8+e.length,f=null;if(a.length>1&&(l-=(f=a.pop()).length),null!=this._videoStashedLastSample){var c=this._videoStashedLastSample;this._videoStashedLastSample=null,a.unshift(c),l+=c.length}null!=f&&(this._videoStashedLastSample=f);var p=a[0].dts-this._dtsBase;if(this._videoNextDts)o=p-this._videoNextDts;else if(this._videoSegmentInfoList.isEmpty())o=0;else{var m=this._videoSegmentInfoList.getLastSampleBefore(p);if(null!=m){var _=p-(m.originalDts+m.duration);_<=3&&(_=0),o=p-(m.dts+m.duration+_)}else o=0}for(var y=new N.b,b=[],v=0;v<a.length;v++){var w=a[v],E=w.dts-this._dtsBase,A=w.isKeyframe,S=E-o,M=w.cts,T=S+M;-1===s&&(s=S,u=T);var R=0;if(v!==a.length-1)R=a[v+1].dts-this._dtsBase-o-S;else if(null!=f)R=f.dts-this._dtsBase-o-S;else R=b.length>=1?b[b.length-1].duration:Math.floor(this._videoMeta.refSampleDuration);if(A){var k=new N.d(S,T,R,w.dts,!0);k.fileposition=w.fileposition,y.appendSyncPoint(k),this._findKeyframe=!1}b.push({dts:S,pts:T,cts:M,units:w.units,size:w.length,isKeyframe:A,duration:R,originalDts:E,flags:{isLeading:0,dependsOn:A?2:1,isDependedOn:A?1:0,hasRedundancy:0,isNonSync:A?0:1}})}if(this._initRecordFlag&&this._recordWorker&&!this._findKeyframe)for(var I=!1,O=0;O<a.length;O++){var D=a[O],C=D.units[0].data.length;if(D.units.length>=3)for(var P=1;P<D.units.length;P++){if(6===D.units.length){if(P<4)continue;if(5===D.units.length&&P<3)continue}C+=D.units[P].data.length}I=D.isKeyframe;var L=new Uint8Array(D.units[0].data),B=0,F=new Uint8Array(C);if(F.set(L,0),F[0]=0,F[1]=0,F[2]=0,F[3]=1,B+=L.length,D.units.length>=3)for(var U=1;U<D.units.length;U++)if(!(6===D.units.length&&U<4||5===D.units.length&&U<3)){var j=new Uint8Array(D.units[U].data);F.set(j,B),F[B+0]=0,F[B+1]=0,F[B+2]=0,F[B+3]=1,B+=j.length}var H={cmd:g.q,mediaType:"video",codecId:28,type:I,dat:F,pts:D.dts};this._recordWorker.postMessage(H,[H.dat.buffer])}(h=new Uint8Array(l))[0]=l>>>24&255,h[1]=l>>>16&255,h[2]=l>>>8&255,h[3]=255&l,h.set(x.types.mdat,4);for(var X=0;X<b.length;X++)for(var W=b[X].units;W.length;){var V=W.shift().data;h.set(V,d),d+=V.byteLength}var z=b[b.length-1];if(r=z.dts+z.duration,i=z.pts+z.duration,this._videoNextDts=r,y.beginDts=s,y.endDts=r,y.beginPts=u,y.endPts=i,y.originalBeginDts=b[0].originalDts,y.originalEndDts=z.originalDts+z.duration,y.firstSample=new N.d(b[0].dts,b[0].pts,b[0].duration,b[0].originalDts,b[0].isKeyframe),y.lastSample=new N.d(z.dts,z.pts,z.duration,z.originalDts,z.isKeyframe),this._isLive||this._videoSegmentInfoList.append(y),n.samples=b,n.sequenceNumber++,this._forceFirstIDR){var q=b[0].flags;q.dependsOn=2,q.isNonSync=0}var G=x.moof(n,s);n.samples=[],n.length=0,this._onMediaSegment("video",{type:"video",data:this._mergeBoxes(G,h).buffer,sampleCount:b.length,info:y})}}},n._mergeBoxes=function(e,t){var r=new Uint8Array(e.byteLength+t.byteLength);return r.set(e,0),r.set(t,e.byteLength),r},n.videoRecording=function(e,t,r,i){if(1===r){if(this._recordFileName=e,null!=this._recordWorker)return-1e3;this._findKeyframe=!0;try{this._recordWorker=P(67),this.onwmsg=this._onRecordingWorkerMessage.bind(this);var n={cmd:g.w,url:g.g(),filesize:t,audioSamplerate:this._audioMeta?this._audioMeta.audioSampleRate:0,channelCount:this._audioMeta?this._audioMeta.channelCount:1};this._recordWorker.postMessage(n),this._recordWorker.addEventListener("message",this.onwmsg)}catch(e){this.recordWorker=null}}else this._initRecordFlag=!1,this._recordWorker&&(this._recordWorker.postMessage({cmd:g.C}),this._findKeyframe=!0)},n._onRecordingWorkerMessage=function(e){var t=e.data;switch(t.cmd){case g.w:this._findKeyframe=!0,this._initRecordFlag=!0;break;case g.p:this._initRecordFlag=!1;var r=document.createElement("a");r.style.display="none",r.href=t.dat,r.download=this._recordFileName,document.body.appendChild(r),r.click(),window.URL.revokeObjectURL(r.href),document.body.removeChild(r),this._findKeyframe=!1,this._recordWorker.terminate(),this._recordWorker=null}},t=e,(r=[{key:"onInitSegment",get:function(){return this._onInitSegment},set:function(e){this._onInitSegment=e}},{key:"onMediaSegment",get:function(){return this._onMediaSegment},set:function(e){this._onMediaSegment=e}}])&&L(t.prototype,r),i&&L(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}(),F=r(37),U=r(2),j=(r(3),function(){function e(e,t){this.TAG="TransmuxingController",this._emitter=new n.a,this._config=t,e.segments||(e.segments=[{duration:e.duration,filesize:e.filesize,url:e.url}]),"boolean"!=typeof e.cors&&(e.cors=!0),"boolean"!=typeof e.withCredentials&&(e.withCredentials=!1),this._mediaDataSource=e,this._currentSegmentIndex=0;var r=0;this._mediaDataSource.segments.forEach((function(i){i.timestampBase=r,r+=i.duration,i.cors=e.cors,i.withCredentials=e.withCredentials,t.referrerPolicy&&(i.referrerPolicy=t.referrerPolicy)})),isNaN(r)||this._mediaDataSource.duration===r||(this._mediaDataSource.duration=r),this._mediaInfo=null,this._demuxer=null,this._remuxer=null,this._ioctl=null,this._pendingSeekTime=null,this._pendingResolveSeekPoint=null,this._statisticsReporter=null,this._onReceiveH265MediaFrameFuc=null,this._mediaTypeIsHLS=e.url.includes(".m3u8")}var t=e.prototype;return t.destroy=function(){this._mediaInfo=null,this._mediaDataSource=null,this._statisticsReporter&&this._disableStatisticsReporter(),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null),this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._emitter.removeAllListeners(),this._emitter=null},t.on=function(e,t){this._emitter.addListener(e,t)},t.off=function(e,t){this._emitter.removeListener(e,t)},t.start=function(){this._loadSegment(0),this._enableStatisticsReporter()},t._loadSegment=function(e,t){this._currentSegmentIndex=e;var r=this._mediaDataSource.segments[e],i=this._ioctl=new F.a(r,this._config,e);i.onError=this._onIOException.bind(this),i.onSeeked=this._onIOSeeked.bind(this),i.onComplete=this._onIOComplete.bind(this),i.onRedirect=this._onIORedirect.bind(this),i.onRecoveredEarlyEof=this._onIORecoveredEarlyEof.bind(this),t?this._demuxer.bindDataSource(this._ioctl):i.onDataArrival=this._onInitChunkArrival.bind(this),i.open(t),i.loaderChunkArrival=this._loaderChunkArrival.bind(this),i.loaderHLSError=this._loaderHLSError.bind(this)},t._loaderChunkArrival=function(e){this._emitter.emit("loaderChunkArrival",e)},t._loaderHLSError=function(){this._emitter.emit("hls_error")},t.stop=function(){this._internalAbort(),this._disableStatisticsReporter()},t._internalAbort=function(){this._ioctl&&(this._ioctl.destroy(),this._ioctl=null)},t.pause=function(){this._ioctl&&this._ioctl.isWorking()&&(this._ioctl.pause(),this._disableStatisticsReporter())},t.resume=function(){this._ioctl&&this._ioctl.isPaused()&&(this._ioctl.resume(),this._enableStatisticsReporter())},t.seek=function(e){if(null!=this._mediaInfo&&this._mediaInfo.isSeekable()){var t=this._searchSegmentIndexContains(e);if(t===this._currentSegmentIndex){var r=this._mediaInfo.segments[t];if(null==r)this._pendingSeekTime=e;else{var i=r.getNearestKeyframe(e);this._remuxer.seek(i.milliseconds),this._ioctl.seek(i.fileposition),this._pendingResolveSeekPoint=i.milliseconds}}else{var n=this._mediaInfo.segments[t];if(null==n)this._pendingSeekTime=e,this._internalAbort(),this._remuxer.seek(),this._remuxer.insertDiscontinuity(),this._loadSegment(t);else{var a=n.getNearestKeyframe(e);this._internalAbort(),this._remuxer.seek(e),this._remuxer.insertDiscontinuity(),this._demuxer.resetMediaInfo(),this._demuxer.timestampBase=this._mediaDataSource.segments[t].timestampBase,this._loadSegment(t,a.fileposition),this._pendingResolveSeekPoint=a.milliseconds,this._reportSegmentMediaInfo(t)}}this._enableStatisticsReporter()}},t._searchSegmentIndexContains=function(e){for(var t=this._mediaDataSource.segments,r=t.length-1,i=0;i<t.length;i++)if(e<t[i].timestampBase){r=i-1;break}return r},t._onInitChunkArrival=function(e,t){var r=this;this._emitter.emit(U.a.RECORDING,e);var i=null,n=0;if(this._mediaTypeIsHLS){if(null==e&&t<0)return void this._emitter.emit(U.a.RECONNECT_ING,t);if(null==e&&t>0)return;if(t>0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,this._demuxer.append(e,t,0),n=e.length;else{this._demuxer=new O(this._config),this._remuxer||(this._remuxer=new B(this._config));var o=this._mediaDataSource;null==o.duration||isNaN(o.duration)||(this._demuxer.overridedDuration=o.duration),"boolean"==typeof o.hasAudio&&(this._demuxer.overridedHasAudio=o.hasAudio),"boolean"==typeof o.hasVideo&&(this._demuxer.overridedHasVideo=o.hasVideo),this._demuxer.timestampBase=o.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onReceiveH265MediaHLSFrame=this._onReceiveH265MediaFrameFuc,this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),this._demuxer.append(e,t,0),n=e.length}}else if(t>0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,n=this._demuxer.parseChunks(e,t);else if((i=b.probe(e)).match){this._demuxer=new b(i,this._config),this._remuxer||(this._remuxer=new B(this._config));var s=this._mediaDataSource;null==s.duration||isNaN(s.duration)||(this._demuxer.overridedDuration=s.duration),"boolean"==typeof s.hasAudio&&(this._demuxer.overridedHasAudio=s.hasAudio),"boolean"==typeof s.hasVideo&&(this._demuxer.overridedHasVideo=s.hasVideo),this._mediaDataSource.hasAudio=!1,this._demuxer.timestampBase=s.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onReceiveSEIData=this._onReceiveSEIData.bind(this),this._demuxer.onAudioError=this._onAudioError.bind(this),this._demuxer.onReceiveH265MediaFLVFrame=this._onReceiveH265MediaFrameFuc,this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),n=this._demuxer.parseChunks(e,t)}else i=null,a.a.e(this.TAG,"Non-FLV, Unsupported media type!"),Promise.resolve().then((function(){r._internalAbort()})),this._emitter.emit(U.a.DEMUX_ERROR,_.a.FORMAT_UNSUPPORTED,"Non-FLV, Unsupported media type"),n=0;return n},t._onMediaInfo=function(e){var t=this;null==this._mediaInfo&&(this._mediaInfo=Object.assign({},e),this._mediaInfo.keyframesIndex=null,this._mediaInfo.segments=[],this._mediaInfo.segmentCount=this._mediaDataSource.segments.length,Object.setPrototypeOf(this._mediaInfo,s.a.prototype));var r=Object.assign({},e);Object.setPrototypeOf(r,s.a.prototype),this._mediaInfo.segments[this._currentSegmentIndex]=r,this._reportSegmentMediaInfo(this._currentSegmentIndex),null!=this._pendingSeekTime&&Promise.resolve().then((function(){var e=t._pendingSeekTime;t._pendingSeekTime=null,t.seek(e)}))},t._onMetaDataArrived=function(e){this._emitter.emit(U.a.METADATA_ARRIVED,e)},t._onAudioError=function(){this._emitter.emit(U.a.AUDIO_ERROR)},t._onReceiveSEIData=function(e){this._emitter.emit(U.a.SEI_DATA,e)},t._onScriptDataArrived=function(e){this._emitter.emit(U.a.SCRIPTDATA_ARRIVED,e)},t._onIOSeeked=function(){this._remuxer.insertDiscontinuity()},t._onIOComplete=function(e,t){var r=e+1;r<this._mediaDataSource.segments.length?(this._internalAbort(),this._remuxer.flushStashedSamples(),this._loadSegment(r)):(t&&"socket-close"===t&&this._emitter.emit(U.a.SOCKET_CLOSE),this._remuxer.flushStashedSamples(),this._emitter.emit(U.a.LOADING_COMPLETE),this._disableStatisticsReporter())},t._onIORedirect=function(e){var t=this._ioctl.extraData;this._mediaDataSource.segments[t].redirectedURL=e},t._onIORecoveredEarlyEof=function(){this._emitter.emit(U.a.RECOVERED_EARLY_EOF)},t._onIOException=function(e,t){a.a.e(this.TAG,"IOException: type = "+e+", code = "+t.code+", msg = "+t.msg),this._emitter.emit(U.a.IO_ERROR,e,t),this._disableStatisticsReporter()},t._onDemuxException=function(e,t){a.a.e(this.TAG,"DemuxException: type = "+e+", info = "+t),this._emitter.emit(U.a.DEMUX_ERROR,e,t)},t._onRemuxerInitSegmentArrival=function(e,t){this._emitter.emit(U.a.INIT_SEGMENT,e,t)},t._onRemuxerMediaSegmentArrival=function(e,t){if(null==this._pendingSeekTime&&(this._emitter.emit(U.a.MEDIA_SEGMENT,e,t),null!=this._pendingResolveSeekPoint&&"video"===e)){var r=t.info.syncPoints,i=this._pendingResolveSeekPoint;this._pendingResolveSeekPoint=null,o.a.safari&&r.length>0&&r[0].originalDts===i&&(i=r[0].pts),this._emitter.emit(U.a.RECOMMEND_SEEKPOINT,i)}},t._enableStatisticsReporter=function(){null==this._statisticsReporter&&(this._statisticsReporter=self.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval))},t._disableStatisticsReporter=function(){this._statisticsReporter&&(self.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},t._reportSegmentMediaInfo=function(e){var t=this._mediaInfo.segments[e],r=Object.assign({},t);r.duration=this._mediaInfo.duration,r.segmentCount=this._mediaInfo.segmentCount,delete r.segments,delete r.keyframesIndex,this._emitter.emit(U.a.MEDIA_INFO,r)},t._reportStatisticsInfo=function(){var e={};e.url=this._ioctl.currentURL,e.hasRedirect=this._ioctl.hasRedirect,e.hasRedirect&&(e.redirectedURL=this._ioctl.currentRedirectedURL),e.speed=this._ioctl.currentSpeed,e.loaderType=this._ioctl.loaderType,e.currentSegmentIndex=this._currentSegmentIndex,e.totalSegmentCount=this._mediaDataSource.segments.length,this._emitter.emit(U.a.STATISTICS_INFO,e)},t.setReceiveH265MediaFrame=function(e){this._onReceiveH265MediaFrameFuc=e},t._getHLSTotalDuration=function(){if(null==this._ioctl)return 0;var e=this._ioctl._getM3u8Loader();return e?e._getM3u8TotalDuration():0},t._seekToSecs=function(e,t){var r=this._ioctl._getM3u8Loader();r&&(r.seek(e,t),this._demuxer&&this._demuxer.resetMediaPts(1)),this._remuxer&&this._remuxer.seek(0),r&&this._demuxer&&this._demuxer.resetMediaPts(0)},t.videoRecording=function(e,t,r,i){this._remuxer&&this._remuxer.videoRecording(e,t,r,i)},e}());t.a=j},function(e,t,r){"use strict";var i=r(0);function n(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var a=function(){function e(){this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._totalBytes=0,this._lastSecondBytes=0,self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now}var t,r,i,a=e.prototype;return a.reset=function(){this._firstCheckpoint=this._lastCheckpoint=0,this._totalBytes=this._intervalBytes=0,this._lastSecondBytes=0},a.addBytes=function(e){0===this._firstCheckpoint?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=e,this._totalBytes+=e):this._now()-this._lastCheckpoint<1e3?(this._intervalBytes+=e,this._totalBytes+=e):(this._lastSecondBytes=this._intervalBytes,this._intervalBytes=e,this._totalBytes+=e,this._lastCheckpoint=this._now())},t=e,(r=[{key:"currentKBps",get:function(){this.addBytes(0);var e=(this._now()-this._lastCheckpoint)/1e3;return 0==e&&(e=1),this._intervalBytes/e/1024}},{key:"lastSecondKBps",get:function(){return this.addBytes(0),0!==this._lastSecondBytes?this._lastSecondBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0}},{key:"averageKBps",get:function(){var e=(this._now()-this._firstCheckpoint)/1e3;return this._totalBytes/e/1024}}])&&n(t.prototype,r),i&&n(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}(),o=r(3),s=r(7),u=r(4);function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var h=function(e){var t,r;function i(t,r){var i;return(i=e.call(this,"fetch-stream-loader")||this).TAG="FetchStreamLoader",i._seekHandler=t,i._config=r,i._needStash=!0,i._requestAbort=!1,i._contentLength=null,i._receivedLength=0,i}r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,d(t,r),i.isSupported=function(){try{var e=s.a.msedge&&s.a.version.minor>=15048,t=!s.a.msedge||e;return self.fetch&&self.ReadableStream&&t}catch(e){return!1}};var n=i.prototype;return n.destroy=function(){this.isWorking()&&this.abort(),e.prototype.destroy.call(this)},n.open=function(e,t){var r=this;this._dataSource=e,this._range=t;var i=e.url;this._config.reuseRedirectedURL&&null!=e.redirectedURL&&(i=e.redirectedURL);var n=this._seekHandler.getConfig(i,t),a=new self.Headers;if("object"==typeof n.headers){var s=n.headers;for(var d in s)s.hasOwnProperty(d)&&a.append(d,s[d])}var h={method:"GET",headers:a,mode:"cors",cache:"default",referrerPolicy:"no-referrer-when-downgrade"};if("object"==typeof this._config.headers)for(var l in this._config.headers)a.append(l,this._config.headers[l]);!1===e.cors&&(h.mode="same-origin"),e.withCredentials&&(h.credentials="include"),e.referrerPolicy&&(h.referrerPolicy=e.referrerPolicy),self.AbortController&&(this._abortController=new self.AbortController,h.signal=this._abortController.signal),this._status=o.c.kConnecting,self.fetch(n.url,h).then((function(e){if(r._requestAbort)return r._status=o.c.kIdle,void e.body.cancel();if(e.ok&&e.status>=200&&e.status<=299){if(e.url!==n.url&&r._onURLRedirect){var t=r._seekHandler.removeURLParameters(e.url);r._onURLRedirect(t)}var i=e.headers.get("Content-Length");return null!=i&&(r._contentLength=parseInt(i),0!==r._contentLength&&r._onContentLengthKnown&&r._onContentLengthKnown(r._contentLength)),r._pump.call(r,e.body.getReader())}if(r._status=o.c.kError,!r._onError)throw new u.d("FetchStreamLoader: Http code invalid, "+e.status+" "+e.statusText);r._onError(o.b.HTTP_STATUS_CODE_INVALID,{code:e.status,msg:e.statusText})})).catch((function(e){if(!r._abortController||!r._abortController.signal.aborted){if(r._status=o.c.kError,!r._onError)throw e;r._onError(o.b.EXCEPTION,{code:-1,msg:e.message})}}))},n.abort=function(){if(this._requestAbort=!0,(this._status!==o.c.kBuffering||!s.a.chrome)&&this._abortController)try{this._abortController.abort()}catch(e){}},n._pump=function(e){var t=this;return e.read().then((function(r){if(r.done)if(null!==t._contentLength&&t._receivedLength<t._contentLength){t._status=o.c.kError;var i=o.b.EARLY_EOF,n={code:-1,msg:"Fetch stream meet Early-EOF"};if(!t._onError)throw new u.d(n.msg);t._onError(i,n)}else t._status=o.c.kComplete,t._onComplete&&t._onComplete(t._range.from,t._range.from+t._receivedLength-1);else{if(t._abortController&&t._abortController.signal.aborted)return void(t._status=o.c.kComplete);if(!0===t._requestAbort)return t._status=o.c.kComplete,e.cancel();t._status=o.c.kBuffering;var a=r.value.buffer,s=t._range.from+t._receivedLength;t._receivedLength+=a.byteLength,t._onDataArrival&&t._onDataArrival(a,s,t._receivedLength),t._pump(e)}})).catch((function(e){if(t._abortController&&t._abortController.signal.aborted)t._status=o.c.kComplete;else if(11!==e.code||!s.a.msedge){t._status=o.c.kError;var r=0,i=null;if(19!==e.code&&"network error"!==e.message||!(null===t._contentLength||null!==t._contentLength&&t._receivedLength<t._contentLength)?(r=o.b.EXCEPTION,i={code:e.code,msg:e.message}):(r=o.b.EARLY_EOF,i={code:e.code,msg:"Fetch stream meet Early-EOF"}),!t._onError)throw new u.d(i.msg);t._onError(r,i)}}))},i}(o.a),l=r(21),f=r(1);function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var p=function(e){var t,r;function i(){var t;return(t=e.call(this,"m3u8-loader")||this).TAG="M3U8Loader",t._needStash=!0,t.url="",t.startPlayTime=0,t._requestAbort=!1,t._receivedLength=0,t.getNextFileFlag=!0,t.pauseDisplay=!1,t.totalDuration=0,t.seeking=!1,t.downloadWorker=null,t}r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,c(t,r),i.isSupported=function(){return!0};var n=i.prototype;return n.destroy=function(){this.abort(),e.prototype.destroy.call(this),this.downloadWorker&&this.downloadWorker.terminate(),this.downloadWorker=null},n.createDownloadWorker=function(){if(!this.downloadWorker)if("undefined"!=typeof Worker)try{this.downloadWorker=l(231),this.onwmsg=this.onWorkerMessage.bind(this);var e={cmd:f.w,url:this.url,time:this.startPlayTime};this.downloadWorker.postMessage(e),this.downloadWorker.addEventListener("message",this.onwmsg),this.downloadWorker.onerror=function(e){}}catch(e){this.downloadWorker&&this.downloadWorker.terminate(),this.downloadWorker=null}else console.log("Unsupport worker...")},n.setStartPlaySecs=function(e){this.startPlayTime=e},n.open=function(e){try{this.url=e.url,this.createDownloadWorker(),this._status=o.c.kConnecting}catch(e){this._status=o.c.kError;var t={code:e.code,msg:e.message};if(!this._onError)throw new u.d(t.msg);this._onError(o.b.EXCEPTION,t)}},n.abort=function(){var e={cmd:f.l};this.downloadWorker&&void 0!==this.downloadWorker&&this.downloadWorker.postMessage(e),this._status=o.c.kComplete},n._onWebSocketOpen=function(e){this._status=o.c.kBuffering},n._onWebSocketClose=function(e){!0!==this._requestAbort?(this._status=o.c.kComplete,this._onComplete&&this._onComplete(0,this._receivedLength-1)):this._requestAbort=!1},n.seek=function(e,t){this.pauseDisplay=!1;var r={cmd:f.B,type:t,time:e};this.downloadWorker&&void 0!==this.downloadWorker&&(this.downloadWorker.postMessage(r),this.seeking=!0)},n.pause=function(){this.pauseDisplay=!0;var e={cmd:f.x};this.downloadWorker&&void 0!==this.downloadWorker&&this.downloadWorker.postMessage(e)},n.resume=function(){this.pauseDisplay=!1;var e={cmd:f.A};this.downloadWorker&&void 0!==this.downloadWorker&&this.downloadWorker.postMessage(e)},n.onWorkerMessage=function(e){var t=e.data;switch(t.cmd){case f.w:var r={cmd:f.s,t:0};this.downloadWorker.postMessage(r);break;case f.t:this.getNextFileFlag=!0;break;case f.r:this.playComplete=!0;break;case f.o:r={cmd:f.y};this.downloadWorker.postMessage(r);break;case f.l:t.workerId==f.b?(this.downloadWorker&&this.downloadWorker.terminate(),this.downloadWorker=null):t.workerId==f.a?(this.decodeWorker&&this.decodeWorker.terminate(),this.decodeWorker=null,this.soundPlayer&&(this.soundPlayer.destroy(),delete this.soundPlayer,this.soundPlayer=null),this.webGLPlayer&&this.webGLPlayer.renderVideoFrame(null,0,0)):t.workerId==f.f&&(this.renderWorker.terminate(),this.renderWorker=null);break;case f.q:if(t.workerId==f.b){var i=t.dat,n=this._receivedLength;this._receivedLength+=i.byteLength,this._onDataArrival&&this._onDataArrival(i,n,this._receivedLength);break}if(t.workerId==f.a){if(this.pauseDisplay)break;1==t.mediaType?(this.canvas.width=t.width,this.canvas.height=t.height,this.webGLPlayer.renderVideoFrame(t.dat,t.width,t.height),this.OnUpdatePlayInfo(t.playTimeSec,t.frameNum)):2==t.mediaType&&(null==this.soundPlayer&&this.OpenAudioPlayer(t.fmt,t.ch,t.samplerate),null!=this.soundPlayer&&this.soundPlayer.play(t.dat))}break;case f.u:this.totalDuration=t.duration,f.i(t.live);break;case f.s:this.pauseDisplay||this.getNextFileFlag&&(this.downloadWorker.postMessage(t),this.getNextFileFlag=!1);break;case f.B:this.seeking=!1;break;case f.z:this._onDataArrival&&(this._receivedLength=0,this._onDataArrival(null,t.fileSequence,0));break;case 404:this._onHLSError()}},n._dispatchArrayBuffer=function(e){var t=e,r=this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,r,this._receivedLength)},n._onWebSocketError=function(e){this._status=o.c.kError;var t={code:e.code,msg:e.message};if(!this._onError)throw new u.d(t.msg);this._onError(o.b.EXCEPTION,t)},n._getM3u8TotalDuration=function(){return this.totalDuration},i}(o.a);function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var g=function(e){var t,r;function n(t,r){var i;return(i=e.call(this,"xhr-moz-chunked-loader")||this).TAG="MozChunkedLoader",i._seekHandler=t,i._config=r,i._needStash=!0,i._xhr=null,i._requestAbort=!1,i._contentLength=null,i._receivedLength=0,i}r=e,(t=n).prototype=Object.create(r.prototype),t.prototype.constructor=t,m(t,r),n.isSupported=function(){try{var e=new XMLHttpRequest;return e.open("GET","https://example.com",!0),e.responseType="moz-chunked-arraybuffer","moz-chunked-arraybuffer"===e.responseType}catch(e){return i.a.w("MozChunkedLoader",e.message),!1}};var a=n.prototype;return a.destroy=function(){this.isWorking()&&this.abort(),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onloadend=null,this._xhr.onerror=null,this._xhr=null),e.prototype.destroy.call(this)},a.open=function(e,t){this._dataSource=e,this._range=t;var r=e.url;this._config.reuseRedirectedURL&&null!=e.redirectedURL&&(r=e.redirectedURL);var i=this._seekHandler.getConfig(r,t);this._requestURL=i.url;var n=this._xhr=new XMLHttpRequest;if(n.open("GET",i.url,!0),n.responseType="moz-chunked-arraybuffer",n.onreadystatechange=this._onReadyStateChange.bind(this),n.onprogress=this._onProgress.bind(this),n.onloadend=this._onLoadEnd.bind(this),n.onerror=this._onXhrError.bind(this),e.withCredentials&&(n.withCredentials=!0),"object"==typeof i.headers){var a=i.headers;for(var s in a)a.hasOwnProperty(s)&&n.setRequestHeader(s,a[s])}if("object"==typeof this._config.headers){var u=this._config.headers;for(var d in u)u.hasOwnProperty(d)&&n.setRequestHeader(d,u[d])}this._status=o.c.kConnecting,n.send()},a.abort=function(){this._requestAbort=!0,this._xhr&&this._xhr.abort(),this._status=o.c.kComplete},a._onReadyStateChange=function(e){var t=e.target;if(2===t.readyState){if(null!=t.responseURL&&t.responseURL!==this._requestURL&&this._onURLRedirect){var r=this._seekHandler.removeURLParameters(t.responseURL);this._onURLRedirect(r)}if(0!==t.status&&(t.status<200||t.status>299)){if(this._status=o.c.kError,!this._onError)throw new u.d("MozChunkedLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(o.b.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}else this._status=o.c.kBuffering}},a._onProgress=function(e){if(this._status!==o.c.kError){null===this._contentLength&&null!==e.total&&0!==e.total&&(this._contentLength=e.total,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength));var t=e.target.response,r=this._range.from+this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,r,this._receivedLength)}},a._onLoadEnd=function(e){!0!==this._requestAbort?this._status!==o.c.kError&&(this._status=o.c.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1)):this._requestAbort=!1},a._onXhrError=function(e){this._status=o.c.kError;var t=0,r=null;if(this._contentLength&&e.loaded<this._contentLength?(t=o.b.EARLY_EOF,r={code:-1,msg:"Moz-Chunked stream meet Early-Eof"}):(t=o.b.EXCEPTION,r={code:-1,msg:e.constructor.name+" "+e.type}),!this._onError)throw new u.d(r.msg);this._onError(t,r)},n}(o.a);function _(e,t){return(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}o.a;function y(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var v=function(e){var t,r;function n(t,r){var i;return(i=e.call(this,"xhr-range-loader")||this).TAG="RangeLoader",i._seekHandler=t,i._config=r,i._needStash=!1,i._chunkSizeKBList=[128,256,384,512,768,1024,1536,2048,3072,4096,5120,6144,7168,8192],i._currentChunkSizeKB=384,i._currentSpeedNormalized=0,i._zeroSpeedChunkCount=0,i._xhr=null,i._speedSampler=new a,i._requestAbort=!1,i._waitForTotalLength=!1,i._totalLengthReceived=!1,i._currentRequestURL=null,i._currentRedirectedURL=null,i._currentRequestRange=null,i._totalLength=null,i._contentLength=null,i._receivedLength=0,i._lastTimeLoaded=0,i}r=e,(t=n).prototype=Object.create(r.prototype),t.prototype.constructor=t,b(t,r),n.isSupported=function(){try{var e=new XMLHttpRequest;return e.open("GET","https://example.com",!0),e.responseType="arraybuffer","arraybuffer"===e.responseType}catch(e){return i.a.w("RangeLoader",e.message),!1}};var s,d,h,l=n.prototype;return l.destroy=function(){this.isWorking()&&this.abort(),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr=null),e.prototype.destroy.call(this)},l.open=function(e,t){this._dataSource=e,this._range=t,this._status=o.c.kConnecting;var r=!1;null!=this._dataSource.filesize&&0!==this._dataSource.filesize&&(r=!0,this._totalLength=this._dataSource.filesize),this._totalLengthReceived||r?this._openSubRange():(this._waitForTotalLength=!0,this._internalOpen(this._dataSource,{from:0,to:-1}))},l._openSubRange=function(){var e=1024*this._currentChunkSizeKB,t=this._range.from+this._receivedLength,r=t+e;null!=this._contentLength&&r-this._range.from>=this._contentLength&&(r=this._range.from+this._contentLength-1),this._currentRequestRange={from:t,to:r},this._internalOpen(this._dataSource,this._currentRequestRange)},l._internalOpen=function(e,t){this._lastTimeLoaded=0;var r=e.url;this._config.reuseRedirectedURL&&(null!=this._currentRedirectedURL?r=this._currentRedirectedURL:null!=e.redirectedURL&&(r=e.redirectedURL));var i=this._seekHandler.getConfig(r,t);this._currentRequestURL=i.url;var n=this._xhr=new XMLHttpRequest;if(n.open("GET",i.url,!0),n.responseType="arraybuffer",n.onreadystatechange=this._onReadyStateChange.bind(this),n.onprogress=this._onProgress.bind(this),n.onload=this._onLoad.bind(this),n.onerror=this._onXhrError.bind(this),e.withCredentials&&(n.withCredentials=!0),"object"==typeof i.headers){var a=i.headers;for(var o in a)a.hasOwnProperty(o)&&n.setRequestHeader(o,a[o])}if("object"==typeof this._config.headers){var s=this._config.headers;for(var u in s)s.hasOwnProperty(u)&&n.setRequestHeader(u,s[u])}n.send()},l.abort=function(){this._requestAbort=!0,this._internalAbort(),this._status=o.c.kComplete},l._internalAbort=function(){this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr.abort(),this._xhr=null)},l._onReadyStateChange=function(e){var t=e.target;if(2===t.readyState){if(null!=t.responseURL){var r=this._seekHandler.removeURLParameters(t.responseURL);t.responseURL!==this._currentRequestURL&&r!==this._currentRedirectedURL&&(this._currentRedirectedURL=r,this._onURLRedirect&&this._onURLRedirect(r))}if(t.status>=200&&t.status<=299){if(this._waitForTotalLength)return;this._status=o.c.kBuffering}else{if(this._status=o.c.kError,!this._onError)throw new u.d("RangeLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(o.b.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}}},l._onProgress=function(e){if(this._status!==o.c.kError){if(null===this._contentLength){var t=!1;if(this._waitForTotalLength){this._waitForTotalLength=!1,this._totalLengthReceived=!0,t=!0;var r=e.total;this._internalAbort(),null!=r&0!==r&&(this._totalLength=r)}if(-1===this._range.to?this._contentLength=this._totalLength-this._range.from:this._contentLength=this._range.to-this._range.from+1,t)return void this._openSubRange();this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)}var i=e.loaded-this._lastTimeLoaded;this._lastTimeLoaded=e.loaded,this._speedSampler.addBytes(i)}},l._normalizeSpeed=function(e){var t=this._chunkSizeKBList,r=t.length-1,i=0,n=0,a=r;if(e<t[0])return t[0];for(;n<=a;){if((i=n+Math.floor((a-n)/2))===r||e>=t[i]&&e<t[i+1])return t[i];t[i]<e?n=i+1:a=i-1}},l._onLoad=function(e){if(this._status!==o.c.kError)if(this._waitForTotalLength)this._waitForTotalLength=!1;else{this._lastTimeLoaded=0;var t=this._speedSampler.lastSecondKBps;if(0===t&&(this._zeroSpeedChunkCount++,this._zeroSpeedChunkCount>=3&&(t=this._speedSampler.currentKBps)),0!==t){var r=this._normalizeSpeed(t);this._currentSpeedNormalized!==r&&(this._currentSpeedNormalized=r,this._currentChunkSizeKB=r)}var i=e.target.response,n=this._range.from+this._receivedLength;this._receivedLength+=i.byteLength;var a=!1;null!=this._contentLength&&this._receivedLength<this._contentLength?this._openSubRange():a=!0,this._onDataArrival&&this._onDataArrival(i,n,this._receivedLength),a&&(this._status=o.c.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1))}},l._onXhrError=function(e){this._status=o.c.kError;var t=0,r=null;if(this._contentLength&&this._receivedLength>0&&this._receivedLength<this._contentLength?(t=o.b.EARLY_EOF,r={code:-1,msg:"RangeLoader meet Early-Eof"}):(t=o.b.EXCEPTION,r={code:-1,msg:e.constructor.name+" "+e.type}),!this._onError)throw new u.d(r.msg);this._onError(t,r)},s=n,(d=[{key:"currentSpeed",get:function(){return this._speedSampler.lastSecondKBps}}])&&y(s.prototype,d),h&&y(s,h),Object.defineProperty(s,"prototype",{writable:!1}),n}(o.a);function w(e,t){return(w=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var E=function(e){var t,r;function i(){var t;return(t=e.call(this,"websocket-loader")||this).TAG="WebSocketLoader",t._needStash=!0,t._ws=null,t._requestAbort=!1,t._receivedLength=0,t}r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,w(t,r),i.isSupported=function(){try{return void 0!==self.WebSocket}catch(e){return!1}};var n=i.prototype;return n.destroy=function(){this._ws&&this.abort(),e.prototype.destroy.call(this)},n.open=function(e){try{var t=this._ws=new self.WebSocket(e.url);t.binaryType="arraybuffer",t.onopen=this._onWebSocketOpen.bind(this),t.onclose=this._onWebSocketClose.bind(this),t.onmessage=this._onWebSocketMessage.bind(this),t.onerror=this._onWebSocketError.bind(this),this._status=o.c.kConnecting}catch(e){this._status=o.c.kError;var r={code:e.code,msg:e.message};if(!this._onError)throw new u.d(r.msg);this._onError(o.b.EXCEPTION,r)}},n.abort=function(){var e=this._ws;!e||0!==e.readyState&&1!==e.readyState||(this._requestAbort=!0,e.close()),this._ws=null,this._status=o.c.kComplete},n._onWebSocketOpen=function(e){this._status=o.c.kBuffering},n._onWebSocketClose=function(e){!0!==this._requestAbort?(this._status=o.c.kComplete,this._onComplete&&this._onComplete(0,this._receivedLength-1,"socket-close")):this._requestAbort=!1},n._onWebSocketMessage=function(e){var t=this;if(e.data instanceof ArrayBuffer)this._dispatchArrayBuffer(e.data);else if(e.data instanceof Blob){var r=new FileReader;r.onload=function(){t._dispatchArrayBuffer(r.result)},r.readAsArrayBuffer(e.data)}else{this._status=o.c.kError;var i={code:-1,msg:"Unsupported WebSocket message type: "+e.data.constructor.name};if(!this._onError)throw new u.d(i.msg);this._onError(o.b.EXCEPTION,i)}},n._dispatchArrayBuffer=function(e){var t=e,r=this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,r,this._receivedLength)},n._onWebSocketError=function(e){this._status=o.c.kError;var t={code:e.code,msg:e.message};if(!this._onError)throw new u.d(t.msg);this._onError(o.b.EXCEPTION,t)},i}(o.a),A=function(){function e(e){this._zeroStart=e||!1}var t=e.prototype;return t.getConfig=function(e,t){var r,i={};0!==t.from||-1!==t.to?(r=-1!==t.to?"bytes="+t.from.toString()+"-"+t.to.toString():"bytes="+t.from.toString()+"-",i.Range=r):this._zeroStart&&(i.Range="bytes=0-");return{url:e,headers:i}},t.removeURLParameters=function(e){return e},e}(),S=function(){function e(e,t){this._startName=e,this._endName=t}var t=e.prototype;return t.getConfig=function(e,t){var r=e;if(0!==t.from||-1!==t.to){var i=!0;-1===r.indexOf("?")&&(r+="?",i=!1),i&&(r+="&"),r+=this._startName+"="+t.from.toString(),-1!==t.to&&(r+="&"+this._endName+"="+t.to.toString())}return{url:r,headers:{}}},t.removeURLParameters=function(e){var t=e.split("?")[0],r=void 0,i=e.indexOf("?");-1!==i&&(r=e.substring(i+1));var n="";if(null!=r&&r.length>0)for(var a=r.split("&"),o=0;o<a.length;o++){var s=a[o].split("="),u=o>0;s[0]!==this._startName&&s[0]!==this._endName&&(u&&(n+="&"),n+=a[o])}return 0===n.length?t:t+"?"+n},e}(),M=r(8),T=r.n(M);function R(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var k=function(){function e(e,t,r){this.TAG="IOController",this._emitter=new T.a,this._config=t,this._extraData=r,this._stashInitialSize=393216,null!=t.stashInitialSize&&t.stashInitialSize>0&&(this._stashInitialSize=t.stashInitialSize),this._stashUsed=0,this._stashSize=this._stashInitialSize,this._bufferSize=3145728,this._stashBuffer=new ArrayBuffer(this._bufferSize),this._stashByteStart=0,this._enableStash=!0,!1===t.enableStashBuffer&&(this._enableStash=!1),this._loader=null,this._loaderClass=null,this._seekHandler=null,this._dataSource=e,this._isWebSocketURL=/wss?:\/\/(.+?)/.test(e.url),this._isHLSURL=e.url&&e.url.includes(".m3u8"),this._refTotalLength=e.filesize?e.filesize:null,this._totalLength=this._refTotalLength,this._fullRequestFlag=!1,this._currentRange=null,this._redirectedURL=null,this._speedNormalized=0,this._speedSampler=new a,this._speedNormalizeList=[64,128,256,384,512,768,1024,1536,2048,3072,4096],this._isEarlyEofReconnecting=!1,this._paused=!1,this._resumeFrom=0,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._loaderChunkArrival=null,this._loaderHLSError=null,this._selectSeekHandler(),this._selectLoader(),this._createLoader()}var t,r,n,s=e.prototype;return s.destroy=function(){this._loader.isWorking()&&this._loader.abort(),this._loader.destroy(),this._loader=null,this._loaderClass=null,this._dataSource=null,this._stashBuffer=null,this._stashUsed=this._stashSize=this._bufferSize=this._stashByteStart=0,this._currentRange=null,this._speedSampler=null,this._isEarlyEofReconnecting=!1,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._loaderChunkArrival=null,this._loaderHLSError=null,this._extraData=null},s.isWorking=function(){return this._loader&&this._loader.isWorking()&&!this._paused},s.isPaused=function(){return this._paused},s._selectSeekHandler=function(){var e=this._config;if("range"===e.seekType)this._seekHandler=new A(this._config.rangeLoadZeroStart);else if("param"===e.seekType){var t=e.seekParamStart||"bstart",r=e.seekParamEnd||"bend";this._seekHandler=new S(t,r)}else{if("custom"!==e.seekType)throw new u.b("Invalid seekType in config: "+e.seekType);if("function"!=typeof e.customSeekHandler)throw new u.b("Custom seekType specified in config but invalid customSeekHandler!");this._seekHandler=new e.customSeekHandler}},s._selectLoader=function(){if(null!=this._config.customLoader)this._loaderClass=this._config.customLoader;else if(this._isHLSURL)this._loaderClass=p;else if(this._isWebSocketURL)this._loaderClass=E;else if(h.isSupported())this._loaderClass=h;else if(g.isSupported())this._loaderClass=g;else{if(!v.isSupported())throw new u.d("Your browser doesn't support xhr with arraybuffer responseType!");this._loaderClass=v}},s._createLoader=function(){this._loader=new this._loaderClass(this._seekHandler,this._config),!1===this._loader.needStashBuffer&&(this._enableStash=!1),this._loader.onContentLengthKnown=this._onContentLengthKnown.bind(this),this._loader.onURLRedirect=this._onURLRedirect.bind(this),this._loader.onDataArrival=this._onLoaderChunkArrival.bind(this),this._loader.onComplete=this._onLoaderComplete.bind(this),this._loader.onError=this._onLoaderError.bind(this),this._loader.onHLSError=this._onLoaderHLSError.bind(this)},s.open=function(e){this._currentRange={from:0,to:-1},e&&(this._currentRange.from=e),this._speedSampler.reset(),e||(this._fullRequestFlag=!0),this._loader.open(this._dataSource,Object.assign({},this._currentRange))},s.abort=function(){this._loader.abort(),this._paused&&(this._paused=!1,this._resumeFrom=0)},s.pause=function(){this.isWorking()&&(this._loader.abort(),0!==this._stashUsed?(this._resumeFrom=this._stashByteStart,this._currentRange.to=this._stashByteStart-1):this._resumeFrom=this._currentRange.to+1,this._stashUsed=0,this._stashByteStart=0,this._paused=!0)},s.resume=function(){if(this._paused){this._paused=!1;var e=this._resumeFrom;this._resumeFrom=0,this._internalSeek(e,!0)}},s.seek=function(e){this._paused=!1,this._stashUsed=0,this._stashByteStart=0,this._internalSeek(e,!0)},s._internalSeek=function(e,t){this._loader.isWorking()&&this._loader.abort(),this._flushStashBuffer(t),this._loader.destroy(),this._loader=null;var r={from:e,to:-1};this._currentRange={from:r.from,to:-1},this._speedSampler.reset(),this._stashSize=this._stashInitialSize,this._createLoader(),this._loader.open(this._dataSource,r),this._onSeeked&&this._onSeeked()},s.updateUrl=function(e){if(!e||"string"!=typeof e||0===e.length)throw new u.b("Url must be a non-empty string!");this._dataSource.url=e},s._expandBuffer=function(e){for(var t=this._stashSize;t+1048576<e;)t*=2;if((t+=1048576)!==this._bufferSize){var r=new ArrayBuffer(t);if(this._stashUsed>0){var i=new Uint8Array(this._stashBuffer,0,this._stashUsed);new Uint8Array(r,0,t).set(i,0)}this._stashBuffer=r,this._bufferSize=t}},s._normalizeSpeed=function(e){var t=this._speedNormalizeList,r=t.length-1,i=0,n=0,a=r;if(e<t[0])return t[0];for(;n<=a;){if((i=n+Math.floor((a-n)/2))===r||e>=t[i]&&e<t[i+1])return t[i];t[i]<e?n=i+1:a=i-1}},s._adjustStashSize=function(e){var t=0;(t=this._config.isLive||e<512?e:e>=512&&e<=1024?Math.floor(1.5*e):2*e)>8192&&(t=8192);var r=1024*t+1048576;this._bufferSize<r&&this._expandBuffer(r),this._stashSize=1024*t},s._dispatchChunks=function(e,t){return this._currentRange.to=t+e.byteLength-1,this._onDataArrival(e,t)},s._onURLRedirect=function(e){this._redirectedURL=e,this._onRedirect&&this._onRedirect(e)},s._onContentLengthKnown=function(e){e&&this._fullRequestFlag&&(this._totalLength=e,this._fullRequestFlag=!1)},s._onLoaderChunkArrival=function(e,t,r){if(this._loaderChunkArrival&&this._loaderChunkArrival(e),!this._onDataArrival)throw new u.a("IOController: No existing consumer (onDataArrival) callback!");if(!this._paused&&(this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,this._onRecoveredEarlyEof&&this._onRecoveredEarlyEof()),e)){this._speedSampler.addBytes(e.byteLength);var i=this._speedSampler.lastSecondKBps;if(0!==i){var n=this._normalizeSpeed(i);this._speedNormalized!==n&&(this._speedNormalized=n,this._adjustStashSize(n))}if(this._isHLSURL&&(this._enableStash=!1),this._enableStash)if(0===this._stashUsed&&0===this._stashByteStart&&(this._stashByteStart=t),this._stashUsed+e.byteLength<=this._stashSize){new Uint8Array(this._stashBuffer,0,this._stashSize).set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength}else{var a=new Uint8Array(this._stashBuffer,0,this._bufferSize);if(this._stashUsed>0){var o=this._stashBuffer.slice(0,this._stashUsed),s=this._dispatchChunks(o,this._stashByteStart);if(s<o.byteLength){if(s>0){var d=new Uint8Array(o,s);a.set(d,0),this._stashUsed=d.byteLength,this._stashByteStart+=s}}else this._stashUsed=0,this._stashByteStart+=s;this._stashUsed+e.byteLength>this._bufferSize&&(this._expandBuffer(this._stashUsed+e.byteLength),a=new Uint8Array(this._stashBuffer,0,this._bufferSize)),a.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength}else{var h=this._dispatchChunks(e,t);if(h<e.byteLength){var l=e.byteLength-h;l>this._bufferSize&&(this._expandBuffer(l),a=new Uint8Array(this._stashBuffer,0,this._bufferSize)),a.set(new Uint8Array(e,h),0),this._stashUsed+=l,this._stashByteStart=t+h}}}else if(0===this._stashUsed){var f=this._dispatchChunks(e,t);if(f<e.byteLength){var c=e.byteLength-f;c>this._bufferSize&&this._expandBuffer(c),new Uint8Array(this._stashBuffer,0,this._bufferSize).set(new Uint8Array(e,f),0),this._stashUsed+=c,this._stashByteStart=t+f}}else{this._stashUsed+e.byteLength>this._bufferSize&&this._expandBuffer(this._stashUsed+e.byteLength);var p=new Uint8Array(this._stashBuffer,0,this._bufferSize);p.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength;var m=this._dispatchChunks(this._stashBuffer.slice(0,this._stashUsed),this._stashByteStart);if(m<this._stashUsed&&m>0){var g=new Uint8Array(this._stashBuffer,m);p.set(g,0)}this._stashUsed-=m,this._stashByteStart+=m}}},s._flushStashBuffer=function(e){if(this._stashUsed>0){var t=this._stashBuffer.slice(0,this._stashUsed),r=this._dispatchChunks(t,this._stashByteStart),n=t.byteLength-r;if(r<t.byteLength){if(!e){if(r>0){var a=new Uint8Array(this._stashBuffer,0,this._bufferSize),o=new Uint8Array(t,r);a.set(o,0),this._stashUsed=o.byteLength,this._stashByteStart+=r}return 0}i.a.w(this.TAG,n+" bytes unconsumed data remain when flush buffer, dropped")}return this._stashUsed=0,this._stashByteStart=0,n}return 0},s._onLoaderComplete=function(e,t,r){this._flushStashBuffer(!0),this._onComplete&&this._onComplete(this._extraData,r)},s._onLoaderHLSError=function(){this._loaderHLSError()},s._onLoaderError=function(e,t){switch(i.a.e(this.TAG,"Loader error, code = "+t.code+", msg = "+t.msg),this._flushStashBuffer(!1),this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,e=o.b.UNRECOVERABLE_EARLY_EOF),e){case o.b.EARLY_EOF:if(!this._config.isLive&&this._totalLength){var r=this._currentRange.to+1;return void(r<this._totalLength&&(i.a.w(this.TAG,"Connection lost, trying reconnect..."),this._isEarlyEofReconnecting=!0,this._internalSeek(r,!1)))}e=o.b.UNRECOVERABLE_EARLY_EOF;break;case o.b.UNRECOVERABLE_EARLY_EOF:case o.b.CONNECTING_TIMEOUT:case o.b.HTTP_STATUS_CODE_INVALID:case o.b.EXCEPTION:}if(!this._onError)throw new u.d("IOException: "+t.msg);this._onError(e,t)},s._getM3u8Loader=function(){return this._isHLSURL?this._loader:null},t=e,(r=[{key:"status",get:function(){return this._loader.status}},{key:"extraData",get:function(){return this._extraData},set:function(e){this._extraData=e}},{key:"onDataArrival",get:function(){return this._onDataArrival},set:function(e){this._onDataArrival=e}},{key:"loaderChunkArrival",get:function(){return this._loaderChunkArrival},set:function(e){this._loaderChunkArrival=e}},{key:"loaderHLSError",get:function(){return this._loaderHLSError},set:function(e){this._loaderHLSError=e}},{key:"onSeeked",get:function(){return this._onSeeked},set:function(e){this._onSeeked=e}},{key:"onError",get:function(){return this._onError},set:function(e){this._onError=e}},{key:"onComplete",get:function(){return this._onComplete},set:function(e){this._onComplete=e}},{key:"onRedirect",get:function(){return this._onRedirect},set:function(e){this._onRedirect=e}},{key:"onRecoveredEarlyEof",get:function(){return this._onRecoveredEarlyEof},set:function(e){this._onRecoveredEarlyEof=e}},{key:"currentURL",get:function(){return this._dataSource.url}},{key:"hasRedirect",get:function(){return null!=this._redirectedURL||null!=this._dataSource.redirectedURL}},{key:"currentRedirectedURL",get:function(){return this._redirectedURL||this._dataSource.redirectedURL}},{key:"currentSpeed",get:function(){return this._loaderClass===v?this._loader.currentSpeed:this._speedSampler.lastSecondKBps}},{key:"averageKBps",get:function(){return this._speedSampler.averageKBps}},{key:"loaderType",get:function(){return this._loader.type}}])&&R(t.prototype,r),n&&R(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.a=k},function(e,t,r){"use strict";(function(t){void 0===t||!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports={nextTick:function(e,r,i,n){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var a,o,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick((function(){e.call(null,r)}));case 3:return t.nextTick((function(){e.call(null,r,i)}));case 4:return t.nextTick((function(){e.call(null,r,i,n)}));default:for(a=new Array(s-1),o=0;o<a.length;)a[o++]=arguments[o];return t.nextTick((function(){e.apply(null,a)}))}}}:e.exports=t}).call(this,r(9))},function(e,t,r){var i=r(6).Buffer;function n(e){i.isBuffer(e)||(e=i.from(e));for(var t=e.length/4|0,r=new Array(t),n=0;n<t;n++)r[n]=e.readUInt32BE(4*n);return r}function a(e){for(;0<e.length;e++)e[0]=0}function o(e,t,r,i,n){for(var a,o,s,u,d=r[0],h=r[1],l=r[2],f=r[3],c=e[0]^t[0],p=e[1]^t[1],m=e[2]^t[2],g=e[3]^t[3],_=4,y=1;y<n;y++)a=d[c>>>24]^h[p>>>16&255]^l[m>>>8&255]^f[255&g]^t[_++],o=d[p>>>24]^h[m>>>16&255]^l[g>>>8&255]^f[255&c]^t[_++],s=d[m>>>24]^h[g>>>16&255]^l[c>>>8&255]^f[255&p]^t[_++],u=d[g>>>24]^h[c>>>16&255]^l[p>>>8&255]^f[255&m]^t[_++],c=a,p=o,m=s,g=u;return a=(i[c>>>24]<<24|i[p>>>16&255]<<16|i[m>>>8&255]<<8|i[255&g])^t[_++],o=(i[p>>>24]<<24|i[m>>>16&255]<<16|i[g>>>8&255]<<8|i[255&c])^t[_++],s=(i[m>>>24]<<24|i[g>>>16&255]<<16|i[c>>>8&255]<<8|i[255&p])^t[_++],u=(i[g>>>24]<<24|i[c>>>16&255]<<16|i[p>>>8&255]<<8|i[255&m])^t[_++],[a>>>=0,o>>>=0,s>>>=0,u>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var r=[],i=[],n=[[],[],[],[]],a=[[],[],[],[]],o=0,s=0,u=0;u<256;++u){var d=s^s<<1^s<<2^s<<3^s<<4;d=d>>>8^255&d^99,r[o]=d,i[d]=o;var h=e[o],l=e[h],f=e[l],c=257*e[d]^16843008*d;n[0][o]=c<<24|c>>>8,n[1][o]=c<<16|c>>>16,n[2][o]=c<<8|c>>>24,n[3][o]=c,c=16843009*f^65537*l^257*h^16843008*o,a[0][d]=c<<24|c>>>8,a[1][d]=c<<16|c>>>16,a[2][d]=c<<8|c>>>24,a[3][d]=c,0===o?o=s=1:(o=h^e[e[e[f^h]]],s^=e[e[s]])}return{SBOX:r,INV_SBOX:i,SUB_MIX:n,INV_SUB_MIX:a}}();function d(e){this._key=n(e),this._reset()}d.blockSize=16,d.keySize=32,d.prototype.blockSize=d.blockSize,d.prototype.keySize=d.keySize,d.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,i=4*(r+1),n=[],a=0;a<t;a++)n[a]=e[a];for(a=t;a<i;a++){var o=n[a-1];a%t==0?(o=o<<8|o>>>24,o=u.SBOX[o>>>24]<<24|u.SBOX[o>>>16&255]<<16|u.SBOX[o>>>8&255]<<8|u.SBOX[255&o],o^=s[a/t|0]<<24):t>6&&a%t==4&&(o=u.SBOX[o>>>24]<<24|u.SBOX[o>>>16&255]<<16|u.SBOX[o>>>8&255]<<8|u.SBOX[255&o]),n[a]=n[a-t]^o}for(var d=[],h=0;h<i;h++){var l=i-h,f=n[l-(h%4?0:4)];d[h]=h<4||l<=4?f:u.INV_SUB_MIX[0][u.SBOX[f>>>24]]^u.INV_SUB_MIX[1][u.SBOX[f>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[f>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&f]]}this._nRounds=r,this._keySchedule=n,this._invKeySchedule=d},d.prototype.encryptBlockRaw=function(e){return o(e=n(e),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},d.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),r=i.allocUnsafe(16);return r.writeUInt32BE(t[0],0),r.writeUInt32BE(t[1],4),r.writeUInt32BE(t[2],8),r.writeUInt32BE(t[3],12),r},d.prototype.decryptBlock=function(e){var t=(e=n(e))[1];e[1]=e[3],e[3]=t;var r=o(e,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),a=i.allocUnsafe(16);return a.writeUInt32BE(r[0],0),a.writeUInt32BE(r[3],4),a.writeUInt32BE(r[2],8),a.writeUInt32BE(r[1],12),a},d.prototype.scrub=function(){a(this._keySchedule),a(this._invKeySchedule),a(this._key)},e.exports.AES=d},function(e,t,r){var i=r(6).Buffer,n=r(44);e.exports=function(e,t,r,a){if(i.isBuffer(e)||(e=i.from(e,"binary")),t&&(i.isBuffer(t)||(t=i.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var o=r/8,s=i.alloc(o),u=i.alloc(a||0),d=i.alloc(0);o>0||a>0;){var h=new n;h.update(d),h.update(e),t&&h.update(t),d=h.digest();var l=0;if(o>0){var f=s.length-o;l=Math.min(o,d.length),d.copy(s,f,0,l),o-=l}if(l<d.length&&a>0){var c=u.length-a,p=Math.min(a,d.length-l);d.copy(u,c,l,l+p),a-=p}}return d.fill(0),{key:s,iv:u}}},function(e,t,r){"use strict";var i=r(11),n=r(15),a=n.getNAF,o=n.getJSF,s=n.assert;function u(e,t){this.type=e,this.p=new i(t.p,16),this.red=t.prime?i.red(t.prime):i.mont(this.p),this.zero=new i(0).toRed(this.red),this.one=new i(1).toRed(this.red),this.two=new i(2).toRed(this.red),this.n=t.n&&new i(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function d(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(e,t){s(e.precomputed);var r=e._getDoubles(),i=a(t,1,this._bitLength),n=(1<<r.step+1)-(r.step%2==0?2:1);n/=3;var o,u,d=[];for(o=0;o<i.length;o+=r.step){u=0;for(var h=o+r.step-1;h>=o;h--)u=(u<<1)+i[h];d.push(u)}for(var l=this.jpoint(null,null,null),f=this.jpoint(null,null,null),c=n;c>0;c--){for(o=0;o<d.length;o++)(u=d[o])===c?f=f.mixedAdd(r.points[o]):u===-c&&(f=f.mixedAdd(r.points[o].neg()));l=l.add(f)}return l.toP()},u.prototype._wnafMul=function(e,t){var r=4,i=e._getNAFPoints(r);r=i.wnd;for(var n=i.points,o=a(t,r,this._bitLength),u=this.jpoint(null,null,null),d=o.length-1;d>=0;d--){for(var h=0;d>=0&&0===o[d];d--)h++;if(d>=0&&h++,u=u.dblp(h),d<0)break;var l=o[d];s(0!==l),u="affine"===e.type?l>0?u.mixedAdd(n[l-1>>1]):u.mixedAdd(n[-l-1>>1].neg()):l>0?u.add(n[l-1>>1]):u.add(n[-l-1>>1].neg())}return"affine"===e.type?u.toP():u},u.prototype._wnafMulAdd=function(e,t,r,i,n){var s,u,d,h=this._wnafT1,l=this._wnafT2,f=this._wnafT3,c=0;for(s=0;s<i;s++){var p=(d=t[s])._getNAFPoints(e);h[s]=p.wnd,l[s]=p.points}for(s=i-1;s>=1;s-=2){var m=s-1,g=s;if(1===h[m]&&1===h[g]){var _=[t[m],null,null,t[g]];0===t[m].y.cmp(t[g].y)?(_[1]=t[m].add(t[g]),_[2]=t[m].toJ().mixedAdd(t[g].neg())):0===t[m].y.cmp(t[g].y.redNeg())?(_[1]=t[m].toJ().mixedAdd(t[g]),_[2]=t[m].add(t[g].neg())):(_[1]=t[m].toJ().mixedAdd(t[g]),_[2]=t[m].toJ().mixedAdd(t[g].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],b=o(r[m],r[g]);for(c=Math.max(b[0].length,c),f[m]=new Array(c),f[g]=new Array(c),u=0;u<c;u++){var v=0|b[0][u],w=0|b[1][u];f[m][u]=y[3*(v+1)+(w+1)],f[g][u]=0,l[m]=_}}else f[m]=a(r[m],h[m],this._bitLength),f[g]=a(r[g],h[g],this._bitLength),c=Math.max(f[m].length,c),c=Math.max(f[g].length,c)}var E=this.jpoint(null,null,null),A=this._wnafT4;for(s=c;s>=0;s--){for(var S=0;s>=0;){var M=!0;for(u=0;u<i;u++)A[u]=0|f[u][s],0!==A[u]&&(M=!1);if(!M)break;S++,s--}if(s>=0&&S++,E=E.dblp(S),s<0)break;for(u=0;u<i;u++){var T=A[u];0!==T&&(T>0?d=l[u][T-1>>1]:T<0&&(d=l[u][-T-1>>1].neg()),E="affine"===d.type?E.mixedAdd(d):E.add(d))}}for(s=0;s<i;s++)l[s]=null;return n?E:E.toP()},u.BasePoint=d,d.prototype.eq=function(){throw new Error("Not implemented")},d.prototype.validate=function(){return this.curve.validate(this)},u.prototype.decodePoint=function(e,t){e=n.toArray(e,t);var r=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*r)return 6===e[0]?s(e[e.length-1]%2==0):7===e[0]&&s(e[e.length-1]%2==1),this.point(e.slice(1,1+r),e.slice(1+r,1+2*r));if((2===e[0]||3===e[0])&&e.length-1===r)return this.pointFromX(e.slice(1,1+r),3===e[0]);throw new Error("Unknown point format")},d.prototype.encodeCompressed=function(e){return this.encode(e,!0)},d.prototype._encode=function(e){var t=this.curve.p.byteLength(),r=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",t))},d.prototype.encode=function(e,t){return n.encode(this._encode(t),e)},d.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},d.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},d.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],i=this,n=0;n<t;n+=e){for(var a=0;a<e;a++)i=i.dbl();r.push(i)}return{step:e,points:r}},d.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],r=(1<<e)-1,i=1===r?null:this.dbl(),n=1;n<r;n++)t[n]=t[n-1].add(i);return{wnd:e,points:t}},d.prototype._getBeta=function(){return null},d.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t}},function(e,t,r){var i=r(213),n=r(220),a=r(221),o=r(53),s=r(88),u=r(6).Buffer;function d(e){var t;"object"!=typeof e||u.isBuffer(e)||(t=e.passphrase,e=e.key),"string"==typeof e&&(e=u.from(e));var r,d,h=a(e,t),l=h.tag,f=h.data;switch(l){case"CERTIFICATE":d=i.certificate.decode(f,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(d||(d=i.PublicKey.decode(f,"der")),r=d.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return i.RSAPublicKey.decode(d.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return d.subjectPrivateKey=d.subjectPublicKey,{type:"ec",data:d};case"1.2.840.10040.4.1":return d.algorithm.params.pub_key=i.DSAparam.decode(d.subjectPublicKey.data,"der"),{type:"dsa",data:d.algorithm.params};default:throw new Error("unknown key id "+r)}case"ENCRYPTED PRIVATE KEY":f=function(e,t){var r=e.algorithm.decrypt.kde.kdeparams.salt,i=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),a=n[e.algorithm.decrypt.cipher.algo.join(".")],d=e.algorithm.decrypt.cipher.iv,h=e.subjectPrivateKey,l=parseInt(a.split("-")[1],10)/8,f=s.pbkdf2Sync(t,r,i,l,"sha1"),c=o.createDecipheriv(a,f,d),p=[];return p.push(c.update(h)),p.push(c.final()),u.concat(p)}(f=i.EncryptedPrivateKey.decode(f,"der"),t);case"PRIVATE KEY":switch(r=(d=i.PrivateKey.decode(f,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return i.RSAPrivateKey.decode(d.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:d.algorithm.curve,privateKey:i.ECPrivateKey.decode(d.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return d.algorithm.params.priv_key=i.DSAparam.decode(d.subjectPrivateKey,"der"),{type:"dsa",params:d.algorithm.params};default:throw new Error("unknown key id "+r)}case"RSA PUBLIC KEY":return i.RSAPublicKey.decode(f,"der");case"RSA PRIVATE KEY":return i.RSAPrivateKey.decode(f,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:i.DSAPrivateKey.decode(f,"der")};case"EC PRIVATE KEY":return{curve:(f=i.ECPrivateKey.decode(f,"der")).parameters.value,privateKey:f.privateKey};default:throw new Error("unknown key type "+l)}}e.exports=d,d.signature=i.signature},function(e,t,r){"use strict";var i=function(){function e(){}return e.install=function(){Object.setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Object.assign=Object.assign||function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),r=1;r<arguments.length;r++){var i=arguments[r];if(null!=i)for(var n in i)i.hasOwnProperty(n)&&(t[n]=i[n])}return t},"function"!=typeof self.Promise&&r(124).polyfill()},e}();i.install(),t.a=i},function(e,t,r){"use strict";var i=r(5),n=r(72),a=r(6).Buffer,o=new Array(16);function s(){n.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function u(e,t){return e<<t|e>>>32-t}function d(e,t,r,i,n,a,o){return u(e+(t&r|~t&i)+n+a|0,o)+t|0}function h(e,t,r,i,n,a,o){return u(e+(t&i|r&~i)+n+a|0,o)+t|0}function l(e,t,r,i,n,a,o){return u(e+(t^r^i)+n+a|0,o)+t|0}function f(e,t,r,i,n,a,o){return u(e+(r^(t|~i))+n+a|0,o)+t|0}i(s,n),s.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,i=this._b,n=this._c,a=this._d;r=d(r,i,n,a,e[0],3614090360,7),a=d(a,r,i,n,e[1],3905402710,12),n=d(n,a,r,i,e[2],606105819,17),i=d(i,n,a,r,e[3],3250441966,22),r=d(r,i,n,a,e[4],4118548399,7),a=d(a,r,i,n,e[5],1200080426,12),n=d(n,a,r,i,e[6],2821735955,17),i=d(i,n,a,r,e[7],4249261313,22),r=d(r,i,n,a,e[8],1770035416,7),a=d(a,r,i,n,e[9],2336552879,12),n=d(n,a,r,i,e[10],4294925233,17),i=d(i,n,a,r,e[11],2304563134,22),r=d(r,i,n,a,e[12],1804603682,7),a=d(a,r,i,n,e[13],4254626195,12),n=d(n,a,r,i,e[14],2792965006,17),r=h(r,i=d(i,n,a,r,e[15],1236535329,22),n,a,e[1],4129170786,5),a=h(a,r,i,n,e[6],3225465664,9),n=h(n,a,r,i,e[11],643717713,14),i=h(i,n,a,r,e[0],3921069994,20),r=h(r,i,n,a,e[5],3593408605,5),a=h(a,r,i,n,e[10],38016083,9),n=h(n,a,r,i,e[15],3634488961,14),i=h(i,n,a,r,e[4],3889429448,20),r=h(r,i,n,a,e[9],568446438,5),a=h(a,r,i,n,e[14],3275163606,9),n=h(n,a,r,i,e[3],4107603335,14),i=h(i,n,a,r,e[8],1163531501,20),r=h(r,i,n,a,e[13],2850285829,5),a=h(a,r,i,n,e[2],4243563512,9),n=h(n,a,r,i,e[7],1735328473,14),r=l(r,i=h(i,n,a,r,e[12],2368359562,20),n,a,e[5],4294588738,4),a=l(a,r,i,n,e[8],2272392833,11),n=l(n,a,r,i,e[11],1839030562,16),i=l(i,n,a,r,e[14],4259657740,23),r=l(r,i,n,a,e[1],2763975236,4),a=l(a,r,i,n,e[4],1272893353,11),n=l(n,a,r,i,e[7],4139469664,16),i=l(i,n,a,r,e[10],3200236656,23),r=l(r,i,n,a,e[13],681279174,4),a=l(a,r,i,n,e[0],3936430074,11),n=l(n,a,r,i,e[3],3572445317,16),i=l(i,n,a,r,e[6],76029189,23),r=l(r,i,n,a,e[9],3654602809,4),a=l(a,r,i,n,e[12],3873151461,11),n=l(n,a,r,i,e[15],530742520,16),r=f(r,i=l(i,n,a,r,e[2],3299628645,23),n,a,e[0],4096336452,6),a=f(a,r,i,n,e[7],1126891415,10),n=f(n,a,r,i,e[14],2878612391,15),i=f(i,n,a,r,e[5],4237533241,21),r=f(r,i,n,a,e[12],1700485571,6),a=f(a,r,i,n,e[3],2399980690,10),n=f(n,a,r,i,e[10],4293915773,15),i=f(i,n,a,r,e[1],2240044497,21),r=f(r,i,n,a,e[8],1873313359,6),a=f(a,r,i,n,e[15],4264355552,10),n=f(n,a,r,i,e[6],2734768916,15),i=f(i,n,a,r,e[13],1309151649,21),r=f(r,i,n,a,e[4],4149444226,6),a=f(a,r,i,n,e[11],3174756917,10),n=f(n,a,r,i,e[2],718787259,15),i=f(i,n,a,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+i|0,this._c=this._c+n|0,this._d=this._d+a|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=a.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=s},function(e,t,r){(function(t){function r(e){try{if(!t.localStorage)return!1}catch(e){return!1}var r=t.localStorage[e];return null!=r&&"true"===String(r).toLowerCase()}e.exports=function(e,t){if(r("noDeprecation"))return e;var i=!1;return function(){if(!i){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),i=!0}return e.apply(this,arguments)}}}).call(this,r(13))},function(e,t,r){"use strict";var i=r(25).codes.ERR_STREAM_PREMATURE_CLOSE;function n(){}e.exports=function e(t,r,a){if("function"==typeof r)return e(t,null,r);r||(r={}),a=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),n=0;n<r;n++)i[n]=arguments[n];e.apply(this,i)}}}(a||n);var o=r.readable||!1!==r.readable&&t.readable,s=r.writable||!1!==r.writable&&t.writable,u=function(){t.writable||h()},d=t._writableState&&t._writableState.finished,h=function(){s=!1,d=!0,o||a.call(t)},l=t._readableState&&t._readableState.endEmitted,f=function(){o=!1,l=!0,s||a.call(t)},c=function(e){a.call(t,e)},p=function(){var e;return o&&!l?(t._readableState&&t._readableState.ended||(e=new i),a.call(t,e)):s&&!d?(t._writableState&&t._writableState.ended||(e=new i),a.call(t,e)):void 0},m=function(){t.req.on("finish",h)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(t)?s&&!t._writableState&&(t.on("end",u),t.on("close",u)):(t.on("complete",h),t.on("abort",p),t.req?m():t.on("request",m)),t.on("end",f),t.on("finish",h),!1!==r.error&&t.on("error",c),t.on("close",p),function(){t.removeListener("complete",h),t.removeListener("abort",p),t.removeListener("request",m),t.req&&t.req.removeListener("finish",h),t.removeListener("end",u),t.removeListener("close",u),t.removeListener("finish",h),t.removeListener("end",f),t.removeListener("error",c),t.removeListener("close",p)}}},function(e,t,r){"use strict";var i=r(10).Buffer,n=r(5),a=r(72),o=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],d=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],h=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],l=[0,1518500249,1859775393,2400959708,2840853838],f=[1352829926,1548603684,1836072691,2053994217,0];function c(){a.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<<t|e>>>32-t}function m(e,t,r,i,n,a,o,s){return p(e+(t^r^i)+a+o|0,s)+n|0}function g(e,t,r,i,n,a,o,s){return p(e+(t&r|~t&i)+a+o|0,s)+n|0}function _(e,t,r,i,n,a,o,s){return p(e+((t|~r)^i)+a+o|0,s)+n|0}function y(e,t,r,i,n,a,o,s){return p(e+(t&i|r&~i)+a+o|0,s)+n|0}function b(e,t,r,i,n,a,o,s){return p(e+(t^(r|~i))+a+o|0,s)+n|0}n(c,a),c.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,i=0|this._b,n=0|this._c,a=0|this._d,c=0|this._e,v=0|this._a,w=0|this._b,E=0|this._c,A=0|this._d,S=0|this._e,M=0;M<80;M+=1){var T,R;M<16?(T=m(r,i,n,a,c,e[s[M]],l[0],d[M]),R=b(v,w,E,A,S,e[u[M]],f[0],h[M])):M<32?(T=g(r,i,n,a,c,e[s[M]],l[1],d[M]),R=y(v,w,E,A,S,e[u[M]],f[1],h[M])):M<48?(T=_(r,i,n,a,c,e[s[M]],l[2],d[M]),R=_(v,w,E,A,S,e[u[M]],f[2],h[M])):M<64?(T=y(r,i,n,a,c,e[s[M]],l[3],d[M]),R=g(v,w,E,A,S,e[u[M]],f[3],h[M])):(T=b(r,i,n,a,c,e[s[M]],l[4],d[M]),R=m(v,w,E,A,S,e[u[M]],f[4],h[M])),r=c,c=a,a=p(n,10),n=i,i=T,v=S,S=A,A=p(E,10),E=w,w=R}var k=this._b+n+A|0;this._b=this._c+a+S|0,this._c=this._d+c+v|0,this._d=this._e+r+w|0,this._e=this._a+i+E|0,this._a=k},c.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=i.alloc?i.alloc(20):new i(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=c},function(e,t,r){(t=e.exports=function(e){e=e.toLowerCase();var r=t[e];if(!r)throw new Error(e+" is not supported (we accept pull requests)");return new r}).sha=r(144),t.sha1=r(145),t.sha224=r(146),t.sha256=r(79),t.sha384=r(147),t.sha512=r(80)},function(e,t,r){(t=e.exports=r(81)).Stream=t,t.Readable=t,t.Writable=r(51),t.Duplex=r(23),t.Transform=r(84),t.PassThrough=r(154)},function(e,t,r){var i=r(10),n=i.Buffer;function a(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return n(e,t,r)}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?e.exports=i:(a(i,t),t.Buffer=o),a(n,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return n(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var i=n(e);return void 0!==t?"string"==typeof r?i.fill(t,r):i.fill(t):i.fill(0),i},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i.SlowBuffer(e)}},function(e,t,r){"use strict";(function(t,i,n){var a=r(38);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var i=e.entry;e.entry=null;for(;i;){var n=i.callback;t.pendingcb--,n(r),i=i.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=y;var s,u=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?i:a.nextTick;y.WritableState=_;var d=Object.create(r(32));d.inherits=r(5);var h={deprecate:r(45)},l=r(82),f=r(50).Buffer,c=n.Uint8Array||function(){};var p,m=r(83);function g(){}function _(e,t){s=s||r(23),e=e||{};var i=t instanceof s;this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,d=e.writableHighWaterMark,h=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:i&&(d||0===d)?d:h,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===e.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,i=r.sync,n=r.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,i,n){--t.pendingcb,r?(a.nextTick(n,i),a.nextTick(S,e,t),e._writableState.errorEmitted=!0,e.emit("error",i)):(n(i),e._writableState.errorEmitted=!0,e.emit("error",i),S(e,t))}(e,r,i,t,n);else{var o=E(r);o||r.corked||r.bufferProcessing||!r.bufferedRequest||w(e,r),i?u(v,e,r,o,n):v(e,r,o,n)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function y(e){if(s=s||r(23),!(p.call(y,this)||this instanceof s))return new y(e);this._writableState=new _(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),l.call(this)}function b(e,t,r,i,n,a,o){t.writelen=i,t.writecb=o,t.writing=!0,t.sync=!0,r?e._writev(n,t.onwrite):e._write(n,a,t.onwrite),t.sync=!1}function v(e,t,r,i){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,i(),S(e,t)}function w(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var i=t.bufferedRequestCount,n=new Array(i),a=t.corkedRequestsFree;a.entry=r;for(var s=0,u=!0;r;)n[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;n.allBuffers=u,b(e,t,!0,t.length,n,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;r;){var d=r.chunk,h=r.encoding,l=r.callback;if(b(e,t,!1,t.objectMode?1:d.length,d,h,l),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function E(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function A(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),S(e,t)}))}function S(e,t){var r=E(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,a.nextTick(A,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}d.inherits(y,l),_.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(_.prototype,"buffer",{get:h.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(y,Symbol.hasInstance,{value:function(e){return!!p.call(this,e)||this===y&&(e&&e._writableState instanceof _)}})):p=function(e){return e instanceof this},y.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},y.prototype.write=function(e,t,r){var i,n=this._writableState,o=!1,s=!n.objectMode&&(i=e,f.isBuffer(i)||i instanceof c);return s&&!f.isBuffer(e)&&(e=function(e){return f.from(e)}(e)),"function"==typeof t&&(r=t,t=null),s?t="buffer":t||(t=n.defaultEncoding),"function"!=typeof r&&(r=g),n.ended?function(e,t){var r=new Error("write after end");e.emit("error",r),a.nextTick(t,r)}(this,r):(s||function(e,t,r,i){var n=!0,o=!1;return null===r?o=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||t.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),a.nextTick(i,o),n=!1),n}(this,n,e,r))&&(n.pendingcb++,o=function(e,t,r,i,n,a){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=f.from(t,r));return t}(t,i,n);i!==o&&(r=!0,n="buffer",i=o)}var s=t.objectMode?1:i.length;t.length+=s;var u=t.length<t.highWaterMark;u||(t.needDrain=!0);if(t.writing||t.corked){var d=t.lastBufferedRequest;t.lastBufferedRequest={chunk:i,encoding:n,isBuf:r,callback:a,next:null},d?d.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else b(e,t,!1,s,i,n,a);return u}(this,n,s,e,t,r)),o},y.prototype.cork=function(){this._writableState.corked++},y.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||w(this,e))},y.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(y.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},y.prototype._writev=null,y.prototype.end=function(e,t,r){var i=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),i.ending||i.finished||function(e,t,r){t.ending=!0,S(e,t),r&&(t.finished?a.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,i,r)},Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),y.prototype.destroy=m.destroy,y.prototype._undestroy=m.undestroy,y.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,r(9),r(152).setImmediate,r(13))},function(e,t,r){"use strict";var i=r(14);function n(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}e.exports=n,n.prototype._init=function(){},n.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},n.prototype._buffer=function(e,t){for(var r=Math.min(this.buffer.length-this.bufferOff,e.length-t),i=0;i<r;i++)this.buffer[this.bufferOff+i]=e[t+i];return this.bufferOff+=r,r},n.prototype._flushBuffer=function(e,t){return this._update(this.buffer,0,e,t),this.bufferOff=0,this.blockSize},n.prototype._updateEncrypt=function(e){var t=0,r=0,i=(this.bufferOff+e.length)/this.blockSize|0,n=new Array(i*this.blockSize);0!==this.bufferOff&&(t+=this._buffer(e,t),this.bufferOff===this.buffer.length&&(r+=this._flushBuffer(n,r)));for(var a=e.length-(e.length-t)%this.blockSize;t<a;t+=this.blockSize)this._update(e,t,n,r),r+=this.blockSize;for(;t<e.length;t++,this.bufferOff++)this.buffer[this.bufferOff]=e[t];return n},n.prototype._updateDecrypt=function(e){for(var t=0,r=0,i=Math.ceil((this.bufferOff+e.length)/this.blockSize)-1,n=new Array(i*this.blockSize);i>0;i--)t+=this._buffer(e,t),r+=this._flushBuffer(n,r);return t+=this._buffer(e,t),n},n.prototype.final=function(e){var t,r;return e&&(t=this.update(e)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(r):r},n.prototype._pad=function(e,t){if(0===t)return!1;for(;t<e.length;)e[t++]=0;return!0},n.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var e=new Array(this.blockSize);return this._update(this.buffer,0,e,0),e},n.prototype._unpad=function(e){return e},n.prototype._finalDecrypt=function(){i.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var e=new Array(this.blockSize);return this._flushBuffer(e,0),this._unpad(e)}},function(e,t,r){var i=r(167),n=r(175),a=r(97);t.createCipher=t.Cipher=i.createCipher,t.createCipheriv=t.Cipheriv=i.createCipheriv,t.createDecipher=t.Decipher=n.createDecipher,t.createDecipheriv=t.Decipheriv=n.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(a)}},function(e,t,r){var i={ECB:r(168),CBC:r(169),CFB:r(170),CFB8:r(171),CFB1:r(172),OFB:r(173),CTR:r(95),GCM:r(95)},n=r(97);for(var a in n)n[a].module=i[n[a].mode];e.exports=n},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){var i;function n(e){this.rand=e}if(e.exports=function(e){return i||(i=new n(null)),i.generate(e)},e.exports.Rand=n,n.prototype.generate=function(e){return this._rand(e)},n.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r<t.length;r++)t[r]=this.rand.getByte();return t},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?n.prototype._rand=function(e){var t=new Uint8Array(e);return self.crypto.getRandomValues(t),t}:self.msCrypto&&self.msCrypto.getRandomValues?n.prototype._rand=function(e){var t=new Uint8Array(e);return self.msCrypto.getRandomValues(t),t}:"object"==typeof window&&(n.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var a=r(179);if("function"!=typeof a.randomBytes)throw new Error("Not supported");n.prototype._rand=function(e){return a.randomBytes(e)}}catch(e){}},function(e,t,r){"use strict";var i=r(28).codes.ERR_STREAM_PREMATURE_CLOSE;function n(){}e.exports=function e(t,r,a){if("function"==typeof r)return e(t,null,r);r||(r={}),a=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),n=0;n<r;n++)i[n]=arguments[n];e.apply(this,i)}}}(a||n);var o=r.readable||!1!==r.readable&&t.readable,s=r.writable||!1!==r.writable&&t.writable,u=function(){t.writable||h()},d=t._writableState&&t._writableState.finished,h=function(){s=!1,d=!0,o||a.call(t)},l=t._readableState&&t._readableState.endEmitted,f=function(){o=!1,l=!0,s||a.call(t)},c=function(e){a.call(t,e)},p=function(){var e;return o&&!l?(t._readableState&&t._readableState.ended||(e=new i),a.call(t,e)):s&&!d?(t._writableState&&t._writableState.ended||(e=new i),a.call(t,e)):void 0},m=function(){t.req.on("finish",h)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(t)?s&&!t._writableState&&(t.on("end",u),t.on("close",u)):(t.on("complete",h),t.on("abort",p),t.req?m():t.on("request",m)),t.on("end",f),t.on("finish",h),!1!==r.error&&t.on("error",c),t.on("close",p),function(){t.removeListener("complete",h),t.removeListener("abort",p),t.removeListener("request",m),t.req&&t.req.removeListener("finish",h),t.removeListener("end",u),t.removeListener("close",u),t.removeListener("finish",h),t.removeListener("end",f),t.removeListener("error",c),t.removeListener("close",p)}}},function(e,t,r){(function(t){var i=r(192),n=r(24);function a(e){var t,r=e.modulus.byteLength();do{t=new i(n(r))}while(t.cmp(e.modulus)>=0||!t.umod(e.prime1)||!t.umod(e.prime2));return t}function o(e,r){var n=function(e){var t=a(e);return{blinder:t.toRed(i.mont(e.modulus)).redPow(new i(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(r),o=r.modulus.byteLength(),s=new i(e).mul(n.blinder).umod(r.modulus),u=s.toRed(i.mont(r.prime1)),d=s.toRed(i.mont(r.prime2)),h=r.coefficient,l=r.prime1,f=r.prime2,c=u.redPow(r.exponent1).fromRed(),p=d.redPow(r.exponent2).fromRed(),m=c.isub(p).imul(h).umod(l).imul(f);return p.iadd(m).imul(n.unblinder).umod(r.modulus).toArrayLike(t,"be",o)}o.getr=a,e.exports=o}).call(this,r(10).Buffer)},function(e,t,r){"use strict";var i=t;i.version=r(194).version,i.utils=r(15),i.rand=r(56),i.curve=r(109),i.curves=r(60),i.ec=r(205),i.eddsa=r(209)},function(e,t,r){"use strict";var i,n=t,a=r(61),o=r(109),s=r(15).assert;function u(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function d(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new u(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=u,d("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:a.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),d("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:a.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),d("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:a.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),d("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:a.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),d("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:a.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),d("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["9"]}),d("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{i=r(204)}catch(e){i=void 0}d("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:a.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",i]})},function(e,t,r){var i=t;i.utils=r(18),i.common=r(34),i.sha=r(198),i.ripemd=r(202),i.hmac=r(203),i.sha1=i.sha.sha1,i.sha256=i.sha.sha256,i.sha224=i.sha.sha224,i.sha384=i.sha.sha384,i.sha512=i.sha.sha512,i.ripemd160=i.ripemd.ripemd160},function(e,t,r){"use strict";(function(t){var i,n=r(10),a=n.Buffer,o={};for(i in n)n.hasOwnProperty(i)&&"SlowBuffer"!==i&&"Buffer"!==i&&(o[i]=n[i]);var s=o.Buffer={};for(i in a)a.hasOwnProperty(i)&&"allocUnsafe"!==i&&"allocUnsafeSlow"!==i&&(s[i]=a[i]);if(o.Buffer.prototype=a.prototype,s.from&&s.from!==Uint8Array.from||(s.from=function(e,t,r){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return a(e,t,r)}),s.alloc||(s.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var i=a(e);return t&&0!==t.length?"string"==typeof r?i.fill(t,r):i.fill(t):i.fill(0),i}),!o.kStringMaxLength)try{o.kStringMaxLength=t.binding("buffer").kStringMaxLength}catch(e){}o.constants||(o.constants={MAX_LENGTH:o.kMaxLength},o.kStringMaxLength&&(o.constants.MAX_STRING_LENGTH=o.kStringMaxLength)),e.exports=o}).call(this,r(9))},function(e,t,r){"use strict";var i=r(64).Reporter,n=r(35).EncoderBuffer,a=r(35).DecoderBuffer,o=r(14),s=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],u=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(s);function d(e,t,r){var i={};this._baseState=i,i.name=r,i.enc=e,i.parent=t||null,i.children=null,i.tag=null,i.args=null,i.reverseArgs=null,i.choice=null,i.optional=!1,i.any=!1,i.obj=!1,i.use=null,i.useDecoder=null,i.key=null,i.default=null,i.explicit=null,i.implicit=null,i.contains=null,i.parent||(i.children=[],this._wrap())}e.exports=d;var h=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];d.prototype.clone=function(){var e=this._baseState,t={};h.forEach((function(r){t[r]=e[r]}));var r=new this.constructor(t.parent);return r._baseState=t,r},d.prototype._wrap=function(){var e=this._baseState;u.forEach((function(t){this[t]=function(){var r=new this.constructor(this);return e.children.push(r),r[t].apply(r,arguments)}}),this)},d.prototype._init=function(e){var t=this._baseState;o(null===t.parent),e.call(this),t.children=t.children.filter((function(e){return e._baseState.parent===this}),this),o.equal(t.children.length,1,"Root node can have only one child")},d.prototype._useArgs=function(e){var t=this._baseState,r=e.filter((function(e){return e instanceof this.constructor}),this);e=e.filter((function(e){return!(e instanceof this.constructor)}),this),0!==r.length&&(o(null===t.children),t.children=r,r.forEach((function(e){e._baseState.parent=this}),this)),0!==e.length&&(o(null===t.args),t.args=e,t.reverseArgs=e.map((function(e){if("object"!=typeof e||e.constructor!==Object)return e;var t={};return Object.keys(e).forEach((function(r){r==(0|r)&&(r|=0);var i=e[r];t[i]=r})),t})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(e){d.prototype[e]=function(){var t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}})),s.forEach((function(e){d.prototype[e]=function(){var t=this._baseState,r=Array.prototype.slice.call(arguments);return o(null===t.tag),t.tag=e,this._useArgs(r),this}})),d.prototype.use=function(e){o(e);var t=this._baseState;return o(null===t.use),t.use=e,this},d.prototype.optional=function(){return this._baseState.optional=!0,this},d.prototype.def=function(e){var t=this._baseState;return o(null===t.default),t.default=e,t.optional=!0,this},d.prototype.explicit=function(e){var t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.explicit=e,this},d.prototype.implicit=function(e){var t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.implicit=e,this},d.prototype.obj=function(){var e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},d.prototype.key=function(e){var t=this._baseState;return o(null===t.key),t.key=e,this},d.prototype.any=function(){return this._baseState.any=!0,this},d.prototype.choice=function(e){var t=this._baseState;return o(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map((function(t){return e[t]}))),this},d.prototype.contains=function(e){var t=this._baseState;return o(null===t.use),t.contains=e,this},d.prototype._decode=function(e,t){var r=this._baseState;if(null===r.parent)return e.wrapResult(r.children[0]._decode(e,t));var i,n=r.default,o=!0,s=null;if(null!==r.key&&(s=e.enterKey(r.key)),r.optional){var u=null;if(null!==r.explicit?u=r.explicit:null!==r.implicit?u=r.implicit:null!==r.tag&&(u=r.tag),null!==u||r.any){if(o=this._peekTag(e,u,r.any),e.isError(o))return o}else{var d=e.save();try{null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t),o=!0}catch(e){o=!1}e.restore(d)}}if(r.obj&&o&&(i=e.enterObject()),o){if(null!==r.explicit){var h=this._decodeTag(e,r.explicit);if(e.isError(h))return h;e=h}var l=e.offset;if(null===r.use&&null===r.choice){var f;r.any&&(f=e.save());var c=this._decodeTag(e,null!==r.implicit?r.implicit:r.tag,r.any);if(e.isError(c))return c;r.any?n=e.raw(f):e=c}if(t&&t.track&&null!==r.tag&&t.track(e.path(),l,e.length,"tagged"),t&&t.track&&null!==r.tag&&t.track(e.path(),e.offset,e.length,"content"),r.any||(n=null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t)),e.isError(n))return n;if(r.any||null!==r.choice||null===r.children||r.children.forEach((function(r){r._decode(e,t)})),r.contains&&("octstr"===r.tag||"bitstr"===r.tag)){var p=new a(n);n=this._getUse(r.contains,e._reporterState.obj)._decode(p,t)}}return r.obj&&o&&(n=e.leaveObject(i)),null===r.key||null===n&&!0!==o?null!==s&&e.exitKey(s):e.leaveKey(s,r.key,n),n},d.prototype._decodeGeneric=function(e,t,r){var i=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,i.args[0],r):/str$/.test(e)?this._decodeStr(t,e,r):"objid"===e&&i.args?this._decodeObjid(t,i.args[0],i.args[1],r):"objid"===e?this._decodeObjid(t,null,null,r):"gentime"===e||"utctime"===e?this._decodeTime(t,e,r):"null_"===e?this._decodeNull(t,r):"bool"===e?this._decodeBool(t,r):"objDesc"===e?this._decodeStr(t,e,r):"int"===e||"enum"===e?this._decodeInt(t,i.args&&i.args[0],r):null!==i.use?this._getUse(i.use,t._reporterState.obj)._decode(t,r):t.error("unknown tag: "+e)},d.prototype._getUse=function(e,t){var r=this._baseState;return r.useDecoder=this._use(e,t),o(null===r.useDecoder._baseState.parent),r.useDecoder=r.useDecoder._baseState.children[0],r.implicit!==r.useDecoder._baseState.implicit&&(r.useDecoder=r.useDecoder.clone(),r.useDecoder._baseState.implicit=r.implicit),r.useDecoder},d.prototype._decodeChoice=function(e,t){var r=this._baseState,i=null,n=!1;return Object.keys(r.choice).some((function(a){var o=e.save(),s=r.choice[a];try{var u=s._decode(e,t);if(e.isError(u))return!1;i={type:a,value:u},n=!0}catch(t){return e.restore(o),!1}return!0}),this),n?i:e.error("Choice not matched")},d.prototype._createEncoderBuffer=function(e){return new n(e,this.reporter)},d.prototype._encode=function(e,t,r){var i=this._baseState;if(null===i.default||i.default!==e){var n=this._encodeValue(e,t,r);if(void 0!==n&&!this._skipDefault(n,t,r))return n}},d.prototype._encodeValue=function(e,t,r){var n=this._baseState;if(null===n.parent)return n.children[0]._encode(e,t||new i);var a=null;if(this.reporter=t,n.optional&&void 0===e){if(null===n.default)return;e=n.default}var o=null,s=!1;if(n.any)a=this._createEncoderBuffer(e);else if(n.choice)a=this._encodeChoice(e,t);else if(n.contains)o=this._getUse(n.contains,r)._encode(e,t),s=!0;else if(n.children)o=n.children.map((function(r){if("null_"===r._baseState.tag)return r._encode(null,t,e);if(null===r._baseState.key)return t.error("Child should have a key");var i=t.enterKey(r._baseState.key);if("object"!=typeof e)return t.error("Child expected, but input is not object");var n=r._encode(e[r._baseState.key],t,e);return t.leaveKey(i),n}),this).filter((function(e){return e})),o=this._createEncoderBuffer(o);else if("seqof"===n.tag||"setof"===n.tag){if(!n.args||1!==n.args.length)return t.error("Too many args for : "+n.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");var u=this.clone();u._baseState.implicit=null,o=this._createEncoderBuffer(e.map((function(r){var i=this._baseState;return this._getUse(i.args[0],e)._encode(r,t)}),u))}else null!==n.use?a=this._getUse(n.use,r)._encode(e,t):(o=this._encodePrimitive(n.tag,e),s=!0);if(!n.any&&null===n.choice){var d=null!==n.implicit?n.implicit:n.tag,h=null===n.implicit?"universal":"context";null===d?null===n.use&&t.error("Tag could be omitted only for .use()"):null===n.use&&(a=this._encodeComposite(d,s,h,o))}return null!==n.explicit&&(a=this._encodeComposite(n.explicit,!1,"context",a)),a},d.prototype._encodeChoice=function(e,t){var r=this._baseState,i=r.choice[e.type];return i||o(!1,e.type+" not found in "+JSON.stringify(Object.keys(r.choice))),i._encode(e.value,t)},d.prototype._encodePrimitive=function(e,t){var r=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&r.args)return this._encodeObjid(t,r.reverseArgs[0],r.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,r.args&&r.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},d.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},d.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(e)}},function(e,t,r){"use strict";var i=r(5);function n(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function a(e,t){this.path=e,this.rethrow(t)}t.Reporter=n,n.prototype.isError=function(e){return e instanceof a},n.prototype.save=function(){var e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},n.prototype.restore=function(e){var t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},n.prototype.enterKey=function(e){return this._reporterState.path.push(e)},n.prototype.exitKey=function(e){var t=this._reporterState;t.path=t.path.slice(0,e-1)},n.prototype.leaveKey=function(e,t,r){var i=this._reporterState;this.exitKey(e),null!==i.obj&&(i.obj[t]=r)},n.prototype.path=function(){return this._reporterState.path.join("/")},n.prototype.enterObject=function(){var e=this._reporterState,t=e.obj;return e.obj={},t},n.prototype.leaveObject=function(e){var t=this._reporterState,r=t.obj;return t.obj=e,r},n.prototype.error=function(e){var t,r=this._reporterState,i=e instanceof a;if(t=i?e:new a(r.path.map((function(e){return"["+JSON.stringify(e)+"]"})).join(""),e.message||e,e.stack),!r.options.partial)throw t;return i||r.errors.push(t),t},n.prototype.wrapResult=function(e){var t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},i(a,Error),a.prototype.rethrow=function(e){if(this.message=e+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,a),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},function(e,t,r){"use strict";function i(e){var t={};return Object.keys(e).forEach((function(r){(0|r)==r&&(r|=0);var i=e[r];t[i]=r})),t}t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=i(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=i(t.tag)},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){"use strict";r.r(t),function(e,i,n,a){var o,s=r(1),u=!1,d="",h=void 0!==h?h:{};function l(){var t,s={};for(t in h)h.hasOwnProperty(t)&&(s[t]=h[t]);var u=[],l="./this.program",f=function(e,t){throw t},c=!1,p=!1,m=!1,g=!1,_=!1;if(c="object"==typeof window,p="function"==typeof importScripts,g="object"==typeof e&&"object"==typeof e.versions&&"string"==typeof e.versions.node,m=g&&!c&&!p,_=!c&&!m&&!p,h.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var y,b,v,w,E="";function A(e){return h.locateFile?h.locateFile(e,E):E+e}if(m)E=i+"/",y=function(e,t){var i;return v||(v=r(69)),w||(w=r(70)),e=w.normalize(e),i=v.readFileSync(e),t?i:i.toString()},b=function(e){var t=y(e,!0);return t.buffer||(t=new Uint8Array(t)),N(t.buffer),t},e.argv.length>1&&(l=e.argv[1].replace(/\\/g,"/")),u=e.argv.slice(2),n.exports=h,e.on("uncaughtException",(function(e){if(!(e instanceof ei))throw e})),e.on("unhandledRejection",Le),f=function(t){e.exit(t)},h.inspect=function(){return"[Emscripten Module object]"};else if(_)"undefined"!=typeof read&&(y=function(e){return read(e)}),b=function(e){var t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(N("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?u=scriptArgs:void 0!==arguments&&(u=arguments),"function"==typeof quit&&(f=function(e){quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print);else{if(!c&&!p)throw new Error("environment detection error");p?E=self.location.href:document.currentScript&&(E=document.currentScript.src),E=0!==E.indexOf("blob:")?E.substr(0,E.lastIndexOf("/")+1):"",y=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},p&&(b=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(e,t,r){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=function(){200==i.status||0==i.status&&i.response?t(i.response):r()},i.onerror=r,i.send(null)},function(e){document.title=e}}var S=h.print||console.log.bind(console),M=h.printErr||console.warn.bind(console);for(t in s)s.hasOwnProperty(t)&&(h[t]=s[t]);function T(e){T.shown||(T.shown={}),T.shown[e]||(T.shown[e]=1,M(e))}function R(e,t){var r=[1,0,1,96],i=t.slice(0,1),n=t.slice(1),a={i:127,j:126,f:125,d:124};r.push(n.length);for(var o=0;o<n.length;++o)r.push(a[n[o]]);"v"==i?r.push(0):r=r.concat([1,a[i]]),r[1]=r.length-2;var s=new Uint8Array([0,97,115,109,1,0,0,0].concat(r,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),u=new WebAssembly.Module(s);return new WebAssembly.Instance(u,{e:{f:e}}).exports.f}function k(e,t){var r=C,i=r.length;try{r.grow(1)}catch(e){if(!e instanceof RangeError)throw e;throw"Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH."}try{r.set(i,e)}catch(a){if(!a instanceof TypeError)throw a;N(void 0!==t,"Missing signature argument to addFunction");var n=R(e,t);r.set(i,n)}return i}function I(e,t){return N(void 0!==e),k(e,t)}s=null,h.arguments&&(u=h.arguments),Object.getOwnPropertyDescriptor(h,"arguments")||Object.defineProperty(h,"arguments",{configurable:!0,get:function(){Le("Module.arguments has been replaced with plain arguments_")}}),h.thisProgram&&(l=h.thisProgram),Object.getOwnPropertyDescriptor(h,"thisProgram")||Object.defineProperty(h,"thisProgram",{configurable:!0,get:function(){Le("Module.thisProgram has been replaced with plain thisProgram")}}),h.quit&&(f=h.quit),Object.getOwnPropertyDescriptor(h,"quit")||Object.defineProperty(h,"quit",{configurable:!0,get:function(){Le("Module.quit has been replaced with plain quit_")}}),N(void 0===h.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),N(void 0===h.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),N(void 0===h.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),N(void 0===h.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),N(void 0===h.read,"Module.read option was removed (modify read_ in JS)"),N(void 0===h.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),N(void 0===h.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),N(void 0===h.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),Object.getOwnPropertyDescriptor(h,"read")||Object.defineProperty(h,"read",{configurable:!0,get:function(){Le("Module.read has been replaced with plain read_")}}),Object.getOwnPropertyDescriptor(h,"readAsync")||Object.defineProperty(h,"readAsync",{configurable:!0,get:function(){Le("Module.readAsync has been replaced with plain readAsync")}}),Object.getOwnPropertyDescriptor(h,"readBinary")||Object.defineProperty(h,"readBinary",{configurable:!0,get:function(){Le("Module.readBinary has been replaced with plain readBinary")}}),Jr=$r=Zr=function(){Le("cannot use the stack before compiled code is ready to run, and has provided stack access")};var O,D,x=function(e){e};h.wasmBinary&&(O=h.wasmBinary),Object.getOwnPropertyDescriptor(h,"wasmBinary")||Object.defineProperty(h,"wasmBinary",{configurable:!0,get:function(){Le("Module.wasmBinary has been replaced with plain wasmBinary")}}),h.noExitRuntime&&(o=h.noExitRuntime),Object.getOwnPropertyDescriptor(h,"noExitRuntime")||Object.defineProperty(h,"noExitRuntime",{configurable:!0,get:function(){Le("Module.noExitRuntime has been replaced with plain noExitRuntime")}}),"object"!=typeof WebAssembly&&Le("No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.");var C=new WebAssembly.Table({initial:2542,maximum:2552,element:"anyfunc"}),P=!1;function N(e,t){e||Le("Assertion failed: "+t)}function L(e){var t=h["_"+e];return N(t,"Cannot call unknown function "+e+", make sure it is exported"),t}function B(e,t,r,i,n){var a={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);W(e,t=Zr(r),r)}return t},array:function(e){var t=Zr(e.length);return z(e,t),t}};var o=L(e),s=[],u=0;if(N("array"!==t,'Return type should not be "array".'),i)for(var d=0;d<i.length;d++){var h=a[r[d]];h?(0===u&&(u=Jr()),s[d]=h(i[d])):s[d]=i[d]}var l=o.apply(null,s);return l=function(e){return"string"===t?H(e):"boolean"===t?Boolean(e):e}(l),0!==u&&$r(u),l}function F(e,t,r,i){return function(){return B(e,t,r,arguments)}}var U="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function j(e,t,r){for(var i=t+r,n=t;e[n]&&!(n>=i);)++n;if(n-t>16&&e.subarray&&U)return U.decode(e.subarray(t,n));for(var a="";t<n;){var o=e[t++];if(128&o){var s=63&e[t++];if(192!=(224&o)){var u=63&e[t++];if(224==(240&o)?o=(15&o)<<12|s<<6|u:(240!=(248&o)&&T("Invalid UTF-8 leading byte 0x"+o.toString(16)+" encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!"),o=(7&o)<<18|s<<12|u<<6|63&e[t++]),o<65536)a+=String.fromCharCode(o);else{var d=o-65536;a+=String.fromCharCode(55296|d>>10,56320|1023&d)}}else a+=String.fromCharCode((31&o)<<6|s)}else a+=String.fromCharCode(o)}return a}function H(e,t){return e?j(Y,e,t):""}function X(e,t,r,i){if(!(i>0))return 0;for(var n=r,a=r+i-1,o=0;o<e.length;++o){var s=e.charCodeAt(o);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o);if(s<=127){if(r>=a)break;t[r++]=s}else if(s<=2047){if(r+1>=a)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=a)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=a)break;s>=2097152&&T("Invalid Unicode code point 0x"+s.toString(16)+" encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF)."),t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-n}function W(e,t,r){return N("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),X(e,Y,t,r)}function V(e){for(var t=0,r=0;r<e.length;++r){var i=e.charCodeAt(r);i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++r)),i<=127?++t:t+=i<=2047?2:i<=65535?3:4}return t}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");function z(e,t){N(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),Q.set(e,t)}function q(e,t,r){for(var i=0;i<e.length;++i)N(e.charCodeAt(i)==e.charCodeAt(i)&255),Q[t++>>0]=e.charCodeAt(i);r||(Q[t>>0]=0)}var G,Q,Y,K,J,Z,$=65536;function ee(e,t){return e%t>0&&(e+=t-e%t),e}function te(e){G=e,h.HEAP8=Q=new Int8Array(e),h.HEAP16=K=new Int16Array(e),h.HEAP32=J=new Int32Array(e),h.HEAPU8=Y=new Uint8Array(e),h.HEAPU16=new Uint16Array(e),h.HEAPU32=Z=new Uint32Array(e),h.HEAPF32=new Float32Array(e),h.HEAPF64=new Float64Array(e)}var re=6584208,ie=1341328,ne=6584208,ae=1341168;N(re%16==0,"stack must start aligned"),N(ne%16==0,"heap must start aligned");var oe=5242880;h.TOTAL_STACK&&N(oe===h.TOTAL_STACK,"the stack size can no longer be determined at runtime");var se=h.TOTAL_MEMORY||67108864;function ue(){N(0==(3&ie)),Z[1+(ie>>2)]=34821223,Z[2+(ie>>2)]=2310721022,J[0]=1668509029}function de(){var e=Z[1+(ie>>2)],t=Z[2+(ie>>2)];34821223==e&&2310721022==t||Le("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x"+t.toString(16)+" "+e.toString(16)),1668509029!==J[0]&&Le("Runtime error: The application has corrupted its heap memory area (address zero)!")}function he(e){Le("Stack overflow! Attempted to allocate "+e+" bytes on the stack, but stack has only "+(ie-Jr()+e)+" bytes available!")}function le(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?h.dynCall_v(r):h.dynCall_vi(r,t.arg):r(void 0===t.arg?null:t.arg)}else t()}}Object.getOwnPropertyDescriptor(h,"TOTAL_MEMORY")||Object.defineProperty(h,"TOTAL_MEMORY",{configurable:!0,get:function(){Le("Module.TOTAL_MEMORY has been replaced with plain INITIAL_TOTAL_MEMORY")}}),N(se>=oe,"TOTAL_MEMORY should be larger than TOTAL_STACK, was "+se+"! (TOTAL_STACK="+oe+")"),N("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),(D=h.wasmMemory?h.wasmMemory:new WebAssembly.Memory({initial:se/$}))&&(G=D.buffer),N((se=G.byteLength)%$==0),te(G),J[ae>>2]=ne,function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian!"}();var fe=[],ce=[],pe=[],me=[],ge=!1,_e=!1;function ye(){if(h.preRun)for("function"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)Ae(h.preRun.shift());le(fe)}function be(){de(),N(!ge),ge=!0,h.noFSInit||ot.init.initialized||ot.init(),rt.init(),le(ce)}function ve(){de(),ot.ignorePermissions=!1,le(pe)}function we(){de(),_e=!0}function Ee(){if(de(),h.postRun)for("function"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;)Se(h.postRun.shift());le(me)}function Ae(e){fe.unshift(e)}function Se(e){me.unshift(e)}N(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),N(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),N(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),N(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var Me=Math.abs,Te=Math.ceil,Re=Math.floor,ke=Math.min,Ie=0,Oe=null,De=null,xe={};function Ce(e){for(var t=e;;){if(!xe[e])return e;e=t+Math.random()}return e}function Pe(e){Ie++,h.monitorRunDependencies&&h.monitorRunDependencies(Ie),e?(N(!xe[e]),xe[e]=1,null===Oe&&"undefined"!=typeof setInterval&&(Oe=setInterval((function(){if(P)return clearInterval(Oe),void(Oe=null);var e=!1;for(var t in xe)e||(e=!0,M("still waiting on run dependencies:")),M("dependency: "+t);e&&M("(end of list)")}),1e4))):M("warning: run dependency added without ID")}function Ne(e){if(Ie--,h.monitorRunDependencies&&h.monitorRunDependencies(Ie),e?(N(xe[e]),delete xe[e]):M("warning: run dependency removed without ID"),0==Ie&&(null!==Oe&&(clearInterval(Oe),Oe=null),De)){var t=De;De=null,t()}}function Le(e){throw h.onAbort&&h.onAbort(e),S(e+=""),M(e),P=!0,1,e="abort("+e+") at "+Qe(),new WebAssembly.RuntimeError(e)}h.preloadedImages={},h.preloadedAudios={};var Be="data:application/octet-stream;base64,";function Fe(e){return String.prototype.startsWith?e.startsWith(Be):0===e.indexOf(Be)}var Ue,je,He=d+"EasyPlayer.wasm";function Xe(){try{if(O)return new Uint8Array(O);if(b)return b(He);throw"both async and sync fetching of the wasm failed"}catch(e){Le(e)}}function We(){return O||!c&&!p||"function"!=typeof fetch?new Promise((function(e,t){e(Xe())})):fetch(He,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+He+"'";return e.arrayBuffer()})).catch((function(){return Xe()}))}function Ve(){var e={env:Dt,wasi_unstable:Dt};function t(e,t){var r=e.exports;h.asm=r,Ne("wasm-instantiate")}Pe("wasm-instantiate");var r=h;function i(e){N(h===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(e.instance)}function n(t){return We().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){M("failed to asynchronously prepare wasm: "+e),Le(e)}))}if(h.instantiateWasm)try{return h.instantiateWasm(e,t)}catch(e){return M("Module.instantiateWasm callback failed with error: "+e),!1}return function(){if(O||"function"!=typeof WebAssembly.instantiateStreaming||Fe(He)||"function"!=typeof fetch)return n(i);fetch(He,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(i,(function(e){M("wasm streaming compile failed: "+e),M("falling back to ArrayBuffer instantiation"),n(i)}))}))}(),{}}function ze(e){return T("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function qe(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t=ze(e);return e===t?e:t+" ["+e+"]"}))}function Ge(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function Qe(){var e=Ge();return h.extraStackTrace&&(e+="\n"+h.extraStackTrace()),qe(e)}function Ye(e){return Yr(e)}Fe(He)||(He=A(He)),ce.push({func:function(){Qr()}});var Ke={};function Je(e,t,r){throw Ke[e]={ptr:e,adjusted:[e],type:t,destructor:r,refcount:0,caught:!1,rethrown:!1},e,"uncaught_exception"in Kr?Kr.uncaught_exceptions++:Kr.uncaught_exceptions=1,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function Ze(){}function $e(e){return h.___errno_location?J[h.___errno_location()>>2]=e:M("failed to set errno from JS"),e}var et={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,i=e.length-1;i>=0;i--){var n=e[i];"."===n?e.splice(i,1):".."===n?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=et.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=et.splitPath(e),r=t[0],i=t[1];return r||i?(i&&(i=i.substr(0,i.length-1)),r+i):"."},basename:function(e){if("/"===e)return"/";var t=e.lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return et.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return et.normalize(e.join("/"))},join2:function(e,t){return et.normalize(e+"/"+t)}},tt={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var i=r>=0?arguments[r]:ot.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t="/"===i.charAt(0)}return(t?"/":"")+(e=et.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=tt.resolve(e).substr(1),t=tt.resolve(t).substr(1);for(var i=r(e.split("/")),n=r(t.split("/")),a=Math.min(i.length,n.length),o=a,s=0;s<a;s++)if(i[s]!==n[s]){o=s;break}var u=[];for(s=o;s<i.length;s++)u.push("..");return(u=u.concat(n.slice(o))).join("/")}},rt={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){rt.ttys[e]={input:[],output:[],ops:t},ot.registerDevice(e,rt.stream_ops)},stream_ops:{open:function(e){var t=rt.ttys[e.node.rdev];if(!t)throw new ot.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,t,r,i,n){if(!e.tty||!e.tty.ops.get_char)throw new ot.ErrnoError(60);for(var a=0,o=0;o<i;o++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new ot.ErrnoError(29)}if(void 0===s&&0===a)throw new ot.ErrnoError(6);if(null==s)break;a++,t[r+o]=s}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,i,n){if(!e.tty||!e.tty.ops.put_char)throw new ot.ErrnoError(60);try{for(var a=0;a<i;a++)e.tty.ops.put_char(e.tty,t[r+a])}catch(e){throw new ot.ErrnoError(29)}return i&&(e.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:function(t){if(!t.input.length){var r=null;if(m){var i=a.alloc?a.alloc(256):new a(256),n=0;try{n=v.readSync(e.stdin.fd,i,0,256,null)}catch(e){if(-1==e.toString().indexOf("EOF"))throw e;n=0}r=n>0?i.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\n");if(!r)return null;t.input=Ot(r,!0)}return t.input.shift()},put_char:function(e,t){null===t||10===t?e.output=[]:0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(M(j(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(M(j(e.output,0)),e.output=[])}}},it={ops_table:null,mount:function(e){return it.createNode(null,"/",16895,0)},createNode:function(e,t,r,i){if(ot.isBlkdev(r)||ot.isFIFO(r))throw new ot.ErrnoError(63);it.ops_table||(it.ops_table={dir:{node:{getattr:it.node_ops.getattr,setattr:it.node_ops.setattr,lookup:it.node_ops.lookup,mknod:it.node_ops.mknod,rename:it.node_ops.rename,unlink:it.node_ops.unlink,rmdir:it.node_ops.rmdir,readdir:it.node_ops.readdir,symlink:it.node_ops.symlink},stream:{llseek:it.stream_ops.llseek}},file:{node:{getattr:it.node_ops.getattr,setattr:it.node_ops.setattr},stream:{llseek:it.stream_ops.llseek,read:it.stream_ops.read,write:it.stream_ops.write,allocate:it.stream_ops.allocate,mmap:it.stream_ops.mmap,msync:it.stream_ops.msync}},link:{node:{getattr:it.node_ops.getattr,setattr:it.node_ops.setattr,readlink:it.node_ops.readlink},stream:{}},chrdev:{node:{getattr:it.node_ops.getattr,setattr:it.node_ops.setattr},stream:ot.chrdev_stream_ops}});var n=ot.createNode(e,t,r,i);return ot.isDir(n.mode)?(n.node_ops=it.ops_table.dir.node,n.stream_ops=it.ops_table.dir.stream,n.contents={}):ot.isFile(n.mode)?(n.node_ops=it.ops_table.file.node,n.stream_ops=it.ops_table.file.stream,n.usedBytes=0,n.contents=null):ot.isLink(n.mode)?(n.node_ops=it.ops_table.link.node,n.stream_ops=it.ops_table.link.stream):ot.isChrdev(n.mode)&&(n.node_ops=it.ops_table.chrdev.node,n.stream_ops=it.ops_table.chrdev.stream),n.timestamp=Date.now(),e&&(e.contents[t]=n),n},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var t=[],r=0;r<e.usedBytes;++r)t.push(e.contents[r]);return t}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array},expandFileStorage:function(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)|0),0!=r&&(t=Math.max(t,256));var i=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(i.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t){if(0==t)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var r=e.contents;return e.contents=new Uint8Array(new ArrayBuffer(t)),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),void(e.usedBytes=t)}if(e.contents||(e.contents=[]),e.contents.length>t)e.contents.length=t;else for(;e.contents.length<t;)e.contents.push(0);e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=ot.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,ot.isDir(e.mode)?t.size=4096:ot.isFile(e.mode)?t.size=e.usedBytes:ot.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&it.resizeFileStorage(e,t.size)},lookup:function(e,t){throw ot.genericErrors[44]},mknod:function(e,t,r,i){return it.createNode(e,t,r,i)},rename:function(e,t,r){if(ot.isDir(e.mode)){var i;try{i=ot.lookupNode(t,r)}catch(e){}if(i)for(var n in i.contents)throw new ot.ErrnoError(55)}delete e.parent.contents[e.name],e.name=r,t.contents[r]=e,e.parent=t},unlink:function(e,t){delete e.contents[t]},rmdir:function(e,t){var r=ot.lookupNode(e,t);for(var i in r.contents)throw new ot.ErrnoError(55);delete e.contents[t]},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){var i=it.createNode(e,t,41471,0);return i.link=r,i},readlink:function(e){if(!ot.isLink(e.mode))throw new ot.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,i,n){var a=e.node.contents;if(n>=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-n,i);if(N(o>=0),o>8&&a.subarray)t.set(a.subarray(n,n+o),r);else for(var s=0;s<o;s++)t[r+s]=a[n+s];return o},write:function(e,t,r,i,n,a){if(a&&T("file packager has copied file data into memory, but in memory growth we are forced to copy it again (see --no-heap-copy)"),a=!1,!i)return 0;var o=e.node;if(o.timestamp=Date.now(),t.subarray&&(!o.contents||o.contents.subarray)){if(a)return N(0===n,"canOwn must imply no weird position inside the file"),o.contents=t.subarray(r,r+i),o.usedBytes=i,i;if(0===o.usedBytes&&0===n)return o.contents=new Uint8Array(t.subarray(r,r+i)),o.usedBytes=i,i;if(n+i<=o.usedBytes)return o.contents.set(t.subarray(r,r+i),n),i}if(it.expandFileStorage(o,n+i),o.contents.subarray&&t.subarray)o.contents.set(t.subarray(r,r+i),n);else for(var s=0;s<i;s++)o.contents[n+s]=t[r+s];return o.usedBytes=Math.max(o.usedBytes,n+i),i},llseek:function(e,t,r){var i=t;if(1===r?i+=e.position:2===r&&ot.isFile(e.node.mode)&&(i+=e.node.usedBytes),i<0)throw new ot.ErrnoError(28);return i},allocate:function(e,t,r){it.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,i,n,a,o){if(!ot.isFile(e.node.mode))throw new ot.ErrnoError(43);var s,u,d=e.node.contents;if(2&o||d.buffer!==t&&d.buffer!==t.buffer){(n>0||n+i<e.node.usedBytes)&&(d=d.subarray?d.subarray(n,n+i):Array.prototype.slice.call(d,n,n+i)),u=!0;var h=t.buffer==Q.buffer;if(!(s=Yr(i)))throw new ot.ErrnoError(48);(h?Q:t).set(d,s)}else u=!1,s=d.byteOffset;return{ptr:s,allocated:u}},msync:function(e,t,r,i,n){if(!ot.isFile(e.node.mode))throw new ot.ErrnoError(43);if(2&n)return 0;it.stream_ops.write(e,t,0,i,r,!1);return 0}}},nt={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},at={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},ot={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof ot.ErrnoError))throw e+" : "+Qe();return $e(e.errno)},lookupPath:function(e,t){if(t=t||{},!(e=tt.resolve(ot.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var i in r)void 0===t[i]&&(t[i]=r[i]);if(t.recurse_count>8)throw new ot.ErrnoError(32);for(var n=et.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),a=ot.root,o="/",s=0;s<n.length;s++){var u=s===n.length-1;if(u&&t.parent)break;if(a=ot.lookupNode(a,n[s]),o=et.join2(o,n[s]),ot.isMountpoint(a)&&(!u||u&&t.follow_mount)&&(a=a.mounted.root),!u||t.follow)for(var d=0;ot.isLink(a.mode);){var h=ot.readlink(o);if(o=tt.resolve(et.dirname(o),h),a=ot.lookupPath(o,{recurse_count:t.recurse_count}).node,d++>40)throw new ot.ErrnoError(32)}}return{path:o,node:a}},getPath:function(e){for(var t;;){if(ot.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?r+"/"+t:r+t:r}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var r=0,i=0;i<t.length;i++)r=(r<<5)-r+t.charCodeAt(i)|0;return(e+r>>>0)%ot.nameTable.length},hashAddNode:function(e){var t=ot.hashName(e.parent.id,e.name);e.name_next=ot.nameTable[t],ot.nameTable[t]=e},hashRemoveNode:function(e){var t=ot.hashName(e.parent.id,e.name);if(ot.nameTable[t]===e)ot.nameTable[t]=e.name_next;else for(var r=ot.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,t){var r=ot.mayLookup(e);if(r)throw new ot.ErrnoError(r,e);for(var i=ot.hashName(e.id,t),n=ot.nameTable[i];n;n=n.name_next){var a=n.name;if(n.parent.id===e.id&&a===t)return n}return ot.lookup(e,t)},createNode:function(e,t,r,i){if(!ot.FSNode){ot.FSNode=function(e,t,r,i){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=ot.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=i},ot.FSNode.prototype={};Object.defineProperties(ot.FSNode.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return ot.isDir(this.mode)}},isDevice:{get:function(){return ot.isChrdev(this.mode)}}})}var n=new ot.FSNode(e,t,r,i);return ot.hashAddNode(n),n},destroyNode:function(e){ot.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var t=ot.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return ot.ignorePermissions||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var t=ot.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{ot.lookupNode(e,t);return 20}catch(e){}return ot.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var i;try{i=ot.lookupNode(e,t)}catch(e){return e.errno}var n=ot.nodePermissions(e,"wx");if(n)return n;if(r){if(!ot.isDir(i.mode))return 54;if(ot.isRoot(i)||ot.getPath(i)===ot.cwd())return 10}else if(ot.isDir(i.mode))return 31;return 0},mayOpen:function(e,t){return e?ot.isLink(e.mode)?32:ot.isDir(e.mode)&&("r"!==ot.flagsToPermissionString(t)||512&t)?31:ot.nodePermissions(e,ot.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||ot.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!ot.streams[r])return r;throw new ot.ErrnoError(33)},getStream:function(e){return ot.streams[e]},createStream:function(e,t,r){ot.FSStream||(ot.FSStream=function(){},ot.FSStream.prototype={},Object.defineProperties(ot.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var i=new ot.FSStream;for(var n in e)i[n]=e[n];e=i;var a=ot.nextfd(t,r);return e.fd=a,ot.streams[a]=e,e},closeStream:function(e){ot.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=ot.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new ot.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){ot.devices[e]={stream_ops:t}},getDevice:function(e){return ot.devices[e]},getMounts:function(e){for(var t=[],r=[e];r.length;){var i=r.pop();t.push(i),r.push.apply(r,i.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),ot.syncFSRequests++,ot.syncFSRequests>1&&console.log("warning: "+ot.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=ot.getMounts(ot.root.mount),i=0;function n(e){return N(ot.syncFSRequests>0),ot.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,n(e));++i>=r.length&&n(null)}r.forEach((function(t){if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)}))},mount:function(e,t,r){if("string"==typeof e)throw e;var i,n="/"===r,a=!r;if(n&&ot.root)throw new ot.ErrnoError(10);if(!n&&!a){var o=ot.lookupPath(r,{follow_mount:!1});if(r=o.path,i=o.node,ot.isMountpoint(i))throw new ot.ErrnoError(10);if(!ot.isDir(i.mode))throw new ot.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},u=e.mount(s);return u.mount=s,s.root=u,n?ot.root=u:i&&(i.mounted=s,i.mount&&i.mount.mounts.push(s)),u},unmount:function(e){var t=ot.lookupPath(e,{follow_mount:!1});if(!ot.isMountpoint(t.node))throw new ot.ErrnoError(28);var r=t.node,i=r.mounted,n=ot.getMounts(i);Object.keys(ot.nameTable).forEach((function(e){for(var t=ot.nameTable[e];t;){var r=t.name_next;-1!==n.indexOf(t.mount)&&ot.destroyNode(t),t=r}})),r.mounted=null;var a=r.mount.mounts.indexOf(i);N(-1!==a),r.mount.mounts.splice(a,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var i=ot.lookupPath(e,{parent:!0}).node,n=et.basename(e);if(!n||"."===n||".."===n)throw new ot.ErrnoError(28);var a=ot.mayCreate(i,n);if(a)throw new ot.ErrnoError(a);if(!i.node_ops.mknod)throw new ot.ErrnoError(63);return i.node_ops.mknod(i,n,t,r)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,ot.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,ot.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),i="",n=0;n<r.length;++n)if(r[n]){i+="/"+r[n];try{ot.mkdir(i,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,t,r){return void 0===r&&(r=t,t=438),t|=8192,ot.mknod(e,t,r)},symlink:function(e,t){if(!tt.resolve(e))throw new ot.ErrnoError(44);var r=ot.lookupPath(t,{parent:!0}).node;if(!r)throw new ot.ErrnoError(44);var i=et.basename(t),n=ot.mayCreate(r,i);if(n)throw new ot.ErrnoError(n);if(!r.node_ops.symlink)throw new ot.ErrnoError(63);return r.node_ops.symlink(r,i,e)},rename:function(e,t){var r,i,n=et.dirname(e),a=et.dirname(t),o=et.basename(e),s=et.basename(t);try{r=ot.lookupPath(e,{parent:!0}).node,i=ot.lookupPath(t,{parent:!0}).node}catch(e){throw new ot.ErrnoError(10)}if(!r||!i)throw new ot.ErrnoError(44);if(r.mount!==i.mount)throw new ot.ErrnoError(75);var u,d=ot.lookupNode(r,o),h=tt.relative(e,a);if("."!==h.charAt(0))throw new ot.ErrnoError(28);if("."!==(h=tt.relative(t,n)).charAt(0))throw new ot.ErrnoError(55);try{u=ot.lookupNode(i,s)}catch(e){}if(d!==u){var l=ot.isDir(d.mode),f=ot.mayDelete(r,o,l);if(f)throw new ot.ErrnoError(f);if(f=u?ot.mayDelete(i,s,l):ot.mayCreate(i,s))throw new ot.ErrnoError(f);if(!r.node_ops.rename)throw new ot.ErrnoError(63);if(ot.isMountpoint(d)||u&&ot.isMountpoint(u))throw new ot.ErrnoError(10);if(i!==r&&(f=ot.nodePermissions(r,"w")))throw new ot.ErrnoError(f);try{ot.trackingDelegate.willMovePath&&ot.trackingDelegate.willMovePath(e,t)}catch(r){console.log("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}ot.hashRemoveNode(d);try{r.node_ops.rename(d,i,s)}catch(e){throw e}finally{ot.hashAddNode(d)}try{ot.trackingDelegate.onMovePath&&ot.trackingDelegate.onMovePath(e,t)}catch(r){console.log("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=ot.lookupPath(e,{parent:!0}).node,r=et.basename(e),i=ot.lookupNode(t,r),n=ot.mayDelete(t,r,!0);if(n)throw new ot.ErrnoError(n);if(!t.node_ops.rmdir)throw new ot.ErrnoError(63);if(ot.isMountpoint(i))throw new ot.ErrnoError(10);try{ot.trackingDelegate.willDeletePath&&ot.trackingDelegate.willDeletePath(e)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),ot.destroyNode(i);try{ot.trackingDelegate.onDeletePath&&ot.trackingDelegate.onDeletePath(e)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=ot.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new ot.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=ot.lookupPath(e,{parent:!0}).node,r=et.basename(e),i=ot.lookupNode(t,r),n=ot.mayDelete(t,r,!1);if(n)throw new ot.ErrnoError(n);if(!t.node_ops.unlink)throw new ot.ErrnoError(63);if(ot.isMountpoint(i))throw new ot.ErrnoError(10);try{ot.trackingDelegate.willDeletePath&&ot.trackingDelegate.willDeletePath(e)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),ot.destroyNode(i);try{ot.trackingDelegate.onDeletePath&&ot.trackingDelegate.onDeletePath(e)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=ot.lookupPath(e).node;if(!t)throw new ot.ErrnoError(44);if(!t.node_ops.readlink)throw new ot.ErrnoError(28);return tt.resolve(ot.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=ot.lookupPath(e,{follow:!t}).node;if(!r)throw new ot.ErrnoError(44);if(!r.node_ops.getattr)throw new ot.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return ot.stat(e,!0)},chmod:function(e,t,r){var i;"string"==typeof e?i=ot.lookupPath(e,{follow:!r}).node:i=e;if(!i.node_ops.setattr)throw new ot.ErrnoError(63);i.node_ops.setattr(i,{mode:4095&t|-4096&i.mode,timestamp:Date.now()})},lchmod:function(e,t){ot.chmod(e,t,!0)},fchmod:function(e,t){var r=ot.getStream(e);if(!r)throw new ot.ErrnoError(8);ot.chmod(r.node,t)},chown:function(e,t,r,i){var n;"string"==typeof e?n=ot.lookupPath(e,{follow:!i}).node:n=e;if(!n.node_ops.setattr)throw new ot.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,t,r){ot.chown(e,t,r,!0)},fchown:function(e,t,r){var i=ot.getStream(e);if(!i)throw new ot.ErrnoError(8);ot.chown(i.node,t,r)},truncate:function(e,t){if(t<0)throw new ot.ErrnoError(28);var r;"string"==typeof e?r=ot.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new ot.ErrnoError(63);if(ot.isDir(r.mode))throw new ot.ErrnoError(31);if(!ot.isFile(r.mode))throw new ot.ErrnoError(28);var i=ot.nodePermissions(r,"w");if(i)throw new ot.ErrnoError(i);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=ot.getStream(e);if(!r)throw new ot.ErrnoError(8);if(0==(2097155&r.flags))throw new ot.ErrnoError(28);ot.truncate(r.node,t)},utime:function(e,t,r){var i=ot.lookupPath(e,{follow:!0}).node;i.node_ops.setattr(i,{timestamp:Math.max(t,r)})},open:function(e,t,r,i,n){if(""===e)throw new ot.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?ot.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)a=e;else{e=et.normalize(e);try{a=ot.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var o=!1;if(64&t)if(a){if(128&t)throw new ot.ErrnoError(20)}else a=ot.mknod(e,r,0),o=!0;if(!a)throw new ot.ErrnoError(44);if(ot.isChrdev(a.mode)&&(t&=-513),65536&t&&!ot.isDir(a.mode))throw new ot.ErrnoError(54);if(!o){var s=ot.mayOpen(a,t);if(s)throw new ot.ErrnoError(s)}512&t&&ot.truncate(a,0),t&=-641;var u=ot.createStream({node:a,path:ot.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},i,n);u.stream_ops.open&&u.stream_ops.open(u),!h.logReadFiles||1&t||(ot.readFiles||(ot.readFiles={}),e in ot.readFiles||(ot.readFiles[e]=1,console.log("FS.trackingDelegate error on read file: "+e)));try{if(ot.trackingDelegate.onOpenFile){var d=0;1!=(2097155&t)&&(d|=ot.tracking.openFlags.READ),0!=(2097155&t)&&(d|=ot.tracking.openFlags.WRITE),ot.trackingDelegate.onOpenFile(e,d)}}catch(t){console.log("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return u},close:function(e){if(ot.isClosed(e))throw new ot.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{ot.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(ot.isClosed(e))throw new ot.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new ot.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new ot.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:function(e,t,r,i,n){if(i<0||n<0)throw new ot.ErrnoError(28);if(ot.isClosed(e))throw new ot.ErrnoError(8);if(1==(2097155&e.flags))throw new ot.ErrnoError(8);if(ot.isDir(e.node.mode))throw new ot.ErrnoError(31);if(!e.stream_ops.read)throw new ot.ErrnoError(28);var a=void 0!==n;if(a){if(!e.seekable)throw new ot.ErrnoError(70)}else n=e.position;var o=e.stream_ops.read(e,t,r,i,n);return a||(e.position+=o),o},write:function(e,t,r,i,n,a){if(i<0||n<0)throw new ot.ErrnoError(28);if(ot.isClosed(e))throw new ot.ErrnoError(8);if(0==(2097155&e.flags))throw new ot.ErrnoError(8);if(ot.isDir(e.node.mode))throw new ot.ErrnoError(31);if(!e.stream_ops.write)throw new ot.ErrnoError(28);1024&e.flags&&ot.llseek(e,0,2);var o=void 0!==n;if(o){if(!e.seekable)throw new ot.ErrnoError(70)}else n=e.position;var s=e.stream_ops.write(e,t,r,i,n,a);o||(e.position+=s);try{e.path&&ot.trackingDelegate.onWriteToFile&&ot.trackingDelegate.onWriteToFile(e.path)}catch(t){console.log("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return s},allocate:function(e,t,r){if(ot.isClosed(e))throw new ot.ErrnoError(8);if(t<0||r<=0)throw new ot.ErrnoError(28);if(0==(2097155&e.flags))throw new ot.ErrnoError(8);if(!ot.isFile(e.node.mode)&&!ot.isDir(e.node.mode))throw new ot.ErrnoError(43);if(!e.stream_ops.allocate)throw new ot.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:function(e,t,r,i,n,a,o){if(0!=(2&a)&&0==(2&o)&&2!=(2097155&e.flags))throw new ot.ErrnoError(2);if(1==(2097155&e.flags))throw new ot.ErrnoError(2);if(!e.stream_ops.mmap)throw new ot.ErrnoError(43);return e.stream_ops.mmap(e,t,r,i,n,a,o)},msync:function(e,t,r,i,n){return e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,i,n):0},munmap:function(e){return 0},ioctl:function(e,t,r){if(!e.stream_ops.ioctl)throw new ot.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:function(e,t){if((t=t||{}).flags=t.flags||"r",t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var r,i=ot.open(e,t.flags),n=ot.stat(e).size,a=new Uint8Array(n);return ot.read(i,a,0,n,0),"utf8"===t.encoding?r=j(a,0):"binary"===t.encoding&&(r=a),ot.close(i),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||"w";var i=ot.open(e,r.flags,r.mode);if("string"==typeof t){var n=new Uint8Array(V(t)+1),a=X(t,n,0,n.length);ot.write(i,n,0,a,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");ot.write(i,t,0,t.byteLength,void 0,r.canOwn)}ot.close(i)},cwd:function(){return ot.currentPath},chdir:function(e){var t=ot.lookupPath(e,{follow:!0});if(null===t.node)throw new ot.ErrnoError(44);if(!ot.isDir(t.node.mode))throw new ot.ErrnoError(54);var r=ot.nodePermissions(t.node,"x");if(r)throw new ot.ErrnoError(r);ot.currentPath=t.path},createDefaultDirectories:function(){ot.mkdir("/tmp"),ot.mkdir("/home"),ot.mkdir("/home/web_user")},createDefaultDevices:function(){var e;if(ot.mkdir("/dev"),ot.registerDevice(ot.makedev(1,3),{read:function(){return 0},write:function(e,t,r,i,n){return i}}),ot.mkdev("/dev/null",ot.makedev(1,3)),rt.register(ot.makedev(5,0),rt.default_tty_ops),rt.register(ot.makedev(6,0),rt.default_tty1_ops),ot.mkdev("/dev/tty",ot.makedev(5,0)),ot.mkdev("/dev/tty1",ot.makedev(6,0)),"object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);e=function(){return crypto.getRandomValues(t),t[0]}}else if(m)try{var i=r(71);e=function(){return i.randomBytes(1)[0]}}catch(e){}e||(e=function(){Le("no cryptographic support found for random_device. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}),ot.createDevice("/dev","random",e),ot.createDevice("/dev","urandom",e),ot.mkdir("/dev/shm"),ot.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){ot.mkdir("/proc"),ot.mkdir("/proc/self"),ot.mkdir("/proc/self/fd"),ot.mount({mount:function(){var e=ot.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,t){var r=+t,i=ot.getStream(r);if(!i)throw new ot.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return i.path}}};return n.parent=n,n}},e}},{},"/proc/self/fd")},createStandardStreams:function(){h.stdin?ot.createDevice("/dev","stdin",h.stdin):ot.symlink("/dev/tty","/dev/stdin"),h.stdout?ot.createDevice("/dev","stdout",null,h.stdout):ot.symlink("/dev/tty","/dev/stdout"),h.stderr?ot.createDevice("/dev","stderr",null,h.stderr):ot.symlink("/dev/tty1","/dev/stderr");var e=ot.open("/dev/stdin","r"),t=ot.open("/dev/stdout","w"),r=ot.open("/dev/stderr","w");N(0===e.fd,"invalid handle for stdin ("+e.fd+")"),N(1===t.fd,"invalid handle for stdout ("+t.fd+")"),N(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){ot.ErrnoError||(ot.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,at)if(at[t]===e){this.code=t;break}},this.setErrno(e),this.message=nt[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=qe(this.stack))},ot.ErrnoError.prototype=new Error,ot.ErrnoError.prototype.constructor=ot.ErrnoError,[44].forEach((function(e){ot.genericErrors[e]=new ot.ErrnoError(e),ot.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){ot.ensureErrnoError(),ot.nameTable=new Array(4096),ot.mount(it,{},"/"),ot.createDefaultDirectories(),ot.createDefaultDevices(),ot.createSpecialDirectories(),ot.filesystems={MEMFS:it}},init:function(e,t,r){N(!ot.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),ot.init.initialized=!0,ot.ensureErrnoError(),h.stdin=e||h.stdin,h.stdout=t||h.stdout,h.stderr=r||h.stderr,ot.createStandardStreams()},quit:function(){ot.init.initialized=!1;var e=h._fflush;e&&e(0);for(var t=0;t<ot.streams.length;t++){var r=ot.streams[t];r&&ot.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},joinPath:function(e,t){var r=et.join.apply(null,e);return t&&"/"==r[0]&&(r=r.substr(1)),r},absolutePath:function(e,t){return tt.resolve(t,e)},standardizePath:function(e){return et.normalize(e)},findObject:function(e,t){var r=ot.analyzePath(e,t);return r.exists?r.object:($e(r.error),null)},analyzePath:function(e,t){try{e=(i=ot.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var i=ot.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=i.path,r.parentObject=i.node,r.name=et.basename(e),i=ot.lookupPath(e,{follow:!t}),r.exists=!0,r.path=i.path,r.object=i.node,r.name=i.node.name,r.isRoot="/"===i.path}catch(e){r.error=e.errno}return r},createFolder:function(e,t,r,i){var n=et.join2("string"==typeof e?e:ot.getPath(e),t),a=ot.getMode(r,i);return ot.mkdir(n,a)},createPath:function(e,t,r,i){e="string"==typeof e?e:ot.getPath(e);for(var n=t.split("/").reverse();n.length;){var a=n.pop();if(a){var o=et.join2(e,a);try{ot.mkdir(o)}catch(e){}e=o}}return o},createFile:function(e,t,r,i,n){var a=et.join2("string"==typeof e?e:ot.getPath(e),t),o=ot.getMode(i,n);return ot.create(a,o)},createDataFile:function(e,t,r,i,n,a){var o=t?et.join2("string"==typeof e?e:ot.getPath(e),t):e,s=ot.getMode(i,n),u=ot.create(o,s);if(r){if("string"==typeof r){for(var d=new Array(r.length),h=0,l=r.length;h<l;++h)d[h]=r.charCodeAt(h);r=d}ot.chmod(u,146|s);var f=ot.open(u,"w");ot.write(f,r,0,r.length,0,a),ot.close(f),ot.chmod(u,s)}return u},createDevice:function(e,t,r,i){var n=et.join2("string"==typeof e?e:ot.getPath(e),t),a=ot.getMode(!!r,!!i);ot.createDevice.major||(ot.createDevice.major=64);var o=ot.makedev(ot.createDevice.major++,0);return ot.registerDevice(o,{open:function(e){e.seekable=!1},close:function(e){i&&i.buffer&&i.buffer.length&&i(10)},read:function(e,t,i,n,a){for(var o=0,s=0;s<n;s++){var u;try{u=r()}catch(e){throw new ot.ErrnoError(29)}if(void 0===u&&0===o)throw new ot.ErrnoError(6);if(null==u)break;o++,t[i+s]=u}return o&&(e.node.timestamp=Date.now()),o},write:function(e,t,r,n,a){for(var o=0;o<n;o++)try{i(t[r+o])}catch(e){throw new ot.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),o}}),ot.mkdev(n,a,o)},createLink:function(e,t,r,i,n){var a=et.join2("string"==typeof e?e:ot.getPath(e),t);return ot.symlink(r,a)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var t=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!y)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=Ot(y(e.url),!0),e.usedBytes=e.contents.length}catch(e){t=!1}return t||$e(29),t},createLazyFile:function(e,t,r,i,n){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,i=Number(e.getResponseHeader("Content-length")),n=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,o=1048576;n||(o=i);var s=this;s.setDataGetter((function(e){var t=e*o,n=(e+1)*o-1;if(n=Math.min(n,i-1),void 0===s.chunks[e]&&(s.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>i-1)throw new Error("only "+i+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",r,!1),i!==o&&n.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(n.responseType="arraybuffer"),n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+r+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):Ot(n.responseText||"",!0)}(t,n)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!a&&i||(o=i=1,i=this.getter(0).length,o=i,console.log("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=i,this._chunkSize=o,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!p)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o=new a;Object.defineProperties(o,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:o}}else s={isDevice:!1,url:r};var u=ot.createFile(e,t,s,i,n);s.contents?u.contents=s.contents:s.url&&(u.contents=null,u.url=s.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var d={};return Object.keys(u.stream_ops).forEach((function(e){var t=u.stream_ops[e];d[e]=function(){if(!ot.forceLoadFile(u))throw new ot.ErrnoError(29);return t.apply(null,arguments)}})),d.read=function(e,t,r,i,n){if(!ot.forceLoadFile(u))throw new ot.ErrnoError(29);var a=e.node.contents;if(n>=a.length)return 0;var o=Math.min(a.length-n,i);if(N(o>=0),a.slice)for(var s=0;s<o;s++)t[r+s]=a[n+s];else for(s=0;s<o;s++)t[r+s]=a.get(n+s);return o},u.stream_ops=d,u},createPreloadedFile:function(e,t,r,i,n,a,o,s,u,d){Browser.init();var l=t?tt.resolve(et.join2(e,t)):e,f=Ce("cp "+l);function c(r){function c(r){d&&d(),s||ot.createDataFile(e,t,r,i,n,u),a&&a(),Ne(f)}var p=!1;h.preloadPlugins.forEach((function(e){p||e.canHandle(l)&&(e.handle(r,l,c,(function(){o&&o(),Ne(f)})),p=!0)})),p||c(r)}Pe(f),"string"==typeof r?Browser.asyncLoad(r,(function(e){c(e)}),o):c(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var i=ot.indexedDB();try{var n=i.open(ot.DB_NAME(),ot.DB_VERSION)}catch(e){return r(e)}n.onupgradeneeded=function(){console.log("creating db"),n.result.createObjectStore(ot.DB_STORE_NAME)},n.onsuccess=function(){var i=n.result.transaction([ot.DB_STORE_NAME],"readwrite"),a=i.objectStore(ot.DB_STORE_NAME),o=0,s=0,u=e.length;function d(){0==s?t():r()}e.forEach((function(e){var t=a.put(ot.analyzePath(e).object.contents,e);t.onsuccess=function(){++o+s==u&&d()},t.onerror=function(){s++,o+s==u&&d()}})),i.onerror=r},n.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var i=ot.indexedDB();try{var n=i.open(ot.DB_NAME(),ot.DB_VERSION)}catch(e){return r(e)}n.onupgradeneeded=r,n.onsuccess=function(){var i=n.result;try{var a=i.transaction([ot.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var o=a.objectStore(ot.DB_STORE_NAME),s=0,u=0,d=e.length;function h(){0==u?t():r()}e.forEach((function(e){var t=o.get(e);t.onsuccess=function(){ot.analyzePath(e).exists&&ot.unlink(e),ot.createDataFile(et.dirname(e),et.basename(e),t.result,!0,!0,!0),++s+u==d&&h()},t.onerror=function(){u++,s+u==d&&h()}})),a.onerror=r},n.onerror=r}},st={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(e,t){if("/"!==t[0]){var r;if(-100===e)r=ot.cwd();else{var i=ot.getStream(e);if(!i)throw new ot.ErrnoError(8);r=i.path}t=et.join2(r,t)}return t},doStat:function(e,t,r){try{var i=e(t)}catch(e){if(e&&e.node&&et.normalize(t)!==et.normalize(ot.getPath(e.node)))return-54;throw e}return J[r>>2]=i.dev,J[r+4>>2]=0,J[r+8>>2]=i.ino,J[r+12>>2]=i.mode,J[r+16>>2]=i.nlink,J[r+20>>2]=i.uid,J[r+24>>2]=i.gid,J[r+28>>2]=i.rdev,J[r+32>>2]=0,je=[i.size>>>0,(Ue=i.size,+Me(Ue)>=1?Ue>0?(0|ke(+Re(Ue/4294967296),4294967295))>>>0:~~+Te((Ue-+(~~Ue>>>0))/4294967296)>>>0:0)],J[r+40>>2]=je[0],J[r+44>>2]=je[1],J[r+48>>2]=4096,J[r+52>>2]=i.blocks,J[r+56>>2]=i.atime.getTime()/1e3|0,J[r+60>>2]=0,J[r+64>>2]=i.mtime.getTime()/1e3|0,J[r+68>>2]=0,J[r+72>>2]=i.ctime.getTime()/1e3|0,J[r+76>>2]=0,je=[i.ino>>>0,(Ue=i.ino,+Me(Ue)>=1?Ue>0?(0|ke(+Re(Ue/4294967296),4294967295))>>>0:~~+Te((Ue-+(~~Ue>>>0))/4294967296)>>>0:0)],J[r+80>>2]=je[0],J[r+84>>2]=je[1],0},doMsync:function(e,t,r,i){var n=new Uint8Array(Y.subarray(e,e+r));ot.msync(t,n,0,r,i)},doMkdir:function(e,t){return"/"===(e=et.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),ot.mkdir(e,t,0),0},doMknod:function(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return ot.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var i=ot.readlink(e),n=Math.min(r,V(i)),a=Q[t+n];return W(i,t,r+1),Q[t+n]=a,n},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=ot.lookupPath(e,{follow:!0}).node))return-44;var i="";return 4&t&&(i+="r"),2&t&&(i+="w"),1&t&&(i+="x"),i&&ot.nodePermissions(r,i)?-2:0},doDup:function(e,t,r){var i=ot.getStream(r);return i&&ot.close(i),ot.open(e,t,0,r,r).fd},doReadv:function(e,t,r,i){for(var n=0,a=0;a<r;a++){var o=J[t+8*a>>2],s=J[t+(8*a+4)>>2],u=ot.read(e,Q,o,s,i);if(u<0)return-1;if(n+=u,u<s)break}return n},doWritev:function(e,t,r,i){for(var n=0,a=0;a<r;a++){var o=J[t+8*a>>2],s=J[t+(8*a+4)>>2],u=ot.write(e,Q,o,s,i);if(u<0)return-1;n+=u}return n},varargs:0,get:function(e){return st.varargs+=4,J[st.varargs-4>>2]},getStr:function(){return H(st.get())},getStreamFromFD:function(e){void 0===e&&(e=st.get());var t=ot.getStream(e);if(!t)throw new ot.ErrnoError(8);return t},get64:function(){var e=st.get(),t=st.get();return N(e>=0?0===t:-1===t),e},getZero:function(){N(0===st.get())}};function ut(e,t){st.varargs=t;try{var r=st.getStreamFromFD();switch(st.get()){case 0:return(i=st.get())<0?-28:ot.open(r.path,r.flags,0,i).fd;case 1:case 2:return 0;case 3:return r.flags;case 4:var i=st.get();return r.flags|=i,0;case 12:i=st.get();return K[i+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return $e(28),-1;default:return-28}}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),-e.errno}}function dt(e,t){st.varargs=t;try{var r=st.getStreamFromFD(),i=st.get(),n=st.get();return ot.read(r,Q,i,n)}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),-e.errno}}function ht(e,t){st.varargs=t;try{var r=st.getStr(),i=st.get(),n=st.get();return ot.open(r,i,n).fd}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),-e.errno}}function lt(){}function ft(){Le()}function ct(){return void 0===ct.start&&(ct.start=Date.now()),1e3*(Date.now()-ct.start)|0}function pt(){return Q.length}function mt(e,t,r){Y.set(Y.subarray(t,t+r),e)}function gt(e){try{return D.grow(e-G.byteLength+65535>>16),te(D.buffer),1}catch(t){console.error("emscripten_realloc_buffer: Attempted to grow heap from "+G.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}function _t(e){var t=pt();N(e>t);if(e>2147418112)return M("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is 2147418112 bytes!"),!1;for(var r=Math.max(t,16777216);r<e;)(r=r<=536870912?ee(2*r,65536):Math.min(ee((3*r+2147483648)/4,65536),2147418112))===t&&T("Cannot ask for more memory since we reached the practical limit in browsers (which is just below 2GB), so the request would have failed. Requesting only "+Q.length);return!!gt(r)||(M("Failed to grow the heap from "+t+" bytes to "+r+" bytes, not enough memory!"),!1)}var yt={};function bt(){if(!bt.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l};for(var t in yt)e[t]=yt[t];var r=[];for(var t in e)r.push(t+"="+e[t]);bt.strings=r}return bt.strings}function vt(e,t){var r=bt(),i=0;return r.forEach((function(r,n){var a=t+i;J[e+4*n>>2]=a,q(r,a),i+=r.length+1})),0}function wt(e,t){var r=bt();J[e>>2]=r.length;var i=0;return r.forEach((function(e){i+=e.length+1})),J[t>>2]=i,0}function Et(e){try{var t=st.getStreamFromFD(e);return ot.close(t),0}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),e.errno}}function At(e,t){try{var r=st.getStreamFromFD(e),i=r.tty?2:ot.isDir(r.mode)?3:ot.isLink(r.mode)?7:4;return Q[t>>0]=i,0}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),e.errno}}function St(e,t,r,i,n){try{var a=st.getStreamFromFD(e),o=4294967296*r+(t>>>0);return o<=-9007199254740992||o>=9007199254740992?-61:(ot.llseek(a,o,i),je=[a.position>>>0,(Ue=a.position,+Me(Ue)>=1?Ue>0?(0|ke(+Re(Ue/4294967296),4294967295))>>>0:~~+Te((Ue-+(~~Ue>>>0))/4294967296)>>>0:0)],J[n>>2]=je[0],J[n+4>>2]=je[1],a.getdents&&0===o&&0===i&&(a.getdents=null),0)}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),e.errno}}function Mt(e,t,r,i){try{var n=st.getStreamFromFD(e),a=st.doWritev(n,t,r);return J[i>>2]=a,0}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),e.errno}}function Tt(e){var t=Date.now();return J[e>>2]=t/1e3|0,J[e+4>>2]=t%1e3*1e3|0,0}W("GMT",1341232,4);function Rt(e){return(e=+e)>=0?+Re(e+.5):+Te(e-.5)}function kt(e){x(0|e)}function It(e){var t=Date.now()/1e3|0;return e&&(J[e>>2]=t),t}function Ot(e,t,r){var i=r>0?r:V(e)+1,n=new Array(i),a=X(e,n,0,n.length);return t&&(n.length=a),n}ot.staticInit();var Dt={__cxa_allocate_exception:Ye,__cxa_throw:Je,__lock:Ze,__syscall221:ut,__syscall3:dt,__syscall5:ht,__unlock:lt,abort:ft,clock:ct,emscripten_memcpy_big:mt,emscripten_resize_heap:_t,environ_get:vt,environ_sizes_get:wt,fd_close:Et,fd_fdstat_get:At,fd_seek:St,fd_write:Mt,gettimeofday:Tt,memory:D,round:Rt,setTempRet0:kt,table:C,time:It},xt=Ve(),Ct=xt.__wasm_call_ctors;xt.__wasm_call_ctors=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ct.apply(null,arguments)};var Pt=xt.WasmDecoder_Check;xt.WasmDecoder_Check=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Pt.apply(null,arguments)};var Nt=xt.WasmDecoder_Init;xt.WasmDecoder_Init=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Nt.apply(null,arguments)};var Lt=xt.WasmDecoder_Deinit;xt.WasmDecoder_Deinit=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Lt.apply(null,arguments)};var Bt=xt.WasmDecoder_OpenChannel;xt.WasmDecoder_OpenChannel=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Bt.apply(null,arguments)};var Ft=xt.WasmDecoder_InputFlvStream;xt.WasmDecoder_InputFlvStream=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ft.apply(null,arguments)};var Ut=xt.WasmDecoder_GetFlvDecodeData;xt.WasmDecoder_GetFlvDecodeData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ut.apply(null,arguments)};var jt=xt.WasmDecoder_InputFlvStreamAndDecode;xt.WasmDecoder_InputFlvStreamAndDecode=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),jt.apply(null,arguments)};var Ht=xt.WasmDecoder_OpenVideoDecoder;xt.WasmDecoder_OpenVideoDecoder=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ht.apply(null,arguments)};var Xt=xt.WasmDecoder_OpenAudioDecoder;xt.WasmDecoder_OpenAudioDecoder=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Xt.apply(null,arguments)};var Wt=xt.WasmDecoder_DecodeVideoFrame;xt.WasmDecoder_DecodeVideoFrame=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Wt.apply(null,arguments)};var Vt=xt.WasmDecoder_DecodeAudioFrame;xt.WasmDecoder_DecodeAudioFrame=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Vt.apply(null,arguments)};var zt=xt.WasmDecoder_CloseChannel;xt.WasmDecoder_CloseChannel=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),zt.apply(null,arguments)};var qt=xt.WasmDecoder_ConvertFrame2Image;xt.WasmDecoder_ConvertFrame2Image=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),qt.apply(null,arguments)};var Gt=xt.WasmDecoder_ReleaseImageData;xt.WasmDecoder_ReleaseImageData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Gt.apply(null,arguments)};var Qt=xt.WasmDecoder_CreateMP4File;xt.WasmDecoder_CreateMP4File=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Qt.apply(null,arguments)};var Yt=xt.WasmDecoder_WriteData;xt.WasmDecoder_WriteData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Yt.apply(null,arguments)};var Kt=xt.WasmDecoder_ReleaseMP4File;xt.WasmDecoder_ReleaseMP4File=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Kt.apply(null,arguments)};var Jt=xt.main;xt.main=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Jt.apply(null,arguments)};var Zt=xt.free;xt.free=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Zt.apply(null,arguments)};var $t=xt.malloc;xt.malloc=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),$t.apply(null,arguments)};var er=xt.__errno_location;xt.__errno_location=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),er.apply(null,arguments)};var tr=xt.fflush;xt.fflush=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),tr.apply(null,arguments)};var rr=xt._get_tzname;xt._get_tzname=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),rr.apply(null,arguments)};var ir=xt._get_daylight;xt._get_daylight=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ir.apply(null,arguments)};var nr=xt._get_timezone;xt._get_timezone=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),nr.apply(null,arguments)};var ar=xt.setThrew;xt.setThrew=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ar.apply(null,arguments)};var or=xt._ZSt18uncaught_exceptionv;xt._ZSt18uncaught_exceptionv=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),or.apply(null,arguments)};var sr=xt.stackSave;xt.stackSave=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),sr.apply(null,arguments)};var ur=xt.stackAlloc;xt.stackAlloc=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ur.apply(null,arguments)};var dr=xt.stackRestore;xt.stackRestore=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),dr.apply(null,arguments)};var hr=xt.__growWasmMemory;xt.__growWasmMemory=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),hr.apply(null,arguments)};var lr=xt.dynCall_ii;xt.dynCall_ii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),lr.apply(null,arguments)};var fr=xt.dynCall_viiiii;xt.dynCall_viiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),fr.apply(null,arguments)};var cr=xt.dynCall_viiiiiifi;xt.dynCall_viiiiiifi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),cr.apply(null,arguments)};var pr=xt.dynCall_viiii;xt.dynCall_viiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),pr.apply(null,arguments)};var mr=xt.dynCall_viii;xt.dynCall_viii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),mr.apply(null,arguments)};var gr=xt.dynCall_iiiiiii;xt.dynCall_iiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),gr.apply(null,arguments)};var _r=xt.dynCall_iiiiii;xt.dynCall_iiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),_r.apply(null,arguments)};var yr=xt.dynCall_vii;xt.dynCall_vii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),yr.apply(null,arguments)};var br=xt.dynCall_iii;xt.dynCall_iii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),br.apply(null,arguments)};var vr=xt.dynCall_iiii;xt.dynCall_iiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),vr.apply(null,arguments)};var wr=xt.dynCall_viiiiii;xt.dynCall_viiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wr.apply(null,arguments)};var Er=xt.dynCall_viiiiiiiii;xt.dynCall_viiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Er.apply(null,arguments)};var Ar=xt.dynCall_viiiiiiii;xt.dynCall_viiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ar.apply(null,arguments)};var Sr=xt.dynCall_iiiii;xt.dynCall_iiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Sr.apply(null,arguments)};var Mr=xt.dynCall_viiiiiiiiiiiiii;xt.dynCall_viiiiiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Mr.apply(null,arguments)};var Tr=xt.dynCall_viiiiiiiiiii;xt.dynCall_viiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Tr.apply(null,arguments)};var Rr=xt.dynCall_viiiiiii;xt.dynCall_viiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Rr.apply(null,arguments)};var kr=xt.dynCall_viiiiiiiiiiii;xt.dynCall_viiiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),kr.apply(null,arguments)};var Ir=xt.dynCall_vi;xt.dynCall_vi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ir.apply(null,arguments)};var Or=xt.dynCall_iiiiiiiii;xt.dynCall_iiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Or.apply(null,arguments)};var Dr=xt.dynCall_viiiifii;xt.dynCall_viiiifii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Dr.apply(null,arguments)};var xr=xt.dynCall_fii;xt.dynCall_fii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),xr.apply(null,arguments)};var Cr=xt.dynCall_viiiiiiiiii;xt.dynCall_viiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Cr.apply(null,arguments)};var Pr=xt.dynCall_dd;xt.dynCall_dd=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Pr.apply(null,arguments)};var Nr=xt.dynCall_viifi;xt.dynCall_viifi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Nr.apply(null,arguments)};var Lr=xt.dynCall_fiii;xt.dynCall_fiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Lr.apply(null,arguments)};var Br=xt.dynCall_viidi;xt.dynCall_viidi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Br.apply(null,arguments)};var Fr=xt.dynCall_iiiiiiii;xt.dynCall_iiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Fr.apply(null,arguments)};var Ur=xt.dynCall_did;xt.dynCall_did=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ur.apply(null,arguments)};var jr=xt.dynCall_v;xt.dynCall_v=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),jr.apply(null,arguments)};var Hr=xt.dynCall_viiijj;xt.dynCall_viiijj=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Hr.apply(null,arguments)};var Xr=xt.dynCall_iiiiiiidiiddii;xt.dynCall_iiiiiiidiiddii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Xr.apply(null,arguments)};var Wr=xt.dynCall_jij;xt.dynCall_jij=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Wr.apply(null,arguments)};var Vr=xt.dynCall_jii;xt.dynCall_jii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Vr.apply(null,arguments)};var zr=xt.dynCall_jiji;xt.dynCall_jiji=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),zr.apply(null,arguments)};var qr=xt.dynCall_iidiiii;xt.dynCall_iidiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),qr.apply(null,arguments)},h.asm=xt;var Gr,Qr=h.___wasm_call_ctors=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.__wasm_call_ctors.apply(null,arguments)},Yr=(h._WasmDecoder_Check=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_Check.apply(null,arguments)},h._WasmDecoder_Init=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_Init.apply(null,arguments)},h._WasmDecoder_Deinit=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_Deinit.apply(null,arguments)},h._WasmDecoder_OpenChannel=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_OpenChannel.apply(null,arguments)},h._WasmDecoder_InputFlvStream=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_InputFlvStream.apply(null,arguments)},h._WasmDecoder_GetFlvDecodeData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_GetFlvDecodeData.apply(null,arguments)},h._WasmDecoder_InputFlvStreamAndDecode=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_InputFlvStreamAndDecode.apply(null,arguments)},h._WasmDecoder_OpenVideoDecoder=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_OpenVideoDecoder.apply(null,arguments)},h._WasmDecoder_OpenAudioDecoder=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_OpenAudioDecoder.apply(null,arguments)},h._WasmDecoder_DecodeVideoFrame=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_DecodeVideoFrame.apply(null,arguments)},h._WasmDecoder_DecodeAudioFrame=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_DecodeAudioFrame.apply(null,arguments)},h._WasmDecoder_CloseChannel=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_CloseChannel.apply(null,arguments)},h._WasmDecoder_ConvertFrame2Image=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_ConvertFrame2Image.apply(null,arguments)},h._WasmDecoder_ReleaseImageData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_ReleaseImageData.apply(null,arguments)},h._WasmDecoder_CreateMP4File=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_CreateMP4File.apply(null,arguments)},h._WasmDecoder_WriteData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_WriteData.apply(null,arguments)},h._WasmDecoder_ReleaseMP4File=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_ReleaseMP4File.apply(null,arguments)},h._main=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.main.apply(null,arguments)},h._free=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.free.apply(null,arguments)},h._malloc=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.malloc.apply(null,arguments)}),Kr=(h.___errno_location=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.__errno_location.apply(null,arguments)},h._fflush=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.fflush.apply(null,arguments)},h.__get_tzname=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm._get_tzname.apply(null,arguments)},h.__get_daylight=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm._get_daylight.apply(null,arguments)},h.__get_timezone=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm._get_timezone.apply(null,arguments)},h._setThrew=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.setThrew.apply(null,arguments)},h.__ZSt18uncaught_exceptionv=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm._ZSt18uncaught_exceptionv.apply(null,arguments)}),Jr=h.stackSave=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.stackSave.apply(null,arguments)},Zr=h.stackAlloc=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.stackAlloc.apply(null,arguments)},$r=h.stackRestore=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.stackRestore.apply(null,arguments)};h.__growWasmMemory=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.__growWasmMemory.apply(null,arguments)},h.dynCall_ii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_ii.apply(null,arguments)},h.dynCall_viiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiii.apply(null,arguments)},h.dynCall_viiiiiifi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiifi.apply(null,arguments)},h.dynCall_viiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiii.apply(null,arguments)},h.dynCall_viii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viii.apply(null,arguments)},h.dynCall_iiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiiiii.apply(null,arguments)},h.dynCall_iiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiiii.apply(null,arguments)},h.dynCall_vii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_vii.apply(null,arguments)},h.dynCall_iii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iii.apply(null,arguments)},h.dynCall_iiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiii.apply(null,arguments)},h.dynCall_viiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiii.apply(null,arguments)},h.dynCall_viiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiiii.apply(null,arguments)},h.dynCall_viiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiii.apply(null,arguments)},h.dynCall_iiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiii.apply(null,arguments)},h.dynCall_viiiiiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiiiiiiiii.apply(null,arguments)},h.dynCall_viiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiiiiii.apply(null,arguments)},h.dynCall_viiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiii.apply(null,arguments)},h.dynCall_viiiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiiiiiii.apply(null,arguments)},h.dynCall_vi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_vi.apply(null,arguments)},h.dynCall_iiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiiiiiii.apply(null,arguments)},h.dynCall_viiiifii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiifii.apply(null,arguments)},h.dynCall_fii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_fii.apply(null,arguments)},h.dynCall_viiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiiiii.apply(null,arguments)},h.dynCall_dd=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_dd.apply(null,arguments)},h.dynCall_viifi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viifi.apply(null,arguments)},h.dynCall_fiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_fiii.apply(null,arguments)},h.dynCall_viidi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viidi.apply(null,arguments)},h.dynCall_iiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiiiiii.apply(null,arguments)},h.dynCall_did=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_did.apply(null,arguments)},h.dynCall_v=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_v.apply(null,arguments)},h.dynCall_viiijj=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiijj.apply(null,arguments)},h.dynCall_iiiiiiidiiddii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiiiiidiiddii.apply(null,arguments)},h.dynCall_jij=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_jij.apply(null,arguments)},h.dynCall_jii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_jii.apply(null,arguments)},h.dynCall_jiji=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_jiji.apply(null,arguments)},h.dynCall_iidiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iidiiii.apply(null,arguments)};function ei(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}h.asm=xt,Object.getOwnPropertyDescriptor(h,"intArrayFromString")||(h.intArrayFromString=function(){Le("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"intArrayToString")||(h.intArrayToString=function(){Le("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),h.ccall=B,h.cwrap=F,Object.getOwnPropertyDescriptor(h,"setValue")||(h.setValue=function(){Le("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getValue")||(h.getValue=function(){Le("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"allocate")||(h.allocate=function(){Le("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getMemory")||(h.getMemory=function(){Le("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"AsciiToString")||(h.AsciiToString=function(){Le("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stringToAscii")||(h.stringToAscii=function(){Le("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"UTF8ArrayToString")||(h.UTF8ArrayToString=function(){Le("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"UTF8ToString")||(h.UTF8ToString=function(){Le("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stringToUTF8Array")||(h.stringToUTF8Array=function(){Le("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stringToUTF8")||(h.stringToUTF8=function(){Le("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"lengthBytesUTF8")||(h.lengthBytesUTF8=function(){Le("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"UTF16ToString")||(h.UTF16ToString=function(){Le("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stringToUTF16")||(h.stringToUTF16=function(){Le("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"lengthBytesUTF16")||(h.lengthBytesUTF16=function(){Le("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"UTF32ToString")||(h.UTF32ToString=function(){Le("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stringToUTF32")||(h.stringToUTF32=function(){Le("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"lengthBytesUTF32")||(h.lengthBytesUTF32=function(){Le("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"allocateUTF8")||(h.allocateUTF8=function(){Le("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stackTrace")||(h.stackTrace=function(){Le("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addOnPreRun")||(h.addOnPreRun=function(){Le("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addOnInit")||(h.addOnInit=function(){Le("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addOnPreMain")||(h.addOnPreMain=function(){Le("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addOnExit")||(h.addOnExit=function(){Le("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addOnPostRun")||(h.addOnPostRun=function(){Le("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"writeStringToMemory")||(h.writeStringToMemory=function(){Le("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"writeArrayToMemory")||(h.writeArrayToMemory=function(){Le("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"writeAsciiToMemory")||(h.writeAsciiToMemory=function(){Le("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addRunDependency")||(h.addRunDependency=function(){Le("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"removeRunDependency")||(h.removeRunDependency=function(){Le("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"ENV")||(h.ENV=function(){Le("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"FS")||(h.FS=function(){Le("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"FS_createFolder")||(h.FS_createFolder=function(){Le("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createPath")||(h.FS_createPath=function(){Le("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createDataFile")||(h.FS_createDataFile=function(){Le("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createPreloadedFile")||(h.FS_createPreloadedFile=function(){Le("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createLazyFile")||(h.FS_createLazyFile=function(){Le("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createLink")||(h.FS_createLink=function(){Le("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createDevice")||(h.FS_createDevice=function(){Le("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_unlink")||(h.FS_unlink=function(){Le("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"GL")||(h.GL=function(){Le("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"dynamicAlloc")||(h.dynamicAlloc=function(){Le("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"loadDynamicLibrary")||(h.loadDynamicLibrary=function(){Le("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"loadWebAssemblyModule")||(h.loadWebAssemblyModule=function(){Le("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getLEB")||(h.getLEB=function(){Le("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getFunctionTables")||(h.getFunctionTables=function(){Le("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"alignFunctionTables")||(h.alignFunctionTables=function(){Le("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"registerFunctions")||(h.registerFunctions=function(){Le("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),h.addFunction=I,Object.getOwnPropertyDescriptor(h,"removeFunction")||(h.removeFunction=function(){Le("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getFuncWrapper")||(h.getFuncWrapper=function(){Le("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"prettyPrint")||(h.prettyPrint=function(){Le("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"makeBigInt")||(h.makeBigInt=function(){Le("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"dynCall")||(h.dynCall=function(){Le("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getCompilerSetting")||(h.getCompilerSetting=function(){Le("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stackSave")||(h.stackSave=function(){Le("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stackRestore")||(h.stackRestore=function(){Le("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stackAlloc")||(h.stackAlloc=function(){Le("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"establishStackSpace")||(h.establishStackSpace=function(){Le("'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"print")||(h.print=function(){Le("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"printErr")||(h.printErr=function(){Le("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getTempRet0")||(h.getTempRet0=function(){Le("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"setTempRet0")||(h.setTempRet0=function(){Le("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),h.callMain=ti,Object.getOwnPropertyDescriptor(h,"abort")||(h.abort=function(){Le("'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"Pointer_stringify")||(h.Pointer_stringify=function(){Le("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"warnOnce")||(h.warnOnce=function(){Le("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),h.writeStackCookie=ue,h.checkStackCookie=de,h.abortStackOverflow=he,Object.getOwnPropertyDescriptor(h,"ALLOC_NORMAL")||Object.defineProperty(h,"ALLOC_NORMAL",{configurable:!0,get:function(){Le("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(h,"ALLOC_STACK")||Object.defineProperty(h,"ALLOC_STACK",{configurable:!0,get:function(){Le("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(h,"ALLOC_DYNAMIC")||Object.defineProperty(h,"ALLOC_DYNAMIC",{configurable:!0,get:function(){Le("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(h,"ALLOC_NONE")||Object.defineProperty(h,"ALLOC_NONE",{configurable:!0,get:function(){Le("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(h,"calledRun")||Object.defineProperty(h,"calledRun",{configurable:!0,get:function(){Le("'calledRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}});function ti(e){N(0==Ie,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'),N(0==fe.length,"cannot call main when preRun functions remain to be called");var t=h._main;try{ni(t(0,0),!0)}catch(e){if(e instanceof ei)return;if("SimulateInfiniteLoop"==e)return void(o=!0);var r=e;e&&"object"==typeof e&&e.stack&&(r=[e,e.stack]),M("exception thrown: "+r),f(1,e)}finally{!0}}function ri(e){function t(){Gr||(Gr=!0,P||(be(),ve(),h.onRuntimeInitialized&&h.onRuntimeInitialized(),ai&&ti(),Ee()))}e=e||u,Ie>0||(ue(),ye(),Ie>0||(h.setStatus?(h.setStatus("Running..."),setTimeout((function(){setTimeout((function(){h.setStatus("")}),1),t()}),1)):t(),de()))}function ii(){var e=S,t=M,r=!1;S=M=function(e){r=!0};try{var i=h._fflush;i&&i(0),["stdout","stderr"].forEach((function(e){var t=ot.analyzePath("/dev/"+e);if(t){var i=t.object.rdev,n=rt.ttys[i];n&&n.output&&n.output.length&&(r=!0)}}))}catch(e){}S=e,M=t,r&&T("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}function ni(e,t){ii(),t&&o&&0===e||(o?t||M("program exited (with status: "+e+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)"):(P=!0,e,we(),h.onExit&&h.onExit(e)),f(e,new ei(e)))}if(De=function e(){Gr||ri(),Gr||(De=e)},h.run=ri,h.preInit)for("function"==typeof h.preInit&&(h.preInit=[h.preInit]);h.preInit.length>0;)h.preInit.pop()();var ai=!0;h.noInitialRun&&(ai=!1),o=!0,ri()}t.default=function(e){e.recordChunkData=null,e.recordChunkSize=0,e.recordChunkPos=0,e.exitFlag=!1,e.audioCodecId=0,e.audioSamplerate=8e3,e.audioChannelCount=1,e.videoRawData=null,e.videoPTS=0,e.audioPTS=0,e.videoLastPts=0,e.audioLastPts=0,e.audioRawData=null,e.mp4CallbackFunc=null;h.onRuntimeInitialized=function(){u=!0},e.addEventListener("message",(function(t){var r=t.data;switch(r.cmd){case s.w:d=r.url,e.audioSamplerate=r.audioSamplerate,e.audioChannelCount=r.channelCount,parseInt(e.audioSamplerate)>=8e3&&(e.audioCodecId=86018),u||l(),null==e.recordChunkData&&(e.recordChunkData=new Uint8Array(r.filesize+8388608),e.recordChunkSize=r.filesize),e.recordChunkPos=0,e.exitFlag=!1;var i={cmd:s.w};e.postMessage(i);break;case s.l:e.exitFlag=!0,e.recordChunkData&&(delete e.recordChunkData,e.recordChunkData=null),null!=e.videoRawData&&(h._free(e.videoRawData),e.videoRawData=null),null!=e.audioRawData&&(h._free(e.audioRawData),e.audioRawData=null);break;case s.C:if(null==e.recordChunkData)break;if(e.recordChunkData.byteLength<1)break;e.exitFlag=!0,u&&h._WasmDecoder_ReleaseMP4File();break;case s.q:if(e.exitFlag)break;if(u){if(null==e.videoRawData){null==e.videoRawData&&(e.videoRawData=h._malloc(8294400)),null==e.audioRawData&&(e.audioRawData=h._malloc(16384)),e.videoPTS=0,e.videoLastPts=0,e.audioPTS=0,e.audioLastPts=0,e.mp4CallbackFunc=h.addFunction((function(t,r,i,n){if(3==r){var a=h.HEAPU8.subarray(i,i+4);if(e.recordChunkData.set(a,n),e.recordChunkPos>e.recordChunkSize){e.blob=URL.createObjectURL(new Blob([e.recordChunkData],{type:"video/mp4"}));var o={cmd:s.p,type:"auto",dat:e.blob};e.postMessage(o)}else{var u=e.recordChunkData.subarray(0,e.recordChunkPos),d=new Uint8Array(u);delete e.recordChunkData,e.recordChunkData=null,e.blob=URL.createObjectURL(new Blob([d],{type:"video/mp4"}));o={cmd:s.p,type:"manual",dat:e.blob};e.postMessage(o)}}else{a=h.HEAPU8.subarray(i,i+n);e.recordChunkData.set(a,e.recordChunkPos),e.recordChunkPos+=a.length}}),"iiiii");h._WasmDecoder_CreateMP4File(r.codecId,0,0,e.audioCodecId,e.audioSamplerate,e.audioChannelCount,e.mp4CallbackFunc,e)}if(e.recordChunkPos>0||r.type){r.type;var n=1,a=e.videoPTS;if("video"==r.mediaType){if(e.videoLastPts<1)e.videoPTS=0;else{var o=r.pts-e.videoLastPts;e.videoPTS+=o}e.videoLastPts=r.pts,a=e.videoPTS}else{if(n=2,e.audioLastPts<1)e.audioPTS=0;else{var f=r.pts-e.audioLastPts;e.audioPTS+=f}e.audioLastPts=r.pts,a=e.audioPTS}h.HEAPU8.set(r.dat,e.videoRawData);h._WasmDecoder_WriteData(n,e.videoRawData,r.dat.length,r.type,a);e.recordChunkPos+r.dat.byteLength>e.recordChunkSize&&(e.exitFlag=!0,h._WasmDecoder_ReleaseMP4File())}}}}))}}.call(this,r(9),"/",r(68)(e),r(10).Buffer)},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t){},function(e,t,r){(function(e){function r(e,t){for(var r=0,i=e.length-1;i>=0;i--){var n=e[i];"."===n?e.splice(i,1):".."===n?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}function i(e,t){if(e.filter)return e.filter(t);for(var r=[],i=0;i<e.length;i++)t(e[i],i,e)&&r.push(e[i]);return r}t.resolve=function(){for(var t="",n=!1,a=arguments.length-1;a>=-1&&!n;a--){var o=a>=0?arguments[a]:e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(t=o+"/"+t,n="/"===o.charAt(0))}return(n?"/":"")+(t=r(i(t.split("/"),(function(e){return!!e})),!n).join("/"))||"."},t.normalize=function(e){var a=t.isAbsolute(e),o="/"===n(e,-1);return(e=r(i(e.split("/"),(function(e){return!!e})),!a).join("/"))||a||(e="."),e&&o&&(e+="/"),(a?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(i(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,r){function i(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=t.resolve(e).substr(1),r=t.resolve(r).substr(1);for(var n=i(e.split("/")),a=i(r.split("/")),o=Math.min(n.length,a.length),s=o,u=0;u<o;u++)if(n[u]!==a[u]){s=u;break}var d=[];for(u=s;u<n.length;u++)d.push("..");return(d=d.concat(a.slice(s))).join("/")},t.sep="/",t.delimiter=":",t.dirname=function(e){if("string"!=typeof e&&(e+=""),0===e.length)return".";for(var t=e.charCodeAt(0),r=47===t,i=-1,n=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!n){i=a;break}}else n=!1;return-1===i?r?"/":".":r&&1===i?"/":e.slice(0,i)},t.basename=function(e,t){var r=function(e){"string"!=typeof e&&(e+="");var t,r=0,i=-1,n=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!n){r=t+1;break}}else-1===i&&(n=!1,i=t+1);return-1===i?"":e.slice(r,i)}(e);return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r},t.extname=function(e){"string"!=typeof e&&(e+="");for(var t=-1,r=0,i=-1,n=!0,a=0,o=e.length-1;o>=0;--o){var s=e.charCodeAt(o);if(47!==s)-1===i&&(n=!1,i=o+1),46===s?-1===t?t=o:1!==a&&(a=1):-1!==t&&(a=-1);else if(!n){r=o+1;break}}return-1===t||-1===i||0===a||1===a&&t===i-1&&t===r+1?"":e.slice(t,i)};var n="b"==="ab".substr(-1)?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)}}).call(this,r(9))},function(e,t,r){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=r(24),t.createHash=t.Hash=r(31),t.createHmac=t.Hmac=r(85);var i=r(160),n=Object.keys(i),a=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(n);t.getHashes=function(){return a};var o=r(88);t.pbkdf2=o.pbkdf2,t.pbkdf2Sync=o.pbkdf2Sync;var s=r(162);t.Cipher=s.Cipher,t.createCipher=s.createCipher,t.Cipheriv=s.Cipheriv,t.createCipheriv=s.createCipheriv,t.Decipher=s.Decipher,t.createDecipher=s.createDecipher,t.Decipheriv=s.Decipheriv,t.createDecipheriv=s.createDecipheriv,t.getCiphers=s.getCiphers,t.listCiphers=s.listCiphers;var u=r(177);t.DiffieHellmanGroup=u.DiffieHellmanGroup,t.createDiffieHellmanGroup=u.createDiffieHellmanGroup,t.getDiffieHellman=u.getDiffieHellman,t.createDiffieHellman=u.createDiffieHellman,t.DiffieHellman=u.DiffieHellman;var d=r(182);t.createSign=d.createSign,t.Sign=d.Sign,t.createVerify=d.createVerify,t.Verify=d.Verify,t.createECDH=r(223);var h=r(224);t.publicEncrypt=h.publicEncrypt,t.privateEncrypt=h.privateEncrypt,t.publicDecrypt=h.publicDecrypt,t.privateDecrypt=h.privateDecrypt;var l=r(227);t.randomFill=l.randomFill,t.randomFillSync=l.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},function(e,t,r){"use strict";var i=r(6).Buffer,n=r(136).Transform;function a(e){n.call(this),this._block=i.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(5)(a,n),a.prototype._transform=function(e,t,r){var i=null;try{this.update(e,t)}catch(e){i=e}r(i)},a.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},a.prototype.update=function(e,t){if(function(e,t){if(!i.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");i.isBuffer(e)||(e=i.from(e,t));for(var r=this._block,n=0;this._blockOffset+e.length-n>=this._blockSize;){for(var a=this._blockOffset;a<this._blockSize;)r[a++]=e[n++];this._update(),this._blockOffset=0}for(;n<e.length;)r[this._blockOffset++]=e[n++];for(var o=0,s=8*e.length;s>0;++o)this._length[o]+=s,(s=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*s);return this},a.prototype._update=function(){throw new Error("_update is not implemented")},a.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},a.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=a},function(e,t,r){"use strict";(function(t,i){var n;e.exports=M,M.ReadableState=S;r(8).EventEmitter;var a=function(e,t){return e.listeners(t).length},o=r(74),s=r(10).Buffer,u=t.Uint8Array||function(){};var d,h=r(137);d=h&&h.debuglog?h.debuglog("stream"):function(){};var l,f,c,p=r(138),m=r(75),g=r(76).getHighWaterMark,_=r(25).codes,y=_.ERR_INVALID_ARG_TYPE,b=_.ERR_STREAM_PUSH_AFTER_EOF,v=_.ERR_METHOD_NOT_IMPLEMENTED,w=_.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(5)(M,o);var E=m.errorOrDestroy,A=["error","close","destroy","pause","resume"];function S(e,t,i){n=n||r(26),e=e||{},"boolean"!=typeof i&&(i=t instanceof n),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=g(this,e,"readableHighWaterMark",i),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(l||(l=r(22).StringDecoder),this.decoder=new l(e.encoding),this.encoding=e.encoding)}function M(e){if(n=n||r(26),!(this instanceof M))return new M(e);var t=this instanceof n;this._readableState=new S(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function T(e,t,r,i,n){d("readableAddChunk",t);var a,o=e._readableState;if(null===t)o.reading=!1,function(e,t){if(d("onEofChunk"),t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?I(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,O(e)))}(e,o);else if(n||(a=function(e,t){var r;i=t,s.isBuffer(i)||i instanceof u||"string"==typeof t||void 0===t||e.objectMode||(r=new y("chunk",["string","Buffer","Uint8Array"],t));var i;return r}(o,t)),a)E(e,a);else if(o.objectMode||t&&t.length>0)if("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),i)o.endEmitted?E(e,new w):R(e,o,t,!0);else if(o.ended)E(e,new b);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?R(e,o,t,!1):D(e,o)):R(e,o,t,!1)}else i||(o.reading=!1,D(e,o));return!o.ended&&(o.length<o.highWaterMark||0===o.length)}function R(e,t,r,i){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&I(e)),D(e,t)}Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),M.prototype.destroy=m.destroy,M.prototype._undestroy=m.undestroy,M.prototype._destroy=function(e,t){t(e)},M.prototype.push=function(e,t){var r,i=this._readableState;return i.objectMode?r=!0:"string"==typeof e&&((t=t||i.defaultEncoding)!==i.encoding&&(e=s.from(e,t),t=""),r=!0),T(this,e,t,!1,r)},M.prototype.unshift=function(e){return T(this,e,null,!0,!1)},M.prototype.isPaused=function(){return!1===this._readableState.flowing},M.prototype.setEncoding=function(e){l||(l=r(22).StringDecoder);var t=new l(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;for(var i=this._readableState.buffer.head,n="";null!==i;)n+=t.write(i.data),i=i.next;return this._readableState.buffer.clear(),""!==n&&this._readableState.buffer.push(n),this._readableState.length=n.length,this};function k(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=1073741824?e=1073741824:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function I(e){var t=e._readableState;d("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(d("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(O,e))}function O(e){var t=e._readableState;d("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,L(e)}function D(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(x,e,t))}function x(e,t){for(;!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&0===t.length);){var r=t.length;if(d("maybeReadMore read 0"),e.read(0),r===t.length)break}t.readingMore=!1}function C(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function P(e){d("readable nexttick read 0"),e.read(0)}function N(e,t){d("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),L(e),t.flowing&&!t.reading&&e.read(0)}function L(e){var t=e._readableState;for(d("flow",t.flowing);t.flowing&&null!==e.read(););}function B(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function F(e){var t=e._readableState;d("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(U,t,e))}function U(e,t){if(d("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function j(e,t){for(var r=0,i=e.length;r<i;r++)if(e[r]===t)return r;return-1}M.prototype.read=function(e){d("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return d("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?F(this):I(this),null;if(0===(e=k(e,t))&&t.ended)return 0===t.length&&F(this),null;var i,n=t.needReadable;return d("need readable",n),(0===t.length||t.length-e<t.highWaterMark)&&d("length less than watermark",n=!0),t.ended||t.reading?d("reading or ended",n=!1):n&&(d("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=k(r,t))),null===(i=e>0?B(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&F(this)),null!==i&&this.emit("data",i),i},M.prototype._read=function(e){E(this,new v("_read()"))},M.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,d("pipe count=%d opts=%j",n.pipesCount,t);var o=(!t||!1!==t.end)&&e!==i.stdout&&e!==i.stderr?u:g;function s(t,i){d("onunpipe"),t===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,d("cleanup"),e.removeListener("close",p),e.removeListener("finish",m),e.removeListener("drain",h),e.removeListener("error",c),e.removeListener("unpipe",s),r.removeListener("end",u),r.removeListener("end",g),r.removeListener("data",f),l=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||h())}function u(){d("onend"),e.end()}n.endEmitted?i.nextTick(o):r.once("end",o),e.on("unpipe",s);var h=function(e){return function(){var t=e._readableState;d("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,L(e))}}(r);e.on("drain",h);var l=!1;function f(t){d("ondata");var i=e.write(t);d("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==j(n.pipes,e))&&!l&&(d("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function c(t){d("onerror",t),g(),e.removeListener("error",c),0===a(e,"error")&&E(e,t)}function p(){e.removeListener("finish",m),g()}function m(){d("onfinish"),e.removeListener("close",p),g()}function g(){d("unpipe"),r.unpipe(e)}return r.on("data",f),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",c),e.once("close",p),e.once("finish",m),e.emit("pipe",r),n.flowing||(d("pipe resume"),r.resume()),e},M.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var i=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<n;a++)i[a].emit("unpipe",this,{hasUnpiped:!1});return this}var o=j(t.pipes,e);return-1===o||(t.pipes.splice(o,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,r)),this},M.prototype.on=function(e,t){var r=o.prototype.on.call(this,e,t),n=this._readableState;return"data"===e?(n.readableListening=this.listenerCount("readable")>0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,d("on readable",n.length,n.reading),n.length?I(this):n.reading||i.nextTick(P,this))),r},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(C,this),r},M.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(C,this),t},M.prototype.resume=function(){var e=this._readableState;return e.flowing||(d("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(N,e,t))}(this,e)),e.paused=!1,this},M.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},M.prototype.wrap=function(e){var t=this,r=this._readableState,i=!1;for(var n in e.on("end",(function(){if(d("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(n){(d("wrapped data"),r.decoder&&(n=r.decoder.write(n)),r.objectMode&&null==n)||(r.objectMode||n&&n.length)&&(t.push(n)||(i=!0,e.pause()))})),e)void 0===this[n]&&"function"==typeof e[n]&&(this[n]=function(t){return function(){return e[t].apply(e,arguments)}}(n));for(var a=0;a<A.length;a++)e.on(A[a],this.emit.bind(this,A[a]));return this._read=function(t){d("wrapped _read",t),i&&(i=!1,e.resume())},this},"function"==typeof Symbol&&(M.prototype[Symbol.asyncIterator]=function(){return void 0===f&&(f=r(140)),f(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),M._fromList=B,Object.defineProperty(M.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(M.from=function(e,t){return void 0===c&&(c=r(141)),c(M,e,t)})}).call(this,r(13),r(9))},function(e,t,r){e.exports=r(8).EventEmitter},function(e,t,r){"use strict";(function(t){function r(e,t){n(e,t),i(e)}function i(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,a){var o=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(a?a(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,t.nextTick(n,this,e)):t.nextTick(n,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!a&&e?o._writableState?o._writableState.errorEmitted?t.nextTick(i,o):(o._writableState.errorEmitted=!0,t.nextTick(r,o,e)):t.nextTick(r,o,e):a?(t.nextTick(i,o),a(e)):t.nextTick(i,o)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}}}).call(this,r(9))},function(e,t,r){"use strict";var i=r(25).codes.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,n){var a=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,n,r);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0)throw new i(n?r:"highWaterMark",a);return Math.floor(a)}return e.objectMode?16:16384}}},function(e,t,r){"use strict";(function(t,i){function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var i=e.entry;e.entry=null;for(;i;){var n=i.callback;t.pendingcb--,n(r),i=i.next}t.corkedRequestsFree.next=e}(t,e)}}var a;e.exports=M,M.WritableState=S;var o={deprecate:r(45)},s=r(74),u=r(10).Buffer,d=t.Uint8Array||function(){};var h,l=r(75),f=r(76).getHighWaterMark,c=r(25).codes,p=c.ERR_INVALID_ARG_TYPE,m=c.ERR_METHOD_NOT_IMPLEMENTED,g=c.ERR_MULTIPLE_CALLBACK,_=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,b=c.ERR_STREAM_NULL_VALUES,v=c.ERR_STREAM_WRITE_AFTER_END,w=c.ERR_UNKNOWN_ENCODING,E=l.errorOrDestroy;function A(){}function S(e,t,o){a=a||r(26),e=e||{},"boolean"!=typeof o&&(o=t instanceof a),this.objectMode=!!e.objectMode,o&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=f(this,e,"writableHighWaterMark",o),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===e.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,a=r.writecb;if("function"!=typeof a)throw new g;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,a){--t.pendingcb,r?(i.nextTick(a,n),i.nextTick(D,e,t),e._writableState.errorEmitted=!0,E(e,n)):(a(n),e._writableState.errorEmitted=!0,E(e,n),D(e,t))}(e,r,n,t,a);else{var o=I(r)||e.destroyed;o||r.corked||r.bufferProcessing||!r.bufferedRequest||k(e,r),n?i.nextTick(R,e,r,o,a):R(e,r,o,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function M(e){var t=this instanceof(a=a||r(26));if(!t&&!h.call(M,this))return new M(e);this._writableState=new S(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),s.call(this)}function T(e,t,r,i,n,a,o){t.writelen=i,t.writecb=o,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new y("write")):r?e._writev(n,t.onwrite):e._write(n,a,t.onwrite),t.sync=!1}function R(e,t,r,i){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,i(),D(e,t)}function k(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var i=t.bufferedRequestCount,a=new Array(i),o=t.corkedRequestsFree;o.entry=r;for(var s=0,u=!0;r;)a[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;a.allBuffers=u,T(e,t,!0,t.length,a,"",o.finish),t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):t.corkedRequestsFree=new n(t),t.bufferedRequestCount=0}else{for(;r;){var d=r.chunk,h=r.encoding,l=r.callback;if(T(e,t,!1,t.objectMode?1:d.length,d,h,l),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function I(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function O(e,t){e._final((function(r){t.pendingcb--,r&&E(e,r),t.prefinished=!0,e.emit("prefinish"),D(e,t)}))}function D(e,t){var r=I(t);if(r&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(O,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var n=e._readableState;(!n||n.autoDestroy&&n.endEmitted)&&e.destroy()}return r}r(5)(M,s),S.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(S.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(h=Function.prototype[Symbol.hasInstance],Object.defineProperty(M,Symbol.hasInstance,{value:function(e){return!!h.call(this,e)||this===M&&(e&&e._writableState instanceof S)}})):h=function(e){return e instanceof this},M.prototype.pipe=function(){E(this,new _)},M.prototype.write=function(e,t,r){var n,a=this._writableState,o=!1,s=!a.objectMode&&(n=e,u.isBuffer(n)||n instanceof d);return s&&!u.isBuffer(e)&&(e=function(e){return u.from(e)}(e)),"function"==typeof t&&(r=t,t=null),s?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof r&&(r=A),a.ending?function(e,t){var r=new v;E(e,r),i.nextTick(t,r)}(this,r):(s||function(e,t,r,n){var a;return null===r?a=new b:"string"==typeof r||t.objectMode||(a=new p("chunk",["string","Buffer"],r)),!a||(E(e,a),i.nextTick(n,a),!1)}(this,a,e,r))&&(a.pendingcb++,o=function(e,t,r,i,n,a){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=u.from(t,r));return t}(t,i,n);i!==o&&(r=!0,n="buffer",i=o)}var s=t.objectMode?1:i.length;t.length+=s;var d=t.length<t.highWaterMark;d||(t.needDrain=!0);if(t.writing||t.corked){var h=t.lastBufferedRequest;t.lastBufferedRequest={chunk:i,encoding:n,isBuf:r,callback:a,next:null},h?h.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else T(e,t,!1,s,i,n,a);return d}(this,a,s,e,t,r)),o},M.prototype.cork=function(){this._writableState.corked++},M.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||k(this,e))},M.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new w(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(M.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(M.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),M.prototype._write=function(e,t,r){r(new m("_write()"))},M.prototype._writev=null,M.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,D(e,t),r&&(t.finished?i.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(M.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),M.prototype.destroy=l.destroy,M.prototype._undestroy=l.undestroy,M.prototype._destroy=function(e,t){t(e)}}).call(this,r(13),r(9))},function(e,t,r){"use strict";e.exports=h;var i=r(25).codes,n=i.ERR_METHOD_NOT_IMPLEMENTED,a=i.ERR_MULTIPLE_CALLBACK,o=i.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=i.ERR_TRANSFORM_WITH_LENGTH_0,u=r(26);function d(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(null===i)return this.emit("error",new a);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),i(e);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function h(e){if(!(this instanceof h))return new h(e);u.call(this,e),this._transformState={afterTransform:d.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",l)}function l(){var e=this;"function"!=typeof this._flush||this._readableState.destroyed?f(this,null,null):this._flush((function(t,r){f(e,t,r)}))}function f(e,t,r){if(t)return e.emit("error",t);if(null!=r&&e.push(r),e._writableState.length)throw new s;if(e._transformState.transforming)throw new o;return e.push(null)}r(5)(h,u),h.prototype.push=function(e,t){return this._transformState.needTransform=!1,u.prototype.push.call(this,e,t)},h.prototype._transform=function(e,t,r){r(new n("_transform()"))},h.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}},h.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},h.prototype._destroy=function(e,t){u.prototype._destroy.call(this,e,(function(e){t(e)}))}},function(e,t,r){var i=r(5),n=r(27),a=r(6).Buffer,o=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,n.call(this,64,56)}function d(e,t,r){return r^e&(t^r)}function h(e,t,r){return e&t|r&(e|t)}function l(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function f(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function c(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}i(u,n),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(e){for(var t,r=this._w,i=0|this._a,n=0|this._b,a=0|this._c,s=0|this._d,u=0|this._e,p=0|this._f,m=0|this._g,g=0|this._h,_=0;_<16;++_)r[_]=e.readInt32BE(4*_);for(;_<64;++_)r[_]=0|(((t=r[_-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[_-7]+c(r[_-15])+r[_-16];for(var y=0;y<64;++y){var b=g+f(u)+d(u,p,m)+o[y]+r[y]|0,v=l(i)+h(i,n,a)|0;g=m,m=p,p=u,u=s+b|0,s=a,a=n,n=i,i=b+v|0}this._a=i+this._a|0,this._b=n+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=p+this._f|0,this._g=m+this._g|0,this._h=g+this._h|0},u.prototype._hash=function(){var e=a.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=u},function(e,t,r){var i=r(5),n=r(27),a=r(6).Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,n.call(this,128,112)}function d(e,t,r){return r^e&(t^r)}function h(e,t,r){return e&t|r&(e|t)}function l(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function f(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function c(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function _(e,t){return e>>>0<t>>>0?1:0}i(u,n),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(e){for(var t=this._w,r=0|this._ah,i=0|this._bh,n=0|this._ch,a=0|this._dh,s=0|this._eh,u=0|this._fh,y=0|this._gh,b=0|this._hh,v=0|this._al,w=0|this._bl,E=0|this._cl,A=0|this._dl,S=0|this._el,M=0|this._fl,T=0|this._gl,R=0|this._hl,k=0;k<32;k+=2)t[k]=e.readInt32BE(4*k),t[k+1]=e.readInt32BE(4*k+4);for(;k<160;k+=2){var I=t[k-30],O=t[k-30+1],D=c(I,O),x=p(O,I),C=m(I=t[k-4],O=t[k-4+1]),P=g(O,I),N=t[k-14],L=t[k-14+1],B=t[k-32],F=t[k-32+1],U=x+L|0,j=D+N+_(U,x)|0;j=(j=j+C+_(U=U+P|0,P)|0)+B+_(U=U+F|0,F)|0,t[k]=j,t[k+1]=U}for(var H=0;H<160;H+=2){j=t[H],U=t[H+1];var X=h(r,i,n),W=h(v,w,E),V=l(r,v),z=l(v,r),q=f(s,S),G=f(S,s),Q=o[H],Y=o[H+1],K=d(s,u,y),J=d(S,M,T),Z=R+G|0,$=b+q+_(Z,R)|0;$=($=($=$+K+_(Z=Z+J|0,J)|0)+Q+_(Z=Z+Y|0,Y)|0)+j+_(Z=Z+U|0,U)|0;var ee=z+W|0,te=V+X+_(ee,z)|0;b=y,R=T,y=u,T=M,u=s,M=S,s=a+$+_(S=A+Z|0,A)|0,a=n,A=E,n=i,E=w,i=r,w=v,r=$+te+_(v=Z+ee|0,Z)|0}this._al=this._al+v|0,this._bl=this._bl+w|0,this._cl=this._cl+E|0,this._dl=this._dl+A|0,this._el=this._el+S|0,this._fl=this._fl+M|0,this._gl=this._gl+T|0,this._hl=this._hl+R|0,this._ah=this._ah+r+_(this._al,v)|0,this._bh=this._bh+i+_(this._bl,w)|0,this._ch=this._ch+n+_(this._cl,E)|0,this._dh=this._dh+a+_(this._dl,A)|0,this._eh=this._eh+s+_(this._el,S)|0,this._fh=this._fh+u+_(this._fl,M)|0,this._gh=this._gh+y+_(this._gl,T)|0,this._hh=this._hh+b+_(this._hl,R)|0},u.prototype._hash=function(){var e=a.allocUnsafe(64);function t(t,r,i){e.writeInt32BE(t,i),e.writeInt32BE(r,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=u},function(e,t,r){"use strict";(function(t,i){var n=r(38);e.exports=b;var a,o=r(66);b.ReadableState=y;r(8).EventEmitter;var s=function(e,t){return e.listeners(t).length},u=r(82),d=r(50).Buffer,h=t.Uint8Array||function(){};var l=Object.create(r(32));l.inherits=r(5);var f=r(149),c=void 0;c=f&&f.debuglog?f.debuglog("stream"):function(){};var p,m=r(150),g=r(83);l.inherits(b,u);var _=["error","close","destroy","pause","resume"];function y(e,t){e=e||{};var i=t instanceof(a=a||r(23));this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,o=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:i&&(o||0===o)?o:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=r(22).StringDecoder),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function b(e){if(a=a||r(23),!(this instanceof b))return new b(e);this._readableState=new y(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),u.call(this)}function v(e,t,r,i,n){var a,o=e._readableState;null===t?(o.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,A(e)}(e,o)):(n||(a=function(e,t){var r;i=t,d.isBuffer(i)||i instanceof h||"string"==typeof t||void 0===t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));var i;return r}(o,t)),a?e.emit("error",a):o.objectMode||t&&t.length>0?("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===d.prototype||(t=function(e){return d.from(e)}(t)),i?o.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):w(e,o,t,!0):o.ended?e.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?w(e,o,t,!1):M(e,o)):w(e,o,t,!1))):i||(o.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(o)}function w(e,t,r,i){t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&A(e)),M(e,t)}Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.push(null),t(e)},b.prototype.push=function(e,t){var r,i=this._readableState;return i.objectMode?r=!0:"string"==typeof e&&((t=t||i.defaultEncoding)!==i.encoding&&(e=d.from(e,t),t=""),r=!0),v(this,e,t,!1,r)},b.prototype.unshift=function(e){return v(this,e,null,!0,!1)},b.prototype.isPaused=function(){return!1===this._readableState.flowing},b.prototype.setEncoding=function(e){return p||(p=r(22).StringDecoder),this._readableState.decoder=new p(e),this._readableState.encoding=e,this};function E(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function A(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(c("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?n.nextTick(S,e):S(e))}function S(e){c("emit readable"),e.emit("readable"),I(e)}function M(e,t){t.readingMore||(t.readingMore=!0,n.nextTick(T,e,t))}function T(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(c("maybeReadMore read 0"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}function R(e){c("readable nexttick read 0"),e.read(0)}function k(e,t){t.reading||(c("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),I(e),t.flowing&&!t.reading&&e.read(0)}function I(e){var t=e._readableState;for(c("flow",t.flowing);t.flowing&&null!==e.read(););}function O(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var i;e<t.head.data.length?(i=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):i=e===t.head.data.length?t.shift():r?function(e,t){var r=t.head,i=1,n=r.data;e-=n.length;for(;r=r.next;){var a=r.data,o=e>a.length?a.length:e;if(o===a.length?n+=a:n+=a.slice(0,e),0===(e-=o)){o===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(o));break}++i}return t.length-=i,n}(e,t):function(e,t){var r=d.allocUnsafe(e),i=t.head,n=1;i.data.copy(r),e-=i.data.length;for(;i=i.next;){var a=i.data,o=e>a.length?a.length:e;if(a.copy(r,r.length-e,0,o),0===(e-=o)){o===a.length?(++n,i.next?t.head=i.next:t.head=t.tail=null):(t.head=i,i.data=a.slice(o));break}++n}return t.length-=n,r}(e,t);return i}(e,t.buffer,t.decoder),r);var r}function D(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,n.nextTick(x,t,e))}function x(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function C(e,t){for(var r=0,i=e.length;r<i;r++)if(e[r]===t)return r;return-1}b.prototype.read=function(e){c("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return c("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?D(this):A(this),null;if(0===(e=E(e,t))&&t.ended)return 0===t.length&&D(this),null;var i,n=t.needReadable;return c("need readable",n),(0===t.length||t.length-e<t.highWaterMark)&&c("length less than watermark",n=!0),t.ended||t.reading?c("reading or ended",n=!1):n&&(c("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=E(r,t))),null===(i=e>0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&D(this)),null!==i&&this.emit("data",i),i},b.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(e,t){var r=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=e;break;case 1:a.pipes=[a.pipes,e];break;default:a.pipes.push(e)}a.pipesCount+=1,c("pipe count=%d opts=%j",a.pipesCount,t);var u=(!t||!1!==t.end)&&e!==i.stdout&&e!==i.stderr?h:b;function d(t,i){c("onunpipe"),t===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,c("cleanup"),e.removeListener("close",_),e.removeListener("finish",y),e.removeListener("drain",l),e.removeListener("error",g),e.removeListener("unpipe",d),r.removeListener("end",h),r.removeListener("end",b),r.removeListener("data",m),f=!0,!a.awaitDrain||e._writableState&&!e._writableState.needDrain||l())}function h(){c("onend"),e.end()}a.endEmitted?n.nextTick(u):r.once("end",u),e.on("unpipe",d);var l=function(e){return function(){var t=e._readableState;c("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,I(e))}}(r);e.on("drain",l);var f=!1;var p=!1;function m(t){c("ondata"),p=!1,!1!==e.write(t)||p||((1===a.pipesCount&&a.pipes===e||a.pipesCount>1&&-1!==C(a.pipes,e))&&!f&&(c("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,p=!0),r.pause())}function g(t){c("onerror",t),b(),e.removeListener("error",g),0===s(e,"error")&&e.emit("error",t)}function _(){e.removeListener("finish",y),b()}function y(){c("onfinish"),e.removeListener("close",_),b()}function b(){c("unpipe"),r.unpipe(e)}return r.on("data",m),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?o(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",g),e.once("close",_),e.once("finish",y),e.emit("pipe",r),a.flowing||(c("pipe resume"),r.resume()),e},b.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var i=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<n;a++)i[a].emit("unpipe",this,r);return this}var o=C(t.pipes,e);return-1===o||(t.pipes.splice(o,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,r)),this},b.prototype.on=function(e,t){var r=u.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var i=this._readableState;i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.emittedReadable=!1,i.reading?i.length&&A(this):n.nextTick(R,this))}return r},b.prototype.addListener=b.prototype.on,b.prototype.resume=function(){var e=this._readableState;return e.flowing||(c("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(k,e,t))}(this,e)),this},b.prototype.pause=function(){return c("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(c("pause"),this._readableState.flowing=!1,this.emit("pause")),this},b.prototype.wrap=function(e){var t=this,r=this._readableState,i=!1;for(var n in e.on("end",(function(){if(c("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(n){(c("wrapped data"),r.decoder&&(n=r.decoder.write(n)),r.objectMode&&null==n)||(r.objectMode||n&&n.length)&&(t.push(n)||(i=!0,e.pause()))})),e)void 0===this[n]&&"function"==typeof e[n]&&(this[n]=function(t){return function(){return e[t].apply(e,arguments)}}(n));for(var a=0;a<_.length;a++)e.on(_[a],this.emit.bind(this,_[a]));return this._read=function(t){c("wrapped _read",t),i&&(i=!1,e.resume())},this},Object.defineProperty(b.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),b._fromList=O}).call(this,r(13),r(9))},function(e,t,r){e.exports=r(8).EventEmitter},function(e,t,r){"use strict";var i=r(38);function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var r=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||i.nextTick(n,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(i.nextTick(n,r,e),r._writableState&&(r._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,r){"use strict";e.exports=o;var i=r(23),n=Object.create(r(32));function a(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(!i)return this.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!=t&&this.push(t),i(e);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function o(e){if(!(this instanceof o))return new o(e);i.call(this,e),this._transformState={afterTransform:a.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",s)}function s(){var e=this;"function"==typeof this._flush?this._flush((function(t,r){u(e,t,r)})):u(this,null,null)}function u(e,t,r){if(t)return e.emit("error",t);if(null!=r&&e.push(r),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}n.inherits=r(5),n.inherits(o,i),o.prototype.push=function(e,t){return this._transformState.needTransform=!1,i.prototype.push.call(this,e,t)},o.prototype._transform=function(e,t,r){throw new Error("_transform() is not implemented")},o.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}},o.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},o.prototype._destroy=function(e,t){var r=this;i.prototype._destroy.call(this,e,(function(e){t(e),r.emit("close")}))}},function(e,t,r){"use strict";var i=r(5),n=r(159),a=r(20),o=r(6).Buffer,s=r(86),u=r(47),d=r(48),h=o.alloc(128);function l(e,t){a.call(this,"digest"),"string"==typeof t&&(t=o.from(t));var r="sha512"===e||"sha384"===e?128:64;(this._alg=e,this._key=t,t.length>r)?t=("rmd160"===e?new u:d(e)).update(t).digest():t.length<r&&(t=o.concat([t,h],r));for(var i=this._ipad=o.allocUnsafe(r),n=this._opad=o.allocUnsafe(r),s=0;s<r;s++)i[s]=54^t[s],n[s]=92^t[s];this._hash="rmd160"===e?new u:d(e),this._hash.update(i)}i(l,a),l.prototype._update=function(e){this._hash.update(e)},l.prototype._final=function(){var e=this._hash.digest();return("rmd160"===this._alg?new u:d(this._alg)).update(this._opad).update(e).digest()},e.exports=function(e,t){return"rmd160"===(e=e.toLowerCase())||"ripemd160"===e?new l("rmd160",t):"md5"===e?new n(s,t):new l(e,t)}},function(e,t,r){var i=r(44);e.exports=function(e){return(new i).update(e).digest()}},function(e){e.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},function(e,t,r){t.pbkdf2=r(161),t.pbkdf2Sync=r(91)},function(e,t){var r=Math.pow(2,30)-1;e.exports=function(e,t){if("number"!=typeof e)throw new TypeError("Iterations not a number");if(e<0)throw new TypeError("Bad iterations");if("number"!=typeof t)throw new TypeError("Key length not a number");if(t<0||t>r||t!=t)throw new TypeError("Bad key length")}},function(e,t,r){(function(t,r){var i;if(t.process&&t.process.browser)i="utf-8";else if(t.process&&t.process.version){i=parseInt(r.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}else i="utf-8";e.exports=i}).call(this,r(13),r(9))},function(e,t,r){var i=r(86),n=r(47),a=r(48),o=r(6).Buffer,s=r(89),u=r(90),d=r(92),h=o.alloc(128),l={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function f(e,t,r){var s=function(e){function t(t){return a(e).update(t).digest()}return"rmd160"===e||"ripemd160"===e?function(e){return(new n).update(e).digest()}:"md5"===e?i:t}(e),u="sha512"===e||"sha384"===e?128:64;t.length>u?t=s(t):t.length<u&&(t=o.concat([t,h],u));for(var d=o.allocUnsafe(u+l[e]),f=o.allocUnsafe(u+l[e]),c=0;c<u;c++)d[c]=54^t[c],f[c]=92^t[c];var p=o.allocUnsafe(u+r+4);d.copy(p,0,0,u),this.ipad1=p,this.ipad2=d,this.opad=f,this.alg=e,this.blocksize=u,this.hash=s,this.size=l[e]}f.prototype.run=function(e,t){return e.copy(t,this.blocksize),this.hash(t).copy(this.opad,this.blocksize),this.hash(this.opad)},e.exports=function(e,t,r,i,n){s(r,i);var a=new f(n=n||"sha1",e=d(e,u,"Password"),(t=d(t,u,"Salt")).length),h=o.allocUnsafe(i),c=o.allocUnsafe(t.length+4);t.copy(c,0,0,t.length);for(var p=0,m=l[n],g=Math.ceil(i/m),_=1;_<=g;_++){c.writeUInt32BE(_,t.length);for(var y=a.run(c,a.ipad1),b=y,v=1;v<r;v++){b=a.run(b,a.ipad2);for(var w=0;w<m;w++)y[w]^=b[w]}y.copy(h,p),p+=m}return h}},function(e,t,r){var i=r(6).Buffer;e.exports=function(e,t,r){if(i.isBuffer(e))return e;if("string"==typeof e)return i.from(e,t);if(ArrayBuffer.isView(e))return i.from(e.buffer);throw new TypeError(r+" must be a string, a Buffer, a typed array or a DataView")}},function(e,t,r){"use strict";t.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},t.writeUInt32BE=function(e,t,r){e[0+r]=t>>>24,e[1+r]=t>>>16&255,e[2+r]=t>>>8&255,e[3+r]=255&t},t.ip=function(e,t,r,i){for(var n=0,a=0,o=6;o>=0;o-=2){for(var s=0;s<=24;s+=8)n<<=1,n|=t>>>s+o&1;for(s=0;s<=24;s+=8)n<<=1,n|=e>>>s+o&1}for(o=6;o>=0;o-=2){for(s=1;s<=25;s+=8)a<<=1,a|=t>>>s+o&1;for(s=1;s<=25;s+=8)a<<=1,a|=e>>>s+o&1}r[i+0]=n>>>0,r[i+1]=a>>>0},t.rip=function(e,t,r,i){for(var n=0,a=0,o=0;o<4;o++)for(var s=24;s>=0;s-=8)n<<=1,n|=t>>>s+o&1,n<<=1,n|=e>>>s+o&1;for(o=4;o<8;o++)for(s=24;s>=0;s-=8)a<<=1,a|=t>>>s+o&1,a<<=1,a|=e>>>s+o&1;r[i+0]=n>>>0,r[i+1]=a>>>0},t.pc1=function(e,t,r,i){for(var n=0,a=0,o=7;o>=5;o--){for(var s=0;s<=24;s+=8)n<<=1,n|=t>>s+o&1;for(s=0;s<=24;s+=8)n<<=1,n|=e>>s+o&1}for(s=0;s<=24;s+=8)n<<=1,n|=t>>s+o&1;for(o=1;o<=3;o++){for(s=0;s<=24;s+=8)a<<=1,a|=t>>s+o&1;for(s=0;s<=24;s+=8)a<<=1,a|=e>>s+o&1}for(s=0;s<=24;s+=8)a<<=1,a|=e>>s+o&1;r[i+0]=n>>>0,r[i+1]=a>>>0},t.r28shl=function(e,t){return e<<t&268435455|e>>>28-t};var i=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,n){for(var a=0,o=0,s=i.length>>>1,u=0;u<s;u++)a<<=1,a|=e>>>i[u]&1;for(u=s;u<i.length;u++)o<<=1,o|=t>>>i[u]&1;r[n+0]=a>>>0,r[n+1]=o>>>0},t.expand=function(e,t,r){var i=0,n=0;i=(1&e)<<5|e>>>27;for(var a=23;a>=15;a-=4)i<<=6,i|=e>>>a&63;for(a=11;a>=3;a-=4)n|=e>>>a&63,n<<=6;n|=(31&e)<<1|e>>>31,t[r+0]=i>>>0,t[r+1]=n>>>0};var n=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var r=0,i=0;i<4;i++){r<<=4,r|=n[64*i+(e>>>18-6*i&63)]}for(i=0;i<4;i++){r<<=4,r|=n[256+64*i+(t>>>18-6*i&63)]}return r>>>0};var a=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,r=0;r<a.length;r++)t<<=1,t|=e>>>a[r]&1;return t>>>0},t.padSplit=function(e,t,r){for(var i=e.toString(2);i.length<t;)i="0"+i;for(var n=[],a=0;a<t;a+=r)n.push(i.slice(a,a+r));return n.join(" ")}},function(e,t,r){"use strict";var i=r(14),n=r(5),a=r(93),o=r(52);function s(){this.tmp=new Array(2),this.keys=null}function u(e){o.call(this,e);var t=new s;this._desState=t,this.deriveKeys(t,e.key)}n(u,o),e.exports=u,u.create=function(e){return new u(e)};var d=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(e,t){e.keys=new Array(32),i.equal(t.length,this.blockSize,"Invalid key length");var r=a.readUInt32BE(t,0),n=a.readUInt32BE(t,4);a.pc1(r,n,e.tmp,0),r=e.tmp[0],n=e.tmp[1];for(var o=0;o<e.keys.length;o+=2){var s=d[o>>>1];r=a.r28shl(r,s),n=a.r28shl(n,s),a.pc2(r,n,e.keys,o)}},u.prototype._update=function(e,t,r,i){var n=this._desState,o=a.readUInt32BE(e,t),s=a.readUInt32BE(e,t+4);a.ip(o,s,n.tmp,0),o=n.tmp[0],s=n.tmp[1],"encrypt"===this.type?this._encrypt(n,o,s,n.tmp,0):this._decrypt(n,o,s,n.tmp,0),o=n.tmp[0],s=n.tmp[1],a.writeUInt32BE(r,o,i),a.writeUInt32BE(r,s,i+4)},u.prototype._pad=function(e,t){for(var r=e.length-t,i=t;i<e.length;i++)e[i]=r;return!0},u.prototype._unpad=function(e){for(var t=e[e.length-1],r=e.length-t;r<e.length;r++)i.equal(e[r],t);return e.slice(0,e.length-t)},u.prototype._encrypt=function(e,t,r,i,n){for(var o=t,s=r,u=0;u<e.keys.length;u+=2){var d=e.keys[u],h=e.keys[u+1];a.expand(s,e.tmp,0),d^=e.tmp[0],h^=e.tmp[1];var l=a.substitute(d,h),f=s;s=(o^a.permute(l))>>>0,o=f}a.rip(s,o,i,n)},u.prototype._decrypt=function(e,t,r,i,n){for(var o=r,s=t,u=e.keys.length-2;u>=0;u-=2){var d=e.keys[u],h=e.keys[u+1];a.expand(o,e.tmp,0),d^=e.tmp[0],h^=e.tmp[1];var l=a.substitute(d,h),f=o;o=(s^a.permute(l))>>>0,s=f}a.rip(o,s,i,n)}},function(e,t,r){var i=r(33),n=r(6).Buffer,a=r(96);function o(e){var t=e._cipher.encryptBlockRaw(e._prev);return a(e._prev),t}t.encrypt=function(e,t){var r=Math.ceil(t.length/16),a=e._cache.length;e._cache=n.concat([e._cache,n.allocUnsafe(16*r)]);for(var s=0;s<r;s++){var u=o(e),d=a+16*s;e._cache.writeUInt32BE(u[0],d+0),e._cache.writeUInt32BE(u[1],d+4),e._cache.writeUInt32BE(u[2],d+8),e._cache.writeUInt32BE(u[3],d+12)}var h=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),i(t,h)}},function(e,t){e.exports=function(e){for(var t,r=e.length;r--;){if(255!==(t=e.readUInt8(r))){t++,e.writeUInt8(t,r);break}e.writeUInt8(0,r)}}},function(e){e.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},function(e,t,r){var i=r(39),n=r(6).Buffer,a=r(20),o=r(5),s=r(174),u=r(33),d=r(96);function h(e,t,r,o){a.call(this);var u=n.alloc(4,0);this._cipher=new i.AES(t);var h=this._cipher.encryptBlock(u);this._ghash=new s(h),r=function(e,t,r){if(12===t.length)return e._finID=n.concat([t,n.from([0,0,0,1])]),n.concat([t,n.from([0,0,0,2])]);var i=new s(r),a=t.length,o=a%16;i.update(t),o&&(o=16-o,i.update(n.alloc(o,0))),i.update(n.alloc(8,0));var u=8*a,h=n.alloc(8);h.writeUIntBE(u,0,8),i.update(h),e._finID=i.state;var l=n.from(e._finID);return d(l),l}(this,r,h),this._prev=n.from(r),this._cache=n.allocUnsafe(0),this._secCache=n.allocUnsafe(0),this._decrypt=o,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}o(h,a),h.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=n.alloc(t,0),this._ghash.update(t))}this._called=!0;var r=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(r),this._len+=e.length,r},h.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=u(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var r=0;e.length!==t.length&&r++;for(var i=Math.min(e.length,t.length),n=0;n<i;++n)r+=e[n]^t[n];return r}(e,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=e,this._cipher.scrub()},h.prototype.getAuthTag=function(){if(this._decrypt||!n.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},h.prototype.setAuthTag=function(e){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=e},h.prototype.setAAD=function(e){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(e),this._alen+=e.length},e.exports=h},function(e,t,r){var i=r(39),n=r(6).Buffer,a=r(20);function o(e,t,r,o){a.call(this),this._cipher=new i.AES(t),this._prev=n.from(r),this._cache=n.allocUnsafe(0),this._secCache=n.allocUnsafe(0),this._decrypt=o,this._mode=e}r(5)(o,a),o.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)},o.prototype._final=function(){this._cipher.scrub()},e.exports=o},function(e,t,r){var i=r(24);e.exports=y,y.simpleSieve=g,y.fermatTest=_;var n=r(11),a=new n(24),o=new(r(101)),s=new n(1),u=new n(2),d=new n(5),h=(new n(16),new n(8),new n(10)),l=new n(3),f=(new n(7),new n(11)),c=new n(4),p=(new n(12),null);function m(){if(null!==p)return p;var e=[];e[0]=2;for(var t=1,r=3;r<1048576;r+=2){for(var i=Math.ceil(Math.sqrt(r)),n=0;n<t&&e[n]<=i&&r%e[n]!=0;n++);t!==n&&e[n]<=i||(e[t++]=r)}return p=e,e}function g(e){for(var t=m(),r=0;r<t.length;r++)if(0===e.modn(t[r]))return 0===e.cmpn(t[r]);return!0}function _(e){var t=n.mont(e);return 0===u.toRed(t).redPow(e.subn(1)).fromRed().cmpn(1)}function y(e,t){if(e<16)return new n(2===t||5===t?[140,123]:[140,39]);var r,p;for(t=new n(t);;){for(r=new n(i(Math.ceil(e/8)));r.bitLength()>e;)r.ishrn(1);if(r.isEven()&&r.iadd(s),r.testn(1)||r.iadd(u),t.cmp(u)){if(!t.cmp(d))for(;r.mod(h).cmp(l);)r.iadd(c)}else for(;r.mod(a).cmp(f);)r.iadd(c);if(g(p=r.shrn(1))&&g(r)&&_(p)&&_(r)&&o.test(p)&&o.test(r))return r}}},function(e,t,r){var i=r(11),n=r(56);function a(e){this.rand=e||new n.Rand}e.exports=a,a.create=function(e){return new a(e)},a.prototype._randbelow=function(e){var t=e.bitLength(),r=Math.ceil(t/8);do{var n=new i(this.rand.generate(r))}while(n.cmp(e)>=0);return n},a.prototype._randrange=function(e,t){var r=t.sub(e);return e.add(this._randbelow(r))},a.prototype.test=function(e,t,r){var n=e.bitLength(),a=i.mont(e),o=new i(1).toRed(a);t||(t=Math.max(1,n/48|0));for(var s=e.subn(1),u=0;!s.testn(u);u++);for(var d=e.shrn(u),h=s.toRed(a);t>0;t--){var l=this._randrange(new i(2),s);r&&r(l);var f=l.toRed(a).redPow(d);if(0!==f.cmp(o)&&0!==f.cmp(h)){for(var c=1;c<u;c++){if(0===(f=f.redSqr()).cmp(o))return!1;if(0===f.cmp(h))break}if(c===u)return!1}}return!0},a.prototype.getDivisor=function(e,t){var r=e.bitLength(),n=i.mont(e),a=new i(1).toRed(n);t||(t=Math.max(1,r/48|0));for(var o=e.subn(1),s=0;!o.testn(s);s++);for(var u=e.shrn(s),d=o.toRed(n);t>0;t--){var h=this._randrange(new i(2),o),l=e.gcd(h);if(0!==l.cmpn(1))return l;var f=h.toRed(n).redPow(u);if(0!==f.cmp(a)&&0!==f.cmp(d)){for(var c=1;c<s;c++){if(0===(f=f.redSqr()).cmp(a))return f.fromRed().subn(1).gcd(e);if(0===f.cmp(d))break}if(c===s)return(f=f.redSqr()).fromRed().subn(1).gcd(e)}}return!1}},function(e,t,r){"use strict";(function(t,i){var n;e.exports=M,M.ReadableState=S;r(8).EventEmitter;var a=function(e,t){return e.listeners(t).length},o=r(103),s=r(10).Buffer,u=t.Uint8Array||function(){};var d,h=r(184);d=h&&h.debuglog?h.debuglog("stream"):function(){};var l,f,c,p=r(185),m=r(104),g=r(105).getHighWaterMark,_=r(28).codes,y=_.ERR_INVALID_ARG_TYPE,b=_.ERR_STREAM_PUSH_AFTER_EOF,v=_.ERR_METHOD_NOT_IMPLEMENTED,w=_.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(5)(M,o);var E=m.errorOrDestroy,A=["error","close","destroy","pause","resume"];function S(e,t,i){n=n||r(29),e=e||{},"boolean"!=typeof i&&(i=t instanceof n),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=g(this,e,"readableHighWaterMark",i),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(l||(l=r(22).StringDecoder),this.decoder=new l(e.encoding),this.encoding=e.encoding)}function M(e){if(n=n||r(29),!(this instanceof M))return new M(e);var t=this instanceof n;this._readableState=new S(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function T(e,t,r,i,n){d("readableAddChunk",t);var a,o=e._readableState;if(null===t)o.reading=!1,function(e,t){if(d("onEofChunk"),t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?I(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,O(e)))}(e,o);else if(n||(a=function(e,t){var r;i=t,s.isBuffer(i)||i instanceof u||"string"==typeof t||void 0===t||e.objectMode||(r=new y("chunk",["string","Buffer","Uint8Array"],t));var i;return r}(o,t)),a)E(e,a);else if(o.objectMode||t&&t.length>0)if("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),i)o.endEmitted?E(e,new w):R(e,o,t,!0);else if(o.ended)E(e,new b);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?R(e,o,t,!1):D(e,o)):R(e,o,t,!1)}else i||(o.reading=!1,D(e,o));return!o.ended&&(o.length<o.highWaterMark||0===o.length)}function R(e,t,r,i){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&I(e)),D(e,t)}Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),M.prototype.destroy=m.destroy,M.prototype._undestroy=m.undestroy,M.prototype._destroy=function(e,t){t(e)},M.prototype.push=function(e,t){var r,i=this._readableState;return i.objectMode?r=!0:"string"==typeof e&&((t=t||i.defaultEncoding)!==i.encoding&&(e=s.from(e,t),t=""),r=!0),T(this,e,t,!1,r)},M.prototype.unshift=function(e){return T(this,e,null,!0,!1)},M.prototype.isPaused=function(){return!1===this._readableState.flowing},M.prototype.setEncoding=function(e){l||(l=r(22).StringDecoder);var t=new l(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;for(var i=this._readableState.buffer.head,n="";null!==i;)n+=t.write(i.data),i=i.next;return this._readableState.buffer.clear(),""!==n&&this._readableState.buffer.push(n),this._readableState.length=n.length,this};function k(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=1073741824?e=1073741824:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function I(e){var t=e._readableState;d("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(d("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(O,e))}function O(e){var t=e._readableState;d("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,L(e)}function D(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(x,e,t))}function x(e,t){for(;!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&0===t.length);){var r=t.length;if(d("maybeReadMore read 0"),e.read(0),r===t.length)break}t.readingMore=!1}function C(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function P(e){d("readable nexttick read 0"),e.read(0)}function N(e,t){d("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),L(e),t.flowing&&!t.reading&&e.read(0)}function L(e){var t=e._readableState;for(d("flow",t.flowing);t.flowing&&null!==e.read(););}function B(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function F(e){var t=e._readableState;d("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(U,t,e))}function U(e,t){if(d("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function j(e,t){for(var r=0,i=e.length;r<i;r++)if(e[r]===t)return r;return-1}M.prototype.read=function(e){d("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return d("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?F(this):I(this),null;if(0===(e=k(e,t))&&t.ended)return 0===t.length&&F(this),null;var i,n=t.needReadable;return d("need readable",n),(0===t.length||t.length-e<t.highWaterMark)&&d("length less than watermark",n=!0),t.ended||t.reading?d("reading or ended",n=!1):n&&(d("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=k(r,t))),null===(i=e>0?B(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&F(this)),null!==i&&this.emit("data",i),i},M.prototype._read=function(e){E(this,new v("_read()"))},M.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,d("pipe count=%d opts=%j",n.pipesCount,t);var o=(!t||!1!==t.end)&&e!==i.stdout&&e!==i.stderr?u:g;function s(t,i){d("onunpipe"),t===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,d("cleanup"),e.removeListener("close",p),e.removeListener("finish",m),e.removeListener("drain",h),e.removeListener("error",c),e.removeListener("unpipe",s),r.removeListener("end",u),r.removeListener("end",g),r.removeListener("data",f),l=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||h())}function u(){d("onend"),e.end()}n.endEmitted?i.nextTick(o):r.once("end",o),e.on("unpipe",s);var h=function(e){return function(){var t=e._readableState;d("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,L(e))}}(r);e.on("drain",h);var l=!1;function f(t){d("ondata");var i=e.write(t);d("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==j(n.pipes,e))&&!l&&(d("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function c(t){d("onerror",t),g(),e.removeListener("error",c),0===a(e,"error")&&E(e,t)}function p(){e.removeListener("finish",m),g()}function m(){d("onfinish"),e.removeListener("close",p),g()}function g(){d("unpipe"),r.unpipe(e)}return r.on("data",f),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",c),e.once("close",p),e.once("finish",m),e.emit("pipe",r),n.flowing||(d("pipe resume"),r.resume()),e},M.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var i=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<n;a++)i[a].emit("unpipe",this,{hasUnpiped:!1});return this}var o=j(t.pipes,e);return-1===o||(t.pipes.splice(o,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,r)),this},M.prototype.on=function(e,t){var r=o.prototype.on.call(this,e,t),n=this._readableState;return"data"===e?(n.readableListening=this.listenerCount("readable")>0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,d("on readable",n.length,n.reading),n.length?I(this):n.reading||i.nextTick(P,this))),r},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(C,this),r},M.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(C,this),t},M.prototype.resume=function(){var e=this._readableState;return e.flowing||(d("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(N,e,t))}(this,e)),e.paused=!1,this},M.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},M.prototype.wrap=function(e){var t=this,r=this._readableState,i=!1;for(var n in e.on("end",(function(){if(d("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(n){(d("wrapped data"),r.decoder&&(n=r.decoder.write(n)),r.objectMode&&null==n)||(r.objectMode||n&&n.length)&&(t.push(n)||(i=!0,e.pause()))})),e)void 0===this[n]&&"function"==typeof e[n]&&(this[n]=function(t){return function(){return e[t].apply(e,arguments)}}(n));for(var a=0;a<A.length;a++)e.on(A[a],this.emit.bind(this,A[a]));return this._read=function(t){d("wrapped _read",t),i&&(i=!1,e.resume())},this},"function"==typeof Symbol&&(M.prototype[Symbol.asyncIterator]=function(){return void 0===f&&(f=r(187)),f(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),M._fromList=B,Object.defineProperty(M.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(M.from=function(e,t){return void 0===c&&(c=r(188)),c(M,e,t)})}).call(this,r(13),r(9))},function(e,t,r){e.exports=r(8).EventEmitter},function(e,t,r){"use strict";(function(t){function r(e,t){n(e,t),i(e)}function i(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,a){var o=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(a?a(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,t.nextTick(n,this,e)):t.nextTick(n,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!a&&e?o._writableState?o._writableState.errorEmitted?t.nextTick(i,o):(o._writableState.errorEmitted=!0,t.nextTick(r,o,e)):t.nextTick(r,o,e):a?(t.nextTick(i,o),a(e)):t.nextTick(i,o)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}}}).call(this,r(9))},function(e,t,r){"use strict";var i=r(28).codes.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,n){var a=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,n,r);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0)throw new i(n?r:"highWaterMark",a);return Math.floor(a)}return e.objectMode?16:16384}}},function(e,t,r){"use strict";(function(t,i){function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var i=e.entry;e.entry=null;for(;i;){var n=i.callback;t.pendingcb--,n(r),i=i.next}t.corkedRequestsFree.next=e}(t,e)}}var a;e.exports=M,M.WritableState=S;var o={deprecate:r(45)},s=r(103),u=r(10).Buffer,d=t.Uint8Array||function(){};var h,l=r(104),f=r(105).getHighWaterMark,c=r(28).codes,p=c.ERR_INVALID_ARG_TYPE,m=c.ERR_METHOD_NOT_IMPLEMENTED,g=c.ERR_MULTIPLE_CALLBACK,_=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,b=c.ERR_STREAM_NULL_VALUES,v=c.ERR_STREAM_WRITE_AFTER_END,w=c.ERR_UNKNOWN_ENCODING,E=l.errorOrDestroy;function A(){}function S(e,t,o){a=a||r(29),e=e||{},"boolean"!=typeof o&&(o=t instanceof a),this.objectMode=!!e.objectMode,o&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=f(this,e,"writableHighWaterMark",o),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===e.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,a=r.writecb;if("function"!=typeof a)throw new g;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,a){--t.pendingcb,r?(i.nextTick(a,n),i.nextTick(D,e,t),e._writableState.errorEmitted=!0,E(e,n)):(a(n),e._writableState.errorEmitted=!0,E(e,n),D(e,t))}(e,r,n,t,a);else{var o=I(r)||e.destroyed;o||r.corked||r.bufferProcessing||!r.bufferedRequest||k(e,r),n?i.nextTick(R,e,r,o,a):R(e,r,o,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function M(e){var t=this instanceof(a=a||r(29));if(!t&&!h.call(M,this))return new M(e);this._writableState=new S(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),s.call(this)}function T(e,t,r,i,n,a,o){t.writelen=i,t.writecb=o,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new y("write")):r?e._writev(n,t.onwrite):e._write(n,a,t.onwrite),t.sync=!1}function R(e,t,r,i){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,i(),D(e,t)}function k(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var i=t.bufferedRequestCount,a=new Array(i),o=t.corkedRequestsFree;o.entry=r;for(var s=0,u=!0;r;)a[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;a.allBuffers=u,T(e,t,!0,t.length,a,"",o.finish),t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):t.corkedRequestsFree=new n(t),t.bufferedRequestCount=0}else{for(;r;){var d=r.chunk,h=r.encoding,l=r.callback;if(T(e,t,!1,t.objectMode?1:d.length,d,h,l),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function I(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function O(e,t){e._final((function(r){t.pendingcb--,r&&E(e,r),t.prefinished=!0,e.emit("prefinish"),D(e,t)}))}function D(e,t){var r=I(t);if(r&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(O,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var n=e._readableState;(!n||n.autoDestroy&&n.endEmitted)&&e.destroy()}return r}r(5)(M,s),S.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(S.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(h=Function.prototype[Symbol.hasInstance],Object.defineProperty(M,Symbol.hasInstance,{value:function(e){return!!h.call(this,e)||this===M&&(e&&e._writableState instanceof S)}})):h=function(e){return e instanceof this},M.prototype.pipe=function(){E(this,new _)},M.prototype.write=function(e,t,r){var n,a=this._writableState,o=!1,s=!a.objectMode&&(n=e,u.isBuffer(n)||n instanceof d);return s&&!u.isBuffer(e)&&(e=function(e){return u.from(e)}(e)),"function"==typeof t&&(r=t,t=null),s?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof r&&(r=A),a.ending?function(e,t){var r=new v;E(e,r),i.nextTick(t,r)}(this,r):(s||function(e,t,r,n){var a;return null===r?a=new b:"string"==typeof r||t.objectMode||(a=new p("chunk",["string","Buffer"],r)),!a||(E(e,a),i.nextTick(n,a),!1)}(this,a,e,r))&&(a.pendingcb++,o=function(e,t,r,i,n,a){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=u.from(t,r));return t}(t,i,n);i!==o&&(r=!0,n="buffer",i=o)}var s=t.objectMode?1:i.length;t.length+=s;var d=t.length<t.highWaterMark;d||(t.needDrain=!0);if(t.writing||t.corked){var h=t.lastBufferedRequest;t.lastBufferedRequest={chunk:i,encoding:n,isBuf:r,callback:a,next:null},h?h.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else T(e,t,!1,s,i,n,a);return d}(this,a,s,e,t,r)),o},M.prototype.cork=function(){this._writableState.corked++},M.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||k(this,e))},M.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new w(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(M.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(M.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),M.prototype._write=function(e,t,r){r(new m("_write()"))},M.prototype._writev=null,M.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,D(e,t),r&&(t.finished?i.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(M.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),M.prototype.destroy=l.destroy,M.prototype._undestroy=l.undestroy,M.prototype._destroy=function(e,t){t(e)}}).call(this,r(13),r(9))},function(e,t,r){"use strict";e.exports=h;var i=r(28).codes,n=i.ERR_METHOD_NOT_IMPLEMENTED,a=i.ERR_MULTIPLE_CALLBACK,o=i.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=i.ERR_TRANSFORM_WITH_LENGTH_0,u=r(29);function d(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(null===i)return this.emit("error",new a);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),i(e);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function h(e){if(!(this instanceof h))return new h(e);u.call(this,e),this._transformState={afterTransform:d.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",l)}function l(){var e=this;"function"!=typeof this._flush||this._readableState.destroyed?f(this,null,null):this._flush((function(t,r){f(e,t,r)}))}function f(e,t,r){if(t)return e.emit("error",t);if(null!=r&&e.push(r),e._writableState.length)throw new s;if(e._transformState.transforming)throw new o;return e.push(null)}r(5)(h,u),h.prototype.push=function(e,t){return this._transformState.needTransform=!1,u.prototype.push.call(this,e,t)},h.prototype._transform=function(e,t,r){r(new n("_transform()"))},h.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}},h.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},h.prototype._destroy=function(e,t){u.prototype._destroy.call(this,e,(function(e){t(e)}))}},function(e,t,r){"use strict";var i=t;function n(e){return 1===e.length?"0"+e:e}function a(e){for(var t="",r=0;r<e.length;r++)t+=n(e[r].toString(16));return t}i.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"!=typeof e){for(var i=0;i<e.length;i++)r[i]=0|e[i];return r}if("hex"===t){(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(i=0;i<e.length;i+=2)r.push(parseInt(e[i]+e[i+1],16))}else for(i=0;i<e.length;i++){var n=e.charCodeAt(i),a=n>>8,o=255&n;a?r.push(a,o):r.push(o)}return r},i.zero2=n,i.toHex=a,i.encode=function(e,t){return"hex"===t?a(e):e}},function(e,t,r){"use strict";var i=t;i.base=r(41),i.short=r(195),i.mont=r(196),i.edwards=r(197)},function(e,t,r){"use strict";var i=r(18).rotr32;function n(e,t,r){return e&t^~e&r}function a(e,t,r){return e&t^e&r^t&r}function o(e,t,r){return e^t^r}t.ft_1=function(e,t,r,i){return 0===e?n(t,r,i):1===e||3===e?o(t,r,i):2===e?a(t,r,i):void 0},t.ch32=n,t.maj32=a,t.p32=o,t.s0_256=function(e){return i(e,2)^i(e,13)^i(e,22)},t.s1_256=function(e){return i(e,6)^i(e,11)^i(e,25)},t.g0_256=function(e){return i(e,7)^i(e,18)^e>>>3},t.g1_256=function(e){return i(e,17)^i(e,19)^e>>>10}},function(e,t,r){"use strict";var i=r(18),n=r(34),a=r(110),o=r(14),s=i.sum32,u=i.sum32_4,d=i.sum32_5,h=a.ch32,l=a.maj32,f=a.s0_256,c=a.s1_256,p=a.g0_256,m=a.g1_256,g=n.BlockHash,_=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function y(){if(!(this instanceof y))return new y;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=_,this.W=new Array(64)}i.inherits(y,g),e.exports=y,y.blockSize=512,y.outSize=256,y.hmacStrength=192,y.padLength=64,y.prototype._update=function(e,t){for(var r=this.W,i=0;i<16;i++)r[i]=e[t+i];for(;i<r.length;i++)r[i]=u(m(r[i-2]),r[i-7],p(r[i-15]),r[i-16]);var n=this.h[0],a=this.h[1],g=this.h[2],_=this.h[3],y=this.h[4],b=this.h[5],v=this.h[6],w=this.h[7];for(o(this.k.length===r.length),i=0;i<r.length;i++){var E=d(w,c(y),h(y,b,v),this.k[i],r[i]),A=s(f(n),l(n,a,g));w=v,v=b,b=y,y=s(_,E),_=g,g=a,a=n,n=s(E,A)}this.h[0]=s(this.h[0],n),this.h[1]=s(this.h[1],a),this.h[2]=s(this.h[2],g),this.h[3]=s(this.h[3],_),this.h[4]=s(this.h[4],y),this.h[5]=s(this.h[5],b),this.h[6]=s(this.h[6],v),this.h[7]=s(this.h[7],w)},y.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h,"big"):i.split32(this.h,"big")}},function(e,t,r){"use strict";var i=r(18),n=r(34),a=r(14),o=i.rotr64_hi,s=i.rotr64_lo,u=i.shr64_hi,d=i.shr64_lo,h=i.sum64,l=i.sum64_hi,f=i.sum64_lo,c=i.sum64_4_hi,p=i.sum64_4_lo,m=i.sum64_5_hi,g=i.sum64_5_lo,_=n.BlockHash,y=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function b(){if(!(this instanceof b))return new b;_.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=y,this.W=new Array(160)}function v(e,t,r,i,n){var a=e&r^~e&n;return a<0&&(a+=4294967296),a}function w(e,t,r,i,n,a){var o=t&i^~t&a;return o<0&&(o+=4294967296),o}function E(e,t,r,i,n){var a=e&r^e&n^r&n;return a<0&&(a+=4294967296),a}function A(e,t,r,i,n,a){var o=t&i^t&a^i&a;return o<0&&(o+=4294967296),o}function S(e,t){var r=o(e,t,28)^o(t,e,2)^o(t,e,7);return r<0&&(r+=4294967296),r}function M(e,t){var r=s(e,t,28)^s(t,e,2)^s(t,e,7);return r<0&&(r+=4294967296),r}function T(e,t){var r=o(e,t,14)^o(e,t,18)^o(t,e,9);return r<0&&(r+=4294967296),r}function R(e,t){var r=s(e,t,14)^s(e,t,18)^s(t,e,9);return r<0&&(r+=4294967296),r}function k(e,t){var r=o(e,t,1)^o(e,t,8)^u(e,t,7);return r<0&&(r+=4294967296),r}function I(e,t){var r=s(e,t,1)^s(e,t,8)^d(e,t,7);return r<0&&(r+=4294967296),r}function O(e,t){var r=o(e,t,19)^o(t,e,29)^u(e,t,6);return r<0&&(r+=4294967296),r}function D(e,t){var r=s(e,t,19)^s(t,e,29)^d(e,t,6);return r<0&&(r+=4294967296),r}i.inherits(b,_),e.exports=b,b.blockSize=1024,b.outSize=512,b.hmacStrength=192,b.padLength=128,b.prototype._prepareBlock=function(e,t){for(var r=this.W,i=0;i<32;i++)r[i]=e[t+i];for(;i<r.length;i+=2){var n=O(r[i-4],r[i-3]),a=D(r[i-4],r[i-3]),o=r[i-14],s=r[i-13],u=k(r[i-30],r[i-29]),d=I(r[i-30],r[i-29]),h=r[i-32],l=r[i-31];r[i]=c(n,a,o,s,u,d,h,l),r[i+1]=p(n,a,o,s,u,d,h,l)}},b.prototype._update=function(e,t){this._prepareBlock(e,t);var r=this.W,i=this.h[0],n=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4],d=this.h[5],c=this.h[6],p=this.h[7],_=this.h[8],y=this.h[9],b=this.h[10],k=this.h[11],I=this.h[12],O=this.h[13],D=this.h[14],x=this.h[15];a(this.k.length===r.length);for(var C=0;C<r.length;C+=2){var P=D,N=x,L=T(_,y),B=R(_,y),F=v(_,y,b,k,I),U=w(_,y,b,k,I,O),j=this.k[C],H=this.k[C+1],X=r[C],W=r[C+1],V=m(P,N,L,B,F,U,j,H,X,W),z=g(P,N,L,B,F,U,j,H,X,W);P=S(i,n),N=M(i,n),L=E(i,n,o,s,u),B=A(i,n,o,s,u,d);var q=l(P,N,L,B),G=f(P,N,L,B);D=I,x=O,I=b,O=k,b=_,k=y,_=l(c,p,V,z),y=f(p,p,V,z),c=u,p=d,u=o,d=s,o=i,s=n,i=l(V,z,q,G),n=f(V,z,q,G)}h(this.h,0,i,n),h(this.h,2,o,s),h(this.h,4,u,d),h(this.h,6,c,p),h(this.h,8,_,y),h(this.h,10,b,k),h(this.h,12,I,O),h(this.h,14,D,x)},b.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h,"big"):i.split32(this.h,"big")}},function(e,t,r){(function(e){!function(e,t){"use strict";function i(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function a(e,t,r){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=a:t.BN=a,a.BN=a,a.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(212).Buffer}catch(e){}function s(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void i(!1,"Invalid character in "+e)}function u(e,t,r){var i=s(e,r);return r-1>=t&&(i|=s(e,r-1)<<4),i}function d(e,t,r,n){for(var a=0,o=0,s=Math.min(e.length,r),u=t;u<s;u++){var d=e.charCodeAt(u)-48;a*=n,o=d>=49?d-49+10:d>=17?d-17+10:d,i(d>=0&&o<n,"Invalid character"),a+=o}return a}function h(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(a.isBN=function(e){return e instanceof a||null!==e&&"object"==typeof e&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),i(t===(0|t)&&t>=2&&t<=36);var n=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<e.length&&(16===t?this._parseHex(e,n,r):(this._parseBase(e,t,n),"le"===r&&this._initArray(this.toArray(),t,r)))},a.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(i(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},a.prototype._initArray=function(e,t,r){if(i("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var a,o,s=0;if("be"===r)for(n=e.length-1,a=0;n>=0;n-=3)o=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(n=0,a=0;n<e.length;n+=3)o=e[n]|e[n+1]<<8|e[n+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this._strip()},a.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var n,a=0,o=0;if("be"===r)for(i=e.length-1;i>=t;i-=2)n=u(e,t,i)<<a,this.words[o]|=67108863&n,a>=18?(a-=18,o+=1,this.words[o]|=n>>>26):a+=8;else for(i=(e.length-t)%2==0?t+1:t;i<e.length;i+=2)n=u(e,t,i)<<a,this.words[o]|=67108863&n,a>=18?(a-=18,o+=1,this.words[o]|=n>>>26):a+=8;this._strip()},a.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=t)i++;i--,n=n/t|0;for(var a=e.length-r,o=a%i,s=Math.min(a,a-o)+r,u=0,h=r;h<s;h+=i)u=d(e,h,h+i,t),this.imuln(n),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u);if(0!==o){var l=1;for(u=d(e,h,e.length,t),h=0;h<o;h++)l*=t;this.imuln(l),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u)}this._strip()},a.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},a.prototype._move=function(e){h(e,this)},a.prototype.clone=function(){var e=new a(null);return this.copy(e),e},a.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},a.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){a.prototype.inspect=l}else a.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];a.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var n=0,a=0,o=0;o<this.length;o++){var s=this.words[o],u=(16777215&(s<<n|a)).toString(16);a=s>>>24-n&16777215,(n+=2)>=26&&(n-=26,o--),r=0!==a||o!==this.length-1?f[6-u.length]+u+r:u+r}for(0!==a&&(r=a.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var d=c[e],h=p[e];r="";var l=this.clone();for(l.negative=0;!l.isZero();){var m=l.modrn(h).toString(e);r=(l=l.idivn(h)).isZero()?m+r:f[d-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16,2)},o&&(a.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function m(e,t,r){r.negative=t.negative^e.negative;var i=e.length+t.length|0;r.length=i,i=i-1|0;var n=0|e.words[0],a=0|t.words[0],o=n*a,s=67108863&o,u=o/67108864|0;r.words[0]=s;for(var d=1;d<i;d++){for(var h=u>>>26,l=67108863&u,f=Math.min(d,t.length-1),c=Math.max(0,d-e.length+1);c<=f;c++){var p=d-c|0;h+=(o=(n=0|e.words[p])*(a=0|t.words[c])+l)/67108864|0,l=67108863&o}r.words[d]=0|l,u=0|h}return 0!==u?r.words[d]=0|u:r.length--,r._strip()}a.prototype.toArrayLike=function(e,t,r){this._strip();var n=this.byteLength(),a=r||Math.max(1,n);i(n<=a,"byte array longer than desired length"),i(a>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,n),o},a.prototype._toArrayLikeLE=function(e,t){for(var r=0,i=0,n=0,a=0;n<this.length;n++){var o=this.words[n]<<a|i;e[r++]=255&o,r<e.length&&(e[r++]=o>>8&255),r<e.length&&(e[r++]=o>>16&255),6===a?(r<e.length&&(e[r++]=o>>24&255),i=0,a=0):(i=o>>>24,a+=2)}if(r<e.length)for(e[r++]=i;r<e.length;)e[r++]=0},a.prototype._toArrayLikeBE=function(e,t){for(var r=e.length-1,i=0,n=0,a=0;n<this.length;n++){var o=this.words[n]<<a|i;e[r--]=255&o,r>=0&&(e[r--]=o>>8&255),r>=0&&(e[r--]=o>>16&255),6===a?(r>=0&&(e[r--]=o>>24&255),i=0,a=0):(i=o>>>24,a+=2)}if(r>=0)for(e[r--]=i;r>=0;)e[r--]=0},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},a.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return 0!==this.negative},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},a.prototype.ior=function(e){return i(0==(this.negative|e.negative)),this.iuor(e)},a.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},a.prototype.iand=function(e){return i(0==(this.negative|e.negative)),this.iuand(e)},a.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var i=0;i<r.length;i++)this.words[i]=t.words[i]^r.words[i];if(this!==t)for(;i<t.length;i++)this.words[i]=t.words[i];return this.length=t.length,this._strip()},a.prototype.ixor=function(e){return i(0==(this.negative|e.negative)),this.iuxor(e)},a.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var n=0;n<t;n++)this.words[n]=67108863&~this.words[n];return r>0&&(this.words[n]=~this.words[n]&67108863>>26-r),this._strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var r=e/26|0,n=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<n:this.words[r]&~(1<<n),this._strip()},a.prototype.iadd=function(e){var t,r,i;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,i=e):(r=e,i=this);for(var n=0,a=0;a<i.length;a++)t=(0|r.words[a])+(0|i.words[a])+n,this.words[a]=67108863&t,n=t>>>26;for(;0!==n&&a<r.length;a++)t=(0|r.words[a])+n,this.words[a]=67108863&t,n=t>>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this},a.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},a.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,i,n=this.cmp(e);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=e):(r=e,i=this);for(var a=0,o=0;o<i.length;o++)a=(t=(0|r.words[o])-(0|i.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<r.length;o++)a=(t=(0|r.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this._strip()},a.prototype.sub=function(e){return this.clone().isub(e)};var g=function(e,t,r){var i,n,a,o=e.words,s=t.words,u=r.words,d=0,h=0|o[0],l=8191&h,f=h>>>13,c=0|o[1],p=8191&c,m=c>>>13,g=0|o[2],_=8191&g,y=g>>>13,b=0|o[3],v=8191&b,w=b>>>13,E=0|o[4],A=8191&E,S=E>>>13,M=0|o[5],T=8191&M,R=M>>>13,k=0|o[6],I=8191&k,O=k>>>13,D=0|o[7],x=8191&D,C=D>>>13,P=0|o[8],N=8191&P,L=P>>>13,B=0|o[9],F=8191&B,U=B>>>13,j=0|s[0],H=8191&j,X=j>>>13,W=0|s[1],V=8191&W,z=W>>>13,q=0|s[2],G=8191&q,Q=q>>>13,Y=0|s[3],K=8191&Y,J=Y>>>13,Z=0|s[4],$=8191&Z,ee=Z>>>13,te=0|s[5],re=8191&te,ie=te>>>13,ne=0|s[6],ae=8191&ne,oe=ne>>>13,se=0|s[7],ue=8191&se,de=se>>>13,he=0|s[8],le=8191&he,fe=he>>>13,ce=0|s[9],pe=8191&ce,me=ce>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(d+(i=Math.imul(l,H))|0)+((8191&(n=(n=Math.imul(l,X))+Math.imul(f,H)|0))<<13)|0;d=((a=Math.imul(f,X))+(n>>>13)|0)+(ge>>>26)|0,ge&=67108863,i=Math.imul(p,H),n=(n=Math.imul(p,X))+Math.imul(m,H)|0,a=Math.imul(m,X);var _e=(d+(i=i+Math.imul(l,V)|0)|0)+((8191&(n=(n=n+Math.imul(l,z)|0)+Math.imul(f,V)|0))<<13)|0;d=((a=a+Math.imul(f,z)|0)+(n>>>13)|0)+(_e>>>26)|0,_e&=67108863,i=Math.imul(_,H),n=(n=Math.imul(_,X))+Math.imul(y,H)|0,a=Math.imul(y,X),i=i+Math.imul(p,V)|0,n=(n=n+Math.imul(p,z)|0)+Math.imul(m,V)|0,a=a+Math.imul(m,z)|0;var ye=(d+(i=i+Math.imul(l,G)|0)|0)+((8191&(n=(n=n+Math.imul(l,Q)|0)+Math.imul(f,G)|0))<<13)|0;d=((a=a+Math.imul(f,Q)|0)+(n>>>13)|0)+(ye>>>26)|0,ye&=67108863,i=Math.imul(v,H),n=(n=Math.imul(v,X))+Math.imul(w,H)|0,a=Math.imul(w,X),i=i+Math.imul(_,V)|0,n=(n=n+Math.imul(_,z)|0)+Math.imul(y,V)|0,a=a+Math.imul(y,z)|0,i=i+Math.imul(p,G)|0,n=(n=n+Math.imul(p,Q)|0)+Math.imul(m,G)|0,a=a+Math.imul(m,Q)|0;var be=(d+(i=i+Math.imul(l,K)|0)|0)+((8191&(n=(n=n+Math.imul(l,J)|0)+Math.imul(f,K)|0))<<13)|0;d=((a=a+Math.imul(f,J)|0)+(n>>>13)|0)+(be>>>26)|0,be&=67108863,i=Math.imul(A,H),n=(n=Math.imul(A,X))+Math.imul(S,H)|0,a=Math.imul(S,X),i=i+Math.imul(v,V)|0,n=(n=n+Math.imul(v,z)|0)+Math.imul(w,V)|0,a=a+Math.imul(w,z)|0,i=i+Math.imul(_,G)|0,n=(n=n+Math.imul(_,Q)|0)+Math.imul(y,G)|0,a=a+Math.imul(y,Q)|0,i=i+Math.imul(p,K)|0,n=(n=n+Math.imul(p,J)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,J)|0;var ve=(d+(i=i+Math.imul(l,$)|0)|0)+((8191&(n=(n=n+Math.imul(l,ee)|0)+Math.imul(f,$)|0))<<13)|0;d=((a=a+Math.imul(f,ee)|0)+(n>>>13)|0)+(ve>>>26)|0,ve&=67108863,i=Math.imul(T,H),n=(n=Math.imul(T,X))+Math.imul(R,H)|0,a=Math.imul(R,X),i=i+Math.imul(A,V)|0,n=(n=n+Math.imul(A,z)|0)+Math.imul(S,V)|0,a=a+Math.imul(S,z)|0,i=i+Math.imul(v,G)|0,n=(n=n+Math.imul(v,Q)|0)+Math.imul(w,G)|0,a=a+Math.imul(w,Q)|0,i=i+Math.imul(_,K)|0,n=(n=n+Math.imul(_,J)|0)+Math.imul(y,K)|0,a=a+Math.imul(y,J)|0,i=i+Math.imul(p,$)|0,n=(n=n+Math.imul(p,ee)|0)+Math.imul(m,$)|0,a=a+Math.imul(m,ee)|0;var we=(d+(i=i+Math.imul(l,re)|0)|0)+((8191&(n=(n=n+Math.imul(l,ie)|0)+Math.imul(f,re)|0))<<13)|0;d=((a=a+Math.imul(f,ie)|0)+(n>>>13)|0)+(we>>>26)|0,we&=67108863,i=Math.imul(I,H),n=(n=Math.imul(I,X))+Math.imul(O,H)|0,a=Math.imul(O,X),i=i+Math.imul(T,V)|0,n=(n=n+Math.imul(T,z)|0)+Math.imul(R,V)|0,a=a+Math.imul(R,z)|0,i=i+Math.imul(A,G)|0,n=(n=n+Math.imul(A,Q)|0)+Math.imul(S,G)|0,a=a+Math.imul(S,Q)|0,i=i+Math.imul(v,K)|0,n=(n=n+Math.imul(v,J)|0)+Math.imul(w,K)|0,a=a+Math.imul(w,J)|0,i=i+Math.imul(_,$)|0,n=(n=n+Math.imul(_,ee)|0)+Math.imul(y,$)|0,a=a+Math.imul(y,ee)|0,i=i+Math.imul(p,re)|0,n=(n=n+Math.imul(p,ie)|0)+Math.imul(m,re)|0,a=a+Math.imul(m,ie)|0;var Ee=(d+(i=i+Math.imul(l,ae)|0)|0)+((8191&(n=(n=n+Math.imul(l,oe)|0)+Math.imul(f,ae)|0))<<13)|0;d=((a=a+Math.imul(f,oe)|0)+(n>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,i=Math.imul(x,H),n=(n=Math.imul(x,X))+Math.imul(C,H)|0,a=Math.imul(C,X),i=i+Math.imul(I,V)|0,n=(n=n+Math.imul(I,z)|0)+Math.imul(O,V)|0,a=a+Math.imul(O,z)|0,i=i+Math.imul(T,G)|0,n=(n=n+Math.imul(T,Q)|0)+Math.imul(R,G)|0,a=a+Math.imul(R,Q)|0,i=i+Math.imul(A,K)|0,n=(n=n+Math.imul(A,J)|0)+Math.imul(S,K)|0,a=a+Math.imul(S,J)|0,i=i+Math.imul(v,$)|0,n=(n=n+Math.imul(v,ee)|0)+Math.imul(w,$)|0,a=a+Math.imul(w,ee)|0,i=i+Math.imul(_,re)|0,n=(n=n+Math.imul(_,ie)|0)+Math.imul(y,re)|0,a=a+Math.imul(y,ie)|0,i=i+Math.imul(p,ae)|0,n=(n=n+Math.imul(p,oe)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,oe)|0;var Ae=(d+(i=i+Math.imul(l,ue)|0)|0)+((8191&(n=(n=n+Math.imul(l,de)|0)+Math.imul(f,ue)|0))<<13)|0;d=((a=a+Math.imul(f,de)|0)+(n>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,i=Math.imul(N,H),n=(n=Math.imul(N,X))+Math.imul(L,H)|0,a=Math.imul(L,X),i=i+Math.imul(x,V)|0,n=(n=n+Math.imul(x,z)|0)+Math.imul(C,V)|0,a=a+Math.imul(C,z)|0,i=i+Math.imul(I,G)|0,n=(n=n+Math.imul(I,Q)|0)+Math.imul(O,G)|0,a=a+Math.imul(O,Q)|0,i=i+Math.imul(T,K)|0,n=(n=n+Math.imul(T,J)|0)+Math.imul(R,K)|0,a=a+Math.imul(R,J)|0,i=i+Math.imul(A,$)|0,n=(n=n+Math.imul(A,ee)|0)+Math.imul(S,$)|0,a=a+Math.imul(S,ee)|0,i=i+Math.imul(v,re)|0,n=(n=n+Math.imul(v,ie)|0)+Math.imul(w,re)|0,a=a+Math.imul(w,ie)|0,i=i+Math.imul(_,ae)|0,n=(n=n+Math.imul(_,oe)|0)+Math.imul(y,ae)|0,a=a+Math.imul(y,oe)|0,i=i+Math.imul(p,ue)|0,n=(n=n+Math.imul(p,de)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,de)|0;var Se=(d+(i=i+Math.imul(l,le)|0)|0)+((8191&(n=(n=n+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;d=((a=a+Math.imul(f,fe)|0)+(n>>>13)|0)+(Se>>>26)|0,Se&=67108863,i=Math.imul(F,H),n=(n=Math.imul(F,X))+Math.imul(U,H)|0,a=Math.imul(U,X),i=i+Math.imul(N,V)|0,n=(n=n+Math.imul(N,z)|0)+Math.imul(L,V)|0,a=a+Math.imul(L,z)|0,i=i+Math.imul(x,G)|0,n=(n=n+Math.imul(x,Q)|0)+Math.imul(C,G)|0,a=a+Math.imul(C,Q)|0,i=i+Math.imul(I,K)|0,n=(n=n+Math.imul(I,J)|0)+Math.imul(O,K)|0,a=a+Math.imul(O,J)|0,i=i+Math.imul(T,$)|0,n=(n=n+Math.imul(T,ee)|0)+Math.imul(R,$)|0,a=a+Math.imul(R,ee)|0,i=i+Math.imul(A,re)|0,n=(n=n+Math.imul(A,ie)|0)+Math.imul(S,re)|0,a=a+Math.imul(S,ie)|0,i=i+Math.imul(v,ae)|0,n=(n=n+Math.imul(v,oe)|0)+Math.imul(w,ae)|0,a=a+Math.imul(w,oe)|0,i=i+Math.imul(_,ue)|0,n=(n=n+Math.imul(_,de)|0)+Math.imul(y,ue)|0,a=a+Math.imul(y,de)|0,i=i+Math.imul(p,le)|0,n=(n=n+Math.imul(p,fe)|0)+Math.imul(m,le)|0,a=a+Math.imul(m,fe)|0;var Me=(d+(i=i+Math.imul(l,pe)|0)|0)+((8191&(n=(n=n+Math.imul(l,me)|0)+Math.imul(f,pe)|0))<<13)|0;d=((a=a+Math.imul(f,me)|0)+(n>>>13)|0)+(Me>>>26)|0,Me&=67108863,i=Math.imul(F,V),n=(n=Math.imul(F,z))+Math.imul(U,V)|0,a=Math.imul(U,z),i=i+Math.imul(N,G)|0,n=(n=n+Math.imul(N,Q)|0)+Math.imul(L,G)|0,a=a+Math.imul(L,Q)|0,i=i+Math.imul(x,K)|0,n=(n=n+Math.imul(x,J)|0)+Math.imul(C,K)|0,a=a+Math.imul(C,J)|0,i=i+Math.imul(I,$)|0,n=(n=n+Math.imul(I,ee)|0)+Math.imul(O,$)|0,a=a+Math.imul(O,ee)|0,i=i+Math.imul(T,re)|0,n=(n=n+Math.imul(T,ie)|0)+Math.imul(R,re)|0,a=a+Math.imul(R,ie)|0,i=i+Math.imul(A,ae)|0,n=(n=n+Math.imul(A,oe)|0)+Math.imul(S,ae)|0,a=a+Math.imul(S,oe)|0,i=i+Math.imul(v,ue)|0,n=(n=n+Math.imul(v,de)|0)+Math.imul(w,ue)|0,a=a+Math.imul(w,de)|0,i=i+Math.imul(_,le)|0,n=(n=n+Math.imul(_,fe)|0)+Math.imul(y,le)|0,a=a+Math.imul(y,fe)|0;var Te=(d+(i=i+Math.imul(p,pe)|0)|0)+((8191&(n=(n=n+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;d=((a=a+Math.imul(m,me)|0)+(n>>>13)|0)+(Te>>>26)|0,Te&=67108863,i=Math.imul(F,G),n=(n=Math.imul(F,Q))+Math.imul(U,G)|0,a=Math.imul(U,Q),i=i+Math.imul(N,K)|0,n=(n=n+Math.imul(N,J)|0)+Math.imul(L,K)|0,a=a+Math.imul(L,J)|0,i=i+Math.imul(x,$)|0,n=(n=n+Math.imul(x,ee)|0)+Math.imul(C,$)|0,a=a+Math.imul(C,ee)|0,i=i+Math.imul(I,re)|0,n=(n=n+Math.imul(I,ie)|0)+Math.imul(O,re)|0,a=a+Math.imul(O,ie)|0,i=i+Math.imul(T,ae)|0,n=(n=n+Math.imul(T,oe)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,oe)|0,i=i+Math.imul(A,ue)|0,n=(n=n+Math.imul(A,de)|0)+Math.imul(S,ue)|0,a=a+Math.imul(S,de)|0,i=i+Math.imul(v,le)|0,n=(n=n+Math.imul(v,fe)|0)+Math.imul(w,le)|0,a=a+Math.imul(w,fe)|0;var Re=(d+(i=i+Math.imul(_,pe)|0)|0)+((8191&(n=(n=n+Math.imul(_,me)|0)+Math.imul(y,pe)|0))<<13)|0;d=((a=a+Math.imul(y,me)|0)+(n>>>13)|0)+(Re>>>26)|0,Re&=67108863,i=Math.imul(F,K),n=(n=Math.imul(F,J))+Math.imul(U,K)|0,a=Math.imul(U,J),i=i+Math.imul(N,$)|0,n=(n=n+Math.imul(N,ee)|0)+Math.imul(L,$)|0,a=a+Math.imul(L,ee)|0,i=i+Math.imul(x,re)|0,n=(n=n+Math.imul(x,ie)|0)+Math.imul(C,re)|0,a=a+Math.imul(C,ie)|0,i=i+Math.imul(I,ae)|0,n=(n=n+Math.imul(I,oe)|0)+Math.imul(O,ae)|0,a=a+Math.imul(O,oe)|0,i=i+Math.imul(T,ue)|0,n=(n=n+Math.imul(T,de)|0)+Math.imul(R,ue)|0,a=a+Math.imul(R,de)|0,i=i+Math.imul(A,le)|0,n=(n=n+Math.imul(A,fe)|0)+Math.imul(S,le)|0,a=a+Math.imul(S,fe)|0;var ke=(d+(i=i+Math.imul(v,pe)|0)|0)+((8191&(n=(n=n+Math.imul(v,me)|0)+Math.imul(w,pe)|0))<<13)|0;d=((a=a+Math.imul(w,me)|0)+(n>>>13)|0)+(ke>>>26)|0,ke&=67108863,i=Math.imul(F,$),n=(n=Math.imul(F,ee))+Math.imul(U,$)|0,a=Math.imul(U,ee),i=i+Math.imul(N,re)|0,n=(n=n+Math.imul(N,ie)|0)+Math.imul(L,re)|0,a=a+Math.imul(L,ie)|0,i=i+Math.imul(x,ae)|0,n=(n=n+Math.imul(x,oe)|0)+Math.imul(C,ae)|0,a=a+Math.imul(C,oe)|0,i=i+Math.imul(I,ue)|0,n=(n=n+Math.imul(I,de)|0)+Math.imul(O,ue)|0,a=a+Math.imul(O,de)|0,i=i+Math.imul(T,le)|0,n=(n=n+Math.imul(T,fe)|0)+Math.imul(R,le)|0,a=a+Math.imul(R,fe)|0;var Ie=(d+(i=i+Math.imul(A,pe)|0)|0)+((8191&(n=(n=n+Math.imul(A,me)|0)+Math.imul(S,pe)|0))<<13)|0;d=((a=a+Math.imul(S,me)|0)+(n>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,i=Math.imul(F,re),n=(n=Math.imul(F,ie))+Math.imul(U,re)|0,a=Math.imul(U,ie),i=i+Math.imul(N,ae)|0,n=(n=n+Math.imul(N,oe)|0)+Math.imul(L,ae)|0,a=a+Math.imul(L,oe)|0,i=i+Math.imul(x,ue)|0,n=(n=n+Math.imul(x,de)|0)+Math.imul(C,ue)|0,a=a+Math.imul(C,de)|0,i=i+Math.imul(I,le)|0,n=(n=n+Math.imul(I,fe)|0)+Math.imul(O,le)|0,a=a+Math.imul(O,fe)|0;var Oe=(d+(i=i+Math.imul(T,pe)|0)|0)+((8191&(n=(n=n+Math.imul(T,me)|0)+Math.imul(R,pe)|0))<<13)|0;d=((a=a+Math.imul(R,me)|0)+(n>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,i=Math.imul(F,ae),n=(n=Math.imul(F,oe))+Math.imul(U,ae)|0,a=Math.imul(U,oe),i=i+Math.imul(N,ue)|0,n=(n=n+Math.imul(N,de)|0)+Math.imul(L,ue)|0,a=a+Math.imul(L,de)|0,i=i+Math.imul(x,le)|0,n=(n=n+Math.imul(x,fe)|0)+Math.imul(C,le)|0,a=a+Math.imul(C,fe)|0;var De=(d+(i=i+Math.imul(I,pe)|0)|0)+((8191&(n=(n=n+Math.imul(I,me)|0)+Math.imul(O,pe)|0))<<13)|0;d=((a=a+Math.imul(O,me)|0)+(n>>>13)|0)+(De>>>26)|0,De&=67108863,i=Math.imul(F,ue),n=(n=Math.imul(F,de))+Math.imul(U,ue)|0,a=Math.imul(U,de),i=i+Math.imul(N,le)|0,n=(n=n+Math.imul(N,fe)|0)+Math.imul(L,le)|0,a=a+Math.imul(L,fe)|0;var xe=(d+(i=i+Math.imul(x,pe)|0)|0)+((8191&(n=(n=n+Math.imul(x,me)|0)+Math.imul(C,pe)|0))<<13)|0;d=((a=a+Math.imul(C,me)|0)+(n>>>13)|0)+(xe>>>26)|0,xe&=67108863,i=Math.imul(F,le),n=(n=Math.imul(F,fe))+Math.imul(U,le)|0,a=Math.imul(U,fe);var Ce=(d+(i=i+Math.imul(N,pe)|0)|0)+((8191&(n=(n=n+Math.imul(N,me)|0)+Math.imul(L,pe)|0))<<13)|0;d=((a=a+Math.imul(L,me)|0)+(n>>>13)|0)+(Ce>>>26)|0,Ce&=67108863;var Pe=(d+(i=Math.imul(F,pe))|0)+((8191&(n=(n=Math.imul(F,me))+Math.imul(U,pe)|0))<<13)|0;return d=((a=Math.imul(U,me))+(n>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,u[0]=ge,u[1]=_e,u[2]=ye,u[3]=be,u[4]=ve,u[5]=we,u[6]=Ee,u[7]=Ae,u[8]=Se,u[9]=Me,u[10]=Te,u[11]=Re,u[12]=ke,u[13]=Ie,u[14]=Oe,u[15]=De,u[16]=xe,u[17]=Ce,u[18]=Pe,0!==d&&(u[19]=d,r.length++),r};function _(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var i=0,n=0,a=0;a<r.length-1;a++){var o=n;n=0;for(var s=67108863&i,u=Math.min(a,t.length-1),d=Math.max(0,a-e.length+1);d<=u;d++){var h=a-d,l=(0|e.words[h])*(0|t.words[d]),f=67108863&l;s=67108863&(f=f+s|0),n+=(o=(o=o+(l/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}r.words[a]=s,i=o,o=n}return 0!==i?r.words[a]=i:r.length--,r._strip()}function y(e,t,r){return _(e,t,r)}function b(e,t){this.x=e,this.y=t}Math.imul||(g=m),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?g(this,e,t):r<63?m(this,e,t):r<1024?_(this,e,t):y(this,e,t)},b.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,i=0;i<e;i++)t[i]=this.revBin(i,r,e);return t},b.prototype.revBin=function(e,t,r){if(0===e||e===r-1)return e;for(var i=0,n=0;n<t;n++)i|=(1&e)<<t-n-1,e>>=1;return i},b.prototype.permute=function(e,t,r,i,n,a){for(var o=0;o<a;o++)i[o]=t[e[o]],n[o]=r[e[o]]},b.prototype.transform=function(e,t,r,i,n,a){this.permute(a,e,t,r,i,n);for(var o=1;o<n;o<<=1)for(var s=o<<1,u=Math.cos(2*Math.PI/s),d=Math.sin(2*Math.PI/s),h=0;h<n;h+=s)for(var l=u,f=d,c=0;c<o;c++){var p=r[h+c],m=i[h+c],g=r[h+c+o],_=i[h+c+o],y=l*g-f*_;_=l*_+f*g,g=y,r[h+c]=p+g,i[h+c]=m+_,r[h+c+o]=p-g,i[h+c+o]=m-_,c!==s&&(y=u*l-d*f,f=u*f+d*l,l=y)}},b.prototype.guessLen13b=function(e,t){var r=1|Math.max(t,e),i=1&r,n=0;for(r=r/2|0;r;r>>>=1)n++;return 1<<n+1+i},b.prototype.conjugate=function(e,t,r){if(!(r<=1))for(var i=0;i<r/2;i++){var n=e[i];e[i]=e[r-i-1],e[r-i-1]=n,n=t[i],t[i]=-t[r-i-1],t[r-i-1]=-n}},b.prototype.normalize13b=function(e,t){for(var r=0,i=0;i<t/2;i++){var n=8192*Math.round(e[2*i+1]/t)+Math.round(e[2*i]/t)+r;e[i]=67108863&n,r=n<67108864?0:n/67108864|0}return e},b.prototype.convert13b=function(e,t,r,n){for(var a=0,o=0;o<t;o++)a+=0|e[o],r[2*o]=8191&a,a>>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*t;o<n;++o)r[o]=0;i(0===a),i(0==(-8192&a))},b.prototype.stub=function(e){for(var t=new Array(e),r=0;r<e;r++)t[r]=0;return t},b.prototype.mulp=function(e,t,r){var i=2*this.guessLen13b(e.length,t.length),n=this.makeRBT(i),a=this.stub(i),o=new Array(i),s=new Array(i),u=new Array(i),d=new Array(i),h=new Array(i),l=new Array(i),f=r.words;f.length=i,this.convert13b(e.words,e.length,o,i),this.convert13b(t.words,t.length,d,i),this.transform(o,a,s,u,i,n),this.transform(d,a,h,l,i,n);for(var c=0;c<i;c++){var p=s[c]*h[c]-u[c]*l[c];u[c]=s[c]*l[c]+u[c]*h[c],s[c]=p}return this.conjugate(s,u,i),this.transform(s,u,f,a,i,n),this.conjugate(f,a,i),this.normalize13b(f,i),r.negative=e.negative^t.negative,r.length=e.length+t.length,r._strip()},a.prototype.mul=function(e){var t=new a(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},a.prototype.mulf=function(e){var t=new a(null);return t.words=new Array(this.length+e.length),y(this,e,t)},a.prototype.imul=function(e){return this.clone().mulTo(e,this)},a.prototype.imuln=function(e){var t=e<0;t&&(e=-e),i("number"==typeof e),i(e<67108864);for(var r=0,n=0;n<this.length;n++){var a=(0|this.words[n])*e,o=(67108863&a)+(67108863&r);r>>=26,r+=a/67108864|0,r+=o>>>26,this.words[n]=67108863&o}return 0!==r&&(this.words[n]=r,this.length++),t?this.ineg():this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var i=r/26|0,n=r%26;t[r]=e.words[i]>>>n&1}return t}(e);if(0===t.length)return new a(1);for(var r=this,i=0;i<t.length&&0===t[i];i++,r=r.sqr());if(++i<t.length)for(var n=r.sqr();i<t.length;i++,n=n.sqr())0!==t[i]&&(r=r.mul(n));return r},a.prototype.iushln=function(e){i("number"==typeof e&&e>=0);var t,r=e%26,n=(e-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,u=(0|this.words[t])-s<<r;this.words[t]=u|o,o=s>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t<n;t++)this.words[t]=0;this.length+=n}return this._strip()},a.prototype.ishln=function(e){return i(0===this.negative),this.iushln(e)},a.prototype.iushrn=function(e,t,r){var n;i("number"==typeof e&&e>=0),n=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,u=r;if(n-=o,n=Math.max(0,n),u){for(var d=0;d<o;d++)u.words[d]=this.words[d];u.length=o}if(0===o);else if(this.length>o)for(this.length-=o,d=0;d<this.length;d++)this.words[d]=this.words[d+o];else this.words[0]=0,this.length=1;var h=0;for(d=this.length-1;d>=0&&(0!==h||d>=n);d--){var l=0|this.words[d];this.words[d]=h<<26-a|l>>>a,h=l&s}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(e,t,r){return i(0===this.negative),this.iushrn(e,t,r)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,n=1<<t;return!(this.length<=r)&&!!(this.words[r]&n)},a.prototype.imaskn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var n=67108863^67108863>>>t<<t;this.words[this.length-1]&=n}return this._strip()},a.prototype.maskn=function(e){return this.clone().imaskn(e)},a.prototype.iaddn=function(e){return i("number"==typeof e),i(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},a.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},a.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},a.prototype.addn=function(e){return this.clone().iaddn(e)},a.prototype.subn=function(e){return this.clone().isubn(e)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(e,t,r){var n,a,o=e.length+r;this._expand(o);var s=0;for(n=0;n<e.length;n++){a=(0|this.words[n+r])+s;var u=(0|e.words[n])*t;s=((a-=67108863&u)>>26)-(u/67108864|0),this.words[n+r]=67108863&a}for(;n<this.length-r;n++)s=(a=(0|this.words[n+r])+s)>>26,this.words[n+r]=67108863&a;if(0===s)return this._strip();for(i(-1===s),s=0,n=0;n<this.length;n++)s=(a=-(0|this.words[n])+s)>>26,this.words[n]=67108863&a;return this.negative=1,this._strip()},a.prototype._wordDiv=function(e,t){var r=(this.length,e.length),i=this.clone(),n=e,o=0|n.words[n.length-1];0!==(r=26-this._countBits(o))&&(n=n.ushln(r),i.iushln(r),o=0|n.words[n.length-1]);var s,u=i.length-n.length;if("mod"!==t){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var d=0;d<s.length;d++)s.words[d]=0}var h=i.clone()._ishlnsubmul(n,1,u);0===h.negative&&(i=h,s&&(s.words[u]=1));for(var l=u-1;l>=0;l--){var f=67108864*(0|i.words[n.length+l])+(0|i.words[n.length+l-1]);for(f=Math.min(f/o|0,67108863),i._ishlnsubmul(n,f,l);0!==i.negative;)f--,i.negative=0,i._ishlnsubmul(n,1,l),i.isZero()||(i.negative^=1);s&&(s.words[l]=f)}return s&&s._strip(),i._strip(),"div"!==t&&0!==r&&i.iushrn(r),{div:s||null,mod:i}},a.prototype.divmod=function(e,t,r){return i(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(n=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:n,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modrn(e.words[0]))}:this._wordDiv(e,t);var n,o,s},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,i=e.ushrn(1),n=e.andln(1),a=r.cmp(i);return a<0||1===n&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modrn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(r*n+(0|this.words[a]))%e;return t?-n:n},a.prototype.modn=function(e){return this.modrn(e)},a.prototype.idivn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=0,n=this.length-1;n>=0;n--){var a=(0|this.words[n])+67108864*r;this.words[n]=a/e|0,r=a%e}return this._strip(),t?this.ineg():this},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),d=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++d;for(var h=r.clone(),l=t.clone();!t.isZero();){for(var f=0,c=1;0==(t.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(h),o.isub(l)),n.iushrn(1),o.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(h),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(u)):(r.isub(t),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(d)}},a.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var l=0,f=1;0==(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(n=0===t.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(e),n},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var i=0;t.isEven()&&r.isEven();i++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var n=t.cmp(r);if(n<0){var a=t;t=r,r=a}else if(0===n||0===r.cmpn(1))break;t.isub(r)}return r.iushln(i)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,r=(e-t)/26,n=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=n,this;for(var a=n,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),i(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:n<e?-1:1}return 0!==this.negative?0|-t:t},a.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},a.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var i=0|this.words[r],n=0|e.words[r];if(i!==n){i<n?t=-1:i>n&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new T(e)},a.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function w(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function E(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function A(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function S(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function M(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function T(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function R(e){T.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},w.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var i=t<this.n?-1:r.ucmp(this.p);return 0===i?(r.words[0]=0,r.length=1):i>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},w.prototype.split=function(e,t){e.iushrn(this.n,0,t)},w.prototype.imulK=function(e){return e.imul(this.k)},n(E,w),E.prototype.split=function(e,t){for(var r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var n=e.words[9];for(t.words[t.length++]=4194303&n,i=10;i<e.length;i++){var a=0|e.words[i];e.words[i-10]=(4194303&a)<<4|n>>>22,n=a}n>>>=22,e.words[i-10]=n,0===n&&e.length>10?e.length-=10:e.length-=9},E.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var i=0|e.words[r];t+=977*i,e.words[r]=67108863&t,t=64*i+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(A,w),n(S,w),n(M,w),M.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var i=19*(0|e.words[r])+t,n=67108863&i;i>>>=26,e.words[r]=n,t=i}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new E;else if("p224"===e)t=new A;else if("p192"===e)t=new S;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new M}return v[e]=t,t},T.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},T.prototype._verify2=function(e,t){i(0==(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},T.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(h(e,e.umod(this.m)._forceRed(this)),e)},T.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},T.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},T.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},T.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},T.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},T.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},T.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},T.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},T.prototype.isqr=function(e){return this.imul(e,e.clone())},T.prototype.sqr=function(e){return this.mul(e,e)},T.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var r=this.m.add(new a(1)).iushrn(2);return this.pow(e,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),d=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new a(2*h*h).toRed(this);0!==this.pow(h,d).cmp(u);)h.redIAdd(u);for(var l=this.pow(h,n),f=this.pow(e,n.addn(1).iushrn(1)),c=this.pow(e,n),p=o;0!==c.cmp(s);){for(var m=c,g=0;0!==m.cmp(s);g++)m=m.redSqr();i(g<p);var _=this.pow(l,new a(1).iushln(p-g-1));f=f.redMul(_),l=_.redSqr(),c=c.redMul(l),p=g}return f},T.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},T.prototype.pow=function(e,t){if(t.isZero())return new a(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new a(1).toRed(this),r[1]=e;for(var i=2;i<r.length;i++)r[i]=this.mul(r[i-1],e);var n=r[0],o=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),i=t.length-1;i>=0;i--){for(var d=t.words[i],h=u-1;h>=0;h--){var l=d>>h&1;n!==r[0]&&(n=this.sqr(n)),0!==l||0!==o?(o<<=1,o|=l,(4===++s||0===i&&0===h)&&(n=this.mul(n,r[o]),s=0,o=0)):s=0}u=26}return n},T.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},T.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new R(e)},n(R,T),R.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},R.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},R.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},R.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var r=e.mul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},R.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,this)}).call(this,r(55)(e))},function(e,t,r){"use strict";var i=t;i.bignum=r(11),i.define=r(214).define,i.base=r(217),i.constants=r(218),i.decoders=r(117),i.encoders=r(115)},function(e,t,r){"use strict";var i=t;i.der=r(116),i.pem=r(215)},function(e,t,r){"use strict";var i=r(5),n=r(62).Buffer,a=r(63),o=r(65);function s(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new u,this.tree._init(e.body)}function u(e){a.call(this,"der",e)}function d(e){return e<10?"0"+e:e}e.exports=s,s.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},i(u,a),u.prototype._encodeComposite=function(e,t,r,i){var a=function(e,t,r,i){var n;"seqof"===e?e="seq":"setof"===e&&(e="set");if(o.tagByName.hasOwnProperty(e))n=o.tagByName[e];else{if("number"!=typeof e||(0|e)!==e)return i.error("Unknown tag: "+e);n=e}if(n>=31)return i.error("Multi-octet tag encoding unsupported");t||(n|=32);return n|=o.tagClassByName[r||"universal"]<<6}(e,t,r,this.reporter);if(i.length<128){var s=n.alloc(2);return s[0]=a,s[1]=i.length,this._createEncoderBuffer([s,i])}for(var u=1,d=i.length;d>=256;d>>=8)u++;var h=n.alloc(2+u);h[0]=a,h[1]=128|u;for(var l=1+u,f=i.length;f>0;l--,f>>=8)h[l]=255&f;return this._createEncoderBuffer([h,i])},u.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var r=n.alloc(2*e.length),i=0;i<e.length;i++)r.writeUInt16BE(e.charCodeAt(i),2*i);return this._createEncoderBuffer(r)}return"numstr"===t?this._isNumstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===t?this._isPrintstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(t)||"objDesc"===t?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: "+t+" unsupported")},u.prototype._encodeObjid=function(e,t,r){if("string"==typeof e){if(!t)return this.reporter.error("string objid given, but no values map found");if(!t.hasOwnProperty(e))return this.reporter.error("objid not found in values map");e=t[e].split(/[\s.]+/g);for(var i=0;i<e.length;i++)e[i]|=0}else if(Array.isArray(e)){e=e.slice();for(var a=0;a<e.length;a++)e[a]|=0}if(!Array.isArray(e))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(e));if(!r){if(e[1]>=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}for(var o=0,s=0;s<e.length;s++){var u=e[s];for(o++;u>=128;u>>=7)o++}for(var d=n.alloc(o),h=d.length-1,l=e.length-1;l>=0;l--){var f=e[l];for(d[h--]=127&f;(f>>=7)>0;)d[h--]=128|127&f}return this._createEncoderBuffer(d)},u.prototype._encodeTime=function(e,t){var r,i=new Date(e);return"gentime"===t?r=[d(i.getUTCFullYear()),d(i.getUTCMonth()+1),d(i.getUTCDate()),d(i.getUTCHours()),d(i.getUTCMinutes()),d(i.getUTCSeconds()),"Z"].join(""):"utctime"===t?r=[d(i.getUTCFullYear()%100),d(i.getUTCMonth()+1),d(i.getUTCDate()),d(i.getUTCHours()),d(i.getUTCMinutes()),d(i.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(r,"octstr")},u.prototype._encodeNull=function(){return this._createEncoderBuffer("")},u.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!n.isBuffer(e)){var r=e.toArray();!e.sign&&128&r[0]&&r.unshift(0),e=n.from(r)}if(n.isBuffer(e)){var i=e.length;0===e.length&&i++;var a=n.alloc(i);return e.copy(a),0===e.length&&(a[0]=0),this._createEncoderBuffer(a)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);for(var o=1,s=e;s>=256;s>>=8)o++;for(var u=new Array(o),d=u.length-1;d>=0;d--)u[d]=255&e,e>>=8;return 128&u[0]&&u.unshift(0),this._createEncoderBuffer(n.from(u))},u.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},u.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},u.prototype._skipDefault=function(e,t,r){var i,n=this._baseState;if(null===n.default)return!1;var a=e.join();if(void 0===n.defaultBuffer&&(n.defaultBuffer=this._encodeValue(n.default,t,r).join()),a.length!==n.defaultBuffer.length)return!1;for(i=0;i<a.length;i++)if(a[i]!==n.defaultBuffer[i])return!1;return!0}},function(e,t,r){"use strict";var i=t;i.der=r(118),i.pem=r(216)},function(e,t,r){"use strict";var i=r(5),n=r(11),a=r(35).DecoderBuffer,o=r(63),s=r(65);function u(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new d,this.tree._init(e.body)}function d(e){o.call(this,"der",e)}function h(e,t){var r=e.readUInt8(t);if(e.isError(r))return r;var i=s.tagClass[r>>6],n=0==(32&r);if(31==(31&r)){var a=r;for(r=0;128==(128&a);){if(a=e.readUInt8(t),e.isError(a))return a;r<<=7,r|=127&a}}else r&=31;return{cls:i,primitive:n,tag:r,tagStr:s.tag[r]}}function l(e,t,r){var i=e.readUInt8(r);if(e.isError(i))return i;if(!t&&128===i)return null;if(0==(128&i))return i;var n=127&i;if(n>4)return e.error("length octect is too long");i=0;for(var a=0;a<n;a++){i<<=8;var o=e.readUInt8(r);if(e.isError(o))return o;i|=o}return i}e.exports=u,u.prototype.decode=function(e,t){return a.isDecoderBuffer(e)||(e=new a(e,t)),this.tree._decode(e,t)},i(d,o),d.prototype._peekTag=function(e,t,r){if(e.isEmpty())return!1;var i=e.save(),n=h(e,'Failed to peek tag: "'+t+'"');return e.isError(n)?n:(e.restore(i),n.tag===t||n.tagStr===t||n.tagStr+"of"===t||r)},d.prototype._decodeTag=function(e,t,r){var i=h(e,'Failed to decode tag of "'+t+'"');if(e.isError(i))return i;var n=l(e,i.primitive,'Failed to get length of "'+t+'"');if(e.isError(n))return n;if(!r&&i.tag!==t&&i.tagStr!==t&&i.tagStr+"of"!==t)return e.error('Failed to match tag: "'+t+'"');if(i.primitive||null!==n)return e.skip(n,'Failed to match body of: "'+t+'"');var a=e.save(),o=this._skipUntilEnd(e,'Failed to skip indefinite length body: "'+this.tag+'"');return e.isError(o)?o:(n=e.offset-a.offset,e.restore(a),e.skip(n,'Failed to match body of: "'+t+'"'))},d.prototype._skipUntilEnd=function(e,t){for(;;){var r=h(e,t);if(e.isError(r))return r;var i=l(e,r.primitive,t);if(e.isError(i))return i;var n=void 0;if(n=r.primitive||null!==i?e.skip(i):this._skipUntilEnd(e,t),e.isError(n))return n;if("end"===r.tagStr)break}},d.prototype._decodeList=function(e,t,r,i){for(var n=[];!e.isEmpty();){var a=this._peekTag(e,"end");if(e.isError(a))return a;var o=r.decode(e,"der",i);if(e.isError(o)&&a)break;n.push(o)}return n},d.prototype._decodeStr=function(e,t){if("bitstr"===t){var r=e.readUInt8();return e.isError(r)?r:{unused:r,data:e.raw()}}if("bmpstr"===t){var i=e.raw();if(i.length%2==1)return e.error("Decoding of string type: bmpstr length mismatch");for(var n="",a=0;a<i.length/2;a++)n+=String.fromCharCode(i.readUInt16BE(2*a));return n}if("numstr"===t){var o=e.raw().toString("ascii");return this._isNumstr(o)?o:e.error("Decoding of string type: numstr unsupported characters")}if("octstr"===t)return e.raw();if("objDesc"===t)return e.raw();if("printstr"===t){var s=e.raw().toString("ascii");return this._isPrintstr(s)?s:e.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(t)?e.raw().toString():e.error("Decoding of string type: "+t+" unsupported")},d.prototype._decodeObjid=function(e,t,r){for(var i,n=[],a=0,o=0;!e.isEmpty();)a<<=7,a|=127&(o=e.readUInt8()),0==(128&o)&&(n.push(a),a=0);128&o&&n.push(a);var s=n[0]/40|0,u=n[0]%40;if(i=r?n:[s,u].concat(n.slice(1)),t){var d=t[i.join(" ")];void 0===d&&(d=t[i.join(".")]),void 0!==d&&(i=d)}return i},d.prototype._decodeTime=function(e,t){var r,i,n,a,o,s,u=e.raw().toString();if("gentime"===t)r=0|u.slice(0,4),i=0|u.slice(4,6),n=0|u.slice(6,8),a=0|u.slice(8,10),o=0|u.slice(10,12),s=0|u.slice(12,14);else{if("utctime"!==t)return e.error("Decoding "+t+" time is not supported yet");r=0|u.slice(0,2),i=0|u.slice(2,4),n=0|u.slice(4,6),a=0|u.slice(6,8),o=0|u.slice(8,10),s=0|u.slice(10,12),r=r<70?2e3+r:1900+r}return Date.UTC(r,i-1,n,a,o,s,0)},d.prototype._decodeNull=function(){return null},d.prototype._decodeBool=function(e){var t=e.readUInt8();return e.isError(t)?t:0!==t},d.prototype._decodeInt=function(e,t){var r=e.raw(),i=new n(r);return t&&(i=t[i.toString(10)]||i),i},d.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getDecoder("der").tree}},function(e){e.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},function(e,t,r){var i=r(31),n=r(6).Buffer;function a(e){var t=n.allocUnsafe(4);return t.writeUInt32BE(e,0),t}e.exports=function(e,t){for(var r,o=n.alloc(0),s=0;o.length<t;)r=a(s++),o=n.concat([o,i("sha1").update(e).update(r).digest()]);return o.slice(0,t)}},function(e,t){e.exports=function(e,t){for(var r=e.length,i=-1;++i<r;)e[i]^=t[i];return e}},function(e,t,r){var i=r(11),n=r(6).Buffer;e.exports=function(e,t){return n.from(e.toRed(i.mont(t.modulus)).redPow(new i(t.publicExponent)).fromRed().toArray())}},function(e,t,r){"use strict";(function(t){var i,n=(i=r(127))&&"object"==typeof i&&"default"in i?i.default:i;e.exports=function(e){for(var r,i=(r=e,n.atob?n.atob(r):t.from(r,"base64").toString("binary")),a=new Uint8Array(i.length),o=0;o<i.length;o++)a[o]=i.charCodeAt(o);return a}}).call(this,r(10).Buffer)},function(e,t,r){(function(t,r){
- /*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version v4.2.8+1e68dce6
- */
- var i;i=function(){"use strict";function e(e){return"function"==typeof e}var i=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},n=0,a=void 0,o=void 0,s=function(e,t){p[n]=e,p[n+1]=t,2===(n+=2)&&(o?o(m):_())},u="undefined"!=typeof window?window:void 0,d=u||{},h=d.MutationObserver||d.WebKitMutationObserver,l="undefined"==typeof self&&void 0!==t&&"[object process]"==={}.toString.call(t),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function c(){var e=setTimeout;return function(){return e(m,1)}}var p=new Array(1e3);function m(){for(var e=0;e<n;e+=2)(0,p[e])(p[e+1]),p[e]=void 0,p[e+1]=void 0;n=0}var g,_=void 0;function y(e,t){var r=this,i=new this.constructor(w);void 0===i[v]&&D(i);var n=r._state;if(n){var a=arguments[n-1];s((function(){return I(n,i,a,r._result)}))}else R(r,i,e,t);return i}function b(e){if(e&&"object"==typeof e&&e.constructor===this)return e;var t=new this(w);return A(t,e),t}l?_=function(){return t.nextTick(m)}:h?_=function(){var e=0,t=new h(m),r=document.createTextNode("");return t.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}():f?((g=new MessageChannel).port1.onmessage=m,_=function(){return g.port2.postMessage(0)}):_=void 0===u?function(){try{var e=Function("return this")().require("vertx");return void 0!==(a=e.runOnLoop||e.runOnContext)?function(){a(m)}:c()}catch(e){return c()}}():c();var v=Math.random().toString(36).substring(2);function w(){}function E(t,r,i){r.constructor===t.constructor&&i===y&&r.constructor.resolve===b?function(e,t){1===t._state?M(e,t._result):2===t._state?T(e,t._result):R(t,void 0,(function(t){return A(e,t)}),(function(t){return T(e,t)}))}(t,r):void 0===i?M(t,r):e(i)?function(e,t,r){s((function(e){var i=!1,n=function(e,t,r,i){try{e.call(t,r,i)}catch(e){return e}}(r,t,(function(r){i||(i=!0,t!==r?A(e,r):M(e,r))}),(function(t){i||(i=!0,T(e,t))}),e._label);!i&&n&&(i=!0,T(e,n))}),e)}(t,r,i):M(t,r)}function A(e,t){if(e===t)T(e,new TypeError("You cannot resolve a promise with itself"));else if(n=typeof(i=t),null===i||"object"!==n&&"function"!==n)M(e,t);else{var r=void 0;try{r=t.then}catch(t){return void T(e,t)}E(e,t,r)}var i,n}function S(e){e._onerror&&e._onerror(e._result),k(e)}function M(e,t){void 0===e._state&&(e._result=t,e._state=1,0!==e._subscribers.length&&s(k,e))}function T(e,t){void 0===e._state&&(e._state=2,e._result=t,s(S,e))}function R(e,t,r,i){var n=e._subscribers,a=n.length;e._onerror=null,n[a]=t,n[a+1]=r,n[a+2]=i,0===a&&e._state&&s(k,e)}function k(e){var t=e._subscribers,r=e._state;if(0!==t.length){for(var i=void 0,n=void 0,a=e._result,o=0;o<t.length;o+=3)i=t[o],n=t[o+r],i?I(r,i,n,a):n(a);e._subscribers.length=0}}function I(t,r,i,n){var a=e(i),o=void 0,s=void 0,u=!0;if(a){try{o=i(n)}catch(e){u=!1,s=e}if(r===o)return void T(r,new TypeError("A promises callback cannot return that same promise."))}else o=n;void 0!==r._state||(a&&u?A(r,o):!1===u?T(r,s):1===t?M(r,o):2===t&&T(r,o))}var O=0;function D(e){e[v]=O++,e._state=void 0,e._result=void 0,e._subscribers=[]}var x=function(){function e(e,t){this._instanceConstructor=e,this.promise=new e(w),this.promise[v]||D(this.promise),i(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?M(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&M(this.promise,this._result))):T(this.promise,new Error("Array Methods must be provided an Array"))}return e.prototype._enumerate=function(e){for(var t=0;void 0===this._state&&t<e.length;t++)this._eachEntry(e[t],t)},e.prototype._eachEntry=function(e,t){var r=this._instanceConstructor,i=r.resolve;if(i===b){var n=void 0,a=void 0,o=!1;try{n=e.then}catch(e){o=!0,a=e}if(n===y&&void 0!==e._state)this._settledAt(e._state,t,e._result);else if("function"!=typeof n)this._remaining--,this._result[t]=e;else if(r===C){var s=new r(w);o?T(s,a):E(s,e,n),this._willSettleAt(s,t)}else this._willSettleAt(new r((function(t){return t(e)})),t)}else this._willSettleAt(i(e),t)},e.prototype._settledAt=function(e,t,r){var i=this.promise;void 0===i._state&&(this._remaining--,2===e?T(i,r):this._result[t]=r),0===this._remaining&&M(i,this._result)},e.prototype._willSettleAt=function(e,t){var r=this;R(e,void 0,(function(e){return r._settledAt(1,t,e)}),(function(e){return r._settledAt(2,t,e)}))},e}(),C=function(){function t(e){this[v]=O++,this._result=this._state=void 0,this._subscribers=[],w!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(e,t){try{t((function(t){A(e,t)}),(function(t){T(e,t)}))}catch(t){T(e,t)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return t.prototype.catch=function(e){return this.then(null,e)},t.prototype.finally=function(t){var r=this.constructor;return e(t)?this.then((function(e){return r.resolve(t()).then((function(){return e}))}),(function(e){return r.resolve(t()).then((function(){throw e}))})):this.then(t,t)},t}();return C.prototype.then=y,C.all=function(e){return new x(this,e).promise},C.race=function(e){var t=this;return i(e)?new t((function(r,i){for(var n=e.length,a=0;a<n;a++)t.resolve(e[a]).then(r,i)})):new t((function(e,t){return t(new TypeError("You must pass an array to race."))}))},C.resolve=b,C.reject=function(e){var t=new this(w);return T(t,e),t},C._setScheduler=function(e){o=e},C._setAsap=function(e){s=e},C._asap=s,C.polyfill=function(){var e=void 0;if(void 0!==r)e=r;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var i=null;try{i=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===i&&!t.cast)return}e.Promise=C},C.Promise=C,C},e.exports=i()}).call(this,r(9),r(13))},function(e,t,r){"use strict";t.byteLength=function(e){var t=d(e),r=t[0],i=t[1];return 3*(r+i)/4-i},t.toByteArray=function(e){var t,r,i=d(e),o=i[0],s=i[1],u=new a(function(e,t,r){return 3*(t+r)/4-r}(0,o,s)),h=0,l=s>0?o-4:o;for(r=0;r<l;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],u[h++]=t>>16&255,u[h++]=t>>8&255,u[h++]=255&t;2===s&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,u[h++]=255&t);1===s&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,u[h++]=t>>8&255,u[h++]=255&t);return u},t.fromByteArray=function(e){for(var t,r=e.length,n=r%3,a=[],o=0,s=r-n;o<s;o+=16383)a.push(h(e,o,o+16383>s?s:o+16383));1===n?(t=e[r-1],a.push(i[t>>2]+i[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],a.push(i[t>>10]+i[t>>4&63]+i[t<<2&63]+"="));return a.join("")};for(var i=[],n=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=o.length;s<u;++s)i[s]=o[s],n[o.charCodeAt(s)]=s;function d(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function h(e,t,r){for(var n,a,o=[],s=t;s<r;s+=3)n=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),o.push(i[(a=n)>>18&63]+i[a>>12&63]+i[a>>6&63]+i[63&a]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},function(e,t){
- /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
- t.read=function(e,t,r,i,n){var a,o,s=8*n-i-1,u=(1<<s)-1,d=u>>1,h=-7,l=r?n-1:0,f=r?-1:1,c=e[t+l];for(l+=f,a=c&(1<<-h)-1,c>>=-h,h+=s;h>0;a=256*a+e[t+l],l+=f,h-=8);for(o=a&(1<<-h)-1,a>>=-h,h+=i;h>0;o=256*o+e[t+l],l+=f,h-=8);if(0===a)a=1-d;else{if(a===u)return o?NaN:1/0*(c?-1:1);o+=Math.pow(2,i),a-=d}return(c?-1:1)*o*Math.pow(2,a-i)},t.write=function(e,t,r,i,n,a){var o,s,u,d=8*a-n-1,h=(1<<d)-1,l=h>>1,f=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,c=i?0:a-1,p=i?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=h):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),(t+=o+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(o++,u/=2),o+l>=h?(s=0,o=h):o+l>=1?(s=(t*u-1)*Math.pow(2,n),o+=l):(s=t*Math.pow(2,l-1)*Math.pow(2,n),o=0));n>=8;e[r+c]=255&s,c+=p,s/=256,n-=8);for(o=o<<n|s,d+=n;d>0;e[r+c]=255&o,c+=p,o/=256,d-=8);e[r+c-p]|=128*m}},function(e,t,r){(function(t){var r;r="undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{},e.exports=r}).call(this,r(13))},function(e,t,r){var i=r(129),n=r(130);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var a={insert:"head",singleton:!1};i(n,a);e.exports=n.locals||{}},function(e,t,r){"use strict";var i,n=function(){return void 0===i&&(i=Boolean(window&&document&&document.all&&!window.atob)),i},a=function(){var e={};return function(t){if(void 0===e[t]){var r=document.querySelector(t);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}e[t]=r}return e[t]}}(),o=[];function s(e){for(var t=-1,r=0;r<o.length;r++)if(o[r].identifier===e){t=r;break}return t}function u(e,t){for(var r={},i=[],n=0;n<e.length;n++){var a=e[n],u=t.base?a[0]+t.base:a[0],d=r[u]||0,h="".concat(u," ").concat(d);r[u]=d+1;var l=s(h),f={css:a[1],media:a[2],sourceMap:a[3]};-1!==l?(o[l].references++,o[l].updater(f)):o.push({identifier:h,updater:g(f,t),references:1}),i.push(h)}return i}function d(e){var t=document.createElement("style"),i=e.attributes||{};if(void 0===i.nonce){var n=r.nc;n&&(i.nonce=n)}if(Object.keys(i).forEach((function(e){t.setAttribute(e,i[e])})),"function"==typeof e.insert)e.insert(t);else{var o=a(e.insert||"head");if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}return t}var h,l=(h=[],function(e,t){return h[e]=t,h.filter(Boolean).join("\n")});function f(e,t,r,i){var n=r?"":i.media?"@media ".concat(i.media," {").concat(i.css,"}"):i.css;if(e.styleSheet)e.styleSheet.cssText=l(t,n);else{var a=document.createTextNode(n),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(a,o[t]):e.appendChild(a)}}function c(e,t,r){var i=r.css,n=r.media,a=r.sourceMap;if(n?e.setAttribute("media",n):e.removeAttribute("media"),a&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),e.styleSheet)e.styleSheet.cssText=i;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(i))}}var p=null,m=0;function g(e,t){var r,i,n;if(t.singleton){var a=m++;r=p||(p=d(t)),i=f.bind(null,r,a,!1),n=f.bind(null,r,a,!0)}else r=d(t),i=c.bind(null,r,t),n=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(r)};return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else n()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=n());var r=u(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var i=0;i<r.length;i++){var n=s(r[i]);o[n].references--}for(var a=u(e,t),d=0;d<r.length;d++){var h=s(r[d]);0===o[h].references&&(o[h].updater(),o.splice(h,1))}r=a}}}},function(e,t,r){var i=r(131),n=r(132),a=r(133),o=r(134),s=r(135);t=i(!1);var u=n(a),d=n(o),h=n(s);t.push([e.i,'@font-face {\n font-family: "iconfont"; /* Project id 3440216 */\n src: url('+u+") format('woff2'),\n url("+d+") format('woff'),\n url("+h+') format(\'truetype\');\n}\n\n.iconfont {\n font-family: "iconfont" !important;\n font-size: 16px;\n font-style: normal;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.icon-xiangji:before {\n content: "\\e62e";\n}\n\n.icon-luxiang2:before {\n content: "\\e777";\n}\n\n.icon-xiangji1:before {\n content: "\\e6e5";\n}\n\n.icon-luxiang:before {\n content: "\\e62c";\n}\n\n.icon-snapshot:before {\n content: "\\e9f2";\n}\n\n.icon-shengyin1:before {\n content: "\\e8c0";\n}\n\n.icon-xiaoping:before {\n content: "\\e8bf";\n}\n\n.icon-jingyin:before {\n content: "\\e8bb";\n}\n\n.icon-quanping1:before {\n content: "\\e8ba";\n}\n\n.icon-bofang:before {\n content: "\\e8ad";\n}\n\n.icon-zanting:before {\n content: "\\e8ab";\n}\n\n',""]),e.exports=t},function(e,t,r){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r=function(e,t){var r=e[1]||"",i=e[3];if(!i)return r;if(t&&"function"==typeof btoa){var n=(o=i,s=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),u="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),"/*# ".concat(u," */")),a=i.sources.map((function(e){return"/*# sourceURL=".concat(i.sourceRoot||"").concat(e," */")}));return[r].concat(a).concat([n]).join("\n")}var o,s,u;return[r].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(r,"}"):r})).join("")},t.i=function(e,r,i){"string"==typeof e&&(e=[[null,e,""]]);var n={};if(i)for(var a=0;a<this.length;a++){var o=this[a][0];null!=o&&(n[o]=!0)}for(var s=0;s<e.length;s++){var u=[].concat(e[s]);i&&n[u[0]]||(r&&(u[2]?u[2]="".concat(r," and ").concat(u[2]):u[2]=r),t.push(u))}},t}},function(e,t,r){"use strict";e.exports=function(e,t){return t||(t={}),"string"!=typeof(e=e&&e.__esModule?e.default:e)?e:(/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e)}},function(e,t,r){"use strict";r.r(t),t.default="data:font/woff2;base64,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"},function(e,t,r){"use strict";r.r(t),t.default="data:font/woff;base64,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"},function(e,t,r){"use strict";r.r(t),t.default="data:font/ttf;base64,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"},function(e,t,r){(t=e.exports=r(73)).Stream=t,t.Readable=t,t.Writable=r(77),t.Duplex=r(26),t.Transform=r(78),t.PassThrough=r(142),t.finished=r(46),t.pipeline=r(143)},function(e,t){},function(e,t,r){"use strict";function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var o=r(10).Buffer,s=r(139).inspect,u=s&&s.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,r,d;return t=e,(r=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return o.alloc(0);for(var t,r,i,n=o.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,r=n,i=s,o.prototype.copy.call(t,r,i),s+=a.data.length,a=a.next;return n}},{key:"consume",value:function(e,t){var r;return e<this.head.data.length?(r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,r=1,i=t.data;for(e-=i.length;t=t.next;){var n=t.data,a=e>n.length?n.length:e;if(a===n.length?i+=n:i+=n.slice(0,e),0==(e-=a)){a===n.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=n.slice(a));break}++r}return this.length-=r,i}},{key:"_getBuffer",value:function(e){var t=o.allocUnsafe(e),r=this.head,i=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var n=r.data,a=e>n.length?n.length:e;if(n.copy(t,t.length-e,0,a),0==(e-=a)){a===n.length?(++i,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=n.slice(a));break}++i}return this.length-=i,t}},{key:u,value:function(e,t){return s(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},t,{depth:0,customInspect:!1}))}}])&&a(t.prototype,r),d&&a(t,d),e}()},function(e,t){},function(e,t,r){"use strict";(function(t){var i;function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a=r(46),o=Symbol("lastResolve"),s=Symbol("lastReject"),u=Symbol("error"),d=Symbol("ended"),h=Symbol("lastPromise"),l=Symbol("handlePromise"),f=Symbol("stream");function c(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var r=e[f].read();null!==r&&(e[h]=null,e[o]=null,e[s]=null,t(c(r,!1)))}}function m(e){t.nextTick(p,e)}var g=Object.getPrototypeOf((function(){})),_=Object.setPrototypeOf((n(i={get stream(){return this[f]},next:function(){var e=this,r=this[u];if(null!==r)return Promise.reject(r);if(this[d])return Promise.resolve(c(void 0,!0));if(this[f].destroyed)return new Promise((function(r,i){t.nextTick((function(){e[u]?i(e[u]):r(c(void 0,!0))}))}));var i,n=this[h];if(n)i=new Promise(function(e,t){return function(r,i){e.then((function(){t[d]?r(c(void 0,!0)):t[l](r,i)}),i)}}(n,this));else{var a=this[f].read();if(null!==a)return Promise.resolve(c(a,!1));i=new Promise(this[l])}return this[h]=i,i}},Symbol.asyncIterator,(function(){return this})),n(i,"return",(function(){var e=this;return new Promise((function(t,r){e[f].destroy(null,(function(e){e?r(e):t(c(void 0,!0))}))}))})),i),g);e.exports=function(e){var t,r=Object.create(_,(n(t={},f,{value:e,writable:!0}),n(t,o,{value:null,writable:!0}),n(t,s,{value:null,writable:!0}),n(t,u,{value:null,writable:!0}),n(t,d,{value:e._readableState.endEmitted,writable:!0}),n(t,l,{value:function(e,t){var i=r[f].read();i?(r[h]=null,r[o]=null,r[s]=null,e(c(i,!1))):(r[o]=e,r[s]=t)},writable:!0}),t));return r[h]=null,a(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[s];return null!==t&&(r[h]=null,r[o]=null,r[s]=null,t(e)),void(r[u]=e)}var i=r[o];null!==i&&(r[h]=null,r[o]=null,r[s]=null,i(c(void 0,!0))),r[d]=!0})),e.on("readable",m.bind(null,r)),r}}).call(this,r(9))},function(e,t){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(e,t,r){"use strict";e.exports=n;var i=r(78);function n(e){if(!(this instanceof n))return new n(e);i.call(this,e)}r(5)(n,i),n.prototype._transform=function(e,t,r){r(null,e)}},function(e,t,r){"use strict";var i;var n=r(25).codes,a=n.ERR_MISSING_ARGS,o=n.ERR_STREAM_DESTROYED;function s(e){if(e)throw e}function u(e,t,n,a){a=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(a);var s=!1;e.on("close",(function(){s=!0})),void 0===i&&(i=r(46)),i(e,{readable:t,writable:n},(function(e){if(e)return a(e);s=!0,a()}));var u=!1;return function(t){if(!s&&!u)return u=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void a(t||new o("pipe"))}}function d(e){e()}function h(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?s:e.pop():s}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i,n=l(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new a("streams");var o=t.map((function(e,r){var a=r<t.length-1;return u(e,a,r>0,(function(e){i||(i=e),e&&o.forEach(d),a||(o.forEach(d),n(i))}))}));return t.reduce(h)}},function(e,t,r){var i=r(5),n=r(27),a=r(6).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,n.call(this,64,56)}function d(e){return e<<30|e>>>2}function h(e,t,r,i){return 0===e?t&r|~t&i:2===e?t&r|t&i|r&i:t^r^i}i(u,n),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,r=this._w,i=0|this._a,n=0|this._b,a=0|this._c,s=0|this._d,u=0|this._e,l=0;l<16;++l)r[l]=e.readInt32BE(4*l);for(;l<80;++l)r[l]=r[l-3]^r[l-8]^r[l-14]^r[l-16];for(var f=0;f<80;++f){var c=~~(f/20),p=0|((t=i)<<5|t>>>27)+h(c,n,a,s)+u+r[f]+o[c];u=s,s=a,a=d(n),n=i,i=p}this._a=i+this._a|0,this._b=n+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},function(e,t,r){var i=r(5),n=r(27),a=r(6).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,n.call(this,64,56)}function d(e){return e<<5|e>>>27}function h(e){return e<<30|e>>>2}function l(e,t,r,i){return 0===e?t&r|~t&i:2===e?t&r|t&i|r&i:t^r^i}i(u,n),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,r=this._w,i=0|this._a,n=0|this._b,a=0|this._c,s=0|this._d,u=0|this._e,f=0;f<16;++f)r[f]=e.readInt32BE(4*f);for(;f<80;++f)r[f]=(t=r[f-3]^r[f-8]^r[f-14]^r[f-16])<<1|t>>>31;for(var c=0;c<80;++c){var p=~~(c/20),m=d(i)+l(p,n,a,s)+u+r[c]+o[p]|0;u=s,s=a,a=h(n),n=i,i=m}this._a=i+this._a|0,this._b=n+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},function(e,t,r){var i=r(5),n=r(79),a=r(27),o=r(6).Buffer,s=new Array(64);function u(){this.init(),this._w=s,a.call(this,64,56)}i(u,n),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var e=o.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=u},function(e,t,r){var i=r(5),n=r(80),a=r(27),o=r(6).Buffer,s=new Array(160);function u(){this.init(),this._w=s,a.call(this,128,112)}i(u,n),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var e=o.allocUnsafe(48);function t(t,r,i){e.writeInt32BE(t,i),e.writeInt32BE(r,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=u},function(e,t,r){e.exports=n;var i=r(8).EventEmitter;function n(){i.call(this)}r(5)(n,i),n.Readable=r(49),n.Writable=r(155),n.Duplex=r(156),n.Transform=r(157),n.PassThrough=r(158),n.Stream=n,n.prototype.pipe=function(e,t){var r=this;function n(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function a(){r.readable&&r.resume&&r.resume()}r.on("data",n),e.on("drain",a),e._isStdio||t&&!1===t.end||(r.on("end",s),r.on("close",u));var o=!1;function s(){o||(o=!0,e.end())}function u(){o||(o=!0,"function"==typeof e.destroy&&e.destroy())}function d(e){if(h(),0===i.listenerCount(this,"error"))throw e}function h(){r.removeListener("data",n),e.removeListener("drain",a),r.removeListener("end",s),r.removeListener("close",u),r.removeListener("error",d),e.removeListener("error",d),r.removeListener("end",h),r.removeListener("close",h),e.removeListener("close",h)}return r.on("error",d),e.on("error",d),r.on("end",h),r.on("close",h),e.on("close",h),e.emit("pipe",r),e}},function(e,t){},function(e,t,r){"use strict";var i=r(50).Buffer,n=r(151);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var t,r,n,a=i.allocUnsafe(e>>>0),o=this.head,s=0;o;)t=o.data,r=a,n=s,t.copy(r,n),s+=o.data.length,o=o.next;return a},e}(),n&&n.inspect&&n.inspect.custom&&(e.exports.prototype[n.inspect.custom]=function(){var e=n.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,r){(function(e){var i=void 0!==e&&e||"undefined"!=typeof self&&self||window,n=Function.prototype.apply;function a(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new a(n.call(setTimeout,i,arguments),clearTimeout)},t.setInterval=function(){return new a(n.call(setInterval,i,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(i,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r(153),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,r(13))},function(e,t,r){(function(e,t){!function(e,r){"use strict";if(!e.setImmediate){var i,n,a,o,s,u=1,d={},h=!1,l=e.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(e);f=f&&f.setTimeout?f:e,"[object process]"==={}.toString.call(e.process)?i=function(e){t.nextTick((function(){p(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?e.MessageChannel?((a=new MessageChannel).port1.onmessage=function(e){p(e.data)},i=function(e){a.port2.postMessage(e)}):l&&"onreadystatechange"in l.createElement("script")?(n=l.documentElement,i=function(e){var t=l.createElement("script");t.onreadystatechange=function(){p(e),t.onreadystatechange=null,n.removeChild(t),t=null},n.appendChild(t)}):i=function(e){setTimeout(p,0,e)}:(o="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(o)&&p(+t.data.slice(o.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),i=function(t){e.postMessage(o+t,"*")}),f.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return d[u]=n,i(u),u++},f.clearImmediate=c}function c(e){delete d[e]}function p(e){if(h)setTimeout(p,0,e);else{var t=d[e];if(t){h=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(void 0,r)}}(t)}finally{c(e),h=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,r(13),r(9))},function(e,t,r){"use strict";e.exports=a;var i=r(84),n=Object.create(r(32));function a(e){if(!(this instanceof a))return new a(e);i.call(this,e)}n.inherits=r(5),n.inherits(a,i),a.prototype._transform=function(e,t,r){r(null,e)}},function(e,t,r){e.exports=r(51)},function(e,t,r){e.exports=r(23)},function(e,t,r){e.exports=r(49).Transform},function(e,t,r){e.exports=r(49).PassThrough},function(e,t,r){"use strict";var i=r(5),n=r(6).Buffer,a=r(20),o=n.alloc(128);function s(e,t){a.call(this,"digest"),"string"==typeof t&&(t=n.from(t)),this._alg=e,this._key=t,t.length>64?t=e(t):t.length<64&&(t=n.concat([t,o],64));for(var r=this._ipad=n.allocUnsafe(64),i=this._opad=n.allocUnsafe(64),s=0;s<64;s++)r[s]=54^t[s],i[s]=92^t[s];this._hash=[r]}i(s,a),s.prototype._update=function(e){this._hash.push(e)},s.prototype._final=function(){var e=this._alg(n.concat(this._hash));return this._alg(n.concat([this._opad,e]))},e.exports=s},function(e,t,r){e.exports=r(87)},function(e,t,r){(function(t){var i,n,a=r(6).Buffer,o=r(89),s=r(90),u=r(91),d=r(92),h=t.crypto&&t.crypto.subtle,l={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},f=[];function c(){return n||(n=t.process&&t.process.nextTick?t.process.nextTick:t.queueMicrotask?t.queueMicrotask:t.setImmediate?t.setImmediate:t.setTimeout)}function p(e,t,r,i,n){return h.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return h.deriveBits({name:"PBKDF2",salt:t,iterations:r,hash:{name:n}},e,i<<3)})).then((function(e){return a.from(e)}))}e.exports=function(e,r,n,m,g,_){"function"==typeof g&&(_=g,g=void 0);var y=l[(g=g||"sha1").toLowerCase()];if(y&&"function"==typeof t.Promise){if(o(n,m),e=d(e,s,"Password"),r=d(r,s,"Salt"),"function"!=typeof _)throw new Error("No callback provided to pbkdf2");!function(e,t){e.then((function(e){c()((function(){t(null,e)}))}),(function(e){c()((function(){t(e)}))}))}(function(e){if(t.process&&!t.process.browser)return Promise.resolve(!1);if(!h||!h.importKey||!h.deriveBits)return Promise.resolve(!1);if(void 0!==f[e])return f[e];var r=p(i=i||a.alloc(8),i,10,128,e).then((function(){return!0})).catch((function(){return!1}));return f[e]=r,r}(y).then((function(t){return t?p(e,r,n,m,y):u(e,r,n,m,g)})),_)}else c()((function(){var t;try{t=u(e,r,n,m,g)}catch(e){return _(e)}_(null,t)}))}}).call(this,r(13))},function(e,t,r){var i=r(163),n=r(53),a=r(54),o=r(176),s=r(40);function u(e,t,r){if(e=e.toLowerCase(),a[e])return n.createCipheriv(e,t,r);if(o[e])return new i({key:t,iv:r,mode:e});throw new TypeError("invalid suite type")}function d(e,t,r){if(e=e.toLowerCase(),a[e])return n.createDecipheriv(e,t,r);if(o[e])return new i({key:t,iv:r,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var r,i;if(e=e.toLowerCase(),a[e])r=a[e].key,i=a[e].iv;else{if(!o[e])throw new TypeError("invalid suite type");r=8*o[e].key,i=o[e].iv}var n=s(t,!1,r,i);return u(e,n.key,n.iv)},t.createCipheriv=t.Cipheriv=u,t.createDecipher=t.Decipher=function(e,t){var r,i;if(e=e.toLowerCase(),a[e])r=a[e].key,i=a[e].iv;else{if(!o[e])throw new TypeError("invalid suite type");r=8*o[e].key,i=o[e].iv}var n=s(t,!1,r,i);return d(e,n.key,n.iv)},t.createDecipheriv=t.Decipheriv=d,t.listCiphers=t.getCiphers=function(){return Object.keys(o).concat(n.getCiphers())}},function(e,t,r){var i=r(20),n=r(164),a=r(5),o=r(6).Buffer,s={"des-ede3-cbc":n.CBC.instantiate(n.EDE),"des-ede3":n.EDE,"des-ede-cbc":n.CBC.instantiate(n.EDE),"des-ede":n.EDE,"des-cbc":n.CBC.instantiate(n.DES),"des-ecb":n.DES};function u(e){i.call(this);var t,r=e.mode.toLowerCase(),n=s[r];t=e.decrypt?"decrypt":"encrypt";var a=e.key;o.isBuffer(a)||(a=o.from(a)),"des-ede"!==r&&"des-ede-cbc"!==r||(a=o.concat([a,a.slice(0,8)]));var u=e.iv;o.isBuffer(u)||(u=o.from(u)),this._des=n.create({key:a,iv:u,type:t})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],e.exports=u,a(u,i),u.prototype._update=function(e){return o.from(this._des.update(e))},u.prototype._final=function(){return o.from(this._des.final())}},function(e,t,r){"use strict";t.utils=r(93),t.Cipher=r(52),t.DES=r(94),t.CBC=r(165),t.EDE=r(166)},function(e,t,r){"use strict";var i=r(14),n=r(5),a={};function o(e){i.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}t.instantiate=function(e){function t(t){e.call(this,t),this._cbcInit()}n(t,e);for(var r=Object.keys(a),i=0;i<r.length;i++){var o=r[i];t.prototype[o]=a[o]}return t.create=function(e){return new t(e)},t},a._cbcInit=function(){var e=new o(this.options.iv);this._cbcState=e},a._update=function(e,t,r,i){var n=this._cbcState,a=this.constructor.super_.prototype,o=n.iv;if("encrypt"===this.type){for(var s=0;s<this.blockSize;s++)o[s]^=e[t+s];a._update.call(this,o,0,r,i);for(s=0;s<this.blockSize;s++)o[s]=r[i+s]}else{a._update.call(this,e,t,r,i);for(s=0;s<this.blockSize;s++)r[i+s]^=o[s];for(s=0;s<this.blockSize;s++)o[s]=e[t+s]}}},function(e,t,r){"use strict";var i=r(14),n=r(5),a=r(52),o=r(94);function s(e,t){i.equal(t.length,24,"Invalid key length");var r=t.slice(0,8),n=t.slice(8,16),a=t.slice(16,24);this.ciphers="encrypt"===e?[o.create({type:"encrypt",key:r}),o.create({type:"decrypt",key:n}),o.create({type:"encrypt",key:a})]:[o.create({type:"decrypt",key:a}),o.create({type:"encrypt",key:n}),o.create({type:"decrypt",key:r})]}function u(e){a.call(this,e);var t=new s(this.type,this.options.key);this._edeState=t}n(u,a),e.exports=u,u.create=function(e){return new u(e)},u.prototype._update=function(e,t,r,i){var n=this._edeState;n.ciphers[0]._update(e,t,r,i),n.ciphers[1]._update(r,i,r,i),n.ciphers[2]._update(r,i,r,i)},u.prototype._pad=o.prototype._pad,u.prototype._unpad=o.prototype._unpad},function(e,t,r){var i=r(54),n=r(98),a=r(6).Buffer,o=r(99),s=r(20),u=r(39),d=r(40);function h(e,t,r){s.call(this),this._cache=new f,this._cipher=new u.AES(t),this._prev=a.from(r),this._mode=e,this._autopadding=!0}r(5)(h,s),h.prototype._update=function(e){var t,r;this._cache.add(e);for(var i=[];t=this._cache.get();)r=this._mode.encrypt(this,t),i.push(r);return a.concat(i)};var l=a.alloc(16,16);function f(){this.cache=a.allocUnsafe(0)}function c(e,t,r){var s=i[e.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=a.from(t)),t.length!==s.key/8)throw new TypeError("invalid key length "+t.length);if("string"==typeof r&&(r=a.from(r)),"GCM"!==s.mode&&r.length!==s.iv)throw new TypeError("invalid iv length "+r.length);return"stream"===s.type?new o(s.module,t,r):"auth"===s.type?new n(s.module,t,r):new h(s.module,t,r)}h.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(l))throw this._cipher.scrub(),new Error("data not multiple of block length")},h.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},f.prototype.add=function(e){this.cache=a.concat([this.cache,e])},f.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},f.prototype.flush=function(){for(var e=16-this.cache.length,t=a.allocUnsafe(e),r=-1;++r<e;)t.writeUInt8(e,r);return a.concat([this.cache,t])},t.createCipheriv=c,t.createCipher=function(e,t){var r=i[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=d(t,!1,r.key,r.iv);return c(e,n.key,n.iv)}},function(e,t){t.encrypt=function(e,t){return e._cipher.encryptBlock(t)},t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},function(e,t,r){var i=r(33);t.encrypt=function(e,t){var r=i(t,e._prev);return e._prev=e._cipher.encryptBlock(r),e._prev},t.decrypt=function(e,t){var r=e._prev;e._prev=t;var n=e._cipher.decryptBlock(t);return i(n,r)}},function(e,t,r){var i=r(6).Buffer,n=r(33);function a(e,t,r){var a=t.length,o=n(t,e._cache);return e._cache=e._cache.slice(a),e._prev=i.concat([e._prev,r?t:o]),o}t.encrypt=function(e,t,r){for(var n,o=i.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=i.allocUnsafe(0)),!(e._cache.length<=t.length)){o=i.concat([o,a(e,t,r)]);break}n=e._cache.length,o=i.concat([o,a(e,t.slice(0,n),r)]),t=t.slice(n)}return o}},function(e,t,r){var i=r(6).Buffer;function n(e,t,r){var n=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=i.concat([e._prev.slice(1),i.from([r?t:n])]),n}t.encrypt=function(e,t,r){for(var a=t.length,o=i.allocUnsafe(a),s=-1;++s<a;)o[s]=n(e,t[s],r);return o}},function(e,t,r){var i=r(6).Buffer;function n(e,t,r){for(var i,n,o=-1,s=0;++o<8;)i=t&1<<7-o?128:0,s+=(128&(n=e._cipher.encryptBlock(e._prev)[0]^i))>>o%8,e._prev=a(e._prev,r?i:n);return s}function a(e,t){var r=e.length,n=-1,a=i.allocUnsafe(e.length);for(e=i.concat([e,i.from([t])]);++n<r;)a[n]=e[n]<<1|e[n+1]>>7;return a}t.encrypt=function(e,t,r){for(var a=t.length,o=i.allocUnsafe(a),s=-1;++s<a;)o[s]=n(e,t[s],r);return o}},function(e,t,r){(function(e){var i=r(33);function n(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}t.encrypt=function(t,r){for(;t._cache.length<r.length;)t._cache=e.concat([t._cache,n(t)]);var a=t._cache.slice(0,r.length);return t._cache=t._cache.slice(r.length),i(r,a)}}).call(this,r(10).Buffer)},function(e,t,r){var i=r(6).Buffer,n=i.alloc(16,0);function a(e){var t=i.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function o(e){this.h=e,this.state=i.alloc(16,0),this.cache=i.allocUnsafe(0)}o.prototype.ghash=function(e){for(var t=-1;++t<e.length;)this.state[t]^=e[t];this._multiply()},o.prototype._multiply=function(){for(var e,t,r,i=[(e=this.h).readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)],n=[0,0,0,0],o=-1;++o<128;){for(0!=(this.state[~~(o/8)]&1<<7-o%8)&&(n[0]^=i[0],n[1]^=i[1],n[2]^=i[2],n[3]^=i[3]),r=0!=(1&i[3]),t=3;t>0;t--)i[t]=i[t]>>>1|(1&i[t-1])<<31;i[0]=i[0]>>>1,r&&(i[0]=i[0]^225<<24)}this.state=a(n)},o.prototype.update=function(e){var t;for(this.cache=i.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},o.prototype.final=function(e,t){return this.cache.length&&this.ghash(i.concat([this.cache,n],16)),this.ghash(a([0,e,0,t])),this.state},e.exports=o},function(e,t,r){var i=r(98),n=r(6).Buffer,a=r(54),o=r(99),s=r(20),u=r(39),d=r(40);function h(e,t,r){s.call(this),this._cache=new l,this._last=void 0,this._cipher=new u.AES(t),this._prev=n.from(r),this._mode=e,this._autopadding=!0}function l(){this.cache=n.allocUnsafe(0)}function f(e,t,r){var s=a[e.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof r&&(r=n.from(r)),"GCM"!==s.mode&&r.length!==s.iv)throw new TypeError("invalid iv length "+r.length);if("string"==typeof t&&(t=n.from(t)),t.length!==s.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===s.type?new o(s.module,t,r,!0):"auth"===s.type?new i(s.module,t,r,!0):new h(s.module,t,r)}r(5)(h,s),h.prototype._update=function(e){var t,r;this._cache.add(e);for(var i=[];t=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,t),i.push(r);return n.concat(i)},h.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");var r=-1;for(;++r<t;)if(e[r+(16-t)]!==t)throw new Error("unable to decrypt data");if(16===t)return;return e.slice(0,16-t)}(this._mode.decrypt(this,e));if(e)throw new Error("data not multiple of block length")},h.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},l.prototype.add=function(e){this.cache=n.concat([this.cache,e])},l.prototype.get=function(e){var t;if(e){if(this.cache.length>16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},l.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var r=a[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var i=d(t,!1,r.key,r.iv);return f(e,i.key,i.iv)},t.createDecipheriv=f},function(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},function(e,t,r){(function(e){var i=r(100),n=r(180),a=r(181);var o={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(t){var r=new e(n[t].prime,"hex"),i=new e(n[t].gen,"hex");return new a(r,i)},t.createDiffieHellman=t.DiffieHellman=function t(r,n,s,u){return e.isBuffer(n)||void 0===o[n]?t(r,"binary",n,s):(n=n||"binary",u=u||"binary",s=s||new e([2]),e.isBuffer(s)||(s=new e(s,u)),"number"==typeof r?new a(i(r,s),s,!0):(e.isBuffer(r)||(r=new e(r,n)),new a(r,s,!0)))}}).call(this,r(10).Buffer)},function(e,t){},function(e,t){},function(e){e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},function(e,t,r){(function(t){var i=r(11),n=new(r(101)),a=new i(24),o=new i(11),s=new i(10),u=new i(3),d=new i(7),h=r(100),l=r(24);function f(e,r){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),this._pub=new i(e),this}function c(e,r){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),this._priv=new i(e),this}e.exports=m;var p={};function m(e,t,r){this.setGenerator(t),this.__prime=new i(e),this._prime=i.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=f,this.setPrivateKey=c):this._primeCode=8}function g(e,r){var i=new t(e.toArray());return r?i.toString(r):i}Object.defineProperty(m.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var r=t.toString("hex"),i=[r,e.toString(16)].join("_");if(i in p)return p[i];var l,f=0;if(e.isEven()||!h.simpleSieve||!h.fermatTest(e)||!n.test(e))return f+=1,f+="02"===r||"05"===r?8:4,p[i]=f,f;switch(n.test(e.shrn(1))||(f+=2),r){case"02":e.mod(a).cmp(o)&&(f+=8);break;case"05":(l=e.mod(s)).cmp(u)&&l.cmp(d)&&(f+=8);break;default:f+=4}return p[i]=f,f}(this.__prime,this.__gen)),this._primeCode}}),m.prototype.generateKeys=function(){return this._priv||(this._priv=new i(l(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},m.prototype.computeSecret=function(e){var r=(e=(e=new i(e)).toRed(this._prime)).redPow(this._priv).fromRed(),n=new t(r.toArray()),a=this.getPrime();if(n.length<a.length){var o=new t(a.length-n.length);o.fill(0),n=t.concat([o,n])}return n},m.prototype.getPublicKey=function(e){return g(this._pub,e)},m.prototype.getPrivateKey=function(e){return g(this._priv,e)},m.prototype.getPrime=function(e){return g(this.__prime,e)},m.prototype.getGenerator=function(e){return g(this._gen,e)},m.prototype.setGenerator=function(e,r){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),this.__gen=e,this._gen=new i(e),this}}).call(this,r(10).Buffer)},function(e,t,r){var i=r(6).Buffer,n=r(31),a=r(183),o=r(5),s=r(191),u=r(222),d=r(87);function h(e){a.Writable.call(this);var t=d[e];if(!t)throw new Error("Unknown message digest");this._hashType=t.hash,this._hash=n(t.hash),this._tag=t.id,this._signType=t.sign}function l(e){a.Writable.call(this);var t=d[e];if(!t)throw new Error("Unknown message digest");this._hash=n(t.hash),this._tag=t.id,this._signType=t.sign}function f(e){return new h(e)}function c(e){return new l(e)}Object.keys(d).forEach((function(e){d[e].id=i.from(d[e].id,"hex"),d[e.toLowerCase()]=d[e]})),o(h,a.Writable),h.prototype._write=function(e,t,r){this._hash.update(e),r()},h.prototype.update=function(e,t){return"string"==typeof e&&(e=i.from(e,t)),this._hash.update(e),this},h.prototype.sign=function(e,t){this.end();var r=this._hash.digest(),i=s(r,e,this._hashType,this._signType,this._tag);return t?i.toString(t):i},o(l,a.Writable),l.prototype._write=function(e,t,r){this._hash.update(e),r()},l.prototype.update=function(e,t){return"string"==typeof e&&(e=i.from(e,t)),this._hash.update(e),this},l.prototype.verify=function(e,t,r){"string"==typeof t&&(t=i.from(t,r)),this.end();var n=this._hash.digest();return u(t,n,e,this._signType,this._tag)},e.exports={Sign:f,Verify:c,createSign:f,createVerify:c}},function(e,t,r){(t=e.exports=r(102)).Stream=t,t.Readable=t,t.Writable=r(106),t.Duplex=r(29),t.Transform=r(107),t.PassThrough=r(189),t.finished=r(57),t.pipeline=r(190)},function(e,t){},function(e,t,r){"use strict";function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var o=r(10).Buffer,s=r(186).inspect,u=s&&s.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,r,d;return t=e,(r=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return o.alloc(0);for(var t,r,i,n=o.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,r=n,i=s,o.prototype.copy.call(t,r,i),s+=a.data.length,a=a.next;return n}},{key:"consume",value:function(e,t){var r;return e<this.head.data.length?(r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,r=1,i=t.data;for(e-=i.length;t=t.next;){var n=t.data,a=e>n.length?n.length:e;if(a===n.length?i+=n:i+=n.slice(0,e),0==(e-=a)){a===n.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=n.slice(a));break}++r}return this.length-=r,i}},{key:"_getBuffer",value:function(e){var t=o.allocUnsafe(e),r=this.head,i=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var n=r.data,a=e>n.length?n.length:e;if(n.copy(t,t.length-e,0,a),0==(e-=a)){a===n.length?(++i,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=n.slice(a));break}++i}return this.length-=i,t}},{key:u,value:function(e,t){return s(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},t,{depth:0,customInspect:!1}))}}])&&a(t.prototype,r),d&&a(t,d),e}()},function(e,t){},function(e,t,r){"use strict";(function(t){var i;function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a=r(57),o=Symbol("lastResolve"),s=Symbol("lastReject"),u=Symbol("error"),d=Symbol("ended"),h=Symbol("lastPromise"),l=Symbol("handlePromise"),f=Symbol("stream");function c(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var r=e[f].read();null!==r&&(e[h]=null,e[o]=null,e[s]=null,t(c(r,!1)))}}function m(e){t.nextTick(p,e)}var g=Object.getPrototypeOf((function(){})),_=Object.setPrototypeOf((n(i={get stream(){return this[f]},next:function(){var e=this,r=this[u];if(null!==r)return Promise.reject(r);if(this[d])return Promise.resolve(c(void 0,!0));if(this[f].destroyed)return new Promise((function(r,i){t.nextTick((function(){e[u]?i(e[u]):r(c(void 0,!0))}))}));var i,n=this[h];if(n)i=new Promise(function(e,t){return function(r,i){e.then((function(){t[d]?r(c(void 0,!0)):t[l](r,i)}),i)}}(n,this));else{var a=this[f].read();if(null!==a)return Promise.resolve(c(a,!1));i=new Promise(this[l])}return this[h]=i,i}},Symbol.asyncIterator,(function(){return this})),n(i,"return",(function(){var e=this;return new Promise((function(t,r){e[f].destroy(null,(function(e){e?r(e):t(c(void 0,!0))}))}))})),i),g);e.exports=function(e){var t,r=Object.create(_,(n(t={},f,{value:e,writable:!0}),n(t,o,{value:null,writable:!0}),n(t,s,{value:null,writable:!0}),n(t,u,{value:null,writable:!0}),n(t,d,{value:e._readableState.endEmitted,writable:!0}),n(t,l,{value:function(e,t){var i=r[f].read();i?(r[h]=null,r[o]=null,r[s]=null,e(c(i,!1))):(r[o]=e,r[s]=t)},writable:!0}),t));return r[h]=null,a(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[s];return null!==t&&(r[h]=null,r[o]=null,r[s]=null,t(e)),void(r[u]=e)}var i=r[o];null!==i&&(r[h]=null,r[o]=null,r[s]=null,i(c(void 0,!0))),r[d]=!0})),e.on("readable",m.bind(null,r)),r}}).call(this,r(9))},function(e,t){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(e,t,r){"use strict";e.exports=n;var i=r(107);function n(e){if(!(this instanceof n))return new n(e);i.call(this,e)}r(5)(n,i),n.prototype._transform=function(e,t,r){r(null,e)}},function(e,t,r){"use strict";var i;var n=r(28).codes,a=n.ERR_MISSING_ARGS,o=n.ERR_STREAM_DESTROYED;function s(e){if(e)throw e}function u(e,t,n,a){a=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(a);var s=!1;e.on("close",(function(){s=!0})),void 0===i&&(i=r(57)),i(e,{readable:t,writable:n},(function(e){if(e)return a(e);s=!0,a()}));var u=!1;return function(t){if(!s&&!u)return u=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void a(t||new o("pipe"))}}function d(e){e()}function h(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?s:e.pop():s}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i,n=l(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new a("streams");var o=t.map((function(e,r){var a=r<t.length-1;return u(e,a,r>0,(function(e){i||(i=e),e&&o.forEach(d),a||(o.forEach(d),n(i))}))}));return t.reduce(h)}},function(e,t,r){var i=r(6).Buffer,n=r(85),a=r(58),o=r(59).ec,s=r(113),u=r(42),d=r(119);function h(e,t,r,a){if((e=i.from(e.toArray())).length<t.byteLength()){var o=i.alloc(t.byteLength()-e.length);e=i.concat([o,e])}var s=r.length,u=function(e,t){e=(e=l(e,t)).mod(t);var r=i.from(e.toArray());if(r.length<t.byteLength()){var n=i.alloc(t.byteLength()-r.length);r=i.concat([n,r])}return r}(r,t),d=i.alloc(s);d.fill(1);var h=i.alloc(s);return h=n(a,h).update(d).update(i.from([0])).update(e).update(u).digest(),d=n(a,h).update(d).digest(),{k:h=n(a,h).update(d).update(i.from([1])).update(e).update(u).digest(),v:d=n(a,h).update(d).digest()}}function l(e,t){var r=new s(e),i=(e.length<<3)-t.bitLength();return i>0&&r.ishrn(i),r}function f(e,t,r){var a,o;do{for(a=i.alloc(0);8*a.length<e.bitLength();)t.v=n(r,t.k).update(t.v).digest(),a=i.concat([a,t.v]);o=l(a,e),t.k=n(r,t.k).update(t.v).update(i.from([0])).digest(),t.v=n(r,t.k).update(t.v).digest()}while(-1!==o.cmp(e));return o}function c(e,t,r,i){return e.toRed(s.mont(r)).redPow(t).fromRed().mod(i)}e.exports=function(e,t,r,n,p){var m=u(t);if(m.curve){if("ecdsa"!==n&&"ecdsa/rsa"!==n)throw new Error("wrong private key type");return function(e,t){var r=d[t.curve.join(".")];if(!r)throw new Error("unknown curve "+t.curve.join("."));var n=new o(r).keyFromPrivate(t.privateKey).sign(e);return i.from(n.toDER())}(e,m)}if("dsa"===m.type){if("dsa"!==n)throw new Error("wrong private key type");return function(e,t,r){var n,a=t.params.priv_key,o=t.params.p,u=t.params.q,d=t.params.g,p=new s(0),m=l(e,u).mod(u),g=!1,_=h(a,u,e,r);for(;!1===g;)n=f(u,_,r),p=c(d,n,o,u),0===(g=n.invm(u).imul(m.add(a.mul(p))).mod(u)).cmpn(0)&&(g=!1,p=new s(0));return function(e,t){e=e.toArray(),t=t.toArray(),128&e[0]&&(e=[0].concat(e));128&t[0]&&(t=[0].concat(t));var r=[48,e.length+t.length+4,2,e.length];return r=r.concat(e,[2,t.length],t),i.from(r)}(p,g)}(e,m,r)}if("rsa"!==n&&"ecdsa/rsa"!==n)throw new Error("wrong private key type");e=i.concat([p,e]);for(var g=m.modulus.byteLength(),_=[0,1];e.length+_.length+1<g;)_.push(255);_.push(0);for(var y=-1;++y<e.length;)_.push(e[y]);return a(_,m)},e.exports.getKey=h,e.exports.makeKey=f},function(e,t,r){(function(e){!function(e,t){"use strict";function i(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function a(e,t,r){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=a:t.BN=a,a.BN=a,a.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(193).Buffer}catch(e){}function s(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void i(!1,"Invalid character in "+e)}function u(e,t,r){var i=s(e,r);return r-1>=t&&(i|=s(e,r-1)<<4),i}function d(e,t,r,n){for(var a=0,o=0,s=Math.min(e.length,r),u=t;u<s;u++){var d=e.charCodeAt(u)-48;a*=n,o=d>=49?d-49+10:d>=17?d-17+10:d,i(d>=0&&o<n,"Invalid character"),a+=o}return a}function h(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(a.isBN=function(e){return e instanceof a||null!==e&&"object"==typeof e&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),i(t===(0|t)&&t>=2&&t<=36);var n=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<e.length&&(16===t?this._parseHex(e,n,r):(this._parseBase(e,t,n),"le"===r&&this._initArray(this.toArray(),t,r)))},a.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(i(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},a.prototype._initArray=function(e,t,r){if(i("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var a,o,s=0;if("be"===r)for(n=e.length-1,a=0;n>=0;n-=3)o=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(n=0,a=0;n<e.length;n+=3)o=e[n]|e[n+1]<<8|e[n+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this._strip()},a.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var n,a=0,o=0;if("be"===r)for(i=e.length-1;i>=t;i-=2)n=u(e,t,i)<<a,this.words[o]|=67108863&n,a>=18?(a-=18,o+=1,this.words[o]|=n>>>26):a+=8;else for(i=(e.length-t)%2==0?t+1:t;i<e.length;i+=2)n=u(e,t,i)<<a,this.words[o]|=67108863&n,a>=18?(a-=18,o+=1,this.words[o]|=n>>>26):a+=8;this._strip()},a.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=t)i++;i--,n=n/t|0;for(var a=e.length-r,o=a%i,s=Math.min(a,a-o)+r,u=0,h=r;h<s;h+=i)u=d(e,h,h+i,t),this.imuln(n),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u);if(0!==o){var l=1;for(u=d(e,h,e.length,t),h=0;h<o;h++)l*=t;this.imuln(l),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u)}this._strip()},a.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},a.prototype._move=function(e){h(e,this)},a.prototype.clone=function(){var e=new a(null);return this.copy(e),e},a.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},a.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){a.prototype.inspect=l}else a.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];a.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var n=0,a=0,o=0;o<this.length;o++){var s=this.words[o],u=(16777215&(s<<n|a)).toString(16);a=s>>>24-n&16777215,(n+=2)>=26&&(n-=26,o--),r=0!==a||o!==this.length-1?f[6-u.length]+u+r:u+r}for(0!==a&&(r=a.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var d=c[e],h=p[e];r="";var l=this.clone();for(l.negative=0;!l.isZero();){var m=l.modrn(h).toString(e);r=(l=l.idivn(h)).isZero()?m+r:f[d-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16,2)},o&&(a.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function m(e,t,r){r.negative=t.negative^e.negative;var i=e.length+t.length|0;r.length=i,i=i-1|0;var n=0|e.words[0],a=0|t.words[0],o=n*a,s=67108863&o,u=o/67108864|0;r.words[0]=s;for(var d=1;d<i;d++){for(var h=u>>>26,l=67108863&u,f=Math.min(d,t.length-1),c=Math.max(0,d-e.length+1);c<=f;c++){var p=d-c|0;h+=(o=(n=0|e.words[p])*(a=0|t.words[c])+l)/67108864|0,l=67108863&o}r.words[d]=0|l,u=0|h}return 0!==u?r.words[d]=0|u:r.length--,r._strip()}a.prototype.toArrayLike=function(e,t,r){this._strip();var n=this.byteLength(),a=r||Math.max(1,n);i(n<=a,"byte array longer than desired length"),i(a>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,n),o},a.prototype._toArrayLikeLE=function(e,t){for(var r=0,i=0,n=0,a=0;n<this.length;n++){var o=this.words[n]<<a|i;e[r++]=255&o,r<e.length&&(e[r++]=o>>8&255),r<e.length&&(e[r++]=o>>16&255),6===a?(r<e.length&&(e[r++]=o>>24&255),i=0,a=0):(i=o>>>24,a+=2)}if(r<e.length)for(e[r++]=i;r<e.length;)e[r++]=0},a.prototype._toArrayLikeBE=function(e,t){for(var r=e.length-1,i=0,n=0,a=0;n<this.length;n++){var o=this.words[n]<<a|i;e[r--]=255&o,r>=0&&(e[r--]=o>>8&255),r>=0&&(e[r--]=o>>16&255),6===a?(r>=0&&(e[r--]=o>>24&255),i=0,a=0):(i=o>>>24,a+=2)}if(r>=0)for(e[r--]=i;r>=0;)e[r--]=0},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},a.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return 0!==this.negative},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},a.prototype.ior=function(e){return i(0==(this.negative|e.negative)),this.iuor(e)},a.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},a.prototype.iand=function(e){return i(0==(this.negative|e.negative)),this.iuand(e)},a.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var i=0;i<r.length;i++)this.words[i]=t.words[i]^r.words[i];if(this!==t)for(;i<t.length;i++)this.words[i]=t.words[i];return this.length=t.length,this._strip()},a.prototype.ixor=function(e){return i(0==(this.negative|e.negative)),this.iuxor(e)},a.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var n=0;n<t;n++)this.words[n]=67108863&~this.words[n];return r>0&&(this.words[n]=~this.words[n]&67108863>>26-r),this._strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var r=e/26|0,n=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<n:this.words[r]&~(1<<n),this._strip()},a.prototype.iadd=function(e){var t,r,i;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,i=e):(r=e,i=this);for(var n=0,a=0;a<i.length;a++)t=(0|r.words[a])+(0|i.words[a])+n,this.words[a]=67108863&t,n=t>>>26;for(;0!==n&&a<r.length;a++)t=(0|r.words[a])+n,this.words[a]=67108863&t,n=t>>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this},a.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},a.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,i,n=this.cmp(e);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=e):(r=e,i=this);for(var a=0,o=0;o<i.length;o++)a=(t=(0|r.words[o])-(0|i.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<r.length;o++)a=(t=(0|r.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this._strip()},a.prototype.sub=function(e){return this.clone().isub(e)};var g=function(e,t,r){var i,n,a,o=e.words,s=t.words,u=r.words,d=0,h=0|o[0],l=8191&h,f=h>>>13,c=0|o[1],p=8191&c,m=c>>>13,g=0|o[2],_=8191&g,y=g>>>13,b=0|o[3],v=8191&b,w=b>>>13,E=0|o[4],A=8191&E,S=E>>>13,M=0|o[5],T=8191&M,R=M>>>13,k=0|o[6],I=8191&k,O=k>>>13,D=0|o[7],x=8191&D,C=D>>>13,P=0|o[8],N=8191&P,L=P>>>13,B=0|o[9],F=8191&B,U=B>>>13,j=0|s[0],H=8191&j,X=j>>>13,W=0|s[1],V=8191&W,z=W>>>13,q=0|s[2],G=8191&q,Q=q>>>13,Y=0|s[3],K=8191&Y,J=Y>>>13,Z=0|s[4],$=8191&Z,ee=Z>>>13,te=0|s[5],re=8191&te,ie=te>>>13,ne=0|s[6],ae=8191&ne,oe=ne>>>13,se=0|s[7],ue=8191&se,de=se>>>13,he=0|s[8],le=8191&he,fe=he>>>13,ce=0|s[9],pe=8191&ce,me=ce>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(d+(i=Math.imul(l,H))|0)+((8191&(n=(n=Math.imul(l,X))+Math.imul(f,H)|0))<<13)|0;d=((a=Math.imul(f,X))+(n>>>13)|0)+(ge>>>26)|0,ge&=67108863,i=Math.imul(p,H),n=(n=Math.imul(p,X))+Math.imul(m,H)|0,a=Math.imul(m,X);var _e=(d+(i=i+Math.imul(l,V)|0)|0)+((8191&(n=(n=n+Math.imul(l,z)|0)+Math.imul(f,V)|0))<<13)|0;d=((a=a+Math.imul(f,z)|0)+(n>>>13)|0)+(_e>>>26)|0,_e&=67108863,i=Math.imul(_,H),n=(n=Math.imul(_,X))+Math.imul(y,H)|0,a=Math.imul(y,X),i=i+Math.imul(p,V)|0,n=(n=n+Math.imul(p,z)|0)+Math.imul(m,V)|0,a=a+Math.imul(m,z)|0;var ye=(d+(i=i+Math.imul(l,G)|0)|0)+((8191&(n=(n=n+Math.imul(l,Q)|0)+Math.imul(f,G)|0))<<13)|0;d=((a=a+Math.imul(f,Q)|0)+(n>>>13)|0)+(ye>>>26)|0,ye&=67108863,i=Math.imul(v,H),n=(n=Math.imul(v,X))+Math.imul(w,H)|0,a=Math.imul(w,X),i=i+Math.imul(_,V)|0,n=(n=n+Math.imul(_,z)|0)+Math.imul(y,V)|0,a=a+Math.imul(y,z)|0,i=i+Math.imul(p,G)|0,n=(n=n+Math.imul(p,Q)|0)+Math.imul(m,G)|0,a=a+Math.imul(m,Q)|0;var be=(d+(i=i+Math.imul(l,K)|0)|0)+((8191&(n=(n=n+Math.imul(l,J)|0)+Math.imul(f,K)|0))<<13)|0;d=((a=a+Math.imul(f,J)|0)+(n>>>13)|0)+(be>>>26)|0,be&=67108863,i=Math.imul(A,H),n=(n=Math.imul(A,X))+Math.imul(S,H)|0,a=Math.imul(S,X),i=i+Math.imul(v,V)|0,n=(n=n+Math.imul(v,z)|0)+Math.imul(w,V)|0,a=a+Math.imul(w,z)|0,i=i+Math.imul(_,G)|0,n=(n=n+Math.imul(_,Q)|0)+Math.imul(y,G)|0,a=a+Math.imul(y,Q)|0,i=i+Math.imul(p,K)|0,n=(n=n+Math.imul(p,J)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,J)|0;var ve=(d+(i=i+Math.imul(l,$)|0)|0)+((8191&(n=(n=n+Math.imul(l,ee)|0)+Math.imul(f,$)|0))<<13)|0;d=((a=a+Math.imul(f,ee)|0)+(n>>>13)|0)+(ve>>>26)|0,ve&=67108863,i=Math.imul(T,H),n=(n=Math.imul(T,X))+Math.imul(R,H)|0,a=Math.imul(R,X),i=i+Math.imul(A,V)|0,n=(n=n+Math.imul(A,z)|0)+Math.imul(S,V)|0,a=a+Math.imul(S,z)|0,i=i+Math.imul(v,G)|0,n=(n=n+Math.imul(v,Q)|0)+Math.imul(w,G)|0,a=a+Math.imul(w,Q)|0,i=i+Math.imul(_,K)|0,n=(n=n+Math.imul(_,J)|0)+Math.imul(y,K)|0,a=a+Math.imul(y,J)|0,i=i+Math.imul(p,$)|0,n=(n=n+Math.imul(p,ee)|0)+Math.imul(m,$)|0,a=a+Math.imul(m,ee)|0;var we=(d+(i=i+Math.imul(l,re)|0)|0)+((8191&(n=(n=n+Math.imul(l,ie)|0)+Math.imul(f,re)|0))<<13)|0;d=((a=a+Math.imul(f,ie)|0)+(n>>>13)|0)+(we>>>26)|0,we&=67108863,i=Math.imul(I,H),n=(n=Math.imul(I,X))+Math.imul(O,H)|0,a=Math.imul(O,X),i=i+Math.imul(T,V)|0,n=(n=n+Math.imul(T,z)|0)+Math.imul(R,V)|0,a=a+Math.imul(R,z)|0,i=i+Math.imul(A,G)|0,n=(n=n+Math.imul(A,Q)|0)+Math.imul(S,G)|0,a=a+Math.imul(S,Q)|0,i=i+Math.imul(v,K)|0,n=(n=n+Math.imul(v,J)|0)+Math.imul(w,K)|0,a=a+Math.imul(w,J)|0,i=i+Math.imul(_,$)|0,n=(n=n+Math.imul(_,ee)|0)+Math.imul(y,$)|0,a=a+Math.imul(y,ee)|0,i=i+Math.imul(p,re)|0,n=(n=n+Math.imul(p,ie)|0)+Math.imul(m,re)|0,a=a+Math.imul(m,ie)|0;var Ee=(d+(i=i+Math.imul(l,ae)|0)|0)+((8191&(n=(n=n+Math.imul(l,oe)|0)+Math.imul(f,ae)|0))<<13)|0;d=((a=a+Math.imul(f,oe)|0)+(n>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,i=Math.imul(x,H),n=(n=Math.imul(x,X))+Math.imul(C,H)|0,a=Math.imul(C,X),i=i+Math.imul(I,V)|0,n=(n=n+Math.imul(I,z)|0)+Math.imul(O,V)|0,a=a+Math.imul(O,z)|0,i=i+Math.imul(T,G)|0,n=(n=n+Math.imul(T,Q)|0)+Math.imul(R,G)|0,a=a+Math.imul(R,Q)|0,i=i+Math.imul(A,K)|0,n=(n=n+Math.imul(A,J)|0)+Math.imul(S,K)|0,a=a+Math.imul(S,J)|0,i=i+Math.imul(v,$)|0,n=(n=n+Math.imul(v,ee)|0)+Math.imul(w,$)|0,a=a+Math.imul(w,ee)|0,i=i+Math.imul(_,re)|0,n=(n=n+Math.imul(_,ie)|0)+Math.imul(y,re)|0,a=a+Math.imul(y,ie)|0,i=i+Math.imul(p,ae)|0,n=(n=n+Math.imul(p,oe)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,oe)|0;var Ae=(d+(i=i+Math.imul(l,ue)|0)|0)+((8191&(n=(n=n+Math.imul(l,de)|0)+Math.imul(f,ue)|0))<<13)|0;d=((a=a+Math.imul(f,de)|0)+(n>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,i=Math.imul(N,H),n=(n=Math.imul(N,X))+Math.imul(L,H)|0,a=Math.imul(L,X),i=i+Math.imul(x,V)|0,n=(n=n+Math.imul(x,z)|0)+Math.imul(C,V)|0,a=a+Math.imul(C,z)|0,i=i+Math.imul(I,G)|0,n=(n=n+Math.imul(I,Q)|0)+Math.imul(O,G)|0,a=a+Math.imul(O,Q)|0,i=i+Math.imul(T,K)|0,n=(n=n+Math.imul(T,J)|0)+Math.imul(R,K)|0,a=a+Math.imul(R,J)|0,i=i+Math.imul(A,$)|0,n=(n=n+Math.imul(A,ee)|0)+Math.imul(S,$)|0,a=a+Math.imul(S,ee)|0,i=i+Math.imul(v,re)|0,n=(n=n+Math.imul(v,ie)|0)+Math.imul(w,re)|0,a=a+Math.imul(w,ie)|0,i=i+Math.imul(_,ae)|0,n=(n=n+Math.imul(_,oe)|0)+Math.imul(y,ae)|0,a=a+Math.imul(y,oe)|0,i=i+Math.imul(p,ue)|0,n=(n=n+Math.imul(p,de)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,de)|0;var Se=(d+(i=i+Math.imul(l,le)|0)|0)+((8191&(n=(n=n+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;d=((a=a+Math.imul(f,fe)|0)+(n>>>13)|0)+(Se>>>26)|0,Se&=67108863,i=Math.imul(F,H),n=(n=Math.imul(F,X))+Math.imul(U,H)|0,a=Math.imul(U,X),i=i+Math.imul(N,V)|0,n=(n=n+Math.imul(N,z)|0)+Math.imul(L,V)|0,a=a+Math.imul(L,z)|0,i=i+Math.imul(x,G)|0,n=(n=n+Math.imul(x,Q)|0)+Math.imul(C,G)|0,a=a+Math.imul(C,Q)|0,i=i+Math.imul(I,K)|0,n=(n=n+Math.imul(I,J)|0)+Math.imul(O,K)|0,a=a+Math.imul(O,J)|0,i=i+Math.imul(T,$)|0,n=(n=n+Math.imul(T,ee)|0)+Math.imul(R,$)|0,a=a+Math.imul(R,ee)|0,i=i+Math.imul(A,re)|0,n=(n=n+Math.imul(A,ie)|0)+Math.imul(S,re)|0,a=a+Math.imul(S,ie)|0,i=i+Math.imul(v,ae)|0,n=(n=n+Math.imul(v,oe)|0)+Math.imul(w,ae)|0,a=a+Math.imul(w,oe)|0,i=i+Math.imul(_,ue)|0,n=(n=n+Math.imul(_,de)|0)+Math.imul(y,ue)|0,a=a+Math.imul(y,de)|0,i=i+Math.imul(p,le)|0,n=(n=n+Math.imul(p,fe)|0)+Math.imul(m,le)|0,a=a+Math.imul(m,fe)|0;var Me=(d+(i=i+Math.imul(l,pe)|0)|0)+((8191&(n=(n=n+Math.imul(l,me)|0)+Math.imul(f,pe)|0))<<13)|0;d=((a=a+Math.imul(f,me)|0)+(n>>>13)|0)+(Me>>>26)|0,Me&=67108863,i=Math.imul(F,V),n=(n=Math.imul(F,z))+Math.imul(U,V)|0,a=Math.imul(U,z),i=i+Math.imul(N,G)|0,n=(n=n+Math.imul(N,Q)|0)+Math.imul(L,G)|0,a=a+Math.imul(L,Q)|0,i=i+Math.imul(x,K)|0,n=(n=n+Math.imul(x,J)|0)+Math.imul(C,K)|0,a=a+Math.imul(C,J)|0,i=i+Math.imul(I,$)|0,n=(n=n+Math.imul(I,ee)|0)+Math.imul(O,$)|0,a=a+Math.imul(O,ee)|0,i=i+Math.imul(T,re)|0,n=(n=n+Math.imul(T,ie)|0)+Math.imul(R,re)|0,a=a+Math.imul(R,ie)|0,i=i+Math.imul(A,ae)|0,n=(n=n+Math.imul(A,oe)|0)+Math.imul(S,ae)|0,a=a+Math.imul(S,oe)|0,i=i+Math.imul(v,ue)|0,n=(n=n+Math.imul(v,de)|0)+Math.imul(w,ue)|0,a=a+Math.imul(w,de)|0,i=i+Math.imul(_,le)|0,n=(n=n+Math.imul(_,fe)|0)+Math.imul(y,le)|0,a=a+Math.imul(y,fe)|0;var Te=(d+(i=i+Math.imul(p,pe)|0)|0)+((8191&(n=(n=n+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;d=((a=a+Math.imul(m,me)|0)+(n>>>13)|0)+(Te>>>26)|0,Te&=67108863,i=Math.imul(F,G),n=(n=Math.imul(F,Q))+Math.imul(U,G)|0,a=Math.imul(U,Q),i=i+Math.imul(N,K)|0,n=(n=n+Math.imul(N,J)|0)+Math.imul(L,K)|0,a=a+Math.imul(L,J)|0,i=i+Math.imul(x,$)|0,n=(n=n+Math.imul(x,ee)|0)+Math.imul(C,$)|0,a=a+Math.imul(C,ee)|0,i=i+Math.imul(I,re)|0,n=(n=n+Math.imul(I,ie)|0)+Math.imul(O,re)|0,a=a+Math.imul(O,ie)|0,i=i+Math.imul(T,ae)|0,n=(n=n+Math.imul(T,oe)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,oe)|0,i=i+Math.imul(A,ue)|0,n=(n=n+Math.imul(A,de)|0)+Math.imul(S,ue)|0,a=a+Math.imul(S,de)|0,i=i+Math.imul(v,le)|0,n=(n=n+Math.imul(v,fe)|0)+Math.imul(w,le)|0,a=a+Math.imul(w,fe)|0;var Re=(d+(i=i+Math.imul(_,pe)|0)|0)+((8191&(n=(n=n+Math.imul(_,me)|0)+Math.imul(y,pe)|0))<<13)|0;d=((a=a+Math.imul(y,me)|0)+(n>>>13)|0)+(Re>>>26)|0,Re&=67108863,i=Math.imul(F,K),n=(n=Math.imul(F,J))+Math.imul(U,K)|0,a=Math.imul(U,J),i=i+Math.imul(N,$)|0,n=(n=n+Math.imul(N,ee)|0)+Math.imul(L,$)|0,a=a+Math.imul(L,ee)|0,i=i+Math.imul(x,re)|0,n=(n=n+Math.imul(x,ie)|0)+Math.imul(C,re)|0,a=a+Math.imul(C,ie)|0,i=i+Math.imul(I,ae)|0,n=(n=n+Math.imul(I,oe)|0)+Math.imul(O,ae)|0,a=a+Math.imul(O,oe)|0,i=i+Math.imul(T,ue)|0,n=(n=n+Math.imul(T,de)|0)+Math.imul(R,ue)|0,a=a+Math.imul(R,de)|0,i=i+Math.imul(A,le)|0,n=(n=n+Math.imul(A,fe)|0)+Math.imul(S,le)|0,a=a+Math.imul(S,fe)|0;var ke=(d+(i=i+Math.imul(v,pe)|0)|0)+((8191&(n=(n=n+Math.imul(v,me)|0)+Math.imul(w,pe)|0))<<13)|0;d=((a=a+Math.imul(w,me)|0)+(n>>>13)|0)+(ke>>>26)|0,ke&=67108863,i=Math.imul(F,$),n=(n=Math.imul(F,ee))+Math.imul(U,$)|0,a=Math.imul(U,ee),i=i+Math.imul(N,re)|0,n=(n=n+Math.imul(N,ie)|0)+Math.imul(L,re)|0,a=a+Math.imul(L,ie)|0,i=i+Math.imul(x,ae)|0,n=(n=n+Math.imul(x,oe)|0)+Math.imul(C,ae)|0,a=a+Math.imul(C,oe)|0,i=i+Math.imul(I,ue)|0,n=(n=n+Math.imul(I,de)|0)+Math.imul(O,ue)|0,a=a+Math.imul(O,de)|0,i=i+Math.imul(T,le)|0,n=(n=n+Math.imul(T,fe)|0)+Math.imul(R,le)|0,a=a+Math.imul(R,fe)|0;var Ie=(d+(i=i+Math.imul(A,pe)|0)|0)+((8191&(n=(n=n+Math.imul(A,me)|0)+Math.imul(S,pe)|0))<<13)|0;d=((a=a+Math.imul(S,me)|0)+(n>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,i=Math.imul(F,re),n=(n=Math.imul(F,ie))+Math.imul(U,re)|0,a=Math.imul(U,ie),i=i+Math.imul(N,ae)|0,n=(n=n+Math.imul(N,oe)|0)+Math.imul(L,ae)|0,a=a+Math.imul(L,oe)|0,i=i+Math.imul(x,ue)|0,n=(n=n+Math.imul(x,de)|0)+Math.imul(C,ue)|0,a=a+Math.imul(C,de)|0,i=i+Math.imul(I,le)|0,n=(n=n+Math.imul(I,fe)|0)+Math.imul(O,le)|0,a=a+Math.imul(O,fe)|0;var Oe=(d+(i=i+Math.imul(T,pe)|0)|0)+((8191&(n=(n=n+Math.imul(T,me)|0)+Math.imul(R,pe)|0))<<13)|0;d=((a=a+Math.imul(R,me)|0)+(n>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,i=Math.imul(F,ae),n=(n=Math.imul(F,oe))+Math.imul(U,ae)|0,a=Math.imul(U,oe),i=i+Math.imul(N,ue)|0,n=(n=n+Math.imul(N,de)|0)+Math.imul(L,ue)|0,a=a+Math.imul(L,de)|0,i=i+Math.imul(x,le)|0,n=(n=n+Math.imul(x,fe)|0)+Math.imul(C,le)|0,a=a+Math.imul(C,fe)|0;var De=(d+(i=i+Math.imul(I,pe)|0)|0)+((8191&(n=(n=n+Math.imul(I,me)|0)+Math.imul(O,pe)|0))<<13)|0;d=((a=a+Math.imul(O,me)|0)+(n>>>13)|0)+(De>>>26)|0,De&=67108863,i=Math.imul(F,ue),n=(n=Math.imul(F,de))+Math.imul(U,ue)|0,a=Math.imul(U,de),i=i+Math.imul(N,le)|0,n=(n=n+Math.imul(N,fe)|0)+Math.imul(L,le)|0,a=a+Math.imul(L,fe)|0;var xe=(d+(i=i+Math.imul(x,pe)|0)|0)+((8191&(n=(n=n+Math.imul(x,me)|0)+Math.imul(C,pe)|0))<<13)|0;d=((a=a+Math.imul(C,me)|0)+(n>>>13)|0)+(xe>>>26)|0,xe&=67108863,i=Math.imul(F,le),n=(n=Math.imul(F,fe))+Math.imul(U,le)|0,a=Math.imul(U,fe);var Ce=(d+(i=i+Math.imul(N,pe)|0)|0)+((8191&(n=(n=n+Math.imul(N,me)|0)+Math.imul(L,pe)|0))<<13)|0;d=((a=a+Math.imul(L,me)|0)+(n>>>13)|0)+(Ce>>>26)|0,Ce&=67108863;var Pe=(d+(i=Math.imul(F,pe))|0)+((8191&(n=(n=Math.imul(F,me))+Math.imul(U,pe)|0))<<13)|0;return d=((a=Math.imul(U,me))+(n>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,u[0]=ge,u[1]=_e,u[2]=ye,u[3]=be,u[4]=ve,u[5]=we,u[6]=Ee,u[7]=Ae,u[8]=Se,u[9]=Me,u[10]=Te,u[11]=Re,u[12]=ke,u[13]=Ie,u[14]=Oe,u[15]=De,u[16]=xe,u[17]=Ce,u[18]=Pe,0!==d&&(u[19]=d,r.length++),r};function _(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var i=0,n=0,a=0;a<r.length-1;a++){var o=n;n=0;for(var s=67108863&i,u=Math.min(a,t.length-1),d=Math.max(0,a-e.length+1);d<=u;d++){var h=a-d,l=(0|e.words[h])*(0|t.words[d]),f=67108863&l;s=67108863&(f=f+s|0),n+=(o=(o=o+(l/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}r.words[a]=s,i=o,o=n}return 0!==i?r.words[a]=i:r.length--,r._strip()}function y(e,t,r){return _(e,t,r)}function b(e,t){this.x=e,this.y=t}Math.imul||(g=m),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?g(this,e,t):r<63?m(this,e,t):r<1024?_(this,e,t):y(this,e,t)},b.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,i=0;i<e;i++)t[i]=this.revBin(i,r,e);return t},b.prototype.revBin=function(e,t,r){if(0===e||e===r-1)return e;for(var i=0,n=0;n<t;n++)i|=(1&e)<<t-n-1,e>>=1;return i},b.prototype.permute=function(e,t,r,i,n,a){for(var o=0;o<a;o++)i[o]=t[e[o]],n[o]=r[e[o]]},b.prototype.transform=function(e,t,r,i,n,a){this.permute(a,e,t,r,i,n);for(var o=1;o<n;o<<=1)for(var s=o<<1,u=Math.cos(2*Math.PI/s),d=Math.sin(2*Math.PI/s),h=0;h<n;h+=s)for(var l=u,f=d,c=0;c<o;c++){var p=r[h+c],m=i[h+c],g=r[h+c+o],_=i[h+c+o],y=l*g-f*_;_=l*_+f*g,g=y,r[h+c]=p+g,i[h+c]=m+_,r[h+c+o]=p-g,i[h+c+o]=m-_,c!==s&&(y=u*l-d*f,f=u*f+d*l,l=y)}},b.prototype.guessLen13b=function(e,t){var r=1|Math.max(t,e),i=1&r,n=0;for(r=r/2|0;r;r>>>=1)n++;return 1<<n+1+i},b.prototype.conjugate=function(e,t,r){if(!(r<=1))for(var i=0;i<r/2;i++){var n=e[i];e[i]=e[r-i-1],e[r-i-1]=n,n=t[i],t[i]=-t[r-i-1],t[r-i-1]=-n}},b.prototype.normalize13b=function(e,t){for(var r=0,i=0;i<t/2;i++){var n=8192*Math.round(e[2*i+1]/t)+Math.round(e[2*i]/t)+r;e[i]=67108863&n,r=n<67108864?0:n/67108864|0}return e},b.prototype.convert13b=function(e,t,r,n){for(var a=0,o=0;o<t;o++)a+=0|e[o],r[2*o]=8191&a,a>>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*t;o<n;++o)r[o]=0;i(0===a),i(0==(-8192&a))},b.prototype.stub=function(e){for(var t=new Array(e),r=0;r<e;r++)t[r]=0;return t},b.prototype.mulp=function(e,t,r){var i=2*this.guessLen13b(e.length,t.length),n=this.makeRBT(i),a=this.stub(i),o=new Array(i),s=new Array(i),u=new Array(i),d=new Array(i),h=new Array(i),l=new Array(i),f=r.words;f.length=i,this.convert13b(e.words,e.length,o,i),this.convert13b(t.words,t.length,d,i),this.transform(o,a,s,u,i,n),this.transform(d,a,h,l,i,n);for(var c=0;c<i;c++){var p=s[c]*h[c]-u[c]*l[c];u[c]=s[c]*l[c]+u[c]*h[c],s[c]=p}return this.conjugate(s,u,i),this.transform(s,u,f,a,i,n),this.conjugate(f,a,i),this.normalize13b(f,i),r.negative=e.negative^t.negative,r.length=e.length+t.length,r._strip()},a.prototype.mul=function(e){var t=new a(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},a.prototype.mulf=function(e){var t=new a(null);return t.words=new Array(this.length+e.length),y(this,e,t)},a.prototype.imul=function(e){return this.clone().mulTo(e,this)},a.prototype.imuln=function(e){var t=e<0;t&&(e=-e),i("number"==typeof e),i(e<67108864);for(var r=0,n=0;n<this.length;n++){var a=(0|this.words[n])*e,o=(67108863&a)+(67108863&r);r>>=26,r+=a/67108864|0,r+=o>>>26,this.words[n]=67108863&o}return 0!==r&&(this.words[n]=r,this.length++),t?this.ineg():this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var i=r/26|0,n=r%26;t[r]=e.words[i]>>>n&1}return t}(e);if(0===t.length)return new a(1);for(var r=this,i=0;i<t.length&&0===t[i];i++,r=r.sqr());if(++i<t.length)for(var n=r.sqr();i<t.length;i++,n=n.sqr())0!==t[i]&&(r=r.mul(n));return r},a.prototype.iushln=function(e){i("number"==typeof e&&e>=0);var t,r=e%26,n=(e-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,u=(0|this.words[t])-s<<r;this.words[t]=u|o,o=s>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t<n;t++)this.words[t]=0;this.length+=n}return this._strip()},a.prototype.ishln=function(e){return i(0===this.negative),this.iushln(e)},a.prototype.iushrn=function(e,t,r){var n;i("number"==typeof e&&e>=0),n=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,u=r;if(n-=o,n=Math.max(0,n),u){for(var d=0;d<o;d++)u.words[d]=this.words[d];u.length=o}if(0===o);else if(this.length>o)for(this.length-=o,d=0;d<this.length;d++)this.words[d]=this.words[d+o];else this.words[0]=0,this.length=1;var h=0;for(d=this.length-1;d>=0&&(0!==h||d>=n);d--){var l=0|this.words[d];this.words[d]=h<<26-a|l>>>a,h=l&s}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(e,t,r){return i(0===this.negative),this.iushrn(e,t,r)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,n=1<<t;return!(this.length<=r)&&!!(this.words[r]&n)},a.prototype.imaskn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var n=67108863^67108863>>>t<<t;this.words[this.length-1]&=n}return this._strip()},a.prototype.maskn=function(e){return this.clone().imaskn(e)},a.prototype.iaddn=function(e){return i("number"==typeof e),i(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},a.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},a.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},a.prototype.addn=function(e){return this.clone().iaddn(e)},a.prototype.subn=function(e){return this.clone().isubn(e)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(e,t,r){var n,a,o=e.length+r;this._expand(o);var s=0;for(n=0;n<e.length;n++){a=(0|this.words[n+r])+s;var u=(0|e.words[n])*t;s=((a-=67108863&u)>>26)-(u/67108864|0),this.words[n+r]=67108863&a}for(;n<this.length-r;n++)s=(a=(0|this.words[n+r])+s)>>26,this.words[n+r]=67108863&a;if(0===s)return this._strip();for(i(-1===s),s=0,n=0;n<this.length;n++)s=(a=-(0|this.words[n])+s)>>26,this.words[n]=67108863&a;return this.negative=1,this._strip()},a.prototype._wordDiv=function(e,t){var r=(this.length,e.length),i=this.clone(),n=e,o=0|n.words[n.length-1];0!==(r=26-this._countBits(o))&&(n=n.ushln(r),i.iushln(r),o=0|n.words[n.length-1]);var s,u=i.length-n.length;if("mod"!==t){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var d=0;d<s.length;d++)s.words[d]=0}var h=i.clone()._ishlnsubmul(n,1,u);0===h.negative&&(i=h,s&&(s.words[u]=1));for(var l=u-1;l>=0;l--){var f=67108864*(0|i.words[n.length+l])+(0|i.words[n.length+l-1]);for(f=Math.min(f/o|0,67108863),i._ishlnsubmul(n,f,l);0!==i.negative;)f--,i.negative=0,i._ishlnsubmul(n,1,l),i.isZero()||(i.negative^=1);s&&(s.words[l]=f)}return s&&s._strip(),i._strip(),"div"!==t&&0!==r&&i.iushrn(r),{div:s||null,mod:i}},a.prototype.divmod=function(e,t,r){return i(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(n=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:n,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modrn(e.words[0]))}:this._wordDiv(e,t);var n,o,s},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,i=e.ushrn(1),n=e.andln(1),a=r.cmp(i);return a<0||1===n&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modrn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(r*n+(0|this.words[a]))%e;return t?-n:n},a.prototype.modn=function(e){return this.modrn(e)},a.prototype.idivn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=0,n=this.length-1;n>=0;n--){var a=(0|this.words[n])+67108864*r;this.words[n]=a/e|0,r=a%e}return this._strip(),t?this.ineg():this},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),d=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++d;for(var h=r.clone(),l=t.clone();!t.isZero();){for(var f=0,c=1;0==(t.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(h),o.isub(l)),n.iushrn(1),o.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(h),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(u)):(r.isub(t),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(d)}},a.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var l=0,f=1;0==(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(n=0===t.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(e),n},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var i=0;t.isEven()&&r.isEven();i++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var n=t.cmp(r);if(n<0){var a=t;t=r,r=a}else if(0===n||0===r.cmpn(1))break;t.isub(r)}return r.iushln(i)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,r=(e-t)/26,n=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=n,this;for(var a=n,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),i(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:n<e?-1:1}return 0!==this.negative?0|-t:t},a.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},a.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var i=0|this.words[r],n=0|e.words[r];if(i!==n){i<n?t=-1:i>n&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new T(e)},a.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function w(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function E(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function A(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function S(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function M(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function T(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function R(e){T.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},w.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var i=t<this.n?-1:r.ucmp(this.p);return 0===i?(r.words[0]=0,r.length=1):i>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},w.prototype.split=function(e,t){e.iushrn(this.n,0,t)},w.prototype.imulK=function(e){return e.imul(this.k)},n(E,w),E.prototype.split=function(e,t){for(var r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var n=e.words[9];for(t.words[t.length++]=4194303&n,i=10;i<e.length;i++){var a=0|e.words[i];e.words[i-10]=(4194303&a)<<4|n>>>22,n=a}n>>>=22,e.words[i-10]=n,0===n&&e.length>10?e.length-=10:e.length-=9},E.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var i=0|e.words[r];t+=977*i,e.words[r]=67108863&t,t=64*i+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(A,w),n(S,w),n(M,w),M.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var i=19*(0|e.words[r])+t,n=67108863&i;i>>>=26,e.words[r]=n,t=i}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new E;else if("p224"===e)t=new A;else if("p192"===e)t=new S;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new M}return v[e]=t,t},T.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},T.prototype._verify2=function(e,t){i(0==(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},T.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(h(e,e.umod(this.m)._forceRed(this)),e)},T.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},T.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},T.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},T.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},T.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},T.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},T.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},T.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},T.prototype.isqr=function(e){return this.imul(e,e.clone())},T.prototype.sqr=function(e){return this.mul(e,e)},T.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var r=this.m.add(new a(1)).iushrn(2);return this.pow(e,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),d=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new a(2*h*h).toRed(this);0!==this.pow(h,d).cmp(u);)h.redIAdd(u);for(var l=this.pow(h,n),f=this.pow(e,n.addn(1).iushrn(1)),c=this.pow(e,n),p=o;0!==c.cmp(s);){for(var m=c,g=0;0!==m.cmp(s);g++)m=m.redSqr();i(g<p);var _=this.pow(l,new a(1).iushln(p-g-1));f=f.redMul(_),l=_.redSqr(),c=c.redMul(l),p=g}return f},T.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},T.prototype.pow=function(e,t){if(t.isZero())return new a(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new a(1).toRed(this),r[1]=e;for(var i=2;i<r.length;i++)r[i]=this.mul(r[i-1],e);var n=r[0],o=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),i=t.length-1;i>=0;i--){for(var d=t.words[i],h=u-1;h>=0;h--){var l=d>>h&1;n!==r[0]&&(n=this.sqr(n)),0!==l||0!==o?(o<<=1,o|=l,(4===++s||0===i&&0===h)&&(n=this.mul(n,r[o]),s=0,o=0)):s=0}u=26}return n},T.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},T.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new R(e)},n(R,T),R.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},R.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},R.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},R.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var r=e.mul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},R.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,this)}).call(this,r(55)(e))},function(e,t){},function(e){e.exports=JSON.parse('{"name":"elliptic","version":"6.5.4","description":"EC cryptography","main":"lib/elliptic.js","files":["lib"],"scripts":{"lint":"eslint lib test","lint:fix":"npm run lint -- --fix","unit":"istanbul test _mocha --reporter=spec test/index.js","test":"npm run lint && npm run unit","version":"grunt dist && git add dist/"},"repository":{"type":"git","url":"git@github.com:indutny/elliptic"},"keywords":["EC","Elliptic","curve","Cryptography"],"author":"Fedor Indutny <fedor@indutny.com>","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^2.0.2","coveralls":"^3.1.0","eslint":"^7.6.0","grunt":"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.5","mocha":"^8.0.1"},"dependencies":{"bn.js":"^4.11.9","brorand":"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1","inherits":"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}')},function(e,t,r){"use strict";var i=r(15),n=r(11),a=r(5),o=r(41),s=i.assert;function u(e){o.call(this,"short",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function d(e,t,r,i){o.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new n(t,16),this.y=new n(r,16),i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function h(e,t,r,i){o.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===i?(this.x=this.curve.one,this.y=this.curve.one,this.z=new n(0)):(this.x=new n(t,16),this.y=new n(r,16),this.z=new n(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}a(u,o),e.exports=u,u.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new n(e.beta,16).toRed(this.red);else{var i=this._getEndoRoots(this.p);t=(t=i[0].cmp(i[1])<0?i[0]:i[1]).toRed(this.red)}if(e.lambda)r=new n(e.lambda,16);else{var a=this._getEndoRoots(this.n);0===this.g.mul(a[0]).x.cmp(this.g.x.redMul(t))?r=a[0]:(r=a[1],s(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new n(e.a,16),b:new n(e.b,16)}})):this._getEndoBasis(r)}}},u.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:n.mont(e),r=new n(2).toRed(t).redInvm(),i=r.redNeg(),a=new n(3).toRed(t).redNeg().redSqrt().redMul(r);return[i.redAdd(a).fromRed(),i.redSub(a).fromRed()]},u.prototype._getEndoBasis=function(e){for(var t,r,i,a,o,s,u,d,h,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),f=e,c=this.n.clone(),p=new n(1),m=new n(0),g=new n(0),_=new n(1),y=0;0!==f.cmpn(0);){var b=c.div(f);d=c.sub(b.mul(f)),h=g.sub(b.mul(p));var v=_.sub(b.mul(m));if(!i&&d.cmp(l)<0)t=u.neg(),r=p,i=d.neg(),a=h;else if(i&&2==++y)break;u=d,c=f,f=d,g=p,p=h,_=m,m=v}o=d.neg(),s=h;var w=i.sqr().add(a.sqr());return o.sqr().add(s.sqr()).cmp(w)>=0&&(o=t,s=r),i.negative&&(i=i.neg(),a=a.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:i,b:a},{a:o,b:s}]},u.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],i=t[1],n=i.b.mul(e).divRound(this.n),a=r.b.neg().mul(e).divRound(this.n),o=n.mul(r.a),s=a.mul(i.a),u=n.mul(r.b),d=a.mul(i.b);return{k1:e.sub(o).sub(s),k2:u.add(d).neg()}},u.prototype.pointFromX=function(e,t){(e=new n(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),i=r.redSqrt();if(0!==i.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var a=i.fromRed().isOdd();return(t&&!a||!t&&a)&&(i=i.redNeg()),this.point(e,i)},u.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,i=this.a.redMul(t),n=t.redSqr().redMul(t).redIAdd(i).redIAdd(this.b);return 0===r.redSqr().redISub(n).cmpn(0)},u.prototype._endoWnafMulAdd=function(e,t,r){for(var i=this._endoWnafT1,n=this._endoWnafT2,a=0;a<e.length;a++){var o=this._endoSplit(t[a]),s=e[a],u=s._getBeta();o.k1.negative&&(o.k1.ineg(),s=s.neg(!0)),o.k2.negative&&(o.k2.ineg(),u=u.neg(!0)),i[2*a]=s,i[2*a+1]=u,n[2*a]=o.k1,n[2*a+1]=o.k2}for(var d=this._wnafMulAdd(1,i,n,2*a,r),h=0;h<2*a;h++)i[h]=null,n[h]=null;return d},a(d,o.BasePoint),u.prototype.point=function(e,t,r){return new d(this,e,t,r)},u.prototype.pointFromJSON=function(e,t){return d.fromJSON(this,e,t)},d.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var r=this.curve,i=function(e){return r.point(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(i)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(i)}}}return t}},d.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},d.fromJSON=function(e,t,r){"string"==typeof t&&(t=JSON.parse(t));var i=e.point(t[0],t[1],r);if(!t[2])return i;function n(t){return e.point(t[0],t[1],r)}var a=t[2];return i.precomputed={beta:null,doubles:a.doubles&&{step:a.doubles.step,points:[i].concat(a.doubles.points.map(n))},naf:a.naf&&{wnd:a.naf.wnd,points:[i].concat(a.naf.points.map(n))}},i},d.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},d.prototype.isInfinity=function(){return this.inf},d.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),i=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,i)},d.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),i=e.redInvm(),n=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(i),a=n.redSqr().redISub(this.x.redAdd(this.x)),o=n.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,o)},d.prototype.getX=function(){return this.x.fromRed()},d.prototype.getY=function(){return this.y.fromRed()},d.prototype.mul=function(e){return e=new n(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},d.prototype.mulAdd=function(e,t,r){var i=[this,t],n=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(i,n):this.curve._wnafMulAdd(1,i,n,2)},d.prototype.jmulAdd=function(e,t,r){var i=[this,t],n=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(i,n,!0):this.curve._wnafMulAdd(1,i,n,2,!0)},d.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},d.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,i=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(i)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(i)}}}return t},d.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},a(h,o.BasePoint),u.prototype.jpoint=function(e,t,r){return new h(this,e,t,r)},h.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),i=this.y.redMul(t).redMul(e);return this.curve.point(r,i)},h.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},h.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),i=this.x.redMul(t),n=e.x.redMul(r),a=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(r.redMul(this.z)),s=i.redSub(n),u=a.redSub(o);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var d=s.redSqr(),h=d.redMul(s),l=i.redMul(d),f=u.redSqr().redIAdd(h).redISub(l).redISub(l),c=u.redMul(l.redISub(f)).redISub(a.redMul(h)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,c,p)},h.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,i=e.x.redMul(t),n=this.y,a=e.y.redMul(t).redMul(this.z),o=r.redSub(i),s=n.redSub(a);if(0===o.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=o.redSqr(),d=u.redMul(o),h=r.redMul(u),l=s.redSqr().redIAdd(d).redISub(h).redISub(h),f=s.redMul(h.redISub(l)).redISub(n.redMul(d)),c=this.z.redMul(o);return this.curve.jpoint(l,f,c)},h.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t<e;t++)r=r.dbl();return r}var i=this.curve.a,n=this.curve.tinv,a=this.x,o=this.y,s=this.z,u=s.redSqr().redSqr(),d=o.redAdd(o);for(t=0;t<e;t++){var h=a.redSqr(),l=d.redSqr(),f=l.redSqr(),c=h.redAdd(h).redIAdd(h).redIAdd(i.redMul(u)),p=a.redMul(l),m=c.redSqr().redISub(p.redAdd(p)),g=p.redISub(m),_=c.redMul(g);_=_.redIAdd(_).redISub(f);var y=d.redMul(s);t+1<e&&(u=u.redMul(f)),a=m,s=y,d=_}return this.curve.jpoint(a,d.redMul(n),s)},h.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},h.prototype._zeroDbl=function(){var e,t,r;if(this.zOne){var i=this.x.redSqr(),n=this.y.redSqr(),a=n.redSqr(),o=this.x.redAdd(n).redSqr().redISub(i).redISub(a);o=o.redIAdd(o);var s=i.redAdd(i).redIAdd(i),u=s.redSqr().redISub(o).redISub(o),d=a.redIAdd(a);d=(d=d.redIAdd(d)).redIAdd(d),e=u,t=s.redMul(o.redISub(u)).redISub(d),r=this.y.redAdd(this.y)}else{var h=this.x.redSqr(),l=this.y.redSqr(),f=l.redSqr(),c=this.x.redAdd(l).redSqr().redISub(h).redISub(f);c=c.redIAdd(c);var p=h.redAdd(h).redIAdd(h),m=p.redSqr(),g=f.redIAdd(f);g=(g=g.redIAdd(g)).redIAdd(g),e=m.redISub(c).redISub(c),t=p.redMul(c.redISub(e)).redISub(g),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(e,t,r)},h.prototype._threeDbl=function(){var e,t,r;if(this.zOne){var i=this.x.redSqr(),n=this.y.redSqr(),a=n.redSqr(),o=this.x.redAdd(n).redSqr().redISub(i).redISub(a);o=o.redIAdd(o);var s=i.redAdd(i).redIAdd(i).redIAdd(this.curve.a),u=s.redSqr().redISub(o).redISub(o);e=u;var d=a.redIAdd(a);d=(d=d.redIAdd(d)).redIAdd(d),t=s.redMul(o.redISub(u)).redISub(d),r=this.y.redAdd(this.y)}else{var h=this.z.redSqr(),l=this.y.redSqr(),f=this.x.redMul(l),c=this.x.redSub(h).redMul(this.x.redAdd(h));c=c.redAdd(c).redIAdd(c);var p=f.redIAdd(f),m=(p=p.redIAdd(p)).redAdd(p);e=c.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(l).redISub(h);var g=l.redSqr();g=(g=(g=g.redIAdd(g)).redIAdd(g)).redIAdd(g),t=c.redMul(p.redISub(e)).redISub(g)}return this.curve.jpoint(e,t,r)},h.prototype._dbl=function(){var e=this.curve.a,t=this.x,r=this.y,i=this.z,n=i.redSqr().redSqr(),a=t.redSqr(),o=r.redSqr(),s=a.redAdd(a).redIAdd(a).redIAdd(e.redMul(n)),u=t.redAdd(t),d=(u=u.redIAdd(u)).redMul(o),h=s.redSqr().redISub(d.redAdd(d)),l=d.redISub(h),f=o.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var c=s.redMul(l).redISub(f),p=r.redAdd(r).redMul(i);return this.curve.jpoint(h,c,p)},h.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr(),i=t.redSqr(),n=e.redAdd(e).redIAdd(e),a=n.redSqr(),o=this.x.redAdd(t).redSqr().redISub(e).redISub(i),s=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(a)).redSqr(),u=i.redIAdd(i);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var d=n.redIAdd(o).redSqr().redISub(a).redISub(s).redISub(u),h=t.redMul(d);h=(h=h.redIAdd(h)).redIAdd(h);var l=this.x.redMul(s).redISub(h);l=(l=l.redIAdd(l)).redIAdd(l);var f=this.y.redMul(d.redMul(u.redISub(d)).redISub(o.redMul(s)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var c=this.z.redAdd(o).redSqr().redISub(r).redISub(s);return this.curve.jpoint(l,f,c)},h.prototype.mul=function(e,t){return e=new n(e,t),this.curve._wnafMul(this,e)},h.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;var i=t.redMul(this.z),n=r.redMul(e.z);return 0===this.y.redMul(n).redISub(e.y.redMul(i)).cmpn(0)},h.prototype.eqXToP=function(e){var t=this.z.redSqr(),r=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(r))return!0;for(var i=e.clone(),n=this.curve.redN.redMul(t);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(n),0===this.x.cmp(r))return!0}},h.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},h.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,r){"use strict";var i=r(11),n=r(5),a=r(41),o=r(15);function s(e){a.call(this,"mont",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.i4=new i(4).toRed(this.red).redInvm(),this.two=new i(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(e,t,r){a.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new i(t,16),this.z=new i(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}n(s,a),e.exports=s,s.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),i=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===i.redSqrt().redSqr().cmp(i)},n(u,a.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},s.prototype.point=function(e,t){return new u(this,e,t)},s.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(e,t){return new u(e,t[0],t[1]||e.one)},u.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),i=e.redMul(t),n=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(i,n)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),i=this.x.redSub(this.z),n=e.x.redAdd(e.z),a=e.x.redSub(e.z).redMul(r),o=n.redMul(i),s=t.z.redMul(a.redAdd(o).redSqr()),u=t.x.redMul(a.redISub(o).redSqr());return this.curve.point(s,u)},u.prototype.mul=function(e){for(var t=e.clone(),r=this,i=this.curve.point(null,null),n=[];0!==t.cmpn(0);t.iushrn(1))n.push(t.andln(1));for(var a=n.length-1;a>=0;a--)0===n[a]?(r=r.diffAdd(i,this),i=i.dbl()):(i=r.diffAdd(i,this),r=r.dbl());return i},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,r){"use strict";var i=r(15),n=r(11),a=r(5),o=r(41),s=i.assert;function u(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new n(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new n(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new n(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function d(e,t,r,i,a){o.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===i?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new n(t,16),this.y=new n(r,16),this.z=i?new n(i,16):this.curve.one,this.t=a&&new n(a,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}a(u,o),e.exports=u,u.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},u.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},u.prototype.jpoint=function(e,t,r,i){return this.point(e,t,r,i)},u.prototype.pointFromX=function(e,t){(e=new n(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),i=this.c2.redSub(this.a.redMul(r)),a=this.one.redSub(this.c2.redMul(this.d).redMul(r)),o=i.redMul(a.redInvm()),s=o.redSqrt();if(0!==s.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(t&&!u||!t&&u)&&(s=s.redNeg()),this.point(e,s)},u.prototype.pointFromY=function(e,t){(e=new n(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),i=r.redSub(this.c2),a=r.redMul(this.d).redMul(this.c2).redSub(this.a),o=i.redMul(a.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var s=o.redSqrt();if(0!==s.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==t&&(s=s.redNeg()),this.point(s,e)},u.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),i=t.redMul(this.a).redAdd(r),n=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===i.cmp(n)},a(d,o.BasePoint),u.prototype.pointFromJSON=function(e){return d.fromJSON(this,e)},u.prototype.point=function(e,t,r,i){return new d(this,e,t,r,i)},d.fromJSON=function(e,t){return new d(e,t[0],t[1],t[2])},d.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},d.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},d.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var i=this.curve._mulA(e),n=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),a=i.redAdd(t),o=a.redSub(r),s=i.redSub(t),u=n.redMul(o),d=a.redMul(s),h=n.redMul(s),l=o.redMul(a);return this.curve.point(u,d,l,h)},d.prototype._projDbl=function(){var e,t,r,i,n,a,o=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),u=this.y.redSqr();if(this.curve.twisted){var d=(i=this.curve._mulA(s)).redAdd(u);this.zOne?(e=o.redSub(s).redSub(u).redMul(d.redSub(this.curve.two)),t=d.redMul(i.redSub(u)),r=d.redSqr().redSub(d).redSub(d)):(n=this.z.redSqr(),a=d.redSub(n).redISub(n),e=o.redSub(s).redISub(u).redMul(a),t=d.redMul(i.redSub(u)),r=d.redMul(a))}else i=s.redAdd(u),n=this.curve._mulC(this.z).redSqr(),a=i.redSub(n).redSub(n),e=this.curve._mulC(o.redISub(i)).redMul(a),t=this.curve._mulC(i).redMul(s.redISub(u)),r=i.redMul(a);return this.curve.point(e,t,r)},d.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},d.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),i=this.t.redMul(this.curve.dd).redMul(e.t),n=this.z.redMul(e.z.redAdd(e.z)),a=r.redSub(t),o=n.redSub(i),s=n.redAdd(i),u=r.redAdd(t),d=a.redMul(o),h=s.redMul(u),l=a.redMul(u),f=o.redMul(s);return this.curve.point(d,h,f,l)},d.prototype._projAdd=function(e){var t,r,i=this.z.redMul(e.z),n=i.redSqr(),a=this.x.redMul(e.x),o=this.y.redMul(e.y),s=this.curve.d.redMul(a).redMul(o),u=n.redSub(s),d=n.redAdd(s),h=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(a).redISub(o),l=i.redMul(u).redMul(h);return this.curve.twisted?(t=i.redMul(d).redMul(o.redSub(this.curve._mulA(a))),r=u.redMul(d)):(t=i.redMul(d).redMul(o.redSub(a)),r=this.curve._mulC(u).redMul(d)),this.curve.point(l,t,r)},d.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},d.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},d.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},d.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},d.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},d.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},d.prototype.getX=function(){return this.normalize(),this.x.fromRed()},d.prototype.getY=function(){return this.normalize(),this.y.fromRed()},d.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},d.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(i),0===this.x.cmp(t))return!0}},d.prototype.toP=d.prototype.normalize,d.prototype.mixedAdd=d.prototype.add},function(e,t,r){"use strict";t.sha1=r(199),t.sha224=r(200),t.sha256=r(111),t.sha384=r(201),t.sha512=r(112)},function(e,t,r){"use strict";var i=r(18),n=r(34),a=r(110),o=i.rotl32,s=i.sum32,u=i.sum32_5,d=a.ft_1,h=n.BlockHash,l=[1518500249,1859775393,2400959708,3395469782];function f(){if(!(this instanceof f))return new f;h.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}i.inherits(f,h),e.exports=f,f.blockSize=512,f.outSize=160,f.hmacStrength=80,f.padLength=64,f.prototype._update=function(e,t){for(var r=this.W,i=0;i<16;i++)r[i]=e[t+i];for(;i<r.length;i++)r[i]=o(r[i-3]^r[i-8]^r[i-14]^r[i-16],1);var n=this.h[0],a=this.h[1],h=this.h[2],f=this.h[3],c=this.h[4];for(i=0;i<r.length;i++){var p=~~(i/20),m=u(o(n,5),d(p,a,h,f),c,r[i],l[p]);c=f,f=h,h=o(a,30),a=n,n=m}this.h[0]=s(this.h[0],n),this.h[1]=s(this.h[1],a),this.h[2]=s(this.h[2],h),this.h[3]=s(this.h[3],f),this.h[4]=s(this.h[4],c)},f.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h,"big"):i.split32(this.h,"big")}},function(e,t,r){"use strict";var i=r(18),n=r(111);function a(){if(!(this instanceof a))return new a;n.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}i.inherits(a,n),e.exports=a,a.blockSize=512,a.outSize=224,a.hmacStrength=192,a.padLength=64,a.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h.slice(0,7),"big"):i.split32(this.h.slice(0,7),"big")}},function(e,t,r){"use strict";var i=r(18),n=r(112);function a(){if(!(this instanceof a))return new a;n.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}i.inherits(a,n),e.exports=a,a.blockSize=1024,a.outSize=384,a.hmacStrength=192,a.padLength=128,a.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h.slice(0,12),"big"):i.split32(this.h.slice(0,12),"big")}},function(e,t,r){"use strict";var i=r(18),n=r(34),a=i.rotl32,o=i.sum32,s=i.sum32_3,u=i.sum32_4,d=n.BlockHash;function h(){if(!(this instanceof h))return new h;d.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function l(e,t,r,i){return e<=15?t^r^i:e<=31?t&r|~t&i:e<=47?(t|~r)^i:e<=63?t&i|r&~i:t^(r|~i)}function f(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function c(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}i.inherits(h,d),t.ripemd160=h,h.blockSize=512,h.outSize=160,h.hmacStrength=192,h.padLength=64,h.prototype._update=function(e,t){for(var r=this.h[0],i=this.h[1],n=this.h[2],d=this.h[3],h=this.h[4],y=r,b=i,v=n,w=d,E=h,A=0;A<80;A++){var S=o(a(u(r,l(A,i,n,d),e[p[A]+t],f(A)),g[A]),h);r=h,h=d,d=a(n,10),n=i,i=S,S=o(a(u(y,l(79-A,b,v,w),e[m[A]+t],c(A)),_[A]),E),y=E,E=w,w=a(v,10),v=b,b=S}S=s(this.h[1],n,w),this.h[1]=s(this.h[2],d,E),this.h[2]=s(this.h[3],h,y),this.h[3]=s(this.h[4],r,b),this.h[4]=s(this.h[0],i,v),this.h[0]=S},h.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h,"little"):i.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],g=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],_=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},function(e,t,r){"use strict";var i=r(18),n=r(14);function a(e,t,r){if(!(this instanceof a))return new a(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(i.toArray(t,r))}e.exports=a,a.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),n(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},a.prototype.update=function(e,t){return this.inner.update(e,t),this},a.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)}},function(e,t){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(e,t,r){"use strict";var i=r(11),n=r(206),a=r(15),o=r(60),s=r(56),u=a.assert,d=r(207),h=r(208);function l(e){if(!(this instanceof l))return new l(e);"string"==typeof e&&(u(Object.prototype.hasOwnProperty.call(o,e),"Unknown curve "+e),e=o[e]),e instanceof o.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=l,l.prototype.keyPair=function(e){return new d(this,e)},l.prototype.keyFromPrivate=function(e,t){return d.fromPrivate(this,e,t)},l.prototype.keyFromPublic=function(e,t){return d.fromPublic(this,e,t)},l.prototype.genKeyPair=function(e){e||(e={});for(var t=new n({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||s(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),a=this.n.sub(new i(2));;){var o=new i(t.generate(r));if(!(o.cmp(a)>0))return o.iaddn(1),this.keyFromPrivate(o)}},l.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},l.prototype.sign=function(e,t,r,a){"object"==typeof r&&(a=r,r=null),a||(a={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new i(e,16));for(var o=this.n.byteLength(),s=t.getPrivate().toArray("be",o),u=e.toArray("be",o),d=new n({hash:this.hash,entropy:s,nonce:u,pers:a.pers,persEnc:a.persEnc||"utf8"}),l=this.n.sub(new i(1)),f=0;;f++){var c=a.k?a.k(f):new i(d.generate(this.n.byteLength()));if(!((c=this._truncateToN(c,!0)).cmpn(1)<=0||c.cmp(l)>=0)){var p=this.g.mul(c);if(!p.isInfinity()){var m=p.getX(),g=m.umod(this.n);if(0!==g.cmpn(0)){var _=c.invm(this.n).mul(g.mul(t.getPrivate()).iadd(e));if(0!==(_=_.umod(this.n)).cmpn(0)){var y=(p.getY().isOdd()?1:0)|(0!==m.cmp(g)?2:0);return a.canonical&&_.cmp(this.nh)>0&&(_=this.n.sub(_),y^=1),new h({r:g,s:_,recoveryParam:y})}}}}}},l.prototype.verify=function(e,t,r,n){e=this._truncateToN(new i(e,16)),r=this.keyFromPublic(r,n);var a=(t=new h(t,"hex")).r,o=t.s;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var s,u=o.invm(this.n),d=u.mul(e).umod(this.n),l=u.mul(a).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(d,r.getPublic(),l)).isInfinity()&&s.eqXToP(a):!(s=this.g.mulAdd(d,r.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(a)},l.prototype.recoverPubKey=function(e,t,r,n){u((3&r)===r,"The recovery param is more than two bits"),t=new h(t,n);var a=this.n,o=new i(e),s=t.r,d=t.s,l=1&r,f=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error("Unable to find sencond key candinate");s=f?this.curve.pointFromX(s.add(this.curve.n),l):this.curve.pointFromX(s,l);var c=t.r.invm(a),p=a.sub(o).mul(c).umod(a),m=d.mul(c).umod(a);return this.g.mulAdd(p,s,m)},l.prototype.getKeyRecoveryParam=function(e,t,r,i){if(null!==(t=new h(t,i)).recoveryParam)return t.recoveryParam;for(var n=0;n<4;n++){var a;try{a=this.recoverPubKey(e,t,n)}catch(e){continue}if(a.eq(r))return n}throw new Error("Unable to find valid recovery factor")}},function(e,t,r){"use strict";var i=r(61),n=r(108),a=r(14);function o(e){if(!(this instanceof o))return new o(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=n.toArray(e.entropy,e.entropyEnc||"hex"),r=n.toArray(e.nonce,e.nonceEnc||"hex"),i=n.toArray(e.pers,e.persEnc||"hex");a(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,i)}e.exports=o,o.prototype._init=function(e,t,r){var i=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var n=0;n<this.V.length;n++)this.K[n]=0,this.V[n]=1;this._update(i),this._reseed=1,this.reseedInterval=281474976710656},o.prototype._hmac=function(){return new i.hmac(this.hash,this.K)},o.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},o.prototype.reseed=function(e,t,r,i){"string"!=typeof t&&(i=r,r=t,t=null),e=n.toArray(e,t),r=n.toArray(r,i),a(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},o.prototype.generate=function(e,t,r,i){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(i=r,r=t,t=null),r&&(r=n.toArray(r,i||"hex"),this._update(r));for(var a=[];a.length<e;)this.V=this._hmac().update(this.V).digest(),a=a.concat(this.V);var o=a.slice(0,e);return this._update(r),this._reseed++,n.encode(o,t)}},function(e,t,r){"use strict";var i=r(11),n=r(15).assert;function a(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=a,a.fromPublic=function(e,t,r){return t instanceof a?t:new a(e,{pub:t,pubEnc:r})},a.fromPrivate=function(e,t,r){return t instanceof a?t:new a(e,{priv:t,privEnc:r})},a.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},a.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},a.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},a.prototype._importPrivate=function(e,t){this.priv=new i(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},a.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?n(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||n(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},a.prototype.derive=function(e){return e.validate()||n(e.validate(),"public point not validated"),e.mul(this.priv).getX()},a.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},a.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},a.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},function(e,t,r){"use strict";var i=r(11),n=r(15),a=n.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(a(e.r&&e.s,"Signature without r or s"),this.r=new i(e.r,16),this.s=new i(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function s(){this.place=0}function u(e,t){var r=e[t.place++];if(!(128&r))return r;var i=15&r;if(0===i||i>4)return!1;for(var n=0,a=0,o=t.place;a<i;a++,o++)n<<=8,n|=e[o],n>>>=0;return!(n<=127)&&(t.place=o,n)}function d(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t<r;)t++;return 0===t?e:e.slice(t)}function h(e,t){if(t<128)e.push(t);else{var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=n.toArray(e,t);var r=new s;if(48!==e[r.place++])return!1;var a=u(e,r);if(!1===a)return!1;if(a+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=u(e,r);if(!1===o)return!1;var d=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var h=u(e,r);if(!1===h)return!1;if(e.length!==h+r.place)return!1;var l=e.slice(r.place,h+r.place);if(0===d[0]){if(!(128&d[1]))return!1;d=d.slice(1)}if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}return this.r=new i(d),this.s=new i(l),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=d(t),r=d(r);!(r[0]||128&r[1]);)r=r.slice(1);var i=[2];h(i,t.length),(i=i.concat(t)).push(2),h(i,r.length);var a=i.concat(r),o=[48];return h(o,a.length),o=o.concat(a),n.encode(o,e)}},function(e,t,r){"use strict";var i=r(61),n=r(60),a=r(15),o=a.assert,s=a.parseBytes,u=r(210),d=r(211);function h(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof h))return new h(e);e=n[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=i.sha512}e.exports=h,h.prototype.sign=function(e,t){e=s(e);var r=this.keyFromSecret(t),i=this.hashInt(r.messagePrefix(),e),n=this.g.mul(i),a=this.encodePoint(n),o=this.hashInt(a,r.pubBytes(),e).mul(r.priv()),u=i.add(o).umod(this.curve.n);return this.makeSignature({R:n,S:u,Rencoded:a})},h.prototype.verify=function(e,t,r){e=s(e),t=this.makeSignature(t);var i=this.keyFromPublic(r),n=this.hashInt(t.Rencoded(),i.pubBytes(),e),a=this.g.mul(t.S());return t.R().add(i.pub().mul(n)).eq(a)},h.prototype.hashInt=function(){for(var e=this.hash(),t=0;t<arguments.length;t++)e.update(arguments[t]);return a.intFromLE(e.digest()).umod(this.curve.n)},h.prototype.keyFromPublic=function(e){return u.fromPublic(this,e)},h.prototype.keyFromSecret=function(e){return u.fromSecret(this,e)},h.prototype.makeSignature=function(e){return e instanceof d?e:new d(this,e)},h.prototype.encodePoint=function(e){var t=e.getY().toArray("le",this.encodingLength);return t[this.encodingLength-1]|=e.getX().isOdd()?128:0,t},h.prototype.decodePoint=function(e){var t=(e=a.parseBytes(e)).length-1,r=e.slice(0,t).concat(-129&e[t]),i=0!=(128&e[t]),n=a.intFromLE(r);return this.curve.pointFromY(n,i)},h.prototype.encodeInt=function(e){return e.toArray("le",this.encodingLength)},h.prototype.decodeInt=function(e){return a.intFromLE(e)},h.prototype.isPoint=function(e){return e instanceof this.pointClass}},function(e,t,r){"use strict";var i=r(15),n=i.assert,a=i.parseBytes,o=i.cachedProperty;function s(e,t){this.eddsa=e,this._secret=a(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=a(t.pub)}s.fromPublic=function(e,t){return t instanceof s?t:new s(e,{pub:t})},s.fromSecret=function(e,t){return t instanceof s?t:new s(e,{secret:t})},s.prototype.secret=function(){return this._secret},o(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),o(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),o(s,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,i=t.slice(0,e.encodingLength);return i[0]&=248,i[r]&=127,i[r]|=64,i})),o(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),o(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),o(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(e){return n(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},s.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},s.prototype.getSecret=function(e){return n(this._secret,"KeyPair is public only"),i.encode(this.secret(),e)},s.prototype.getPublic=function(e){return i.encode(this.pubBytes(),e)},e.exports=s},function(e,t,r){"use strict";var i=r(11),n=r(15),a=n.assert,o=n.cachedProperty,s=n.parseBytes;function u(e,t){this.eddsa=e,"object"!=typeof t&&(t=s(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),a(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof i&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}o(u,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),o(u,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),o(u,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),o(u,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),u.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},u.prototype.toHex=function(){return n.encode(this.toBytes(),"hex").toUpperCase()},e.exports=u},function(e,t){},function(e,t,r){"use strict";var i=r(114);t.certificate=r(219);var n=i.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));t.RSAPrivateKey=n;var a=i.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));t.RSAPublicKey=a;var o=i.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));t.PublicKey=o;var s=i.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),u=i.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));t.PrivateKey=u;var d=i.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));t.EncryptedPrivateKey=d;var h=i.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));t.DSAPrivateKey=h,t.DSAparam=i.define("DSAparam",(function(){this.int()}));var l=i.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(f),this.key("publicKey").optional().explicit(1).bitstr())}));t.ECPrivateKey=l;var f=i.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));t.signature=i.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},function(e,t,r){"use strict";var i=r(115),n=r(117),a=r(5);function o(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}t.define=function(e,t){return new o(e,t)},o.prototype._createNamed=function(e){var t=this.name;function r(e){this._initNamed(e,t)}return a(r,e),r.prototype._initNamed=function(t,r){e.call(this,t,r)},new r(this)},o.prototype._getDecoder=function(e){return e=e||"der",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(n[e])),this.decoders[e]},o.prototype.decode=function(e,t,r){return this._getDecoder(t).decode(e,r)},o.prototype._getEncoder=function(e){return e=e||"der",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(i[e])),this.encoders[e]},o.prototype.encode=function(e,t,r){return this._getEncoder(t).encode(e,r)}},function(e,t,r){"use strict";var i=r(5),n=r(116);function a(e){n.call(this,e),this.enc="pem"}i(a,n),e.exports=a,a.prototype.encode=function(e,t){for(var r=n.prototype.encode.call(this,e).toString("base64"),i=["-----BEGIN "+t.label+"-----"],a=0;a<r.length;a+=64)i.push(r.slice(a,a+64));return i.push("-----END "+t.label+"-----"),i.join("\n")}},function(e,t,r){"use strict";var i=r(5),n=r(62).Buffer,a=r(118);function o(e){a.call(this,e),this.enc="pem"}i(o,a),e.exports=o,o.prototype.decode=function(e,t){for(var r=e.toString().split(/[\r\n]+/g),i=t.label.toUpperCase(),o=/^-----(BEGIN|END) ([^-]+)-----$/,s=-1,u=-1,d=0;d<r.length;d++){var h=r[d].match(o);if(null!==h&&h[2]===i){if(-1!==s){if("END"!==h[1])break;u=d;break}if("BEGIN"!==h[1])break;s=d}}if(-1===s||-1===u)throw new Error("PEM section not found for: "+i);var l=r.slice(s+1,u).join("");l.replace(/[^a-z0-9+/=]+/gi,"");var f=n.from(l,"base64");return a.prototype.decode.call(this,f,t)}},function(e,t,r){"use strict";var i=t;i.Reporter=r(64).Reporter,i.DecoderBuffer=r(35).DecoderBuffer,i.EncoderBuffer=r(35).EncoderBuffer,i.Node=r(63)},function(e,t,r){"use strict";var i=t;i._reverse=function(e){var t={};return Object.keys(e).forEach((function(r){(0|r)==r&&(r|=0);var i=e[r];t[i]=r})),t},i.der=r(65)},function(e,t,r){"use strict";var i=r(114),n=i.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),a=i.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),o=i.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),s=i.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(o),this.key("subjectPublicKey").bitstr())})),u=i.define("RelativeDistinguishedName",(function(){this.setof(a)})),d=i.define("RDNSequence",(function(){this.seqof(u)})),h=i.define("Name",(function(){this.choice({rdnSequence:this.use(d)})})),l=i.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(n),this.key("notAfter").use(n))})),f=i.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),c=i.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(o),this.key("issuer").use(h),this.key("validity").use(l),this.key("subject").use(h),this.key("subjectPublicKeyInfo").use(s),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(f).optional())})),p=i.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(c),this.key("signatureAlgorithm").use(o),this.key("signatureValue").bitstr())}));e.exports=p},function(e){e.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},function(e,t,r){var i=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,n=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,a=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,o=r(40),s=r(53),u=r(6).Buffer;e.exports=function(e,t){var r,d=e.toString(),h=d.match(i);if(h){var l="aes"+h[1],f=u.from(h[2],"hex"),c=u.from(h[3].replace(/[\r\n]/g,""),"base64"),p=o(t,f.slice(0,8),parseInt(h[1],10)).key,m=[],g=s.createDecipheriv(l,p,f);m.push(g.update(c)),m.push(g.final()),r=u.concat(m)}else{var _=d.match(a);r=u.from(_[2].replace(/[\r\n]/g,""),"base64")}return{tag:d.match(n)[1],data:r}}},function(e,t,r){var i=r(6).Buffer,n=r(113),a=r(59).ec,o=r(42),s=r(119);function u(e,t){if(e.cmpn(0)<=0)throw new Error("invalid sig");if(e.cmp(t)>=t)throw new Error("invalid sig")}e.exports=function(e,t,r,d,h){var l=o(r);if("ec"===l.type){if("ecdsa"!==d&&"ecdsa/rsa"!==d)throw new Error("wrong public key type");return function(e,t,r){var i=s[r.data.algorithm.curve.join(".")];if(!i)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var n=new a(i),o=r.data.subjectPrivateKey.data;return n.verify(t,e,o)}(e,t,l)}if("dsa"===l.type){if("dsa"!==d)throw new Error("wrong public key type");return function(e,t,r){var i=r.data.p,a=r.data.q,s=r.data.g,d=r.data.pub_key,h=o.signature.decode(e,"der"),l=h.s,f=h.r;u(l,a),u(f,a);var c=n.mont(i),p=l.invm(a);return 0===s.toRed(c).redPow(new n(t).mul(p).mod(a)).fromRed().mul(d.toRed(c).redPow(f.mul(p).mod(a)).fromRed()).mod(i).mod(a).cmp(f)}(e,t,l)}if("rsa"!==d&&"ecdsa/rsa"!==d)throw new Error("wrong public key type");t=i.concat([h,t]);for(var f=l.modulus.byteLength(),c=[1],p=0;t.length+c.length+2<f;)c.push(255),p++;c.push(0);for(var m=-1;++m<t.length;)c.push(t[m]);c=i.from(c);var g=n.mont(l.modulus);e=(e=new n(e).toRed(g)).redPow(new n(l.publicExponent)),e=i.from(e.fromRed().toArray());var _=p<8?1:0;for(f=Math.min(e.length,c.length),e.length!==c.length&&(_=1),m=-1;++m<f;)_|=e[m]^c[m];return 0===_}},function(e,t,r){(function(t){var i=r(59),n=r(11);e.exports=function(e){return new o(e)};var a={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function o(e){this.curveType=a[e],this.curveType||(this.curveType={name:e}),this.curve=new i.ec(this.curveType.name),this.keys=void 0}function s(e,r,i){Array.isArray(e)||(e=e.toArray());var n=new t(e);if(i&&n.length<i){var a=new t(i-n.length);a.fill(0),n=t.concat([a,n])}return r?n.toString(r):n}a.p224=a.secp224r1,a.p256=a.secp256r1=a.prime256v1,a.p192=a.secp192r1=a.prime192v1,a.p384=a.secp384r1,a.p521=a.secp521r1,o.prototype.generateKeys=function(e,t){return this.keys=this.curve.genKeyPair(),this.getPublicKey(e,t)},o.prototype.computeSecret=function(e,r,i){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),s(this.curve.keyFromPublic(e).getPublic().mul(this.keys.getPrivate()).getX(),i,this.curveType.byteLength)},o.prototype.getPublicKey=function(e,t){var r=this.keys.getPublic("compressed"===t,!0);return"hybrid"===t&&(r[r.length-1]%2?r[0]=7:r[0]=6),s(r,e)},o.prototype.getPrivateKey=function(e){return s(this.keys.getPrivate(),e)},o.prototype.setPublicKey=function(e,r){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),this.keys._importPublic(e),this},o.prototype.setPrivateKey=function(e,r){r=r||"utf8",t.isBuffer(e)||(e=new t(e,r));var i=new n(e);return i=i.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(i),this}}).call(this,r(10).Buffer)},function(e,t,r){t.publicEncrypt=r(225),t.privateDecrypt=r(226),t.privateEncrypt=function(e,r){return t.publicEncrypt(e,r,!0)},t.publicDecrypt=function(e,r){return t.privateDecrypt(e,r,!0)}},function(e,t,r){var i=r(42),n=r(24),a=r(31),o=r(120),s=r(121),u=r(11),d=r(122),h=r(58),l=r(6).Buffer;e.exports=function(e,t,r){var f;f=e.padding?e.padding:r?1:4;var c,p=i(e);if(4===f)c=function(e,t){var r=e.modulus.byteLength(),i=t.length,d=a("sha1").update(l.alloc(0)).digest(),h=d.length,f=2*h;if(i>r-f-2)throw new Error("message too long");var c=l.alloc(r-i-f-2),p=r-h-1,m=n(h),g=s(l.concat([d,c,l.alloc(1,1),t],p),o(m,p)),_=s(m,o(g,h));return new u(l.concat([l.alloc(1),_,g],r))}(p,t);else if(1===f)c=function(e,t,r){var i,a=t.length,o=e.modulus.byteLength();if(a>o-11)throw new Error("message too long");i=r?l.alloc(o-a-3,255):function(e){var t,r=l.allocUnsafe(e),i=0,a=n(2*e),o=0;for(;i<e;)o===a.length&&(a=n(2*e),o=0),(t=a[o++])&&(r[i++]=t);return r}(o-a-3);return new u(l.concat([l.from([0,r?1:2]),i,l.alloc(1),t],o))}(p,t,r);else{if(3!==f)throw new Error("unknown padding");if((c=new u(t)).cmp(p.modulus)>=0)throw new Error("data too long for modulus")}return r?h(c,p):d(c,p)}},function(e,t,r){var i=r(42),n=r(120),a=r(121),o=r(11),s=r(58),u=r(31),d=r(122),h=r(6).Buffer;e.exports=function(e,t,r){var l;l=e.padding?e.padding:r?1:4;var f,c=i(e),p=c.modulus.byteLength();if(t.length>p||new o(t).cmp(c.modulus)>=0)throw new Error("decryption error");f=r?d(new o(t),c):s(t,c);var m=h.alloc(p-f.length);if(f=h.concat([m,f],p),4===l)return function(e,t){var r=e.modulus.byteLength(),i=u("sha1").update(h.alloc(0)).digest(),o=i.length;if(0!==t[0])throw new Error("decryption error");var s=t.slice(1,o+1),d=t.slice(o+1),l=a(s,n(d,o)),f=a(d,n(l,r-o-1));if(function(e,t){e=h.from(e),t=h.from(t);var r=0,i=e.length;e.length!==t.length&&(r++,i=Math.min(e.length,t.length));var n=-1;for(;++n<i;)r+=e[n]^t[n];return r}(i,f.slice(0,o)))throw new Error("decryption error");var c=o;for(;0===f[c];)c++;if(1!==f[c++])throw new Error("decryption error");return f.slice(c)}(c,f);if(1===l)return function(e,t,r){var i=t.slice(0,2),n=2,a=0;for(;0!==t[n++];)if(n>=t.length){a++;break}var o=t.slice(2,n-1);("0002"!==i.toString("hex")&&!r||"0001"!==i.toString("hex")&&r)&&a++;o.length<8&&a++;if(a)throw new Error("decryption error");return t.slice(n)}(0,f,r);if(3===l)return f;throw new Error("unknown padding")}},function(e,t,r){"use strict";(function(e,i){function n(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var a=r(6),o=r(24),s=a.Buffer,u=a.kMaxLength,d=e.crypto||e.msCrypto,h=Math.pow(2,32)-1;function l(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>h||e<0)throw new TypeError("offset must be a uint32");if(e>u||e>t)throw new RangeError("offset out of range")}function f(e,t,r){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>h||e<0)throw new TypeError("size must be a uint32");if(e+t>r||e>u)throw new RangeError("buffer too small")}function c(e,t,r,n){if(i.browser){var a=e.buffer,s=new Uint8Array(a,t,r);return d.getRandomValues(s),n?void i.nextTick((function(){n(null,e)})):e}if(!n)return o(r).copy(e,t),e;o(r,(function(r,i){if(r)return n(r);i.copy(e,t),n(null,e)}))}d&&d.getRandomValues||!i.browser?(t.randomFill=function(t,r,i,n){if(!(s.isBuffer(t)||t instanceof e.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof r)n=r,r=0,i=t.length;else if("function"==typeof i)n=i,i=t.length-r;else if("function"!=typeof n)throw new TypeError('"cb" argument must be a function');return l(r,t.length),f(i,r,t.length),c(t,r,i,n)},t.randomFillSync=function(t,r,i){void 0===r&&(r=0);if(!(s.isBuffer(t)||t instanceof e.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');l(r,t.length),void 0===i&&(i=t.length-r);return f(i,r,t.length),c(t,r,i)}):(t.randomFill=n,t.randomFillSync=n)}).call(this,r(13),r(9))},function(e,t,r){"use strict";r.r(t);r(0);var i=r(19),n=r(43),a=r(36),o=r(2);t.default=function(e){var t=null,r=function(t,r){e.postMessage({msg:"logcat_callback",data:{type:t,logcat:r}})}.bind(this);function s(t,r){var i={msg:o.a.INIT_SEGMENT,data:{type:t,data:r}};e.postMessage(i,[r.data])}function u(t,r){var i={msg:o.a.MEDIA_SEGMENT,data:{type:t,data:r}};e.postMessage(i,[r.data])}function d(){var t={msg:o.a.LOADING_COMPLETE};e.postMessage(t)}function h(){var t={msg:o.a.RECOVERED_EARLY_EOF};e.postMessage(t)}function l(t){var r={msg:o.a.MEDIA_INFO,data:t};e.postMessage(r)}function f(t){var r={msg:o.a.METADATA_ARRIVED,data:t};e.postMessage(r)}function c(t){var r={msg:o.a.SCRIPTDATA_ARRIVED,data:t};e.postMessage(r)}function p(t){var r={msg:o.a.STATISTICS_INFO,data:t};e.postMessage(r)}function m(t,r){e.postMessage({msg:o.a.IO_ERROR,data:{type:t,info:r}})}function g(t,r){e.postMessage({msg:o.a.DEMUX_ERROR,data:{type:t,info:r}})}function _(t){e.postMessage({msg:o.a.RECOMMEND_SEEKPOINT,data:t})}n.a.install(),e.addEventListener("message",(function(n){switch(n.data.cmd){case"init":(t=new a.a(n.data.param[0],n.data.param[1])).on(o.a.IO_ERROR,m.bind(this)),t.on(o.a.DEMUX_ERROR,g.bind(this)),t.on(o.a.INIT_SEGMENT,s.bind(this)),t.on(o.a.MEDIA_SEGMENT,u.bind(this)),t.on(o.a.LOADING_COMPLETE,d.bind(this)),t.on(o.a.RECOVERED_EARLY_EOF,h.bind(this)),t.on(o.a.MEDIA_INFO,l.bind(this)),t.on(o.a.METADATA_ARRIVED,f.bind(this)),t.on(o.a.SCRIPTDATA_ARRIVED,c.bind(this)),t.on(o.a.STATISTICS_INFO,p.bind(this)),t.on(o.a.RECOMMEND_SEEKPOINT,_.bind(this));break;case"destroy":t&&(t.destroy(),t=null),e.postMessage({msg:"destroyed"});break;case"start":t.start();break;case"stop":t.stop();break;case"seek":t.seek(n.data.param);break;case"pause":t.pause();break;case"resume":t.resume();break;case"logging_config":var y=n.data.param;i.a.applyConfig(y),!0===y.enableCallback?i.a.addLogListener(r):i.a.removeLogListener(r)}}))}},function(e,t,r){"use strict";r.r(t),function(e,i,n,a){r.d(t,"EasyPlayerWasmModule",(function(){return c})),r.d(t,"EasyLoadWasmModule",(function(){return p})),r.d(t,"EasyModuleInitialized",(function(){return m}));var o,s=r(1),u=!1,d="",h=void 0!==h?h:{};function l(){var t,s={};for(t in h)h.hasOwnProperty(t)&&(s[t]=h[t]);var u=[],l="./this.program",f=function(e,t){throw t},c=!1,p=!1,m=!1,g=!1,_=!1;if(c="object"==typeof window,p="function"==typeof importScripts,g="object"==typeof e&&"object"==typeof e.versions&&"string"==typeof e.versions.node,m=g&&!c&&!p,_=!c&&!m&&!p,h.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var y,b,v,w,E="";function A(e){return h.locateFile?h.locateFile(e,E):E+e}if(m)E=i+"/",y=function(e,t){var i;return v||(v=r(69)),w||(w=r(70)),e=w.normalize(e),i=v.readFileSync(e),t?i:i.toString()},b=function(e){var t=y(e,!0);return t.buffer||(t=new Uint8Array(t)),N(t.buffer),t},e.argv.length>1&&(l=e.argv[1].replace(/\\/g,"/")),u=e.argv.slice(2),n.exports=h,e.on("uncaughtException",(function(e){if(!(e instanceof ei))throw e})),e.on("unhandledRejection",Le),f=function(t){e.exit(t)},h.inspect=function(){return"[Emscripten Module object]"};else if(_)"undefined"!=typeof read&&(y=function(e){return read(e)}),b=function(e){var t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(N("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?u=scriptArgs:void 0!==arguments&&(u=arguments),"function"==typeof quit&&(f=function(e){quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print);else{if(!c&&!p)throw new Error("environment detection error");p?E=self.location.href:document.currentScript&&(E=document.currentScript.src),E=0!==E.indexOf("blob:")?E.substr(0,E.lastIndexOf("/")+1):"",y=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},p&&(b=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(e,t,r){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=function(){200==i.status||0==i.status&&i.response?t(i.response):r()},i.onerror=r,i.send(null)},function(e){document.title=e}}var S=h.print||console.log.bind(console),M=h.printErr||console.warn.bind(console);for(t in s)s.hasOwnProperty(t)&&(h[t]=s[t]);function T(e){T.shown||(T.shown={}),T.shown[e]||(T.shown[e]=1,M(e))}function R(e,t){var r=[1,0,1,96],i=t.slice(0,1),n=t.slice(1),a={i:127,j:126,f:125,d:124};r.push(n.length);for(var o=0;o<n.length;++o)r.push(a[n[o]]);"v"==i?r.push(0):r=r.concat([1,a[i]]),r[1]=r.length-2;var s=new Uint8Array([0,97,115,109,1,0,0,0].concat(r,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),u=new WebAssembly.Module(s);return new WebAssembly.Instance(u,{e:{f:e}}).exports.f}function k(e,t){var r=C,i=r.length;try{r.grow(1)}catch(e){if(!e instanceof RangeError)throw e;throw"Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH."}try{r.set(i,e)}catch(a){if(!a instanceof TypeError)throw a;N(void 0!==t,"Missing signature argument to addFunction");var n=R(e,t);r.set(i,n)}return i}function I(e,t){return N(void 0!==e),k(e,t)}s=null,h.arguments&&(u=h.arguments),Object.getOwnPropertyDescriptor(h,"arguments")||Object.defineProperty(h,"arguments",{configurable:!0,get:function(){Le("Module.arguments has been replaced with plain arguments_")}}),h.thisProgram&&(l=h.thisProgram),Object.getOwnPropertyDescriptor(h,"thisProgram")||Object.defineProperty(h,"thisProgram",{configurable:!0,get:function(){Le("Module.thisProgram has been replaced with plain thisProgram")}}),h.quit&&(f=h.quit),Object.getOwnPropertyDescriptor(h,"quit")||Object.defineProperty(h,"quit",{configurable:!0,get:function(){Le("Module.quit has been replaced with plain quit_")}}),N(void 0===h.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),N(void 0===h.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),N(void 0===h.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),N(void 0===h.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),N(void 0===h.read,"Module.read option was removed (modify read_ in JS)"),N(void 0===h.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),N(void 0===h.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),N(void 0===h.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),Object.getOwnPropertyDescriptor(h,"read")||Object.defineProperty(h,"read",{configurable:!0,get:function(){Le("Module.read has been replaced with plain read_")}}),Object.getOwnPropertyDescriptor(h,"readAsync")||Object.defineProperty(h,"readAsync",{configurable:!0,get:function(){Le("Module.readAsync has been replaced with plain readAsync")}}),Object.getOwnPropertyDescriptor(h,"readBinary")||Object.defineProperty(h,"readBinary",{configurable:!0,get:function(){Le("Module.readBinary has been replaced with plain readBinary")}}),Jr=$r=Zr=function(){Le("cannot use the stack before compiled code is ready to run, and has provided stack access")};var O,D,x=function(e){e};h.wasmBinary&&(O=h.wasmBinary),Object.getOwnPropertyDescriptor(h,"wasmBinary")||Object.defineProperty(h,"wasmBinary",{configurable:!0,get:function(){Le("Module.wasmBinary has been replaced with plain wasmBinary")}}),h.noExitRuntime&&(o=h.noExitRuntime),Object.getOwnPropertyDescriptor(h,"noExitRuntime")||Object.defineProperty(h,"noExitRuntime",{configurable:!0,get:function(){Le("Module.noExitRuntime has been replaced with plain noExitRuntime")}}),"object"!=typeof WebAssembly&&Le("No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.");var C=new WebAssembly.Table({initial:2542,maximum:2552,element:"anyfunc"}),P=!1;function N(e,t){e||Le("Assertion failed: "+t)}function L(e){var t=h["_"+e];return N(t,"Cannot call unknown function "+e+", make sure it is exported"),t}function B(e,t,r,i,n){var a={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);W(e,t=Zr(r),r)}return t},array:function(e){var t=Zr(e.length);return z(e,t),t}};var o=L(e),s=[],u=0;if(N("array"!==t,'Return type should not be "array".'),i)for(var d=0;d<i.length;d++){var h=a[r[d]];h?(0===u&&(u=Jr()),s[d]=h(i[d])):s[d]=i[d]}var l=o.apply(null,s);return l=function(e){return"string"===t?H(e):"boolean"===t?Boolean(e):e}(l),0!==u&&$r(u),l}function F(e,t,r,i){return function(){return B(e,t,r,arguments)}}var U="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function j(e,t,r){for(var i=t+r,n=t;e[n]&&!(n>=i);)++n;if(n-t>16&&e.subarray&&U)return U.decode(e.subarray(t,n));for(var a="";t<n;){var o=e[t++];if(128&o){var s=63&e[t++];if(192!=(224&o)){var u=63&e[t++];if(224==(240&o)?o=(15&o)<<12|s<<6|u:(240!=(248&o)&&T("Invalid UTF-8 leading byte 0x"+o.toString(16)+" encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!"),o=(7&o)<<18|s<<12|u<<6|63&e[t++]),o<65536)a+=String.fromCharCode(o);else{var d=o-65536;a+=String.fromCharCode(55296|d>>10,56320|1023&d)}}else a+=String.fromCharCode((31&o)<<6|s)}else a+=String.fromCharCode(o)}return a}function H(e,t){return e?j(Y,e,t):""}function X(e,t,r,i){if(!(i>0))return 0;for(var n=r,a=r+i-1,o=0;o<e.length;++o){var s=e.charCodeAt(o);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o);if(s<=127){if(r>=a)break;t[r++]=s}else if(s<=2047){if(r+1>=a)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=a)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=a)break;s>=2097152&&T("Invalid Unicode code point 0x"+s.toString(16)+" encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF)."),t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-n}function W(e,t,r){return N("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),X(e,Y,t,r)}function V(e){for(var t=0,r=0;r<e.length;++r){var i=e.charCodeAt(r);i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++r)),i<=127?++t:t+=i<=2047?2:i<=65535?3:4}return t}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");function z(e,t){N(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),Q.set(e,t)}function q(e,t,r){for(var i=0;i<e.length;++i)N(e.charCodeAt(i)==e.charCodeAt(i)&255),Q[t++>>0]=e.charCodeAt(i);r||(Q[t>>0]=0)}var G,Q,Y,K,J,Z,$=65536;function ee(e,t){return e%t>0&&(e+=t-e%t),e}function te(e){G=e,h.HEAP8=Q=new Int8Array(e),h.HEAP16=K=new Int16Array(e),h.HEAP32=J=new Int32Array(e),h.HEAPU8=Y=new Uint8Array(e),h.HEAPU16=new Uint16Array(e),h.HEAPU32=Z=new Uint32Array(e),h.HEAPF32=new Float32Array(e),h.HEAPF64=new Float64Array(e)}var re=6584208,ie=1341328,ne=6584208,ae=1341168;N(re%16==0,"stack must start aligned"),N(ne%16==0,"heap must start aligned");var oe=5242880;h.TOTAL_STACK&&N(oe===h.TOTAL_STACK,"the stack size can no longer be determined at runtime");var se=h.TOTAL_MEMORY||67108864;function ue(){N(0==(3&ie)),Z[1+(ie>>2)]=34821223,Z[2+(ie>>2)]=2310721022,J[0]=1668509029}function de(){var e=Z[1+(ie>>2)],t=Z[2+(ie>>2)];34821223==e&&2310721022==t||Le("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x"+t.toString(16)+" "+e.toString(16)),1668509029!==J[0]&&Le("Runtime error: The application has corrupted its heap memory area (address zero)!")}function he(e){Le("Stack overflow! Attempted to allocate "+e+" bytes on the stack, but stack has only "+(ie-Jr()+e)+" bytes available!")}function le(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?h.dynCall_v(r):h.dynCall_vi(r,t.arg):r(void 0===t.arg?null:t.arg)}else t()}}Object.getOwnPropertyDescriptor(h,"TOTAL_MEMORY")||Object.defineProperty(h,"TOTAL_MEMORY",{configurable:!0,get:function(){Le("Module.TOTAL_MEMORY has been replaced with plain INITIAL_TOTAL_MEMORY")}}),N(se>=oe,"TOTAL_MEMORY should be larger than TOTAL_STACK, was "+se+"! (TOTAL_STACK="+oe+")"),N("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),(D=h.wasmMemory?h.wasmMemory:new WebAssembly.Memory({initial:se/$}))&&(G=D.buffer),N((se=G.byteLength)%$==0),te(G),J[ae>>2]=ne,function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian!"}();var fe=[],ce=[],pe=[],me=[],ge=!1,_e=!1;function ye(){if(h.preRun)for("function"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)Ae(h.preRun.shift());le(fe)}function be(){de(),N(!ge),ge=!0,h.noFSInit||ot.init.initialized||ot.init(),rt.init(),le(ce)}function ve(){de(),ot.ignorePermissions=!1,le(pe)}function we(){de(),_e=!0}function Ee(){if(de(),h.postRun)for("function"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;)Se(h.postRun.shift());le(me)}function Ae(e){fe.unshift(e)}function Se(e){me.unshift(e)}N(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),N(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),N(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),N(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var Me=Math.abs,Te=Math.ceil,Re=Math.floor,ke=Math.min,Ie=0,Oe=null,De=null,xe={};function Ce(e){for(var t=e;;){if(!xe[e])return e;e=t+Math.random()}return e}function Pe(e){Ie++,h.monitorRunDependencies&&h.monitorRunDependencies(Ie),e?(N(!xe[e]),xe[e]=1,null===Oe&&"undefined"!=typeof setInterval&&(Oe=setInterval((function(){if(P)return clearInterval(Oe),void(Oe=null);var e=!1;for(var t in xe)e||(e=!0,M("still waiting on run dependencies:")),M("dependency: "+t);e&&M("(end of list)")}),1e4))):M("warning: run dependency added without ID")}function Ne(e){if(Ie--,h.monitorRunDependencies&&h.monitorRunDependencies(Ie),e?(N(xe[e]),delete xe[e]):M("warning: run dependency removed without ID"),0==Ie&&(null!==Oe&&(clearInterval(Oe),Oe=null),De)){var t=De;De=null,t()}}function Le(e){throw h.onAbort&&h.onAbort(e),S(e+=""),M(e),P=!0,1,e="abort("+e+") at "+Qe(),new WebAssembly.RuntimeError(e)}h.preloadedImages={},h.preloadedAudios={};var Be="data:application/octet-stream;base64,";function Fe(e){return String.prototype.startsWith?e.startsWith(Be):0===e.indexOf(Be)}var Ue,je,He=d+"EasyPlayer.wasm";function Xe(){try{if(O)return new Uint8Array(O);if(b)return b(He);throw"both async and sync fetching of the wasm failed"}catch(e){Le(e)}}function We(){return O||!c&&!p||"function"!=typeof fetch?new Promise((function(e,t){e(Xe())})):fetch(He,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+He+"'";return e.arrayBuffer()})).catch((function(){return Xe()}))}function Ve(){var e={env:Dt,wasi_unstable:Dt};function t(e,t){var r=e.exports;h.asm=r,Ne("wasm-instantiate")}Pe("wasm-instantiate");var r=h;function i(e){N(h===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(e.instance)}function n(t){return We().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){M("failed to asynchronously prepare wasm: "+e),Le(e)}))}if(h.instantiateWasm)try{return h.instantiateWasm(e,t)}catch(e){return M("Module.instantiateWasm callback failed with error: "+e),!1}return function(){if(O||"function"!=typeof WebAssembly.instantiateStreaming||Fe(He)||"function"!=typeof fetch)return n(i);fetch(He,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(i,(function(e){M("wasm streaming compile failed: "+e),M("falling back to ArrayBuffer instantiation"),n(i)}))}))}(),{}}function ze(e){return T("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function qe(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t=ze(e);return e===t?e:t+" ["+e+"]"}))}function Ge(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function Qe(){var e=Ge();return h.extraStackTrace&&(e+="\n"+h.extraStackTrace()),qe(e)}function Ye(e){return Yr(e)}Fe(He)||(He=A(He)),ce.push({func:function(){Qr()}});var Ke={};function Je(e,t,r){throw Ke[e]={ptr:e,adjusted:[e],type:t,destructor:r,refcount:0,caught:!1,rethrown:!1},e,"uncaught_exception"in Kr?Kr.uncaught_exceptions++:Kr.uncaught_exceptions=1,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function Ze(){}function $e(e){return h.___errno_location?J[h.___errno_location()>>2]=e:M("failed to set errno from JS"),e}var et={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,i=e.length-1;i>=0;i--){var n=e[i];"."===n?e.splice(i,1):".."===n?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=et.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=et.splitPath(e),r=t[0],i=t[1];return r||i?(i&&(i=i.substr(0,i.length-1)),r+i):"."},basename:function(e){if("/"===e)return"/";var t=e.lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return et.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return et.normalize(e.join("/"))},join2:function(e,t){return et.normalize(e+"/"+t)}},tt={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var i=r>=0?arguments[r]:ot.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t="/"===i.charAt(0)}return(t?"/":"")+(e=et.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=tt.resolve(e).substr(1),t=tt.resolve(t).substr(1);for(var i=r(e.split("/")),n=r(t.split("/")),a=Math.min(i.length,n.length),o=a,s=0;s<a;s++)if(i[s]!==n[s]){o=s;break}var u=[];for(s=o;s<i.length;s++)u.push("..");return(u=u.concat(n.slice(o))).join("/")}},rt={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){rt.ttys[e]={input:[],output:[],ops:t},ot.registerDevice(e,rt.stream_ops)},stream_ops:{open:function(e){var t=rt.ttys[e.node.rdev];if(!t)throw new ot.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,t,r,i,n){if(!e.tty||!e.tty.ops.get_char)throw new ot.ErrnoError(60);for(var a=0,o=0;o<i;o++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new ot.ErrnoError(29)}if(void 0===s&&0===a)throw new ot.ErrnoError(6);if(null==s)break;a++,t[r+o]=s}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,i,n){if(!e.tty||!e.tty.ops.put_char)throw new ot.ErrnoError(60);try{for(var a=0;a<i;a++)e.tty.ops.put_char(e.tty,t[r+a])}catch(e){throw new ot.ErrnoError(29)}return i&&(e.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:function(t){if(!t.input.length){var r=null;if(m){var i=a.alloc?a.alloc(256):new a(256),n=0;try{n=v.readSync(e.stdin.fd,i,0,256,null)}catch(e){if(-1==e.toString().indexOf("EOF"))throw e;n=0}r=n>0?i.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\n");if(!r)return null;t.input=Ot(r,!0)}return t.input.shift()},put_char:function(e,t){null===t||10===t?(S(j(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(S(j(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(M(j(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(M(j(e.output,0)),e.output=[])}}},it={ops_table:null,mount:function(e){return it.createNode(null,"/",16895,0)},createNode:function(e,t,r,i){if(ot.isBlkdev(r)||ot.isFIFO(r))throw new ot.ErrnoError(63);it.ops_table||(it.ops_table={dir:{node:{getattr:it.node_ops.getattr,setattr:it.node_ops.setattr,lookup:it.node_ops.lookup,mknod:it.node_ops.mknod,rename:it.node_ops.rename,unlink:it.node_ops.unlink,rmdir:it.node_ops.rmdir,readdir:it.node_ops.readdir,symlink:it.node_ops.symlink},stream:{llseek:it.stream_ops.llseek}},file:{node:{getattr:it.node_ops.getattr,setattr:it.node_ops.setattr},stream:{llseek:it.stream_ops.llseek,read:it.stream_ops.read,write:it.stream_ops.write,allocate:it.stream_ops.allocate,mmap:it.stream_ops.mmap,msync:it.stream_ops.msync}},link:{node:{getattr:it.node_ops.getattr,setattr:it.node_ops.setattr,readlink:it.node_ops.readlink},stream:{}},chrdev:{node:{getattr:it.node_ops.getattr,setattr:it.node_ops.setattr},stream:ot.chrdev_stream_ops}});var n=ot.createNode(e,t,r,i);return ot.isDir(n.mode)?(n.node_ops=it.ops_table.dir.node,n.stream_ops=it.ops_table.dir.stream,n.contents={}):ot.isFile(n.mode)?(n.node_ops=it.ops_table.file.node,n.stream_ops=it.ops_table.file.stream,n.usedBytes=0,n.contents=null):ot.isLink(n.mode)?(n.node_ops=it.ops_table.link.node,n.stream_ops=it.ops_table.link.stream):ot.isChrdev(n.mode)&&(n.node_ops=it.ops_table.chrdev.node,n.stream_ops=it.ops_table.chrdev.stream),n.timestamp=Date.now(),e&&(e.contents[t]=n),n},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var t=[],r=0;r<e.usedBytes;++r)t.push(e.contents[r]);return t}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array},expandFileStorage:function(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)|0),0!=r&&(t=Math.max(t,256));var i=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(i.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t){if(0==t)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var r=e.contents;return e.contents=new Uint8Array(new ArrayBuffer(t)),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),void(e.usedBytes=t)}if(e.contents||(e.contents=[]),e.contents.length>t)e.contents.length=t;else for(;e.contents.length<t;)e.contents.push(0);e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=ot.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,ot.isDir(e.mode)?t.size=4096:ot.isFile(e.mode)?t.size=e.usedBytes:ot.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&it.resizeFileStorage(e,t.size)},lookup:function(e,t){throw ot.genericErrors[44]},mknod:function(e,t,r,i){return it.createNode(e,t,r,i)},rename:function(e,t,r){if(ot.isDir(e.mode)){var i;try{i=ot.lookupNode(t,r)}catch(e){}if(i)for(var n in i.contents)throw new ot.ErrnoError(55)}delete e.parent.contents[e.name],e.name=r,t.contents[r]=e,e.parent=t},unlink:function(e,t){delete e.contents[t]},rmdir:function(e,t){var r=ot.lookupNode(e,t);for(var i in r.contents)throw new ot.ErrnoError(55);delete e.contents[t]},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){var i=it.createNode(e,t,41471,0);return i.link=r,i},readlink:function(e){if(!ot.isLink(e.mode))throw new ot.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,i,n){var a=e.node.contents;if(n>=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-n,i);if(N(o>=0),o>8&&a.subarray)t.set(a.subarray(n,n+o),r);else for(var s=0;s<o;s++)t[r+s]=a[n+s];return o},write:function(e,t,r,i,n,a){if(a&&T("file packager has copied file data into memory, but in memory growth we are forced to copy it again (see --no-heap-copy)"),a=!1,!i)return 0;var o=e.node;if(o.timestamp=Date.now(),t.subarray&&(!o.contents||o.contents.subarray)){if(a)return N(0===n,"canOwn must imply no weird position inside the file"),o.contents=t.subarray(r,r+i),o.usedBytes=i,i;if(0===o.usedBytes&&0===n)return o.contents=new Uint8Array(t.subarray(r,r+i)),o.usedBytes=i,i;if(n+i<=o.usedBytes)return o.contents.set(t.subarray(r,r+i),n),i}if(it.expandFileStorage(o,n+i),o.contents.subarray&&t.subarray)o.contents.set(t.subarray(r,r+i),n);else for(var s=0;s<i;s++)o.contents[n+s]=t[r+s];return o.usedBytes=Math.max(o.usedBytes,n+i),i},llseek:function(e,t,r){var i=t;if(1===r?i+=e.position:2===r&&ot.isFile(e.node.mode)&&(i+=e.node.usedBytes),i<0)throw new ot.ErrnoError(28);return i},allocate:function(e,t,r){it.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,i,n,a,o){if(!ot.isFile(e.node.mode))throw new ot.ErrnoError(43);var s,u,d=e.node.contents;if(2&o||d.buffer!==t&&d.buffer!==t.buffer){(n>0||n+i<e.node.usedBytes)&&(d=d.subarray?d.subarray(n,n+i):Array.prototype.slice.call(d,n,n+i)),u=!0;var h=t.buffer==Q.buffer;if(!(s=Yr(i)))throw new ot.ErrnoError(48);(h?Q:t).set(d,s)}else u=!1,s=d.byteOffset;return{ptr:s,allocated:u}},msync:function(e,t,r,i,n){if(!ot.isFile(e.node.mode))throw new ot.ErrnoError(43);if(2&n)return 0;it.stream_ops.write(e,t,0,i,r,!1);return 0}}},nt={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},at={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},ot={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof ot.ErrnoError))throw e+" : "+Qe();return $e(e.errno)},lookupPath:function(e,t){if(t=t||{},!(e=tt.resolve(ot.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var i in r)void 0===t[i]&&(t[i]=r[i]);if(t.recurse_count>8)throw new ot.ErrnoError(32);for(var n=et.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),a=ot.root,o="/",s=0;s<n.length;s++){var u=s===n.length-1;if(u&&t.parent)break;if(a=ot.lookupNode(a,n[s]),o=et.join2(o,n[s]),ot.isMountpoint(a)&&(!u||u&&t.follow_mount)&&(a=a.mounted.root),!u||t.follow)for(var d=0;ot.isLink(a.mode);){var h=ot.readlink(o);if(o=tt.resolve(et.dirname(o),h),a=ot.lookupPath(o,{recurse_count:t.recurse_count}).node,d++>40)throw new ot.ErrnoError(32)}}return{path:o,node:a}},getPath:function(e){for(var t;;){if(ot.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?r+"/"+t:r+t:r}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var r=0,i=0;i<t.length;i++)r=(r<<5)-r+t.charCodeAt(i)|0;return(e+r>>>0)%ot.nameTable.length},hashAddNode:function(e){var t=ot.hashName(e.parent.id,e.name);e.name_next=ot.nameTable[t],ot.nameTable[t]=e},hashRemoveNode:function(e){var t=ot.hashName(e.parent.id,e.name);if(ot.nameTable[t]===e)ot.nameTable[t]=e.name_next;else for(var r=ot.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,t){var r=ot.mayLookup(e);if(r)throw new ot.ErrnoError(r,e);for(var i=ot.hashName(e.id,t),n=ot.nameTable[i];n;n=n.name_next){var a=n.name;if(n.parent.id===e.id&&a===t)return n}return ot.lookup(e,t)},createNode:function(e,t,r,i){if(!ot.FSNode){ot.FSNode=function(e,t,r,i){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=ot.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=i},ot.FSNode.prototype={};Object.defineProperties(ot.FSNode.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return ot.isDir(this.mode)}},isDevice:{get:function(){return ot.isChrdev(this.mode)}}})}var n=new ot.FSNode(e,t,r,i);return ot.hashAddNode(n),n},destroyNode:function(e){ot.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var t=ot.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return ot.ignorePermissions||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var t=ot.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{ot.lookupNode(e,t);return 20}catch(e){}return ot.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var i;try{i=ot.lookupNode(e,t)}catch(e){return e.errno}var n=ot.nodePermissions(e,"wx");if(n)return n;if(r){if(!ot.isDir(i.mode))return 54;if(ot.isRoot(i)||ot.getPath(i)===ot.cwd())return 10}else if(ot.isDir(i.mode))return 31;return 0},mayOpen:function(e,t){return e?ot.isLink(e.mode)?32:ot.isDir(e.mode)&&("r"!==ot.flagsToPermissionString(t)||512&t)?31:ot.nodePermissions(e,ot.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||ot.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!ot.streams[r])return r;throw new ot.ErrnoError(33)},getStream:function(e){return ot.streams[e]},createStream:function(e,t,r){ot.FSStream||(ot.FSStream=function(){},ot.FSStream.prototype={},Object.defineProperties(ot.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var i=new ot.FSStream;for(var n in e)i[n]=e[n];e=i;var a=ot.nextfd(t,r);return e.fd=a,ot.streams[a]=e,e},closeStream:function(e){ot.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=ot.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new ot.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){ot.devices[e]={stream_ops:t}},getDevice:function(e){return ot.devices[e]},getMounts:function(e){for(var t=[],r=[e];r.length;){var i=r.pop();t.push(i),r.push.apply(r,i.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),ot.syncFSRequests++,ot.syncFSRequests>1&&console.log("warning: "+ot.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=ot.getMounts(ot.root.mount),i=0;function n(e){return N(ot.syncFSRequests>0),ot.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,n(e));++i>=r.length&&n(null)}r.forEach((function(t){if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)}))},mount:function(e,t,r){if("string"==typeof e)throw e;var i,n="/"===r,a=!r;if(n&&ot.root)throw new ot.ErrnoError(10);if(!n&&!a){var o=ot.lookupPath(r,{follow_mount:!1});if(r=o.path,i=o.node,ot.isMountpoint(i))throw new ot.ErrnoError(10);if(!ot.isDir(i.mode))throw new ot.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},u=e.mount(s);return u.mount=s,s.root=u,n?ot.root=u:i&&(i.mounted=s,i.mount&&i.mount.mounts.push(s)),u},unmount:function(e){var t=ot.lookupPath(e,{follow_mount:!1});if(!ot.isMountpoint(t.node))throw new ot.ErrnoError(28);var r=t.node,i=r.mounted,n=ot.getMounts(i);Object.keys(ot.nameTable).forEach((function(e){for(var t=ot.nameTable[e];t;){var r=t.name_next;-1!==n.indexOf(t.mount)&&ot.destroyNode(t),t=r}})),r.mounted=null;var a=r.mount.mounts.indexOf(i);N(-1!==a),r.mount.mounts.splice(a,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var i=ot.lookupPath(e,{parent:!0}).node,n=et.basename(e);if(!n||"."===n||".."===n)throw new ot.ErrnoError(28);var a=ot.mayCreate(i,n);if(a)throw new ot.ErrnoError(a);if(!i.node_ops.mknod)throw new ot.ErrnoError(63);return i.node_ops.mknod(i,n,t,r)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,ot.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,ot.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),i="",n=0;n<r.length;++n)if(r[n]){i+="/"+r[n];try{ot.mkdir(i,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,t,r){return void 0===r&&(r=t,t=438),t|=8192,ot.mknod(e,t,r)},symlink:function(e,t){if(!tt.resolve(e))throw new ot.ErrnoError(44);var r=ot.lookupPath(t,{parent:!0}).node;if(!r)throw new ot.ErrnoError(44);var i=et.basename(t),n=ot.mayCreate(r,i);if(n)throw new ot.ErrnoError(n);if(!r.node_ops.symlink)throw new ot.ErrnoError(63);return r.node_ops.symlink(r,i,e)},rename:function(e,t){var r,i,n=et.dirname(e),a=et.dirname(t),o=et.basename(e),s=et.basename(t);try{r=ot.lookupPath(e,{parent:!0}).node,i=ot.lookupPath(t,{parent:!0}).node}catch(e){throw new ot.ErrnoError(10)}if(!r||!i)throw new ot.ErrnoError(44);if(r.mount!==i.mount)throw new ot.ErrnoError(75);var u,d=ot.lookupNode(r,o),h=tt.relative(e,a);if("."!==h.charAt(0))throw new ot.ErrnoError(28);if("."!==(h=tt.relative(t,n)).charAt(0))throw new ot.ErrnoError(55);try{u=ot.lookupNode(i,s)}catch(e){}if(d!==u){var l=ot.isDir(d.mode),f=ot.mayDelete(r,o,l);if(f)throw new ot.ErrnoError(f);if(f=u?ot.mayDelete(i,s,l):ot.mayCreate(i,s))throw new ot.ErrnoError(f);if(!r.node_ops.rename)throw new ot.ErrnoError(63);if(ot.isMountpoint(d)||u&&ot.isMountpoint(u))throw new ot.ErrnoError(10);if(i!==r&&(f=ot.nodePermissions(r,"w")))throw new ot.ErrnoError(f);try{ot.trackingDelegate.willMovePath&&ot.trackingDelegate.willMovePath(e,t)}catch(r){console.log("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}ot.hashRemoveNode(d);try{r.node_ops.rename(d,i,s)}catch(e){throw e}finally{ot.hashAddNode(d)}try{ot.trackingDelegate.onMovePath&&ot.trackingDelegate.onMovePath(e,t)}catch(r){console.log("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=ot.lookupPath(e,{parent:!0}).node,r=et.basename(e),i=ot.lookupNode(t,r),n=ot.mayDelete(t,r,!0);if(n)throw new ot.ErrnoError(n);if(!t.node_ops.rmdir)throw new ot.ErrnoError(63);if(ot.isMountpoint(i))throw new ot.ErrnoError(10);try{ot.trackingDelegate.willDeletePath&&ot.trackingDelegate.willDeletePath(e)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),ot.destroyNode(i);try{ot.trackingDelegate.onDeletePath&&ot.trackingDelegate.onDeletePath(e)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=ot.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new ot.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=ot.lookupPath(e,{parent:!0}).node,r=et.basename(e),i=ot.lookupNode(t,r),n=ot.mayDelete(t,r,!1);if(n)throw new ot.ErrnoError(n);if(!t.node_ops.unlink)throw new ot.ErrnoError(63);if(ot.isMountpoint(i))throw new ot.ErrnoError(10);try{ot.trackingDelegate.willDeletePath&&ot.trackingDelegate.willDeletePath(e)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),ot.destroyNode(i);try{ot.trackingDelegate.onDeletePath&&ot.trackingDelegate.onDeletePath(e)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=ot.lookupPath(e).node;if(!t)throw new ot.ErrnoError(44);if(!t.node_ops.readlink)throw new ot.ErrnoError(28);return tt.resolve(ot.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=ot.lookupPath(e,{follow:!t}).node;if(!r)throw new ot.ErrnoError(44);if(!r.node_ops.getattr)throw new ot.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return ot.stat(e,!0)},chmod:function(e,t,r){var i;"string"==typeof e?i=ot.lookupPath(e,{follow:!r}).node:i=e;if(!i.node_ops.setattr)throw new ot.ErrnoError(63);i.node_ops.setattr(i,{mode:4095&t|-4096&i.mode,timestamp:Date.now()})},lchmod:function(e,t){ot.chmod(e,t,!0)},fchmod:function(e,t){var r=ot.getStream(e);if(!r)throw new ot.ErrnoError(8);ot.chmod(r.node,t)},chown:function(e,t,r,i){var n;"string"==typeof e?n=ot.lookupPath(e,{follow:!i}).node:n=e;if(!n.node_ops.setattr)throw new ot.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,t,r){ot.chown(e,t,r,!0)},fchown:function(e,t,r){var i=ot.getStream(e);if(!i)throw new ot.ErrnoError(8);ot.chown(i.node,t,r)},truncate:function(e,t){if(t<0)throw new ot.ErrnoError(28);var r;"string"==typeof e?r=ot.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new ot.ErrnoError(63);if(ot.isDir(r.mode))throw new ot.ErrnoError(31);if(!ot.isFile(r.mode))throw new ot.ErrnoError(28);var i=ot.nodePermissions(r,"w");if(i)throw new ot.ErrnoError(i);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=ot.getStream(e);if(!r)throw new ot.ErrnoError(8);if(0==(2097155&r.flags))throw new ot.ErrnoError(28);ot.truncate(r.node,t)},utime:function(e,t,r){var i=ot.lookupPath(e,{follow:!0}).node;i.node_ops.setattr(i,{timestamp:Math.max(t,r)})},open:function(e,t,r,i,n){if(""===e)throw new ot.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?ot.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)a=e;else{e=et.normalize(e);try{a=ot.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var o=!1;if(64&t)if(a){if(128&t)throw new ot.ErrnoError(20)}else a=ot.mknod(e,r,0),o=!0;if(!a)throw new ot.ErrnoError(44);if(ot.isChrdev(a.mode)&&(t&=-513),65536&t&&!ot.isDir(a.mode))throw new ot.ErrnoError(54);if(!o){var s=ot.mayOpen(a,t);if(s)throw new ot.ErrnoError(s)}512&t&&ot.truncate(a,0),t&=-641;var u=ot.createStream({node:a,path:ot.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},i,n);u.stream_ops.open&&u.stream_ops.open(u),!h.logReadFiles||1&t||(ot.readFiles||(ot.readFiles={}),e in ot.readFiles||(ot.readFiles[e]=1,console.log("FS.trackingDelegate error on read file: "+e)));try{if(ot.trackingDelegate.onOpenFile){var d=0;1!=(2097155&t)&&(d|=ot.tracking.openFlags.READ),0!=(2097155&t)&&(d|=ot.tracking.openFlags.WRITE),ot.trackingDelegate.onOpenFile(e,d)}}catch(t){console.log("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return u},close:function(e){if(ot.isClosed(e))throw new ot.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{ot.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(ot.isClosed(e))throw new ot.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new ot.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new ot.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:function(e,t,r,i,n){if(i<0||n<0)throw new ot.ErrnoError(28);if(ot.isClosed(e))throw new ot.ErrnoError(8);if(1==(2097155&e.flags))throw new ot.ErrnoError(8);if(ot.isDir(e.node.mode))throw new ot.ErrnoError(31);if(!e.stream_ops.read)throw new ot.ErrnoError(28);var a=void 0!==n;if(a){if(!e.seekable)throw new ot.ErrnoError(70)}else n=e.position;var o=e.stream_ops.read(e,t,r,i,n);return a||(e.position+=o),o},write:function(e,t,r,i,n,a){if(i<0||n<0)throw new ot.ErrnoError(28);if(ot.isClosed(e))throw new ot.ErrnoError(8);if(0==(2097155&e.flags))throw new ot.ErrnoError(8);if(ot.isDir(e.node.mode))throw new ot.ErrnoError(31);if(!e.stream_ops.write)throw new ot.ErrnoError(28);1024&e.flags&&ot.llseek(e,0,2);var o=void 0!==n;if(o){if(!e.seekable)throw new ot.ErrnoError(70)}else n=e.position;var s=e.stream_ops.write(e,t,r,i,n,a);o||(e.position+=s);try{e.path&&ot.trackingDelegate.onWriteToFile&&ot.trackingDelegate.onWriteToFile(e.path)}catch(t){console.log("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return s},allocate:function(e,t,r){if(ot.isClosed(e))throw new ot.ErrnoError(8);if(t<0||r<=0)throw new ot.ErrnoError(28);if(0==(2097155&e.flags))throw new ot.ErrnoError(8);if(!ot.isFile(e.node.mode)&&!ot.isDir(e.node.mode))throw new ot.ErrnoError(43);if(!e.stream_ops.allocate)throw new ot.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:function(e,t,r,i,n,a,o){if(0!=(2&a)&&0==(2&o)&&2!=(2097155&e.flags))throw new ot.ErrnoError(2);if(1==(2097155&e.flags))throw new ot.ErrnoError(2);if(!e.stream_ops.mmap)throw new ot.ErrnoError(43);return e.stream_ops.mmap(e,t,r,i,n,a,o)},msync:function(e,t,r,i,n){return e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,i,n):0},munmap:function(e){return 0},ioctl:function(e,t,r){if(!e.stream_ops.ioctl)throw new ot.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:function(e,t){if((t=t||{}).flags=t.flags||"r",t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var r,i=ot.open(e,t.flags),n=ot.stat(e).size,a=new Uint8Array(n);return ot.read(i,a,0,n,0),"utf8"===t.encoding?r=j(a,0):"binary"===t.encoding&&(r=a),ot.close(i),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||"w";var i=ot.open(e,r.flags,r.mode);if("string"==typeof t){var n=new Uint8Array(V(t)+1),a=X(t,n,0,n.length);ot.write(i,n,0,a,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");ot.write(i,t,0,t.byteLength,void 0,r.canOwn)}ot.close(i)},cwd:function(){return ot.currentPath},chdir:function(e){var t=ot.lookupPath(e,{follow:!0});if(null===t.node)throw new ot.ErrnoError(44);if(!ot.isDir(t.node.mode))throw new ot.ErrnoError(54);var r=ot.nodePermissions(t.node,"x");if(r)throw new ot.ErrnoError(r);ot.currentPath=t.path},createDefaultDirectories:function(){ot.mkdir("/tmp"),ot.mkdir("/home"),ot.mkdir("/home/web_user")},createDefaultDevices:function(){var e;if(ot.mkdir("/dev"),ot.registerDevice(ot.makedev(1,3),{read:function(){return 0},write:function(e,t,r,i,n){return i}}),ot.mkdev("/dev/null",ot.makedev(1,3)),rt.register(ot.makedev(5,0),rt.default_tty_ops),rt.register(ot.makedev(6,0),rt.default_tty1_ops),ot.mkdev("/dev/tty",ot.makedev(5,0)),ot.mkdev("/dev/tty1",ot.makedev(6,0)),"object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);e=function(){return crypto.getRandomValues(t),t[0]}}else if(m)try{var i=r(71);e=function(){return i.randomBytes(1)[0]}}catch(e){}e||(e=function(){Le("no cryptographic support found for random_device. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}),ot.createDevice("/dev","random",e),ot.createDevice("/dev","urandom",e),ot.mkdir("/dev/shm"),ot.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){ot.mkdir("/proc"),ot.mkdir("/proc/self"),ot.mkdir("/proc/self/fd"),ot.mount({mount:function(){var e=ot.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,t){var r=+t,i=ot.getStream(r);if(!i)throw new ot.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return i.path}}};return n.parent=n,n}},e}},{},"/proc/self/fd")},createStandardStreams:function(){h.stdin?ot.createDevice("/dev","stdin",h.stdin):ot.symlink("/dev/tty","/dev/stdin"),h.stdout?ot.createDevice("/dev","stdout",null,h.stdout):ot.symlink("/dev/tty","/dev/stdout"),h.stderr?ot.createDevice("/dev","stderr",null,h.stderr):ot.symlink("/dev/tty1","/dev/stderr");var e=ot.open("/dev/stdin","r"),t=ot.open("/dev/stdout","w"),r=ot.open("/dev/stderr","w");N(0===e.fd,"invalid handle for stdin ("+e.fd+")"),N(1===t.fd,"invalid handle for stdout ("+t.fd+")"),N(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){ot.ErrnoError||(ot.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,at)if(at[t]===e){this.code=t;break}},this.setErrno(e),this.message=nt[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=qe(this.stack))},ot.ErrnoError.prototype=new Error,ot.ErrnoError.prototype.constructor=ot.ErrnoError,[44].forEach((function(e){ot.genericErrors[e]=new ot.ErrnoError(e),ot.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){ot.ensureErrnoError(),ot.nameTable=new Array(4096),ot.mount(it,{},"/"),ot.createDefaultDirectories(),ot.createDefaultDevices(),ot.createSpecialDirectories(),ot.filesystems={MEMFS:it}},init:function(e,t,r){N(!ot.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),ot.init.initialized=!0,ot.ensureErrnoError(),h.stdin=e||h.stdin,h.stdout=t||h.stdout,h.stderr=r||h.stderr,ot.createStandardStreams()},quit:function(){ot.init.initialized=!1;var e=h._fflush;e&&e(0);for(var t=0;t<ot.streams.length;t++){var r=ot.streams[t];r&&ot.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},joinPath:function(e,t){var r=et.join.apply(null,e);return t&&"/"==r[0]&&(r=r.substr(1)),r},absolutePath:function(e,t){return tt.resolve(t,e)},standardizePath:function(e){return et.normalize(e)},findObject:function(e,t){var r=ot.analyzePath(e,t);return r.exists?r.object:($e(r.error),null)},analyzePath:function(e,t){try{e=(i=ot.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var i=ot.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=i.path,r.parentObject=i.node,r.name=et.basename(e),i=ot.lookupPath(e,{follow:!t}),r.exists=!0,r.path=i.path,r.object=i.node,r.name=i.node.name,r.isRoot="/"===i.path}catch(e){r.error=e.errno}return r},createFolder:function(e,t,r,i){var n=et.join2("string"==typeof e?e:ot.getPath(e),t),a=ot.getMode(r,i);return ot.mkdir(n,a)},createPath:function(e,t,r,i){e="string"==typeof e?e:ot.getPath(e);for(var n=t.split("/").reverse();n.length;){var a=n.pop();if(a){var o=et.join2(e,a);try{ot.mkdir(o)}catch(e){}e=o}}return o},createFile:function(e,t,r,i,n){var a=et.join2("string"==typeof e?e:ot.getPath(e),t),o=ot.getMode(i,n);return ot.create(a,o)},createDataFile:function(e,t,r,i,n,a){var o=t?et.join2("string"==typeof e?e:ot.getPath(e),t):e,s=ot.getMode(i,n),u=ot.create(o,s);if(r){if("string"==typeof r){for(var d=new Array(r.length),h=0,l=r.length;h<l;++h)d[h]=r.charCodeAt(h);r=d}ot.chmod(u,146|s);var f=ot.open(u,"w");ot.write(f,r,0,r.length,0,a),ot.close(f),ot.chmod(u,s)}return u},createDevice:function(e,t,r,i){var n=et.join2("string"==typeof e?e:ot.getPath(e),t),a=ot.getMode(!!r,!!i);ot.createDevice.major||(ot.createDevice.major=64);var o=ot.makedev(ot.createDevice.major++,0);return ot.registerDevice(o,{open:function(e){e.seekable=!1},close:function(e){i&&i.buffer&&i.buffer.length&&i(10)},read:function(e,t,i,n,a){for(var o=0,s=0;s<n;s++){var u;try{u=r()}catch(e){throw new ot.ErrnoError(29)}if(void 0===u&&0===o)throw new ot.ErrnoError(6);if(null==u)break;o++,t[i+s]=u}return o&&(e.node.timestamp=Date.now()),o},write:function(e,t,r,n,a){for(var o=0;o<n;o++)try{i(t[r+o])}catch(e){throw new ot.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),o}}),ot.mkdev(n,a,o)},createLink:function(e,t,r,i,n){var a=et.join2("string"==typeof e?e:ot.getPath(e),t);return ot.symlink(r,a)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var t=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!y)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=Ot(y(e.url),!0),e.usedBytes=e.contents.length}catch(e){t=!1}return t||$e(29),t},createLazyFile:function(e,t,r,i,n){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,i=Number(e.getResponseHeader("Content-length")),n=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,o=1048576;n||(o=i);var s=this;s.setDataGetter((function(e){var t=e*o,n=(e+1)*o-1;if(n=Math.min(n,i-1),void 0===s.chunks[e]&&(s.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>i-1)throw new Error("only "+i+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",r,!1),i!==o&&n.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(n.responseType="arraybuffer"),n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+r+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):Ot(n.responseText||"",!0)}(t,n)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!a&&i||(o=i=1,i=this.getter(0).length,o=i,console.log("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=i,this._chunkSize=o,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!p)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o=new a;Object.defineProperties(o,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:o}}else s={isDevice:!1,url:r};var u=ot.createFile(e,t,s,i,n);s.contents?u.contents=s.contents:s.url&&(u.contents=null,u.url=s.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var d={};return Object.keys(u.stream_ops).forEach((function(e){var t=u.stream_ops[e];d[e]=function(){if(!ot.forceLoadFile(u))throw new ot.ErrnoError(29);return t.apply(null,arguments)}})),d.read=function(e,t,r,i,n){if(!ot.forceLoadFile(u))throw new ot.ErrnoError(29);var a=e.node.contents;if(n>=a.length)return 0;var o=Math.min(a.length-n,i);if(N(o>=0),a.slice)for(var s=0;s<o;s++)t[r+s]=a[n+s];else for(s=0;s<o;s++)t[r+s]=a.get(n+s);return o},u.stream_ops=d,u},createPreloadedFile:function(e,t,r,i,n,a,o,s,u,d){Browser.init();var l=t?tt.resolve(et.join2(e,t)):e,f=Ce("cp "+l);function c(r){function c(r){d&&d(),s||ot.createDataFile(e,t,r,i,n,u),a&&a(),Ne(f)}var p=!1;h.preloadPlugins.forEach((function(e){p||e.canHandle(l)&&(e.handle(r,l,c,(function(){o&&o(),Ne(f)})),p=!0)})),p||c(r)}Pe(f),"string"==typeof r?Browser.asyncLoad(r,(function(e){c(e)}),o):c(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var i=ot.indexedDB();try{var n=i.open(ot.DB_NAME(),ot.DB_VERSION)}catch(e){return r(e)}n.onupgradeneeded=function(){console.log("creating db"),n.result.createObjectStore(ot.DB_STORE_NAME)},n.onsuccess=function(){var i=n.result.transaction([ot.DB_STORE_NAME],"readwrite"),a=i.objectStore(ot.DB_STORE_NAME),o=0,s=0,u=e.length;function d(){0==s?t():r()}e.forEach((function(e){var t=a.put(ot.analyzePath(e).object.contents,e);t.onsuccess=function(){++o+s==u&&d()},t.onerror=function(){s++,o+s==u&&d()}})),i.onerror=r},n.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var i=ot.indexedDB();try{var n=i.open(ot.DB_NAME(),ot.DB_VERSION)}catch(e){return r(e)}n.onupgradeneeded=r,n.onsuccess=function(){var i=n.result;try{var a=i.transaction([ot.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var o=a.objectStore(ot.DB_STORE_NAME),s=0,u=0,d=e.length;function h(){0==u?t():r()}e.forEach((function(e){var t=o.get(e);t.onsuccess=function(){ot.analyzePath(e).exists&&ot.unlink(e),ot.createDataFile(et.dirname(e),et.basename(e),t.result,!0,!0,!0),++s+u==d&&h()},t.onerror=function(){u++,s+u==d&&h()}})),a.onerror=r},n.onerror=r}},st={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(e,t){if("/"!==t[0]){var r;if(-100===e)r=ot.cwd();else{var i=ot.getStream(e);if(!i)throw new ot.ErrnoError(8);r=i.path}t=et.join2(r,t)}return t},doStat:function(e,t,r){try{var i=e(t)}catch(e){if(e&&e.node&&et.normalize(t)!==et.normalize(ot.getPath(e.node)))return-54;throw e}return J[r>>2]=i.dev,J[r+4>>2]=0,J[r+8>>2]=i.ino,J[r+12>>2]=i.mode,J[r+16>>2]=i.nlink,J[r+20>>2]=i.uid,J[r+24>>2]=i.gid,J[r+28>>2]=i.rdev,J[r+32>>2]=0,je=[i.size>>>0,(Ue=i.size,+Me(Ue)>=1?Ue>0?(0|ke(+Re(Ue/4294967296),4294967295))>>>0:~~+Te((Ue-+(~~Ue>>>0))/4294967296)>>>0:0)],J[r+40>>2]=je[0],J[r+44>>2]=je[1],J[r+48>>2]=4096,J[r+52>>2]=i.blocks,J[r+56>>2]=i.atime.getTime()/1e3|0,J[r+60>>2]=0,J[r+64>>2]=i.mtime.getTime()/1e3|0,J[r+68>>2]=0,J[r+72>>2]=i.ctime.getTime()/1e3|0,J[r+76>>2]=0,je=[i.ino>>>0,(Ue=i.ino,+Me(Ue)>=1?Ue>0?(0|ke(+Re(Ue/4294967296),4294967295))>>>0:~~+Te((Ue-+(~~Ue>>>0))/4294967296)>>>0:0)],J[r+80>>2]=je[0],J[r+84>>2]=je[1],0},doMsync:function(e,t,r,i){var n=new Uint8Array(Y.subarray(e,e+r));ot.msync(t,n,0,r,i)},doMkdir:function(e,t){return"/"===(e=et.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),ot.mkdir(e,t,0),0},doMknod:function(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return ot.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var i=ot.readlink(e),n=Math.min(r,V(i)),a=Q[t+n];return W(i,t,r+1),Q[t+n]=a,n},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=ot.lookupPath(e,{follow:!0}).node))return-44;var i="";return 4&t&&(i+="r"),2&t&&(i+="w"),1&t&&(i+="x"),i&&ot.nodePermissions(r,i)?-2:0},doDup:function(e,t,r){var i=ot.getStream(r);return i&&ot.close(i),ot.open(e,t,0,r,r).fd},doReadv:function(e,t,r,i){for(var n=0,a=0;a<r;a++){var o=J[t+8*a>>2],s=J[t+(8*a+4)>>2],u=ot.read(e,Q,o,s,i);if(u<0)return-1;if(n+=u,u<s)break}return n},doWritev:function(e,t,r,i){for(var n=0,a=0;a<r;a++){var o=J[t+8*a>>2],s=J[t+(8*a+4)>>2],u=ot.write(e,Q,o,s,i);if(u<0)return-1;n+=u}return n},varargs:0,get:function(e){return st.varargs+=4,J[st.varargs-4>>2]},getStr:function(){return H(st.get())},getStreamFromFD:function(e){void 0===e&&(e=st.get());var t=ot.getStream(e);if(!t)throw new ot.ErrnoError(8);return t},get64:function(){var e=st.get(),t=st.get();return N(e>=0?0===t:-1===t),e},getZero:function(){N(0===st.get())}};function ut(e,t){st.varargs=t;try{var r=st.getStreamFromFD();switch(st.get()){case 0:return(i=st.get())<0?-28:ot.open(r.path,r.flags,0,i).fd;case 1:case 2:return 0;case 3:return r.flags;case 4:var i=st.get();return r.flags|=i,0;case 12:i=st.get();return K[i+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return $e(28),-1;default:return-28}}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),-e.errno}}function dt(e,t){st.varargs=t;try{var r=st.getStreamFromFD(),i=st.get(),n=st.get();return ot.read(r,Q,i,n)}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),-e.errno}}function ht(e,t){st.varargs=t;try{var r=st.getStr(),i=st.get(),n=st.get();return ot.open(r,i,n).fd}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),-e.errno}}function lt(){}function ft(){Le()}function ct(){return void 0===ct.start&&(ct.start=Date.now()),1e3*(Date.now()-ct.start)|0}function pt(){return Q.length}function mt(e,t,r){Y.set(Y.subarray(t,t+r),e)}function gt(e){try{return D.grow(e-G.byteLength+65535>>16),te(D.buffer),1}catch(t){console.error("emscripten_realloc_buffer: Attempted to grow heap from "+G.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}function _t(e){var t=pt();N(e>t);if(e>2147418112)return M("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is 2147418112 bytes!"),!1;for(var r=Math.max(t,16777216);r<e;)(r=r<=536870912?ee(2*r,65536):Math.min(ee((3*r+2147483648)/4,65536),2147418112))===t&&T("Cannot ask for more memory since we reached the practical limit in browsers (which is just below 2GB), so the request would have failed. Requesting only "+Q.length);return!!gt(r)||(M("Failed to grow the heap from "+t+" bytes to "+r+" bytes, not enough memory!"),!1)}var yt={};function bt(){if(!bt.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l};for(var t in yt)e[t]=yt[t];var r=[];for(var t in e)r.push(t+"="+e[t]);bt.strings=r}return bt.strings}function vt(e,t){var r=bt(),i=0;return r.forEach((function(r,n){var a=t+i;J[e+4*n>>2]=a,q(r,a),i+=r.length+1})),0}function wt(e,t){var r=bt();J[e>>2]=r.length;var i=0;return r.forEach((function(e){i+=e.length+1})),J[t>>2]=i,0}function Et(e){try{var t=st.getStreamFromFD(e);return ot.close(t),0}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),e.errno}}function At(e,t){try{var r=st.getStreamFromFD(e),i=r.tty?2:ot.isDir(r.mode)?3:ot.isLink(r.mode)?7:4;return Q[t>>0]=i,0}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),e.errno}}function St(e,t,r,i,n){try{var a=st.getStreamFromFD(e),o=4294967296*r+(t>>>0);return o<=-9007199254740992||o>=9007199254740992?-61:(ot.llseek(a,o,i),je=[a.position>>>0,(Ue=a.position,+Me(Ue)>=1?Ue>0?(0|ke(+Re(Ue/4294967296),4294967295))>>>0:~~+Te((Ue-+(~~Ue>>>0))/4294967296)>>>0:0)],J[n>>2]=je[0],J[n+4>>2]=je[1],a.getdents&&0===o&&0===i&&(a.getdents=null),0)}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),e.errno}}function Mt(e,t,r,i){try{var n=st.getStreamFromFD(e),a=st.doWritev(n,t,r);return J[i>>2]=a,0}catch(e){return void 0!==ot&&e instanceof ot.ErrnoError||Le(e),e.errno}}function Tt(e){var t=Date.now();return J[e>>2]=t/1e3|0,J[e+4>>2]=t%1e3*1e3|0,0}W("GMT",1341232,4);function Rt(e){return(e=+e)>=0?+Re(e+.5):+Te(e-.5)}function kt(e){x(0|e)}function It(e){var t=Date.now()/1e3|0;return e&&(J[e>>2]=t),t}function Ot(e,t,r){var i=r>0?r:V(e)+1,n=new Array(i),a=X(e,n,0,n.length);return t&&(n.length=a),n}ot.staticInit();var Dt={__cxa_allocate_exception:Ye,__cxa_throw:Je,__lock:Ze,__syscall221:ut,__syscall3:dt,__syscall5:ht,__unlock:lt,abort:ft,clock:ct,emscripten_memcpy_big:mt,emscripten_resize_heap:_t,environ_get:vt,environ_sizes_get:wt,fd_close:Et,fd_fdstat_get:At,fd_seek:St,fd_write:Mt,gettimeofday:Tt,memory:D,round:Rt,setTempRet0:kt,table:C,time:It},xt=Ve(),Ct=xt.__wasm_call_ctors;xt.__wasm_call_ctors=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ct.apply(null,arguments)};var Pt=xt.WasmDecoder_Check;xt.WasmDecoder_Check=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Pt.apply(null,arguments)};var Nt=xt.WasmDecoder_Init;xt.WasmDecoder_Init=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Nt.apply(null,arguments)};var Lt=xt.WasmDecoder_Deinit;xt.WasmDecoder_Deinit=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Lt.apply(null,arguments)};var Bt=xt.WasmDecoder_OpenChannel;xt.WasmDecoder_OpenChannel=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Bt.apply(null,arguments)};var Ft=xt.WasmDecoder_InputFlvStream;xt.WasmDecoder_InputFlvStream=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ft.apply(null,arguments)};var Ut=xt.WasmDecoder_GetFlvDecodeData;xt.WasmDecoder_GetFlvDecodeData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ut.apply(null,arguments)};var jt=xt.WasmDecoder_InputFlvStreamAndDecode;xt.WasmDecoder_InputFlvStreamAndDecode=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),jt.apply(null,arguments)};var Ht=xt.WasmDecoder_OpenVideoDecoder;xt.WasmDecoder_OpenVideoDecoder=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ht.apply(null,arguments)};var Xt=xt.WasmDecoder_OpenAudioDecoder;xt.WasmDecoder_OpenAudioDecoder=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Xt.apply(null,arguments)};var Wt=xt.WasmDecoder_DecodeVideoFrame;xt.WasmDecoder_DecodeVideoFrame=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Wt.apply(null,arguments)};var Vt=xt.WasmDecoder_DecodeAudioFrame;xt.WasmDecoder_DecodeAudioFrame=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Vt.apply(null,arguments)};var zt=xt.WasmDecoder_CloseChannel;xt.WasmDecoder_CloseChannel=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),zt.apply(null,arguments)};var qt=xt.WasmDecoder_ConvertFrame2Image;xt.WasmDecoder_ConvertFrame2Image=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),qt.apply(null,arguments)};var Gt=xt.WasmDecoder_ReleaseImageData;xt.WasmDecoder_ReleaseImageData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Gt.apply(null,arguments)};var Qt=xt.WasmDecoder_CreateMP4File;xt.WasmDecoder_CreateMP4File=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Qt.apply(null,arguments)};var Yt=xt.WasmDecoder_WriteData;xt.WasmDecoder_WriteData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Yt.apply(null,arguments)};var Kt=xt.WasmDecoder_ReleaseMP4File;xt.WasmDecoder_ReleaseMP4File=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Kt.apply(null,arguments)};var Jt=xt.main;xt.main=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Jt.apply(null,arguments)};var Zt=xt.free;xt.free=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Zt.apply(null,arguments)};var $t=xt.malloc;xt.malloc=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),$t.apply(null,arguments)};var er=xt.__errno_location;xt.__errno_location=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),er.apply(null,arguments)};var tr=xt.fflush;xt.fflush=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),tr.apply(null,arguments)};var rr=xt._get_tzname;xt._get_tzname=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),rr.apply(null,arguments)};var ir=xt._get_daylight;xt._get_daylight=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ir.apply(null,arguments)};var nr=xt._get_timezone;xt._get_timezone=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),nr.apply(null,arguments)};var ar=xt.setThrew;xt.setThrew=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ar.apply(null,arguments)};var or=xt._ZSt18uncaught_exceptionv;xt._ZSt18uncaught_exceptionv=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),or.apply(null,arguments)};var sr=xt.stackSave;xt.stackSave=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),sr.apply(null,arguments)};var ur=xt.stackAlloc;xt.stackAlloc=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ur.apply(null,arguments)};var dr=xt.stackRestore;xt.stackRestore=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),dr.apply(null,arguments)};var hr=xt.__growWasmMemory;xt.__growWasmMemory=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),hr.apply(null,arguments)};var lr=xt.dynCall_ii;xt.dynCall_ii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),lr.apply(null,arguments)};var fr=xt.dynCall_viiiii;xt.dynCall_viiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),fr.apply(null,arguments)};var cr=xt.dynCall_viiiiiifi;xt.dynCall_viiiiiifi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),cr.apply(null,arguments)};var pr=xt.dynCall_viiii;xt.dynCall_viiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),pr.apply(null,arguments)};var mr=xt.dynCall_viii;xt.dynCall_viii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),mr.apply(null,arguments)};var gr=xt.dynCall_iiiiiii;xt.dynCall_iiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),gr.apply(null,arguments)};var _r=xt.dynCall_iiiiii;xt.dynCall_iiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),_r.apply(null,arguments)};var yr=xt.dynCall_vii;xt.dynCall_vii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),yr.apply(null,arguments)};var br=xt.dynCall_iii;xt.dynCall_iii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),br.apply(null,arguments)};var vr=xt.dynCall_iiii;xt.dynCall_iiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),vr.apply(null,arguments)};var wr=xt.dynCall_viiiiii;xt.dynCall_viiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wr.apply(null,arguments)};var Er=xt.dynCall_viiiiiiiii;xt.dynCall_viiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Er.apply(null,arguments)};var Ar=xt.dynCall_viiiiiiii;xt.dynCall_viiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ar.apply(null,arguments)};var Sr=xt.dynCall_iiiii;xt.dynCall_iiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Sr.apply(null,arguments)};var Mr=xt.dynCall_viiiiiiiiiiiiii;xt.dynCall_viiiiiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Mr.apply(null,arguments)};var Tr=xt.dynCall_viiiiiiiiiii;xt.dynCall_viiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Tr.apply(null,arguments)};var Rr=xt.dynCall_viiiiiii;xt.dynCall_viiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Rr.apply(null,arguments)};var kr=xt.dynCall_viiiiiiiiiiii;xt.dynCall_viiiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),kr.apply(null,arguments)};var Ir=xt.dynCall_vi;xt.dynCall_vi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ir.apply(null,arguments)};var Or=xt.dynCall_iiiiiiiii;xt.dynCall_iiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Or.apply(null,arguments)};var Dr=xt.dynCall_viiiifii;xt.dynCall_viiiifii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Dr.apply(null,arguments)};var xr=xt.dynCall_fii;xt.dynCall_fii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),xr.apply(null,arguments)};var Cr=xt.dynCall_viiiiiiiiii;xt.dynCall_viiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Cr.apply(null,arguments)};var Pr=xt.dynCall_dd;xt.dynCall_dd=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Pr.apply(null,arguments)};var Nr=xt.dynCall_viifi;xt.dynCall_viifi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Nr.apply(null,arguments)};var Lr=xt.dynCall_fiii;xt.dynCall_fiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Lr.apply(null,arguments)};var Br=xt.dynCall_viidi;xt.dynCall_viidi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Br.apply(null,arguments)};var Fr=xt.dynCall_iiiiiiii;xt.dynCall_iiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Fr.apply(null,arguments)};var Ur=xt.dynCall_did;xt.dynCall_did=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ur.apply(null,arguments)};var jr=xt.dynCall_v;xt.dynCall_v=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),jr.apply(null,arguments)};var Hr=xt.dynCall_viiijj;xt.dynCall_viiijj=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Hr.apply(null,arguments)};var Xr=xt.dynCall_iiiiiiidiiddii;xt.dynCall_iiiiiiidiiddii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Xr.apply(null,arguments)};var Wr=xt.dynCall_jij;xt.dynCall_jij=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Wr.apply(null,arguments)};var Vr=xt.dynCall_jii;xt.dynCall_jii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Vr.apply(null,arguments)};var zr=xt.dynCall_jiji;xt.dynCall_jiji=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),zr.apply(null,arguments)};var qr=xt.dynCall_iidiiii;xt.dynCall_iidiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),qr.apply(null,arguments)},h.asm=xt;var Gr,Qr=h.___wasm_call_ctors=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.__wasm_call_ctors.apply(null,arguments)},Yr=(h._WasmDecoder_Check=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_Check.apply(null,arguments)},h._WasmDecoder_Init=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_Init.apply(null,arguments)},h._WasmDecoder_Deinit=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_Deinit.apply(null,arguments)},h._WasmDecoder_OpenChannel=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_OpenChannel.apply(null,arguments)},h._WasmDecoder_InputFlvStream=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_InputFlvStream.apply(null,arguments)},h._WasmDecoder_GetFlvDecodeData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_GetFlvDecodeData.apply(null,arguments)},h._WasmDecoder_InputFlvStreamAndDecode=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_InputFlvStreamAndDecode.apply(null,arguments)},h._WasmDecoder_OpenVideoDecoder=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_OpenVideoDecoder.apply(null,arguments)},h._WasmDecoder_OpenAudioDecoder=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_OpenAudioDecoder.apply(null,arguments)},h._WasmDecoder_DecodeVideoFrame=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_DecodeVideoFrame.apply(null,arguments)},h._WasmDecoder_DecodeAudioFrame=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_DecodeAudioFrame.apply(null,arguments)},h._WasmDecoder_CloseChannel=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_CloseChannel.apply(null,arguments)},h._WasmDecoder_ConvertFrame2Image=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_ConvertFrame2Image.apply(null,arguments)},h._WasmDecoder_ReleaseImageData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_ReleaseImageData.apply(null,arguments)},h._WasmDecoder_CreateMP4File=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_CreateMP4File.apply(null,arguments)},h._WasmDecoder_WriteData=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_WriteData.apply(null,arguments)},h._WasmDecoder_ReleaseMP4File=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.WasmDecoder_ReleaseMP4File.apply(null,arguments)},h._main=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.main.apply(null,arguments)},h._free=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.free.apply(null,arguments)},h._malloc=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.malloc.apply(null,arguments)}),Kr=(h.___errno_location=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.__errno_location.apply(null,arguments)},h._fflush=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.fflush.apply(null,arguments)},h.__get_tzname=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm._get_tzname.apply(null,arguments)},h.__get_daylight=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm._get_daylight.apply(null,arguments)},h.__get_timezone=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm._get_timezone.apply(null,arguments)},h._setThrew=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.setThrew.apply(null,arguments)},h.__ZSt18uncaught_exceptionv=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm._ZSt18uncaught_exceptionv.apply(null,arguments)}),Jr=h.stackSave=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.stackSave.apply(null,arguments)},Zr=h.stackAlloc=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.stackAlloc.apply(null,arguments)},$r=h.stackRestore=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.stackRestore.apply(null,arguments)};h.__growWasmMemory=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.__growWasmMemory.apply(null,arguments)},h.dynCall_ii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_ii.apply(null,arguments)},h.dynCall_viiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiii.apply(null,arguments)},h.dynCall_viiiiiifi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiifi.apply(null,arguments)},h.dynCall_viiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiii.apply(null,arguments)},h.dynCall_viii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viii.apply(null,arguments)},h.dynCall_iiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiiiii.apply(null,arguments)},h.dynCall_iiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiiii.apply(null,arguments)},h.dynCall_vii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_vii.apply(null,arguments)},h.dynCall_iii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iii.apply(null,arguments)},h.dynCall_iiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiii.apply(null,arguments)},h.dynCall_viiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiii.apply(null,arguments)},h.dynCall_viiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiiii.apply(null,arguments)},h.dynCall_viiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiii.apply(null,arguments)},h.dynCall_iiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiii.apply(null,arguments)},h.dynCall_viiiiiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiiiiiiiii.apply(null,arguments)},h.dynCall_viiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiiiiii.apply(null,arguments)},h.dynCall_viiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiii.apply(null,arguments)},h.dynCall_viiiiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiiiiiii.apply(null,arguments)},h.dynCall_vi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_vi.apply(null,arguments)},h.dynCall_iiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiiiiiii.apply(null,arguments)},h.dynCall_viiiifii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiifii.apply(null,arguments)},h.dynCall_fii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_fii.apply(null,arguments)},h.dynCall_viiiiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiiiiiiiii.apply(null,arguments)},h.dynCall_dd=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_dd.apply(null,arguments)},h.dynCall_viifi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viifi.apply(null,arguments)},h.dynCall_fiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_fiii.apply(null,arguments)},h.dynCall_viidi=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viidi.apply(null,arguments)},h.dynCall_iiiiiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiiiiii.apply(null,arguments)},h.dynCall_did=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_did.apply(null,arguments)},h.dynCall_v=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_v.apply(null,arguments)},h.dynCall_viiijj=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_viiijj.apply(null,arguments)},h.dynCall_iiiiiiidiiddii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iiiiiiidiiddii.apply(null,arguments)},h.dynCall_jij=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_jij.apply(null,arguments)},h.dynCall_jii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_jii.apply(null,arguments)},h.dynCall_jiji=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_jiji.apply(null,arguments)},h.dynCall_iidiiii=function(){return N(ge,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),N(!_e,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),h.asm.dynCall_iidiiii.apply(null,arguments)};function ei(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}h.asm=xt,Object.getOwnPropertyDescriptor(h,"intArrayFromString")||(h.intArrayFromString=function(){Le("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"intArrayToString")||(h.intArrayToString=function(){Le("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),h.ccall=B,h.cwrap=F,Object.getOwnPropertyDescriptor(h,"setValue")||(h.setValue=function(){Le("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getValue")||(h.getValue=function(){Le("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"allocate")||(h.allocate=function(){Le("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getMemory")||(h.getMemory=function(){Le("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"AsciiToString")||(h.AsciiToString=function(){Le("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stringToAscii")||(h.stringToAscii=function(){Le("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"UTF8ArrayToString")||(h.UTF8ArrayToString=function(){Le("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"UTF8ToString")||(h.UTF8ToString=function(){Le("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stringToUTF8Array")||(h.stringToUTF8Array=function(){Le("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stringToUTF8")||(h.stringToUTF8=function(){Le("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"lengthBytesUTF8")||(h.lengthBytesUTF8=function(){Le("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"UTF16ToString")||(h.UTF16ToString=function(){Le("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stringToUTF16")||(h.stringToUTF16=function(){Le("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"lengthBytesUTF16")||(h.lengthBytesUTF16=function(){Le("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"UTF32ToString")||(h.UTF32ToString=function(){Le("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stringToUTF32")||(h.stringToUTF32=function(){Le("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"lengthBytesUTF32")||(h.lengthBytesUTF32=function(){Le("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"allocateUTF8")||(h.allocateUTF8=function(){Le("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stackTrace")||(h.stackTrace=function(){Le("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addOnPreRun")||(h.addOnPreRun=function(){Le("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addOnInit")||(h.addOnInit=function(){Le("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addOnPreMain")||(h.addOnPreMain=function(){Le("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addOnExit")||(h.addOnExit=function(){Le("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addOnPostRun")||(h.addOnPostRun=function(){Le("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"writeStringToMemory")||(h.writeStringToMemory=function(){Le("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"writeArrayToMemory")||(h.writeArrayToMemory=function(){Le("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"writeAsciiToMemory")||(h.writeAsciiToMemory=function(){Le("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"addRunDependency")||(h.addRunDependency=function(){Le("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"removeRunDependency")||(h.removeRunDependency=function(){Le("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"ENV")||(h.ENV=function(){Le("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"FS")||(h.FS=function(){Le("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"FS_createFolder")||(h.FS_createFolder=function(){Le("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createPath")||(h.FS_createPath=function(){Le("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createDataFile")||(h.FS_createDataFile=function(){Le("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createPreloadedFile")||(h.FS_createPreloadedFile=function(){Le("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createLazyFile")||(h.FS_createLazyFile=function(){Le("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createLink")||(h.FS_createLink=function(){Le("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_createDevice")||(h.FS_createDevice=function(){Le("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"FS_unlink")||(h.FS_unlink=function(){Le("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(h,"GL")||(h.GL=function(){Le("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"dynamicAlloc")||(h.dynamicAlloc=function(){Le("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"loadDynamicLibrary")||(h.loadDynamicLibrary=function(){Le("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"loadWebAssemblyModule")||(h.loadWebAssemblyModule=function(){Le("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getLEB")||(h.getLEB=function(){Le("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getFunctionTables")||(h.getFunctionTables=function(){Le("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"alignFunctionTables")||(h.alignFunctionTables=function(){Le("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"registerFunctions")||(h.registerFunctions=function(){Le("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),h.addFunction=I,Object.getOwnPropertyDescriptor(h,"removeFunction")||(h.removeFunction=function(){Le("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getFuncWrapper")||(h.getFuncWrapper=function(){Le("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"prettyPrint")||(h.prettyPrint=function(){Le("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"makeBigInt")||(h.makeBigInt=function(){Le("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"dynCall")||(h.dynCall=function(){Le("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getCompilerSetting")||(h.getCompilerSetting=function(){Le("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stackSave")||(h.stackSave=function(){Le("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stackRestore")||(h.stackRestore=function(){Le("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"stackAlloc")||(h.stackAlloc=function(){Le("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"establishStackSpace")||(h.establishStackSpace=function(){Le("'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"print")||(h.print=function(){Le("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"printErr")||(h.printErr=function(){Le("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"getTempRet0")||(h.getTempRet0=function(){Le("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"setTempRet0")||(h.setTempRet0=function(){Le("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),h.callMain=ti,Object.getOwnPropertyDescriptor(h,"abort")||(h.abort=function(){Le("'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"Pointer_stringify")||(h.Pointer_stringify=function(){Le("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(h,"warnOnce")||(h.warnOnce=function(){Le("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),h.writeStackCookie=ue,h.checkStackCookie=de,h.abortStackOverflow=he,Object.getOwnPropertyDescriptor(h,"ALLOC_NORMAL")||Object.defineProperty(h,"ALLOC_NORMAL",{configurable:!0,get:function(){Le("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(h,"ALLOC_STACK")||Object.defineProperty(h,"ALLOC_STACK",{configurable:!0,get:function(){Le("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(h,"ALLOC_DYNAMIC")||Object.defineProperty(h,"ALLOC_DYNAMIC",{configurable:!0,get:function(){Le("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(h,"ALLOC_NONE")||Object.defineProperty(h,"ALLOC_NONE",{configurable:!0,get:function(){Le("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(h,"calledRun")||Object.defineProperty(h,"calledRun",{configurable:!0,get:function(){Le("'calledRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}});function ti(e){N(0==Ie,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'),N(0==fe.length,"cannot call main when preRun functions remain to be called");var t=h._main;try{ni(t(0,0),!0)}catch(e){if(e instanceof ei)return;if("SimulateInfiniteLoop"==e)return void(o=!0);var r=e;e&&"object"==typeof e&&e.stack&&(r=[e,e.stack]),M("exception thrown: "+r),f(1,e)}finally{!0}}function ri(e){function t(){Gr||(Gr=!0,P||(be(),ve(),h.onRuntimeInitialized&&h.onRuntimeInitialized(),ai&&ti(),Ee()))}e=e||u,Ie>0||(ue(),ye(),Ie>0||(h.setStatus?(h.setStatus("Running..."),setTimeout((function(){setTimeout((function(){h.setStatus("")}),1),t()}),1)):t(),de()))}function ii(){var e=S,t=M,r=!1;S=M=function(e){r=!0};try{var i=h._fflush;i&&i(0),["stdout","stderr"].forEach((function(e){var t=ot.analyzePath("/dev/"+e);if(t){var i=t.object.rdev,n=rt.ttys[i];n&&n.output&&n.output.length&&(r=!0)}}))}catch(e){}S=e,M=t,r&&T("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}function ni(e,t){ii(),t&&o&&0===e||(o?t||M("program exited (with status: "+e+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)"):(P=!0,e,we(),h.onExit&&h.onExit(e)),f(e,new ei(e)))}if(De=function e(){Gr||ri(),Gr||(De=e)},h.run=ri,h.preInit)for("function"==typeof h.preInit&&(h.preInit=[h.preInit]);h.preInit.length>0;)h.preInit.pop()();var ai=!0;h.noInitialRun&&(ai=!1),o=!0,ri()}var f=function(e){e.isFlvStream=!0,e.enableAudio=!1,e.pause=!1,e.exitFlag=!1,e.needMoreData=!1,e.wasmDecoderId=-1,e.wasmInitVideoDecoder=!1,e.wasmInitAudioDecoder=!1,e.videoQueue=[],e.audioQueue=[],e.videoFrameNum=0,e.videoRawData=null,e.audioRawData=null,e.videoPacketData=null,e.audioPacketData=null,e.findKeyFrame=!0,e.videoIntervalHandle=-1,e.videoIntervalValue=39,e.audioIntervalHandle=-1,e.audioIntervalValue=80,e.lastPTS=0,e.ptsCount=0,e.maxCacheFrameNum=0,e.calcDelayFlag=!0,e.procVideoFlag=!1,e.procAudioFlag=!1;var t=function(){null==e.videoRawData&&(e.videoRawData=h._malloc(16588800)),null==e.audioRawData&&(e.audioRawData=h._malloc(16384)),null==e.videoPacketData&&(e.videoPacketData=h._malloc(1048576)),null==e.audioPacketData&&(e.audioPacketData=h._malloc(2048)),e.wasmDecoderId<0&&(e.wasmDecoderId=h._WasmDecoder_OpenChannel())},r=function(t,r,i,n,a,o,u,d,l,f){if(e.procVideoFlag)return-1;e.procVideoFlag=!0,h.HEAPU8.set(d,e.videoPacketData);var c,p=s.G,m=0;if(p==s.G?m=0:p==s.E?m=2:p==s.F&&(m=26),1==t&&e.videoFrameNum>0&&(e.videoFrameNum-=1),1==t&&!e.wasmInitVideoDecoder&&i)0==h._WasmDecoder_OpenVideoDecoder(e.wasmDecoderId,r,0,0,m)&&(e.wasmInitVideoDecoder=!0);else if(2==t&&!e.wasmInitAudioDecoder){0==h._WasmDecoder_OpenAudioDecoder(e.wasmDecoderId,r,a,u,o)&&(e.wasmInitAudioDecoder=!0)}var g=null;if(1==t&&e.wasmInitVideoDecoder?g=h._WasmDecoder_DecodeVideoFrame(e.wasmDecoderId,e.videoPacketData,l,0,0,e.videoRawData,0):2==t&&e.wasmInitAudioDecoder&&e.enableAudio&&(g=h._WasmDecoder_DecodeAudioFrame(e.wasmDecoderId,e.videoPacketData,l,e.audioRawData,0)),0!=g&&null!=g){var _=h.HEAPU32[g/4],y=(h.HEAPU32[g/4+1],h.HEAPU32[g/4+2]),b=(h.HEAPU32[g/4+3],h.HEAPU32[g/4+4]),v=h.HEAPU32[g/4+5],w=(h.HEAPU32[g/4+6],h.HEAPU32[g/4+7]),E=h.HEAPU32[g/4+8],A=h.HEAPU32[g/4+9],S=h.HEAPU32[g/4+10],M=h.HEAPU32[g/4+11],T=(h.HEAPU32[g/4+12],h.HEAPU32[g/4+13]);if(y<1)return void(e.procVideoFlag=!1);if(1==_){0==m?c=b*v*3/2:2==m?c=b*v*3:(25==m||26==m)&&(c=b*v*4);var R=h.HEAPU8.subarray(e.videoRawData,e.videoRawData+c),k=new Uint8Array(R),I={cmd:s.q,workerId:s.a,mediaType:1,ts:T,width:b,height:v,framesize:l,rawsize:c,fps:w,interval:E,playTimeSec:n,frameNum:e.videoFrameNum,dat:k,sei:f};if(e.postMessage(I,[I.dat.buffer]),b>=1920&&v>=720)return e.procVideoFlag=!1,1}else if(2==_){R=h.HEAPU8.subarray(e.audioRawData,e.audioRawData+y),k=new Uint8Array(R);var O=0;8==M?O=0:16==M?O=1:32==M&&(O=2);I={cmd:s.q,workerId:s.a,mediaType:2,fmt:O,ch:A,samplerate:S,ts:T,framesize:y,dat:k};e.postMessage(I,[I.dat.buffer])}}return e.procVideoFlag=!1,0},i=function(t,r,i,n,a,o){(h.HEAPU8.set(a,e.audioPacketData),e.wasmInitAudioDecoder)||0==h._WasmDecoder_OpenAudioDecoder(e.wasmDecoderId,t,r,n,i)&&(e.wasmInitAudioDecoder=!0);var u=null;if(e.wasmInitAudioDecoder&&e.enableAudio&&(u=h._WasmDecoder_DecodeAudioFrame(e.wasmDecoderId,e.audioPacketData,o,e.audioRawData,0)),0!=u&&null!=u){h.HEAPU32[u/4],h.HEAPU32[u/4+1];var d=h.HEAPU32[u/4+2],l=(h.HEAPU32[u/4+3],h.HEAPU32[u/4+4],h.HEAPU32[u/4+5],h.HEAPU32[u/4+6],h.HEAPU32[u/4+7],h.HEAPU32[u/4+8],h.HEAPU32[u/4+9]),f=h.HEAPU32[u/4+10],c=h.HEAPU32[u/4+11],p=(h.HEAPU32[u/4+12],h.HEAPU32[u/4+13]);if(d<1)return;var m=h.HEAPU8.subarray(e.audioRawData,e.audioRawData+d),g=new Uint8Array(m),_=0;8==c?_=0:16==c?_=1:32==c&&(_=2);var y={cmd:s.q,workerId:s.a,mediaType:2,fmt:_,ch:l,samplerate:f,ts:p,framesize:d,dat:g};e.postMessage(y,[y.dat.buffer])}},n=function(){if(e.wasmDecoderId<0&&t(),e.wasmDecoderId>0&&e.videoQueue.length>0&&!e.pause){var i=null,n=-1;if(e.isFlvStream){if(e.findKeyFrame)for(;e.videoQueue.length>0;){if((i=e.videoQueue[0]).frameType&&e.videoQueue.length<120){e.findKeyFrame=!1;break}e.videoQueue.shift()}else e.videoQueue.length>120&&(e.findKeyFrame=!0);e.videoQueue.length>0&&(null==i&&(i=e.videoQueue[0]),n=r(i.mediaType,i.codecId,i.frameType,i.playTimeSec,i.samplerate,i.channelNum,i.bitPerSample,i.dat,i.dat.length,i.sei))}else i=e.videoQueue[0],n=r(i.mediaType,i.codecId,i.frameType,i.playTimeSec,i.samplerate,i.channelNum,i.bitPerSample,i.dat,i.dat.length);n>=0&&e.videoQueue.shift(),e.videoQueue.length>e.maxCacheFrameNum&&e.videoQueue.length}},a=function(){if(!(e.wasmDecoderId<0)&&e.wasmDecoderId>0)for(;e.audioQueue.length>0&&!e.pause;)if(!e.pause){var t=e.audioQueue[0];e.enableAudio&&i(t.codecId,t.samplerate,t.channelNum,t.bitPerSample,t.dat,t.dat.length),e.audioQueue.shift()}};h.onRuntimeInitialized=function(){e.videoIntervalHandle<0&&(e.videoIntervalHandle=setInterval(n,e.videoIntervalValue)),e.audioIntervalHandle<0&&(e.audioIntervalHandle=setInterval(a,e.audioIntervalValue));var t={cmd:s.n};e.postMessage(t),u=!0},h.onExit=function(){};var c=function(t){if(t>e.lastPTS)if(e.lastPTS>0){if(e.videoQueue.length%5==0){var r=e.ptsCount/5;e.videoQueue.length<=e.maxCacheFrameNum&&function(t){if(u){var r=t;(r<5||r>500)&&(r=40),r!=e.videoIntervalValue&&(e.videoIntervalHandle>=0&&(clearInterval(e.videoIntervalHandle),e.videoIntervalHandle=-1),e.videoIntervalValue=Math.floor(r),e.videoIntervalHandle=setInterval(n,e.videoIntervalValue))}}(r),e.ptsCount=t-e.lastPTS}else e.ptsCount+=t-e.lastPTS;e.lastPTS=t}else e.lastPTS=t,e.ptsCount=40;else e.lastPTS=t,e.ptsCount=40};e.addEventListener("message",(function(r){var i=r.data;switch(i.cmd){case s.w:d=i.url,e.isFlvStream=i.isFlv,u||l();break;case s.l:e.exitFlag=!0,f=null,e.videoIntervalHandle>=0&&(clearInterval(e.videoIntervalHandle),e.videoIntervalHandle=-1),e.audioIntervalHandle>=0&&(clearInterval(e.audioIntervalHandle),e.audioIntervalHandle=-1),e.wasmDecoderId>0&&(h._WasmDecoder_CloseChannel(e.wasmDecoderId),e.wasmDecoderId=-1),null!=e.videoRawData&&(h._free(e.videoRawData),e.videoRawData=null),null!=e.audioRawData&&(h._free(e.audioRawData),e.audioRawData=null),null!=e.videoPacketData&&(h._free(e.videoPacketData),e.videoPacketData=null),null!=e.audioPacketData&&(h._free(e.audioPacketData),e.audioPacketData=null),e.videoQueue.clear,e.videoQueue=[],e.videoQueue.length=0,e.videoFrameNum=0,e.audioQueue.clear,e.audioQueue=[],e.audioQueue.length=0,delete h.HEAP8,delete h.HEAP16,delete h.HEAP32,delete h.HEAPF32,delete h.HEAPF64,delete h.HEAPU8,delete h.HEAPU16,delete h.HEAPU32,delete h.buffer,h.HEAP8=null,h.HEAP16=null,h.HEAP32=null,h.HEAPF32=null,h.HEAPF64=null,h.HEAPU8=null,h.HEAPU16=null,h.HEAPU32=null,h.buffer=null,o=!1,h.callMain("exit"),h=null;var n={cmd:s.l,workerId:s.a};e.postMessage(n),close();break;case s.v:e.enableAudio=!0;break;case s.k:e.enableAudio=!1;break;case s.x:e.pause=!0;break;case s.A:e.pause=!1;break;case s.B:e.videoQueue.clear,e.videoQueue=[],e.videoQueue.length=0,e.videoFrameNum=0,e.audioQueue.clear,e.audioQueue=[],e.audioQueue.length=0;break;case s.D:e.updateIntervalTime(i.interval);break;case s.q:if(e.exitFlag)break;u?e.isFlvStream?(e.wasmDecoderId<0&&t(),e.wasmDecoderId>0?1==i.mediaType?e.videoIntervalHandle>=0&&(e.videoQueue.push(i),e.maxCacheFrameNum=5):2==i.mediaType&&e.audioIntervalHandle>=0&&!e.findKeyFrame&&e.audioQueue.push(i):e.videoQueue.length<100&&1==i.mediaType&&i.frameType&&e.videoIntervalHandle>=0&&(e.videoQueue.push(i),e.videoQueue.length>=5&&e.videoQueue.shift())):(1==i.mediaType?e.videoIntervalHandle>=0&&(e.videoQueue.push(i),c(i.samplerate),e.videoFrameNum+=1,e.calcDelayFlag&&e.maxCacheFrameNum<e.videoQueue.length?e.maxCacheFrameNum=e.videoQueue.length:e.calcDelayFlag&&(e.calcDelayFlag=!1)):2==i.mediaType&&e.audioIntervalHandle>=0&&e.audioQueue.push(i),e.needMoreData=!1):e.isFlvStream&&e.videoQueue.length<5?1==i.mediaType&&i.frameType&&e.videoIntervalHandle>=0&&(e.videoQueue.push(i),e.videoQueue.length>=5&&e.videoQueue.shift()):!e.isFlvStream&&e.videoQueue.length<1e3&&(1==i.mediaType?e.videoIntervalHandle>=0&&(e.videoQueue.push(i),c(i.samplerate),e.videoFrameNum+=1,e.calcDelayFlag&&e.maxCacheFrameNum<e.videoQueue.length?e.maxCacheFrameNum=e.videoQueue.length:e.calcDelayFlag&&(e.calcDelayFlag=!1)):2==i.mediaType&&e.audioIntervalHandle>=0&&e.audioQueue.push(i))}}))};t.default=f;var c=h,p=l,m=u}.call(this,r(9),"/",r(68)(e),r(10).Buffer)},function(e,t,r){"use strict";r.r(t);var i=r(43),n=r(37),a={enableWorker:!1,enableStashBuffer:!0,stashInitialSize:void 0,isLive:!1,lazyLoad:!0,lazyLoadMaxDuration:180,lazyLoadRecoverDuration:30,deferLoadAfterSourceOpen:!0,autoCleanupMaxBackwardDuration:180,autoCleanupMinBackwardDuration:120,statisticsInfoReportInterval:600,fixAudioTimestampGap:!0,accurateSeek:!1,seekType:"range",seekParamStart:"bstart",seekParamEnd:"bend",rangeLoadZeroStart:!1,customSeekHandler:void 0,reuseRedirectedURL:!1,headers:void 0,customLoader:void 0};function o(){return Object.assign({},a)}var s=function(){function e(){}return e.supportMSEH264Playback=function(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')},e.supportNetworkStreamIO=function(){var e=new n.a({},o()),t=e.loaderType;return e.destroy(),"fetch-stream-loader"==t||"xhr-moz-chunked-loader"==t},e.getNetworkLoaderTypeName=function(){var e=new n.a({},o()),t=e.loaderType;return e.destroy(),t},e.supportNativeMediaPlayback=function(t){null==e.videoElement&&(e.videoElement=window.document.createElement("video"));var r=e.videoElement.canPlayType(t);return"probably"===r||"maybe"==r},e.getFeatureList=function(){var t={mseFlvPlayback:!1,mseLiveFlvPlayback:!1,networkStreamIO:!1,networkLoaderName:"",nativeMP4H264Playback:!1,nativeWebmVP8Playback:!1,nativeWebmVP9Playback:!1};return t.mseFlvPlayback=e.supportMSEH264Playback(),t.networkStreamIO=e.supportNetworkStreamIO(),t.networkLoaderName=e.getNetworkLoaderTypeName(),t.mseLiveFlvPlayback=t.mseFlvPlayback&&t.networkStreamIO,t.nativeMP4H264Playback=e.supportNativeMediaPlayback('video/mp4; codecs="avc1.42001E, mp4a.40.2"'),t.nativeWebmVP8Playback=e.supportNativeMediaPlayback('video/webm; codecs="vp8.0, vorbis"'),t.nativeWebmVP9Playback=e.supportNativeMediaPlayback('video/webm; codecs="vp9"'),t},e}(),u=r(3),d=(r(128),r(8)),h=r.n(d),l=r(0),f=r(7),c={ERROR:"error",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info"},p=r(21),m=r.n(p),g=r(19),_=r(36),y=r(2),b=r(17),v=r(1),w={ERROR:"error",SOURCE_OPEN:"source_open",UPDATE_END:"update_end",BUFFER_FULL:"buffer_full",UPDATE_PLAY_INFO:"update_play_info",CHANGE_SPEED:"change_speed",SOURCE_ENDED:"source_ended",RECORDING_END:"recording_end"},E=function(){function e(e){this.gl=e,this.texture=null}var t=e.prototype;return t.create=function(){var e=this.gl;this.texture=e.createTexture(),this.gl.bindTexture(this.gl.TEXTURE_2D,this.texture),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE)},t.bind=function(e,t,r){this.gl.activeTexture([this.gl.TEXTURE0,this.gl.TEXTURE1,this.gl.TEXTURE2,this.gl.TEXTURE3][e]),this.gl.bindTexture(this.gl.TEXTURE_2D,this.texture),this.gl.uniform1i(this.gl.getUniformLocation(t,r),e)},t.fill=function(e,t,r){this.gl.bindTexture(this.gl.TEXTURE_2D,this.texture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.LUMINANCE,e,t,0,this.gl.LUMINANCE,this.gl.UNSIGNED_BYTE,r)},e}(),A=function(){function e(e){this.enableTextTexture=0,this.canvas=e,this.gl=null,this.program=null,this.gl=e.getContext("webgl")||e.getContext("experimental-webgl"),this.yuv_vertex_shader_source=["attribute highp vec4 aVertexPosition;","attribute vec2 aTextureCoord;","varying highp vec2 vTextureCoord;","void main(void) {"," gl_Position = aVertexPosition;"," vTextureCoord = aTextureCoord;","}"],this.yuv_fragment_shader_source=["precision highp float;","varying lowp vec2 vTextureCoord;","uniform sampler2D YTexture;","uniform sampler2D UTexture;","uniform sampler2D VTexture;","uniform sampler2D TTexture;","const mat4 YUV2RGB = mat4","("," 1.1643828125, 0, 1.59602734375, -.87078515625,"," 1.1643828125, -.39176171875, -.81296875, .52959375,"," 1.1643828125, 2.017234375, 0, -1.081390625,"," 0, 0, 0, 1",");","void main(void) {"," gl_FragColor = mix(vec4( texture2D(YTexture, vTextureCoord).x, texture2D(UTexture, vTextureCoord).x, texture2D(VTexture, vTextureCoord).x, 1) * YUV2RGB, texture2D(TTexture, vTextureCoord), 0.1);","}"],this.vertex_shader_source="\n attribute vec4 apos;\n void main(){\n gl_Position = apos;\n }",this.frag_shader_source="\n void main(){\n gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n }",this.yuv_program=null,this.sei_program=null,this.index=0}var t=e.prototype;return t.initSEIProgram=function(){var e=this.gl,t=e.createShader(e.VERTEX_SHADER),r=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(t,this.vertex_shader_source),e.shaderSource(r,this.frag_shader_source),e.compileShader(t),e.compileShader(r),this.sei_program=e.createProgram(),e.attachShader(this.sei_program,t),e.attachShader(this.sei_program,r),e.linkProgram(this.sei_program)},t.drawSEI=function(e){var t=this.gl,r=[];if(null!==e)try{if("string"==typeof e&&(e=JSON.parse(e)),!e||!e.length)return;e.forEach((function(e){var t=parseFloat((2*e.x1-1).toFixed(3)),i=parseFloat((1-2*e.y1).toFixed(3)),n=parseFloat((2*e.x2-1).toFixed(3)),a=parseFloat((1-2*e.y2).toFixed(3));r=[].concat(r,[t,i,t,a,n,a,n,i],[t-.001,i+.001,t-.001,a-.001,n+.001,a-.001,n+.001,i+.001])}));var i=new Float32Array(r);if(!i.length)return;t.useProgram(this.sei_program);var n=t.getAttribLocation(this.sei_program,"apos"),a=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,a),t.bufferData(t.ARRAY_BUFFER,i,t.STATIC_DRAW),t.vertexAttribPointer(n,2,t.FLOAT,!1,0,0),t.enableVertexAttribArray(n);for(var o=0;o<i.length/2;o+=4)t.drawArrays(t.LINE_LOOP,o,4)}catch(e){}},t.initYUVProgram=function(){var e=this.gl;if(!this.gl)return console.log("[ER] WebGL not supported.");e.pixelStorei(e.UNPACK_ALIGNMENT,1),this.yuv_program=e.createProgram();var t=e.createShader(e.VERTEX_SHADER),r=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(t,this.yuv_vertex_shader_source.join("\n")),e.shaderSource(r,this.yuv_fragment_shader_source.join("\n")),e.compileShader(t),e.compileShader(r),e.attachShader(this.yuv_program,t),e.attachShader(this.yuv_program,r),e.linkProgram(this.yuv_program)},t.drawYUV=function(e,t,r,i,n){var a=this.gl;if(a.useProgram(this.yuv_program),!a.getProgramParameter(this.yuv_program,a.LINK_STATUS))return console.log("[ER] Shader link failed.");var o=a.getAttribLocation(this.yuv_program,"aVertexPosition");a.enableVertexAttribArray(o);var s=a.getAttribLocation(this.yuv_program,"aTextureCoord");a.enableVertexAttribArray(s);var u=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,u),a.bufferData(a.ARRAY_BUFFER,new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0]),a.STATIC_DRAW),a.vertexAttribPointer(o,3,a.FLOAT,!1,0,0);var d=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,d),a.bufferData(a.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),a.STATIC_DRAW),a.vertexAttribPointer(s,2,a.FLOAT,!1,0,0),a.y=new E(a),a.y.create(0,null),a.u=new E(a),a.u.create(0,null),a.v=new E(a),a.v.create(0,null),a.y.bind(0,this.yuv_program,"YTexture"),a.u.bind(1,this.yuv_program,"UTexture"),a.v.bind(2,this.yuv_program,"VTexture"),a.y.fill(t,r,e.subarray(0,i)),a.u.fill(t>>1,r>>1,e.subarray(i,i+n)),a.v.fill(t>>1,r>>1,e.subarray(i+n,e.length)),a.drawArrays(a.TRIANGLE_STRIP,0,4)},t.initGL=function(){this.initYUVProgram(),this.initSEIProgram()},t.renderFrame=function(e,t,r,i,n,a){if(!this.gl)return console.log("[ER] Render frame failed due to WebGL not supported.");var o=this.gl;o.viewport(0,0,o.canvas.width,o.canvas.height),o.clearColor(0,0,0,0),o.clear(o.COLOR_BUFFER_BIT),e&&(this.drawYUV(e,t,r,i,n),this.drawSEI(a))},t.renderVideoFrame=function(e,t,r,i){if(this.gl&&e)if(t<1||r<1){var n=this.gl,a=new Uint8Array(n.canvas.width*n.canvas.height*3/2),o=0,s=n.canvas.width*n.canvas.height,u=n.canvas.width*n.canvas.height*5/4,d=a.byteLength;for(o=s;o<u;o++)a[o]=128;for(o=u;o<d;o++)a[o]=128;var h=n.canvas.width*n.canvas.height,l=n.canvas.width/2*(n.canvas.height/2);this.renderFrame(a,n.canvas.width,n.canvas.height,h,l,i)}else{var f=t*r,c=t/2*(r/2);this.renderFrame(e,t,r,f,c,i)}},t.destroy=function(){this.gl&&(this.gl.deleteTexture(this.gl.y.texture),this.gl.deleteTexture(this.gl.u.texture),this.gl.deleteTexture(this.gl.v.texture),this.yuv_program=null,this.sei_program=null,this.gl=null)},e}(),S=function(){function e(){this._pause=!1,this.stopFlag=!1,this.bufferSourcePtr=null}var t=e.prototype;return t.destroy=function(){this.interval&&clearInterval(this.interval),this.samples=null,this.audioCtx.close(),this.audioCtx=null},t.init=function(e){this.option=Object.assign({},{encoding:"16bitInt",channels:2,sampleRate:8e3,flushingTime:1e3},e,{sampleRate:8e3===e.sampleRate?16e3:e.sampleRate}),this.samples=new Float32Array,this.flush=this.flush.bind(this),this.interval=setInterval(this.flush,this.option.flushingTime),this.maxValue=this.getMaxValue(),this.typedArray=this.getTypedArray(),this.createContext()},t.getMaxValue=function(){var e={"8bitInt":128,"16bitInt":32768,"32bitInt":2147483648,"32bitFloat":1};return e[this.option.encoding]?e[this.option.encoding]:e["16bitInt"]},t.getTypedArray=function(){var e={"8bitInt":Int8Array,"16bitInt":Int16Array,"32bitInt":Int32Array,"32bitFloat":Float32Array};return e[this.option.encoding]?e[this.option.encoding]:e["16bitInt"]},t.createContext=function(){this.audioCtx=new(window.AudioContext||window.webkitAudioContext),this.gainNode=this.audioCtx.createGain(),this.gainNode.gain.value=1,this.gainNode.connect(this.audioCtx.destination),this.startTime=this.audioCtx.currentTime},t.isTypedArray=function(e){return e.byteLength&&e.buffer&&e.buffer.constructor==ArrayBuffer},t.feed=function(e){if(this.isTypedArray(e)){e=this.getFormatedValue(e);var t=new Float32Array(this.samples.length+e.length);t.set(this.samples,0),t.set(e,this.samples.length),this.samples=t}},t.getFormatedValue=function(e){e=new this.typedArray(e.buffer);var t,r=new Float32Array(e.length);for(t=0;t<e.length;t++)r[t]=e[t]/this.maxValue;return r},t.volume=function(e){this.gainNode.gain.value=e},t.flush=function(){if(null!=this.samples&&this.samples.length){var e,t,r,i,n,a=this.audioCtx.createBufferSource(),o=this.samples.length/this.option.channels,s=this.audioCtx.createBuffer(this.option.channels,o,this.option.sampleRate);for(t=0;t<this.option.channels;t++)for(e=s.getChannelData(t),r=t,n=50,i=0;i<o;i++)e[i]=this.samples[r],i<50&&(e[i]=e[i]*i/50),i>=o-51&&(e[i]=e[i]*n--/50),r+=this.option.channels;this.startTime<this.audioCtx.currentTime&&(this.startTime=this.audioCtx.currentTime),a.buffer=s,a.connect(this.gainNode),a.start(this.startTime),this.startTime+=s.duration,this.samples=new Float32Array}},t.getTimestamp=function(){return this.audioCtx?this.audioCtx.currentTime:0},t.play=function(e){if(null!=this.audioCtx&&!this._pause){if("running"!==this.audioCtx.state)return this.audioCtx.resume();if(this.isTypedArray(e)&&(e=this.getFormatedValue(e)).length){this.stopFlag=!1;var t,r,i,n,a,o,s=this.audioCtx.createBufferSource(),u=e.length/this.option.channels;try{t=this.audioCtx.createBuffer(this.option.channels,u,this.option.sampleRate)}catch(e){console.log("audioBuffer",e)}for(i=0;i<this.option.channels;i++)for(r=t.getChannelData(i),n=i,o=50,a=0;a<u;a++)r[a]=e[n],a<50&&(r[a]=r[a]*a/50),a>=u-51&&(r[a]=r[a]*o--/50),n+=this.option.channels;this.startTime<this.audioCtx.currentTime&&(this.startTime=this.audioCtx.currentTime),s.buffer=t,s.connect(this.gainNode),s.start(this.startTime),this.startTime+=t.duration,this.bufferSourcePtr=s}}},t.clearAudioBuffer=function(){this.stopFlag=!0,this.bufferSourcePtr&&this.bufferSourcePtr.stop(0)},t.pause=function(){this._pause=!0,null!=this.audioCtx&&"running"===this.audioCtx.state&&this.audioCtx.suspend()},t.resume=function(){this._pause=!1,null!=this.audioCtx&&"suspended"===this.audioCtx.state&&this.audioCtx.resume()},e}();function M(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */M=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},n=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",o=i.toStringTag||"@@toStringTag";function s(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,r){return e[t]=r}}function u(e,t,r,i){var n=t&&t.prototype instanceof l?t:l,a=Object.create(n.prototype),o=new A(i||[]);return a._invoke=function(e,t,r){var i="suspendedStart";return function(n,a){if("executing"===i)throw new Error("Generator is already running");if("completed"===i){if("throw"===n)throw a;return T()}for(r.method=n,r.arg=a;;){var o=r.delegate;if(o){var s=v(o,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===i)throw i="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i="executing";var u=d(e,t,r);if("normal"===u.type){if(i=r.done?"completed":"suspendedYield",u.arg===h)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i="completed",r.method="throw",r.arg=u.arg)}}}(e,r,o),a}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var h={};function l(){}function f(){}function c(){}var p={};s(p,n,(function(){return this}));var m=Object.getPrototypeOf,g=m&&m(m(S([])));g&&g!==t&&r.call(g,n)&&(p=g);var _=c.prototype=l.prototype=Object.create(p);function y(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var i;this._invoke=function(n,a){function o(){return new t((function(i,o){!function i(n,a,o,s){var u=d(e[n],e,a);if("throw"!==u.type){var h=u.arg,l=h.value;return l&&"object"==typeof l&&r.call(l,"__await")?t.resolve(l.__await).then((function(e){i("next",e,o,s)}),(function(e){i("throw",e,o,s)})):t.resolve(l).then((function(e){h.value=e,o(h)}),(function(e){return i("throw",e,o,s)}))}s(u.arg)}(n,a,i,o)}))}return i=i?i.then(o,o):o()}}function v(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,v(e,t),"throw"===t.method))return h;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var i=d(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,h;var n=i.arg;return n?n.done?(t[e.resultName]=n.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):n:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function S(e){if(e){var t=e[n];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i<e.length;)if(r.call(e,i))return t.value=e[i],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:T}}function T(){return{value:void 0,done:!0}}return f.prototype=c,s(_,"constructor",c),s(c,"constructor",f),f.displayName=s(c,o,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,s(e,o,"GeneratorFunction")),e.prototype=Object.create(_),e},e.awrap=function(e){return{__await:e}},y(b.prototype),s(b.prototype,a,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,i,n,a){void 0===a&&(a=Promise);var o=new b(u(t,r,i,n),a);return e.isGeneratorFunction(r)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},y(_),s(_,o,"Generator"),s(_,n,(function(){return this})),s(_,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var i=t.pop();if(i in e)return r.value=i,r.done=!1,r}return r.done=!0,r}},e.values=S,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function i(r,i){return o.type="throw",o.arg=e,t.next=r,i&&(t.method="next",t.arg=void 0),!!i}for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n],o=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(e,t){for(var i=this.tryEntries.length-1;i>=0;--i){var n=this.tryEntries[i];if(n.tryLoc<=this.prev&&r.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var a=n;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),E(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var i=r.completion;if("throw"===i.type){var n=i.arg;E(r)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:S(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},e}function T(e,t,r,i,n,a,o){try{var s=e[a](o),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(i,n)}var R=function(){function e(e,t,r){var i=this;if(this.TAG="Transmuxer",this._emitter=new h.a,t.enableWorker&&"undefined"!=typeof Worker)try{this._worker=m()(228),this._workerDestroying=!1,this._worker.addEventListener("message",this._onWorkerMessage.bind(this)),this._worker.postMessage({cmd:"init",param:[e,t]}),this.e={onLoggingConfigChanged:this._onLoggingConfigChanged.bind(this)},g.a.registerListener(this.e.onLoggingConfigChanged),this._worker.postMessage({cmd:"logging_config",param:g.a.getConfig()})}catch(r){l.a.e(this.TAG,"Error while initialize transmuxing worker, fallback to inline transmuxing"),this._worker=null,this._controller=new _.a(e,t)}else this._controller=new _.a(e,t);if(this._controller){var n=this._controller;n.on(y.a.IO_ERROR,this._onIOError.bind(this)),n.on(y.a.DEMUX_ERROR,this._onDemuxError.bind(this)),n.on(y.a.INIT_SEGMENT,this._onInitSegment.bind(this)),n.on(y.a.MEDIA_SEGMENT,this._onMediaSegment.bind(this)),n.on(y.a.LOADING_COMPLETE,this._onLoadingComplete.bind(this)),n.on(y.a.RECOVERED_EARLY_EOF,this._onRecoveredEarlyEof.bind(this)),n.on(y.a.MEDIA_INFO,this._onMediaInfo.bind(this)),n.on(y.a.METADATA_ARRIVED,this._onMetaDataArrived.bind(this)),n.on(y.a.SCRIPTDATA_ARRIVED,this._onScriptDataArrived.bind(this)),n.on(y.a.STATISTICS_INFO,this._onStatisticsInfo.bind(this)),n.on(y.a.RECOMMEND_SEEKPOINT,this._onRecommendSeekpoint.bind(this)),n.on(y.a.SEI_DATA,this._onReceiveSEIData.bind(this)),n.on(y.a.AUDIO_ERROR,this._onAudioError.bind(this)),n.on(y.a.SOCKET_CLOSE,(function(){return i._emitter.emit(w.SOURCE_ENDED)})),n.on(y.a.RECORDING,(function(e){i._emitter.emit(y.a.RECORDING,e)})),n.on("loaderChunkArrival",(function(e){return i._emitter.emit("loaderChunkArrival",e)})),n.on("hls_error",(function(){return i._emitter.emit("hls_error")}))}this._wasmDecodeWoker=null,this._wasmRecordingWoker=null,this._mediaCanvas=null,this._mediaElement=r,this._webGLPlayer=null,this._isH265=!1,this._totalDuration=0,this._initDuration=0,this._currentPlayTime=0,this.snapshotTimer=null,this.loadingCompleteTimer=null,this._wasmMuted=!0,this._isFlv=e.url.includes(".flv"),this._videoRecordFindKeyframe=!0,this._videoRecordFileName="record.mp4",this._wasmVideoRecordWorker=null,this._videoRecordiInitFlag=!1,this._wasmAudioPlayer=null,this._wasmAudioFmt=0,this._wasmAudioSamplerate=0,this._wasmAudioChannelNum=1,this._wasmInitAudioPlayer=!1,this._wasmRecordingCb=null}var t=e.prototype;return t.destroy=function(){this._worker?this._workerDestroying||(this._workerDestroying=!0,this._worker.postMessage({cmd:"destroy"}),g.a.removeListener(this.e.onLoggingConfigChanged),this.e=null):(this._controller.destroy(),this._controller=null),this._wasmDecodeWoker&&(this._wasmDecodeWoker.removeAllListeners&&this._wasmDecodeWoker.removeAllListeners(),this._wasmDecodeWoker.postMessage({cmd:v.l}),this._wasmDecodeWoker&&this._wasmDecodeWoker.terminate(),this._wasmDecodeWoker=null),this._wasmRecordingWoker&&(this._wasmRecordingWoker.removeAllListeners&&this._wasmRecordingWoker.removeAllListeners(),this._wasmRecordingWoker.postMessage({cmd:v.l}),this._wasmRecordingWoker&&this._wasmRecordingWoker.terminate(),this._wasmRecordingWoker=null),this._emitter.removeAllListeners(),this._emitter=null,this._mediaCanvas&&this._mediaCanvas.parentNode.removeChild(this._mediaCanvas),this._mediaCanvas=null,this._mediaElement=null,this._webGLPlayer=null,this.snapshotTimer&&clearTimeout(this.snapshotTimer),this.loadingCompleteTimer&&clearTimeout(this.loadingCompleteTimer),this.snapshotTimer=null,this.loadingCompleteTimer=null,this._wasmAudioPlayer=null,this._wasmRecordingCb=null},t.on=function(e,t){this._emitter.addListener(e,t)},t.off=function(e,t){this._emitter.removeListener(e,t)},t.hasWorker=function(){return null!=this._worker},t.open=function(){this._worker?this._worker.postMessage({cmd:"start"}):(this._controller.setReceiveH265MediaFrame(this._onReceiveH265MediaFrame.bind(this)),this._controller.start())},t.close=function(){this._worker?this._worker.postMessage({cmd:"stop"}):this._controller.stop()},t.seek=function(e){this._worker?this._worker.postMessage({cmd:"seek",param:e}):this._controller.seek(e)},t.pause=function(){if(this._isH265){var e={cmd:v.x};this._wasmDecodeWoker&&void 0!==this._wasmDecodeWoker&&this._wasmDecodeWoker.postMessage(e)}else this._worker?this._worker.postMessage({cmd:"pause"}):this._controller.pause()},t.resume=function(){if(this._isH265){var e={cmd:v.A};this._wasmDecodeWoker&&void 0!==this._wasmDecodeWoker&&this._wasmDecodeWoker.postMessage(e)}else this._worker?this._worker.postMessage({cmd:"resume"}):this._controller.resume()},t._onInitSegment=function(e,t){var r=this;Promise.resolve().then((function(){r._emitter.emit(y.a.INIT_SEGMENT,e,t)}))},t._onMediaSegment=function(e,t){var r=this;Promise.resolve().then((function(){r._emitter.emit(y.a.MEDIA_SEGMENT,e,t)}))},t._onLoadingComplete=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(y.a.LOADING_COMPLETE)}))},t._onRecoveredEarlyEof=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(y.a.RECOVERED_EARLY_EOF)}))},t._onMediaInfo=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.a.MEDIA_INFO,e)}))},t._onMetaDataArrived=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.a.METADATA_ARRIVED,e)}))},t._onScriptDataArrived=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.a.SCRIPTDATA_ARRIVED,e)}))},t._onStatisticsInfo=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.a.STATISTICS_INFO,e)}))},t._onIOError=function(e,t){var r=this;Promise.resolve().then((function(){r._emitter.emit(y.a.IO_ERROR,e,t)}))},t._onDemuxError=function(e,t){var r=this;Promise.resolve().then((function(){r._emitter.emit(y.a.DEMUX_ERROR,e,t)}))},t._onRecommendSeekpoint=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.a.RECOMMEND_SEEKPOINT,e)}))},t._onRecommendSeekpoint=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(y.a.RECOMMEND_SEEKPOINT,e)}))},t._encodedH265=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(y.a.IS_ENCODED_H265,e._isH265)}))},t._onLoggingConfigChanged=function(e){this._worker&&this._worker.postMessage({cmd:"logging_config",param:e})},t._onWorkerMessage=function(e){var t=e.data,r=t.data;if("destroyed"===t.msg||this._workerDestroying)return this._workerDestroying=!1,this._worker.terminate(),void(this._worker=null);switch(t.msg){case y.a.INIT_SEGMENT:case y.a.MEDIA_SEGMENT:this._emitter.emit(t.msg,r.type,r.data);break;case y.a.LOADING_COMPLETE:case y.a.RECOVERED_EARLY_EOF:this._emitter.emit(t.msg);break;case y.a.MEDIA_INFO:Object.setPrototypeOf(r,b.a.prototype),this._emitter.emit(t.msg,r);break;case y.a.METADATA_ARRIVED:case y.a.SCRIPTDATA_ARRIVED:case y.a.STATISTICS_INFO:this._emitter.emit(t.msg,r);break;case y.a.IO_ERROR:case y.a.DEMUX_ERROR:this._emitter.emit(t.msg,r.type,r.info);break;case y.a.RECOMMEND_SEEKPOINT:this._emitter.emit(t.msg,r);break;case"logcat_callback":l.a.emitter.emit("log",r.type,r.logcat)}},t._onReceiveSEIData=function(e){this._emitter.emit(y.a.SEI_DATA,e)},t._onAudioError=function(){this._emitter.emit(y.a.AUDIO_ERROR)},t._creatCanvas=function(){var e=this;this._mediaElement.parentNode.style.position="relative";var t=document.createElement("canvas");t.style="width:100%;height:100%;position:absolute;top:0px;left:0px;display:none",this._mediaCanvas=t,this._mediaElement.parentNode.appendChild(this._mediaCanvas),this._mediaCanvas.ondblclick=function(){return e._emitter.emit(y.a.ON_DBL_CLICK)}},t._onReceiveH265MediaFrame=function(){var e,t=(e=M().mark((function e(t,r,i,n,a,o,s,u,d,h,l,f){var c,p,m,g;return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._isH265||(this._isH265=!0,this._encodedH265(),this._creatCanvas()),!(n<1)||r||1!==s){e.next=3;break}return e.abrupt("return");case 3:if(2===i&&(this._wasmAudioSamplerate=d||0,this._wasmAudioChannelNum=h),null!==this._wasmDecodeWoker){e.next=7;break}return e.next=7,this._createWasmDecodeWorker();case 7:if(!this._wasmDecodeWoker){e.next=15;break}if(c=new Uint8Array(o),p={cmd:v.q,mediaType:i,codecId:n,frameType:a,samplerate:d,channelNum:h,bitPerSample:l,playTimeSec:u,dat:c,sei:f},this._wasmDecodeWoker.postMessage(p,[p.dat.buffer]),this._videoRecordiInitFlag){e.next=13;break}return e.abrupt("return");case 13:1==a&&(this._videoRecordFindKeyframe=!1),this._wasmVideoRecordWorker&&!this._videoRecordFindKeyframe&&(m=new Uint8Array(o),g={cmd:v.q,mediaType:"video",type:1==a,dat:m,pts:u},1===i?(g.mediaType="video",g.codecId="0xAE"):2===i&&(g.mediaType="audio"),this._wasmVideoRecordWorker.postMessage(g,[g.dat.buffer]));case 15:case"end":return e.stop()}}),e,this)})),function(){var t=this,r=arguments;return new Promise((function(i,n){var a=e.apply(t,r);function o(e){T(a,i,n,o,s,"next",e)}function s(e){T(a,i,n,o,s,"throw",e)}o(void 0)}))});return function(e,r,i,n,a,o,s,u,d,h,l,f){return t.apply(this,arguments)}}(),t._createWasmDecodeWorker=function(){if("undefined"!=typeof Worker)try{"none"===this._mediaCanvas.style.display&&(this._mediaCanvas.style.display="block"),this._wasmDecodeWoker=m()(229);var e=v.g(),t=window.localStorage.getItem("electron_config");if(e.startsWith("app://./"))if(t)e=JSON.parse(t).baseURL+"/";else e="http://demo.easycvr.com:4443/";var r={url:e,isFlv:this._isFlv,cmd:v.w};this._wasmDecodeWoker.postMessage(r),this._wasmDecodeWoker.addEventListener("message",this._onWasmWorkerMessage.bind(this)),this._wasmDecodeWoker.onerror=function(e){}}catch(e){this._wasmDecodeWoker=null}else this._wasmDecodeWoker=null;this._wasmDecodeWoker&&null==this._webGLPlayer&&(this._webGLPlayer=new A(this._mediaCanvas),this._webGLPlayer&&this._webGLPlayer.initGL({preserveDrawingBuffer:!1}))},t._onWasmWorkerMessage=function(e){var t=e.data;switch(t.cmd){case v.o:case v.l:break;case v.n:this._wasmMuted||this._openWasmAudio();break;case v.q:if(t.workerId===v.a)if(1===t.mediaType){if(this._mediaCanvas&&(this._mediaCanvas.width=t.width),this._mediaCanvas&&(this._mediaCanvas.height=t.height),t.playTimeSec>0){var r=Math.floor((t.playTimeSec+1e3)/1e3);this._currentPlayTime!==r&&(this._initDuration>0&&(this._currentPlayTime+=r-this._initDuration),this._initDuration!==r&&(this._initDuration=r,this._emitter&&this._emitter.emit(w.UPDATE_PLAY_INFO)))}this._webGLPlayer&&this._webGLPlayer.renderVideoFrame(t.dat,t.width,t.height,t.sei)}else 2===t.mediaType&&(null===this._wasmAudioPlayer?this._creatWasmAudioPlayer(t.fmt,t.samplerate>=16e3?2:t.ch,t.samplerate):(this._wasmAudioFmt=t.fmt,this._wasmAudioSamplerate=t.samplerate,this._wasmAudioChannelNum=t.ch,44100==this._wasmAudioSamplerate&&(this._wasmAudioFmt=1)),!this._wasmMuted&&this._wasmAudioPlayer&&this._wasmInitAudioPlayer&&this._wasmAudioPlayer.play(t.dat));break;case v.m:break;case v.w:this._videoRecordiInitFlag=!0,this._videoRecordFindKeyframe=!0;break;case v.p:this._videoRecordiInitFlag=!1;var i=document.createElement("a");i.style.display="none",i.href=t.dat,i.download=this._videoRecordFileName,document.body.appendChild(i),i.click(),window.URL.revokeObjectURL(i.href),document.body.removeChild(i),this._videoRecordFindKeyframe=!1,this._wasmVideoRecordWorker.terminate(),this._wasmVideoRecordWorker=null,this._wasmRecordingCb(),this._wasmRecordingCb=null}},t._creatWasmAudioPlayer=function(e,t,r){if(null===this._wasmAudioPlayer){1;var i="16bitInt";i="16bitInt",this._wasmAudioPlayer=new S,this._wasmAudioPlayer.init({encoding:i,channels:t,sampleRate:r,flushingTime:1e3}),this._wasmInitAudioPlayer=!0}},t._getCurrentPlayTime=function(){return this._currentPlayTime},t._getTotalDuration=function(){if(this._controller)return this._controller._getHLSTotalDuration()},t._seekToSecs=function(e,t){var r={cmd:v.B,type:t,time:e};this._wasmDecodeWoker&&this._wasmDecodeWoker.postMessage(r),this._controller._seekToSecs(e,t)},t.saveLocalSnapshot=function(e){var t=this,r=this._mediaCanvas.toDataURL("image/jpg",1);if(r.length<786432)return this.snapshotTimer=setTimeout((function(){return t.saveLocalSnapshot(e)}),40);this.snapshotTimer&&clearTimeout(this.snapshotTimer),this.snapshotTimer=null;var i=document.createElement("a");i.download=(e||"easy-player")+"-"+(new Date).getTime(),i.href=r,document.body.appendChild(i),i.click(),i.remove()},t.saveImageDateURL=function(){return this._mediaCanvas.toDataURL("image/jpg",1)},t.videoRecording=function(e,t,r,i){if(i&&(this._wasmRecordingCb=i),this._wasmDecodeWoker)if(1===r){if(this._videoRecordFileName=e,this._videoRecordingCB=i,null===this._wasmVideoRecordWorker){this._videoRecordFindKeyframe=!0;try{this._wasmVideoRecordWorker=m()(67),this.onwmsg=this._onWasmWorkerMessage.bind(this);var n={cmd:v.w,url:v.g(),filesize:t,audioSamplerate:this._wasmAudioSamplerate,channelCount:this._wasmAudioChannelNum};this._wasmVideoRecordWorker.postMessage(n),this._wasmVideoRecordWorker.addEventListener("message",this.onwmsg)}catch(e){this._wasmVideoRecordWorker&&this._wasmVideoRecordWorker.terminate(),this._wasmVideoRecordWorker=null}}}else this._videoRecordiInitFlag=!1,this._wasmVideoRecordWorker&&(this._wasmVideoRecordWorker.postMessage({cmd:v.C}),this._videoRecordFindKeyframe=!0);else{if(!this._controller)return;this._controller.videoRecording(e,t,r,i)}},t._openWasmAudio=function(){this._wasmDecodeWoker&&(this._wasmDecodeWoker.postMessage({cmd:v.v}),this._wasmMuted=!1,null===this._wasmAudioPlayer&&(this._wasmAudioSamplerate>0?(console.log("_openWasmAudio...."),this._creatWasmAudioPlayer(this._wasmAudioFmt,this._wasmAudioSamplerate>=16e3?2:this._wasmAudioChannelNum,this._wasmAudioSamplerate)):console.log("采样率无效")))},t._closeWasmAudio=function(){this._wasmDecodeWoker&&this._wasmDecodeWoker.postMessage({cmd:v.k}),this._wasmAudioPlayer&&this._wasmInitAudioPlayer&&this._wasmAudioPlayer.clearAudioBuffer(),this._wasmMuted=!1},e}(),k=r(16),I=r(4),O=function(){function e(e){this.TAG="MSEController",this._config=e,this._emitter=new h.a,this._config.isLive&&null==this._config.autoCleanupSourceBuffer&&(this._config.autoCleanupSourceBuffer=!0),this.e={onSourceOpen:this._onSourceOpen.bind(this),onSourceEnded:this._onSourceEnded.bind(this),onSourceClose:this._onSourceClose.bind(this),onSourceBufferError:this._onSourceBufferError.bind(this),onSourceBufferUpdateEnd:this._onSourceBufferUpdateEnd.bind(this)},this._mediaSource=null,this._mediaSourceObjectURL=null,this._mediaElement=null,this._isBufferFull=!1,this._hasPendingEos=!1,this._requireSetMediaDuration=!1,this._pendingMediaDuration=0,this._pendingSourceBufferInit=[],this._mimeTypes={video:null,audio:null},this._sourceBuffers={video:null,audio:null},this._lastInitSegments={video:null,audio:null},this._pendingSegments={video:[],audio:[]},this._pendingRemoveRanges={video:[],audio:[]},this._idrList=new k.a,this._pause=!1,this._hlsSeekTime=0,this._lastPlayTime=0,this._currentPlayTime=0,this._audioError=!1}var t=e.prototype;return t.destroy=function(){(this._mediaElement||this._mediaSource)&&this.detachMediaElement(),this.e=null,this._emitter.removeAllListeners(),this._emitter=null},t.on=function(e,t){this._emitter.addListener(e,t)},t.off=function(e,t){this._emitter.removeListener(e,t)},t.attachMediaElement=function(e){var t=this;if(this._mediaSource)throw new I.a("MediaSource has been attached to an HTMLMediaElement!");var r=this._mediaSource=new window.MediaSource;r.addEventListener("sourceopen",this.e.onSourceOpen),r.addEventListener("sourceended",this.e.onSourceEnded),r.addEventListener("sourceclose",this.e.onSourceClose),this._mediaElement=e,this._mediaSourceObjectURL=window.URL.createObjectURL(this._mediaSource),this._mediaElement.src=this._mediaSourceObjectURL,e.addEventListener("timeupdate",(function(){var r=Math.floor(e.currentTime);t._hlsSeekTime>0&&(r=r-self._lastPlayTime+self._hlsSeekTime),t._currentPlayTime!==r&&(t._currentPlayTime=r,t._emitter&&t._emitter.emit(w.UPDATE_PLAY_INFO,{currentTime:t._currentPlayTime,duration:t._mediaElement.duration}))}),!1)},t.getCurrentPlayTime=function(){return this._currentPlayTime},t.getTotalDuration=function(){return this._mediaElement.duration},t.detachMediaElement=function(){if(this._mediaSource){var e=this._mediaSource;for(var t in this._sourceBuffers){var r=this._pendingSegments[t];r.splice(0,r.length),this._pendingSegments[t]=null,this._pendingRemoveRanges[t]=null,this._lastInitSegments[t]=null;var i=this._sourceBuffers[t];if(i){if("closed"!==e.readyState){try{e.removeSourceBuffer(i)}catch(e){l.a.e(this.TAG,e.message)}i.removeEventListener("error",this.e.onSourceBufferError),i.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd)}this._mimeTypes[t]=null,this._sourceBuffers[t]=null}}if("open"===e.readyState)try{e.endOfStream()}catch(e){l.a.e(this.TAG,e.message)}e.removeEventListener("sourceopen",this.e.onSourceOpen),e.removeEventListener("sourceended",this.e.onSourceEnded),e.removeEventListener("sourceclose",this.e.onSourceClose),this._pendingSourceBufferInit=[],this._isBufferFull=!1,this._idrList.clear(),this._mediaSource=null}this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement=null),this._mediaSourceObjectURL&&(window.URL.revokeObjectURL(this._mediaSourceObjectURL),this._mediaSourceObjectURL=null)},t.appendInitSegment=function(e,t){if(!this._mediaSource||"open"!==this._mediaSource.readyState)return this._pendingSourceBufferInit.push(e),void this._pendingSegments[e.type].push(e);var r=e,i=""+r.container;r.codec&&r.codec.length>0&&(i+=";codecs="+r.codec);var n=!1;if(this._lastInitSegments[r.type]=r,i!==this._mimeTypes[r.type]){if(this._mimeTypes[r.type])l.a.v(this.TAG,"Notice: "+r.type+" mimeType changed, origin: "+this._mimeTypes[r.type]+", target: "+i);else{n=!0;try{var a=this._sourceBuffers[r.type]=this._mediaSource.addSourceBuffer(i);a.addEventListener("error",this.e.onSourceBufferError),a.addEventListener("updateend",this.e.onSourceBufferUpdateEnd)}catch(e){return l.a.e(this.TAG,e.message),void this._emitter.emit(w.ERROR,{code:e.code,msg:e.message})}}this._mimeTypes[r.type]=i}t||this._pendingSegments[r.type].push(r),n||this._sourceBuffers[r.type]&&!this._sourceBuffers[r.type].updating&&this._doAppendSegments(),f.a.safari&&"audio/mpeg"===r.container&&r.mediaDuration>0&&(this._requireSetMediaDuration=!0,this._pendingMediaDuration=r.mediaDuration/1e3,this._updateMediaSourceDuration())},t.appendMediaSegment=function(e){if("audio"!==e.type||!this._audioError){var t=e;this._pendingSegments[t.type].push(t),this._config.autoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanupSourceBuffer();var r=this._sourceBuffers[t.type];!r||r.updating||this._hasPendingRemoveRanges()||this._doAppendSegments()}},t.seek=function(e){for(var t in this._sourceBuffers)if(this._sourceBuffers[t]){var r=this._sourceBuffers[t];if("open"===this._mediaSource.readyState)try{r.abort()}catch(e){l.a.e(this.TAG,e.message)}this._idrList.clear();var i=this._pendingSegments[t];if(i.splice(0,i.length),"closed"!==this._mediaSource.readyState){for(var n=0;n<r.buffered.length;n++){var a=r.buffered.start(n),o=r.buffered.end(n);this._pendingRemoveRanges[t].push({start:a,end:o})}if(r.updating||this._doRemoveRanges(),f.a.safari){var s=this._lastInitSegments[t];s&&(this._pendingSegments[t].push(s),r.updating||this._doAppendSegments())}}}},t.endOfStream=function(){var e=this._mediaSource,t=this._sourceBuffers;e&&"open"===e.readyState?t.video&&t.video.updating||t.audio&&t.audio.updating?this._hasPendingEos=!0:(this._hasPendingEos=!1,e.endOfStream()):e&&"closed"===e.readyState&&this._hasPendingSegments()&&(this._hasPendingEos=!0)},t.getNearestKeyframe=function(e){return this._idrList.getLastSyncPointBeforeDts(e)},t._needCleanupSourceBuffer=function(){if(!this._config.autoCleanupSourceBuffer)return!1;var e=this._mediaElement.currentTime;for(var t in this._sourceBuffers){var r=this._sourceBuffers[t];if(r){var i=r.buffered;if(i.length>=1&&e-i.start(0)>=this._config.autoCleanupMaxBackwardDuration)return!0}}return!1},t._doCleanupSourceBuffer=function(){var e=this._mediaElement.currentTime;for(var t in this._sourceBuffers){var r=this._sourceBuffers[t];if(r){for(var i=r.buffered,n=!1,a=0;a<i.length;a++){var o=i.start(a),s=i.end(a);if(o<=e&&e<s+3){if(e-o>=this._config.autoCleanupMaxBackwardDuration){n=!0;var u=e-this._config.autoCleanupMinBackwardDuration;this._pendingRemoveRanges[t].push({start:o,end:u})}}else s<e&&(n=!0,this._pendingRemoveRanges[t].push({start:o,end:s}))}n&&!r.updating&&this._doRemoveRanges()}}},t._updateMediaSourceDuration=function(){var e=this._sourceBuffers;if(0!==this._mediaElement.readyState&&"open"===this._mediaSource.readyState&&!(e.video&&e.video.updating||e.audio&&e.audio.updating)){var t=this._mediaSource.duration,r=this._pendingMediaDuration;r>0&&(isNaN(t)||r>t)&&(l.a.v(this.TAG,"Update MediaSource duration from "+t+" to "+r),this._mediaSource.duration=r),this._requireSetMediaDuration=!1,this._pendingMediaDuration=0}},t._doRemoveRanges=function(){for(var e in this._pendingRemoveRanges)if(this._sourceBuffers[e]&&!this._sourceBuffers[e].updating)for(var t=this._sourceBuffers[e],r=this._pendingRemoveRanges[e];r.length&&!t.updating;){var i=r.shift();t.remove(i.start,i.end)}},t._removerAudioSourceBuffer=function(){this._audioError=!0;var e=this._sourceBuffers.audio;e&&(this._mediaSource.removeSourceBuffer(e),e.removeEventListener("error",this.e.onSourceBufferError),e.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd),this._sourceBuffers.audio=null)},t._doAppendSegments=function(){var e=this._pendingSegments;for(var t in v.d()&&!this._pause&&"flv"===this._config.streamType&&this.AdjustPlayTimeToEnd(),e)if(this._sourceBuffers[t]&&!this._sourceBuffers[t].updating&&e[t].length>0){var r=e[t].shift();if(r.timestampOffset){var i=this._sourceBuffers[t].timestampOffset,n=r.timestampOffset/1e3;Math.abs(i-n)>.1&&(l.a.v(this.TAG,"Update MPEG audio timestampOffset from "+i+" to "+n),this._sourceBuffers[t].timestampOffset=n),delete r.timestampOffset}if(!r.data||0===r.data.byteLength)continue;try{this._sourceBuffers[t].appendBuffer(r.data),this._isBufferFull=!1,"video"===t&&r.hasOwnProperty("info")&&this._idrList.appendArray(r.info.syncPoints)}catch(e){if(this._pendingSegments[t].unshift(r),22===e.code)this._isBufferFull||this._emitter.emit(w.BUFFER_FULL),this._isBufferFull=!0;else try{this._emitter.emit(w.ERROR,{code:11,msg:e.message})}catch(e){}}}},t._onSourceOpen=function(){if(l.a.v(this.TAG,"MediaSource onSourceOpen"),this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._pendingSourceBufferInit.length>0)for(var e=this._pendingSourceBufferInit;e.length;){var t=e.shift();this.appendInitSegment(t,!0)}this._hasPendingSegments()&&this._doAppendSegments(),this._emitter.emit(w.SOURCE_OPEN)},t._onSourceEnded=function(){this._emitter.emit(w.SOURCE_ENDED),l.a.v(this.TAG,"MediaSource onSourceEnded")},t._onSourceClose=function(){l.a.v(this.TAG,"MediaSource onSourceClose"),this._mediaSource&&null!=this.e&&(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._mediaSource.removeEventListener("sourceended",this.e.onSourceEnded),this._mediaSource.removeEventListener("sourceclose",this.e.onSourceClose))},t._hasPendingSegments=function(){var e=this._pendingSegments;return e.video.length>0||e.audio.length>0},t._hasPendingRemoveRanges=function(){var e=this._pendingRemoveRanges;return e.video.length>0||e.audio.length>0},t._onSourceBufferUpdateEnd=function(){this._requireSetMediaDuration?this._updateMediaSourceDuration():this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()?this._doAppendSegments():this._hasPendingEos&&this.endOfStream(),this._emitter.emit(w.UPDATE_END)},t._onSourceBufferError=function(e){l.a.e(this.TAG,"SourceBuffer Error: "+e)},t.pause=function(){this._pause=!0},t.resume=function(){this._pause=!1},t.AdjustPlayTimeToEnd=function(){if(null!=this._emitter&&null!=this._emitter){var e=this._mediaElement.currentTime;for(var t in this._sourceBuffers)if("video"===t){var r=this._sourceBuffers[t];if(r&&!r.updating){var i=r.buffered;if(i.length>0){var n=i.end(i.length-1);n-e>2?this._mediaElement.currentTime=n:this._lastSpeed>0&&(this._lastSpeed=0,this._emitter.emit(w.CHANGE_SPEED,{speed:0}))}}}}},e}(),D=r(12),x={NETWORK_ERROR:"NetworkError",MEDIA_ERROR:"MediaError",OTHER_ERROR:"OtherError"},C={NETWORK_EXCEPTION:u.b.EXCEPTION,NETWORK_STATUS_CODE_INVALID:u.b.HTTP_STATUS_CODE_INVALID,NETWORK_TIMEOUT:u.b.CONNECTING_TIMEOUT,NETWORK_UNRECOVERABLE_EARLY_EOF:u.b.UNRECOVERABLE_EARLY_EOF,MEDIA_MSE_ERROR:"MediaMSEError",MEDIA_FORMAT_ERROR:D.a.FORMAT_ERROR,MEDIA_FORMAT_UNSUPPORTED:D.a.FORMAT_UNSUPPORTED,MEDIA_CODEC_UNSUPPORTED:D.a.CODEC_UNSUPPORTED};function P(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var N=function(){function e(e,t){this.TAG="FlvPlayer",this._type="FlvPlayer",this._emitter=new h.a;var r=e.url,i=e.muted,n=e.recordMaxFileSize;r.includes(".flv")&&(this._type="flv"),r.includes(".m3u8")&&(this._type="hls"),this._config=o(),s.supportMSEH264Playback()?t.decodeType=t.decodeType?t.decodeType:"auto":t.decodeType="soft","object"==typeof t&&(this._config=Object.assign(this._config,t)),!0===e.isLive&&(this._config.isLive=!0),this._recordFileName=t.recordFileName,this.e={onvLoadedMetadata:this._onvLoadedMetadata.bind(this),onvSeeking:this._onvSeeking.bind(this),onvCanPlay:this._onvCanPlay.bind(this),onvStalled:this._onvStalled.bind(this),onvProgress:this._onvProgress.bind(this)},self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now,this._pendingSeekTime=null,this._requestSetTime=!1,this._seekpointRecord=null,this._progressChecker=null,this._mediaDataSource=Object.assign(e,{type:this.type}),this._mediaElement=null,this._msectl=null,this._transmuxer=null,this._mseSourceOpened=!1,this._hasPendingLoad=!1,this._receivedCanPlay=!1,this._mediaInfo=null,this._statisticsInfo=null;var a=f.a.chrome&&(f.a.version.major<50||50===f.a.version.major&&f.a.version.build<2661);this._alwaysSeekKeyframe=!!(a||f.a.msedge||f.a.msie),this._alwaysSeekKeyframe&&(this._config.accurateSeek=!1),this.videoToolsTimer=null,this.playing=!0,this.mute=!0,this.kbpsEle=null,this.audioBtnEle=null,this.playBtnEle=null,this.luXiangEle=null,this.timeTrackEle=null,this.isFullScreen=!1,this.progressBarEle=null,this.progressBarLabelEle=null,this._webRecording={enable:0},this._recording=!1,this._fullScreenBtnEle=null,this._muted=i,this._recordHlsOffset=0,this._recordMaxFileSize=n?1024*n*1024:209715200,this._recordHlsArrayBuffer=[],this._isEncodedH265=!s.supportMSEH264Playback(),this._mobile=this._isMobile(),this.isiOS=!!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),this.switchPlay=this._switchPlay,this.switchAudio=this._switchAudio,this.recordSwitch=this._recordSwitch,this.saveLocalSnapshot=this._saveLocalSnapshot,this.saveImageDateURL=this._saveImageDateURL}var t,r,i,n=e.prototype;return n.destroy=function(){null!=this._progressChecker&&(window.clearInterval(this._progressChecker),this._progressChecker=null),this._transmuxer&&this.unload(),this._mediaElement&&this.detachMediaElement(),this.e=null,this._mediaDataSource=null,this._emitter.removeAllListeners(),this._emitter=null,this.videoToolsTimer&&clearTimeout(this.videoToolsTimer),this.kbpsEle=null,this.timeTrackEle=null,this.audioBtnEle=null,this.playBtnEle=null,this.progressBarEle=null,this.videoToolsTimer=null,this.progressBarLabelEle=null,this._fullScreenBtnEle=null;var e=document.getElementsByClassName("video-tools")[0];e&&e.parentNode&&e.parentNode.removeChild(e),this._recordHlsOffset=0,this._recordHlsArrayBuffer=[],this._isEncodedH265=!1,this.switchAudio=null,this.saveLocalSnapshot=null,this.recordSwitch=null},n.on=function(e,t){var r=this;e===c.MEDIA_INFO?null!=this._mediaInfo&&Promise.resolve().then((function(){r._emitter.emit(c.MEDIA_INFO,r.mediaInfo)})):e===c.STATISTICS_INFO&&null!=this._statisticsInfo&&Promise.resolve().then((function(){r._emitter.emit(c.STATISTICS_INFO,r.statisticsInfo)})),this._emitter.addListener(e,t)},n.off=function(e,t){this._emitter.removeListener(e,t)},n.attachMediaElement=function(e){var t=this;if(this._mediaElement=e,s.supportMSEH264Playback()){if(e.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),e.addEventListener("seeking",this.e.onvSeeking),e.addEventListener("canplay",this.e.onvCanPlay),e.addEventListener("stalled",this.e.onvStalled),e.addEventListener("progress",this.e.onvProgress),this._msectl=new O(this._config),this._msectl.on(w.UPDATE_PLAY_INFO,this._onmseUpdatePlayInfo.bind(this)),this._msectl.on(w.UPDATE_END,this._onmseUpdateEnd.bind(this)),this._msectl.on(w.BUFFER_FULL,this._onmseBufferFull.bind(this)),this._msectl.on(w.SOURCE_ENDED,(function(){1===t._webRecording.enable&&(t._webRecording.enable=0,t.startWebVideoRecord(0),setTimeout((function(){return t._emitter.emit(w.SOURCE_ENDED)}),1e3))})),this._msectl.on(w.SOURCE_OPEN,(function(){t._mseSourceOpened=!0,t._hasPendingLoad&&(t._hasPendingLoad=!1,t.load())})),this._msectl.on(w.ERROR,(function(e){t._emitter.emit(c.ERROR,x.MEDIA_ERROR,C.MEDIA_MSE_ERROR,e)})),this._msectl.attachMediaElement(e),null!=this._pendingSeekTime)try{e.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(e){}this._mediaElement.muted=this._muted}else console.log("ios 设备")},n.detachMediaElement=function(){this._mediaElement&&(this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement.removeEventListener("seeking",this.e.onvSeeking),this._mediaElement.removeEventListener("canplay",this.e.onvCanPlay),this._mediaElement.removeEventListener("stalled",this.e.onvStalled),this._mediaElement.removeEventListener("progress",this.e.onvProgress),this._mediaElement=null),this._msectl&&(this._msectl.detachMediaElement(),this._msectl.destroy(),this._msectl=null)},n.load=function(){var e=this;if(s.supportMSEH264Playback()){if(!this._mediaElement)throw new I.a("HTMLMediaElement must be attached before load()!");if(this._transmuxer)throw new I.a("FlvPlayer.load() has been called, please call unload() first!");if(this._hasPendingLoad)return;if(this._config.deferLoadAfterSourceOpen&&!1===this._mseSourceOpened)return void(this._hasPendingLoad=!0);this._mediaElement.readyState>0&&(this._requestSetTime=!0,this._mediaElement.currentTime=0)}this._transmuxer=new R(this._mediaDataSource,this._config,this._mediaElement),this._transmuxer.on(y.a.INIT_SEGMENT,(function(t,r){e._msectl.appendInitSegment(r)})),this._transmuxer.on(y.a.ON_DBL_CLICK,(function(){return e._requestFullScreen()})),this._transmuxer.on(y.a.MEDIA_SEGMENT,(function(t,r){if(e._msectl.appendMediaSegment(r),e._config.lazyLoad&&!e._config.isLive){var i=e._mediaElement.currentTime;r.info.endDts>=1e3*(i+e._config.lazyLoadMaxDuration)&&null==e._progressChecker&&(l.a.v(e.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),e._suspendTransmuxer())}})),this._transmuxer.on(y.a.IS_ENCODED_H265,(function(t){e._isEncodedH265=t,setTimeout((function(){return e._emitter.emit(y.a.IS_ENCODED_H265)}),1500),e._render265VideoTools()})),this._transmuxer.on(y.a.LOADING_COMPLETE,(function(){e._msectl.endOfStream(),e._emitter.emit(c.LOADING_COMPLETE)})),this._transmuxer.on(y.a.RECOVERED_EARLY_EOF,(function(){e._emitter.emit(c.RECOVERED_EARLY_EOF)})),this._transmuxer.on(y.a.IO_ERROR,(function(t,r){e._emitter.emit(c.ERROR,x.NETWORK_ERROR,t,r)})),this._transmuxer.on(y.a.DEMUX_ERROR,(function(t,r){e._emitter.emit(c.ERROR,x.MEDIA_ERROR,t,{code:-1,msg:r})})),this._transmuxer.on(y.a.MEDIA_INFO,(function(t){e._mediaInfo=t,e._emitter.emit(c.MEDIA_INFO,Object.assign({},t))})),this._transmuxer.on(y.a.METADATA_ARRIVED,(function(t){e._emitter.emit(c.METADATA_ARRIVED,t)})),this._transmuxer.on(y.a.SCRIPTDATA_ARRIVED,(function(t){e._emitter.emit(c.SCRIPTDATA_ARRIVED,t)})),this._transmuxer.on(y.a.STATISTICS_INFO,(function(t){e._statisticsInfo=e._fillStatisticsInfo(t),e._emitter.emit(c.STATISTICS_INFO,Object.assign({},e._statisticsInfo))})),this._transmuxer.on(y.a.RECOMMEND_SEEKPOINT,(function(t){e._mediaElement&&!e._config.accurateSeek&&(e._requestSetTime=!0,e._mediaElement.currentTime=t/1e3)})),this._transmuxer.on(w.SOURCE_ENDED,(function(){return e._emitter.emit(w.SOURCE_ENDED)})),this._transmuxer.on(w.UPDATE_PLAY_INFO,this._onmseUpdatePlayInfo.bind(this)),this._transmuxer.on(y.a.AUDIO_ERROR,this._onAudioError.bind(this)),this._transmuxer.on("loaderChunkArrival",(function(t){if(null!==t){var r=e._mediaDataSource.url;if(r&&r.includes(".m3u8"))if(e._recording){if(0===e._recordHlsArrayBuffer.length&&(e._recordHlsArrayBuffer=new Uint8Array(e._recordMaxFileSize)),e._recordHlsOffset+t.byteLength>e._recordMaxFileSize)return e.downRecord(),e._recording=!1,void(e.luXiangEle.style.color=e._recording?"red":"white");e._recordHlsArrayBuffer.set(new Int8Array(t),e._recordHlsOffset),e._recordHlsOffset+=t.byteLength}else{if(0===e._recordHlsArrayBuffer.length||0===e._recordHlsArrayBuffer.byteLength)return;e.downRecord()}}})),this._transmuxer.on("hls_error",(function(){1===e._webRecording.enable&&(e._webRecording.enable=0,e.downRecord()),setTimeout((function(){return e._emitter.emit(y.a.SOURCE_ENDED)}),1500)})),this._transmuxer.open(),this._muted||console.log("this._transmuxer",this._transmuxer)},n.downRecord=function(){var e=this._recordFileName?this._recordFileName+"-"+this.dateFormat(new Date,"YYYYMMDDhhmmss"):""+this.dateFormat(new Date,"YYYYMMDDhhmmss"),t=this._recordHlsArrayBuffer.slice(0,this._recordHlsOffset),r=document.createElement("a");r.style.display="none",r.href=URL.createObjectURL(new Blob([t],{type:"video/mp4"})),r.download=e+".mp4",document.body.appendChild(r),r.click(),window.URL.revokeObjectURL(r.href),document.body.removeChild(r),this._recordHlsOffset=0,this._recordHlsArrayBuffer=[]},n.dateFormat=function(e,t){var r,i={"Y+":e.getFullYear().toString(),"M+":(e.getMonth()+1).toString(),"D+":e.getDate().toString(),"h+":e.getHours().toString(),"m+":e.getMinutes().toString(),"s+":e.getSeconds().toString()};for(var n in i)(r=new RegExp("("+n+")").exec(t))&&(t=t.replace(r[1],1===r[1].length?i[n]:i[n].padStart(r[1].length,"0")));return t},n.unload=function(){this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.seek(0),this._transmuxer&&(this._transmuxer.close(),this._transmuxer.destroy(),this._transmuxer=null)},n.play=function(){return this._mediaElement.play()},n.resume=function(){this._mediaElement&&this._mediaElement.play(),this._isEncodedH265&&this._transmuxer&&this._transmuxer.resume()},n.pause=function(){var e=this._mediaElement;e.offsetWidth,e.offsetHeight;this._mediaElement&&this._mediaElement.pause(),this._isEncodedH265&&this._transmuxer&&this._transmuxer.pause()},n._fillStatisticsInfo=function(e){if(e.playerType=this._type,!(this._mediaElement instanceof HTMLVideoElement))return e;var t=!0,r=0,i=0;if(this._mediaElement.getVideoPlaybackQuality){var n=this._mediaElement.getVideoPlaybackQuality();r=n.totalVideoFrames,i=n.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(r=this._mediaElement.webkitDecodedFrameCount,i=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=r,e.droppedFrames=i),e},n._onmseUpdateEnd=function(){if(this._config.lazyLoad&&!this._config.isLive){for(var e=this._mediaElement.buffered,t=this._mediaElement.currentTime,r=0,i=0;i<e.length;i++){var n=e.start(i),a=e.end(i);if(n<=t&&t<a){n,r=a;break}}r>=t+this._config.lazyLoadMaxDuration&&null==this._progressChecker&&(l.a.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}},n._onmseUpdatePlayInfo=function(){if(this._transmuxer){var e=0,t=0;this._isEncodedH265&&this._mediaDataSource.url.includes(".m3u8")&&((e=this._transmuxer._getCurrentPlayTime())<0&&(e=0),t=this._transmuxer._getTotalDuration(),this._updateDuration({currentTime:e,duration:t}));var r=this._transmuxer._controller._ioctl.currentSpeed,i=this._transmuxer._controller._ioctl.averageKBps;this._updateKbps({currentSpeed:r,averageKBps:i})}},n._onmseBufferFull=function(){l.a.v(this.TAG,"MSE SourceBuffer is full, suspend transmuxing task"),null==this._progressChecker&&this._suspendTransmuxer()},n._suspendTransmuxer=function(){this._transmuxer&&(this._transmuxer.pause(),null==this._progressChecker&&(this._progressChecker=window.setInterval(this._checkProgressAndResume.bind(this),1e3)))},n._checkProgressAndResume=function(){for(var e=this._mediaElement.currentTime,t=this._mediaElement.buffered,r=!1,i=0;i<t.length;i++){var n=t.start(i),a=t.end(i);if(e>=n&&e<a){e>=a-this._config.lazyLoadRecoverDuration&&(r=!0);break}}r&&(window.clearInterval(this._progressChecker),this._progressChecker=null,r&&(l.a.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))},n._isTimepointBuffered=function(e){for(var t=this._mediaElement.buffered,r=0;r<t.length;r++){var i=t.start(r),n=t.end(r);if(e>=i&&e<n)return!0}return!1},n._internalSeek=function(e){var t=this._isTimepointBuffered(e),r=!1,i=0;if(e<1&&this._mediaElement.buffered.length>0){var n=this._mediaElement.buffered.start(0);(n<1&&e<n||f.a.safari)&&(r=!0,i=f.a.safari?.1:n)}if(r)this._requestSetTime=!0,this._mediaElement.currentTime=i;else if(t){if(this._alwaysSeekKeyframe){var a=this._msectl.getNearestKeyframe(Math.floor(1e3*e));this._requestSetTime=!0,this._mediaElement.currentTime=null!=a?a.dts/1e3:e}else this._requestSetTime=!0,this._mediaElement.currentTime=e;null!=this._progressChecker&&this._checkProgressAndResume()}else null!=this._progressChecker&&(window.clearInterval(this._progressChecker),this._progressChecker=null),this._msectl.seek(e),this._transmuxer.seek(Math.floor(1e3*e)),this._config.accurateSeek&&(this._requestSetTime=!0,this._mediaElement.currentTime=e)},n._checkAndApplyUnbufferedSeekpoint=function(){if(this._seekpointRecord)if(this._seekpointRecord.recordTime<=this._now()-100){var e=this._mediaElement.currentTime;this._seekpointRecord=null,this._isTimepointBuffered(e)||(null!=this._progressChecker&&(window.clearTimeout(this._progressChecker),this._progressChecker=null),this._msectl.seek(e),this._transmuxer.seek(Math.floor(1e3*e)),this._config.accurateSeek&&(this._requestSetTime=!0,this._mediaElement.currentTime=e))}else window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this),50)},n._checkAndResumeStuckPlayback=function(e){var t=this._mediaElement;if(e||!this._receivedCanPlay||t.readyState<2){var r=t.buffered;r.length>0&&t.currentTime<r.start(0)&&(l.a.w(this.TAG,"Playback seems stuck at "+t.currentTime+", seek to "+r.start(0)),this._requestSetTime=!0,this._mediaElement.currentTime=r.start(0),this._mediaElement.removeEventListener("progress",this.e.onvProgress))}else this._mediaElement.removeEventListener("progress",this.e.onvProgress)},n._onvLoadedMetadata=function(e){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null)},n._onvSeeking=function(e){var t=this._mediaElement.currentTime,r=this._mediaElement.buffered;if(this._requestSetTime)this._requestSetTime=!1;else{if(t<1&&r.length>0){var i=r.start(0);if(i<1&&t<i||f.a.safari)return this._requestSetTime=!0,void(this._mediaElement.currentTime=f.a.safari?.1:i)}if(this._isTimepointBuffered(t)){if(this._alwaysSeekKeyframe){var n=this._msectl.getNearestKeyframe(Math.floor(1e3*t));null!=n&&(this._requestSetTime=!0,this._mediaElement.currentTime=n.dts/1e3)}null!=this._progressChecker&&this._checkProgressAndResume()}else this._seekpointRecord={seekPoint:t,recordTime:this._now()},window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this),50)}},n._onvCanPlay=function(e){this._receivedCanPlay=!0,this._mediaElement.removeEventListener("canplay",this.e.onvCanPlay)},n._onvStalled=function(e){this._checkAndResumeStuckPlayback(!0)},n._onvProgress=function(e){this._checkAndResumeStuckPlayback()},n.seek=function(e,t){if(this._isEncodedH265&&this._transmuxer&&this._mediaDataSource.url.includes(".m3u8")){var r=Math.floor(e/100*this._transmuxer._getTotalDuration());if(this._msectl&&this._msectl.getCurrentPlayTime()===r)return!0;this._transmuxer._seekToSecs(e,t)}},n._render265VideoTools=function(){var e=this,t=document.createElement("span");t.style="width:100%;height:30px;position:absolute;bottom:0;left:0;background-color:rgba(43, 51, 63, 0.7);;z-index: 10;opacity:0;display: flex;flex-direction: row;justify-content: space-between;",t.classList="video-tools",this.videoTools=t;var r=document.createElement("div");r.style="display: flex;flex-direction: row;",this.playBtnEle=document.createElement("span"),this.playBtnEle.style="font-size:14px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center",this.playBtnEle.classList="iconfont "+(this.playing?"icon-zanting":"icon-bofang"),this.audioBtnEle=document.createElement("span"),this.audioBtnEle.style="font-size:14px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center",this.audioBtnEle.classList="iconfont "+(this._muted?"icon-jingyin":"icon-shengyin1")+" icon-wasm-audio",this._mediaDataSource.url.includes(".m3u8")&&(this.progressBarEle=document.createElement("div"),this.progressBarEle.style="display:flex;flex:1;opacity: 0",this.timeTrackEle=document.createElement("input"),this.timeTrackEle.classList="timeTrack",this.timeTrackEle.id="timeTrack",this.timeTrackEle.type="range",this.timeTrackEle.style="width:100%;-webkit-appearance: none;height:3px;border-radius:3px;cursor:pointer;margin:auto;display:block;color: #FFF",this.timeTrackEle.value=0,this.timeTrackEle.oninput=function(){e.seekToPercent(e.timeTrackEle.value,1)},this.progressBarEle.appendChild(this.timeTrackEle),this.progressBarLabelEle=document.createElement("label"),this.progressBarLabelEle.style="color: #fff;padding-left: 10px;line-height:30px;font-size: 12px;min-width: 125px",this.progressBarLabelEle.innerHTML="00:00:00/00:00:00",this.progressBarEle.appendChild(this.progressBarLabelEle)),this.playBtnEle.onclick=function(){return e._switchPlay()},this.audioBtnEle.onclick=function(){return e._switchAudio()};var i=document.createElement("div");i.style="display: flex;flex-direction: row;",this.kbpsEle=document.createElement("div"),this.kbpsEle.style="font-size:12px;min-width:60px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center;padding-right: 10px;",this.luXiangEle=document.createElement("span"),this.luXiangEle.title="录像",this.luXiangEle.style="font-size:16px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center;",this.luXiangEle.classList="iconfont icon-luxiang2",this.luXiangEle.onclick=function(){return e._recordSwitch()};var n=document.createElement("span");n.title="快照",n.style="font-size:16px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center;",n.classList="iconfont icon-xiangji",n.onclick=function(){return e._saveLocalSnapshot()},this._fullScreenBtnEle=document.createElement("span"),this._fullScreenBtnEle.title="全屏",this._fullScreenBtnEle.style="font-size:14px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center",this._fullScreenBtnEle.classList="iconfont "+(this.isFullScreen?"icon-xiaoping":"icon-quanping1"),this._fullScreenBtnEle.onclick=function(){return e._requestFullScreen()},this._mediaElement.parentNode.onmousemove=function(){e.videoToolsTimer&&clearTimeout(e.videoToolsTimer),e.videoTools.style.opacity="1",e.videoToolsTimer=setTimeout((function(){e.videoTools.style.opacity="0"}),1e4)},this._mediaElement.parentNode.onmouseout=function(){e.videoTools.style.opacity="0",e.videoToolsTimer&&clearTimeout(e.videoToolsTimer),e.videoToolsTimer=null},r.appendChild(this.playBtnEle),r.appendChild(this.audioBtnEle),i.appendChild(this.kbpsEle),this.isiOS||(i.appendChild(this.luXiangEle),i.appendChild(n)),i.appendChild(this._fullScreenBtnEle),t.appendChild(r),this.progressBarEle&&!this._mobile&&t.appendChild(this.progressBarEle),t.appendChild(i),this._mediaElement.parentNode.appendChild(t),window.onresize=function(){!document.fullscreenElement&&e.isFullScreen&&(e.isFullScreen=!1,e._fullScreenBtnEle.classList="iconfont "+(e.isFullScreen?"icon-xiaoping":"icon-quanping1"))}},n._recordingUIChange=function(){this._recording=!this._recording,this.luXiangEle.title=this._recording?"关闭录像":"录像",this.luXiangEle.style.color=this._recording?"red":"white"},n._requestFullScreen=function(){this.isFullScreen=!this.isFullScreen,this._fullScreenBtnEle.title=this.isFullScreen?"退出全屏":"全屏",this._fullScreenBtnEle.classList="iconfont "+(this.isFullScreen?"icon-xiaoping":"icon-quanping1"),this._emitter.emit("changeFullScreen",this.isFullScreen)},n._updateDuration=function(e){var t=e.currentTime,r=e.duration;if(!r)return this.progressBarEle.style.opacity=0;"0"===this.progressBarEle.style.opacity&&(this.progressBarEle.style.opacity=1);var i=parseInt((t+1)/r*100);i!==parseInt(this.timeTrackEle.value)&&(this.timeTrackEle.value=i),this.progressBarLabelEle&&(t<1?t=0:t>r&&(t=r),this.progressBarLabelEle.innerHTML=this._formatTime(t)+" / "+this._formatTime(r)),this._emitter.emit("timeupdate",t)},n._updateKbps=function(e){e.currentSpeed;var t=e.averageKBps;this.kbpsEle&&(this.kbpsEle.innerText=8*t>=1024?(8*t/1024).toFixed(2)+" Mb/s":parseInt(8*t+"")+" Kb/s")},n._saveLocalSnapshot=function(){this._transmuxer.saveLocalSnapshot(this._recordFileName)},n._saveImageDateURL=function(){return this._transmuxer.saveImageDateURL()},n._formatTime=function(e){return(Math.floor(e/3600)<10?"0"+Math.floor(e/3600):Math.floor(e/3600))+":"+(Math.floor(e/60%60)<10?"0"+Math.floor(e/60%60):Math.floor(e/60%60))+":"+(Math.floor(e%60)<10?"0"+Math.floor(e%60):Math.floor(e%60))},n._onAudioError=function(){this._msectl&&this._msectl._removerAudioSourceBuffer()},n.getClass=function(e){return 0===e?"blue":1===e?"black":2===e?"white":3===e?"green":4===e?"red":5===e?"yellow":"red"},n.seekToPercent=function(e){this.seek(e,1)},n.startWebVideoRecord=function(e,t,r,i){var n;this._transmuxer&&(n=t?t.includes(".mp4")?t.replace(".mp4","")+"-"+this.dateFormat(new Date,"YYYYMMDDhhmmss")+".mp4":t+"-"+this.dateFormat(new Date,"YYYYMMDDhhmmss")+".mp4":this.dateFormat(new Date,"YYYYMMDDhhmmss")+".mp4",this._mediaDataSource.url.includes(".flv")&&this._transmuxer.videoRecording(n,r||this._recordMaxFileSize,e,i),this._webRecording.enable=e)},n._isMobile=function(){try{return document.createEvent("TouchEvent"),!0}catch(e){return!1}},n._recordSwitch=function(){var e=this;this._recordingUIChange(),this.startWebVideoRecord(this._recording?1:0,this._recordFileName,"",(function(){e._emitter.emit(w.RECORDING_END)}))},n._switchAudio=function(){this._muted=!this._muted,this.audioBtnEle.title=this._muted?"取消静音":"静音",this.audioBtnEle.classList="iconfont "+(this._muted?"icon-jingyin":"icon-shengyin1")+" ",this._mediaElement.muted=this._muted,this._transmuxer&&(this._transmuxer._wasmInitAudioPlayer?this._muted?this._transmuxer._wasmAudioPlayer.pause():this._transmuxer._wasmAudioPlayer.resume():this._muted||this._transmuxer._openWasmAudio())},n._switchPlay=function(){this.playing?this.pause():this.resume(),this.playing=!this.playing,this.playBtnEle.title=this.playing?"暂停":"播放",this.playBtnEle.classList="iconfont "+(this.playing?"icon-zanting":"icon-bofang"),this.playing||(this.kbpsEle.innerText="")},t=e,(r=[{key:"type",get:function(){return this._type}},{key:"buffered",get:function(){return this._mediaElement.buffered}},{key:"duration",get:function(){return this._mediaElement.duration}},{key:"volume",get:function(){return this._mediaElement.volume},set:function(e){this._mediaElement.volume=e}},{key:"muted",get:function(){return this._mediaElement.muted},set:function(e){this._mediaElement.muted=e}},{key:"currentTime",get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(e){this._mediaElement?this._internalSeek(e):this._pendingSeekTime=e}},{key:"mediaInfo",get:function(){return Object.assign({},this._mediaInfo)}},{key:"statisticsInfo",get:function(){return null==this._statisticsInfo&&(this._statisticsInfo={}),this._statisticsInfo=this._fillStatisticsInfo(this._statisticsInfo),Object.assign({},this._statisticsInfo)}}])&&P(t.prototype,r),i&&P(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();function L(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var B=function(){function e(e,t){if(this.TAG="NativePlayer",this._type="NativePlayer",this._emitter=new h.a,this._config=o(),"object"==typeof t&&Object.assign(this._config,t),"flv"===e.type.toLowerCase())throw new I.b("NativePlayer does't support flv MediaDataSource input!");if(e.hasOwnProperty("segments"))throw new I.b("NativePlayer("+e.type+") doesn't support multipart playback!");this.e={onvLoadedMetadata:this._onvLoadedMetadata.bind(this)},this._pendingSeekTime=null,this._statisticsReporter=null,this._mediaDataSource=e,this._mediaElement=null}var t,r,i,n=e.prototype;return n.destroy=function(){this._mediaElement&&(this.unload(),this.detachMediaElement()),this.e=null,this._mediaDataSource=null,this._emitter.removeAllListeners(),this._emitter=null},n.on=function(e,t){var r=this;e===c.MEDIA_INFO?null!=this._mediaElement&&0!==this._mediaElement.readyState&&Promise.resolve().then((function(){r._emitter.emit(c.MEDIA_INFO,r.mediaInfo)})):e===c.STATISTICS_INFO&&null!=this._mediaElement&&0!==this._mediaElement.readyState&&Promise.resolve().then((function(){r._emitter.emit(c.STATISTICS_INFO,r.statisticsInfo)})),this._emitter.addListener(e,t)},n.off=function(e,t){this._emitter.removeListener(e,t)},n.attachMediaElement=function(e){if(this._mediaElement=e,e.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),null!=this._pendingSeekTime)try{e.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(e){}},n.detachMediaElement=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement=null),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},n.load=function(){if(!this._mediaElement)throw new I.a("HTMLMediaElement must be attached before load()!");this._mediaElement.src=this._mediaDataSource.url,this._mediaElement.readyState>0&&(this._mediaElement.currentTime=0),this._mediaElement.preload="auto",this._mediaElement.load(),this._statisticsReporter=window.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval)},n.unload=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src")),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},n.play=function(){return this._mediaElement.play()},n.pause=function(){this._mediaElement.pause()},n._onvLoadedMetadata=function(e){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null),this._emitter.emit(c.MEDIA_INFO,this.mediaInfo)},n._reportStatisticsInfo=function(){this._emitter.emit(c.STATISTICS_INFO,this.statisticsInfo)},t=e,(r=[{key:"type",get:function(){return this._type}},{key:"buffered",get:function(){return this._mediaElement.buffered}},{key:"duration",get:function(){return this._mediaElement.duration}},{key:"volume",get:function(){return this._mediaElement.volume},set:function(e){this._mediaElement.volume=e}},{key:"muted",get:function(){return this._mediaElement.muted},set:function(e){this._mediaElement.muted=e}},{key:"currentTime",get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(e){this._mediaElement?this._mediaElement.currentTime=e:this._pendingSeekTime=e}},{key:"mediaInfo",get:function(){var e={mimeType:(this._mediaElement instanceof HTMLAudioElement?"audio/":"video/")+this._mediaDataSource.type};return this._mediaElement&&(e.duration=Math.floor(1e3*this._mediaElement.duration),this._mediaElement instanceof HTMLVideoElement&&(e.width=this._mediaElement.videoWidth,e.height=this._mediaElement.videoHeight)),e}},{key:"statisticsInfo",get:function(){var e={playerType:this._type,url:this._mediaDataSource.url};if(!(this._mediaElement instanceof HTMLVideoElement))return e;var t=!0,r=0,i=0;if(this._mediaElement.getVideoPlaybackQuality){var n=this._mediaElement.getVideoPlaybackQuality();r=n.totalVideoFrames,i=n.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(r=this._mediaElement.webkitDecodedFrameCount,i=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=r,e.droppedFrames=i),e}}])&&L(t.prototype,r),i&&L(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();i.a.install();var F={createPlayer:function(e,t){var r=e;if(null==r||"object"!=typeof r)throw new I.b("MediaDataSource must be an javascript object!");return new N(r,t)},isSupported:function(){return s.supportMSEH264Playback()},getFeatureList:function(){return s.getFeatureList()}};F.BaseLoader=u.a,F.LoaderStatus=u.c,F.LoaderErrors=u.b,F.Events=c,F.ErrorTypes=x,F.ErrorDetails=C,F.FlvPlayer=N,F.NativePlayer=B,F.LoggingControl=g.a,Object.defineProperty(F,"version",{enumerable:!0,get:function(){return __VERSION__}});var U=F;t.default=U},function(e,t,r){"use strict";r.r(t);var i=r(30),n=r.n(i),a=r(123),o=r.n(a);function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var u=function(e){var t,r;function i(){var t;return(t=e.call(this)||this).buffer="",t}return r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,s(t,r),i.prototype.push=function(e){var t;for(this.buffer+=e,t=this.buffer.indexOf("\n");t>-1;t=this.buffer.indexOf("\n"))this.trigger("data",this.buffer.substring(0,t)),this.buffer=this.buffer.substring(t+1)},i}(n.a);function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var h=function(e){for(var t,r=e.split(new RegExp('(?:^|,)((?:[^=]*)=(?:"[^"]*"|[^,]*))')),i={},n=r.length;n--;)""!==r[n]&&((t=/([^=]*)=(.*)/.exec(r[n]).slice(1))[0]=t[0].replace(/^\s+|\s+$/g,""),t[1]=t[1].replace(/^\s+|\s+$/g,""),t[1]=t[1].replace(/^['"](.*)['"]$/g,"$1"),i[t[0]]=t[1]);return i},l=function(e){var t,r;function i(){var t;return(t=e.call(this)||this).customParsers=[],t.tagMappers=[],t}r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,d(t,r);var n=i.prototype;return n.push=function(e){var t,r,i=this;0!==(e=e.trim()).length&&("#"===e[0]?this.tagMappers.reduce((function(t,r){var i=r(e);return i===e?t:t.concat([i])}),[e]).forEach((function(e){for(var n=0;n<i.customParsers.length;n++)if(i.customParsers[n].call(i,e))return;if(0===e.indexOf("#EXT"))if(e=e.replace("\r",""),t=/^#EXTM3U/.exec(e))i.trigger("data",{type:"tag",tagType:"m3u"});else{if(t=/^#EXTINF:?([0-9\.]*)?,?(.*)?$/.exec(e))return r={type:"tag",tagType:"inf"},t[1]&&(r.duration=parseFloat(t[1])),t[2]&&(r.title=t[2]),void i.trigger("data",r);if(t=/^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(e))return r={type:"tag",tagType:"targetduration"},t[1]&&(r.duration=parseInt(t[1],10)),void i.trigger("data",r);if(t=/^#ZEN-TOTAL-DURATION:?([0-9.]*)?/.exec(e))return r={type:"tag",tagType:"totalduration"},t[1]&&(r.duration=parseInt(t[1],10)),void i.trigger("data",r);if(t=/^#EXT-X-VERSION:?([0-9.]*)?/.exec(e))return r={type:"tag",tagType:"version"},t[1]&&(r.version=parseInt(t[1],10)),void i.trigger("data",r);if(t=/^#EXT-X-MEDIA-SEQUENCE:?(\-?[0-9.]*)?/.exec(e))return r={type:"tag",tagType:"media-sequence"},t[1]&&(r.number=parseInt(t[1],10)),void i.trigger("data",r);if(t=/^#EXT-X-DISCONTINUITY-SEQUENCE:?(\-?[0-9.]*)?/.exec(e))return r={type:"tag",tagType:"discontinuity-sequence"},t[1]&&(r.number=parseInt(t[1],10)),void i.trigger("data",r);if(t=/^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(e))return r={type:"tag",tagType:"playlist-type"},t[1]&&(r.playlistType=t[1]),void i.trigger("data",r);if(t=/^#EXT-X-BYTERANGE:?([0-9.]*)?@?([0-9.]*)?/.exec(e))return r={type:"tag",tagType:"byterange"},t[1]&&(r.length=parseInt(t[1],10)),t[2]&&(r.offset=parseInt(t[2],10)),void i.trigger("data",r);if(t=/^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(e))return r={type:"tag",tagType:"allow-cache"},t[1]&&(r.allowed=!/NO/.test(t[1])),void i.trigger("data",r);if(t=/^#EXT-X-MAP:?(.*)$/.exec(e)){if(r={type:"tag",tagType:"map"},t[1]){var a=h(t[1]);if(a.URI&&(r.uri=a.URI),a.BYTERANGE){var o=a.BYTERANGE.split("@"),s=o[0],u=o[1];r.byterange={},s&&(r.byterange.length=parseInt(s,10)),u&&(r.byterange.offset=parseInt(u,10))}}i.trigger("data",r)}else if(t=/^#EXT-X-STREAM-INF:?(.*)$/.exec(e)){if(r={type:"tag",tagType:"stream-inf"},t[1]){if(r.attributes=h(t[1]),r.attributes.RESOLUTION){var d=r.attributes.RESOLUTION.split("x"),l={};d[0]&&(l.width=parseInt(d[0],10)),d[1]&&(l.height=parseInt(d[1],10)),r.attributes.RESOLUTION=l}r.attributes.BANDWIDTH&&(r.attributes.BANDWIDTH=parseInt(r.attributes.BANDWIDTH,10)),r.attributes["PROGRAM-ID"]&&(r.attributes["PROGRAM-ID"]=parseInt(r.attributes["PROGRAM-ID"],10))}i.trigger("data",r)}else{if(t=/^#EXT-X-MEDIA:?(.*)$/.exec(e))return r={type:"tag",tagType:"media"},t[1]&&(r.attributes=h(t[1])),void i.trigger("data",r);if(t=/^#EXT-X-ENDLIST/.exec(e))i.trigger("data",{type:"tag",tagType:"endlist"});else if(t=/^#EXT-X-DISCONTINUITY/.exec(e))i.trigger("data",{type:"tag",tagType:"discontinuity"});else{if(t=/^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(e))return r={type:"tag",tagType:"program-date-time"},t[1]&&(r.dateTimeString=t[1],r.dateTimeObject=new Date(t[1])),void i.trigger("data",r);if(t=/^#EXT-X-KEY:?(.*)$/.exec(e))return r={type:"tag",tagType:"key"},t[1]&&(r.attributes=h(t[1]),r.attributes.IV&&("0x"===r.attributes.IV.substring(0,2).toLowerCase()&&(r.attributes.IV=r.attributes.IV.substring(2)),r.attributes.IV=r.attributes.IV.match(/.{8}/g),r.attributes.IV[0]=parseInt(r.attributes.IV[0],16),r.attributes.IV[1]=parseInt(r.attributes.IV[1],16),r.attributes.IV[2]=parseInt(r.attributes.IV[2],16),r.attributes.IV[3]=parseInt(r.attributes.IV[3],16),r.attributes.IV=new Uint32Array(r.attributes.IV))),void i.trigger("data",r);if(t=/^#EXT-X-START:?(.*)$/.exec(e))return r={type:"tag",tagType:"start"},t[1]&&(r.attributes=h(t[1]),r.attributes["TIME-OFFSET"]=parseFloat(r.attributes["TIME-OFFSET"]),r.attributes.PRECISE=/YES/.test(r.attributes.PRECISE)),void i.trigger("data",r);if(t=/^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(e))return r={type:"tag",tagType:"cue-out-cont"},t[1]?r.data=t[1]:r.data="",void i.trigger("data",r);if(t=/^#EXT-X-CUE-OUT:?(.*)?$/.exec(e))return r={type:"tag",tagType:"cue-out"},t[1]?r.data=t[1]:r.data="",void i.trigger("data",r);if(t=/^#EXT-X-CUE-IN:?(.*)?$/.exec(e))return r={type:"tag",tagType:"cue-in"},t[1]?r.data=t[1]:r.data="",void i.trigger("data",r);i.trigger("data",{type:"tag",data:e.slice(4)})}}}else i.trigger("data",{type:"comment",text:e.slice(1)})})):this.trigger("data",{type:"uri",uri:e}))},n.addParser=function(e){var t=this,r=e.expression,i=e.customType,n=e.dataParser,a=e.segment;"function"!=typeof n&&(n=function(e){return e}),this.customParsers.push((function(e){if(r.exec(e))return t.trigger("data",{type:"custom",data:n(e),customType:i,segment:a}),!0}))},n.addTagMapper=function(e){var t=e.expression,r=e.map;this.tagMappers.push((function(e){return t.test(e)?r(e):e}))},i}(n.a);function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var c=function(e){var t,r;function i(){var t;(t=e.call(this)||this).lineStream=new u,t.parseStream=new l,t.lineStream.pipe(t.parseStream);var r,i,n=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(t),a=[],s={},d=function(){},h={AUDIO:{},VIDEO:{},"CLOSED-CAPTIONS":{},SUBTITLES:{}},f=0;return t.manifest={allowCache:!0,discontinuityStarts:[],segments:[]},t.parseStream.on("data",(function(e){var t,u;({tag:function(){({"allow-cache":function(){this.manifest.allowCache=e.allowed,"allowed"in e||(this.trigger("info",{message:"defaulting allowCache to YES"}),this.manifest.allowCache=!0)},byterange:function(){var t={};"length"in e&&(s.byterange=t,t.length=e.length,"offset"in e||(this.trigger("info",{message:"defaulting offset to zero"}),e.offset=0)),"offset"in e&&(s.byterange=t,t.offset=e.offset)},endlist:function(){this.manifest.endList=!0},inf:function(){"mediaSequence"in this.manifest||(this.manifest.mediaSequence=0,this.trigger("info",{message:"defaulting media sequence to zero"})),"discontinuitySequence"in this.manifest||(this.manifest.discontinuitySequence=0,this.trigger("info",{message:"defaulting discontinuity sequence to zero"})),e.duration>0&&(s.duration=e.duration),0===e.duration&&(s.duration=.01,this.trigger("info",{message:"updating zero segment duration to a small value"})),this.manifest.segments=a},key:function(){if(e.attributes)if("NONE"!==e.attributes.METHOD)if(e.attributes.URI){if("urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"===e.attributes.KEYFORMAT){return-1===["SAMPLE-AES","SAMPLE-AES-CTR","SAMPLE-AES-CENC"].indexOf(e.attributes.METHOD)?void this.trigger("warn",{message:"invalid key method provided for Widevine"}):("SAMPLE-AES-CENC"===e.attributes.METHOD&&this.trigger("warn",{message:"SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead"}),"data:text/plain;base64,"!==e.attributes.URI.substring(0,23)?void this.trigger("warn",{message:"invalid key URI provided for Widevine"}):e.attributes.KEYID&&"0x"===e.attributes.KEYID.substring(0,2)?void(this.manifest.contentProtection={"com.widevine.alpha":{attributes:{schemeIdUri:e.attributes.KEYFORMAT,keyId:e.attributes.KEYID.substring(2)},pssh:o()(e.attributes.URI.split(",")[1])}}):void this.trigger("warn",{message:"invalid key ID provided for Widevine"}))}e.attributes.METHOD||this.trigger("warn",{message:"defaulting key method to AES-128"}),i={method:e.attributes.METHOD||"AES-128",uri:e.attributes.URI},void 0!==e.attributes.IV&&(i.iv=e.attributes.IV)}else this.trigger("warn",{message:"ignoring key declaration without URI"});else i=null;else this.trigger("warn",{message:"ignoring key declaration without attribute list"})},"media-sequence":function(){isFinite(e.number)?this.manifest.mediaSequence=e.number:this.trigger("warn",{message:"ignoring invalid media sequence: "+e.number})},"discontinuity-sequence":function(){isFinite(e.number)?(this.manifest.discontinuitySequence=e.number,f=e.number):this.trigger("warn",{message:"ignoring invalid discontinuity sequence: "+e.number})},"playlist-type":function(){/VOD|EVENT/.test(e.playlistType)?this.manifest.playlistType=e.playlistType:this.trigger("warn",{message:"ignoring unknown playlist type: "+e.playlist})},map:function(){r={},e.uri&&(r.uri=e.uri),e.byterange&&(r.byterange=e.byterange)},"stream-inf":function(){this.manifest.playlists=a,this.manifest.mediaGroups=this.manifest.mediaGroups||h,e.attributes?(s.attributes||(s.attributes={}),Object.assign(s.attributes,e.attributes)):this.trigger("warn",{message:"ignoring empty stream-inf attributes"})},media:function(){if(this.manifest.mediaGroups=this.manifest.mediaGroups||h,e.attributes&&e.attributes.TYPE&&e.attributes["GROUP-ID"]&&e.attributes.NAME){var r=this.manifest.mediaGroups[e.attributes.TYPE];r[e.attributes["GROUP-ID"]]=r[e.attributes["GROUP-ID"]]||{},t=r[e.attributes["GROUP-ID"]],(u={default:/yes/i.test(e.attributes.DEFAULT)}).default?u.autoselect=!0:u.autoselect=/yes/i.test(e.attributes.AUTOSELECT),e.attributes.LANGUAGE&&(u.language=e.attributes.LANGUAGE),e.attributes.URI&&(u.uri=e.attributes.URI),e.attributes["INSTREAM-ID"]&&(u.instreamId=e.attributes["INSTREAM-ID"]),e.attributes.CHARACTERISTICS&&(u.characteristics=e.attributes.CHARACTERISTICS),e.attributes.FORCED&&(u.forced=/yes/i.test(e.attributes.FORCED)),t[e.attributes.NAME]=u}else this.trigger("warn",{message:"ignoring incomplete or missing media group"})},discontinuity:function(){f+=1,s.discontinuity=!0,this.manifest.discontinuityStarts.push(a.length)},"program-date-time":function(){void 0===this.manifest.dateTimeString&&(this.manifest.dateTimeString=e.dateTimeString,this.manifest.dateTimeObject=e.dateTimeObject),s.dateTimeString=e.dateTimeString,s.dateTimeObject=e.dateTimeObject},targetduration:function(){!isFinite(e.duration)||e.duration<0?this.trigger("warn",{message:"ignoring invalid target duration: "+e.duration}):this.manifest.targetDuration=e.duration},totalduration:function(){!isFinite(e.duration)||e.duration<0?this.trigger("warn",{message:"ignoring invalid total duration: "+e.duration}):this.manifest.totalDuration=e.duration},start:function(){e.attributes&&!isNaN(e.attributes["TIME-OFFSET"])?this.manifest.start={timeOffset:e.attributes["TIME-OFFSET"],precise:e.attributes.PRECISE}:this.trigger("warn",{message:"ignoring start declaration without appropriate attribute list"})},"cue-out":function(){s.cueOut=e.data},"cue-out-cont":function(){s.cueOutCont=e.data},"cue-in":function(){s.cueIn=e.data}}[e.tagType]||d).call(n)},uri:function(){s.uri=e.uri,a.push(s),this.manifest.targetDuration&&!("duration"in s)&&(this.trigger("warn",{message:"defaulting segment duration to the target duration"}),s.duration=this.manifest.targetDuration),i&&(s.key=i),s.timeline=f,r&&(s.map=r),s={}},comment:function(){},custom:function(){e.segment?(s.custom=s.custom||{},s.custom[e.customType]=e.data):(this.manifest.custom=this.manifest.custom||{},this.manifest.custom[e.customType]=e.data)}})[e.type].call(n)})),t}r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,f(t,r);var n=i.prototype;return n.push=function(e){this.lineStream.push(e)},n.end=function(){this.lineStream.push("\n")},n.addParser=function(e){this.parseStream.addParser(e)},n.addTagMapper=function(e){this.parseStream.addTagMapper(e)},i}(n.a),p=r(1);function m(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return g(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return g(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var i=0;return function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}var _=new WebAssembly.Memory({initial:256,maximum:256});new WebAssembly.Table({initial:0,maximum:0,element:"anyfunc"}),_.buffer.byteLength,t.default=function(e){e.url="",e.canvas=null,e.webGLPlayer=null,e.videoSampleQueue=[],e.audioSampleQueue=[],e.videoInterval=40,e.lastRenderTime=0,e.intervalVal=0,e.renderFrameCount=0,e.requestAbort=!1,e.pause=!1,e.cbStreamData=!0,e.reConnect=!0,e.isLiveStream=!0,e.seekTime=0,e.totalDuration=0,e.playDuration=0,e.startVideoPts=0,e.startAudioPts=0,e.tsFileList=[],e.getFileIndex=0,e.lastTsFile="",e.isFirstFile=!0,e.lastTsFileSequence=0,e.sequenceExceptNum=0,e.hlsTsPlaybackFileNo=-1,e.hlsTsFirstPlayFileNo=0,e.tsDemuxer=null,e.getFileCount=100,e.intervalHandle=-1,e.intervalValue=40,e.startDownloadTimeSecs=0;var t=function(e,t){var r=function(e){var t=RegExp("^(?:([^/?#]+))?//(?:([^:]*)(?::?(.*))@)?(?:([^/?#:]*):?([0-9]+)?)?([^?#]*)(\\?(?:[^#]*))?(#(?:.*))?"),r=e.match(t)||[];return{protocol:r[1],username:r[2],password:r[3],hostname:r[4],port:r[5],pathname:r[6],search:r[7],hash:r[8]}}(t),i=r.protocol+"//"+r.hostname+":"+r.port;if(e.indexOf("http")>=0)return e;if(e.indexOf("/")>=0)for(var n,a=m(e.split("/"));!(n=a()).done;){var o=n.value;if(t.indexOf(o)>=0)return i+e}i=t;for(var s=0,u=0;u>=0;)(u=i.indexOf("/"))>=0?(i=i.substring(u+1),s+=u+1):i=t.substring(0,s);return""!==e?i+e:i},r=function(){var t={cmd:p.l,workerId:p.b};e.postMessage(t),e.getFileIndex=0,e.hlsTsPlaybackFileNo=-1},i=function i(n,a){if(e.url=n,1!=e._requestAbort){if(!e.pause&&(!(e.totalDuration>0)||e.isLiveStream)){var o=new XMLHttpRequest;o.open("get",n,!0),o.responseType="text",o.onreadystatechange=function(){if(4!=o.readyState||200!=o.status&&304!=o.status)4===o.readyState&&404===o.status&&e.postMessage({cmd:404});else{for(var r=new c,s=o.response.split("\n"),u="",d=0;d<s.length;d++)s[d].includes(".m3u8")&&(u=s[d]);if(u=t(u,n),o.response.includes(".m3u8"))return i(u,a);r.push(o.responseText),r.end();var h=r.manifest;if("undefined"!==r.manifest.endList&&1==r.manifest.endList?e.isLiveStream=!1:e.isLiveStream=!0,h.segments.length<1){var l=e;return void p.j(3e3).then((function(){i(l.url,1)}))}var f=0,m=0;if(e.isLiveStream)if(""==e.lastTsFile){for(f=0;f<h.segments.length;f++){v={filename:y=t(h.segments[f].uri,e.url),duration:h.segments[f].duration};e.tsFileList.push(v)}var g=0;h.segments.length>2&&(g=h.segments.length-1-1),e.getFileIndex=g,e.lastTsFile=h.segments[g].uri}else{g=-1;var _=!1;for(f=0;f<h.segments.length;f++){y=t(h.segments[f].uri,e.url);if(h.segments[f].uri!==e.lastTsFile)if(g>=0){v={filename:y,duration:h.segments[f].duration};e.totalDuration+=h.segments[f].duration,e.tsFileList.push(v),_||(e.lastTsFile=h.segments[f].uri,_=!0)}else;else g=f,e.tsFileList.length=0,e.tsFileList=[],e.getFileIndex=0}if(g<0)for(e.tsFileList.length=0,e.tsFileList=[],e.getFileIndex=0,f=0;f<h.segments.length;f++){v={filename:y=t(h.segments[f].uri,e.url),duration:h.segments[f].duration};e.totalDuration+=h.segments[f].duration,e.tsFileList.push(v),e.lastTsFile=h.segments[f].uri}if(1===a)return}else{for(e.seekTime>0&&(e.getFileIndex=-1),f=0;f<h.segments.length;f++){var y=t(h.segments[f].uri,e.url),b=0;for(m=0;m<e.tsFileList.length;m++)if(e.tsFileList[m].filename===y){b=1;break}if(0==b){e.seekTime>0&&e.totalDuration>=e.seekTime&&e.getFileIndex<0&&(e.getFileIndex=f);var v={filename:y,duration:h.segments[f].duration};e.totalDuration+=h.segments[f].duration,e.tsFileList.push(v)}}e.getFileIndex<0&&(e.getFileIndex=0);var w={cmd:p.u,duration:e.totalDuration,live:e.isLiveStream,workerId:p.b};e.postMessage(w)}if(e.tsFileList.length>0&&1==a){w={cmd:p.w,workerId:p.b};e.postMessage(w)}}},o.send()}}else r()},n=function t(){if(!(e.getFileCount++<1)){var n=!1;if(!e.pause)if(1!=e._requestAbort){if(e.isLiveStream){if(e.getFileCount=0,e.getFileIndex>=e.tsFileList.length||3==e.getFileCount)return void i(e.url,1);n=!0}else if(e.getFileIndex>e.tsFileList.length){var a={cmd:p.r,workerId:p.b};return void e.postMessage(a)}var o;if(0==e.hlsTsFirstPlayFileNo&&1==e.getFileIndex)e.getFileIndex=0,e.hlsTsPlaybackFileNo=-1,e.hlsTsFirstPlayFileNo=-1,o=e.tsFileList[e.getFileIndex].filename;else{if(!e.tsFileList[e.getFileIndex])return;o=e.tsFileList[e.getFileIndex].filename}if(e.isLiveStream){var s=function(e){var t=e.split("-"),r=t.length;if(r>0){var i=t[r-1].split(".");if(i.length>0)return i[0]}return""}(o),u=parseInt(s);if(u>0&&u>e.lastTsFileSequence+1){e.sequenceExceptNum++;a={cmd:p.z,workerId:p.b,fileSequence:e.sequenceExceptNum};e.postMessage(a)}e.lastTsFileSequence=u}var d=new XMLHttpRequest;d.open("get",o,!0),d.responseType="arraybuffer",d.onreadystatechange=function(){if(404==d.status)return p.e("current file not found. refresh list..."),void i(e.url,1);if(4==d.readyState&&(200==d.status||304==d.status)){var r=new Uint8Array(d.response),a=0;for(a=0;a<e.getFileIndex;a++)e.tsFileList[a].duration;var o={cmd:p.q,workerId:p.b,mediaType:1,codecId:27,flag:0,pts:0,playTimeSec:0,dat:r};if(e.postMessage(o,[o.dat.buffer]),e.intervalHandle>=0&&(clearInterval(e.intervalHandle),e.intervalHandle=-1),!e.pause){var s=e.getFileIndex;s>=0&&s<e.tsFileList.length?e.intervalValue=1e3*e.tsFileList[s].duration-600:e.intervalValue=2e3,e.isFirstFile&&(e.isFirstFile=!1,e.intervalValue>900&&(e.intervalValue-=900)),e.intervalValue=1e3*e.tsFileList[s].duration/2,e.intervalHandle=setInterval(t,e.intervalValue)}e.getFileCount=100,e.getFileIndex++,e.getFileIndex>=0&&(e.getFileIndex,e.tsFileList.length);o={cmd:p.t,workerId:p.b};if(e.postMessage(o),n)return i(e.url,0)}},d.send(),e.hlsTsPlaybackFileNo=e.getFileIndex}else r()}};e.addEventListener("message",(function(t){var a=t.data;switch(a.cmd){case p.w:e.url=a.url,e.seekTime=a.time,i(a.url,1);break;case p.s:0==a.t&&n();break;case p.y:i(e.url,1);break;case p.B:var o=a.time;1==a.type&&(o=a.time/100*e.totalDuration);var s=!1,u=0,d=0;for(d=0;d<e.tsFileList.length;d++)if((u+=e.tsFileList[d].duration)>o){e.getFileIndex=d,n();var h={cmd:p.B,type:a.type,time:o};e.postMessage(h),s=!0;break}if(!s){h={cmd:p.B,type:a.type,time:o};e.postMessage(h)}break;case p.x:e.pause=!0;break;case p.A:e.pause=!1,i(e.url,1);break;case p.l:e._requestAbort=!0,e.seekTime=0,r()}}))}}]).default}));!function t(e){var r,i;r=this,i=function(){"use strict";function r(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function i(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?r(Object(i),!0).forEach((function(e){s(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function n(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,v(i.key),i)}}function a(t,e,r){return e&&n(t.prototype,e),r&&n(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function s(t,e,r){return(e=v(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(){return o=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])}return t},o.apply(this,arguments)}function l(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,h(t,e)}function u(t){return u=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},u(t)}function h(t,e){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},h(t,e)}function d(t,e,r){return d=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}()?Reflect.construct.bind():function(t,e,r){var i=[null];i.push.apply(i,e);var n=new(Function.bind.apply(t,i));return r&&h(n,r.prototype),n},d.apply(null,arguments)}function c(t){var e="function"==typeof Map?new Map:void 0;return c=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,i)}function i(){return d(t,arguments,u(this).constructor)}return i.prototype=Object.create(t.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),h(i,t)},c(t)}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r<e;r++)i[r]=t[r];return i}function g(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return f(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var i=0;return function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,e||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function m(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var p={exports:{}};!function(t,e){var r,i,n,a,s;r=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,i=/^(?=([^\/?#]*))\1([^]*)$/,n=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,s={buildAbsoluteURL:function(t,e,r){if(r=r||{},t=t.trim(),!(e=e.trim())){if(!r.alwaysNormalize)return t;var n=s.parseURL(t);if(!n)throw new Error("Error trying to parse base URL.");return n.path=s.normalizePath(n.path),s.buildURLFromParts(n)}var a=s.parseURL(e);if(!a)throw new Error("Error trying to parse relative URL.");if(a.scheme)return r.alwaysNormalize?(a.path=s.normalizePath(a.path),s.buildURLFromParts(a)):e;var o=s.parseURL(t);if(!o)throw new Error("Error trying to parse base URL.");if(!o.netLoc&&o.path&&"/"!==o.path[0]){var l=i.exec(o.path);o.netLoc=l[1],o.path=l[2]}o.netLoc&&!o.path&&(o.path="/");var u={scheme:o.scheme,netLoc:a.netLoc,path:null,params:a.params,query:a.query,fragment:a.fragment};if(!a.netLoc&&(u.netLoc=o.netLoc,"/"!==a.path[0]))if(a.path){var h=o.path,d=h.substring(0,h.lastIndexOf("/")+1)+a.path;u.path=s.normalizePath(d)}else u.path=o.path,a.params||(u.params=o.params,a.query||(u.query=o.query));return null===u.path&&(u.path=r.alwaysNormalize?s.normalizePath(a.path):a.path),s.buildURLFromParts(u)},parseURL:function(t){var e=r.exec(t);return e?{scheme:e[1]||"",netLoc:e[2]||"",path:e[3]||"",params:e[4]||"",query:e[5]||"",fragment:e[6]||""}:null},normalizePath:function(t){for(t=t.split("").reverse().join("").replace(n,"");t.length!==(t=t.replace(a,"")).length;);return t.split("").reverse().join("")},buildURLFromParts:function(t){return t.scheme+t.netLoc+t.path+t.params+t.query+t.fragment}},t.exports=s}(p);var y=p.exports,T=Number.isFinite||function(t){return"number"==typeof t&&isFinite(t)},E=function(t){return t.MEDIA_ATTACHING="hlsMediaAttaching",t.MEDIA_ATTACHED="hlsMediaAttached",t.MEDIA_DETACHING="hlsMediaDetaching",t.MEDIA_DETACHED="hlsMediaDetached",t.BUFFER_RESET="hlsBufferReset",t.BUFFER_CODECS="hlsBufferCodecs",t.BUFFER_CREATED="hlsBufferCreated",t.BUFFER_APPENDING="hlsBufferAppending",t.BUFFER_APPENDED="hlsBufferAppended",t.BUFFER_EOS="hlsBufferEos",t.BUFFER_FLUSHING="hlsBufferFlushing",t.BUFFER_FLUSHED="hlsBufferFlushed",t.MANIFEST_LOADING="hlsManifestLoading",t.MANIFEST_LOADED="hlsManifestLoaded",t.MANIFEST_PARSED="hlsManifestParsed",t.LEVEL_SWITCHING="hlsLevelSwitching",t.LEVEL_SWITCHED="hlsLevelSwitched",t.LEVEL_LOADING="hlsLevelLoading",t.LEVEL_LOADED="hlsLevelLoaded",t.LEVEL_UPDATED="hlsLevelUpdated",t.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",t.LEVELS_UPDATED="hlsLevelsUpdated",t.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",t.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",t.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",t.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",t.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",t.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",t.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",t.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",t.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",t.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",t.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",t.CUES_PARSED="hlsCuesParsed",t.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",t.INIT_PTS_FOUND="hlsInitPtsFound",t.FRAG_LOADING="hlsFragLoading",t.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",t.FRAG_LOADED="hlsFragLoaded",t.FRAG_DECRYPTED="hlsFragDecrypted",t.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",t.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",t.FRAG_PARSING_METADATA="hlsFragParsingMetadata",t.FRAG_PARSED="hlsFragParsed",t.FRAG_BUFFERED="hlsFragBuffered",t.FRAG_CHANGED="hlsFragChanged",t.FPS_DROP="hlsFpsDrop",t.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",t.ERROR="hlsError",t.DESTROYING="hlsDestroying",t.KEY_LOADING="hlsKeyLoading",t.KEY_LOADED="hlsKeyLoaded",t.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",t.BACK_BUFFER_REACHED="hlsBackBufferReached",t.RECORDING="recording",t}({}),S=function(t){return t.NETWORK_ERROR="networkError",t.MEDIA_ERROR="mediaError",t.KEY_SYSTEM_ERROR="keySystemError",t.MUX_ERROR="muxError",t.OTHER_ERROR="otherError",t}({}),L=function(t){return t.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",t.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",t.KEY_SYSTEM_NO_SESSION="keySystemNoSession",t.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",t.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",t.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",t.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",t.MANIFEST_LOAD_ERROR="manifestLoadError",t.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",t.MANIFEST_PARSING_ERROR="manifestParsingError",t.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",t.LEVEL_EMPTY_ERROR="levelEmptyError",t.LEVEL_LOAD_ERROR="levelLoadError",t.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",t.LEVEL_PARSING_ERROR="levelParsingError",t.LEVEL_SWITCH_ERROR="levelSwitchError",t.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",t.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",t.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",t.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",t.FRAG_LOAD_ERROR="fragLoadError",t.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",t.FRAG_DECRYPT_ERROR="fragDecryptError",t.FRAG_PARSING_ERROR="fragParsingError",t.FRAG_GAP="fragGap",t.REMUX_ALLOC_ERROR="remuxAllocError",t.KEY_LOAD_ERROR="keyLoadError",t.KEY_LOAD_TIMEOUT="keyLoadTimeOut",t.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",t.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",t.BUFFER_APPEND_ERROR="bufferAppendError",t.BUFFER_APPENDING_ERROR="bufferAppendingError",t.BUFFER_STALLED_ERROR="bufferStalledError",t.BUFFER_FULL_ERROR="bufferFullError",t.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",t.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",t.INTERNAL_EXCEPTION="internalException",t.INTERNAL_ABORTED="aborted",t.UNKNOWN="unknown",t}({}),R=function(){},A={trace:R,debug:R,log:R,warn:R,info:R,error:R},k=A;function b(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];r.forEach((function(e){k[e]=t[e]?t[e].bind(t):function(t){var e=self.console[t];return e?e.bind(self.console,"["+t+"] >"):R}(e)}))}function D(t,e){if(self.console&&!0===t||"object"==typeof t){b(t,"debug","log","info","warn","error");try{k.log('Debug logs enabled for "'+e+'" in hls.js version '+void 0)}catch(t){k=A}}else k=A}var I=k,w=/^(\d+)x(\d+)$/,C=/(.+?)=(".*?"|.*?)(?:,|$)/g,_=function(){function t(e){for(var r in"string"==typeof e&&(e=t.parseAttrList(e)),e)e.hasOwnProperty(r)&&("X-"===r.substring(0,2)&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(r)),this[r]=e[r])}var e=t.prototype;return e.decimalInteger=function(t){var e=parseInt(this[t],10);return e>Number.MAX_SAFE_INTEGER?1/0:e},e.hexadecimalInteger=function(t){if(this[t]){var e=(this[t]||"0x").slice(2);e=(1&e.length?"0":"")+e;for(var r=new Uint8Array(e.length/2),i=0;i<e.length/2;i++)r[i]=parseInt(e.slice(2*i,2*i+2),16);return r}return null},e.hexadecimalIntegerAsNumber=function(t){var e=parseInt(this[t],16);return e>Number.MAX_SAFE_INTEGER?1/0:e},e.decimalFloatingPoint=function(t){return parseFloat(this[t])},e.optionalFloat=function(t,e){var r=this[t];return r?parseFloat(r):e},e.enumeratedString=function(t){return this[t]},e.bool=function(t){return"YES"===this[t]},e.decimalResolution=function(t){var e=w.exec(this[t]);if(null!==e)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}},t.parseAttrList=function(t){var e,r={};for(C.lastIndex=0;null!==(e=C.exec(t));){var i=e[2];0===i.indexOf('"')&&i.lastIndexOf('"')===i.length-1&&(i=i.slice(1,-1)),r[e[1].trim()]=i}return r},t}();function P(t){return"SCTE35-OUT"===t||"SCTE35-IN"===t}var x=function(){function t(t,e){if(this.attr=void 0,this._startDate=void 0,this._endDate=void 0,this._badValueForSameId=void 0,e){var r=e.attr;for(var i in r)if(Object.prototype.hasOwnProperty.call(t,i)&&t[i]!==r[i]){I.warn('DATERANGE tag attribute: "'+i+'" does not match for tags with ID: "'+t.ID+'"'),this._badValueForSameId=i;break}t=o(new _({}),r,t)}if(this.attr=t,this._startDate=new Date(t["START-DATE"]),"END-DATE"in this.attr){var n=new Date(this.attr["END-DATE"]);T(n.getTime())&&(this._endDate=n)}}return a(t,[{key:"id",get:function(){return this.attr.ID}},{key:"class",get:function(){return this.attr.CLASS}},{key:"startDate",get:function(){return this._startDate}},{key:"endDate",get:function(){if(this._endDate)return this._endDate;var t=this.duration;return null!==t?new Date(this._startDate.getTime()+1e3*t):null}},{key:"duration",get:function(){if("DURATION"in this.attr){var t=this.attr.decimalFloatingPoint("DURATION");if(T(t))return t}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}},{key:"plannedDuration",get:function(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}},{key:"endOnNext",get:function(){return this.attr.bool("END-ON-NEXT")}},{key:"isValid",get:function(){return!!this.id&&!this._badValueForSameId&&T(this.startDate.getTime())&&(null===this.duration||this.duration>=0)&&(!this.endOnNext||!!this.class)}}]),t}(),F=function(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}},O="audio",M="video",N="audiovideo",U=function(){function t(t){var e;this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams=((e={})[O]=null,e[M]=null,e[N]=null,e),this.baseurl=t}return t.prototype.setByteRange=function(t,e){var r=t.split("@",2),i=[];1===r.length?i[0]=e?e.byteRangeEndOffset:0:i[0]=parseInt(r[1]),i[1]=parseInt(r[0])+i[0],this._byteRange=i},a(t,[{key:"byteRange",get:function(){return this._byteRange?this._byteRange:[]}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"url",get:function(){return!this._url&&this.baseurl&&this.relurl&&(this._url=y.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""},set:function(t){this._url=t}}]),t}(),B=function(t){function e(e,r){var i;return(i=t.call(this,r)||this)._decryptdata=null,i.rawProgramDateTime=null,i.programDateTime=null,i.tagList=[],i.duration=0,i.sn=0,i.levelkeys=void 0,i.type=void 0,i.loader=null,i.keyLoader=null,i.level=-1,i.cc=0,i.startPTS=void 0,i.endPTS=void 0,i.startDTS=void 0,i.endDTS=void 0,i.start=0,i.deltaPTS=void 0,i.maxStartPTS=void 0,i.minEndPTS=void 0,i.stats=new F,i.urlId=0,i.data=void 0,i.bitrateTest=!1,i.title=null,i.initSegment=null,i.endList=void 0,i.gap=void 0,i.type=e,i}l(e,t);var r=e.prototype;return r.setKeyFormat=function(t){if(this.levelkeys){var e=this.levelkeys[t];e&&!this._decryptdata&&(this._decryptdata=e.getDecryptData(this.sn))}},r.abortRequests=function(){var t,e;null==(t=this.loader)||t.abort(),null==(e=this.keyLoader)||e.abort()},r.setElementaryStreamInfo=function(t,e,r,i,n,a){void 0===a&&(a=!1);var s=this.elementaryStreams,o=s[t];o?(o.startPTS=Math.min(o.startPTS,e),o.endPTS=Math.max(o.endPTS,r),o.startDTS=Math.min(o.startDTS,i),o.endDTS=Math.max(o.endDTS,n)):s[t]={startPTS:e,endPTS:r,startDTS:i,endDTS:n,partial:a}},r.clearElementaryStreamInfo=function(){var t=this.elementaryStreams;t[O]=null,t[M]=null,t[N]=null},a(e,[{key:"decryptdata",get:function(){if(!this.levelkeys&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkeys&&!this.levelkeys.NONE){var t=this.levelkeys.identity;if(t)this._decryptdata=t.getDecryptData(this.sn);else{var e=Object.keys(this.levelkeys);if(1===e.length)return this._decryptdata=this.levelkeys[e[0]].getDecryptData(this.sn)}}return this._decryptdata}},{key:"end",get:function(){return this.start+this.duration}},{key:"endProgramDateTime",get:function(){if(null===this.programDateTime)return null;if(!T(this.programDateTime))return null;var t=T(this.duration)?this.duration:0;return this.programDateTime+1e3*t}},{key:"encrypted",get:function(){var t;if(null!=(t=this._decryptdata)&&t.encrypted)return!0;if(this.levelkeys){var e=Object.keys(this.levelkeys),r=e.length;if(r>1||1===r&&this.levelkeys[e[0]].encrypted)return!0}return!1}}]),e}(U),G=function(t){function e(e,r,i,n,a){var s;(s=t.call(this,i)||this).fragOffset=0,s.duration=0,s.gap=!1,s.independent=!1,s.relurl=void 0,s.fragment=void 0,s.index=void 0,s.stats=new F,s.duration=e.decimalFloatingPoint("DURATION"),s.gap=e.bool("GAP"),s.independent=e.bool("INDEPENDENT"),s.relurl=e.enumeratedString("URI"),s.fragment=r,s.index=n;var o=e.enumeratedString("BYTERANGE");return o&&s.setByteRange(o,a),a&&(s.fragOffset=a.fragOffset+a.duration),s}return l(e,t),a(e,[{key:"start",get:function(){return this.fragment.start+this.fragOffset}},{key:"end",get:function(){return this.start+this.duration}},{key:"loaded",get:function(){var t=this.elementaryStreams;return!!(t.audio||t.video||t.audiovideo)}}]),e}(U),K=function(){function t(t){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=t}return t.prototype.reloaded=function(t){if(!t)return this.advanced=!0,void(this.updated=!0);var e=this.lastPartSn-t.lastPartSn,r=this.lastPartIndex-t.lastPartIndex;this.updated=this.endSN!==t.endSN||!!r||!!e,this.advanced=this.endSN>t.endSN||e>0||0===e&&r>0,this.updated||this.advanced?this.misses=Math.floor(.6*t.misses):this.misses=t.misses+1,this.availabilityDelay=t.availabilityDelay},a(t,[{key:"hasProgramDateTime",get:function(){return!!this.fragments.length&&T(this.fragments[this.fragments.length-1].programDateTime)}},{key:"levelTargetDuration",get:function(){return this.averagetargetduration||this.targetduration||10}},{key:"drift",get:function(){var t=this.driftEndTime-this.driftStartTime;return t>0?1e3*(this.driftEnd-this.driftStart)/t:1}},{key:"edge",get:function(){return this.partEnd||this.fragmentEnd}},{key:"partEnd",get:function(){var t;return null!=(t=this.partList)&&t.length?this.partList[this.partList.length-1].end:this.fragmentEnd}},{key:"fragmentEnd",get:function(){var t;return null!=(t=this.fragments)&&t.length?this.fragments[this.fragments.length-1].end:0}},{key:"age",get:function(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}},{key:"lastPartIndex",get:function(){var t;return null!=(t=this.partList)&&t.length?this.partList[this.partList.length-1].index:-1}},{key:"lastPartSn",get:function(){var t;return null!=(t=this.partList)&&t.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}}]),t}();function H(t){return Uint8Array.from(atob(t),(function(t){return t.charCodeAt(0)}))}function V(t){var e,r,i=t.split(":"),n=null;if("data"===i[0]&&2===i.length){var a=i[1].split(";"),s=a[a.length-1].split(",");if(2===s.length){var o="base64"===s[0],l=s[1];o?(a.splice(-1,1),n=H(l)):(e=Y(l).subarray(0,16),(r=new Uint8Array(16)).set(e,16-e.length),n=r)}}return n}function Y(t){return Uint8Array.from(unescape(encodeURIComponent(t)),(function(t){return t.charCodeAt(0)}))}var W={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},j="org.w3.clearkey",q="com.apple.streamingkeydelivery",X="com.microsoft.playready",z="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function Q(t){switch(t){case q:return W.FAIRPLAY;case X:return W.PLAYREADY;case z:return W.WIDEVINE;case j:return W.CLEARKEY}}var $="edef8ba979d64acea3c827dcd51d21ed";function J(t){switch(t){case W.FAIRPLAY:return q;case W.PLAYREADY:return X;case W.WIDEVINE:return z;case W.CLEARKEY:return j}}function Z(t){var e=t.drmSystems,r=t.widevineLicenseUrl,i=e?[W.FAIRPLAY,W.WIDEVINE,W.PLAYREADY,W.CLEARKEY].filter((function(t){return!!e[t]})):[];return!i[W.WIDEVINE]&&r&&i.push(W.WIDEVINE),i}var tt="undefined"!=typeof self&&self.navigator&&self.navigator.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;function et(t,e,r){return Uint8Array.prototype.slice?t.slice(e,r):new Uint8Array(Array.prototype.slice.call(t,e,r))}var rt,it=function(t,e){return e+10<=t.length&&73===t[e]&&68===t[e+1]&&51===t[e+2]&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128},nt=function(t,e){return e+10<=t.length&&51===t[e]&&68===t[e+1]&&73===t[e+2]&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128},at=function(t,e){for(var r=e,i=0;it(t,e);)i+=10,i+=st(t,e+6),nt(t,e+10)&&(i+=10),e+=i;if(i>0)return t.subarray(r,r+i)},st=function(t,e){var r=0;return r=(127&t[e])<<21,r|=(127&t[e+1])<<14,r|=(127&t[e+2])<<7,r|=127&t[e+3]},ot=function(t,e){return it(t,e)&&st(t,e+6)+10<=t.length-e},lt=function(t){return t&&"PRIV"===t.key&&"com.apple.streaming.transportStreamTimestamp"===t.info},ut=function(t){var e=String.fromCharCode(t[0],t[1],t[2],t[3]),r=st(t,4);return{type:e,size:r,data:t.subarray(10,10+r)}},ht=function(t){for(var e=0,r=[];it(t,e);){for(var i=st(t,e+6),n=(e+=10)+i;e+8<n;){var a=ut(t.subarray(e)),s=dt(a);s&&r.push(s),e+=a.size+10}nt(t,e)&&(e+=10)}return r},dt=function(t){return"PRIV"===t.type?ct(t):"W"===t.type[0]?gt(t):ft(t)},ct=function(t){if(!(t.size<2)){var e=mt(t.data,!0),r=new Uint8Array(t.data.subarray(e.length+1));return{key:t.type,info:e,data:r.buffer}}},ft=function(t){if(!(t.size<2)){if("TXXX"===t.type){var e=1,r=mt(t.data.subarray(e),!0);e+=r.length+1;var i=mt(t.data.subarray(e));return{key:t.type,info:r,data:i}}var n=mt(t.data.subarray(1));return{key:t.type,data:n}}},gt=function(t){if("WXXX"===t.type){if(t.size<2)return;var e=1,r=mt(t.data.subarray(e),!0);e+=r.length+1;var i=mt(t.data.subarray(e));return{key:t.type,info:r,data:i}}var n=mt(t.data);return{key:t.type,data:n}},vt=function(t){if(8===t.data.byteLength){var e=new Uint8Array(t.data),r=1&e[3],i=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return i/=45,r&&(i+=47721858.84),Math.round(i)}},mt=function(t,e){void 0===e&&(e=!1);var r=pt();if(r){var i=r.decode(t);if(e){var n=i.indexOf("\0");return-1!==n?i.substring(0,n):i}return i.replace(/\0/g,"")}for(var a,s,o,l=t.length,u="",h=0;h<l;){if(0===(a=t[h++])&&e)return u;if(0!==a&&3!==a)switch(a>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:u+=String.fromCharCode(a);break;case 12:case 13:s=t[h++],u+=String.fromCharCode((31&a)<<6|63&s);break;case 14:s=t[h++],o=t[h++],u+=String.fromCharCode((15&a)<<12|(63&s)<<6|(63&o)<<0)}}return u};function pt(){return rt||void 0===self.TextDecoder||(rt=new self.TextDecoder("utf-8")),rt}var yt=function(t){for(var e="",r=0;r<t.length;r++){var i=t[r].toString(16);i.length<2&&(i="0"+i),e+=i}return e},Tt=Math.pow(2,32)-1,Et=[].push,St={video:1,audio:2,id3:3,text:4};function Lt(t){return String.fromCharCode.apply(null,t)}function Rt(t,e){var r=t[e]<<8|t[e+1];return r<0?65536+r:r}function At(t,e){var r=kt(t,e);return r<0?4294967296+r:r}function kt(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function bt(t,e,r){t[e]=r>>24,t[e+1]=r>>16&255,t[e+2]=r>>8&255,t[e+3]=255&r}function Dt(t,e){var r=[];if(!e.length)return r;for(var i=t.byteLength,n=0;n<i;){var a=At(t,n),s=a>1?n+a:i;if(Lt(t.subarray(n+4,n+8))===e[0])if(1===e.length)r.push(t.subarray(n+8,s));else{var o=Dt(t.subarray(n+8,s),e.slice(1));o.length&&Et.apply(r,o)}n=s}return r}function It(t){var e=[],r=t[0],i=8,n=At(t,i);i+=4,i+=0===r?8:16,i+=2;var a=t.length+0,s=Rt(t,i);i+=2;for(var o=0;o<s;o++){var l=i,u=At(t,l);l+=4;var h=2147483647&u;if(1==(2147483648&u)>>>31)return I.warn("SIDX has hierarchical references (not supported)"),null;var d=At(t,l);l+=4,e.push({referenceSize:h,subsegmentDuration:d,info:{duration:d/n,start:a,end:a+h-1}}),a+=h,i=l+=4}return{earliestPresentationTime:0,timescale:n,version:r,referencesCount:s,references:e}}function wt(t){for(var e=[],r=Dt(t,["moov","trak"]),i=0;i<r.length;i++){var n=r[i],a=Dt(n,["tkhd"])[0];if(a){var s=a[0],o=0===s?12:20,l=At(a,o),u=Dt(n,["mdia","mdhd"])[0];if(u){var h=At(u,o=0===(s=u[0])?12:20),d=Dt(n,["mdia","hdlr"])[0];if(d){var c=Lt(d.subarray(8,12)),f={soun:O,vide:M}[c];if(f){var g=Dt(n,["mdia","minf","stbl","stsd"])[0],v=void 0;g&&(v=Lt(g.subarray(12,16))),e[l]={timescale:h,type:f},e[f]={timescale:h,id:l,codec:v}}}}}}return Dt(t,["moov","mvex","trex"]).forEach((function(t){var r=At(t,4),i=e[r];i&&(i.default={duration:At(t,12),flags:At(t,20)})})),e}function Ct(t){var e=Dt(t,["schm"])[0];if(e){var r=Lt(e.subarray(4,8));if("cbcs"===r||"cenc"===r)return Dt(t,["schi","tenc"])[0]}return I.error("[eme] missing 'schm' box"),null}function _t(t){var e=At(t,0),r=8;1&e&&(r+=4),4&e&&(r+=4);for(var i=0,n=At(t,4),a=0;a<n;a++)256&e&&(i+=At(t,r),r+=4),512&e&&(r+=4),1024&e&&(r+=4),2048&e&&(r+=4);return i}function Pt(t,e){var r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r}function xt(t,e){var r=[],i=e.samples,n=e.timescale,a=e.id,s=!1;return Dt(i,["moof"]).map((function(o){var l=o.byteOffset-8;Dt(o,["traf"]).map((function(o){var u=Dt(o,["tfdt"]).map((function(t){var e=t[0],r=At(t,4);return 1===e&&(r*=Math.pow(2,32),r+=At(t,8)),r/n}))[0];return void 0!==u&&(t=u),Dt(o,["tfhd"]).map((function(u){var h=At(u,4),d=16777215&At(u,0),c=0,f=0!=(16&d),g=0,v=0!=(32&d),m=8;h===a&&(0!=(1&d)&&(m+=8),0!=(2&d)&&(m+=4),0!=(8&d)&&(c=At(u,m),m+=4),f&&(g=At(u,m),m+=4),v&&(m+=4),"video"===e.type&&(s=function(t){if(!t)return!1;var e=t.indexOf("."),r=e<0?t:t.substring(0,e);return"hvc1"===r||"hev1"===r||"dvh1"===r||"dvhe"===r}(e.codec)),Dt(o,["trun"]).map((function(a){var o=a[0],u=16777215&At(a,0),h=0!=(1&u),d=0,f=0!=(4&u),v=0!=(256&u),m=0,p=0!=(512&u),y=0,T=0!=(1024&u),E=0!=(2048&u),S=0,L=At(a,4),R=8;h&&(d=At(a,R),R+=4),f&&(R+=4);for(var A=d+l,k=0;k<L;k++){if(v?(m=At(a,R),R+=4):m=c,p?(y=At(a,R),R+=4):y=g,T&&(R+=4),E&&(S=0===o?At(a,R):kt(a,R),R+=4),e.type===M)for(var b=0;b<y;){var D=At(i,A);Ft(s,i[A+=4])&&Ot(i.subarray(A,A+D),s?2:1,t+S/n,r),A+=D,b+=D+4}t+=m/n}})))}))}))})),r}function Ft(t,e){if(t){var r=e>>1&63;return 39===r||40===r}return 6==(31&e)}function Ot(t,e,r,i){var n=Mt(t),a=0;a+=e;for(var s=0,o=0,l=!1,u=0;a<n.length;){s=0;do{if(a>=n.length)break;s+=u=n[a++]}while(255===u);o=0;do{if(a>=n.length)break;o+=u=n[a++]}while(255===u);var h=n.length-a;if(!l&&4===s&&a<n.length){if(l=!0,181===n[a++]){var d=Rt(n,a);if(a+=2,49===d){var c=At(n,a);if(a+=4,1195456820===c){var f=n[a++];if(3===f){var g=n[a++],v=64&g,m=v?2+3*(31&g):0,p=new Uint8Array(m);if(v){p[0]=g;for(var y=1;y<m;y++)p[y]=n[a++]}i.push({type:f,payloadType:s,pts:r,bytes:p})}}}}}else if(5===s&&o<h){if(l=!0,o>16){for(var T=[],E=0;E<16;E++){var S=n[a++].toString(16);T.push(1==S.length?"0"+S:S),3!==E&&5!==E&&7!==E&&9!==E||T.push("-")}for(var L=o-16,R=new Uint8Array(L),A=0;A<L;A++)R[A]=n[a++];i.push({payloadType:s,pts:r,uuid:T.join(""),userData:mt(R),userDataBytes:R})}}else if(o<h)a+=o;else if(o>h)break}}function Mt(t){for(var e=t.byteLength,r=[],i=1;i<e-2;)0===t[i]&&0===t[i+1]&&3===t[i+2]?(r.push(i+2),i+=2):i++;if(0===r.length)return t;var n=e-r.length,a=new Uint8Array(n),s=0;for(i=0;i<n;s++,i++)s===r[0]&&(s++,r.shift()),a[i]=t[s];return a}function Nt(t,e,r){if(16!==t.byteLength)throw new RangeError("Invalid system id");var i,n,a;if(e){i=1,n=new Uint8Array(16*e.length);for(var s=0;s<e.length;s++){var o=e[s];if(16!==o.byteLength)throw new RangeError("Invalid key");n.set(o,16*s)}}else i=0,n=new Uint8Array;i>0?(a=new Uint8Array(4),e.length>0&&new DataView(a.buffer).setUint32(0,e.length,!1)):a=new Uint8Array;var l=new Uint8Array(4);return r&&r.byteLength>0&&new DataView(l.buffer).setUint32(0,r.byteLength,!1),function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];for(var n=r.length,a=8,s=n;s--;)a+=r[s].byteLength;var o=new Uint8Array(a);for(o[0]=a>>24&255,o[1]=a>>16&255,o[2]=a>>8&255,o[3]=255&a,o.set(t,4),s=0,a=8;s<n;s++)o.set(r[s],a),a+=r[s].byteLength;return o}([112,115,115,104],new Uint8Array([i,0,0,0]),t,a,n,l,r||new Uint8Array)}var Ut={},Bt=function(){function t(t,e,r,i,n){void 0===i&&(i=[1]),void 0===n&&(n=null),this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=t,this.uri=e,this.keyFormat=r,this.keyFormatVersions=i,this.iv=n,this.encrypted=!!t&&"NONE"!==t,this.isCommonEncryption=this.encrypted&&"AES-128"!==t}t.clearKeyUriToKeyIdMap=function(){Ut={}};var e=t.prototype;return e.isSupported=function(){if(this.method){if("AES-128"===this.method||"NONE"===this.method)return!0;if("identity"===this.keyFormat)return"SAMPLE-AES"===this.method;switch(this.keyFormat){case q:case z:case X:case j:return-1!==["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)}}return!1},e.getDecryptData=function(e){if(!this.encrypted||!this.uri)return null;if("AES-128"===this.method&&this.uri&&!this.iv){"number"!=typeof e&&("AES-128"!==this.method||this.iv||I.warn('missing IV for initialization segment with method="'+this.method+'" - compliance issue'),e=0);var r=function(t){for(var e=new Uint8Array(16),r=12;r<16;r++)e[r]=t>>8*(15-r)&255;return e}(e);return new t(this.method,this.uri,"identity",this.keyFormatVersions,r)}var i=V(this.uri);if(i)switch(this.keyFormat){case z:this.pssh=i,i.length>=22&&(this.keyId=i.subarray(i.length-22,i.length-6));break;case X:var n=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=Nt(n,null,i);var a=new Uint16Array(i.buffer,i.byteOffset,i.byteLength/2),s=String.fromCharCode.apply(null,Array.from(a)),o=s.substring(s.indexOf("<"),s.length),l=(new DOMParser).parseFromString(o,"text/xml").getElementsByTagName("KID")[0];if(l){var u=l.childNodes[0]?l.childNodes[0].nodeValue:l.getAttribute("VALUE");if(u){var h=H(u).subarray(0,16);!function(t){var e=function(t,e,r){var i=t[e];t[e]=t[r],t[r]=i};e(t,0,3),e(t,1,2),e(t,4,5),e(t,6,7)}(h),this.keyId=h}}break;default:var d=i.subarray(0,16);if(16!==d.length){var c=new Uint8Array(16);c.set(d,16-d.length),d=c}this.keyId=d}if(!this.keyId||16!==this.keyId.byteLength){var f=Ut[this.uri];if(!f){var g=Object.keys(Ut).length%Number.MAX_SAFE_INTEGER;f=new Uint8Array(16),new DataView(f.buffer,12,4).setUint32(0,g),Ut[this.uri]=f}this.keyId=f}return this},t}(),Gt=/\{\$([a-zA-Z0-9-_]+)\}/g;function Kt(t){return Gt.test(t)}function Ht(t,e,r){if(null!==t.variableList||t.hasVariableRefs)for(var i=r.length;i--;){var n=r[i],a=e[n];a&&(e[n]=Vt(t,a))}}function Vt(t,e){if(null!==t.variableList||t.hasVariableRefs){var r=t.variableList;return e.replace(Gt,(function(e){var i=e.substring(2,e.length-1),n=null==r?void 0:r[i];return void 0===n?(t.playlistParsingError||(t.playlistParsingError=new Error('Missing preceding EXT-X-DEFINE tag for Variable Reference: "'+i+'"')),e):n}))}return e}function Yt(t,e,r){var i,n,a=t.variableList;if(a||(t.variableList=a={}),"QUERYPARAM"in e){i=e.QUERYPARAM;try{var s=new self.URL(r).searchParams;if(!s.has(i))throw new Error('"'+i+'" does not match any query parameter in URI: "'+r+'"');n=s.get(i)}catch(e){t.playlistParsingError||(t.playlistParsingError=new Error("EXT-X-DEFINE QUERYPARAM: "+e.message))}}else i=e.NAME,n=e.VALUE;i in a?t.playlistParsingError||(t.playlistParsingError=new Error('EXT-X-DEFINE duplicate Variable Name declarations: "'+i+'"')):a[i]=n||""}function Wt(t,e,r){var i=e.IMPORT;if(r&&i in r){var n=t.variableList;n||(t.variableList=n={}),n[i]=r[i]}else t.playlistParsingError||(t.playlistParsingError=new Error('EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "'+i+'"'))}function jt(){if("undefined"!=typeof self)return self.MediaSource||self.WebKitMediaSource}var qt={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,av01:!0,drac:!0,dva1:!0,dvav:!0,dvh1:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0},text:{stpp:!0,wvtt:!0}},Xt=jt();function zt(t,e){var r;return null!=(r=null==Xt?void 0:Xt.isTypeSupported((e||"video")+'/mp4;codecs="'+t+'"'))&&r}var Qt=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,$t=/#EXT-X-MEDIA:(.*)/g,Jt=/^#EXT(?:INF|-X-TARGETDURATION):/m,Zt=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[\S ]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),te=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|")),ee=function(){function t(){}return t.findGroup=function(t,e){for(var r=0;r<t.length;r++){var i=t[r];if(i.id===e)return i}},t.convertAVC1ToAVCOTI=function(t){var e=t.split(".");if(e.length>2){var r=e.shift()+".";return r+=parseInt(e.shift()).toString(16),r+=("000"+parseInt(e.shift()).toString(16)).slice(-4)}return t},t.resolve=function(t,e){return y.buildAbsoluteURL(e,t,{alwaysNormalize:!0})},t.isMediaPlaylist=function(t){return Jt.test(t)},t.parseMasterPlaylist=function(e,r){var i,n={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:Kt(e)},a=[];for(Qt.lastIndex=0;null!=(i=Qt.exec(e));)if(i[1]){var s,o=new _(i[1]);Ht(n,o,["CODECS","SUPPLEMENTAL-CODECS","ALLOWED-CPC","PATHWAY-ID","STABLE-VARIANT-ID","AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS","NAME"]);var l=Vt(n,i[2]),u={attrs:o,bitrate:o.decimalInteger("AVERAGE-BANDWIDTH")||o.decimalInteger("BANDWIDTH"),name:o.NAME,url:t.resolve(l,r)},h=o.decimalResolution("RESOLUTION");h&&(u.width=h.width,u.height=h.height),ne((o.CODECS||"").split(/[ ,]+/).filter((function(t){return t})),u),u.videoCodec&&-1!==u.videoCodec.indexOf("avc1")&&(u.videoCodec=t.convertAVC1ToAVCOTI(u.videoCodec)),null!=(s=u.unknownCodecs)&&s.length||a.push(u),n.levels.push(u)}else if(i[3]){var d=i[3],c=i[4];switch(d){case"SESSION-DATA":var f=new _(c);Ht(n,f,["DATA-ID","LANGUAGE","VALUE","URI"]);var g=f["DATA-ID"];g&&(null===n.sessionData&&(n.sessionData={}),n.sessionData[g]=f);break;case"SESSION-KEY":var v=re(c,r,n);v.encrypted&&v.isSupported()?(null===n.sessionKeys&&(n.sessionKeys=[]),n.sessionKeys.push(v)):I.warn('[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "'+c+'"');break;case"DEFINE":var m=new _(c);Ht(n,m,["NAME","VALUE","QUERYPARAM"]),Yt(n,m,r);break;case"CONTENT-STEERING":var p=new _(c);Ht(n,p,["SERVER-URI","PATHWAY-ID"]),n.contentSteering={uri:t.resolve(p["SERVER-URI"],r),pathwayId:p["PATHWAY-ID"]||"."};break;case"START":n.startTimeOffset=ie(c)}}var y=a.length>0&&a.length<n.levels.length;return n.levels=y?a:n.levels,0===n.levels.length&&(n.playlistParsingError=new Error("no levels found in manifest")),n},t.parseMasterPlaylistMedia=function(e,r,i){var n,a={},s=i.levels,o={AUDIO:s.map((function(t){return{id:t.attrs.AUDIO,audioCodec:t.audioCodec}})),SUBTITLES:s.map((function(t){return{id:t.attrs.SUBTITLES,textCodec:t.textCodec}})),"CLOSED-CAPTIONS":[]},l=0;for($t.lastIndex=0;null!==(n=$t.exec(e));){var u=new _(n[1]),h=u.TYPE;if(h){var d=o[h],c=a[h]||[];a[h]=c,Ht(i,u,["URI","GROUP-ID","LANGUAGE","ASSOC-LANGUAGE","STABLE-RENDITION-ID","NAME","INSTREAM-ID","CHARACTERISTICS","CHANNELS"]);var f={attrs:u,bitrate:0,id:l++,groupId:u["GROUP-ID"]||"",instreamId:u["INSTREAM-ID"],name:u.NAME||u.LANGUAGE||"",type:h,default:u.bool("DEFAULT"),autoselect:u.bool("AUTOSELECT"),forced:u.bool("FORCED"),lang:u.LANGUAGE,url:u.URI?t.resolve(u.URI,r):""};if(null!=d&&d.length){var g=t.findGroup(d,f.groupId)||d[0];ae(f,g,"audioCodec"),ae(f,g,"textCodec")}c.push(f)}}return a},t.parseLevelPlaylist=function(t,e,r,i,n,a){var s,l,u,h=new K(e),d=h.fragments,c=null,f=0,g=0,v=0,m=0,p=null,y=new B(i,e),E=-1,S=!1;for(Zt.lastIndex=0,h.m3u8=t,h.hasVariableRefs=Kt(t);null!==(s=Zt.exec(t));){S&&(S=!1,(y=new B(i,e)).start=v,y.sn=f,y.cc=m,y.level=r,c&&(y.initSegment=c,y.rawProgramDateTime=c.rawProgramDateTime,c.rawProgramDateTime=null));var L=s[1];if(L){y.duration=parseFloat(L);var R=(" "+s[2]).slice(1);y.title=R||null,y.tagList.push(R?["INF",L,R]:["INF",L])}else if(s[3]){if(T(y.duration)){y.start=v,u&&le(y,u,h),y.sn=f,y.level=r,y.cc=m,y.urlId=n,d.push(y);var A=(" "+s[3]).slice(1);y.relurl=Vt(h,A),se(y,p),p=y,v+=y.duration,f++,g=0,S=!0}}else if(s[4]){var k=(" "+s[4]).slice(1);p?y.setByteRange(k,p):y.setByteRange(k)}else if(s[5])y.rawProgramDateTime=(" "+s[5]).slice(1),y.tagList.push(["PROGRAM-DATE-TIME",y.rawProgramDateTime]),-1===E&&(E=d.length);else{if(!(s=s[0].match(te))){I.warn("No matches on slow regex match for level playlist!");continue}for(l=1;l<s.length&&void 0===s[l];l++);var b=(" "+s[l]).slice(1),D=(" "+s[l+1]).slice(1),w=s[l+2]?(" "+s[l+2]).slice(1):"";switch(b){case"PLAYLIST-TYPE":h.type=D.toUpperCase();break;case"MEDIA-SEQUENCE":f=h.startSN=parseInt(D);break;case"SKIP":var C=new _(D);Ht(h,C,["RECENTLY-REMOVED-DATERANGES"]);var P=C.decimalInteger("SKIPPED-SEGMENTS");if(T(P)){h.skippedSegments=P;for(var F=P;F--;)d.unshift(null);f+=P}var O=C.enumeratedString("RECENTLY-REMOVED-DATERANGES");O&&(h.recentlyRemovedDateranges=O.split("\t"));break;case"TARGETDURATION":h.targetduration=Math.max(parseInt(D),1);break;case"VERSION":h.version=parseInt(D);break;case"EXTM3U":break;case"ENDLIST":h.live=!1;break;case"#":(D||w)&&y.tagList.push(w?[D,w]:[D]);break;case"DISCONTINUITY":m++,y.tagList.push(["DIS"]);break;case"GAP":y.gap=!0,y.tagList.push([b]);break;case"BITRATE":y.tagList.push([b,D]);break;case"DATERANGE":var M=new _(D);Ht(h,M,["ID","CLASS","START-DATE","END-DATE","SCTE35-CMD","SCTE35-OUT","SCTE35-IN"]),Ht(h,M,M.clientAttrs);var N=new x(M,h.dateRanges[M.ID]);N.isValid||h.skippedSegments?h.dateRanges[N.id]=N:I.warn('Ignoring invalid DATERANGE tag: "'+D+'"'),y.tagList.push(["EXT-X-DATERANGE",D]);break;case"DEFINE":var U=new _(D);Ht(h,U,["NAME","VALUE","IMPORT","QUERYPARAM"]),"IMPORT"in U?Wt(h,U,a):Yt(h,U,e);break;case"DISCONTINUITY-SEQUENCE":m=parseInt(D);break;case"KEY":var H=re(D,e,h);if(H.isSupported()){if("NONE"===H.method){u=void 0;break}u||(u={}),u[H.keyFormat]&&(u=o({},u)),u[H.keyFormat]=H}else I.warn('[Keys] Ignoring invalid EXT-X-KEY tag: "'+D+'"');break;case"START":h.startTimeOffset=ie(D);break;case"MAP":var V=new _(D);if(Ht(h,V,["BYTERANGE","URI"]),y.duration){var Y=new B(i,e);oe(Y,V,r,u),c=Y,y.initSegment=c,c.rawProgramDateTime&&!y.rawProgramDateTime&&(y.rawProgramDateTime=c.rawProgramDateTime)}else oe(y,V,r,u),c=y,S=!0;break;case"SERVER-CONTROL":var W=new _(D);h.canBlockReload=W.bool("CAN-BLOCK-RELOAD"),h.canSkipUntil=W.optionalFloat("CAN-SKIP-UNTIL",0),h.canSkipDateRanges=h.canSkipUntil>0&&W.bool("CAN-SKIP-DATERANGES"),h.partHoldBack=W.optionalFloat("PART-HOLD-BACK",0),h.holdBack=W.optionalFloat("HOLD-BACK",0);break;case"PART-INF":var j=new _(D);h.partTarget=j.decimalFloatingPoint("PART-TARGET");break;case"PART":var q=h.partList;q||(q=h.partList=[]);var X=g>0?q[q.length-1]:void 0,z=g++,Q=new _(D);Ht(h,Q,["BYTERANGE","URI"]);var $=new G(Q,y,e,z,X);q.push($),y.duration+=$.duration;break;case"PRELOAD-HINT":var J=new _(D);Ht(h,J,["URI"]),h.preloadHint=J;break;case"RENDITION-REPORT":var Z=new _(D);Ht(h,Z,["URI"]),h.renditionReports=h.renditionReports||[],h.renditionReports.push(Z);break;default:I.warn("line parsed but not handled: "+s)}}}p&&!p.relurl?(d.pop(),v-=p.duration,h.partList&&(h.fragmentHint=p)):h.partList&&(se(y,p),y.cc=m,h.fragmentHint=y,u&&le(y,u,h));var tt=d.length,et=d[0],rt=d[tt-1];if((v+=h.skippedSegments*h.targetduration)>0&&tt&&rt){h.averagetargetduration=v/tt;var it=rt.sn;h.endSN="initSegment"!==it?it:0,h.live||(rt.endList=!0),et&&(h.startCC=et.cc)}else h.endSN=0,h.startCC=0;return h.fragmentHint&&(v+=h.fragmentHint.duration),h.totalduration=v,h.endCC=m,E>0&&function(t,e){for(var r=t[e],i=e;i--;){var n=t[i];if(!n)return;n.programDateTime=r.programDateTime-1e3*n.duration,r=n}}(d,E),h},t}();function re(t,e,r){var i,n,a=new _(t);Ht(r,a,["KEYFORMAT","KEYFORMATVERSIONS","URI","IV","URI"]);var s=null!=(i=a.METHOD)?i:"",o=a.URI,l=a.hexadecimalInteger("IV"),u=a.KEYFORMATVERSIONS,h=null!=(n=a.KEYFORMAT)?n:"identity";o&&a.IV&&!l&&I.error("Invalid IV: "+a.IV);var d=o?ee.resolve(o,e):"",c=(u||"1").split("/").map(Number).filter(Number.isFinite);return new Bt(s,d,h,c,l)}function ie(t){var e=new _(t).decimalFloatingPoint("TIME-OFFSET");return T(e)?e:null}function ne(t,e){["video","audio","text"].forEach((function(r){var i=t.filter((function(t){return function(t,e){var r=qt[e];return!!r&&!0===r[t.slice(0,4)]}(t,r)}));if(i.length){var n=i.filter((function(t){return 0===t.lastIndexOf("avc1",0)||0===t.lastIndexOf("mp4a",0)}));e[r+"Codec"]=n.length>0?n[0]:i[0],t=t.filter((function(t){return-1===i.indexOf(t)}))}})),e.unknownCodecs=t}function ae(t,e,r){var i=e[r];i&&(t[r]=i)}function se(t,e){t.rawProgramDateTime?t.programDateTime=Date.parse(t.rawProgramDateTime):null!=e&&e.programDateTime&&(t.programDateTime=e.endProgramDateTime),T(t.programDateTime)||(t.programDateTime=null,t.rawProgramDateTime=null)}function oe(t,e,r,i){t.relurl=e.URI,e.BYTERANGE&&t.setByteRange(e.BYTERANGE),t.level=r,t.sn="initSegment",i&&(t.levelkeys=i),t.initSegment=null}function le(t,e,r){t.levelkeys=e;var i=r.encryptedFragments;i.length&&i[i.length-1].levelkeys===e||!Object.keys(e).some((function(t){return e[t].isCommonEncryption}))||i.push(t)}var ue="manifest",he="level",de="audioTrack",ce="subtitleTrack",fe="main",ge="audio",ve="subtitle";function me(t){switch(t.type){case de:return ge;case ce:return ve;default:return fe}}function pe(t,e){var r=t.url;return void 0!==r&&0!==r.indexOf("data:")||(r=e.url),r}var ye=function(){function t(t){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.hls=t,this.registerListeners()}var e=t.prototype;return e.startLoad=function(t){},e.stopLoad=function(){this.destroyInternalLoaders()},e.registerListeners=function(){var t=this.hls;t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.LEVEL_LOADING,this.onLevelLoading,this),t.on(E.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.on(E.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},e.unregisterListeners=function(){var t=this.hls;t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.LEVEL_LOADING,this.onLevelLoading,this),t.off(E.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.off(E.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},e.createInternalLoader=function(t){var e=this.hls.config,r=e.pLoader,i=e.loader,n=new(r||i)(e);return this.loaders[t.type]=n,n},e.getInternalLoader=function(t){return this.loaders[t.type]},e.resetInternalLoader=function(t){this.loaders[t]&&delete this.loaders[t]},e.destroyInternalLoaders=function(){for(var t in this.loaders){var e=this.loaders[t];e&&e.destroy(),this.resetInternalLoader(t)}},e.destroy=function(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()},e.onManifestLoading=function(t,e){var r=e.url;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:ue,url:r,deliveryDirectives:null})},e.onLevelLoading=function(t,e){var r=e.id,i=e.level,n=e.url,a=e.deliveryDirectives;this.load({id:r,level:i,responseType:"text",type:he,url:n,deliveryDirectives:a})},e.onAudioTrackLoading=function(t,e){var r=e.id,i=e.groupId,n=e.url,a=e.deliveryDirectives;this.load({id:r,groupId:i,level:null,responseType:"text",type:de,url:n,deliveryDirectives:a})},e.onSubtitleTrackLoading=function(t,e){var r=e.id,i=e.groupId,n=e.url,a=e.deliveryDirectives;this.load({id:r,groupId:i,level:null,responseType:"text",type:ce,url:n,deliveryDirectives:a})},e.load=function(t){var e,r,i,n=this,a=this.hls.config,s=this.getInternalLoader(t);if(s){var l=s.context;if(l&&l.url===t.url)return void I.trace("[playlist-loader]: playlist request ongoing");I.log("[playlist-loader]: aborting previous loader for type: "+t.type),s.abort()}if(r=t.type===ue?a.manifestLoadPolicy.default:o({},a.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),s=this.createInternalLoader(t),null!=(e=t.deliveryDirectives)&&e.part&&(t.type===he&&null!==t.level?i=this.hls.levels[t.level].details:t.type===de&&null!==t.id?i=this.hls.audioTracks[t.id].details:t.type===ce&&null!==t.id&&(i=this.hls.subtitleTracks[t.id].details),i)){var u=i.partTarget,h=i.targetduration;if(u&&h){var d=1e3*Math.max(3*u,.8*h);r=o({},r,{maxTimeToFirstByteMs:Math.min(d,r.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(d,r.maxTimeToFirstByteMs)})}}var c=r.errorRetry||r.timeoutRetry||{},f={loadPolicy:r,timeout:r.maxLoadTimeMs,maxRetry:c.maxNumRetry||0,retryDelay:c.retryDelayMs||0,maxRetryDelay:c.maxRetryDelayMs||0},g={onSuccess:function(t,e,r,i){var a=n.getInternalLoader(r);n.resetInternalLoader(r.type);var s=t.data;0===s.indexOf("#EXTM3U")?(e.parsing.start=performance.now(),ee.isMediaPlaylist(s)?n.handleTrackOrLevelPlaylist(t,e,r,i||null,a):n.handleMasterPlaylist(t,e,r,i)):n.handleManifestParsingError(t,r,new Error("no EXTM3U delimiter"),i||null,e)},onError:function(t,e,r,i){n.handleNetworkError(e,r,!1,t,i)},onTimeout:function(t,e,r){n.handleNetworkError(e,r,!0,void 0,t)}};s.load(t,f,g)},e.handleMasterPlaylist=function(t,e,r,i){var n=this.hls,a=t.data,s=pe(t,r),o=ee.parseMasterPlaylist(a,s);if(o.playlistParsingError)this.handleManifestParsingError(t,r,o.playlistParsingError,i,e);else{var l=o.contentSteering,u=o.levels,h=o.sessionData,d=o.sessionKeys,c=o.startTimeOffset,f=o.variableList;this.variableList=f;var g=ee.parseMasterPlaylistMedia(a,s,o),v=g.AUDIO,m=void 0===v?[]:v,p=g.SUBTITLES,y=g["CLOSED-CAPTIONS"];m.length&&(m.some((function(t){return!t.url}))||!u[0].audioCodec||u[0].attrs.AUDIO||(I.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),m.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new _({}),bitrate:0,url:""}))),n.trigger(E.MANIFEST_LOADED,{levels:u,audioTracks:m,subtitles:p,captions:y,contentSteering:l,url:s,stats:e,networkDetails:i,sessionData:h,sessionKeys:d,startTimeOffset:c,variableList:f})}},e.handleTrackOrLevelPlaylist=function(t,e,r,i,n){var a=this.hls,s=r.id,o=r.level,l=r.type,u=pe(t,r),h=T(s)?s:0,d=T(o)?o:h,c=me(r),f=ee.parseLevelPlaylist(t.data,u,d,c,h,this.variableList);if(l===ue){var g={attrs:new _({}),bitrate:0,details:f,name:"",url:u};a.trigger(E.MANIFEST_LOADED,{levels:[g],audioTracks:[],url:u,stats:e,networkDetails:i,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}e.parsing.end=performance.now(),r.levelDetails=f,this.handlePlaylistLoaded(f,t,e,r,i,n)},e.handleManifestParsingError=function(t,e,r,i,n){this.hls.trigger(E.ERROR,{type:S.NETWORK_ERROR,details:L.MANIFEST_PARSING_ERROR,fatal:e.type===ue,url:t.url,err:r,error:r,reason:r.message,response:t,context:e,networkDetails:i,stats:n})},e.handleNetworkError=function(t,e,r,n,a){void 0===r&&(r=!1);var s="A network "+(r?"timeout":"error"+(n?" (status "+n.code+")":""))+" occurred while loading "+t.type;t.type===he?s+=": "+t.level+" id: "+t.id:t.type!==de&&t.type!==ce||(s+=" id: "+t.id+' group-id: "'+t.groupId+'"');var o=new Error(s);I.warn("[playlist-loader]: "+s);var l=L.UNKNOWN,u=!1,h=this.getInternalLoader(t);switch(t.type){case ue:l=r?L.MANIFEST_LOAD_TIMEOUT:L.MANIFEST_LOAD_ERROR,u=!0;break;case he:l=r?L.LEVEL_LOAD_TIMEOUT:L.LEVEL_LOAD_ERROR,u=!1;break;case de:l=r?L.AUDIO_TRACK_LOAD_TIMEOUT:L.AUDIO_TRACK_LOAD_ERROR,u=!1;break;case ce:l=r?L.SUBTITLE_TRACK_LOAD_TIMEOUT:L.SUBTITLE_LOAD_ERROR,u=!1}h&&this.resetInternalLoader(t.type);var d={type:S.NETWORK_ERROR,details:l,fatal:u,url:t.url,loader:h,context:t,error:o,networkDetails:e,stats:a};if(n){var c=(null==e?void 0:e.url)||t.url;d.response=i({url:c,data:void 0},n)}this.hls.trigger(E.ERROR,d)},e.handlePlaylistLoaded=function(t,e,r,i,n,a){var s=this.hls,o=i.type,l=i.level,u=i.id,h=i.groupId,d=i.deliveryDirectives,c=pe(e,i),f=me(i),g="number"==typeof i.level&&f===fe?l:void 0;if(t.fragments.length){t.targetduration||(t.playlistParsingError=new Error("Missing Target Duration"));var v=t.playlistParsingError;if(v)s.trigger(E.ERROR,{type:S.NETWORK_ERROR,details:L.LEVEL_PARSING_ERROR,fatal:!1,url:c,error:v,reason:v.message,response:e,context:i,level:g,parent:f,networkDetails:n,stats:r});else switch(t.live&&a&&(a.getCacheAge&&(t.ageHeader=a.getCacheAge()||0),a.getCacheAge&&!isNaN(t.ageHeader)||(t.ageHeader=0)),o){case ue:case he:s.trigger(E.LEVEL_LOADED,{details:t,level:g||0,id:u||0,stats:r,networkDetails:n,deliveryDirectives:d});break;case de:s.trigger(E.AUDIO_TRACK_LOADED,{details:t,id:u||0,groupId:h||"",stats:r,networkDetails:n,deliveryDirectives:d});break;case ce:s.trigger(E.SUBTITLE_TRACK_LOADED,{details:t,id:u||0,groupId:h||"",stats:r,networkDetails:n,deliveryDirectives:d})}}else{var m=new Error("No Segments found in Playlist");s.trigger(E.ERROR,{type:S.NETWORK_ERROR,details:L.LEVEL_EMPTY_ERROR,fatal:!1,url:c,error:m,reason:m.message,response:e,context:i,level:g,parent:f,networkDetails:n,stats:r})}},t}();function Te(t,e){var r;try{r=new Event("addtrack")}catch(t){(r=document.createEvent("Event")).initEvent("addtrack",!1,!1)}r.track=t,e.dispatchEvent(r)}function Ee(t,e){var r=t.mode;if("disabled"===r&&(t.mode="hidden"),t.cues&&!t.cues.getCueById(e.id))try{if(t.addCue(e),!t.cues.getCueById(e.id))throw new Error("addCue is failed for: "+e)}catch(r){I.debug("[texttrack-utils]: "+r);var i=new self.TextTrackCue(e.startTime,e.endTime,e.text);i.id=e.id,t.addCue(i)}"disabled"===r&&(t.mode=r)}function Se(t){var e=t.mode;if("disabled"===e&&(t.mode="hidden"),t.cues)for(var r=t.cues.length;r--;)t.removeCue(t.cues[r]);"disabled"===e&&(t.mode=e)}function Le(t,e,r,i){var n=t.mode;if("disabled"===n&&(t.mode="hidden"),t.cues&&t.cues.length>0)for(var a=function(t,e,r){var i=[],n=function(t,e){if(e<t[0].startTime)return 0;var r=t.length-1;if(e>t[r].endTime)return-1;for(var i=0,n=r;i<=n;){var a=Math.floor((n+i)/2);if(e<t[a].startTime)n=a-1;else{if(!(e>t[a].startTime&&i<r))return a;i=a+1}}return t[i].startTime-e<e-t[n].startTime?i:n}(t,e);if(n>-1)for(var a=n,s=t.length;a<s;a++){var o=t[a];if(o.startTime>=e&&o.endTime<=r)i.push(o);else if(o.startTime>r)return i}return i}(t.cues,e,r),s=0;s<a.length;s++)i&&!i(a[s])||t.removeCue(a[s]);"disabled"===n&&(t.mode=n)}var Re="org.id3",Ae="com.apple.quicktime.HLS",ke="https://aomedia.org/emsg/ID3";function be(){if("undefined"!=typeof self)return self.WebKitDataCue||self.VTTCue||self.TextTrackCue}var De=function(){var t=be();try{new t(0,Number.POSITIVE_INFINITY,"")}catch(t){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY}();function Ie(t,e){return t.getTime()/1e3-e}var we=function(){function t(t){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=t,this._registerListeners()}var e=t.prototype;return e.destroy=function(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null},e._registerListeners=function(){var t=this.hls;t.on(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.on(E.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(E.LEVEL_UPDATED,this.onLevelUpdated,this)},e._unregisterListeners=function(){var t=this.hls;t.off(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.off(E.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(E.LEVEL_UPDATED,this.onLevelUpdated,this)},e.onMediaAttached=function(t,e){this.media=e.media},e.onMediaDetaching=function(){this.id3Track&&(Se(this.id3Track),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={})},e.onManifestLoading=function(){this.dateRangeCuesAppended={}},e.createTrack=function(t){var e=this.getID3Track(t.textTracks);return e.mode="hidden",e},e.getID3Track=function(t){if(this.media){for(var e=0;e<t.length;e++){var r=t[e];if("metadata"===r.kind&&"id3"===r.label)return Te(r,this.media),r}return this.media.addTextTrack("metadata","id3")}},e.onFragParsingMetadata=function(t,e){if(this.media){var r=this.hls.config,i=r.enableEmsgMetadataCues,n=r.enableID3MetadataCues;if(i||n){var a=e.samples;this.id3Track||(this.id3Track=this.createTrack(this.media));for(var s=be(),o=0;o<a.length;o++){var l=a[o].type;if((l!==ke||i)&&n){var u=ht(a[o].data);if(u){var h=a[o].pts,d=h+a[o].duration;d>De&&(d=De),d-h<=0&&(d=h+.25);for(var c=0;c<u.length;c++){var f=u[c];if(!lt(f)){this.updateId3CueEnds(h);var g=new s(h,d,"");g.value=f,l&&(g.type=l),this.id3Track.addCue(g)}}}}}}}},e.updateId3CueEnds=function(t){var e,r=null==(e=this.id3Track)?void 0:e.cues;if(r)for(var i=r.length;i--;){var n=r[i];n.startTime<t&&n.endTime===De&&(n.endTime=t)}},e.onBufferFlushing=function(t,e){var r=e.startOffset,i=e.endOffset,n=e.type,a=this.id3Track,s=this.hls;if(s){var o=s.config,l=o.enableEmsgMetadataCues,u=o.enableID3MetadataCues;a&&(l||u)&&Le(a,r,i,"audio"===n?function(t){return t.type===Re&&u}:"video"===n?function(t){return t.type===ke&&l}:function(t){return t.type===Re&&u||t.type===ke&&l})}},e.onLevelUpdated=function(t,e){var r=this,i=e.details;if(this.media&&i.hasProgramDateTime&&this.hls.config.enableDateRangeMetadataCues){var n=this.dateRangeCuesAppended,a=this.id3Track,s=i.dateRanges,o=Object.keys(s);if(a)for(var l=Object.keys(n).filter((function(t){return!o.includes(t)})),u=function(){var t=l[h];Object.keys(n[t].cues).forEach((function(e){a.removeCue(n[t].cues[e])})),delete n[t]},h=l.length;h--;)u();var d=i.fragments[i.fragments.length-1];if(0!==o.length&&T(null==d?void 0:d.programDateTime)){this.id3Track||(this.id3Track=this.createTrack(this.media));for(var c=d.programDateTime/1e3-d.start,f=be(),g=function(){var t=o[v],e=s[t],i=n[t],a=(null==i?void 0:i.cues)||{},l=(null==i?void 0:i.durationKnown)||!1,u=Ie(e.startDate,c),h=De,d=e.endDate;if(d)h=Ie(d,c),l=!0;else if(e.endOnNext&&!l){var g=o.reduce((function(t,r){var i=s[r];return i.class===e.class&&i.id!==r&&i.startDate>e.startDate&&t.push(i),t}),[]).sort((function(t,e){return t.startDate.getTime()-e.startDate.getTime()}))[0];g&&(h=Ie(g.startDate,c),l=!0)}for(var m,p,y=Object.keys(e.attr),T=0;T<y.length;T++){var E=y[T];if("ID"!==(p=E)&&"CLASS"!==p&&"START-DATE"!==p&&"DURATION"!==p&&"END-DATE"!==p&&"END-ON-NEXT"!==p){var S=a[E];if(S)l&&!i.durationKnown&&(S.endTime=h);else{var L=e.attr[E];S=new f(u,h,""),P(E)&&(m=L,L=Uint8Array.from(m.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer),S.value={key:E,data:L},S.type=Ae,S.id=t,r.id3Track.addCue(S),a[E]=S}}}n[t]={cues:a,dateRange:e,durationKnown:l}},v=0;v<o.length;v++)g()}}},t}(),Ce=function(){function t(t){var e=this;this.hls=void 0,this.config=void 0,this.media=null,this.levelDetails=null,this.currentTime=0,this.stallCount=0,this._latency=null,this.timeupdateHandler=function(){return e.timeupdate()},this.hls=t,this.config=t.config,this.registerListeners()}var e=t.prototype;return e.destroy=function(){this.unregisterListeners(),this.onMediaDetaching(),this.levelDetails=null,this.hls=this.timeupdateHandler=null},e.registerListeners=function(){this.hls.on(E.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(E.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.on(E.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(E.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.on(E.ERROR,this.onError,this)},e.unregisterListeners=function(){this.hls.off(E.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(E.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.off(E.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(E.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.off(E.ERROR,this.onError,this)},e.onMediaAttached=function(t,e){this.media=e.media,this.media.addEventListener("timeupdate",this.timeupdateHandler)},e.onMediaDetaching=function(){this.media&&(this.media.removeEventListener("timeupdate",this.timeupdateHandler),this.media=null)},e.onManifestLoading=function(){this.levelDetails=null,this._latency=null,this.stallCount=0},e.onLevelUpdated=function(t,e){var r=e.details;this.levelDetails=r,r.advanced&&this.timeupdate(),!r.live&&this.media&&this.media.removeEventListener("timeupdate",this.timeupdateHandler)},e.onError=function(t,e){var r;e.details===L.BUFFER_STALLED_ERROR&&(this.stallCount++,null!=(r=this.levelDetails)&&r.live&&I.warn("[playback-rate-controller]: Stall detected, adjusting target latency"))},e.timeupdate=function(){var t=this.media,e=this.levelDetails;if(t&&e){this.currentTime=t.currentTime;var r=this.computeLatency();if(null!==r){this._latency=r;var i=this.config,n=i.lowLatencyMode,a=i.maxLiveSyncPlaybackRate;if(n&&1!==a){var s=this.targetLatency;if(null!==s){var o=r-s,l=o<Math.min(this.maxLatency,s+e.targetduration);if(e.live&&l&&o>.05&&this.forwardBufferLength>1){var u=Math.min(2,Math.max(1,a)),h=Math.round(2/(1+Math.exp(-.75*o-this.edgeStalled))*20)/20;t.playbackRate=Math.min(u,Math.max(1,h))}else 1!==t.playbackRate&&0!==t.playbackRate&&(t.playbackRate=1)}}}}},e.estimateLiveEdge=function(){var t=this.levelDetails;return null===t?null:t.edge+t.age},e.computeLatency=function(){var t=this.estimateLiveEdge();return null===t?null:t-this.currentTime},a(t,[{key:"latency",get:function(){return this._latency||0}},{key:"maxLatency",get:function(){var t=this.config,e=this.levelDetails;return void 0!==t.liveMaxLatencyDuration?t.liveMaxLatencyDuration:e?t.liveMaxLatencyDurationCount*e.targetduration:0}},{key:"targetLatency",get:function(){var t=this.levelDetails;if(null===t)return null;var e=t.holdBack,r=t.partHoldBack,i=t.targetduration,n=this.config,a=n.liveSyncDuration,s=n.liveSyncDurationCount,o=n.lowLatencyMode,l=this.hls.userConfig,u=o&&r||e;(l.liveSyncDuration||l.liveSyncDurationCount||0===u)&&(u=void 0!==a?a:s*i);var h=i;return u+Math.min(1*this.stallCount,h)}},{key:"liveSyncPosition",get:function(){var t=this.estimateLiveEdge(),e=this.targetLatency,r=this.levelDetails;if(null===t||null===e||null===r)return null;var i=r.edge,n=t-e-this.edgeStalled,a=i-r.totalduration,s=i-(this.config.lowLatencyMode&&r.partTarget||r.targetduration);return Math.min(Math.max(a,n),s)}},{key:"drift",get:function(){var t=this.levelDetails;return null===t?1:t.drift}},{key:"edgeStalled",get:function(){var t=this.levelDetails;if(null===t)return 0;var e=3*(this.config.lowLatencyMode&&t.partTarget||t.targetduration);return Math.max(t.age-e,0)}},{key:"forwardBufferLength",get:function(){var t=this.media,e=this.levelDetails;if(!t||!e)return 0;var r=t.buffered.length;return(r?t.buffered.end(r-1):e.edge)-this.currentTime}}]),t}(),_e=["NONE","TYPE-0","TYPE-1",null],Pe="",xe="YES",Fe="v2",Oe=function(){function t(t,e,r){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=t,this.part=e,this.skip=r}return t.prototype.addDirectives=function(t){var e=new self.URL(t);return void 0!==this.msn&&e.searchParams.set("_HLS_msn",this.msn.toString()),void 0!==this.part&&e.searchParams.set("_HLS_part",this.part.toString()),this.skip&&e.searchParams.set("_HLS_skip",this.skip),e.href},t}(),Me=function(){function t(t){this._attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.videoCodec=void 0,this.width=void 0,this.unknownCodecs=void 0,this.audioGroupIds=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.textGroupIds=void 0,this.url=void 0,this._urlId=0,this.url=[t.url],this._attrs=[t.attrs],this.bitrate=t.bitrate,t.details&&(this.details=t.details),this.id=t.id||0,this.name=t.name,this.width=t.width||0,this.height=t.height||0,this.audioCodec=t.audioCodec,this.videoCodec=t.videoCodec,this.unknownCodecs=t.unknownCodecs,this.codecSet=[t.videoCodec,t.audioCodec].filter((function(t){return t})).join(",").replace(/\.[^.,]+/g,"")}return t.prototype.addFallback=function(t){this.url.push(t.url),this._attrs.push(t.attrs)},a(t,[{key:"maxBitrate",get:function(){return Math.max(this.realBitrate,this.bitrate)}},{key:"attrs",get:function(){return this._attrs[this._urlId]}},{key:"pathwayId",get:function(){return this.attrs["PATHWAY-ID"]||"."}},{key:"uri",get:function(){return this.url[this._urlId]||""}},{key:"urlId",get:function(){return this._urlId},set:function(t){var e=t%this.url.length;this._urlId!==e&&(this.fragmentError=0,this.loadError=0,this.details=void 0,this._urlId=e)}},{key:"audioGroupId",get:function(){var t;return null==(t=this.audioGroupIds)?void 0:t[this.urlId]}},{key:"textGroupId",get:function(){var t;return null==(t=this.textGroupIds)?void 0:t[this.urlId]}}]),t}();function Ne(t,e){var r=e.startPTS;if(T(r)){var i,n=0;e.sn>t.sn?(n=r-t.start,i=t):(n=t.start-r,i=e),i.duration!==n&&(i.duration=n)}else e.sn>t.sn?t.cc===e.cc&&t.minEndPTS?e.start=t.start+(t.minEndPTS-t.start):e.start=t.start+t.duration:e.start=Math.max(t.start-e.duration,0)}function Ue(t,e,r,i,n,a){i-r<=0&&(I.warn("Fragment should have a positive duration",e),i=r+e.duration,a=n+e.duration);var s=r,o=i,l=e.startPTS,u=e.endPTS;if(T(l)){var h=Math.abs(l-r);T(e.deltaPTS)?e.deltaPTS=Math.max(h,e.deltaPTS):e.deltaPTS=h,s=Math.max(r,l),r=Math.min(r,l),n=Math.min(n,e.startDTS),o=Math.min(i,u),i=Math.max(i,u),a=Math.max(a,e.endDTS)}var d=r-e.start;0!==e.start&&(e.start=r),e.duration=i-e.start,e.startPTS=r,e.maxStartPTS=s,e.startDTS=n,e.endPTS=i,e.minEndPTS=o,e.endDTS=a;var c,f=e.sn;if(!t||f<t.startSN||f>t.endSN)return 0;var g=f-t.startSN,v=t.fragments;for(v[g]=e,c=g;c>0;c--)Ne(v[c],v[c-1]);for(c=g;c<v.length-1;c++)Ne(v[c],v[c+1]);return t.fragmentHint&&Ne(v[v.length-1],t.fragmentHint),t.PTSKnown=t.alignedSliding=!0,d}function Be(t,e){for(var r=null,i=t.fragments,n=i.length-1;n>=0;n--){var a=i[n].initSegment;if(a){r=a;break}}t.fragmentHint&&delete t.fragmentHint.endPTS;var s,l,u,h,d,c=0;if(function(t,e,r){for(var i=e.skippedSegments,n=Math.max(t.startSN,e.startSN)-e.startSN,a=(t.fragmentHint?1:0)+(i?e.endSN:Math.min(t.endSN,e.endSN))-e.startSN,s=e.startSN-t.startSN,o=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments,l=t.fragmentHint?t.fragments.concat(t.fragmentHint):t.fragments,u=n;u<=a;u++){var h=l[s+u],d=o[u];i&&!d&&u<i&&(d=e.fragments[u]=h),h&&d&&r(h,d)}}(t,e,(function(t,i){t.relurl&&(c=t.cc-i.cc),T(t.startPTS)&&T(t.endPTS)&&(i.start=i.startPTS=t.startPTS,i.startDTS=t.startDTS,i.maxStartPTS=t.maxStartPTS,i.endPTS=t.endPTS,i.endDTS=t.endDTS,i.minEndPTS=t.minEndPTS,i.duration=t.endPTS-t.startPTS,i.duration&&(s=i),e.PTSKnown=e.alignedSliding=!0),i.elementaryStreams=t.elementaryStreams,i.loader=t.loader,i.stats=t.stats,i.urlId=t.urlId,t.initSegment&&(i.initSegment=t.initSegment,r=t.initSegment)})),r&&(e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments).forEach((function(t){var e;t.initSegment&&t.initSegment.relurl!==(null==(e=r)?void 0:e.relurl)||(t.initSegment=r)})),e.skippedSegments)if(e.deltaUpdateFailed=e.fragments.some((function(t){return!t})),e.deltaUpdateFailed){I.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(var f=e.skippedSegments;f--;)e.fragments.shift();e.startSN=e.fragments[0].sn,e.startCC=e.fragments[0].cc}else e.canSkipDateRanges&&(e.dateRanges=(l=t.dateRanges,u=e.dateRanges,h=e.recentlyRemovedDateranges,d=o({},l),h&&h.forEach((function(t){delete d[t]})),Object.keys(u).forEach((function(t){var e=new x(u[t].attr,d[t]);e.isValid?d[t]=e:I.warn('Ignoring invalid Playlist Delta Update DATERANGE tag: "'+JSON.stringify(u[t].attr)+'"')})),d));var g=e.fragments;if(c){I.warn("discontinuity sliding from playlist, take drift into account");for(var v=0;v<g.length;v++)g[v].cc+=c}e.skippedSegments&&(e.startCC=e.fragments[0].cc),function(t,e,r){if(t&&e)for(var i=0,n=0,a=t.length;n<=a;n++){var s=t[n],o=e[n+i];s&&o&&s.index===o.index&&s.fragment.sn===o.fragment.sn?r(s,o):i--}}(t.partList,e.partList,(function(t,e){e.elementaryStreams=t.elementaryStreams,e.stats=t.stats})),s?Ue(e,s,s.startPTS,s.endPTS,s.startDTS,s.endDTS):Ge(t,e),g.length&&(e.totalduration=e.edge-g[0].start),e.driftStartTime=t.driftStartTime,e.driftStart=t.driftStart;var m=e.advancedDateTime;if(e.advanced&&m){var p=e.edge;e.driftStart||(e.driftStartTime=m,e.driftStart=p),e.driftEndTime=m,e.driftEnd=p}else e.driftEndTime=t.driftEndTime,e.driftEnd=t.driftEnd,e.advancedDateTime=t.advancedDateTime}function Ge(t,e){var r=e.startSN+e.skippedSegments-t.startSN,i=t.fragments;r<0||r>=i.length||Ke(e,i[r].start)}function Ke(t,e){if(e){for(var r=t.fragments,i=t.skippedSegments;i<r.length;i++)r[i].start+=e;t.fragmentHint&&(t.fragmentHint.start+=e)}}function He(t,e,r){var i;return null!=t&&t.details?Ve(null==(i=t.details)?void 0:i.partList,e,r):null}function Ve(t,e,r){if(t)for(var i=t.length;i--;){var n=t[i];if(n.index===r&&n.fragment.sn===e)return n}return null}function Ye(t){switch(t.details){case L.FRAG_LOAD_TIMEOUT:case L.KEY_LOAD_TIMEOUT:case L.LEVEL_LOAD_TIMEOUT:case L.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function We(t,e){var r=Ye(e);return t.default[(r?"timeout":"error")+"Retry"]}function je(t,e){var r="linear"===t.backoff?1:Math.pow(2,e);return Math.min(r*t.retryDelayMs,t.maxRetryDelayMs)}function qe(t){return i(i({},t),{errorRetry:null,timeoutRetry:null})}function Xe(t,e,r,i){return!!t&&e<t.maxNumRetry&&(function(t){return 0===t&&!1===navigator.onLine||!!t&&(t<400||t>499)}(i)||!!r)}var ze={search:function(t,e){for(var r=0,i=t.length-1,n=null,a=null;r<=i;){var s=e(a=t[n=(r+i)/2|0]);if(s>0)r=n+1;else{if(!(s<0))return a;i=n-1}}return null}};function Qe(t,e,r,i){void 0===r&&(r=0),void 0===i&&(i=0);var n=null;if(t?n=e[t.sn-e[0].sn+1]||null:0===r&&0===e[0].start&&(n=e[0]),n&&0===$e(r,i,n))return n;var a=ze.search(e,$e.bind(null,r,i));return!a||a===t&&n?n:a}function $e(t,e,r){if(void 0===t&&(t=0),void 0===e&&(e=0),r.start<=t&&r.start+r.duration>t)return 0;var i=Math.min(e,r.duration+(r.deltaPTS?r.deltaPTS:0));return r.start+r.duration-i<=t?1:r.start-i>t&&r.start?-1:0}function Je(t,e,r){var i=1e3*Math.min(e,r.duration+(r.deltaPTS?r.deltaPTS:0));return(r.endProgramDateTime||0)-i>t}var Ze,tr=3e5,er=0,rr=2,ir=5,nr=0,ar=1,sr=2,or=function(){function t(t){this.hls=void 0,this.playlistError=0,this.penalizedRenditions={},this.log=void 0,this.warn=void 0,this.error=void 0,this.hls=t,this.log=I.log.bind(I,"[info]:"),this.warn=I.warn.bind(I,"[warning]:"),this.error=I.error.bind(I,"[error]:"),this.registerListeners()}var e=t.prototype;return e.registerListeners=function(){var t=this.hls;t.on(E.ERROR,this.onError,this),t.on(E.MANIFEST_LOADING,this.onManifestLoading,this)},e.unregisterListeners=function(){var t=this.hls;t&&(t.off(E.ERROR,this.onError,this),t.off(E.ERROR,this.onErrorOut,this),t.off(E.MANIFEST_LOADING,this.onManifestLoading,this))},e.destroy=function(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}},e.startLoad=function(t){this.playlistError=0},e.stopLoad=function(){},e.getVariantLevelIndex=function(t){return(null==t?void 0:t.type)===fe?t.level:this.hls.loadLevel},e.onManifestLoading=function(){this.playlistError=0,this.penalizedRenditions={}},e.onError=function(t,e){var r;if(!e.fatal){var i=this.hls,n=e.context;switch(e.details){case L.FRAG_LOAD_ERROR:case L.FRAG_LOAD_TIMEOUT:case L.KEY_LOAD_ERROR:case L.KEY_LOAD_TIMEOUT:return void(e.errorAction=this.getFragRetryOrSwitchAction(e));case L.FRAG_GAP:case L.FRAG_PARSING_ERROR:case L.FRAG_DECRYPT_ERROR:return e.errorAction=this.getFragRetryOrSwitchAction(e),void(e.errorAction.action=rr);case L.LEVEL_EMPTY_ERROR:case L.LEVEL_PARSING_ERROR:var a,s,o=e.parent===fe?e.level:i.loadLevel;return void(e.details===L.LEVEL_EMPTY_ERROR&&null!=(a=e.context)&&null!=(s=a.levelDetails)&&s.live?e.errorAction=this.getPlaylistRetryOrSwitchAction(e,o):(e.levelRetry=!1,e.errorAction=this.getLevelSwitchAction(e,o)));case L.LEVEL_LOAD_ERROR:case L.LEVEL_LOAD_TIMEOUT:return void("number"==typeof(null==n?void 0:n.level)&&(e.errorAction=this.getPlaylistRetryOrSwitchAction(e,n.level)));case L.AUDIO_TRACK_LOAD_ERROR:case L.AUDIO_TRACK_LOAD_TIMEOUT:case L.SUBTITLE_LOAD_ERROR:case L.SUBTITLE_TRACK_LOAD_TIMEOUT:if(n){var l=i.levels[i.loadLevel];if(l&&(n.type===de&&n.groupId===l.audioGroupId||n.type===ce&&n.groupId===l.textGroupId))return e.errorAction=this.getPlaylistRetryOrSwitchAction(e,i.loadLevel),e.errorAction.action=rr,void(e.errorAction.flags=ar)}return;case L.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:var u=i.levels[i.loadLevel],h=null==u?void 0:u.attrs["HDCP-LEVEL"];return void(h&&(e.errorAction={action:rr,flags:sr,hdcpLevel:h}));case L.BUFFER_ADD_CODEC_ERROR:case L.REMUX_ALLOC_ERROR:return void(e.errorAction=this.getLevelSwitchAction(e,null!=(r=e.level)?r:i.loadLevel));case L.INTERNAL_EXCEPTION:case L.BUFFER_APPENDING_ERROR:case L.BUFFER_APPEND_ERROR:case L.BUFFER_FULL_ERROR:case L.LEVEL_SWITCH_ERROR:case L.BUFFER_STALLED_ERROR:case L.BUFFER_SEEK_OVER_HOLE:case L.BUFFER_NUDGE_ON_STALL:return void(e.errorAction={action:er,flags:nr})}if(e.type===S.KEY_SYSTEM_ERROR){var d=this.getVariantLevelIndex(e.frag);return e.levelRetry=!1,void(e.errorAction=this.getLevelSwitchAction(e,d))}}},e.getPlaylistRetryOrSwitchAction=function(t,e){var r,i=We(this.hls.config.playlistLoadPolicy,t),n=this.playlistError++,a=null==(r=t.response)?void 0:r.code;if(Xe(i,n,Ye(t),a))return{action:ir,flags:nr,retryConfig:i,retryCount:n};var s=this.getLevelSwitchAction(t,e);return i&&(s.retryConfig=i,s.retryCount=n),s},e.getFragRetryOrSwitchAction=function(t){var e=this.hls,r=this.getVariantLevelIndex(t.frag),i=e.levels[r],n=e.config,a=n.fragLoadPolicy,s=n.keyLoadPolicy,o=We(t.details.startsWith("key")?s:a,t),l=e.levels.reduce((function(t,e){return t+e.fragmentError}),0);if(i){var u;t.details!==L.FRAG_GAP&&i.fragmentError++;var h=null==(u=t.response)?void 0:u.code;if(Xe(o,l,Ye(t),h))return{action:ir,flags:nr,retryConfig:o,retryCount:l}}var d=this.getLevelSwitchAction(t,r);return o&&(d.retryConfig=o,d.retryCount=l),d},e.getLevelSwitchAction=function(t,e){var r=this.hls;null==e&&(e=r.loadLevel);var i=this.hls.levels[e];if(i&&(i.loadError++,r.autoLevelEnabled)){for(var n,a,s=-1,o=r.levels,l=null==(n=t.frag)?void 0:n.type,u=null!=(a=t.context)?a:{},h=u.type,d=u.groupId,c=o.length;c--;){var f=(c+r.loadLevel)%o.length;if(f!==r.loadLevel&&0===o[f].loadError){var g=o[f];if(t.details===L.FRAG_GAP&&t.frag){var v=o[f].details;if(v){var m=Qe(t.frag,v.fragments,t.frag.start);if(null!=m&&m.gap)continue}}else{if(h===de&&d===g.audioGroupId||h===ce&&d===g.textGroupId)continue;if(l===ge&&i.audioGroupId===g.audioGroupId||l===ve&&i.textGroupId===g.textGroupId)continue}s=f;break}}if(s>-1&&r.loadLevel!==s)return t.levelRetry=!0,{action:rr,flags:nr,nextAutoLevel:s}}return{action:rr,flags:ar}},e.onErrorOut=function(t,e){var r;switch(null==(r=e.errorAction)?void 0:r.action){case er:break;case rr:this.sendAlternateToPenaltyBox(e),e.errorAction.resolved||e.details===L.FRAG_GAP||(e.fatal=!0)}e.fatal&&this.hls.stopLoad()},e.sendAlternateToPenaltyBox=function(t){var e=this.hls,r=t.errorAction;if(r){var i=r.flags,n=r.hdcpLevel,a=r.nextAutoLevel;switch(i){case nr:this.switchLevel(t,a);break;case ar:r.resolved||(r.resolved=this.redundantFailover(t));break;case sr:n&&(e.maxHdcpLevel=_e[_e.indexOf(n)-1],r.resolved=!0),this.warn('Restricting playback to HDCP-LEVEL of "'+e.maxHdcpLevel+'" or lower')}r.resolved||this.switchLevel(t,a)}},e.switchLevel=function(t,e){void 0!==e&&t.errorAction&&(this.warn("switching to level "+e+" after "+t.details),this.hls.nextAutoLevel=e,t.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)},e.redundantFailover=function(t){var e=this,r=this.hls,i=this.penalizedRenditions,n=t.parent===fe?t.level:r.loadLevel,a=r.levels[n],s=a.url.length,o=t.frag?t.frag.urlId:a.urlId;a.urlId!==o||t.frag&&!a.details||this.penalizeRendition(a,t);for(var l=function(){var l=(o+u)%s,h=i[l];if(!h||function(t,e,r){if(performance.now()-t.lastErrorPerfMs>tr)return!0;var i=t.details;if(e.details===L.FRAG_GAP&&i&&e.frag){var n=e.frag.start,a=Qe(null,i.fragments,n);if(a&&!a.gap)return!0}if(r&&t.errors.length<r.errors.length){var s=t.errors[t.errors.length-1];if(i&&s.frag&&e.frag&&Math.abs(s.frag.start-e.frag.start)>3*i.targetduration)return!0}return!1}(h,t,i[o]))return e.warn("Switching to Redundant Stream "+(l+1)+"/"+s+': "'+a.url[l]+'" after '+t.details),e.playlistError=0,r.levels.forEach((function(t){t.urlId=l})),r.nextLoadLevel=n,{v:!0}},u=1;u<s;u++){var h=l();if("object"==typeof h)return h.v}return!1},e.penalizeRendition=function(t,e){var r=this.penalizedRenditions,i=r[t.urlId]||{lastErrorPerfMs:0,errors:[],details:void 0};i.lastErrorPerfMs=performance.now(),i.errors.push(e),i.details=t.details,r[t.urlId]=i},t}(),lr=function(){function t(t,e){this.hls=void 0,this.timer=-1,this.requestScheduled=-1,this.canLoad=!1,this.log=void 0,this.warn=void 0,this.log=I.log.bind(I,e+":"),this.warn=I.warn.bind(I,e+":"),this.hls=t}var e=t.prototype;return e.destroy=function(){this.clearTimer(),this.hls=this.log=this.warn=null},e.clearTimer=function(){clearTimeout(this.timer),this.timer=-1},e.startLoad=function(){this.canLoad=!0,this.requestScheduled=-1,this.loadPlaylist()},e.stopLoad=function(){this.canLoad=!1,this.clearTimer()},e.switchParams=function(t,e){var r=null==e?void 0:e.renditionReports;if(r){for(var i=-1,n=0;n<r.length;n++){var a=r[n],s=void 0;try{s=new self.URL(a.URI,e.url).href}catch(t){I.warn("Could not construct new URL for Rendition Report: "+t),s=a.URI||""}if(s===t){i=n;break}s===t.substring(0,s.length)&&(i=n)}if(-1!==i){var o=r[i],l=parseInt(o["LAST-MSN"])||(null==e?void 0:e.lastPartSn),u=parseInt(o["LAST-PART"])||(null==e?void 0:e.lastPartIndex);if(this.hls.config.lowLatencyMode){var h=Math.min(e.age-e.partTarget,e.targetduration);u>=0&&h>e.partTarget&&(u+=1)}return new Oe(l,u>=0?u:void 0,Pe)}}},e.loadPlaylist=function(t){-1===this.requestScheduled&&(this.requestScheduled=self.performance.now())},e.shouldLoadPlaylist=function(t){return this.canLoad&&!!t&&!!t.url&&(!t.details||t.details.live)},e.shouldReloadPlaylist=function(t){return-1===this.timer&&-1===this.requestScheduled&&this.shouldLoadPlaylist(t)},e.playlistLoaded=function(t,e,r){var i=this,n=e.details,a=e.stats,s=self.performance.now(),o=a.loading.first?Math.max(0,s-a.loading.first):0;if(n.advancedDateTime=Date.now()-o,n.live||null!=r&&r.live){if(n.reloaded(r),r&&this.log("live playlist "+t+" "+(n.advanced?"REFRESHED "+n.lastPartSn+"-"+n.lastPartIndex:"MISSED")),r&&n.fragments.length>0&&Be(r,n),!this.canLoad||!n.live)return;var l,u=void 0,h=void 0;if(n.canBlockReload&&n.endSN&&n.advanced){var d=this.hls.config.lowLatencyMode,c=n.lastPartSn,f=n.endSN,g=n.lastPartIndex,v=c===f;-1!==g?(u=v?f+1:c,h=v?d?0:g:g+1):u=f+1;var m=n.age,p=m+n.ageHeader,y=Math.min(p-n.partTarget,1.5*n.targetduration);if(y>0){if(r&&y>r.tuneInGoal)this.warn("CDN Tune-in goal increased from: "+r.tuneInGoal+" to: "+y+" with playlist age: "+n.age),y=0;else{var T=Math.floor(y/n.targetduration);u+=T,void 0!==h&&(h+=Math.round(y%n.targetduration/n.partTarget)),this.log("CDN Tune-in age: "+n.ageHeader+"s last advanced "+m.toFixed(2)+"s goal: "+y+" skip sn "+T+" to part "+h)}n.tuneInGoal=y}if(l=this.getDeliveryDirectives(n,e.deliveryDirectives,u,h),d||!v)return void this.loadPlaylist(l)}else n.canBlockReload&&(l=this.getDeliveryDirectives(n,e.deliveryDirectives,u,h));var E=this.hls.mainForwardBufferInfo,S=E?E.end-E.len:0,L=function(t,e){void 0===e&&(e=1/0);var r=1e3*t.targetduration;if(t.updated){var i=t.fragments;if(i.length&&4*r>e){var n=1e3*i[i.length-1].duration;n<r&&(r=n)}}else r/=2;return Math.round(r)}(n,1e3*(n.edge-S));n.updated&&s>this.requestScheduled+L&&(this.requestScheduled=a.loading.start),void 0!==u&&n.canBlockReload?this.requestScheduled=a.loading.first+L-(1e3*n.partTarget||1e3):-1===this.requestScheduled||this.requestScheduled+L<s?this.requestScheduled=s:this.requestScheduled-s<=0&&(this.requestScheduled+=L);var R=this.requestScheduled-s;R=Math.max(0,R),this.log("reload live playlist "+t+" in "+Math.round(R)+" ms"),this.timer=self.setTimeout((function(){return i.loadPlaylist(l)}),R)}else this.clearTimer()},e.getDeliveryDirectives=function(t,e,r,i){var n=function(t,e){var r=t.canSkipUntil,i=t.canSkipDateRanges,n=t.endSN;return r&&(void 0!==e?e-n:0)<r?i?Fe:xe:Pe}(t,r);return null!=e&&e.skip&&t.deltaUpdateFailed&&(r=e.msn,i=e.part,n=Pe),new Oe(r,i,n)},e.checkRetry=function(t){var e=this,r=t.details,i=Ye(t),n=t.errorAction,a=n||{},s=a.action,o=a.retryCount,l=void 0===o?0:o,u=a.retryConfig,h=!!n&&!!u&&(s===ir||!n.resolved&&s===rr);if(h){var d;if(this.requestScheduled=-1,i&&null!=(d=t.context)&&d.deliveryDirectives)this.warn("Retrying playlist loading "+(l+1)+"/"+u.maxNumRetry+' after "'+r+'" without delivery-directives'),this.loadPlaylist();else{var c=je(u,l);this.timer=self.setTimeout((function(){return e.loadPlaylist()}),c),this.warn("Retrying playlist loading "+(l+1)+"/"+u.maxNumRetry+' after "'+r+'" in '+c+"ms")}t.levelRetry=!0,n.resolved=!0}return h},t}(),ur=function(t){function e(e,r){var i;return(i=t.call(this,e,"[level-controller]")||this)._levels=[],i._firstLevel=-1,i._startLevel=void 0,i.currentLevel=null,i.currentLevelIndex=-1,i.manualLevelIndex=-1,i.steering=void 0,i.onParsedComplete=void 0,i.steering=r,i._registerListeners(),i}l(e,t);var r=e.prototype;return r._registerListeners=function(){var t=this.hls;t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.MANIFEST_LOADED,this.onManifestLoaded,this),t.on(E.LEVEL_LOADED,this.onLevelLoaded,this),t.on(E.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(E.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.on(E.FRAG_LOADED,this.onFragLoaded,this),t.on(E.ERROR,this.onError,this)},r._unregisterListeners=function(){var t=this.hls;t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.MANIFEST_LOADED,this.onManifestLoaded,this),t.off(E.LEVEL_LOADED,this.onLevelLoaded,this),t.off(E.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(E.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.off(E.FRAG_LOADED,this.onFragLoaded,this),t.off(E.ERROR,this.onError,this)},r.destroy=function(){this._unregisterListeners(),this.steering=null,this.resetLevels(),t.prototype.destroy.call(this)},r.startLoad=function(){this._levels.forEach((function(t){t.loadError=0,t.fragmentError=0})),t.prototype.startLoad.call(this)},r.resetLevels=function(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[]},r.onManifestLoading=function(t,e){this.resetLevels()},r.onManifestLoaded=function(t,e){var r,i=[],n={};e.levels.forEach((function(t){var e,a=t.attrs;-1!==(null==(e=t.audioCodec)?void 0:e.indexOf("mp4a.40.34"))&&(Ze||(Ze=/chrome|firefox/i.test(navigator.userAgent)),Ze&&(t.audioCodec=void 0));var s=a.AUDIO,o=a.CODECS,l=a["FRAME-RATE"],u=a["PATHWAY-ID"],h=a.RESOLUTION,d=a.SUBTITLES,c=(u||".")+"-"+t.bitrate+"-"+h+"-"+l+"-"+o;(r=n[c])?r.addFallback(t):(r=new Me(t),n[c]=r,i.push(r)),hr(r,"audio",s),hr(r,"text",d)})),this.filterAndSortMediaOptions(i,e)},r.filterAndSortMediaOptions=function(t,e){var r=this,i=[],n=[],a=!1,s=!1,o=!1,l=t.filter((function(t){var e=t.audioCodec,r=t.videoCodec,i=t.width,n=t.height,l=t.unknownCodecs;return a||(a=!(!i||!n)),s||(s=!!r),o||(o=!!e),!(null!=l&&l.length)&&(!e||zt(e,"audio"))&&(!r||zt(r,"video"))}));if((a||s)&&o&&(l=l.filter((function(t){var e=t.videoCodec,r=t.width,i=t.height;return!!e||!(!r||!i)}))),0!==l.length){e.audioTracks&&dr(i=e.audioTracks.filter((function(t){return!t.audioCodec||zt(t.audioCodec,"audio")}))),e.subtitles&&dr(n=e.subtitles);var u=l.slice(0);l.sort((function(t,e){return t.attrs["HDCP-LEVEL"]!==e.attrs["HDCP-LEVEL"]?(t.attrs["HDCP-LEVEL"]||"")>(e.attrs["HDCP-LEVEL"]||"")?1:-1:t.bitrate!==e.bitrate?t.bitrate-e.bitrate:t.attrs["FRAME-RATE"]!==e.attrs["FRAME-RATE"]?t.attrs.decimalFloatingPoint("FRAME-RATE")-e.attrs.decimalFloatingPoint("FRAME-RATE"):t.attrs.SCORE!==e.attrs.SCORE?t.attrs.decimalFloatingPoint("SCORE")-e.attrs.decimalFloatingPoint("SCORE"):a&&t.height!==e.height?t.height-e.height:0}));var h=u[0];if(this.steering&&(l=this.steering.filterParsedLevels(l)).length!==u.length)for(var d=0;d<u.length;d++)if(u[d].pathwayId===l[0].pathwayId){h=u[d];break}this._levels=l;for(var c=0;c<l.length;c++)if(l[c]===h){this._firstLevel=c,this.log("manifest loaded, "+l.length+" level(s) found, first bitrate: "+h.bitrate);break}var f=o&&!s,g={levels:l,audioTracks:i,subtitleTracks:n,sessionData:e.sessionData,sessionKeys:e.sessionKeys,firstLevel:this._firstLevel,stats:e.stats,audio:o,video:s,altAudio:!f&&i.some((function(t){return!!t.url}))};this.hls.trigger(E.MANIFEST_PARSED,g),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}else Promise.resolve().then((function(){if(r.hls){var t=new Error("no level with compatible codecs found in manifest");r.hls.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:e.url,error:t,reason:t.message})}}))},r.onError=function(t,e){!e.fatal&&e.context&&e.context.type===he&&e.context.level===this.level&&this.checkRetry(e)},r.onFragLoaded=function(t,e){var r=e.frag;if(void 0!==r&&r.type===fe){var i=this._levels[r.level];void 0!==i&&(i.loadError=0)}},r.onLevelLoaded=function(t,e){var r,i,n=e.level,a=e.details,s=this._levels[n];if(!s)return this.warn("Invalid level index "+n),void(null!=(i=e.deliveryDirectives)&&i.skip&&(a.deltaUpdateFailed=!0));n===this.currentLevelIndex?(0===s.fragmentError&&(s.loadError=0),this.playlistLoaded(n,e,s.details)):null!=(r=e.deliveryDirectives)&&r.skip&&(a.deltaUpdateFailed=!0)},r.onAudioTrackSwitched=function(t,e){var r=this.currentLevel;if(r){var i=this.hls.audioTracks[e.id].groupId;if(r.audioGroupIds&&r.audioGroupId!==i){for(var n=-1,a=0;a<r.audioGroupIds.length;a++)if(r.audioGroupIds[a]===i){n=a;break}-1!==n&&n!==r.urlId&&(r.urlId=n,this.canLoad&&this.startLoad())}}},r.loadPlaylist=function(e){t.prototype.loadPlaylist.call(this);var r=this.currentLevelIndex,i=this.currentLevel;if(i&&this.shouldLoadPlaylist(i)){var n=i.urlId,a=i.uri;if(e)try{a=e.addDirectives(a)}catch(t){this.warn("Could not construct new URL with HLS Delivery Directives: "+t)}var s=i.attrs["PATHWAY-ID"];this.log("Loading level index "+r+(void 0!==(null==e?void 0:e.msn)?" at sn "+e.msn+" part "+e.part:"")+" with"+(s?" Pathway "+s:"")+" URI "+(n+1)+"/"+i.url.length+" "+a),this.clearTimer(),this.hls.trigger(E.LEVEL_LOADING,{url:a,level:r,id:n,deliveryDirectives:e||null})}},r.removeLevel=function(t,e){var r=this,i=function(t,r){return r!==e},n=this._levels.filter((function(n,a){return a!==t||(n.url.length>1&&void 0!==e?(n.url=n.url.filter(i),n.audioGroupIds&&(n.audioGroupIds=n.audioGroupIds.filter(i)),n.textGroupIds&&(n.textGroupIds=n.textGroupIds.filter(i)),n.urlId=0,!0):(r.steering&&r.steering.removeLevel(n),!1))}));this.hls.trigger(E.LEVELS_UPDATED,{levels:n})},r.onLevelsUpdated=function(t,e){var r=e.levels;r.forEach((function(t,e){var r=t.details;null!=r&&r.fragments&&r.fragments.forEach((function(t){t.level=e}))})),this._levels=r},a(e,[{key:"levels",get:function(){return 0===this._levels.length?null:this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(t){var e=this._levels;if(0!==e.length){if(t<0||t>=e.length){var r=new Error("invalid level idx"),i=t<0;if(this.hls.trigger(E.ERROR,{type:S.OTHER_ERROR,details:L.LEVEL_SWITCH_ERROR,level:t,fatal:i,error:r,reason:r.message}),i)return;t=Math.min(t,e.length-1)}var n=this.currentLevelIndex,a=this.currentLevel,s=a?a.attrs["PATHWAY-ID"]:void 0,l=e[t],u=l.attrs["PATHWAY-ID"];if(this.currentLevelIndex=t,this.currentLevel=l,n!==t||!l.details||!a||s!==u){this.log("Switching to level "+t+(u?" with Pathway "+u:"")+" from level "+n+(s?" with Pathway "+s:""));var h=o({},l,{level:t,maxBitrate:l.maxBitrate,attrs:l.attrs,uri:l.uri,urlId:l.urlId});delete h._attrs,delete h._urlId,this.hls.trigger(E.LEVEL_SWITCHING,h);var d=l.details;if(!d||d.live){var c=this.switchParams(l.uri,null==a?void 0:a.details);this.loadPlaylist(c)}}}}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(t){this.manualLevelIndex=t,void 0===this._startLevel&&(this._startLevel=t),-1!==t&&(this.level=t)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(t){this._firstLevel=t}},{key:"startLevel",get:function(){if(void 0===this._startLevel){var t=this.hls.config.startLevel;return void 0!==t?t:this._firstLevel}return this._startLevel},set:function(t){this._startLevel=t}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(t){this.level=t,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=t)}}]),e}(lr);function hr(t,e,r){r&&("audio"===e?(t.audioGroupIds||(t.audioGroupIds=[]),t.audioGroupIds[t.url.length-1]=r):"text"===e&&(t.textGroupIds||(t.textGroupIds=[]),t.textGroupIds[t.url.length-1]=r))}function dr(t){var e={};t.forEach((function(t){var r=t.groupId||"";t.id=e[r]=e[r]||0,e[r]++}))}var cr="NOT_LOADED",fr="APPENDING",gr="PARTIAL",vr="OK",mr=function(){function t(t){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hasGaps=!1,this.hls=t,this._registerListeners()}var e=t.prototype;return e._registerListeners=function(){var t=this.hls;t.on(E.BUFFER_APPENDED,this.onBufferAppended,this),t.on(E.FRAG_BUFFERED,this.onFragBuffered,this),t.on(E.FRAG_LOADED,this.onFragLoaded,this)},e._unregisterListeners=function(){var t=this.hls;t.off(E.BUFFER_APPENDED,this.onBufferAppended,this),t.off(E.FRAG_BUFFERED,this.onFragBuffered,this),t.off(E.FRAG_LOADED,this.onFragLoaded,this)},e.destroy=function(){this._unregisterListeners(),this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null},e.getAppendedFrag=function(t,e){var r=this.activePartLists[e];if(r)for(var i=r.length;i--;){var n=r[i];if(!n)break;var a=n.end;if(n.start<=t&&null!==a&&t<=a)return n}return this.getBufferedFrag(t,e)},e.getBufferedFrag=function(t,e){for(var r=this.fragments,i=Object.keys(r),n=i.length;n--;){var a=r[i[n]];if((null==a?void 0:a.body.type)===e&&a.buffered){var s=a.body;if(s.start<=t&&t<=s.end)return s}}return null},e.detectEvictedFragments=function(t,e,r,i){var n=this;this.timeRanges&&(this.timeRanges[t]=e);var a=(null==i?void 0:i.fragment.sn)||-1;Object.keys(this.fragments).forEach((function(i){var s=n.fragments[i];if(s&&!(a>=s.body.sn))if(s.buffered||s.loaded){var o=s.range[t];o&&o.time.some((function(t){var r=!n.isTimeBuffered(t.startPTS,t.endPTS,e);return r&&n.removeFragment(s.body),r}))}else s.body.type===r&&n.removeFragment(s.body)}))},e.detectPartialFragments=function(t){var e=this,r=this.timeRanges,i=t.frag,n=t.part;if(r&&"initSegment"!==i.sn){var a=yr(i),s=this.fragments[a];if(s){var o=!i.relurl;Object.keys(r).forEach((function(t){var a=i.elementaryStreams[t];if(a){var l=r[t],u=o||!0===a.partial;s.range[t]=e.getBufferedTimes(i,n,u,l)}})),s.loaded=null,Object.keys(s.range).length?(s.buffered=!0,s.body.endList&&(this.endListFragments[s.body.type]=s),pr(s)||this.removeParts(i.sn-1,i.type)):this.removeFragment(s.body)}}},e.removeParts=function(t,e){var r=this.activePartLists[e];r&&(this.activePartLists[e]=r.filter((function(e){return e.fragment.sn>=t})))},e.fragBuffered=function(t,e){var r=yr(t),i=this.fragments[r];!i&&e&&(i=this.fragments[r]={body:t,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},t.gap&&(this.hasGaps=!0)),i&&(i.loaded=null,i.buffered=!0)},e.getBufferedTimes=function(t,e,r,i){for(var n={time:[],partial:r},a=t.start,s=t.end,o=t.minEndPTS||s,l=t.maxStartPTS||a,u=0;u<i.length;u++){var h=i.start(u)-this.bufferPadding,d=i.end(u)+this.bufferPadding;if(l>=h&&o<=d){n.time.push({startPTS:Math.max(a,i.start(u)),endPTS:Math.min(s,i.end(u))});break}if(a<d&&s>h)n.partial=!0,n.time.push({startPTS:Math.max(a,i.start(u)),endPTS:Math.min(s,i.end(u))});else if(s<=h)break}return n},e.getPartialFragment=function(t){var e,r,i,n=null,a=0,s=this.bufferPadding,o=this.fragments;return Object.keys(o).forEach((function(l){var u=o[l];u&&pr(u)&&(r=u.body.start-s,i=u.body.end+s,t>=r&&t<=i&&(e=Math.min(t-r,i-t),a<=e&&(n=u.body,a=e)))})),n},e.isEndListAppended=function(t){var e=this.endListFragments[t];return void 0!==e&&(e.buffered||pr(e))},e.getState=function(t){var e=yr(t),r=this.fragments[e];return r?r.buffered?pr(r)?gr:vr:fr:cr},e.isTimeBuffered=function(t,e,r){for(var i,n,a=0;a<r.length;a++){if(i=r.start(a)-this.bufferPadding,n=r.end(a)+this.bufferPadding,t>=i&&e<=n)return!0;if(e<=i)return!1}return!1},e.onFragLoaded=function(t,e){var r=e.frag,i=e.part;if("initSegment"!==r.sn&&!r.bitrateTest){var n=i?null:e,a=yr(r);this.fragments[a]={body:r,appendedPTS:null,loaded:n,buffered:!1,range:Object.create(null)}}},e.onBufferAppended=function(t,e){var r=this,i=e.frag,n=e.part,a=e.timeRanges;if("initSegment"!==i.sn){var s=i.type;if(n){var o=this.activePartLists[s];o||(this.activePartLists[s]=o=[]),o.push(n)}this.timeRanges=a,Object.keys(a).forEach((function(t){var e=a[t];r.detectEvictedFragments(t,e,s,n)}))}},e.onFragBuffered=function(t,e){this.detectPartialFragments(e)},e.hasFragment=function(t){var e=yr(t);return!!this.fragments[e]},e.hasParts=function(t){var e;return!(null==(e=this.activePartLists[t])||!e.length)},e.removeFragmentsInRange=function(t,e,r,i,n){var a=this;i&&!this.hasGaps||Object.keys(this.fragments).forEach((function(s){var o=a.fragments[s];if(o){var l=o.body;l.type!==r||i&&!l.gap||l.start<e&&l.end>t&&(o.buffered||n)&&a.removeFragment(l)}}))},e.removeFragment=function(t){var e=yr(t);t.stats.loaded=0,t.clearElementaryStreamInfo();var r=this.activePartLists[t.type];if(r){var i=t.sn;this.activePartLists[t.type]=r.filter((function(t){return t.fragment.sn!==i}))}delete this.fragments[e],t.endList&&delete this.endListFragments[t.type]},e.removeAllFragments=function(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1},t}();function pr(t){var e,r,i;return t.buffered&&(t.body.gap||(null==(e=t.range.video)?void 0:e.partial)||(null==(r=t.range.audio)?void 0:r.partial)||(null==(i=t.range.audiovideo)?void 0:i.partial))}function yr(t){return t.type+"_"+t.level+"_"+t.urlId+"_"+t.sn}var Tr=Math.pow(2,17),Er=function(){function t(t,e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.hls=void 0,this.config=t,this.hls=e}var e=t.prototype;return e.destroy=function(){this.loader&&(this.loader.destroy(),this.loader=null)},e.abort=function(){this.loader&&this.loader.abort()},e.load=function(t,e){var r=this,n=t.url;if(!n)return Promise.reject(new Rr({type:S.NETWORK_ERROR,details:L.FRAG_LOAD_ERROR,fatal:!1,frag:t,error:new Error("Fragment does not have a "+(n?"part list":"url")),networkDetails:null}));this.abort();var a=this.config,s=a.fLoader,o=a.loader;return new Promise((function(l,u){if(r.loader&&r.loader.destroy(),t.gap)u(Lr(t));else{var h=r.loader=t.loader=s?new s(a):new o(a),d=Sr(t),c=qe(a.fragLoadPolicy.default),f={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:"initSegment"===t.sn?1/0:Tr};t.stats=h.stats,h.load(d,f,{onSuccess:function(e,i,n,a){r.resetLoader(t,h);var s=e.data;n.resetIV&&t.decryptdata&&(t.decryptdata.iv=new Uint8Array(s.slice(0,16)),s=s.slice(16)),r.hls.trigger(E.RECORDING,{data:e.data}),l({frag:t,part:null,payload:s,networkDetails:a})},onError:function(e,a,s,o){r.resetLoader(t,h),u(new Rr({type:S.NETWORK_ERROR,details:L.FRAG_LOAD_ERROR,fatal:!1,frag:t,response:i({url:n,data:void 0},e),error:new Error("HTTP Error "+e.code+" "+e.text),networkDetails:s,stats:o}))},onAbort:function(e,i,n){r.resetLoader(t,h),u(new Rr({type:S.NETWORK_ERROR,details:L.INTERNAL_ABORTED,fatal:!1,frag:t,error:new Error("Aborted"),networkDetails:n,stats:e}))},onTimeout:function(e,i,n){r.resetLoader(t,h),u(new Rr({type:S.NETWORK_ERROR,details:L.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,error:new Error("Timeout after "+f.timeout+"ms"),networkDetails:n,stats:e}))},onProgress:function(r,i,n,a){e&&e({frag:t,part:null,payload:n,networkDetails:a})}})}}))},e.loadPart=function(t,e,r){var n=this;this.abort();var a=this.config,s=a.fLoader,o=a.loader;return new Promise((function(l,u){if(n.loader&&n.loader.destroy(),t.gap||e.gap)u(Lr(t,e));else{var h=n.loader=t.loader=s?new s(a):new o(a),d=Sr(t,e),c=qe(a.fragLoadPolicy.default),f={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:Tr};e.stats=h.stats,h.load(d,f,{onSuccess:function(i,a,s,o){n.resetLoader(t,h),n.updateStatsFromPart(t,e);var u={frag:t,part:e,payload:i.data,networkDetails:o};r(u),l(u)},onError:function(r,a,s,o){n.resetLoader(t,h),u(new Rr({type:S.NETWORK_ERROR,details:L.FRAG_LOAD_ERROR,fatal:!1,frag:t,part:e,response:i({url:d.url,data:void 0},r),error:new Error("HTTP Error "+r.code+" "+r.text),networkDetails:s,stats:o}))},onAbort:function(r,i,a){t.stats.aborted=e.stats.aborted,n.resetLoader(t,h),u(new Rr({type:S.NETWORK_ERROR,details:L.INTERNAL_ABORTED,fatal:!1,frag:t,part:e,error:new Error("Aborted"),networkDetails:a,stats:r}))},onTimeout:function(r,i,a){n.resetLoader(t,h),u(new Rr({type:S.NETWORK_ERROR,details:L.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,part:e,error:new Error("Timeout after "+f.timeout+"ms"),networkDetails:a,stats:r}))}})}}))},e.updateStatsFromPart=function(t,e){var r=t.stats,i=e.stats,n=i.total;if(r.loaded+=i.loaded,n){var a=Math.round(t.duration/e.duration),s=Math.min(Math.round(r.loaded/n),a),o=(a-s)*Math.round(r.loaded/s);r.total=r.loaded+o}else r.total=Math.max(r.loaded,r.total);var l=r.loading,u=i.loading;l.start?l.first+=u.first-u.start:(l.start=u.start,l.first=u.first),l.end=u.end},e.resetLoader=function(t,e){t.loader=null,this.loader===e&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),e.destroy()},t}();function Sr(t,e){void 0===e&&(e=null);var r=e||t,i={frag:t,part:e,responseType:"arraybuffer",url:r.url,headers:{},rangeStart:0,rangeEnd:0},n=r.byteRangeStartOffset,a=r.byteRangeEndOffset;if(T(n)&&T(a)){var s,o=n,l=a;if("initSegment"===t.sn&&"AES-128"===(null==(s=t.decryptdata)?void 0:s.method)){var u=a-n;u%16&&(l=a+(16-u%16)),0!==n&&(i.resetIV=!0,o=n-16)}i.rangeStart=o,i.rangeEnd=l}return i}function Lr(t,e){var r=new Error("GAP "+(t.gap?"tag":"attribute")+" found"),i={type:S.MEDIA_ERROR,details:L.FRAG_GAP,fatal:!1,frag:t,error:r,networkDetails:null};return e&&(i.part=e),(e||t).stats.aborted=!0,new Rr(i)}var Rr=function(t){function e(e){var r;return(r=t.call(this,e.error.message)||this).data=void 0,r.data=e,r}return l(e,t),e}(c(Error)),Ar=function(){function t(t){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=t}var e=t.prototype;return e.abort=function(t){for(var e in this.keyUriToKeyInfo){var r=this.keyUriToKeyInfo[e].loader;if(r){if(t&&t!==r.context.frag.type)return;r.abort()}}},e.detach=function(){for(var t in this.keyUriToKeyInfo){var e=this.keyUriToKeyInfo[t];(e.mediaKeySessionContext||e.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[t]}},e.destroy=function(){for(var t in this.detach(),this.keyUriToKeyInfo){var e=this.keyUriToKeyInfo[t].loader;e&&e.destroy()}this.keyUriToKeyInfo={}},e.createKeyLoadError=function(t,e,r,i,n){return void 0===e&&(e=L.KEY_LOAD_ERROR),new Rr({type:S.NETWORK_ERROR,details:e,fatal:!1,frag:t,response:n,error:r,networkDetails:i})},e.loadClear=function(t,e){var r=this;if(this.emeController&&this.config.emeEnabled)for(var i=t.sn,n=t.cc,a=function(){var t=e[s];if(n<=t.cc&&("initSegment"===i||"initSegment"===t.sn||i<t.sn))return r.emeController.selectKeySystemFormat(t).then((function(e){t.setKeyFormat(e)})),"break"},s=0;s<e.length&&"break"!==a();s++);},e.load=function(t){var e=this;return!t.decryptdata&&t.encrypted&&this.emeController?this.emeController.selectKeySystemFormat(t).then((function(r){return e.loadInternal(t,r)})):this.loadInternal(t)},e.loadInternal=function(t,e){var r,i;e&&t.setKeyFormat(e);var n=t.decryptdata;if(!n){var a=new Error(e?"Expected frag.decryptdata to be defined after setting format "+e:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(t,L.KEY_LOAD_ERROR,a))}var s=n.uri;if(!s)return Promise.reject(this.createKeyLoadError(t,L.KEY_LOAD_ERROR,new Error('Invalid key URI: "'+s+'"')));var o,l=this.keyUriToKeyInfo[s];if(null!=(r=l)&&r.decryptdata.key)return n.key=l.decryptdata.key,Promise.resolve({frag:t,keyInfo:l});if(null!=(i=l)&&i.keyLoadPromise)switch(null==(o=l.mediaKeySessionContext)?void 0:o.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return l.keyLoadPromise.then((function(e){return n.key=e.keyInfo.decryptdata.key,{frag:t,keyInfo:l}}))}switch(l=this.keyUriToKeyInfo[s]={decryptdata:n,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},n.method){case"ISO-23001-7":case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return"identity"===n.keyFormat?this.loadKeyHTTP(l,t):this.loadKeyEME(l,t);case"AES-128":return this.loadKeyHTTP(l,t);default:return Promise.reject(this.createKeyLoadError(t,L.KEY_LOAD_ERROR,new Error('Key supplied with unsupported METHOD: "'+n.method+'"')))}},e.loadKeyEME=function(t,e){var r={frag:e,keyInfo:t};if(this.emeController&&this.config.emeEnabled){var i=this.emeController.loadKey(r);if(i)return(t.keyLoadPromise=i.then((function(e){return t.mediaKeySessionContext=e,r}))).catch((function(e){throw t.keyLoadPromise=null,e}))}return Promise.resolve(r)},e.loadKeyHTTP=function(t,e){var r=this,n=this.config,a=new(0,n.loader)(n);return e.keyLoader=t.loader=a,t.keyLoadPromise=new Promise((function(s,o){var l={keyInfo:t,frag:e,responseType:"arraybuffer",url:t.decryptdata.uri},u=n.keyLoadPolicy.default,h={loadPolicy:u,timeout:u.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},d={onSuccess:function(t,e,i,n){var a=i.frag,l=i.keyInfo,u=i.url;if(!a.decryptdata||l!==r.keyUriToKeyInfo[u])return o(r.createKeyLoadError(a,L.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),n));l.decryptdata.key=a.decryptdata.key=new Uint8Array(t.data),a.keyLoader=null,l.loader=null,s({frag:a,keyInfo:l})},onError:function(t,n,a,s){r.resetLoader(n),o(r.createKeyLoadError(e,L.KEY_LOAD_ERROR,new Error("HTTP Error "+t.code+" loading key "+t.text),a,i({url:l.url,data:void 0},t)))},onTimeout:function(t,i,n){r.resetLoader(i),o(r.createKeyLoadError(e,L.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),n))},onAbort:function(t,i,n){r.resetLoader(i),o(r.createKeyLoadError(e,L.INTERNAL_ABORTED,new Error("key loading aborted"),n))}};a.load(l,h,d)}))},e.resetLoader=function(t){var e=t.frag,r=t.keyInfo,i=t.url,n=r.loader;e.keyLoader===n&&(e.keyLoader=null,r.loader=null),delete this.keyUriToKeyInfo[i],n&&n.destroy()},t}(),kr=function(){function t(){this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}var e=t.prototype;return e.destroy=function(){this.onHandlerDestroying(),this.onHandlerDestroyed()},e.onHandlerDestroying=function(){this.clearNextTick(),this.clearInterval()},e.onHandlerDestroyed=function(){},e.hasInterval=function(){return!!this._tickInterval},e.hasNextTick=function(){return!!this._tickTimer},e.setInterval=function(t){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,t),!0)},e.clearInterval=function(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)},e.clearNextTick=function(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)},e.tick=function(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)},e.tickImmediate=function(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)},e.doTick=function(){},t}(),br={length:0,start:function(){return 0},end:function(){return 0}},Dr=function(){function t(){}return t.isBuffered=function(e,r){try{if(e)for(var i=t.getBuffered(e),n=0;n<i.length;n++)if(r>=i.start(n)&&r<=i.end(n))return!0}catch(t){}return!1},t.bufferInfo=function(e,r,i){try{if(e){var n,a=t.getBuffered(e),s=[];for(n=0;n<a.length;n++)s.push({start:a.start(n),end:a.end(n)});return this.bufferedInfo(s,r,i)}}catch(t){}return{len:0,start:r,end:r,nextStart:void 0}},t.bufferedInfo=function(t,e,r){e=Math.max(0,e),t.sort((function(t,e){var r=t.start-e.start;return r||e.end-t.end}));var i=[];if(r)for(var n=0;n<t.length;n++){var a=i.length;if(a){var s=i[a-1].end;t[n].start-s<r?t[n].end>s&&(i[a-1].end=t[n].end):i.push(t[n])}else i.push(t[n])}else i=t;for(var o,l=0,u=e,h=e,d=0;d<i.length;d++){var c=i[d].start,f=i[d].end;if(e+r>=c&&e<f)u=c,l=(h=f)-e;else if(e+r<c){o=c;break}}return{len:l,start:u||0,end:h||0,nextStart:o}},t.getBuffered=function(t){try{return t.buffered}catch(t){return I.log("failed to get media.buffered",t),br}},t}(),Ir=function(t,e,r,i,n,a){void 0===i&&(i=0),void 0===n&&(n=-1),void 0===a&&(a=!1),this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=t,this.sn=e,this.id=r,this.size=i,this.part=n,this.partial=a};function wr(t,e){for(var r=null,i=0,n=t.length;i<n;i++){var a=t[i];if(a&&a.cc===e){r=a;break}}return r}function Cr(t,e){if(t){var r=t.start+e;t.start=t.startPTS=r,t.endPTS=r+t.duration}}function _r(t,e){for(var r=e.fragments,i=0,n=r.length;i<n;i++)Cr(r[i],t);e.fragmentHint&&Cr(e.fragmentHint,t),e.alignedSliding=!0}function Pr(t,e,r){e&&(function(t,e,r){if(function(t,e,r){return!(!e.details||!(r.endCC>r.startCC||t&&t.cc<r.startCC))}(t,r,e)){var i=function(t,e,r){var i=t.fragments,n=e.fragments;if(n.length&&i.length){var a=wr(i,n[0].cc);if(a&&(!a||a.startPTS))return a;I.log("No frag in previous level to align on")}else I.log("No fragments to align")}(r.details,e);i&&T(i.start)&&(I.log("Adjusting PTS using last level due to CC increase within current level "+e.url),_r(i.start,e))}}(t,r,e),!r.alignedSliding&&e.details&&function(t,e){if(e.fragments.length&&t.hasProgramDateTime&&e.hasProgramDateTime){var r=e.fragments[0].programDateTime,i=t.fragments[0].programDateTime,n=(i-r)/1e3+e.fragments[0].start;n&&T(n)&&(I.log("Adjusting PTS using programDateTime delta "+(i-r)+"ms, sliding:"+n.toFixed(3)+" "+t.url+" "),_r(n,t))}}(r,e.details),r.alignedSliding||!e.details||r.skippedSegments||Ge(e.details,r))}function xr(t,e){if(t.hasProgramDateTime&&e.hasProgramDateTime){var r=t.fragments,i=e.fragments;if(r.length&&i.length){var n=i[Math.round(i.length/2)-1],a=wr(r,n.cc)||r[Math.round(r.length/2)-1],s=n.programDateTime,o=a.programDateTime;null!==s&&null!==o&&_r((o-s)/1e3-(a.start-n.start),t)}}}var Fr=function(){function t(t,e){this.subtle=void 0,this.aesIV=void 0,this.subtle=t,this.aesIV=e}return t.prototype.decrypt=function(t,e){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},e,t)},t}(),Or=function(){function t(t,e){this.subtle=void 0,this.key=void 0,this.subtle=t,this.key=e}return t.prototype.expandKey=function(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])},t}(),Mr=function(){function t(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}var e=t.prototype;return e.uint8ArrayToUint32Array_=function(t){for(var e=new DataView(t),r=new Uint32Array(4),i=0;i<4;i++)r[i]=e.getUint32(4*i);return r},e.initTable=function(){var t=this.sBox,e=this.invSBox,r=this.subMix,i=r[0],n=r[1],a=r[2],s=r[3],o=this.invSubMix,l=o[0],u=o[1],h=o[2],d=o[3],c=new Uint32Array(256),f=0,g=0,v=0;for(v=0;v<256;v++)c[v]=v<128?v<<1:v<<1^283;for(v=0;v<256;v++){var m=g^g<<1^g<<2^g<<3^g<<4;m=m>>>8^255&m^99,t[f]=m,e[m]=f;var p=c[f],y=c[p],T=c[y],E=257*c[m]^16843008*m;i[f]=E<<24|E>>>8,n[f]=E<<16|E>>>16,a[f]=E<<8|E>>>24,s[f]=E,E=16843009*T^65537*y^257*p^16843008*f,l[m]=E<<24|E>>>8,u[m]=E<<16|E>>>16,h[m]=E<<8|E>>>24,d[m]=E,f?(f=p^c[c[c[T^p]]],g^=c[c[g]]):f=g=1}},e.expandKey=function(t){for(var e=this.uint8ArrayToUint32Array_(t),r=!0,i=0;i<e.length&&r;)r=e[i]===this.key[i],i++;if(!r){this.key=e;var n=this.keySize=e.length;if(4!==n&&6!==n&&8!==n)throw new Error("Invalid aes key size="+n);var a,s,o,l,u=this.ksRows=4*(n+6+1),h=this.keySchedule=new Uint32Array(u),d=this.invKeySchedule=new Uint32Array(u),c=this.sBox,f=this.rcon,g=this.invSubMix,v=g[0],m=g[1],p=g[2],y=g[3];for(a=0;a<u;a++)a<n?o=h[a]=e[a]:(l=o,a%n==0?(l=c[(l=l<<8|l>>>24)>>>24]<<24|c[l>>>16&255]<<16|c[l>>>8&255]<<8|c[255&l],l^=f[a/n|0]<<24):n>6&&a%n==4&&(l=c[l>>>24]<<24|c[l>>>16&255]<<16|c[l>>>8&255]<<8|c[255&l]),h[a]=o=(h[a-n]^l)>>>0);for(s=0;s<u;s++)a=u-s,l=3&s?h[a]:h[a-4],d[s]=s<4||a<=4?l:v[c[l>>>24]]^m[c[l>>>16&255]]^p[c[l>>>8&255]]^y[c[255&l]],d[s]=d[s]>>>0}},e.networkToHostOrderSwap=function(t){return t<<24|(65280&t)<<8|(16711680&t)>>8|t>>>24},e.decrypt=function(t,e,r){for(var i,n,a,s,o,l,u,h,d,c,f,g,v,m,p=this.keySize+6,y=this.invKeySchedule,T=this.invSBox,E=this.invSubMix,S=E[0],L=E[1],R=E[2],A=E[3],k=this.uint8ArrayToUint32Array_(r),b=k[0],D=k[1],I=k[2],w=k[3],C=new Int32Array(t),_=new Int32Array(C.length),P=this.networkToHostOrderSwap;e<C.length;){for(d=P(C[e]),c=P(C[e+1]),f=P(C[e+2]),g=P(C[e+3]),o=d^y[0],l=g^y[1],u=f^y[2],h=c^y[3],v=4,m=1;m<p;m++)i=S[o>>>24]^L[l>>16&255]^R[u>>8&255]^A[255&h]^y[v],n=S[l>>>24]^L[u>>16&255]^R[h>>8&255]^A[255&o]^y[v+1],a=S[u>>>24]^L[h>>16&255]^R[o>>8&255]^A[255&l]^y[v+2],s=S[h>>>24]^L[o>>16&255]^R[l>>8&255]^A[255&u]^y[v+3],o=i,l=n,u=a,h=s,v+=4;i=T[o>>>24]<<24^T[l>>16&255]<<16^T[u>>8&255]<<8^T[255&h]^y[v],n=T[l>>>24]<<24^T[u>>16&255]<<16^T[h>>8&255]<<8^T[255&o]^y[v+1],a=T[u>>>24]<<24^T[h>>16&255]<<16^T[o>>8&255]<<8^T[255&l]^y[v+2],s=T[h>>>24]<<24^T[o>>16&255]<<16^T[l>>8&255]<<8^T[255&u]^y[v+3],_[e]=P(i^b),_[e+1]=P(s^D),_[e+2]=P(a^I),_[e+3]=P(n^w),b=d,D=c,I=f,w=g,e+=4}return _.buffer},t}(),Nr=function(){function t(t,e){var r=(void 0===e?{}:e).removePKCS7Padding,i=void 0===r||r;if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=t.enableSoftwareAES,this.removePKCS7Padding=i,i)try{var n=self.crypto;n&&(this.subtle=n.subtle||n.webkitSubtle)}catch(t){}null===this.subtle&&(this.useSoftware=!0)}var e=t.prototype;return e.destroy=function(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null},e.isSync=function(){return this.useSoftware},e.flush=function(){var t=this.currentResult,e=this.remainderData;if(!t||e)return this.reset(),null;var r,i,n,a=new Uint8Array(t);return this.reset(),this.removePKCS7Padding?(i=(r=a).byteLength,(n=i&&new DataView(r.buffer).getUint8(i-1))?et(r,0,i-n):r):a},e.reset=function(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)},e.decrypt=function(t,e,r){var i=this;return this.useSoftware?new Promise((function(n,a){i.softwareDecrypt(new Uint8Array(t),e,r);var s=i.flush();s?n(s.buffer):a(new Error("[softwareDecrypt] Failed to decrypt data"))})):this.webCryptoDecrypt(new Uint8Array(t),e,r)},e.softwareDecrypt=function(t,e,r){var i=this.currentIV,n=this.currentResult,a=this.remainderData;this.logOnce("JS AES decrypt"),a&&(t=Pt(a,t),this.remainderData=null);var s=this.getValidChunk(t);if(!s.length)return null;i&&(r=i);var o=this.softwareDecrypter;o||(o=this.softwareDecrypter=new Mr),o.expandKey(e);var l=n;return this.currentResult=o.decrypt(s.buffer,0,r),this.currentIV=et(s,-16).buffer,l||null},e.webCryptoDecrypt=function(t,e,r){var i=this,n=this.subtle;return this.key===e&&this.fastAesKey||(this.key=e,this.fastAesKey=new Or(n,e)),this.fastAesKey.expandKey().then((function(e){return n?(i.logOnce("WebCrypto AES decrypt"),new Fr(n,new Uint8Array(r)).decrypt(t.buffer,e)):Promise.reject(new Error("web crypto not initialized"))})).catch((function(n){return I.warn("[decrypter]: WebCrypto Error, disable WebCrypto API, "+n.name+": "+n.message),i.onWebCryptoError(t,e,r)}))},e.onWebCryptoError=function(t,e,r){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(t,e,r);var i=this.flush();if(i)return i.buffer;throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data")},e.getValidChunk=function(t){var e=t,r=t.length-t.length%16;return r!==t.length&&(e=et(t,0,r),this.remainderData=et(t,r)),e},e.logOnce=function(t){this.logEnabled&&(I.log("[decrypter]: "+t),this.logEnabled=!1)},t}(),Ur=function(t){for(var e="",r=t.length,i=0;i<r;i++)e+="["+t.start(i).toFixed(3)+"-"+t.end(i).toFixed(3)+"]";return e},Br="STOPPED",Gr="IDLE",Kr="KEY_LOADING",Hr="FRAG_LOADING",Vr="FRAG_LOADING_WAITING_RETRY",Yr="WAITING_TRACK",Wr="PARSING",jr="PARSED",qr="ENDED",Xr="ERROR",zr="WAITING_INIT_PTS",Qr="WAITING_LEVEL",$r=function(t){function e(e,r,i,n,a){var s;return(s=t.call(this)||this).hls=void 0,s.fragPrevious=null,s.fragCurrent=null,s.fragmentTracker=void 0,s.transmuxer=null,s._state=Br,s.playlistType=void 0,s.media=null,s.mediaBuffer=null,s.config=void 0,s.bitrateTest=!1,s.lastCurrentTime=0,s.nextLoadPosition=0,s.startPosition=0,s.startTimeOffset=null,s.loadedmetadata=!1,s.retryDate=0,s.levels=null,s.fragmentLoader=void 0,s.keyLoader=void 0,s.levelLastLoaded=null,s.startFragRequested=!1,s.decrypter=void 0,s.initPTS=[],s.onvseeking=null,s.onvended=null,s.logPrefix="",s.log=void 0,s.warn=void 0,s.playlistType=a,s.logPrefix=n,s.log=I.log.bind(I,n+":"),s.warn=I.warn.bind(I,n+":"),s.hls=e,s.fragmentLoader=new Er(e.config,s.hls),s.keyLoader=i,s.fragmentTracker=r,s.config=e.config,s.decrypter=new Nr(e.config),e.on(E.MANIFEST_LOADED,s.onManifestLoaded,function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(s)),s}l(e,t);var r=e.prototype;return r.doTick=function(){this.onTickEnd()},r.onTickEnd=function(){},r.startLoad=function(t){},r.stopLoad=function(){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);var t=this.fragCurrent;null!=t&&t.loader&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=Br},r._streamEnded=function(t,e){if(e.live||t.nextStart||!t.end||!this.media)return!1;var r=e.partList;if(null!=r&&r.length){var i=r[r.length-1];return Dr.isBuffered(this.media,i.start+i.duration/2)}var n=e.fragments[e.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(n)},r.getLevelDetails=function(){var t;if(this.levels&&null!==this.levelLastLoaded)return null==(t=this.levels[this.levelLastLoaded])?void 0:t.details},r.onMediaAttached=function(t,e){var r=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),r.addEventListener("seeking",this.onvseeking),r.addEventListener("ended",this.onvended);var i=this.config;this.levels&&i.autoStartLoad&&this.state===Br&&this.startLoad(i.startPosition)},r.onMediaDetaching=function(){var t=this.media;null!=t&&t.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),t&&this.onvseeking&&this.onvended&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.keyLoader&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()},r.onMediaSeeking=function(){var t=this.config,e=this.fragCurrent,r=this.media,i=this.mediaBuffer,n=this.state,a=r?r.currentTime:0,s=Dr.bufferInfo(i||r,a,t.maxBufferHole);if(this.log("media seeking to "+(T(a)?a.toFixed(3):a)+", state: "+n),this.state===qr)this.resetLoadingState();else if(e){var o=t.maxFragLookUpTolerance,l=e.start-o,u=e.start+e.duration+o;if(!s.len||u<s.start||l>s.end){var h=a>u;(a<l||h)&&(h&&e.loader&&(this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),e.abortRequests(),this.resetLoadingState()),this.fragPrevious=null)}}r&&(this.fragmentTracker.removeFragmentsInRange(a,1/0,this.playlistType,!0),this.lastCurrentTime=a),this.loadedmetadata||s.len||(this.nextLoadPosition=this.startPosition=a),this.tickImmediate()},r.onMediaEnded=function(){this.startPosition=this.lastCurrentTime=0},r.onManifestLoaded=function(t,e){this.startTimeOffset=e.startTimeOffset,this.initPTS=[]},r.onHandlerDestroying=function(){this.stopLoad(),t.prototype.onHandlerDestroying.call(this)},r.onHandlerDestroyed=function(){this.state=Br,this.fragmentLoader&&this.fragmentLoader.destroy(),this.keyLoader&&this.keyLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.keyLoader=this.fragmentLoader=this.fragmentTracker=null,t.prototype.onHandlerDestroyed.call(this)},r.loadFragment=function(t,e,r){this._loadFragForPlayback(t,e,r)},r._loadFragForPlayback=function(t,e,r){var i=this;this._doFragLoad(t,e,r,(function(e){if(i.fragContextChanged(t))return i.warn("Fragment "+t.sn+(e.part?" p: "+e.part.index:"")+" of level "+t.level+" was dropped during download."),void i.fragmentTracker.removeFragment(t);t.stats.chunkCount++,i._handleFragmentLoadProgress(e)})).then((function(e){if(e){var r=i.state;i.fragContextChanged(t)?(r===Hr||!i.fragCurrent&&r===Wr)&&(i.fragmentTracker.removeFragment(t),i.state=Gr):("payload"in e&&(i.log("Loaded fragment "+t.sn+" of level "+t.level),i.hls.trigger(E.FRAG_LOADED,e)),i._handleFragmentLoadComplete(e))}})).catch((function(e){i.state!==Br&&i.state!==Xr&&(i.warn(e),i.resetFragmentLoading(t))}))},r.clearTrackerIfNeeded=function(t){var e,r=this.fragmentTracker;if(r.getState(t)===fr){var i=t.type,n=this.getFwdBufferInfo(this.mediaBuffer,i),a=Math.max(t.duration,n?n.len:this.config.maxBufferLength);this.reduceMaxBufferLength(a)&&r.removeFragment(t)}else 0===(null==(e=this.mediaBuffer)?void 0:e.buffered.length)?r.removeAllFragments():r.hasParts(t.type)&&(r.detectPartialFragments({frag:t,part:null,stats:t.stats,id:t.type}),r.getState(t)===gr&&r.removeFragment(t))},r.flushMainBuffer=function(t,e,r){if(void 0===r&&(r=null),t-e){var i={startOffset:t,endOffset:e,type:r};this.hls.trigger(E.BUFFER_FLUSHING,i)}},r._loadInitSegment=function(t,e){var r=this;this._doFragLoad(t,e).then((function(e){if(!e||r.fragContextChanged(t)||!r.levels)throw new Error("init load aborted");return e})).then((function(e){var i=r.hls,n=e.payload,a=t.decryptdata;if(n&&n.byteLength>0&&a&&a.key&&a.iv&&"AES-128"===a.method){var s=self.performance.now();return r.decrypter.decrypt(new Uint8Array(n),a.key.buffer,a.iv.buffer).catch((function(e){throw i.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:t}),e})).then((function(r){var n=self.performance.now();return i.trigger(E.FRAG_DECRYPTED,{frag:t,payload:r,stats:{tstart:s,tdecrypt:n}}),e.payload=r,e}))}return e})).then((function(i){var n=r.fragCurrent,a=r.hls;if(!r.levels)throw new Error("init load aborted, missing levels");var s=t.stats;r.state=Gr,e.fragmentError=0,t.data=new Uint8Array(i.payload),s.parsing.start=s.buffering.start=self.performance.now(),s.parsing.end=s.buffering.end=self.performance.now(),i.frag===n&&a.trigger(E.FRAG_BUFFERED,{stats:s,frag:n,part:null,id:t.type}),r.tick()})).catch((function(e){r.state!==Br&&r.state!==Xr&&(r.warn(e),r.resetFragmentLoading(t))}))},r.fragContextChanged=function(t){var e=this.fragCurrent;return!t||!e||t.level!==e.level||t.sn!==e.sn||t.urlId!==e.urlId},r.fragBufferedComplete=function(t,e){var r,i,n,a,s=this.mediaBuffer?this.mediaBuffer:this.media;this.log("Buffered "+t.type+" sn: "+t.sn+(e?" part: "+e.index:"")+" of "+(this.playlistType===fe?"level":"track")+" "+t.level+" (frag:["+(null!=(r=t.startPTS)?r:NaN).toFixed(3)+"-"+(null!=(i=t.endPTS)?i:NaN).toFixed(3)+"] > buffer:"+(s?Ur(Dr.getBuffered(s)):"(detached)")+")"),this.state=Gr,s&&(!this.loadedmetadata&&t.type==fe&&s.buffered.length&&(null==(n=this.fragCurrent)?void 0:n.sn)===(null==(a=this.fragPrevious)?void 0:a.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())},r.seekToStartPos=function(){},r._handleFragmentLoadComplete=function(t){var e=this.transmuxer;if(e){var r=t.frag,i=t.part,n=t.partsLoaded,a=!n||0===n.length||n.some((function(t){return!t})),s=new Ir(r.level,r.sn,r.stats.chunkCount+1,0,i?i.index:-1,!a);e.flush(s)}},r._handleFragmentLoadProgress=function(t){},r._doFragLoad=function(t,e,r,i){var n,a=this;void 0===r&&(r=null);var s=null==e?void 0:e.details;if(!this.levels||!s)throw new Error("frag load aborted, missing level"+(s?"":" detail")+"s");var o=null;if(!t.encrypted||null!=(n=t.decryptdata)&&n.key?!t.encrypted&&s.encryptedFragments.length&&this.keyLoader.loadClear(t,s.encryptedFragments):(this.log("Loading key for "+t.sn+" of ["+s.startSN+"-"+s.endSN+"], "+("[stream-controller]"===this.logPrefix?"level":"track")+" "+t.level),this.state=Kr,this.fragCurrent=t,o=this.keyLoader.load(t).then((function(t){if(!a.fragContextChanged(t.frag))return a.hls.trigger(E.KEY_LOADED,t),a.state===Kr&&(a.state=Gr),t})),this.hls.trigger(E.KEY_LOADING,{frag:t}),null===this.fragCurrent&&(o=Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING")))),r=Math.max(t.start,r||0),this.config.lowLatencyMode&&"initSegment"!==t.sn){var l=s.partList;if(l&&i){r>t.end&&s.fragmentHint&&(t=s.fragmentHint);var u=this.getNextPart(l,t,r);if(u>-1){var h,d=l[u];return this.log("Loading part sn: "+t.sn+" p: "+d.index+" cc: "+t.cc+" of playlist ["+s.startSN+"-"+s.endSN+"] parts [0-"+u+"-"+(l.length-1)+"] "+("[stream-controller]"===this.logPrefix?"level":"track")+": "+t.level+", target: "+parseFloat(r.toFixed(3))),this.nextLoadPosition=d.start+d.duration,this.state=Hr,h=o?o.then((function(r){return!r||a.fragContextChanged(r.frag)?null:a.doFragPartsLoad(t,d,e,i)})).catch((function(t){return a.handleFragLoadError(t)})):this.doFragPartsLoad(t,d,e,i).catch((function(t){return a.handleFragLoadError(t)})),this.hls.trigger(E.FRAG_LOADING,{frag:t,part:d,targetBufferTime:r}),null===this.fragCurrent?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):h}if(!t.url||this.loadedEndOfParts(l,r))return Promise.resolve(null)}}this.log("Loading fragment "+t.sn+" cc: "+t.cc+" "+(s?"of ["+s.startSN+"-"+s.endSN+"] ":"")+("[stream-controller]"===this.logPrefix?"level":"track")+": "+t.level+", target: "+parseFloat(r.toFixed(3))),T(t.sn)&&!this.bitrateTest&&(this.nextLoadPosition=t.start+t.duration),this.state=Hr;var c,f=this.config.progressive;return c=f&&o?o.then((function(e){return!e||a.fragContextChanged(null==e?void 0:e.frag)?null:a.fragmentLoader.load(t,i)})).catch((function(t){return a.handleFragLoadError(t)})):Promise.all([this.fragmentLoader.load(t,f?i:void 0),o]).then((function(t){var e=t[0];return!f&&e&&i&&i(e),e})).catch((function(t){return a.handleFragLoadError(t)})),this.hls.trigger(E.FRAG_LOADING,{frag:t,targetBufferTime:r}),null===this.fragCurrent?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):c},r.doFragPartsLoad=function(t,e,r,i){var n=this;return new Promise((function(a,s){var o,l=[],u=null==(o=r.details)?void 0:o.partList;!function e(o){n.fragmentLoader.loadPart(t,o,i).then((function(i){l[o.index]=i;var s=i.part;n.hls.trigger(E.FRAG_LOADED,i);var h=He(r,t.sn,o.index+1)||Ve(u,t.sn,o.index+1);if(!h)return a({frag:t,part:s,partsLoaded:l});e(h)})).catch(s)}(e)}))},r.handleFragLoadError=function(t){if("data"in t){var e=t.data;t.data&&e.details===L.INTERNAL_ABORTED?this.handleFragLoadAborted(e.frag,e.part):this.hls.trigger(E.ERROR,e)}else this.hls.trigger(E.ERROR,{type:S.OTHER_ERROR,details:L.INTERNAL_EXCEPTION,err:t,error:t,fatal:!0});return null},r._handleTransmuxerFlush=function(t){var e=this.getCurrentContext(t);if(e&&this.state===Wr){var r=e.frag,i=e.part,n=e.level,a=self.performance.now();r.stats.parsing.end=a,i&&(i.stats.parsing.end=a),this.updateLevelTiming(r,i,n,t.partial)}else this.fragCurrent||this.state===Br||this.state===Xr||(this.state=Gr)},r.getCurrentContext=function(t){var e=this.levels,r=this.fragCurrent,i=t.level,n=t.sn,a=t.part;if(null==e||!e[i])return this.warn("Levels object was unset while buffering fragment "+n+" of level "+i+". The current chunk will not be buffered."),null;var s=e[i],o=a>-1?He(s,n,a):null,l=o?o.fragment:function(t,e,r){if(null==t||!t.details)return null;var i=t.details,n=i.fragments[e-i.startSN];return n||((n=i.fragmentHint)&&n.sn===e?n:e<i.startSN&&r&&r.sn===e?r:null)}(s,n,r);return l?(r&&r!==l&&(l.stats=r.stats),{frag:l,part:o,level:s}):null},r.bufferFragmentData=function(t,e,r,i){var n;if(t&&this.state===Wr){var a=t.data1,s=t.data2,o=a;if(a&&s&&(o=Pt(a,s)),null!=(n=o)&&n.length){var l={type:t.type,frag:e,part:r,chunkMeta:i,parent:e.type,data:o};this.hls.trigger(E.BUFFER_APPENDING,l),t.dropped&&t.independent&&!r&&this.flushBufferGap(e)}}},r.flushBufferGap=function(t){var e=this.media;if(e)if(Dr.isBuffered(e,e.currentTime)){var r=e.currentTime,i=Dr.bufferInfo(e,r,0),n=t.duration,a=Math.min(2*this.config.maxFragLookUpTolerance,.25*n),s=Math.max(Math.min(t.start-a,i.end-a),r+a);t.start-s>a&&this.flushMainBuffer(s,t.start)}else this.flushMainBuffer(0,t.start)},r.getFwdBufferInfo=function(t,e){var r=this.getLoadPosition();return T(r)?this.getFwdBufferInfoAtPos(t,r,e):null},r.getFwdBufferInfoAtPos=function(t,e,r){var i=this.config.maxBufferHole,n=Dr.bufferInfo(t,e,i);if(0===n.len&&void 0!==n.nextStart){var a=this.fragmentTracker.getBufferedFrag(e,r);if(a&&n.nextStart<a.end)return Dr.bufferInfo(t,e,Math.max(n.nextStart,i))}return n},r.getMaxBufferLength=function(t){var e,r=this.config;return e=t?Math.max(8*r.maxBufferSize/t,r.maxBufferLength):r.maxBufferLength,Math.min(e,r.maxMaxBufferLength)},r.reduceMaxBufferLength=function(t){var e=this.config,r=t||e.maxBufferLength;return e.maxMaxBufferLength>=r&&(e.maxMaxBufferLength/=2,this.warn("Reduce max buffer length to "+e.maxMaxBufferLength+"s"),!0)},r.getAppendedFrag=function(t,e){var r=this.fragmentTracker.getAppendedFrag(t,fe);return r&&"fragment"in r?r.fragment:r},r.getNextFragment=function(t,e){var r=e.fragments,i=r.length;if(!i)return null;var n,a=this.config,s=r[0].start;if(e.live){var o=a.initialLiveManifestSize;if(i<o)return this.warn("Not enough fragments to start playback (have: "+i+", need: "+o+")"),null;e.PTSKnown||this.startFragRequested||-1!==this.startPosition||(n=this.getInitialLiveFragment(e,r),this.startPosition=n?this.hls.liveSyncPosition||n.start:t)}else t<=s&&(n=r[0]);if(!n){var l=a.lowLatencyMode?e.partEnd:e.fragmentEnd;n=this.getFragmentAtPosition(t,l,e)}return this.mapToInitFragWhenRequired(n)},r.isLoopLoading=function(t,e){var r=this.fragmentTracker.getState(t);return(r===vr||r===gr&&!!t.gap)&&this.nextLoadPosition>e},r.getNextFragmentLoopLoading=function(t,e,r,i,n){var a=t.gap,s=this.getNextFragment(this.nextLoadPosition,e);if(null===s)return s;if(t=s,a&&t&&!t.gap&&r.nextStart){var o=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,r.nextStart,i);if(null!==o&&r.len+o.len>=n)return this.log('buffer full after gaps in "'+i+'" playlist starting at sn: '+t.sn),null}return t},r.mapToInitFragWhenRequired=function(t){return null==t||!t.initSegment||null!=t&&t.initSegment.data||this.bitrateTest?t:t.initSegment},r.getNextPart=function(t,e,r){for(var i=-1,n=!1,a=!0,s=0,o=t.length;s<o;s++){var l=t[s];if(a=a&&!l.independent,i>-1&&r<l.start)break;var u=l.loaded;u?i=-1:(n||l.independent||a)&&l.fragment===e&&(i=s),n=u}return i},r.loadedEndOfParts=function(t,e){var r=t[t.length-1];return r&&e>r.start&&r.loaded},r.getInitialLiveFragment=function(t,e){var r=this.fragPrevious,i=null;if(r){if(t.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+r.programDateTime),i=function(t,e,r){if(null===e||!Array.isArray(t)||!t.length||!T(e))return null;if(e<(t[0].programDateTime||0))return null;if(e>=(t[t.length-1].endProgramDateTime||0))return null;r=r||0;for(var i=0;i<t.length;++i){var n=t[i];if(Je(e,r,n))return n}return null}(e,r.endProgramDateTime,this.config.maxFragLookUpTolerance)),!i){var n=r.sn+1;if(n>=t.startSN&&n<=t.endSN){var a=e[n-t.startSN];r.cc===a.cc&&(i=a,this.log("Live playlist, switching playlist, load frag with next SN: "+i.sn))}i||(i=function(t,e){return ze.search(t,(function(t){return t.cc<e?1:t.cc>e?-1:0}))}(e,r.cc),i&&this.log("Live playlist, switching playlist, load frag with same CC: "+i.sn))}}else{var s=this.hls.liveSyncPosition;null!==s&&(i=this.getFragmentAtPosition(s,this.bitrateTest?t.fragmentEnd:t.edge,t))}return i},r.getFragmentAtPosition=function(t,e,r){var i,n=this.config,a=this.fragPrevious,s=r.fragments,o=r.endSN,l=r.fragmentHint,u=n.maxFragLookUpTolerance,h=r.partList,d=!!(n.lowLatencyMode&&null!=h&&h.length&&l);if(d&&l&&!this.bitrateTest&&(s=s.concat(l),o=l.sn),i=t<e?Qe(a,s,t,t>e-u?0:u):s[s.length-1]){var c=i.sn-r.startSN,f=this.fragmentTracker.getState(i);if((f===vr||f===gr&&i.gap)&&(a=i),a&&i.sn===a.sn&&(!d||h[0].fragment.sn>i.sn)&&a&&i.level===a.level){var g=s[c+1];i=i.sn<o&&this.fragmentTracker.getState(g)!==vr?g:null}}return i},r.synchronizeToLiveEdge=function(t){var e=this.config,r=this.media;if(r){var i=this.hls.liveSyncPosition,n=r.currentTime,a=t.fragments[0].start,s=t.edge,o=n>=a-e.maxFragLookUpTolerance&&n<=s;if(null!==i&&r.duration>i&&(n<i||!o)){var l=void 0!==e.liveMaxLatencyDuration?e.liveMaxLatencyDuration:e.liveMaxLatencyDurationCount*t.targetduration;(!o&&r.readyState<4||n<s-l)&&(this.loadedmetadata||(this.nextLoadPosition=i),r.readyState&&(this.warn("Playback: "+n.toFixed(3)+" is located too far from the end of live sliding playlist: "+s+", reset currentTime to : "+i.toFixed(3)),r.currentTime=i))}}},r.alignPlaylists=function(t,e){var r=this.levels,i=this.levelLastLoaded,n=this.fragPrevious,a=null!==i?r[i]:null,s=t.fragments.length;if(!s)return this.warn("No fragments in live playlist"),0;var o=t.fragments[0].start,l=!e,u=t.alignedSliding&&T(o);if(l||!u&&!o){Pr(n,a,t);var h=t.fragments[0].start;return this.log("Live playlist sliding: "+h.toFixed(2)+" start-sn: "+(e?e.startSN:"na")+"->"+t.startSN+" prev-sn: "+(n?n.sn:"na")+" fragments: "+s),h}return o},r.waitForCdnTuneIn=function(t){return t.live&&t.canBlockReload&&t.partTarget&&t.tuneInGoal>Math.max(t.partHoldBack,3*t.partTarget)},r.setStartPosition=function(t,e){var r=this.startPosition;if(r<e&&(r=-1),-1===r||-1===this.lastCurrentTime){var i=null!==this.startTimeOffset,n=i?this.startTimeOffset:t.startTimeOffset;null!==n&&T(n)?(r=e+n,n<0&&(r+=t.totalduration),r=Math.min(Math.max(e,r),e+t.totalduration),this.log("Start time offset "+n+" found in "+(i?"multivariant":"media")+" playlist, adjust startPosition to "+r),this.startPosition=r):t.live?r=this.hls.liveSyncPosition||e:this.startPosition=r=0,this.lastCurrentTime=r}this.nextLoadPosition=r},r.getLoadPosition=function(){var t=this.media,e=0;return this.loadedmetadata&&t?e=t.currentTime:this.nextLoadPosition&&(e=this.nextLoadPosition),e},r.handleFragLoadAborted=function(t,e){this.transmuxer&&"initSegment"!==t.sn&&t.stats.aborted&&(this.warn("Fragment "+t.sn+(e?" part "+e.index:"")+" of level "+t.level+" was aborted"),this.resetFragmentLoading(t))},r.resetFragmentLoading=function(t){this.fragCurrent&&(this.fragContextChanged(t)||this.state===Vr)||(this.state=Gr)},r.onFragmentOrKeyLoadError=function(t,e){if(e.chunkMeta&&!e.frag){var r=this.getCurrentContext(e.chunkMeta);r&&(e.frag=r.frag)}var i=e.frag;if(i&&i.type===t&&this.levels)if(this.fragContextChanged(i)){var n;this.warn("Frag load error must match current frag to retry "+i.url+" > "+(null==(n=this.fragCurrent)?void 0:n.url))}else{var a=e.details===L.FRAG_GAP;a&&this.fragmentTracker.fragBuffered(i,!0);var s=e.errorAction,o=s||{},l=o.action,u=o.retryCount,h=void 0===u?0:u,d=o.retryConfig;if(s&&l===ir&&d){this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition);var c=je(d,h);this.warn("Fragment "+i.sn+" of "+t+" "+i.level+" errored with "+e.details+", retrying loading "+(h+1)+"/"+d.maxNumRetry+" in "+c+"ms"),s.resolved=!0,this.retryDate=self.performance.now()+c,this.state=Vr}else d&&s?(this.resetFragmentErrors(t),h<d.maxNumRetry?a||(s.resolved=!0):I.warn(e.details+" reached or exceeded max retry ("+h+")")):this.state=Xr;this.tickImmediate()}},r.reduceLengthAndFlushBuffer=function(t){if(this.state===Wr||this.state===jr){var e=t.parent,r=this.getFwdBufferInfo(this.mediaBuffer,e),i=r&&r.len>.5;i&&this.reduceMaxBufferLength(r.len);var n=!i;return n&&this.warn("Buffer full error while media.currentTime is not buffered, flush "+e+" buffer"),t.frag&&(this.fragmentTracker.removeFragment(t.frag),this.nextLoadPosition=t.frag.start),this.resetLoadingState(),n}return!1},r.resetFragmentErrors=function(t){t===ge&&(this.fragCurrent=null),this.loadedmetadata||(this.startFragRequested=!1),this.state!==Br&&(this.state=Gr)},r.afterBufferFlushed=function(t,e,r){if(t){var i=Dr.getBuffered(t);this.fragmentTracker.detectEvictedFragments(e,i,r),this.state===qr&&this.resetLoadingState()}},r.resetLoadingState=function(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state=Gr},r.resetStartWhenNotLoaded=function(t){if(!this.loadedmetadata){this.startFragRequested=!1;var e=this.levels?this.levels[t].details:null;null!=e&&e.live?(this.startPosition=-1,this.setStartPosition(e,0),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}},r.resetWhenMissingContext=function(t){this.warn("The loading context changed while buffering fragment "+t.sn+" of level "+t.level+". This chunk will not be buffered."),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(t.level),this.resetLoadingState()},r.removeUnbufferedFrags=function(t){void 0===t&&(t=0),this.fragmentTracker.removeFragmentsInRange(t,1/0,this.playlistType,!1,!0)},r.updateLevelTiming=function(t,e,r,i){var n,a=this,s=r.details;if(s){if(Object.keys(t.elementaryStreams).reduce((function(e,n){var o=t.elementaryStreams[n];if(o){var l=o.endPTS-o.startPTS;if(l<=0)return a.warn("Could not parse fragment "+t.sn+" "+n+" duration reliably ("+l+")"),e||!1;var u=i?0:Ue(s,t,o.startPTS,o.endPTS,o.startDTS,o.endDTS);return a.hls.trigger(E.LEVEL_PTS_UPDATED,{details:s,level:r,drift:u,type:n,frag:t,start:o.startPTS,end:o.endPTS}),!0}return e}),!1))r.fragmentError=0;else if(null===(null==(n=this.transmuxer)?void 0:n.error)){var o=new Error("Found no media in fragment "+t.sn+" of level "+r.id+" resetting transmuxer to fallback to playlist timing");if(this.warn(o.message),this.hls.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.FRAG_PARSING_ERROR,fatal:!1,error:o,frag:t,reason:"Found no media in msn "+t.sn+' of level "'+r.url+'"'}),!this.hls)return;this.resetTransmuxer()}this.state=jr,this.hls.trigger(E.FRAG_PARSED,{frag:t,part:e})}else this.warn("level.details undefined")},r.resetTransmuxer=function(){this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null)},r.recoverWorkerError=function(t){"demuxerWorker"===t.event&&(this.resetTransmuxer(),this.resetLoadingState())},a(e,[{key:"state",get:function(){return this._state},set:function(t){var e=this._state;e!==t&&(this._state=t,this.log(e+"->"+t))}}]),e}(kr);function Jr(){return self.SourceBuffer||self.WebKitSourceBuffer}function Zr(t,e){return void 0===t&&(t=""),void 0===e&&(e=9e4),{type:t,id:-1,pid:-1,inputTimeScale:e,sequenceNumber:-1,samples:[],dropped:0}}var ti=function(){function t(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}var e=t.prototype;return e.resetInitSegment=function(t,e,r,i){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}},e.resetTimeStamp=function(t){this.initPTS=t,this.resetContiguity()},e.resetContiguity=function(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0},e.canParse=function(t,e){return!1},e.appendFrame=function(t,e,r){},e.demux=function(t,e){this.cachedData&&(t=Pt(this.cachedData,t),this.cachedData=null);var r,i=at(t,0),n=i?i.length:0,a=this._audioTrack,s=this._id3Track,o=i?function(t){for(var e=ht(t),r=0;r<e.length;r++){var i=e[r];if(lt(i))return vt(i)}}(i):void 0,l=t.length;for((null===this.basePTS||0===this.frameIndex&&T(o))&&(this.basePTS=ei(o,e,this.initPTS),this.lastPTS=this.basePTS),null===this.lastPTS&&(this.lastPTS=this.basePTS),i&&i.length>0&&s.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:i,type:Re,duration:Number.POSITIVE_INFINITY});n<l;){if(this.canParse(t,n)){var u=this.appendFrame(a,t,n);u?(this.frameIndex++,this.lastPTS=u.sample.pts,r=n+=u.length):n=l}else ot(t,n)?(i=at(t,n),s.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:i,type:Re,duration:Number.POSITIVE_INFINITY}),r=n+=i.length):n++;if(n===l&&r!==l){var h=et(t,r);this.cachedData?this.cachedData=Pt(this.cachedData,h):this.cachedData=h}}return{audioTrack:a,videoTrack:Zr(),id3Track:s,textTrack:Zr()}},e.demuxSampleAes=function(t,e,r){return Promise.reject(new Error("["+this+"] This demuxer does not support Sample-AES decryption"))},e.flush=function(t){var e=this.cachedData;return e&&(this.cachedData=null,this.demux(e,0)),{audioTrack:this._audioTrack,videoTrack:Zr(),id3Track:this._id3Track,textTrack:Zr()}},e.destroy=function(){},t}(),ei=function(t,e,r){return T(t)?90*t:9e4*e+(r?9e4*r.baseTime/r.timescale:0)};function ri(t,e){return 255===t[e]&&240==(246&t[e+1])}function ii(t,e){return 1&t[e+1]?7:9}function ni(t,e){return(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5}function ai(t,e){return e+1<t.length&&ri(t,e)}function si(t,e){if(ai(t,e)){var r=ii(t,e);if(e+r>=t.length)return!1;var i=ni(t,e);if(i<=r)return!1;var n=e+i;return n===t.length||ai(t,n)}return!1}function oi(t,e,r,i,n){if(!t.samplerate){var a=function(t,e,r,i){var n,a,s,o,l=navigator.userAgent.toLowerCase(),u=i,h=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];n=1+((192&e[r+2])>>>6);var d=(60&e[r+2])>>>2;if(!(d>h.length-1))return s=(1&e[r+2])<<2,s|=(192&e[r+3])>>>6,I.log("manifest codec:"+i+", ADTS type:"+n+", samplingIndex:"+d),/firefox/i.test(l)?d>=6?(n=5,o=new Array(4),a=d-3):(n=2,o=new Array(2),a=d):-1!==l.indexOf("android")?(n=2,o=new Array(2),a=d):(n=5,o=new Array(4),i&&(-1!==i.indexOf("mp4a.40.29")||-1!==i.indexOf("mp4a.40.5"))||!i&&d>=6?a=d-3:((i&&-1!==i.indexOf("mp4a.40.2")&&(d>=6&&1===s||/vivaldi/i.test(l))||!i&&1===s)&&(n=2,o=new Array(2)),a=d)),o[0]=n<<3,o[0]|=(14&d)>>1,o[1]|=(1&d)<<7,o[1]|=s<<3,5===n&&(o[1]|=(14&a)>>1,o[2]=(1&a)<<7,o[2]|=8,o[3]=0),{config:o,samplerate:h[d],channelCount:s,codec:"mp4a.40."+n,manifestCodec:u};t.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+d})}(e,r,i,n);if(!a)return;t.config=a.config,t.samplerate=a.samplerate,t.channelCount=a.channelCount,t.codec=a.codec,t.manifestCodec=a.manifestCodec,I.log("parsed codec:"+t.codec+", rate:"+a.samplerate+", channels:"+a.channelCount)}}function li(t){return 9216e4/t}function ui(t,e,r,i,n){var a,s=i+n*li(t.samplerate),o=function(t,e){var r=ii(t,e);if(e+r<=t.length){var i=ni(t,e)-r;if(i>0)return{headerLength:r,frameLength:i}}}(e,r);if(o){var l=o.frameLength,u=o.headerLength,h=u+l,d=Math.max(0,r+h-e.length);d?(a=new Uint8Array(h-u)).set(e.subarray(r+u,e.length),0):a=e.subarray(r+u,r+h);var c={unit:a,pts:s};return d||t.samples.push(c),{sample:c,length:h,missing:d}}var f=e.length-r;return(a=new Uint8Array(f)).set(e.subarray(r,e.length),0),{sample:{unit:a,pts:s},length:f,missing:-1}}var hi=function(t){function e(e,r){var i;return(i=t.call(this)||this).observer=void 0,i.config=void 0,i.observer=e,i.config=r,i}l(e,t);var r=e.prototype;return r.resetInitSegment=function(e,r,i,n){t.prototype.resetInitSegment.call(this,e,r,i,n),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:r,duration:n,inputTimeScale:9e4,dropped:0}},e.probe=function(t){if(!t)return!1;for(var e=(at(t,0)||[]).length,r=t.length;e<r;e++)if(si(t,e))return I.log("ADTS sync word found !"),!0;return!1},r.canParse=function(t,e){return function(t,e){return function(t,e){return e+5<t.length}(t,e)&&ri(t,e)&&ni(t,e)<=t.length-e}(t,e)},r.appendFrame=function(t,e,r){oi(t,this.observer,e,r,t.manifestCodec);var i=ui(t,e,r,this.basePTS,this.frameIndex);if(i&&0===i.missing)return i},e}(ti),di=/\/emsg[-/]ID3/i,ci=function(){function t(t,e){this.remainderData=null,this.Demuxer=void 0,this.timeOffset=0,this.config=void 0,this.videoTrack=void 0,this.audioTrack=void 0,this.id3Track=void 0,this.txtTrack=void 0,this.config=e}var e=t.prototype;return e.resetTimeStamp=function(){},e.resetInitSegment=function(t,e,r,i){var n=this.videoTrack=Zr("video",1),a=this.audioTrack=Zr("audio",1),s=this.txtTrack=Zr("text",1);if(this.id3Track=Zr("id3",1),this.timeOffset=0,null!=t&&t.byteLength){var o=wt(t);if(o.video){var l=o.video,u=l.id,h=l.timescale,d=l.codec;n.id=u,n.timescale=s.timescale=h,n.codec=d}if(o.audio){var c=o.audio,f=c.id,g=c.timescale,v=c.codec;a.id=f,a.timescale=g,a.codec=v}s.id=St.text,n.sampleDuration=0,n.duration=a.duration=i}},e.resetContiguity=function(){this.remainderData=null},t.probe=function(t){return Dt(t=t.length>16384?t.subarray(0,16384):t,["moof"]).length>0},e.demux=function(t,e){this.timeOffset=e;var r=t,i=this.videoTrack,n=this.txtTrack;if(this.config.progressive){this.remainderData&&(r=Pt(this.remainderData,t));var a=function(t){var e={valid:null,remainder:null},r=Dt(t,["moof"]);if(!r)return e;if(r.length<2)return e.remainder=t,e;var i=r[r.length-1];return e.valid=et(t,0,i.byteOffset-8),e.remainder=et(t,i.byteOffset-8),e}(r);this.remainderData=a.remainder,i.samples=a.valid||new Uint8Array}else i.samples=r;var s=this.extractID3Track(i,e);return n.samples=xt(e,i),{videoTrack:i,audioTrack:this.audioTrack,id3Track:s,textTrack:this.txtTrack}},e.flush=function(){var t=this.timeOffset,e=this.videoTrack,r=this.txtTrack;e.samples=this.remainderData||new Uint8Array,this.remainderData=null;var i=this.extractID3Track(e,this.timeOffset);return r.samples=xt(t,e),{videoTrack:e,audioTrack:Zr(),id3Track:i,textTrack:Zr()}},e.extractID3Track=function(t,e){var r=this.id3Track;if(t.samples.length){var i=Dt(t.samples,["emsg"]);i&&i.forEach((function(t){var i=function(t){var e=t[0],r="",i="",n=0,a=0,s=0,o=0,l=0,u=0;if(0===e){for(;"\0"!==Lt(t.subarray(u,u+1));)r+=Lt(t.subarray(u,u+1)),u+=1;for(r+=Lt(t.subarray(u,u+1)),u+=1;"\0"!==Lt(t.subarray(u,u+1));)i+=Lt(t.subarray(u,u+1)),u+=1;i+=Lt(t.subarray(u,u+1)),u+=1,n=At(t,12),a=At(t,16),o=At(t,20),l=At(t,24),u=28}else if(1===e){n=At(t,u+=4);var h=At(t,u+=4),d=At(t,u+=4);for(u+=4,s=Math.pow(2,32)*h+d,Number.isSafeInteger(s)||(s=Number.MAX_SAFE_INTEGER,I.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),o=At(t,u),l=At(t,u+=4),u+=4;"\0"!==Lt(t.subarray(u,u+1));)r+=Lt(t.subarray(u,u+1)),u+=1;for(r+=Lt(t.subarray(u,u+1)),u+=1;"\0"!==Lt(t.subarray(u,u+1));)i+=Lt(t.subarray(u,u+1)),u+=1;i+=Lt(t.subarray(u,u+1)),u+=1}return{schemeIdUri:r,value:i,timeScale:n,presentationTime:s,presentationTimeDelta:a,eventDuration:o,id:l,payload:t.subarray(u,t.byteLength)}}(t);if(di.test(i.schemeIdUri)){var n=T(i.presentationTime)?i.presentationTime/i.timeScale:e+i.presentationTimeDelta/i.timeScale,a=4294967295===i.eventDuration?Number.POSITIVE_INFINITY:i.eventDuration/i.timeScale;a<=.001&&(a=Number.POSITIVE_INFINITY);var s=i.payload;r.samples.push({data:s,len:s.byteLength,dts:n,pts:n,type:ke,duration:a})}}))}return r},e.demuxSampleAes=function(t,e,r){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))},e.destroy=function(){},t}(),fi=null,gi=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],vi=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],mi=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],pi=[0,1,1,4];function yi(t,e,r,i,n){if(!(r+24>e.length)){var a=Ti(e,r);if(a&&r+a.frameLength<=e.length){var s=i+n*(9e4*a.samplesPerFrame/a.sampleRate),o={unit:e.subarray(r,r+a.frameLength),pts:s,dts:s};return t.config=[],t.channelCount=a.channelCount,t.samplerate=a.sampleRate,t.samples.push(o),{sample:o,length:a.frameLength,missing:0}}}}function Ti(t,e){var r=t[e+1]>>3&3,i=t[e+1]>>1&3,n=t[e+2]>>4&15,a=t[e+2]>>2&3;if(1!==r&&0!==n&&15!==n&&3!==a){var s=t[e+2]>>1&1,o=t[e+3]>>6,l=1e3*gi[14*(3===r?3-i:3===i?3:4)+n-1],u=vi[3*(3===r?0:2===r?1:2)+a],h=3===o?1:2,d=mi[r][i],c=pi[i],f=8*d*c,g=Math.floor(d*l/u+s)*c;if(null===fi){var v=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);fi=v?parseInt(v[1]):0}return!!fi&&fi<=87&&2===i&&l>=224e3&&0===o&&(t[e+3]=128|t[e+3]),{sampleRate:u,channelCount:h,frameLength:g,samplesPerFrame:f}}}function Ei(t,e){return 255===t[e]&&224==(224&t[e+1])&&0!=(6&t[e+1])}function Si(t,e){return e+1<t.length&&Ei(t,e)}function Li(t,e){if(e+1<t.length&&Ei(t,e)){var r=Ti(t,e),i=4;null!=r&&r.frameLength&&(i=r.frameLength);var n=e+i;return n===t.length||Si(t,n)}return!1}var Ri=function(){function t(t){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=t,this.bytesAvailable=t.byteLength,this.word=0,this.bitsAvailable=0}var e=t.prototype;return e.loadWord=function(){var t=this.data,e=this.bytesAvailable,r=t.byteLength-e,i=new Uint8Array(4),n=Math.min(4,e);if(0===n)throw new Error("no bytes available");i.set(t.subarray(r,r+n)),this.word=new DataView(i.buffer).getUint32(0),this.bitsAvailable=8*n,this.bytesAvailable-=n},e.skipBits=function(t){var e;t=Math.min(t,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>t?(this.word<<=t,this.bitsAvailable-=t):(t-=this.bitsAvailable,t-=(e=t>>3)<<3,this.bytesAvailable-=e,this.loadWord(),this.word<<=t,this.bitsAvailable-=t)},e.readBits=function(t){var e=Math.min(this.bitsAvailable,t),r=this.word>>>32-e;if(t>32&&I.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0)this.word<<=e;else{if(!(this.bytesAvailable>0))throw new Error("no bits available");this.loadWord()}return(e=t-e)>0&&this.bitsAvailable?r<<e|this.readBits(e):r},e.skipLZ=function(){var t;for(t=0;t<this.bitsAvailable;++t)if(0!=(this.word&2147483648>>>t))return this.word<<=t,this.bitsAvailable-=t,t;return this.loadWord(),t+this.skipLZ()},e.skipUEG=function(){this.skipBits(1+this.skipLZ())},e.skipEG=function(){this.skipBits(1+this.skipLZ())},e.readUEG=function(){var t=this.skipLZ();return this.readBits(t+1)-1},e.readEG=function(){var t=this.readUEG();return 1&t?1+t>>>1:-1*(t>>>1)},e.readBoolean=function(){return 1===this.readBits(1)},e.readUByte=function(){return this.readBits(8)},e.readUShort=function(){return this.readBits(16)},e.readUInt=function(){return this.readBits(32)},e.skipScalingList=function(t){for(var e=8,r=8,i=0;i<t;i++)0!==r&&(r=(e+this.readEG()+256)%256),e=0===r?e:r},e.readSPS=function(){var t,e,r,i=0,n=0,a=0,s=0,o=this.readUByte.bind(this),l=this.readBits.bind(this),u=this.readUEG.bind(this),h=this.readBoolean.bind(this),d=this.skipBits.bind(this),c=this.skipEG.bind(this),f=this.skipUEG.bind(this),g=this.skipScalingList.bind(this);o();var v=o();if(l(5),d(3),o(),f(),100===v||110===v||122===v||244===v||44===v||83===v||86===v||118===v||128===v){var m=u();if(3===m&&d(1),f(),f(),d(1),h())for(e=3!==m?8:12,r=0;r<e;r++)h()&&g(r<6?16:64)}f();var p=u();if(0===p)u();else if(1===p)for(d(1),c(),c(),t=u(),r=0;r<t;r++)c();f(),d(1);var y=u(),T=u(),E=l(1);0===E&&d(1),d(1),h()&&(i=u(),n=u(),a=u(),s=u());var S=[1,1];if(h()&&h())switch(o()){case 1:S=[1,1];break;case 2:S=[12,11];break;case 3:S=[10,11];break;case 4:S=[16,11];break;case 5:S=[40,33];break;case 6:S=[24,11];break;case 7:S=[20,11];break;case 8:S=[32,11];break;case 9:S=[80,33];break;case 10:S=[18,11];break;case 11:S=[15,11];break;case 12:S=[64,33];break;case 13:S=[160,99];break;case 14:S=[4,3];break;case 15:S=[3,2];break;case 16:S=[2,1];break;case 255:S=[o()<<8|o(),o()<<8|o()]}return{width:Math.ceil(16*(y+1)-2*i-2*n),height:(2-E)*(T+1)*16-(E?2:4)*(a+s),pixelRatio:S}},e.readSliceType=function(){return this.readUByte(),this.readUEG(),this.readUEG()},t}(),Ai=function(){function t(t,e,r){this.keyData=void 0,this.decrypter=void 0,this.keyData=r,this.decrypter=new Nr(e,{removePKCS7Padding:!1})}var e=t.prototype;return e.decryptBuffer=function(t){return this.decrypter.decrypt(t,this.keyData.key.buffer,this.keyData.iv.buffer)},e.decryptAacSample=function(t,e,r){var i=this,n=t[e].unit;if(!(n.length<=16)){var a=n.subarray(16,n.length-n.length%16),s=a.buffer.slice(a.byteOffset,a.byteOffset+a.length);this.decryptBuffer(s).then((function(a){var s=new Uint8Array(a);n.set(s,16),i.decrypter.isSync()||i.decryptAacSamples(t,e+1,r)}))}},e.decryptAacSamples=function(t,e,r){for(;;e++){if(e>=t.length)return void r();if(!(t[e].unit.length<32||(this.decryptAacSample(t,e,r),this.decrypter.isSync())))return}},e.getAvcEncryptedData=function(t){for(var e=16*Math.floor((t.length-48)/160)+16,r=new Int8Array(e),i=0,n=32;n<t.length-16;n+=160,i+=16)r.set(t.subarray(n,n+16),i);return r},e.getAvcDecryptedUnit=function(t,e){for(var r=new Uint8Array(e),i=0,n=32;n<t.length-16;n+=160,i+=16)t.set(r.subarray(i,i+16),n);return t},e.decryptAvcSample=function(t,e,r,i,n){var a=this,s=Mt(n.data),o=this.getAvcEncryptedData(s);this.decryptBuffer(o.buffer).then((function(o){n.data=a.getAvcDecryptedUnit(s,o),a.decrypter.isSync()||a.decryptAvcSamples(t,e,r+1,i)}))},e.decryptAvcSamples=function(t,e,r,i){if(t instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;e++,r=0){if(e>=t.length)return void i();for(var n=t[e].units;!(r>=n.length);r++){var a=n[r];if(!(a.data.length<=48||1!==a.type&&5!==a.type||(this.decryptAvcSample(t,e,r,i,a),this.decrypter.isSync())))return}}},t}(),ki=188,bi=function(){function t(t,e,r){this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._duration=0,this._pmtId=-1,this._avcTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.avcSample=null,this.remainderData=null,this.observer=t,this.config=e,this.typeSupported=r}t.probe=function(e){var r=t.syncOffset(e);return r>0&&I.warn("MPEG2-TS detected but first sync word found @ offset "+r),-1!==r},t.syncOffset=function(t){for(var e=t.length,r=Math.min(940,t.length-ki)+1,i=0;i<r;){for(var n=!1,a=i;a<e&&71===t[a];a+=ki)if(n||0!==Ii(t,a)||(n=!0),n&&a+ki>r)return i;i++}return-1},t.createTrack=function(t,e){return{container:"video"===t||"audio"===t?"video/mp2t":void 0,type:t,id:St[t],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:"audio"===t?e:void 0}};var e=t.prototype;return e.resetInitSegment=function(e,r,i,n){this.pmtParsed=!1,this._pmtId=-1,this._avcTrack=t.createTrack("video"),this._audioTrack=t.createTrack("audio",n),this._id3Track=t.createTrack("id3"),this._txtTrack=t.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.avcSample=null,this.remainderData=null,this.audioCodec=r,this.videoCodec=i,this._duration=n},e.resetTimeStamp=function(){},e.resetContiguity=function(){var t=this._audioTrack,e=this._avcTrack,r=this._id3Track;t&&(t.pesData=null),e&&(e.pesData=null),r&&(r.pesData=null),this.aacOverFlow=null,this.avcSample=null,this.remainderData=null},e.demux=function(e,r,i,n){var a;void 0===i&&(i=!1),void 0===n&&(n=!1),i||(this.sampleAes=null);var s=this._avcTrack,o=this._audioTrack,l=this._id3Track,u=this._txtTrack,h=s.pid,d=s.pesData,c=o.pid,f=l.pid,g=o.pesData,v=l.pesData,m=null,p=this.pmtParsed,y=this._pmtId,T=e.length;if(this.remainderData&&(T=(e=Pt(this.remainderData,e)).length,this.remainderData=null),T<ki&&!n)return this.remainderData=e,{audioTrack:o,videoTrack:s,id3Track:l,textTrack:u};var R=Math.max(0,t.syncOffset(e));(T-=(T-R)%ki)<e.byteLength&&!n&&(this.remainderData=new Uint8Array(e.buffer,T,e.buffer.byteLength-T));for(var A=0,k=R;k<T;k+=ki)if(71===e[k]){var b=!!(64&e[k+1]),D=Ii(e,k),w=void 0;if((48&e[k+3])>>4>1){if((w=k+5+e[k+4])===k+ki)continue}else w=k+4;switch(D){case h:b&&(d&&(a=_i(d))&&this.parseAVCPES(s,u,a,!1),d={data:[],size:0}),d&&(d.data.push(e.subarray(w,k+ki)),d.size+=k+ki-w);break;case c:if(b){if(g&&(a=_i(g)))switch(o.segmentCodec){case"aac":this.parseAACPES(o,a);break;case"mp3":this.parseMPEGPES(o,a)}g={data:[],size:0}}g&&(g.data.push(e.subarray(w,k+ki)),g.size+=k+ki-w);break;case f:b&&(v&&(a=_i(v))&&this.parseID3PES(l,a),v={data:[],size:0}),v&&(v.data.push(e.subarray(w,k+ki)),v.size+=k+ki-w);break;case 0:b&&(w+=e[w]+1),y=this._pmtId=wi(e,w);break;case y:b&&(w+=e[w]+1);var C=Ci(e,w,this.typeSupported,i,this.observer);(h=C.avc)>0&&(s.pid=h),(c=C.audio)>0&&(o.pid=c,o.segmentCodec=C.segmentCodec),(f=C.id3)>0&&(l.pid=f),null===m||p||(I.warn("MPEG-TS PMT found at "+k+" after unknown PID '"+m+"'. Backtracking to sync byte @"+R+" to parse all TS packets."),m=null,k=R-188),p=this.pmtParsed=!0;break;case 17:case 8191:break;default:m=D}}else A++;if(A>0){var _=new Error("Found "+A+" TS packet/s that do not start with 0x47");this.observer.emit(E.ERROR,E.ERROR,{type:S.MEDIA_ERROR,details:L.FRAG_PARSING_ERROR,fatal:!1,error:_,reason:_.message})}s.pesData=d,o.pesData=g,l.pesData=v;var P={audioTrack:o,videoTrack:s,id3Track:l,textTrack:u};return n&&this.extractRemainingSamples(P),P},e.flush=function(){var t,e=this.remainderData;return this.remainderData=null,t=e?this.demux(e,-1,!1,!0):{videoTrack:this._avcTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(t),this.sampleAes?this.decrypt(t,this.sampleAes):t},e.extractRemainingSamples=function(t){var e,r=t.audioTrack,i=t.videoTrack,n=t.id3Track,a=t.textTrack,s=i.pesData,o=r.pesData,l=n.pesData;if(s&&(e=_i(s))?(this.parseAVCPES(i,a,e,!0),i.pesData=null):i.pesData=s,o&&(e=_i(o))){switch(r.segmentCodec){case"aac":this.parseAACPES(r,e);break;case"mp3":this.parseMPEGPES(r,e)}r.pesData=null}else null!=o&&o.size&&I.log("last AAC PES packet truncated,might overlap between fragments"),r.pesData=o;l&&(e=_i(l))?(this.parseID3PES(n,e),n.pesData=null):n.pesData=l},e.demuxSampleAes=function(t,e,r){var i=this.demux(t,r,!0,!this.config.progressive),n=this.sampleAes=new Ai(this.observer,this.config,e);return this.decrypt(i,n)},e.decrypt=function(t,e){return new Promise((function(r){var i=t.audioTrack,n=t.videoTrack;i.samples&&"aac"===i.segmentCodec?e.decryptAacSamples(i.samples,0,(function(){n.samples?e.decryptAvcSamples(n.samples,0,0,(function(){r(t)})):r(t)})):n.samples&&e.decryptAvcSamples(n.samples,0,0,(function(){r(t)}))}))},e.destroy=function(){this._duration=0},e.parseAVCPES=function(t,e,r,i){var n,a=this,s=this.parseAVCNALu(t,r.data),o=this.avcSample,l=!1;r.data=null,o&&s.length&&!t.audFound&&(Pi(o,t),o=this.avcSample=Di(!1,r.pts,r.dts,"")),s.forEach((function(i){switch(i.type){case 1:n=!0,o||(o=a.avcSample=Di(!0,r.pts,r.dts,"")),o.frame=!0;var s=i.data;if(l&&s.length>4){var u=new Ri(s).readSliceType();2!==u&&4!==u&&7!==u&&9!==u||(o.key=!0)}break;case 5:n=!0,o||(o=a.avcSample=Di(!0,r.pts,r.dts,"")),o.key=!0,o.frame=!0;break;case 6:n=!0,Ot(i.data,1,r.pts,e.samples);break;case 7:if(n=!0,l=!0,!t.sps){var h=i.data,d=new Ri(h).readSPS();t.width=d.width,t.height=d.height,t.pixelRatio=d.pixelRatio,t.sps=[h],t.duration=a._duration;for(var c=h.subarray(1,4),f="avc1.",g=0;g<3;g++){var v=c[g].toString(16);v.length<2&&(v="0"+v),f+=v}t.codec=f}break;case 8:n=!0,t.pps||(t.pps=[i.data]);break;case 9:n=!1,t.audFound=!0,o&&Pi(o,t),o=a.avcSample=Di(!1,r.pts,r.dts,"");break;case 12:n=!0;break;default:n=!1,o&&(o.debug+="unknown NAL "+i.type+" ")}o&&n&&o.units.push(i)})),i&&o&&(Pi(o,t),this.avcSample=null)},e.getLastNalUnit=function(t){var e,r,i=this.avcSample;if(i&&0!==i.units.length||(i=t[t.length-1]),null!=(e=i)&&e.units){var n=i.units;r=n[n.length-1]}return r},e.parseAVCNALu=function(t,e){var r,i,n=e.byteLength,a=t.naluState||0,s=a,o=[],l=0,u=-1,h=0;for(-1===a&&(u=0,h=31&e[0],a=0,l=1);l<n;)if(r=e[l++],a)if(1!==a)if(r)if(1===r){if(u>=0){var d={data:e.subarray(u,l-a-1),type:h};o.push(d)}else{var c=this.getLastNalUnit(t.samples);if(c&&(s&&l<=4-s&&c.state&&(c.data=c.data.subarray(0,c.data.byteLength-s)),(i=l-a-1)>0)){var f=new Uint8Array(c.data.byteLength+i);f.set(c.data,0),f.set(e.subarray(0,i),c.data.byteLength),c.data=f,c.state=0}}l<n?(u=l,h=31&e[l],a=0):a=-1}else a=0;else a=3;else a=r?0:2;else a=r?0:1;if(u>=0&&a>=0){var g={data:e.subarray(u,n),type:h,state:a};o.push(g)}if(0===o.length){var v=this.getLastNalUnit(t.samples);if(v){var m=new Uint8Array(v.data.byteLength+e.byteLength);m.set(v.data,0),m.set(e,v.data.byteLength),v.data=m}}return t.naluState=a,o},e.parseAACPES=function(t,e){var r,i,n,a=0,s=this.aacOverFlow,o=e.data;if(s){this.aacOverFlow=null;var l=s.missing,u=s.sample.unit.byteLength;if(-1===l){var h=new Uint8Array(u+o.byteLength);h.set(s.sample.unit,0),h.set(o,u),o=h}else{var d=u-l;s.sample.unit.set(o.subarray(0,l),d),t.samples.push(s.sample),a=s.missing}}for(r=a,i=o.length;r<i-1&&!ai(o,r);r++);if(r!==a){var c,f=r<i-1;c=f?"AAC PES did not start with ADTS header,offset:"+r:"No ADTS header found in AAC PES";var g=new Error(c);if(I.warn("parsing error: "+c),this.observer.emit(E.ERROR,E.ERROR,{type:S.MEDIA_ERROR,details:L.FRAG_PARSING_ERROR,fatal:!1,levelRetry:f,error:g,reason:c}),!f)return}if(oi(t,this.observer,o,r,this.audioCodec),void 0!==e.pts)n=e.pts;else{if(!s)return void I.warn("[tsdemuxer]: AAC PES unknown PTS");var v=li(t.samplerate);n=s.sample.pts+v}for(var m,p=0;r<i;){if(r+=(m=ui(t,o,r,n,p)).length,m.missing){this.aacOverFlow=m;break}for(p++;r<i-1&&!ai(o,r);r++);}},e.parseMPEGPES=function(t,e){var r=e.data,i=r.length,n=0,a=0,s=e.pts;if(void 0!==s)for(;a<i;)if(Si(r,a)){var o=yi(t,r,a,s,n);if(!o)break;a+=o.length,n++}else a++;else I.warn("[tsdemuxer]: MPEG PES unknown PTS")},e.parseID3PES=function(t,e){if(void 0!==e.pts){var r=o({},e,{type:this._avcTrack?ke:Re,duration:Number.POSITIVE_INFINITY});t.samples.push(r)}else I.warn("[tsdemuxer]: ID3 PES unknown PTS")},t}();function Di(t,e,r,i){return{key:t,frame:!1,pts:e,dts:r,units:[],debug:i,length:0}}function Ii(t,e){return((31&t[e+1])<<8)+t[e+2]}function wi(t,e){return(31&t[e+10])<<8|t[e+11]}function Ci(t,e,r,i,n){var a={audio:-1,avc:-1,id3:-1,segmentCodec:"aac"},s=e+3+((15&t[e+1])<<8|t[e+2])-4;for(e+=12+((15&t[e+10])<<8|t[e+11]);e<s;){var o=Ii(t,e);switch(t[e]){case 207:if(!i){I.log("ADTS AAC with AES-128-CBC frame encryption found in unencrypted stream");break}case 15:-1===a.audio&&(a.audio=o);break;case 21:-1===a.id3&&(a.id3=o);break;case 219:if(!i){I.log("H.264 with AES-128-CBC slice encryption found in unencrypted stream");break}case 27:-1===a.avc&&(a.avc=o);break;case 3:case 4:!0!==r.mpeg&&!0!==r.mp3?I.log("MPEG audio found, not supported in this browser"):-1===a.audio&&(a.audio=o,a.segmentCodec="mp3");break;case 36:n.emit(E.ERROR,E.ERROR,{type:S.MEDIA_ERROR,details:L.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!1,reason:"Unsupported HEVC stream type found 0x24"}),I.warn("Unsupported HEVC stream type found")}e+=5+((15&t[e+3])<<8|t[e+4])}return a}function _i(t){var e,r,i,n,a,s=0,o=t.data;if(!t||0===t.size)return null;for(;o[0].length<19&&o.length>1;){var l=new Uint8Array(o[0].length+o[1].length);l.set(o[0]),l.set(o[1],o[0].length),o[0]=l,o.splice(1,1)}if(1===((e=o[0])[0]<<16)+(e[1]<<8)+e[2]){if((r=(e[4]<<8)+e[5])&&r>t.size-6)return null;var u=e[7];192&u&&(n=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,64&u?n-(a=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2)>54e5&&(I.warn(Math.round((n-a)/9e4)+"s delta between PTS and DTS, align them"),n=a):a=n);var h=(i=e[8])+9;if(t.size<=h)return null;t.size-=h;for(var d=new Uint8Array(t.size),c=0,f=o.length;c<f;c++){var g=(e=o[c]).byteLength;if(h){if(h>g){h-=g;continue}e=e.subarray(h),g-=h,h=0}d.set(e,s),s+=g}return r&&(r-=i+3),{data:d,pts:n,dts:a,len:r}}return null}function Pi(t,e){if(t.units.length&&t.frame){if(void 0===t.pts){var r=e.samples,i=r.length;if(!i)return void e.dropped++;var n=r[i-1];t.pts=n.pts,t.dts=n.dts}e.samples.push(t)}t.debug.length&&I.log(t.pts+"/"+t.dts+":"+t.debug)}var xi=function(t){function e(){return t.apply(this,arguments)||this}l(e,t);var r=e.prototype;return r.resetInitSegment=function(e,r,i,n){t.prototype.resetInitSegment.call(this,e,r,i,n),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:r,duration:n,inputTimeScale:9e4,dropped:0}},e.probe=function(t){if(!t)return!1;for(var e=(at(t,0)||[]).length,r=t.length;e<r;e++)if(Li(t,e))return I.log("MPEG Audio sync word found !"),!0;return!1},r.canParse=function(t,e){return function(t,e){return Ei(t,e)&&4<=t.length-e}(t,e)},r.appendFrame=function(t,e,r){if(null!==this.basePTS)return yi(t,e,r,this.basePTS,this.frameIndex)},e}(ti),Fi=function(){function t(){}return t.getSilentFrame=function(t,e){if("mp4a.40.2"===t){if(1===e)return new Uint8Array([0,200,0,128,35,128]);if(2===e)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===e)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===e)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===e)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}},t}(),Oi=Math.pow(2,32)-1,Mi=function(){function t(){}return t.init=function(){var e;for(e in t.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},t.types)t.types.hasOwnProperty(e)&&(t.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);var r=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);t.HDLR_TYPES={video:r,audio:i};var n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),a=new Uint8Array([0,0,0,0,0,0,0,0]);t.STTS=t.STSC=t.STCO=a,t.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),t.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),t.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),t.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);var s=new Uint8Array([105,115,111,109]),o=new Uint8Array([97,118,99,49]),l=new Uint8Array([0,0,0,1]);t.FTYP=t.box(t.types.ftyp,s,l,s,o),t.DINF=t.box(t.types.dinf,t.box(t.types.dref,n))},t.box=function(t){for(var e=8,r=arguments.length,i=new Array(r>1?r-1:0),n=1;n<r;n++)i[n-1]=arguments[n];for(var a=i.length,s=a;a--;)e+=i[a].byteLength;var o=new Uint8Array(e);for(o[0]=e>>24&255,o[1]=e>>16&255,o[2]=e>>8&255,o[3]=255&e,o.set(t,4),a=0,e=8;a<s;a++)o.set(i[a],e),e+=i[a].byteLength;return o},t.hdlr=function(e){return t.box(t.types.hdlr,t.HDLR_TYPES[e])},t.mdat=function(e){return t.box(t.types.mdat,e)},t.mdhd=function(e,r){r*=e;var i=Math.floor(r/(Oi+1)),n=Math.floor(r%(Oi+1));return t.box(t.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n,85,196,0,0]))},t.mdia=function(e){return t.box(t.types.mdia,t.mdhd(e.timescale,e.duration),t.hdlr(e.type),t.minf(e))},t.mfhd=function(e){return t.box(t.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e]))},t.minf=function(e){return"audio"===e.type?t.box(t.types.minf,t.box(t.types.smhd,t.SMHD),t.DINF,t.stbl(e)):t.box(t.types.minf,t.box(t.types.vmhd,t.VMHD),t.DINF,t.stbl(e))},t.moof=function(e,r,i){return t.box(t.types.moof,t.mfhd(e),t.traf(i,r))},t.moov=function(e){for(var r=e.length,i=[];r--;)i[r]=t.trak(e[r]);return t.box.apply(null,[t.types.moov,t.mvhd(e[0].timescale,e[0].duration)].concat(i).concat(t.mvex(e)))},t.mvex=function(e){for(var r=e.length,i=[];r--;)i[r]=t.trex(e[r]);return t.box.apply(null,[t.types.mvex].concat(i))},t.mvhd=function(e,r){r*=e;var i=Math.floor(r/(Oi+1)),n=Math.floor(r%(Oi+1)),a=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return t.box(t.types.mvhd,a)},t.sdtp=function(e){var r,i,n=e.samples||[],a=new Uint8Array(4+n.length);for(r=0;r<n.length;r++)i=n[r].flags,a[r+4]=i.dependsOn<<4|i.isDependedOn<<2|i.hasRedundancy;return t.box(t.types.sdtp,a)},t.stbl=function(e){return t.box(t.types.stbl,t.stsd(e),t.box(t.types.stts,t.STTS),t.box(t.types.stsc,t.STSC),t.box(t.types.stsz,t.STSZ),t.box(t.types.stco,t.STCO))},t.avc1=function(e){var r,i,n,a=[],s=[];for(r=0;r<e.sps.length;r++)n=(i=e.sps[r]).byteLength,a.push(n>>>8&255),a.push(255&n),a=a.concat(Array.prototype.slice.call(i));for(r=0;r<e.pps.length;r++)n=(i=e.pps[r]).byteLength,s.push(n>>>8&255),s.push(255&n),s=s.concat(Array.prototype.slice.call(i));var o=t.box(t.types.avcC,new Uint8Array([1,a[3],a[4],a[5],255,224|e.sps.length].concat(a).concat([e.pps.length]).concat(s))),l=e.width,u=e.height,h=e.pixelRatio[0],d=e.pixelRatio[1];return t.box(t.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,u>>8&255,255&u,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),o,t.box(t.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),t.box(t.types.pasp,new Uint8Array([h>>24,h>>16&255,h>>8&255,255&h,d>>24,d>>16&255,d>>8&255,255&d])))},t.esds=function(t){var e=t.config.length;return new Uint8Array([0,0,0,0,3,23+e,0,1,0,4,15+e,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([e]).concat(t.config).concat([6,1,2]))},t.mp4a=function(e){var r=e.samplerate;return t.box(t.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,r>>8&255,255&r,0,0]),t.box(t.types.esds,t.esds(e)))},t.mp3=function(e){var r=e.samplerate;return t.box(t.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,r>>8&255,255&r,0,0]))},t.stsd=function(e){return"audio"===e.type?"mp3"===e.segmentCodec&&"mp3"===e.codec?t.box(t.types.stsd,t.STSD,t.mp3(e)):t.box(t.types.stsd,t.STSD,t.mp4a(e)):t.box(t.types.stsd,t.STSD,t.avc1(e))},t.tkhd=function(e){var r=e.id,i=e.duration*e.timescale,n=e.width,a=e.height,s=Math.floor(i/(Oi+1)),o=Math.floor(i%(Oi+1));return t.box(t.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,r>>24&255,r>>16&255,r>>8&255,255&r,0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,o>>24,o>>16&255,o>>8&255,255&o,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>8&255,255&n,0,0,a>>8&255,255&a,0,0]))},t.traf=function(e,r){var i=t.sdtp(e),n=e.id,a=Math.floor(r/(Oi+1)),s=Math.floor(r%(Oi+1));return t.box(t.types.traf,t.box(t.types.tfhd,new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n])),t.box(t.types.tfdt,new Uint8Array([1,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,s>>24,s>>16&255,s>>8&255,255&s])),t.trun(e,i.length+16+20+8+16+8+8),i)},t.trak=function(e){return e.duration=e.duration||4294967295,t.box(t.types.trak,t.tkhd(e),t.mdia(e))},t.trex=function(e){var r=e.id;return t.box(t.types.trex,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},t.trun=function(e,r){var i,n,a,s,o,l,u=e.samples||[],h=u.length,d=12+16*h,c=new Uint8Array(d);for(r+=8+d,c.set(["video"===e.type?1:0,0,15,1,h>>>24&255,h>>>16&255,h>>>8&255,255&h,r>>>24&255,r>>>16&255,r>>>8&255,255&r],0),i=0;i<h;i++)a=(n=u[i]).duration,s=n.size,o=n.flags,l=n.cts,c.set([a>>>24&255,a>>>16&255,a>>>8&255,255&a,s>>>24&255,s>>>16&255,s>>>8&255,255&s,o.isLeading<<2|o.dependsOn,o.isDependedOn<<6|o.hasRedundancy<<4|o.paddingValue<<1|o.isNonSync,61440&o.degradPrio,15&o.degradPrio,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*i);return t.box(t.types.trun,c)},t.initSegment=function(e){t.types||t.init();var r=t.moov(e),i=new Uint8Array(t.FTYP.byteLength+r.byteLength);return i.set(t.FTYP),i.set(r,t.FTYP.byteLength),i},t}();Mi.types=void 0,Mi.HDLR_TYPES=void 0,Mi.STTS=void 0,Mi.STSC=void 0,Mi.STCO=void 0,Mi.STSZ=void 0,Mi.VMHD=void 0,Mi.SMHD=void 0,Mi.STSD=void 0,Mi.FTYP=void 0,Mi.DINF=void 0;var Ni=9e4;function Ui(t,e,r,i){void 0===r&&(r=1),void 0===i&&(i=!1);var n=t*e*r;return i?Math.round(n):n}function Bi(t,e){return void 0===e&&(e=!1),Ui(t,1e3,1/Ni,e)}var Gi=null,Ki=null,Hi=function(){function t(t,e,r,i){if(this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextAvcDts=null,this.nextAudioPts=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.gLastPTS=0,this.observer=t,this.config=e,this.typeSupported=r,this.ISGenerated=!1,null===Gi){var n=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);Gi=n?parseInt(n[1]):0}if(null===Ki){var a=navigator.userAgent.match(/Safari\/(\d+)/i);Ki=a?parseInt(a[1]):0}}var e=t.prototype;return e.destroy=function(){},e.resetTimeStamp=function(t){I.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=t},e.resetNextTimestamp=function(){I.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1},e.resetInitSegment=function(){I.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1},e.getVideoStartPts=function(t){var e=!1,r=t.reduce((function(t,r){var i=r.pts-t;return i<-4294967296?(e=!0,Vi(t,r.pts)):i>0?t:r.pts}),t[0].pts);return e&&I.debug("PTS rollover detected"),r},e.remux=function(t,e,r,i,n,a,s,o,l){var u,h,d,c,f,g,v=this,m=n,p=n,y=t.pid>-1,T=e.pid>-1,E=e.samples.length,S=t.samples.length>0,L=s&&E>0||E>1,R=(!y||S)&&(!T||L)||this.ISGenerated||s;if(this.gLastPTS=l*(e.samples.length-1)*3600,t.samples.forEach((function(t,e){return t.pts=3600*e+v.gLastPTS})),e.samples.forEach((function(t,e){t.pts=3600*e+v.gLastPTS,t.dts=3600*e+v.gLastPTS})),R){this.ISGenerated||(d=this.generateIS(t,e,n,a));var A,k=this.isVideoContiguous,b=-1;if(L&&(b=function(t){for(var e=0;e<t.length;e++)if(t[e].key)return e;return-1}(e.samples),!k&&this.config.forceKeyFrameOnDiscontinuity))if(g=!0,b>0){I.warn("[mp4-remuxer]: Dropped "+b+" out of "+E+" video samples due to a missing keyframe");var D=this.getVideoStartPts(e.samples);e.samples=e.samples.slice(b),e.dropped+=b,A=p+=(e.samples[0].pts-D)/e.inputTimeScale}else-1===b&&(I.warn("[mp4-remuxer]: No keyframe found out of "+E+" video samples"),g=!1);if(this.ISGenerated){if(S&&L){var w=this.getVideoStartPts(e.samples),C=(Vi(t.samples[0].pts,w)-w)/e.inputTimeScale;m+=Math.max(0,C),p+=Math.max(0,-C)}if(S){if(t.samplerate||(I.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),d=this.generateIS(t,e,n,a)),h=this.remuxAudio(t,m,this.isAudioContiguous,a,T||L||o===ge?p:void 0),L){var _=h?h.endPTS-h.startPTS:0;e.inputTimeScale||(I.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),d=this.generateIS(t,e,n,a)),u=this.remuxVideo(e,p,k,_)}}else L&&(u=this.remuxVideo(e,p,k,0));u&&(u.firstKeyFrame=b,u.independent=-1!==b,u.firstKeyFramePTS=A)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(r.samples.length&&(f=Yi(r,n,this._initPTS,this._initDTS)),i.samples.length&&(c=Wi(i,n,this._initPTS))),{audio:h,video:u,initSegment:d,independent:g,text:c,id3:f}},e.generateIS=function(t,e,r,i){var n,a,s,o=t.samples,l=e.samples,u=this.typeSupported,h={},d=this._initPTS,c=!d||i,f="audio/mp4";if(c&&(n=a=1/0),t.config&&o.length&&(t.timescale=t.samplerate,"mp3"===t.segmentCodec&&(u.mpeg?(f="audio/mpeg",t.codec=""):u.mp3&&(t.codec="mp3")),h.audio={id:"audio",container:f,codec:t.codec,initSegment:"mp3"===t.segmentCodec&&u.mpeg?new Uint8Array(0):Mi.initSegment([t]),metadata:{channelCount:t.channelCount}},c&&(s=t.inputTimeScale,d&&s===d.timescale?c=!1:n=a=o[0].pts-Math.round(s*r))),e.sps&&e.pps&&l.length&&(e.timescale=e.inputTimeScale,h.video={id:"main",container:"video/mp4",codec:e.codec,initSegment:Mi.initSegment([e]),metadata:{width:e.width,height:e.height}},c))if(s=e.inputTimeScale,d&&s===d.timescale)c=!1;else{var g=this.getVideoStartPts(l),v=Math.round(s*r);a=Math.min(a,Vi(l[0].dts,g)-v),n=Math.min(n,g-v)}if(Object.keys(h).length)return this.ISGenerated=!0,c?(this._initPTS={baseTime:n,timescale:s},this._initDTS={baseTime:a,timescale:s}):n=s=void 0,{tracks:h,initPTS:n,timescale:s}},e.remuxVideo=function(t,e,r,i){var n,a,s=t.inputTimeScale,l=t.samples,u=[],h=l.length,d=this._initPTS,c=this.nextAvcDts,f=8,g=this.videoSampleDuration,v=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,p=!1;r&&null!==c||(c=e*s-(l[0].pts-Vi(l[0].dts,l[0].pts)));for(var y=d.baseTime*s/d.timescale,T=0;T<h;T++){var R=l[T];R.pts=Vi(R.pts-y,c),R.dts=Vi(R.dts-y,c),R.dts<l[T>0?T-1:T].dts&&(p=!0)}p&&l.sort((function(t,e){var r=t.dts-e.dts,i=t.pts-e.pts;return r||i})),n=l[0].dts;var A=(a=l[l.length-1].dts)-n,k=A?Math.round(A/(h-1)):g||t.inputTimeScale/30;if(r){var b=n-c,D=b>k,w=b<-1;if((D||w)&&(D?I.warn("AVC: "+Bi(b,!0)+" ms ("+b+"dts) hole between fragments detected, filling it"):I.warn("AVC: "+Bi(-b,!0)+" ms ("+b+"dts) overlapping between fragments detected"),!w||c>l[0].pts)){n=c;var C=l[0].pts-b;l[0].dts=n,l[0].pts=C,I.log("Video: First PTS/DTS adjusted: "+Bi(C,!0)+"/"+Bi(n,!0)+", delta: "+Bi(b,!0)+" ms")}}n=Math.max(0,n);for(var _=0,P=0,x=0;x<h;x++){for(var F=l[x],O=F.units,M=O.length,N=0,U=0;U<M;U++)N+=O[U].data.length;P+=N,_+=M,F.length=N,F.dts=Math.max(F.dts,n),v=Math.min(F.pts,v),m=Math.max(F.pts,m)}a=l[h-1].dts;var B,G=P+4*_+8;try{B=new Uint8Array(G)}catch(t){return void this.observer.emit(E.ERROR,E.ERROR,{type:S.MUX_ERROR,details:L.REMUX_ALLOC_ERROR,fatal:!1,error:t,bytes:G,reason:"fail allocating video mdat "+G})}var K=new DataView(B.buffer);K.setUint32(0,G),B.set(Mi.types.mdat,4);for(var H=!1,V=Number.POSITIVE_INFINITY,Y=Number.POSITIVE_INFINITY,W=Number.NEGATIVE_INFINITY,j=Number.NEGATIVE_INFINITY,q=0;q<h;q++){for(var X=l[q],z=X.units,Q=0,$=0,J=z.length;$<J;$++){var Z=z[$],tt=Z.data,et=Z.data.byteLength;K.setUint32(f,et),f+=4,B.set(tt,f),f+=et,Q+=4+et}var rt=void 0;if(q<h-1)g=l[q+1].dts-X.dts,rt=l[q+1].pts-X.pts;else{var it=this.config,nt=q>0?X.dts-l[q-1].dts:k;if(rt=q>0?X.pts-l[q-1].pts:k,it.stretchShortVideoTrack&&null!==this.nextAudioPts){var at=Math.floor(it.maxBufferHole*s),st=(i?v+i*s:this.nextAudioPts)-X.pts;st>at?((g=st-nt)<0?g=nt:H=!0,I.log("[mp4-remuxer]: It is approximately "+st/90+" ms to the next segment; using duration "+g/90+" ms for the last video frame.")):g=nt}else g=nt}var ot=Math.round(X.pts-X.dts);V=Math.min(V,g),W=Math.max(W,g),Y=Math.min(Y,rt),j=Math.max(j,rt),u.push(new qi(X.key,g,Q,ot))}if(u.length)if(Gi){if(Gi<70){var lt=u[0].flags;lt.dependsOn=2,lt.isNonSync=0}}else if(Ki&&j-Y<W-V&&k/W<.025&&0===u[0].cts){I.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");for(var ut=n,ht=0,dt=u.length;ht<dt;ht++){var ct=ut+u[ht].duration,ft=ut+u[ht].cts;if(ht<dt-1){var gt=ct+u[ht+1].cts;u[ht].duration=gt-ft}else u[ht].duration=ht?u[ht-1].duration:k;u[ht].cts=0,ut=ct}}g=H||!g?k:g,this.nextAvcDts=c=a+g,this.videoSampleDuration=g,this.isVideoContiguous=!0;var vt={data1:Mi.moof(t.sequenceNumber++,n,o({},t,{samples:u})),data2:B,startPTS:v/s,endPTS:(m+g)/s,startDTS:n/s,endDTS:c/s,type:"video",hasAudio:!1,hasVideo:!0,nb:u.length,dropped:t.dropped};return t.samples=[],t.dropped=0,vt},e.remuxAudio=function(t,e,r,i,n){var a=t.inputTimeScale,s=a/(t.samplerate?t.samplerate:a),l="aac"===t.segmentCodec?1024:1152,u=l*s,h=this._initPTS,d="mp3"===t.segmentCodec&&this.typeSupported.mpeg,c=[],f=void 0!==n,g=t.samples,v=d?0:8,m=this.nextAudioPts||-1,p=e*a,y=h.baseTime*a/h.timescale;if(this.isAudioContiguous=r=r||g.length&&m>0&&(i&&Math.abs(p-m)<9e3||Math.abs(Vi(g[0].pts-y,p)-m)<20*u),g.forEach((function(t){t.pts=Vi(t.pts-y,p)})),!r||m<0){if(g=g.filter((function(t){return t.pts>=0})),!g.length)return;m=0===n?0:i&&!f?Math.max(0,p):g[0].pts}if("aac"===t.segmentCodec)for(var T=this.config.maxAudioFramesDrift,R=0,A=m;R<g.length;R++){var k=g[R],b=k.pts,D=b-A,w=Math.abs(1e3*D/a);if(D<=-T*u&&f)0===R&&(I.warn("Audio frame @ "+(b/a).toFixed(3)+"s overlaps nextAudioPts by "+Math.round(1e3*D/a)+" ms."),this.nextAudioPts=m=A=b);else if(D>=T*u&&w<1e4&&f){var C=Math.round(D/u);(A=b-C*u)<0&&(C--,A+=u),0===R&&(this.nextAudioPts=m=A),I.warn("[mp4-remuxer]: Injecting "+C+" audio frame @ "+(A/a).toFixed(3)+"s due to "+Math.round(1e3*D/a)+" ms gap.");for(var _=0;_<C;_++){var P=Math.max(A,0),x=Fi.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);x||(I.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."),x=k.unit.subarray()),g.splice(R,0,{unit:x,pts:P}),A+=u,R++}}k.pts=A,A+=u}for(var F,O=null,M=null,N=0,U=g.length;U--;)N+=g[U].unit.byteLength;for(var B=0,G=g.length;B<G;B++){var K=g[B],H=K.unit,V=K.pts;if(null!==M)c[B-1].duration=Math.round((V-M)/s);else{if(r&&"aac"===t.segmentCodec&&(V=m),O=V,!(N>0))return;N+=v;try{F=new Uint8Array(N)}catch(t){return void this.observer.emit(E.ERROR,E.ERROR,{type:S.MUX_ERROR,details:L.REMUX_ALLOC_ERROR,fatal:!1,error:t,bytes:N,reason:"fail allocating audio mdat "+N})}d||(new DataView(F.buffer).setUint32(0,N),F.set(Mi.types.mdat,4))}F.set(H,v);var Y=H.byteLength;v+=Y,c.push(new qi(!0,l,Y,0)),M=V}var W=c.length;if(W){var j=c[c.length-1];this.nextAudioPts=m=M+s*j.duration;var q=d?new Uint8Array(0):Mi.moof(t.sequenceNumber++,O/s,o({},t,{samples:c}));t.samples=[];var X=O/a,z=m/a,Q={data1:q,data2:F,startPTS:X,endPTS:z,startDTS:X,endDTS:z,type:"audio",hasAudio:!0,hasVideo:!1,nb:W};return this.isAudioContiguous=!0,Q}},e.remuxEmptyAudio=function(t,e,r,i){var n=t.inputTimeScale,a=n/(t.samplerate?t.samplerate:n),s=this.nextAudioPts,o=this._initDTS,l=9e4*o.baseTime/o.timescale,u=(null!==s?s:i.startDTS*n)+l,h=i.endDTS*n+l,d=1024*a,c=Math.ceil((h-u)/d),f=Fi.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);if(I.warn("[mp4-remuxer]: remux empty Audio"),f){for(var g=[],v=0;v<c;v++){var m=u+v*d;g.push({unit:f,pts:m,dts:m})}return t.samples=g,this.remuxAudio(t,e,r,!1)}I.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec")},t}();function Vi(t,e){var r;if(null===e)return t;for(r=e<t?-8589934592:8589934592;Math.abs(t-e)>4294967296;)t+=r;return t}function Yi(t,e,r,i){var n=t.samples.length;if(n){for(var a=t.inputTimeScale,s=0;s<n;s++){var o=t.samples[s];o.pts=Vi(o.pts-9e4*r.baseTime/r.timescale,e*a)/a,o.dts=Vi(o.dts-9e4*i.baseTime/i.timescale,e*a)/a}var l=t.samples;return t.samples=[],{samples:l}}}function Wi(t,e,r){var i=t.samples.length;if(i){for(var n=t.inputTimeScale,a=0;a<i;a++){var s=t.samples[a];s.pts=Vi(s.pts-9e4*r.baseTime/r.timescale,e*n)/n}t.samples.sort((function(t,e){return t.pts-e.pts}));var o=t.samples;return t.samples=[],{samples:o}}}var ji,qi=function(t,e,r,i){this.size=void 0,this.duration=void 0,this.cts=void 0,this.flags=void 0,this.duration=e,this.size=r,this.cts=i,this.flags=new Xi(t)},Xi=function(t){this.isLeading=0,this.isDependedOn=0,this.hasRedundancy=0,this.degradPrio=0,this.dependsOn=1,this.isNonSync=1,this.dependsOn=t?2:1,this.isNonSync=t?0:1},zi=function(){function t(){this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null}var e=t.prototype;return e.destroy=function(){},e.resetTimeStamp=function(t){this.initPTS=t,this.lastEndTime=null},e.resetNextTimestamp=function(){this.lastEndTime=null},e.resetInitSegment=function(t,e,r,i){this.audioCodec=e,this.videoCodec=r,this.generateInitSegment(function(t,e){if(!t||!e)return t;var r=e.keyId;return r&&e.isCommonEncryption&&Dt(t,["moov","trak"]).forEach((function(t){var e=Dt(t,["mdia","minf","stbl","stsd"])[0].subarray(8),i=Dt(e,["enca"]),n=i.length>0;n||(i=Dt(e,["encv"])),i.forEach((function(t){Dt(n?t.subarray(28):t.subarray(78),["sinf"]).forEach((function(t){var e=Ct(t);if(e){var i=e.subarray(8,24);i.some((function(t){return 0!==t}))||(I.log("[eme] Patching keyId in 'enc"+(n?"a":"v")+">sinf>>tenc' box: "+yt(i)+" -> "+yt(r)),e.set(r,8))}}))}))})),t}(t,i)),this.emitInitSegment=!0},e.generateInitSegment=function(t){var e=this.audioCodec,r=this.videoCodec;if(null==t||!t.byteLength)return this.initTracks=void 0,void(this.initData=void 0);var i=this.initData=wt(t);e||(e=Qi(i.audio,O)),r||(r=Qi(i.video,M));var n={};i.audio&&i.video?n.audiovideo={container:"video/mp4",codec:e+","+r,initSegment:t,id:"main"}:i.audio?n.audio={container:"audio/mp4",codec:e,initSegment:t,id:"audio"}:i.video?n.video={container:"video/mp4",codec:r,initSegment:t,id:"main"}:I.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=n},e.remux=function(t,e,r,i,n,a){var s,o,l=this.initPTS,u=this.lastEndTime,h={audio:void 0,video:void 0,text:i,id3:r,initSegment:void 0};T(u)||(u=this.lastEndTime=n||0);var d=e.samples;if(null==d||!d.length)return h;var c={initPTS:void 0,timescale:1},f=this.initData;if(null!=(s=f)&&s.length||(this.generateInitSegment(d),f=this.initData),null==(o=f)||!o.length)return I.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."),h;this.emitInitSegment&&(c.tracks=this.initTracks,this.emitInitSegment=!1);var g=function(t,e){for(var r=0,i=0,n=0,a=Dt(t,["moof","traf"]),s=0;s<a.length;s++){var o=a[s],l=Dt(o,["tfhd"])[0],u=e[At(l,4)];if(u){var h=u.default,d=At(l,0)|(null==h?void 0:h.flags),c=null==h?void 0:h.duration;8&d&&(c=At(l,2&d?12:8));for(var f=u.timescale||9e4,g=Dt(o,["trun"]),v=0;v<g.length;v++)!(r=_t(g[v]))&&c&&(r=c*At(g[v],4)),u.type===M?i+=r/f:u.type===O&&(n+=r/f)}}if(0===i&&0===n){for(var m=0,p=Dt(t,["sidx"]),y=0;y<p.length;y++){var T=It(p[y]);null!=T&&T.references&&(m+=T.references.reduce((function(t,e){return t+e.info.duration||0}),0))}return m}return i||n}(d,f),v=function(t,e){return Dt(e,["moof","traf"]).reduce((function(e,r){var i=Dt(r,["tfdt"])[0],n=i[0],a=Dt(r,["tfhd"]).reduce((function(e,r){var a=At(r,4),s=t[a];if(s){var o=At(i,4);if(1===n){if(o===Tt)return I.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),e;o*=Tt+1,o+=At(i,8)}var l=o/(s.timescale||9e4);if(isFinite(l)&&(null===e||l<e))return l}return e}),null);return null!==a&&isFinite(a)&&(null===e||a<e)?a:e}),null)}(f,d),m=null===v?n:v;(function(t,e,r,i){if(null===t)return!0;var n=Math.max(i,1),a=e-t.baseTime/t.timescale;return Math.abs(a-r)>n}(l,m,n,g)||c.timescale!==l.timescale&&a)&&(c.initPTS=m-n,l&&1===l.timescale&&I.warn("Adjusting initPTS by "+(c.initPTS-l.baseTime)),this.initPTS=l={baseTime:c.initPTS,timescale:1});var p=t?m-l.baseTime/l.timescale:u,y=p+g;!function(t,e,r){Dt(e,["moof","traf"]).forEach((function(e){Dt(e,["tfhd"]).forEach((function(i){var n=At(i,4),a=t[n];if(a){var s=a.timescale||9e4;Dt(e,["tfdt"]).forEach((function(t){var e=t[0],i=At(t,4);if(0===e)i-=r*s,bt(t,4,i=Math.max(i,0));else{i*=Math.pow(2,32),i+=At(t,8),i-=r*s,i=Math.max(i,0);var n=Math.floor(i/(Tt+1)),a=Math.floor(i%(Tt+1));bt(t,4,n),bt(t,8,a)}}))}}))}))}(f,d,l.baseTime/l.timescale),g>0?this.lastEndTime=y:(I.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());var E=!!f.audio,S=!!f.video,L="";E&&(L+="audio"),S&&(L+="video");var R={data1:d,startPTS:p,startDTS:p,endPTS:y,endDTS:y,type:L,hasAudio:E,hasVideo:S,nb:1,dropped:0};return h.audio="audio"===R.type?R:void 0,h.video="audio"!==R.type?R:void 0,h.initSegment=c,h.id3=Yi(r,n,l,l),i.samples.length&&(h.text=Wi(i,n,l)),h},t}();function Qi(t,e){var r=null==t?void 0:t.codec;return r&&r.length>4?r:"hvc1"===r||"hev1"===r?"hvc1.1.6.L120.90":"av01"===r?"av01.0.04M.08":"avc1"===r||e===M?"avc1.42e01e":"mp4a.40.5"}try{ji=self.performance.now.bind(self.performance)}catch(t){I.debug("Unable to use Performance API on this environment"),ji="undefined"!=typeof self&&self.Date.now}var $i=[{demux:ci,remux:zi},{demux:bi,remux:Hi},{demux:hi,remux:Hi},{demux:xi,remux:Hi}],Ji=function(){function t(t,e,r,i,n){this.async=!1,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.vendor=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=t,this.typeSupported=e,this.config=r,this.vendor=i,this.id=n}var e=t.prototype;return e.configure=function(t){this.transmuxConfig=t,this.decrypter&&this.decrypter.reset()},e.push=function(t,e,r,i){var n=this,a=r.transmuxing;a.executeStart=ji();var s=new Uint8Array(t),o=this.currentTransmuxState,l=this.transmuxConfig;i&&(this.currentTransmuxState=i);var u=i||o,h=u.contiguous,d=u.discontinuity,c=u.trackSwitch,f=u.accurateTimeOffset,g=u.timeOffset,v=u.initSegmentChange,m=l.audioCodec,p=l.videoCodec,y=l.defaultInitPts,T=l.duration,R=l.initSegmentData,A=function(t,e){var r=null;return t.byteLength>0&&null!=e&&null!=e.key&&null!==e.iv&&null!=e.method&&(r=e),r}(s,e);if(A&&"AES-128"===A.method){var k=this.getDecrypter();if(!k.isSync())return this.decryptionPromise=k.webCryptoDecrypt(s,A.key.buffer,A.iv.buffer).then((function(t){var e=n.push(t,null,r);return n.decryptionPromise=null,e})),this.decryptionPromise;var b=k.softwareDecrypt(s,A.key.buffer,A.iv.buffer);if(r.part>-1&&(b=k.flush()),!b)return a.executeEnd=ji(),Zi(r);s=new Uint8Array(b)}var D=this.needsProbing(d,c);if(D){var w=this.configureTransmuxer(s);if(w)return I.warn("[transmuxer] "+w.message),this.observer.emit(E.ERROR,E.ERROR,{type:S.MEDIA_ERROR,details:L.FRAG_PARSING_ERROR,fatal:!1,error:w,reason:w.message}),a.executeEnd=ji(),Zi(r)}(d||c||v||D)&&this.resetInitSegment(R,m,p,T,e),(d||v||D)&&this.resetInitialTimestamp(y),h||this.resetContiguity();var C=this.transmux(s,A,g,f,r),_=this.currentTransmuxState;return _.contiguous=!0,_.discontinuity=!1,_.trackSwitch=!1,a.executeEnd=ji(),C},e.flush=function(t){var e=this,r=t.transmuxing;r.executeStart=ji();var i=this.decrypter,n=this.currentTransmuxState,a=this.decryptionPromise;if(a)return a.then((function(){return e.flush(t)}));var s=[],o=n.timeOffset;if(i){var l=i.flush();l&&s.push(this.push(l,null,t))}var u=this.demuxer,h=this.remuxer;if(!u||!h)return r.executeEnd=ji(),[Zi(t)];var d=u.flush(o);return tn(d)?d.then((function(r){return e.flushRemux(s,r,t),s})):(this.flushRemux(s,d,t),s)},e.flushRemux=function(t,e,r){var i=e.audioTrack,n=e.videoTrack,a=e.id3Track,s=e.textTrack,o=this.currentTransmuxState,l=o.accurateTimeOffset,u=o.timeOffset;I.log("[transmuxer.ts]: Flushed fragment "+r.sn+(r.part>-1?" p: "+r.part:"")+" of level "+r.level);var h=this.remuxer.remux(i,n,a,s,u,l,!0,this.id,r.sn);t.push({remuxResult:h,chunkMeta:r}),r.transmuxing.executeEnd=ji()},e.resetInitialTimestamp=function(t){var e=this.demuxer,r=this.remuxer;e&&r&&(e.resetTimeStamp(t),r.resetTimeStamp(t))},e.resetContiguity=function(){var t=this.demuxer,e=this.remuxer;t&&e&&(t.resetContiguity(),e.resetNextTimestamp())},e.resetInitSegment=function(t,e,r,i,n){var a=this.demuxer,s=this.remuxer;a&&s&&(a.resetInitSegment(t,e,r,i),s.resetInitSegment(t,e,r,n))},e.destroy=function(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)},e.transmux=function(t,e,r,i,n){return e&&"SAMPLE-AES"===e.method?this.transmuxSampleAes(t,e,r,i,n):this.transmuxUnencrypted(t,r,i,n)},e.transmuxUnencrypted=function(t,e,r,i){var n=this.demuxer.demux(t,e,!1,!this.config.progressive),a=n.audioTrack,s=n.videoTrack,o=n.id3Track,l=n.textTrack;return{remuxResult:this.remuxer.remux(a,s,o,l,e,r,!1,this.id,i.sn),chunkMeta:i}},e.transmuxSampleAes=function(t,e,r,i,n){var a=this;return this.demuxer.demuxSampleAes(t,e,r).then((function(t){return{remuxResult:a.remuxer.remux(t.audioTrack,t.videoTrack,t.id3Track,t.textTrack,r,i,!1,a.id,n.sn),chunkMeta:n}}))},e.configureTransmuxer=function(t){for(var e,r=this.config,i=this.observer,n=this.typeSupported,a=this.vendor,s=0,o=$i.length;s<o;s++)if($i[s].demux.probe(t)){e=$i[s];break}if(!e)return new Error("Failed to find demuxer by probing fragment data");var l=this.demuxer,u=this.remuxer,h=e.remux,d=e.demux;u&&u instanceof h||(this.remuxer=new h(i,r,n,a)),l&&l instanceof d||(this.demuxer=new d(i,r,n),this.probe=d.probe)},e.needsProbing=function(t,e){return!this.demuxer||!this.remuxer||t||e},e.getDecrypter=function(){var t=this.decrypter;return t||(t=this.decrypter=new Nr(this.config)),t},t}(),Zi=function(t){return{remuxResult:{},chunkMeta:t}};function tn(t){return"then"in t&&t.then instanceof Function}var en=function(t,e,r,i,n){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=t,this.videoCodec=e,this.initSegmentData=r,this.duration=i,this.defaultInitPts=n||null},rn=function(t,e,r,i,n,a){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=t,this.contiguous=e,this.accurateTimeOffset=r,this.trackSwitch=i,this.timeOffset=n,this.initSegmentChange=a},nn={exports:{}};!function(t){var e=Object.prototype.hasOwnProperty,r="~";function i(){}function n(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function a(t,e,i,a,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");var o=new n(i,a||t,s),l=r?r+e:e;return t._events[l]?t._events[l].fn?t._events[l]=[t._events[l],o]:t._events[l].push(o):(t._events[l]=o,t._eventsCount++),t}function s(t,e){0==--t._eventsCount?t._events=new i:delete t._events[e]}function o(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),(new i).__proto__||(r=!1)),o.prototype.eventNames=function(){var t,i,n=[];if(0===this._eventsCount)return n;for(i in t=this._events)e.call(t,i)&&n.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(t)):n},o.prototype.listeners=function(t){var e=r?r+t:t,i=this._events[e];if(!i)return[];if(i.fn)return[i.fn];for(var n=0,a=i.length,s=new Array(a);n<a;n++)s[n]=i[n].fn;return s},o.prototype.listenerCount=function(t){var e=r?r+t:t,i=this._events[e];return i?i.fn?1:i.length:0},o.prototype.emit=function(t,e,i,n,a,s){var o=r?r+t:t;if(!this._events[o])return!1;var l,u,h=this._events[o],d=arguments.length;if(h.fn){switch(h.once&&this.removeListener(t,h.fn,void 0,!0),d){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,e),!0;case 3:return h.fn.call(h.context,e,i),!0;case 4:return h.fn.call(h.context,e,i,n),!0;case 5:return h.fn.call(h.context,e,i,n,a),!0;case 6:return h.fn.call(h.context,e,i,n,a,s),!0}for(u=1,l=new Array(d-1);u<d;u++)l[u-1]=arguments[u];h.fn.apply(h.context,l)}else{var c,f=h.length;for(u=0;u<f;u++)switch(h[u].once&&this.removeListener(t,h[u].fn,void 0,!0),d){case 1:h[u].fn.call(h[u].context);break;case 2:h[u].fn.call(h[u].context,e);break;case 3:h[u].fn.call(h[u].context,e,i);break;case 4:h[u].fn.call(h[u].context,e,i,n);break;default:if(!l)for(c=1,l=new Array(d-1);c<d;c++)l[c-1]=arguments[c];h[u].fn.apply(h[u].context,l)}}return!0},o.prototype.on=function(t,e,r){return a(this,t,e,r,!1)},o.prototype.once=function(t,e,r){return a(this,t,e,r,!0)},o.prototype.removeListener=function(t,e,i,n){var a=r?r+t:t;if(!this._events[a])return this;if(!e)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn!==e||n&&!o.once||i&&o.context!==i||s(this,a);else{for(var l=0,u=[],h=o.length;l<h;l++)(o[l].fn!==e||n&&!o[l].once||i&&o[l].context!==i)&&u.push(o[l]);u.length?this._events[a]=1===u.length?u[0]:u:s(this,a)}return this},o.prototype.removeAllListeners=function(t){var e;return t?(e=r?r+t:t,this._events[e]&&s(this,e)):(this._events=new i,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=r,o.EventEmitter=o,t.exports=o}(nn);var an=m(nn.exports);function sn(t,e){if(!((r=e.remuxResult).audio||r.video||r.text||r.id3||r.initSegment))return!1;var r,i=[],n=e.remuxResult,a=n.audio,s=n.video;return a&&on(i,a),s&&on(i,s),t.postMessage({event:"transmuxComplete",data:e},i),!0}function on(t,e){e.data1&&t.push(e.data1.buffer),e.data2&&t.push(e.data2.buffer)}function ln(t,e,r){e.reduce((function(e,r){return sn(t,r)||e}),!1)||t.postMessage({event:"transmuxComplete",data:e[0]}),t.postMessage({event:"flush",data:r})}void 0!==e&&e&&function(t){var e=new an,r=function(e,r){t.postMessage({event:e,data:r})};e.on(E.FRAG_DECRYPTED,r),e.on(E.ERROR,r);var i=function(){var t=function(t){var e=function(e){r("workerLog",{logType:t,message:e})};I[t]=e};for(var e in I)t(e)};t.addEventListener("message",(function(n){var a=n.data;switch(a.cmd){case"init":var s=JSON.parse(a.config);t.transmuxer=new Ji(e,a.typeSupported,s,a.vendor,a.id),D(s.debug,a.id),i(),r("init",null);break;case"configure":t.transmuxer.configure(a.config);break;case"demux":var o=t.transmuxer.push(a.data,a.decryptdata,a.chunkMeta,a.state);tn(o)?(t.transmuxer.async=!0,o.then((function(e){sn(t,e)})).catch((function(t){r(E.ERROR,{type:S.MEDIA_ERROR,details:L.FRAG_PARSING_ERROR,chunkMeta:a.chunkMeta,fatal:!1,error:t,err:t,reason:"transmuxer-worker push error"})}))):(t.transmuxer.async=!1,sn(t,o));break;case"flush":var l=a.chunkMeta,u=t.transmuxer.flush(l);tn(u)||t.transmuxer.async?(tn(u)||(u=Promise.resolve(u)),u.then((function(e){ln(t,e,l)})).catch((function(t){r(E.ERROR,{type:S.MEDIA_ERROR,details:L.FRAG_PARSING_ERROR,chunkMeta:a.chunkMeta,fatal:!1,error:t,err:t,reason:"transmuxer-worker flush error"})}))):ln(t,u,l)}}))}(self);var un=jt()||{isTypeSupported:function(){return!1}},hn=function(){function e(e,r,i,n){var a=this;this.error=null,this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0;var s=e.config;this.hls=e,this.id=r,this.useWorker=!!s.enableWorker,this.onTransmuxComplete=i,this.onFlush=n;var o=function(t,e){(e=e||{}).frag=a.frag,e.id=a.id,t===E.ERROR&&(a.error=e.error),a.hls.trigger(t,e)};this.observer=new an,this.observer.on(E.FRAG_DECRYPTED,o),this.observer.on(E.ERROR,o);var l,u,h,d,c={mp4:un.isTypeSupported("video/mp4"),mpeg:un.isTypeSupported("audio/mpeg"),mp3:un.isTypeSupported('audio/mp4; codecs="mp3"')},f=navigator.vendor;if(!this.useWorker||"undefined"==typeof Worker||(s.workerPath,0))this.transmuxer=new Ji(this.observer,c,s,f,r);else try{s.workerPath?(I.log("loading Web Worker "+s.workerPath+' for "'+r+'"'),this.workerContext=(h=s.workerPath,d=new self.URL(h,self.location.href).href,{worker:new self.Worker(d),scriptURL:d})):(I.log('injecting Web Worker for "'+r+'"'),this.workerContext=(l=new self.Blob(["var exports={};var module={exports:exports};function define(f){f()};define.amd=true;("+t.toString()+")(true);"],{type:"text/javascript"}),u=self.URL.createObjectURL(l),{worker:new self.Worker(u),objectURL:u})),this.onwmsg=function(t){return a.onWorkerMessage(t)};var g=this.workerContext.worker;g.addEventListener("message",this.onwmsg),g.onerror=function(t){var e=new Error(t.message+" ("+t.filename+":"+t.lineno+")");s.enableWorker=!1,I.warn('Error in "'+r+'" Web Worker, fallback to inline'),a.hls.trigger(E.ERROR,{type:S.OTHER_ERROR,details:L.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:e})},g.postMessage({cmd:"init",typeSupported:c,vendor:f,id:r,config:JSON.stringify(s)})}catch(t){I.warn('Error setting up "'+r+'" Web Worker, fallback to inline',t),this.resetWorker(),this.error=null,this.transmuxer=new Ji(this.observer,c,s,f,r)}}var r=e.prototype;return r.resetWorker=function(){if(this.workerContext){var t=this.workerContext,e=t.worker,r=t.objectURL;r&&self.URL.revokeObjectURL(r),e.removeEventListener("message",this.onwmsg),e.onerror=null,e.terminate(),this.workerContext=null}},r.destroy=function(){if(this.workerContext)this.resetWorker(),this.onwmsg=void 0;else{var t=this.transmuxer;t&&(t.destroy(),this.transmuxer=null)}var e=this.observer;e&&e.removeAllListeners(),this.frag=null,this.observer=null,this.hls=null},r.push=function(t,e,r,i,n,a,s,o,l,u){var h,d,c=this;l.transmuxing.start=self.performance.now();var f=this.transmuxer,g=a?a.start:n.start,v=n.decryptdata,m=this.frag,p=!(m&&n.cc===m.cc),y=!(m&&l.level===m.level),T=m?l.sn-m.sn:-1,E=this.part?l.part-this.part.index:-1,S=0===T&&l.id>1&&l.id===(null==m?void 0:m.stats.chunkCount),L=!y&&(1===T||0===T&&(1===E||S&&E<=0)),R=self.performance.now();(y||T||0===n.stats.parsing.start)&&(n.stats.parsing.start=R),!a||!E&&L||(a.stats.parsing.start=R);var A=!(m&&(null==(h=n.initSegment)?void 0:h.url)===(null==(d=m.initSegment)?void 0:d.url)),k=new rn(p,L,o,y,g,A);if(!L||p||A){I.log("[transmuxer-interface, "+n.type+"]: Starting new transmux session for sn: "+l.sn+" p: "+l.part+" level: "+l.level+" id: "+l.id+"\n discontinuity: "+p+"\n trackSwitch: "+y+"\n contiguous: "+L+"\n accurateTimeOffset: "+o+"\n timeOffset: "+g+"\n initSegmentChange: "+A);var b=new en(r,i,e,s,u);this.configureTransmuxer(b)}if(this.frag=n,this.part=a,this.workerContext)this.workerContext.worker.postMessage({cmd:"demux",data:t,decryptdata:v,chunkMeta:l,state:k},t instanceof ArrayBuffer?[t]:[]);else if(f){var D=f.push(t,v,l,k);tn(D)?(f.async=!0,D.then((function(t){c.handleTransmuxComplete(t)})).catch((function(t){c.transmuxerError(t,l,"transmuxer-interface push error")}))):(f.async=!1,this.handleTransmuxComplete(D))}},r.flush=function(t){var e=this;t.transmuxing.start=self.performance.now();var r=this.transmuxer;if(this.workerContext)this.workerContext.worker.postMessage({cmd:"flush",chunkMeta:t});else if(r){var i=r.flush(t);tn(i)||r.async?(tn(i)||(i=Promise.resolve(i)),i.then((function(r){e.handleFlushResult(r,t)})).catch((function(r){e.transmuxerError(r,t,"transmuxer-interface flush error")}))):this.handleFlushResult(i,t)}},r.transmuxerError=function(t,e,r){this.hls&&(this.error=t,this.hls.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.FRAG_PARSING_ERROR,chunkMeta:e,fatal:!1,error:t,err:t,reason:r}))},r.handleFlushResult=function(t,e){var r=this;t.forEach((function(t){r.handleTransmuxComplete(t)})),this.onFlush(e)},r.onWorkerMessage=function(t){var e=t.data,r=this.hls;switch(e.event){case"init":var i,n=null==(i=this.workerContext)?void 0:i.objectURL;n&&self.URL.revokeObjectURL(n);break;case"transmuxComplete":this.handleTransmuxComplete(e.data);break;case"flush":this.onFlush(e.data);break;case"workerLog":I[e.data.logType]&&I[e.data.logType](e.data.message);break;default:e.data=e.data||{},e.data.frag=this.frag,e.data.id=this.id,r.trigger(e.event,e.data)}},r.configureTransmuxer=function(t){var e=this.transmuxer;this.workerContext?this.workerContext.worker.postMessage({cmd:"configure",config:t}):e&&e.configure(t)},r.handleTransmuxComplete=function(t){t.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(t)},e}(),dn=function(){function t(t,e,r,i){this.config=void 0,this.media=null,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=t,this.media=e,this.fragmentTracker=r,this.hls=i}var e=t.prototype;return e.destroy=function(){this.media=null,this.hls=this.fragmentTracker=null},e.poll=function(t,e){var r=this.config,i=this.media,n=this.stalled;if(null!==i){var a=i.currentTime,s=i.seeking,o=this.seeking&&!s,l=!this.seeking&&s;if(this.seeking=s,a===t){if(l||o)this.stalled=null;else if(!(i.paused&&!s||i.ended||0===i.playbackRate)&&Dr.getBuffered(i).length){var u=Dr.bufferInfo(i,a,0),h=u.len>0,d=u.nextStart||0;if(h||d){if(s){var c=u.len>2,f=!d||e&&e.start<=a||d-a>2&&!this.fragmentTracker.getPartialFragment(a);if(c||f)return;this.moved=!1}if(!this.moved&&null!==this.stalled){var g,v=Math.max(d,u.start||0)-a,m=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,p=(null==m||null==(g=m.details)?void 0:g.live)?2*m.details.targetduration:2,y=this.fragmentTracker.getPartialFragment(a);if(v>0&&(v<=p||y))return void this._trySkipBufferHole(y)}var T=self.performance.now();if(null!==n){var E=T-n;if(s||!(E>=250)||(this._reportStall(u),this.media)){var S=Dr.bufferInfo(i,a,r.maxBufferHole);this._tryFixBufferStall(S,E)}}else this.stalled=T}}}else if(this.moved=!0,null!==n){if(this.stallReported){var L=self.performance.now()-n;I.warn("playback not stuck anymore @"+a+", after "+Math.round(L)+"ms"),this.stallReported=!1}this.stalled=null,this.nudgeRetry=0}}},e._tryFixBufferStall=function(t,e){var r=this.config,i=this.fragmentTracker,n=this.media;if(null!==n){var a=n.currentTime,s=i.getPartialFragment(a);if(s&&(this._trySkipBufferHole(s)||!this.media))return;(t.len>r.maxBufferHole||t.nextStart&&t.nextStart-a<r.maxBufferHole)&&e>1e3*r.highBufferWatchdogPeriod&&(I.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}},e._reportStall=function(t){var e=this.hls,r=this.media;if(!this.stallReported&&r){this.stallReported=!0;var i=new Error("Playback stalling at @"+r.currentTime+" due to low buffer ("+JSON.stringify(t)+")");I.warn(i.message),e.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.BUFFER_STALLED_ERROR,fatal:!1,error:i,buffer:t.len})}},e._trySkipBufferHole=function(t){var e=this.config,r=this.hls,i=this.media;if(null===i)return 0;var n=i.currentTime,a=Dr.bufferInfo(i,n,0),s=n<a.start?a.start:a.nextStart;if(s){var o=a.len<=e.maxBufferHole,l=a.len>0&&a.len<1&&i.readyState<3,u=s-n;if(u>0&&(o||l)){if(u>e.maxBufferHole){var h=this.fragmentTracker,d=!1;if(0===n){var c=h.getAppendedFrag(0,fe);c&&s<c.end&&(d=!0)}if(!d){var f=t||h.getAppendedFrag(n,fe);if(f){for(var g=!1,v=f.end;v<s;){var m=h.getPartialFragment(v);if(!m){g=!0;break}v+=m.duration}if(g)return 0}}}var p=Math.max(s+.05,n+.1);if(I.warn("skipping hole, adjusting currentTime from "+n+" to "+p),this.moved=!0,this.stalled=null,i.currentTime=p,t&&!t.gap){var y=new Error("fragment loaded with buffer holes, seeking from "+n+" to "+p);r.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:y,reason:y.message,frag:t})}return p}}return 0},e._tryNudgeBuffer=function(){var t=this.config,e=this.hls,r=this.media,i=this.nudgeRetry;if(null!==r){var n=r.currentTime;if(this.nudgeRetry++,i<t.nudgeMaxRetry){var a=n+(i+1)*t.nudgeOffset,s=new Error("Nudging 'currentTime' from "+n+" to "+a);I.warn(s.message),r.currentTime=a,e.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.BUFFER_NUDGE_ON_STALL,error:s,fatal:!1})}else{var o=new Error("Playhead still not moving while enough data buffered @"+n+" after "+t.nudgeMaxRetry+" nudges");I.error(o.message),e.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.BUFFER_STALLED_ERROR,error:o,fatal:!0})}}},t}(),cn=function(t){function e(e,r,i){var n;return(n=t.call(this,e,r,i,"[stream-controller]",fe)||this).audioCodecSwap=!1,n.gapController=null,n.level=-1,n._forceStartLoad=!1,n.altAudio=!1,n.audioOnly=!1,n.fragPlaying=null,n.onvplaying=null,n.onvseeked=null,n.fragLastKbps=0,n.couldBacktrack=!1,n.backtrackFragment=null,n.audioCodecSwitch=!1,n.videoBuffer=null,n._registerListeners(),n}l(e,t);var r=e.prototype;return r._registerListeners=function(){var t=this.hls;t.on(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.MANIFEST_PARSED,this.onManifestParsed,this),t.on(E.LEVEL_LOADING,this.onLevelLoading,this),t.on(E.LEVEL_LOADED,this.onLevelLoaded,this),t.on(E.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.on(E.ERROR,this.onError,this),t.on(E.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.on(E.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.on(E.BUFFER_CREATED,this.onBufferCreated,this),t.on(E.BUFFER_FLUSHED,this.onBufferFlushed,this),t.on(E.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(E.FRAG_BUFFERED,this.onFragBuffered,this)},r._unregisterListeners=function(){var t=this.hls;t.off(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.MANIFEST_PARSED,this.onManifestParsed,this),t.off(E.LEVEL_LOADED,this.onLevelLoaded,this),t.off(E.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.off(E.ERROR,this.onError,this),t.off(E.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.off(E.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.off(E.BUFFER_CREATED,this.onBufferCreated,this),t.off(E.BUFFER_FLUSHED,this.onBufferFlushed,this),t.off(E.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(E.FRAG_BUFFERED,this.onFragBuffered,this)},r.onHandlerDestroying=function(){this._unregisterListeners(),this.onMediaDetaching()},r.startLoad=function(t){if(this.levels){var e=this.lastCurrentTime,r=this.hls;if(this.stopLoad(),this.setInterval(100),this.level=-1,!this.startFragRequested){var i=r.startLevel;-1===i&&(r.config.testBandwidth&&this.levels.length>1?(i=0,this.bitrateTest=!0):i=r.nextAutoLevel),this.level=r.nextLoadLevel=i,this.loadedmetadata=!1}e>0&&-1===t&&(this.log("Override startPosition with lastCurrentTime @"+e.toFixed(3)),t=e),this.state=Gr,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()}else this._forceStartLoad=!0,this.state=Br},r.stopLoad=function(){this._forceStartLoad=!1,t.prototype.stopLoad.call(this)},r.doTick=function(){switch(this.state){case Qr:var t,e=this.levels,r=this.level,i=null==e||null==(t=e[r])?void 0:t.details;if(i&&(!i.live||this.levelLastLoaded===this.level)){if(this.waitForCdnTuneIn(i))break;this.state=Gr;break}break;case Vr:var n,a=self.performance.now(),s=this.retryDate;(!s||a>=s||null!=(n=this.media)&&n.seeking)&&(this.resetStartWhenNotLoaded(this.level),this.state=Gr)}this.state===Gr&&this.doTickIdle(),this.onTickEnd()},r.onTickEnd=function(){t.prototype.onTickEnd.call(this),this.checkBuffer(),this.checkFragmentChanged()},r.doTickIdle=function(){var t=this.hls,e=this.levelLastLoaded,r=this.levels,i=this.media,n=t.config,a=t.nextLoadLevel;if(null!==e&&(i||!this.startFragRequested&&n.startFragPrefetch)&&(!this.altAudio||!this.audioOnly)&&null!=r&&r[a]){var s=r[a],o=this.getMainFwdBufferInfo();if(null!==o){var l=this.getLevelDetails();if(l&&this._streamEnded(o,l)){var u={};return this.altAudio&&(u.type="video"),this.hls.trigger(E.BUFFER_EOS,u),void(this.state=qr)}t.loadLevel!==a&&-1===t.manualLevel&&this.log("Adapting to level "+a+" from level "+this.level),this.level=t.nextLoadLevel=a;var h=s.details;if(!h||this.state===Qr||h.live&&this.levelLastLoaded!==a)return this.level=a,void(this.state=Qr);var d=o.len,c=this.getMaxBufferLength(s.maxBitrate);if(!(d>=c)){this.backtrackFragment&&this.backtrackFragment.start>o.end&&(this.backtrackFragment=null);var f=this.backtrackFragment?this.backtrackFragment.start:o.end,g=this.getNextFragment(f,h);if(this.couldBacktrack&&!this.fragPrevious&&g&&"initSegment"!==g.sn&&this.fragmentTracker.getState(g)!==vr){var v,m=(null!=(v=this.backtrackFragment)?v:g).sn-h.startSN,p=h.fragments[m-1];p&&g.cc===p.cc&&(g=p,this.fragmentTracker.removeFragment(p))}else this.backtrackFragment&&o.len&&(this.backtrackFragment=null);if(g&&this.isLoopLoading(g,f)){if(!g.gap){var y=this.audioOnly&&!this.altAudio?O:M,T=(y===M?this.videoBuffer:this.mediaBuffer)||this.media;T&&this.afterBufferFlushed(T,y,fe)}g=this.getNextFragmentLoopLoading(g,h,o,fe,c)}g&&(!g.initSegment||g.initSegment.data||this.bitrateTest||(g=g.initSegment),this.loadFragment(g,s,f))}}}},r.loadFragment=function(e,r,i){var n=this.fragmentTracker.getState(e);this.fragCurrent=e,n===cr||n===gr?"initSegment"===e.sn?this._loadInitSegment(e,r):this.bitrateTest?(this.log("Fragment "+e.sn+" of level "+e.level+" is being downloaded to test bitrate and will not be buffered"),this._loadBitrateTestFrag(e,r)):(this.startFragRequested=!0,t.prototype.loadFragment.call(this,e,r,i)):this.clearTrackerIfNeeded(e)},r.getBufferedFrag=function(t){return this.fragmentTracker.getBufferedFrag(t,fe)},r.followingBufferedFrag=function(t){return t?this.getBufferedFrag(t.end+.5):null},r.immediateLevelSwitch=function(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},r.nextLevelSwitch=function(){var t=this.levels,e=this.media;if(null!=e&&e.readyState){var r,i=this.getAppendedFrag(e.currentTime);i&&i.start>1&&this.flushMainBuffer(0,i.start-1);var n=this.getLevelDetails();if(null!=n&&n.live){var a=this.getMainFwdBufferInfo();if(!a||a.len<2*n.targetduration)return}if(!e.paused&&t){var s=t[this.hls.nextLoadLevel],o=this.fragLastKbps;r=o&&this.fragCurrent?this.fragCurrent.duration*s.maxBitrate/(1e3*o)+1:0}else r=0;var l=this.getBufferedFrag(e.currentTime+r);if(l){var u=this.followingBufferedFrag(l);if(u){this.abortCurrentFrag();var h=u.maxStartPTS?u.maxStartPTS:u.start,d=u.duration,c=Math.max(l.end,h+Math.min(Math.max(d-this.config.maxFragLookUpTolerance,.5*d),.75*d));this.flushMainBuffer(c,Number.POSITIVE_INFINITY)}}}},r.abortCurrentFrag=function(){var t=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,t&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.state){case Kr:case Hr:case Vr:case Wr:case jr:this.state=Gr}this.nextLoadPosition=this.getLoadPosition()},r.flushMainBuffer=function(e,r){t.prototype.flushMainBuffer.call(this,e,r,this.altAudio?"video":null)},r.onMediaAttached=function(e,r){t.prototype.onMediaAttached.call(this,e,r);var i=r.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),i.addEventListener("playing",this.onvplaying),i.addEventListener("seeked",this.onvseeked),this.gapController=new dn(this.config,i,this.fragmentTracker,this.hls)},r.onMediaDetaching=function(){var e=this.media;e&&this.onvplaying&&this.onvseeked&&(e.removeEventListener("playing",this.onvplaying),e.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),t.prototype.onMediaDetaching.call(this)},r.onMediaPlaying=function(){this.tick()},r.onMediaSeeked=function(){var t=this.media,e=t?t.currentTime:null;T(e)&&this.log("Media seeked to "+e.toFixed(3));var r=this.getMainFwdBufferInfo();null!==r&&0!==r.len?this.tick():this.warn('Main forward buffer length on "seeked" event '+(r?r.len:"empty")+")")},r.onManifestLoading=function(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(E.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=!1,this.startPosition=this.lastCurrentTime=0,this.levels=this.fragPlaying=this.backtrackFragment=null,this.altAudio=this.audioOnly=!1},r.onManifestParsed=function(t,e){var r,i,n,a=!1,s=!1;e.levels.forEach((function(t){(r=t.audioCodec)&&(-1!==r.indexOf("mp4a.40.2")&&(a=!0),-1!==r.indexOf("mp4a.40.5")&&(s=!0))})),this.audioCodecSwitch=a&&s&&!("function"==typeof(null==(n=Jr())||null==(i=n.prototype)?void 0:i.changeType)),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=e.levels,this.startFragRequested=!1},r.onLevelLoading=function(t,e){var r=this.levels;if(r&&this.state===Gr){var i=r[e.level];(!i.details||i.details.live&&this.levelLastLoaded!==e.level||this.waitForCdnTuneIn(i.details))&&(this.state=Qr)}},r.onLevelLoaded=function(t,e){var r,i=this.levels,n=e.level,a=e.details,s=a.totalduration;if(i){this.log("Level "+n+" loaded ["+a.startSN+","+a.endSN+"]"+(a.lastPartSn?"[part-"+a.lastPartSn+"-"+a.lastPartIndex+"]":"")+", cc ["+a.startCC+", "+a.endCC+"] duration:"+s);var o=i[n],l=this.fragCurrent;!l||this.state!==Hr&&this.state!==Vr||l.level===e.level&&l.urlId===o.urlId||!l.loader||this.abortCurrentFrag();var u=0;if(a.live||null!=(r=o.details)&&r.live){if(a.fragments[0]||(a.deltaUpdateFailed=!0),a.deltaUpdateFailed)return;u=this.alignPlaylists(a,o.details)}if(o.details=a,this.levelLastLoaded=n,this.hls.trigger(E.LEVEL_UPDATED,{details:a,level:n}),this.state===Qr){if(this.waitForCdnTuneIn(a))return;this.state=Gr}this.startFragRequested?a.live&&this.synchronizeToLiveEdge(a):this.setStartPosition(a,u),this.tick()}else this.warn("Levels were reset while loading level "+n)},r._handleFragmentLoadProgress=function(t){var e,r=t.frag,i=t.part,n=t.payload,a=this.levels;if(a){var s=a[r.level],o=s.details;if(!o)return this.warn("Dropping fragment "+r.sn+" of level "+r.level+" after level details were reset"),void this.fragmentTracker.removeFragment(r);var l=s.videoCodec,u=o.PTSKnown||!o.live,h=null==(e=r.initSegment)?void 0:e.data,d=this._getAudioCodec(s),c=this.transmuxer=this.transmuxer||new hn(this.hls,fe,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),f=i?i.index:-1,g=-1!==f,v=new Ir(r.level,r.sn,r.stats.chunkCount,n.byteLength,f,g),m=this.initPTS[r.cc];c.push(n,h,d,l,r,i,o.totalduration,u,v,m)}else this.warn("Levels were reset while fragment load was in progress. Fragment "+r.sn+" of level "+r.level+" will not be buffered")},r.onAudioTrackSwitching=function(t,e){var r=this.altAudio;if(!e.url){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var i=this.fragCurrent;i&&(this.log("Switching to main audio track, cancel main fragment load"),i.abortRequests(),this.fragmentTracker.removeFragment(i)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();var n=this.hls;r&&(n.trigger(E.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null}),this.fragmentTracker.removeAllFragments()),n.trigger(E.AUDIO_TRACK_SWITCHED,e)}},r.onAudioTrackSwitched=function(t,e){var r=e.id,i=!!this.hls.audioTracks[r].url;if(i){var n=this.videoBuffer;n&&this.mediaBuffer!==n&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=n)}this.altAudio=i,this.tick()},r.onBufferCreated=function(t,e){var r,i,n=e.tracks,a=!1;for(var s in n){var o=n[s];if("main"===o.id){if(i=s,r=o,"video"===s){var l=n[s];l&&(this.videoBuffer=l.buffer)}}else a=!0}a&&r?(this.log("Alternate track found, use "+i+".buffered to schedule main fragment loading"),this.mediaBuffer=r.buffer):this.mediaBuffer=this.media},r.onFragBuffered=function(t,e){var r=e.frag,i=e.part;if(!r||r.type===fe){if(this.fragContextChanged(r))return this.warn("Fragment "+r.sn+(i?" p: "+i.index:"")+" of level "+r.level+" finished buffering, but was aborted. state: "+this.state),void(this.state===jr&&(this.state=Gr));var n=i?i.stats:r.stats;this.fragLastKbps=Math.round(8*n.total/(n.buffering.end-n.loading.first)),"initSegment"!==r.sn&&(this.fragPrevious=r),this.fragBufferedComplete(r,i)}},r.onError=function(t,e){var r;if(e.fatal)this.state=Xr;else switch(e.details){case L.FRAG_GAP:case L.FRAG_PARSING_ERROR:case L.FRAG_DECRYPT_ERROR:case L.FRAG_LOAD_ERROR:case L.FRAG_LOAD_TIMEOUT:case L.KEY_LOAD_ERROR:case L.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(fe,e);break;case L.LEVEL_LOAD_ERROR:case L.LEVEL_LOAD_TIMEOUT:case L.LEVEL_PARSING_ERROR:e.levelRetry||this.state!==Qr||(null==(r=e.context)?void 0:r.type)!==he||(this.state=Gr);break;case L.BUFFER_FULL_ERROR:if(!e.parent||"main"!==e.parent)return;this.reduceLengthAndFlushBuffer(e)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case L.INTERNAL_EXCEPTION:this.recoverWorkerError(e)}},r.checkBuffer=function(){var t=this.media,e=this.gapController;if(t&&e&&t.readyState){if(this.loadedmetadata||!Dr.getBuffered(t).length){var r=this.state!==Gr?this.fragCurrent:null;e.poll(this.lastCurrentTime,r)}this.lastCurrentTime=t.currentTime}},r.onFragLoadEmergencyAborted=function(){this.state=Gr,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()},r.onBufferFlushed=function(t,e){var r=e.type;if(r!==O||this.audioOnly&&!this.altAudio){var i=(r===M?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(i,r,fe)}},r.onLevelsUpdated=function(t,e){this.levels=e.levels},r.swapAudioCodec=function(){this.audioCodecSwap=!this.audioCodecSwap},r.seekToStartPos=function(){var t=this.media;if(t){var e=t.currentTime,r=this.startPosition;if(r>=0&&e<r){if(t.seeking)return void this.log("could not seek to "+r+", already seeking at "+e);var i=Dr.getBuffered(t),n=(i.length?i.start(0):0)-r;n>0&&(n<this.config.maxBufferHole||n<this.config.maxFragLookUpTolerance)&&(this.log("adjusting start position by "+n+" to match buffer start"),r+=n,this.startPosition=r),this.log("seek to target start position "+r+" from current time "+e),t.currentTime=r}}},r._getAudioCodec=function(t){var e=this.config.defaultAudioCodec||t.audioCodec;return this.audioCodecSwap&&e&&(this.log("Swapping audio codec"),e=-1!==e.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),e},r._loadBitrateTestFrag=function(t,e){var r=this;t.bitrateTest=!0,this._doFragLoad(t,e).then((function(i){var n=r.hls;if(i&&!r.fragContextChanged(t)){e.fragmentError=0,r.state=Gr,r.startFragRequested=!1,r.bitrateTest=!1;var a=t.stats;a.parsing.start=a.parsing.end=a.buffering.start=a.buffering.end=self.performance.now(),n.trigger(E.FRAG_LOADED,i),t.bitrateTest=!1}}))},r._handleTransmuxComplete=function(t){var e,r="main",i=this.hls,n=t.remuxResult,a=t.chunkMeta,s=this.getCurrentContext(a);if(s){var o=s.frag,l=s.part,u=s.level,h=n.video,d=n.text,c=n.id3,f=n.initSegment,g=u.details,v=this.altAudio?void 0:n.audio;if(this.fragContextChanged(o))this.fragmentTracker.removeFragment(o);else{if(this.state=Wr,f){if(null!=f&&f.tracks){var m=o.initSegment||o;this._bufferInitSegment(u,f.tracks,m,a),i.trigger(E.FRAG_PARSING_INIT_SEGMENT,{frag:m,id:r,tracks:f.tracks})}var p=f.initPTS,y=f.timescale;T(p)&&(this.initPTS[o.cc]={baseTime:p,timescale:y},i.trigger(E.INIT_PTS_FOUND,{frag:o,id:r,initPTS:p,timescale:y}))}if(h&&!1!==n.independent){if(g){var S=h.startPTS,L=h.endPTS,R=h.startDTS,A=h.endDTS;if(l)l.elementaryStreams[h.type]={startPTS:S,endPTS:L,startDTS:R,endDTS:A};else if(h.firstKeyFrame&&h.independent&&1===a.id&&(this.couldBacktrack=!0),h.dropped&&h.independent){var k=this.getMainFwdBufferInfo();if((k?k.end:this.getLoadPosition())+this.config.maxBufferHole<(h.firstKeyFramePTS?h.firstKeyFramePTS:S)-this.config.maxBufferHole)return void this.backtrack(o);o.setElementaryStreamInfo(h.type,o.start,L,o.start,A,!0)}o.setElementaryStreamInfo(h.type,S,L,R,A),this.backtrackFragment&&(this.backtrackFragment=o),this.bufferFragmentData(h,o,l,a)}}else if(!1===n.independent)return void this.backtrack(o);if(v){var b=v.startPTS,D=v.endPTS,I=v.startDTS,w=v.endDTS;l&&(l.elementaryStreams[O]={startPTS:b,endPTS:D,startDTS:I,endDTS:w}),o.setElementaryStreamInfo(O,b,D,I,w),this.bufferFragmentData(v,o,l,a)}if(g&&null!=c&&null!=(e=c.samples)&&e.length){var C={id:r,frag:o,details:g,samples:c.samples};i.trigger(E.FRAG_PARSING_METADATA,C)}if(g&&d){var _={id:r,frag:o,details:g,samples:d.samples};i.trigger(E.FRAG_PARSING_USERDATA,_)}}}else this.resetWhenMissingContext(a)},r._bufferInitSegment=function(t,e,r,i){var n=this;if(this.state===Wr){this.audioOnly=!!e.audio&&!e.video,this.altAudio&&!this.audioOnly&&delete e.audio;var a=e.audio,s=e.video,o=e.audiovideo;if(a){var l=t.audioCodec,u=navigator.userAgent.toLowerCase();this.audioCodecSwitch&&(l&&(l=-1!==l.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),1!==a.metadata.channelCount&&-1===u.indexOf("firefox")&&(l="mp4a.40.5")),-1!==u.indexOf("android")&&"audio/mpeg"!==a.container&&(l="mp4a.40.2",this.log("Android: force audio codec to "+l)),t.audioCodec&&t.audioCodec!==l&&this.log('Swapping manifest audio codec "'+t.audioCodec+'" for "'+l+'"'),a.levelCodec=l,a.id="main",this.log("Init audio buffer, container:"+a.container+", codecs[selected/level/parsed]=["+(l||"")+"/"+(t.audioCodec||"")+"/"+a.codec+"]")}s&&(s.levelCodec=t.videoCodec,s.id="main",this.log("Init video buffer, container:"+s.container+", codecs[level/parsed]=["+(t.videoCodec||"")+"/"+s.codec+"]")),o&&this.log("Init audiovideo buffer, container:"+o.container+", codecs[level/parsed]=["+(t.attrs.CODECS||"")+"/"+o.codec+"]"),this.hls.trigger(E.BUFFER_CODECS,e),Object.keys(e).forEach((function(t){var a=e[t].initSegment;null!=a&&a.byteLength&&n.hls.trigger(E.BUFFER_APPENDING,{type:t,data:a,frag:r,part:null,chunkMeta:i,parent:r.type})})),this.tick()}},r.getMainFwdBufferInfo=function(){return this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,fe)},r.backtrack=function(t){this.couldBacktrack=!0,this.backtrackFragment=t,this.resetTransmuxer(),this.flushBufferGap(t),this.fragmentTracker.removeFragment(t),this.fragPrevious=null,this.nextLoadPosition=t.start,this.state=Gr},r.checkFragmentChanged=function(){var t=this.media,e=null;if(t&&t.readyState>1&&!1===t.seeking){var r=t.currentTime;if(Dr.isBuffered(t,r)?e=this.getAppendedFrag(r):Dr.isBuffered(t,r+.1)&&(e=this.getAppendedFrag(r+.1)),e){this.backtrackFragment=null;var i=this.fragPlaying,n=e.level;i&&e.sn===i.sn&&i.level===n&&e.urlId===i.urlId||(this.fragPlaying=e,this.hls.trigger(E.FRAG_CHANGED,{frag:e}),i&&i.level===n||this.hls.trigger(E.LEVEL_SWITCHED,{level:n}))}}},a(e,[{key:"nextLevel",get:function(){var t=this.nextBufferedFrag;return t?t.level:-1}},{key:"currentFrag",get:function(){var t=this.media;return t?this.fragPlaying||this.getAppendedFrag(t.currentTime):null}},{key:"currentProgramDateTime",get:function(){var t=this.media;if(t){var e=t.currentTime,r=this.currentFrag;if(r&&T(e)&&T(r.programDateTime)){var i=r.programDateTime+1e3*(e-r.start);return new Date(i)}}return null}},{key:"currentLevel",get:function(){var t=this.currentFrag;return t?t.level:-1}},{key:"nextBufferedFrag",get:function(){var t=this.currentFrag;return t?this.followingBufferedFrag(t):null}},{key:"forceStartLoad",get:function(){return this._forceStartLoad}}]),e}($r),fn=function(){function t(t,e,r){void 0===e&&(e=0),void 0===r&&(r=0),this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=t,this.alpha_=t?Math.exp(Math.log(.5)/t):0,this.estimate_=e,this.totalWeight_=r}var e=t.prototype;return e.sample=function(t,e){var r=Math.pow(this.alpha_,t);this.estimate_=e*(1-r)+r*this.estimate_,this.totalWeight_+=t},e.getTotalWeight=function(){return this.totalWeight_},e.getEstimate=function(){if(this.alpha_){var t=1-Math.pow(this.alpha_,this.totalWeight_);if(t)return this.estimate_/t}return this.estimate_},t}(),gn=function(){function t(t,e,r,i){void 0===i&&(i=100),this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=r,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new fn(t),this.fast_=new fn(e),this.defaultTTFB_=i,this.ttfb_=new fn(t)}var e=t.prototype;return e.update=function(t,e){var r=this.slow_,i=this.fast_,n=this.ttfb_;r.halfLife!==t&&(this.slow_=new fn(t,r.getEstimate(),r.getTotalWeight())),i.halfLife!==e&&(this.fast_=new fn(e,i.getEstimate(),i.getTotalWeight())),n.halfLife!==t&&(this.ttfb_=new fn(t,n.getEstimate(),n.getTotalWeight()))},e.sample=function(t,e){var r=(t=Math.max(t,this.minDelayMs_))/1e3,i=8*e/r;this.fast_.sample(r,i),this.slow_.sample(r,i)},e.sampleTTFB=function(t){var e=t/1e3,r=Math.sqrt(2)*Math.exp(-Math.pow(e,2)/2);this.ttfb_.sample(r,Math.max(t,5))},e.canEstimate=function(){return this.fast_.getTotalWeight()>=this.minWeight_},e.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},e.getEstimateTTFB=function(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_},e.destroy=function(){},t}(),vn=function(){function t(t){this.hls=void 0,this.lastLevelLoadSec=0,this.lastLoadedFragLevel=0,this._nextAutoLevel=-1,this.timer=-1,this.onCheck=this._abandonRulesCheck.bind(this),this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.bwEstimator=void 0,this.hls=t;var e=t.config;this.bwEstimator=new gn(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate),this.registerListeners()}var e=t.prototype;return e.registerListeners=function(){var t=this.hls;t.on(E.FRAG_LOADING,this.onFragLoading,this),t.on(E.FRAG_LOADED,this.onFragLoaded,this),t.on(E.FRAG_BUFFERED,this.onFragBuffered,this),t.on(E.LEVEL_SWITCHING,this.onLevelSwitching,this),t.on(E.LEVEL_LOADED,this.onLevelLoaded,this)},e.unregisterListeners=function(){var t=this.hls;t.off(E.FRAG_LOADING,this.onFragLoading,this),t.off(E.FRAG_LOADED,this.onFragLoaded,this),t.off(E.FRAG_BUFFERED,this.onFragBuffered,this),t.off(E.LEVEL_SWITCHING,this.onLevelSwitching,this),t.off(E.LEVEL_LOADED,this.onLevelLoaded,this)},e.destroy=function(){this.unregisterListeners(),this.clearTimer(),this.hls=this.onCheck=null,this.fragCurrent=this.partCurrent=null},e.onFragLoading=function(t,e){var r,i=e.frag;this.ignoreFragment(i)||(this.fragCurrent=i,this.partCurrent=null!=(r=e.part)?r:null,this.clearTimer(),this.timer=self.setInterval(this.onCheck,100))},e.onLevelSwitching=function(t,e){this.clearTimer()},e.getTimeToLoadFrag=function(t,e,r,i){return t+r/e+(i?this.lastLevelLoadSec:0)},e.onLevelLoaded=function(t,e){var r=this.hls.config,i=e.stats,n=i.total,a=i.bwEstimate;T(n)&&T(a)&&(this.lastLevelLoadSec=8*n/a),e.details.live?this.bwEstimator.update(r.abrEwmaSlowLive,r.abrEwmaFastLive):this.bwEstimator.update(r.abrEwmaSlowVoD,r.abrEwmaFastVoD)},e._abandonRulesCheck=function(){var t=this.fragCurrent,e=this.partCurrent,r=this.hls,i=r.autoLevelEnabled,n=r.media;if(t&&n){var a=performance.now(),s=e?e.stats:t.stats,o=e?e.duration:t.duration,l=a-s.loading.start;if(s.aborted||s.loaded&&s.loaded===s.total||0===t.level)return this.clearTimer(),void(this._nextAutoLevel=-1);if(i&&!n.paused&&n.playbackRate&&n.readyState){var u=r.mainForwardBufferInfo;if(null!==u){var h=this.bwEstimator.getEstimateTTFB(),d=Math.abs(n.playbackRate);if(!(l<=Math.max(h,o/(2*d)*1e3))){var c=u.len/d;if(!(c>=2*o/d)){var f=s.loading.first?s.loading.first-s.loading.start:-1,g=s.loaded&&f>-1,v=this.bwEstimator.getEstimate(),m=r.levels,p=r.minAutoLevel,y=m[t.level],S=s.total||Math.max(s.loaded,Math.round(o*y.maxBitrate/8)),L=l-f;L<1&&g&&(L=Math.min(l,8*s.loaded/v));var R=g?1e3*s.loaded/L:0,A=R?(S-s.loaded)/R:8*S/v+h/1e3;if(!(A<=c)){var k,b=R?8*R:v,D=Number.POSITIVE_INFINITY;for(k=t.level-1;k>p;k--){var w=m[k].maxBitrate;if((D=this.getTimeToLoadFrag(h/1e3,b,o*w,!m[k].details))<c)break}D>=A||D>10*o||(r.nextLoadLevel=k,g?this.bwEstimator.sample(l-Math.min(h,f),s.loaded):this.bwEstimator.sampleTTFB(l),this.clearTimer(),I.warn("[abr] Fragment "+t.sn+(e?" part "+e.index:"")+" of level "+t.level+" is loading too slowly;\n Time to underbuffer: "+c.toFixed(3)+" s\n Estimated load time for current fragment: "+A.toFixed(3)+" s\n Estimated load time for down switch fragment: "+D.toFixed(3)+" s\n TTFB estimate: "+f+"\n Current BW estimate: "+(T(v)?(v/1024).toFixed(3):"Unknown")+" Kb/s\n New BW estimate: "+(this.bwEstimator.getEstimate()/1024).toFixed(3)+" Kb/s\n Aborting and switching to level "+k),t.loader&&(this.fragCurrent=this.partCurrent=null,t.abortRequests()),r.trigger(E.FRAG_LOAD_EMERGENCY_ABORTED,{frag:t,part:e,stats:s}))}}}}}}},e.onFragLoaded=function(t,e){var r=e.frag,i=e.part,n=i?i.stats:r.stats;if(r.type===fe&&this.bwEstimator.sampleTTFB(n.loading.first-n.loading.start),!this.ignoreFragment(r)){if(this.clearTimer(),this.lastLoadedFragLevel=r.level,this._nextAutoLevel=-1,this.hls.config.abrMaxWithRealBitrate){var a=i?i.duration:r.duration,s=this.hls.levels[r.level],o=(s.loaded?s.loaded.bytes:0)+n.loaded,l=(s.loaded?s.loaded.duration:0)+a;s.loaded={bytes:o,duration:l},s.realBitrate=Math.round(8*o/l)}if(r.bitrateTest){var u={stats:n,frag:r,part:i,id:r.type};this.onFragBuffered(E.FRAG_BUFFERED,u),r.bitrateTest=!1}}},e.onFragBuffered=function(t,e){var r=e.frag,i=e.part,n=null!=i&&i.stats.loaded?i.stats:r.stats;if(!n.aborted&&!this.ignoreFragment(r)){var a=n.parsing.end-n.loading.start-Math.min(n.loading.first-n.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(a,n.loaded),n.bwEstimate=this.bwEstimator.getEstimate(),r.bitrateTest?this.bitrateTestDelay=a/1e3:this.bitrateTestDelay=0}},e.ignoreFragment=function(t){return t.type!==fe||"initSegment"===t.sn},e.clearTimer=function(){self.clearInterval(this.timer)},e.getNextABRAutoLevel=function(){var t=this.fragCurrent,e=this.partCurrent,r=this.hls,i=r.maxAutoLevel,n=r.config,a=r.minAutoLevel,s=r.media,o=e?e.duration:t?t.duration:0,l=s&&0!==s.playbackRate?Math.abs(s.playbackRate):1,u=this.bwEstimator?this.bwEstimator.getEstimate():n.abrEwmaDefaultEstimate,h=r.mainForwardBufferInfo,d=(h?h.len:0)/l,c=this.findBestLevel(u,a,i,d,n.abrBandWidthFactor,n.abrBandWidthUpFactor);if(c>=0)return c;I.trace("[abr] "+(d?"rebuffering expected":"buffer is empty")+", finding optimal quality level");var f=o?Math.min(o,n.maxStarvationDelay):n.maxStarvationDelay,g=n.abrBandWidthFactor,v=n.abrBandWidthUpFactor;if(!d){var m=this.bitrateTestDelay;m&&(f=(o?Math.min(o,n.maxLoadingDelay):n.maxLoadingDelay)-m,I.trace("[abr] bitrate test took "+Math.round(1e3*m)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*f)+" ms"),g=v=1)}return c=this.findBestLevel(u,a,i,d+f,g,v),Math.max(c,0)},e.findBestLevel=function(t,e,r,i,n,a){for(var s,o=this.fragCurrent,l=this.partCurrent,u=this.lastLoadedFragLevel,h=this.hls.levels,d=h[u],c=!(null==d||null==(s=d.details)||!s.live),f=null==d?void 0:d.codecSet,g=l?l.duration:o?o.duration:0,v=this.bwEstimator.getEstimateTTFB()/1e3,m=e,p=-1,y=r;y>=e;y--){var E=h[y];if(!E||f&&E.codecSet!==f)E&&(m=Math.min(y,m),p=Math.max(y,p));else{-1!==p&&I.trace("[abr] Skipped level(s) "+m+"-"+p+' with CODECS:"'+h[p].attrs.CODECS+'"; not compatible with "'+d.attrs.CODECS+'"');var S=E.details,L=(l?null==S?void 0:S.partTarget:null==S?void 0:S.averagetargetduration)||g,R=void 0;R=y<=u?n*t:a*t;var A=h[y].maxBitrate,k=this.getTimeToLoadFrag(v,R,A*L,void 0===S);if(I.trace("[abr] level:"+y+" adjustedbw-bitrate:"+Math.round(R-A)+" avgDuration:"+L.toFixed(1)+" maxFetchDuration:"+i.toFixed(1)+" fetchDuration:"+k.toFixed(1)),R>A&&(0===k||!T(k)||c&&!this.bitrateTestDelay||k<i))return y}}return-1},a(t,[{key:"nextAutoLevel",get:function(){var t=this._nextAutoLevel,e=this.bwEstimator;if(-1!==t&&!e.canEstimate())return t;var r=this.getNextABRAutoLevel();if(-1!==t){var i=this.hls.levels;if(i.length>Math.max(t,r)&&i[t].loadError<=i[r].loadError)return t}return-1!==t&&(r=Math.min(t,r)),r},set:function(t){this._nextAutoLevel=t}}]),t}(),mn=function(){function t(){this.chunks=[],this.dataLength=0}var e=t.prototype;return e.push=function(t){this.chunks.push(t),this.dataLength+=t.length},e.flush=function(){var t,e=this.chunks,r=this.dataLength;return e.length?(t=1===e.length?e[0]:function(t,e){for(var r=new Uint8Array(e),i=0,n=0;n<t.length;n++){var a=t[n];r.set(a,i),i+=a.length}return r}(e,r),this.reset(),t):new Uint8Array(0)},e.reset=function(){this.chunks.length=0,this.dataLength=0},t}(),pn=function(t){function e(e,r,i){var n;return(n=t.call(this,e,r,i,"[audio-stream-controller]",ge)||this).videoBuffer=null,n.videoTrackCC=-1,n.waitingVideoCC=-1,n.bufferedTrack=null,n.switchingTrack=null,n.trackId=-1,n.waitingData=null,n.mainDetails=null,n.bufferFlushed=!1,n.cachedTrackLoadedData=null,n._registerListeners(),n}l(e,t);var r=e.prototype;return r.onHandlerDestroying=function(){this._unregisterListeners(),this.mainDetails=null,this.bufferedTrack=null,this.switchingTrack=null},r._registerListeners=function(){var t=this.hls;t.on(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.LEVEL_LOADED,this.onLevelLoaded,this),t.on(E.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),t.on(E.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.on(E.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),t.on(E.ERROR,this.onError,this),t.on(E.BUFFER_RESET,this.onBufferReset,this),t.on(E.BUFFER_CREATED,this.onBufferCreated,this),t.on(E.BUFFER_FLUSHED,this.onBufferFlushed,this),t.on(E.INIT_PTS_FOUND,this.onInitPtsFound,this),t.on(E.FRAG_BUFFERED,this.onFragBuffered,this)},r._unregisterListeners=function(){var t=this.hls;t.off(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.LEVEL_LOADED,this.onLevelLoaded,this),t.off(E.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),t.off(E.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.off(E.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),t.off(E.ERROR,this.onError,this),t.off(E.BUFFER_RESET,this.onBufferReset,this),t.off(E.BUFFER_CREATED,this.onBufferCreated,this),t.off(E.BUFFER_FLUSHED,this.onBufferFlushed,this),t.off(E.INIT_PTS_FOUND,this.onInitPtsFound,this),t.off(E.FRAG_BUFFERED,this.onFragBuffered,this)},r.onInitPtsFound=function(t,e){var r=e.frag,i=e.id,n=e.initPTS,a=e.timescale;if("main"===i){var s=r.cc;this.initPTS[r.cc]={baseTime:n,timescale:a},this.log("InitPTS for cc: "+s+" found from main: "+n),this.videoTrackCC=s,this.state===zr&&this.tick()}},r.startLoad=function(t){if(!this.levels)return this.startPosition=t,void(this.state=Br);var e=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),e>0&&-1===t?(this.log("Override startPosition with lastCurrentTime @"+e.toFixed(3)),t=e,this.state=Gr):(this.loadedmetadata=!1,this.state=Yr),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()},r.doTick=function(){switch(this.state){case Gr:this.doTickIdle();break;case Yr:var e,r=this.levels,i=this.trackId,n=null==r||null==(e=r[i])?void 0:e.details;if(n){if(this.waitForCdnTuneIn(n))break;this.state=zr}break;case Vr:var a,s=performance.now(),o=this.retryDate;(!o||s>=o||null!=(a=this.media)&&a.seeking)&&(this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded(this.trackId),this.state=Gr);break;case zr:var l=this.waitingData;if(l){var u=l.frag,h=l.part,d=l.cache,c=l.complete;if(void 0!==this.initPTS[u.cc]){this.waitingData=null,this.waitingVideoCC=-1,this.state=Hr;var f={frag:u,part:h,payload:d.flush(),networkDetails:null};this._handleFragmentLoadProgress(f),c&&t.prototype._handleFragmentLoadComplete.call(this,f)}else if(this.videoTrackCC!==this.waitingVideoCC)this.log("Waiting fragment cc ("+u.cc+") cancelled because video is at cc "+this.videoTrackCC),this.clearWaitingFragment();else{var g=this.getLoadPosition(),v=Dr.bufferInfo(this.mediaBuffer,g,this.config.maxBufferHole);$e(v.end,this.config.maxFragLookUpTolerance,u)<0&&(this.log("Waiting fragment cc ("+u.cc+") @ "+u.start+" cancelled because another fragment at "+v.end+" is needed"),this.clearWaitingFragment())}}else this.state=Gr}this.onTickEnd()},r.clearWaitingFragment=function(){var t=this.waitingData;t&&(this.fragmentTracker.removeFragment(t.frag),this.waitingData=null,this.waitingVideoCC=-1,this.state=Gr)},r.resetLoadingState=function(){this.clearWaitingFragment(),t.prototype.resetLoadingState.call(this)},r.onTickEnd=function(){var t=this.media;null!=t&&t.readyState&&(this.lastCurrentTime=t.currentTime)},r.doTickIdle=function(){var t=this.hls,e=this.levels,r=this.media,i=this.trackId,n=t.config;if(null!=e&&e[i]&&(r||!this.startFragRequested&&n.startFragPrefetch)){var a=e[i],s=a.details;if(!s||s.live&&this.levelLastLoaded!==i||this.waitForCdnTuneIn(s))this.state=Yr;else{var o=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&o&&(this.bufferFlushed=!1,this.afterBufferFlushed(o,O,ge));var l=this.getFwdBufferInfo(o,ge);if(null!==l){var u=this.bufferedTrack,h=this.switchingTrack;if(!h&&this._streamEnded(l,s))return t.trigger(E.BUFFER_EOS,{type:"audio"}),void(this.state=qr);var d=this.getFwdBufferInfo(this.videoBuffer?this.videoBuffer:this.media,fe),c=l.len,f=this.getMaxBufferLength(null==d?void 0:d.len);if(!(c>=f)||h){var g=s.fragments[0].start,v=l.end;if(h&&r){var m=this.getLoadPosition();u&&h.attrs!==u.attrs&&(v=m),s.PTSKnown&&m<g&&(l.end>g||l.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),r.currentTime=g+.05)}var p=this.getNextFragment(v,s),y=!1;if(p&&this.isLoopLoading(p,v)&&(y=!!p.gap,p=this.getNextFragmentLoopLoading(p,s,l,fe,f)),p){var T=d&&p.start>d.end+s.targetduration;if(T||(null==d||!d.len)&&l.len){var S=this.getAppendedFrag(p.start,fe);if(null===S)return;if(y||(y=!!S.gap||!!T&&0===d.len),T&&!y||y&&l.nextStart&&l.nextStart<S.end)return}this.loadFragment(p,a,v)}else this.bufferFlushed=!0}}}}},r.getMaxBufferLength=function(e){var r=t.prototype.getMaxBufferLength.call(this);return e?Math.min(Math.max(r,e),this.config.maxMaxBufferLength):r},r.onMediaDetaching=function(){this.videoBuffer=null,t.prototype.onMediaDetaching.call(this)},r.onAudioTracksUpdated=function(t,e){var r=e.audioTracks;this.resetTransmuxer(),this.levels=r.map((function(t){return new Me(t)}))},r.onAudioTrackSwitching=function(t,e){var r=!!e.url;this.trackId=e.id;var i=this.fragCurrent;i&&(i.abortRequests(),this.removeUnbufferedFrags(i.start)),this.resetLoadingState(),r?this.setInterval(100):this.resetTransmuxer(),r?(this.switchingTrack=e,this.state=Gr):(this.switchingTrack=null,this.bufferedTrack=e,this.state=Br),this.tick()},r.onManifestLoading=function(){this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=!1,this.levels=this.mainDetails=this.waitingData=this.bufferedTrack=this.cachedTrackLoadedData=this.switchingTrack=null,this.startFragRequested=!1,this.trackId=this.videoTrackCC=this.waitingVideoCC=-1},r.onLevelLoaded=function(t,e){this.mainDetails=e.details,null!==this.cachedTrackLoadedData&&(this.hls.trigger(E.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)},r.onAudioTrackLoaded=function(t,e){var r;if(null!=this.mainDetails){var i=this.levels,n=e.details,a=e.id;if(i){this.log("Track "+a+" loaded ["+n.startSN+","+n.endSN+"]"+(n.lastPartSn?"[part-"+n.lastPartSn+"-"+n.lastPartIndex+"]":"")+",duration:"+n.totalduration);var s=i[a],o=0;if(n.live||null!=(r=s.details)&&r.live){var l=this.mainDetails;if(n.fragments[0]||(n.deltaUpdateFailed=!0),n.deltaUpdateFailed||!l)return;!s.details&&n.hasProgramDateTime&&l.hasProgramDateTime?(xr(n,l),o=n.fragments[0].start):o=this.alignPlaylists(n,s.details)}s.details=n,this.levelLastLoaded=a,this.startFragRequested||!this.mainDetails&&n.live||this.setStartPosition(s.details,o),this.state!==Yr||this.waitForCdnTuneIn(n)||(this.state=Gr),this.tick()}else this.warn("Audio tracks were reset while loading level "+a)}else this.cachedTrackLoadedData=e},r._handleFragmentLoadProgress=function(t){var e,r=t.frag,i=t.part,n=t.payload,a=this.config,s=this.trackId,o=this.levels;if(o){var l=o[s];if(l){var u=l.details;if(!u)return this.warn("Audio track details undefined on fragment load progress"),void this.removeUnbufferedFrags(r.start);var h=a.defaultAudioCodec||l.audioCodec||"mp4a.40.2",d=this.transmuxer;d||(d=this.transmuxer=new hn(this.hls,ge,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));var c=this.initPTS[r.cc],f=null==(e=r.initSegment)?void 0:e.data;if(void 0!==c){var g=i?i.index:-1,v=-1!==g,m=new Ir(r.level,r.sn,r.stats.chunkCount,n.byteLength,g,v);d.push(n,f,h,"",r,i,u.totalduration,!1,m,c)}else this.log("Unknown video PTS for cc "+r.cc+", waiting for video PTS before demuxing audio frag "+r.sn+" of ["+u.startSN+" ,"+u.endSN+"],track "+s),(this.waitingData=this.waitingData||{frag:r,part:i,cache:new mn,complete:!1}).cache.push(new Uint8Array(n)),this.waitingVideoCC=this.videoTrackCC,this.state=zr}else this.warn("Audio track is undefined on fragment load progress")}else this.warn("Audio tracks were reset while fragment load was in progress. Fragment "+r.sn+" of level "+r.level+" will not be buffered")},r._handleFragmentLoadComplete=function(e){this.waitingData?this.waitingData.complete=!0:t.prototype._handleFragmentLoadComplete.call(this,e)},r.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},r.onBufferCreated=function(t,e){var r=e.tracks.audio;r&&(this.mediaBuffer=r.buffer||null),e.tracks.video&&(this.videoBuffer=e.tracks.video.buffer||null)},r.onFragBuffered=function(t,e){var r,n=e.frag,a=e.part;if(n.type===ge)if(this.fragContextChanged(n))this.warn("Fragment "+n.sn+(a?" p: "+a.index:"")+" of level "+n.level+" finished buffering, but was aborted. state: "+this.state+", audioSwitch: "+(this.switchingTrack?this.switchingTrack.name:"false"));else{if("initSegment"!==n.sn){this.fragPrevious=n;var s=this.switchingTrack;s&&(this.bufferedTrack=s,this.switchingTrack=null,this.hls.trigger(E.AUDIO_TRACK_SWITCHED,i({},s)))}this.fragBufferedComplete(n,a)}else this.loadedmetadata||n.type!==fe||null!=(r=this.videoBuffer||this.media)&&r.buffered.length&&(this.loadedmetadata=!0)},r.onError=function(e,r){var i;if(r.fatal)this.state=Xr;else switch(r.details){case L.FRAG_GAP:case L.FRAG_PARSING_ERROR:case L.FRAG_DECRYPT_ERROR:case L.FRAG_LOAD_ERROR:case L.FRAG_LOAD_TIMEOUT:case L.KEY_LOAD_ERROR:case L.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ge,r);break;case L.AUDIO_TRACK_LOAD_ERROR:case L.AUDIO_TRACK_LOAD_TIMEOUT:case L.LEVEL_PARSING_ERROR:r.levelRetry||this.state!==Yr||(null==(i=r.context)?void 0:i.type)!==de||(this.state=Gr);break;case L.BUFFER_FULL_ERROR:if(!r.parent||"audio"!==r.parent)return;this.reduceLengthAndFlushBuffer(r)&&(this.bufferedTrack=null,t.prototype.flushMainBuffer.call(this,0,Number.POSITIVE_INFINITY,"audio"));break;case L.INTERNAL_EXCEPTION:this.recoverWorkerError(r)}},r.onBufferFlushed=function(t,e){e.type===O&&(this.bufferFlushed=!0,this.state===qr&&(this.state=Gr))},r._handleTransmuxComplete=function(t){var e,r="audio",i=this.hls,n=t.remuxResult,a=t.chunkMeta,s=this.getCurrentContext(a);if(s){var l=s.frag,u=s.part,h=s.level.details,d=n.audio,c=n.text,f=n.id3,g=n.initSegment;if(!this.fragContextChanged(l)&&h){if(this.state=Wr,this.switchingTrack&&d&&this.completeAudioSwitch(this.switchingTrack),null!=g&&g.tracks){var v=l.initSegment||l;this._bufferInitSegment(g.tracks,v,a),i.trigger(E.FRAG_PARSING_INIT_SEGMENT,{frag:v,id:r,tracks:g.tracks})}if(d){var m=d.startPTS,p=d.endPTS,y=d.startDTS,T=d.endDTS;u&&(u.elementaryStreams[O]={startPTS:m,endPTS:p,startDTS:y,endDTS:T}),l.setElementaryStreamInfo(O,m,p,y,T),this.bufferFragmentData(d,l,u,a)}if(null!=f&&null!=(e=f.samples)&&e.length){var S=o({id:r,frag:l,details:h},f);i.trigger(E.FRAG_PARSING_METADATA,S)}if(c){var L=o({id:r,frag:l,details:h},c);i.trigger(E.FRAG_PARSING_USERDATA,L)}}else this.fragmentTracker.removeFragment(l)}else this.resetWhenMissingContext(a)},r._bufferInitSegment=function(t,e,r){if(this.state===Wr){t.video&&delete t.video;var i=t.audio;if(i){i.levelCodec=i.codec,i.id="audio",this.log("Init audio buffer, container:"+i.container+", codecs[parsed]=["+i.codec+"]"),this.hls.trigger(E.BUFFER_CODECS,t);var n=i.initSegment;if(null!=n&&n.byteLength){var a={type:"audio",frag:e,part:null,chunkMeta:r,parent:e.type,data:n};this.hls.trigger(E.BUFFER_APPENDING,a)}this.tick()}}},r.loadFragment=function(e,r,i){var n,a=this.fragmentTracker.getState(e);this.fragCurrent=e,this.switchingTrack||a===cr||a===gr?"initSegment"===e.sn?this._loadInitSegment(e,r):null!=(n=r.details)&&n.live&&!this.initPTS[e.cc]?(this.log("Waiting for video PTS in continuity counter "+e.cc+" of live stream before loading audio fragment "+e.sn+" of level "+this.trackId),this.state=zr):(this.startFragRequested=!0,t.prototype.loadFragment.call(this,e,r,i)):this.clearTrackerIfNeeded(e)},r.completeAudioSwitch=function(e){var r=this.hls,n=this.media,a=this.bufferedTrack,s=null==a?void 0:a.attrs,o=e.attrs;n&&s&&(s.CHANNELS!==o.CHANNELS||s.NAME!==o.NAME||s.LANGUAGE!==o.LANGUAGE)&&(this.log("Switching audio track : flushing all audio"),t.prototype.flushMainBuffer.call(this,0,Number.POSITIVE_INFINITY,"audio")),this.bufferedTrack=e,this.switchingTrack=null,r.trigger(E.AUDIO_TRACK_SWITCHED,i({},e))},e}($r),yn=function(t){function e(e){var r;return(r=t.call(this,e,"[audio-track-controller]")||this).tracks=[],r.groupId=null,r.tracksInGroup=[],r.trackId=-1,r.currentTrack=null,r.selectDefaultTrack=!0,r.registerListeners(),r}l(e,t);var r=e.prototype;return r.registerListeners=function(){var t=this.hls;t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.MANIFEST_PARSED,this.onManifestParsed,this),t.on(E.LEVEL_LOADING,this.onLevelLoading,this),t.on(E.LEVEL_SWITCHING,this.onLevelSwitching,this),t.on(E.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),t.on(E.ERROR,this.onError,this)},r.unregisterListeners=function(){var t=this.hls;t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.MANIFEST_PARSED,this.onManifestParsed,this),t.off(E.LEVEL_LOADING,this.onLevelLoading,this),t.off(E.LEVEL_SWITCHING,this.onLevelSwitching,this),t.off(E.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),t.off(E.ERROR,this.onError,this)},r.destroy=function(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,t.prototype.destroy.call(this)},r.onManifestLoading=function(){this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0},r.onManifestParsed=function(t,e){this.tracks=e.audioTracks||[]},r.onAudioTrackLoaded=function(t,e){var r=e.id,i=e.groupId,n=e.details,a=this.tracksInGroup[r];if(a&&a.groupId===i){var s=a.details;a.details=e.details,this.log("audio-track "+r+' "'+a.name+'" lang:'+a.lang+" group:"+i+" loaded ["+n.startSN+"-"+n.endSN+"]"),r===this.trackId&&this.playlistLoaded(r,e,s)}else this.warn("Track with id:"+r+" and group:"+i+" not found in active group "+a.groupId)},r.onLevelLoading=function(t,e){this.switchLevel(e.level)},r.onLevelSwitching=function(t,e){this.switchLevel(e.level)},r.switchLevel=function(t){var e=this.hls.levels[t];if(null!=e&&e.audioGroupIds){var r=e.audioGroupIds[e.urlId];if(this.groupId!==r){this.groupId=r||null;var i=this.tracks.filter((function(t){return!r||t.groupId===r}));this.selectDefaultTrack&&!i.some((function(t){return t.default}))&&(this.selectDefaultTrack=!1),this.tracksInGroup=i;var n={audioTracks:i};this.log("Updating audio tracks, "+i.length+" track(s) found in group:"+r),this.hls.trigger(E.AUDIO_TRACKS_UPDATED,n),this.selectInitialTrack()}else this.shouldReloadPlaylist(this.currentTrack)&&this.setAudioTrack(this.trackId)}},r.onError=function(t,e){!e.fatal&&e.context&&e.context.type===de&&e.context.id===this.trackId&&e.context.groupId===this.groupId&&(this.requestScheduled=-1,this.checkRetry(e))},r.setAudioTrack=function(t){var e=this.tracksInGroup;if(t<0||t>=e.length)this.warn("Invalid id passed to audio-track controller");else{this.clearTimer();var r=this.currentTrack;e[this.trackId];var n=e[t],a=n.groupId,s=n.name;if(this.log("Switching to audio-track "+t+' "'+s+'" lang:'+n.lang+" group:"+a),this.trackId=t,this.currentTrack=n,this.selectDefaultTrack=!1,this.hls.trigger(E.AUDIO_TRACK_SWITCHING,i({},n)),!n.details||n.details.live){var o=this.switchParams(n.url,null==r?void 0:r.details);this.loadPlaylist(o)}}},r.selectInitialTrack=function(){var t=this.tracksInGroup,e=this.findTrackId(this.currentTrack)|this.findTrackId(null);if(-1!==e)this.setAudioTrack(e);else{var r=new Error("No track found for running audio group-ID: "+this.groupId+" track count: "+t.length);this.warn(r.message),this.hls.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:r})}},r.findTrackId=function(t){for(var e=this.tracksInGroup,r=0;r<e.length;r++){var i=e[r];if(!this.selectDefaultTrack||i.default){if(!t||void 0!==t.attrs["STABLE-RENDITION-ID"]&&t.attrs["STABLE-RENDITION-ID"]===i.attrs["STABLE-RENDITION-ID"])return i.id;if(t.name===i.name&&t.lang===i.lang)return i.id}}return-1},r.loadPlaylist=function(e){t.prototype.loadPlaylist.call(this);var r=this.tracksInGroup[this.trackId];if(this.shouldLoadPlaylist(r)){var i=r.id,n=r.groupId,a=r.url;if(e)try{a=e.addDirectives(a)}catch(t){this.warn("Could not construct new URL with HLS Delivery Directives: "+t)}this.log("loading audio-track playlist "+i+' "'+r.name+'" lang:'+r.lang+" group:"+n),this.clearTimer(),this.hls.trigger(E.AUDIO_TRACK_LOADING,{url:a,id:i,groupId:n,deliveryDirectives:e||null})}},a(e,[{key:"audioTracks",get:function(){return this.tracksInGroup}},{key:"audioTrack",get:function(){return this.trackId},set:function(t){this.selectDefaultTrack=!1,this.setAudioTrack(t)}}]),e}(lr);function Tn(t,e){if(t.length!==e.length)return!1;for(var r=0;r<t.length;r++)if(!En(t[r].attrs,e[r].attrs))return!1;return!0}function En(t,e){var r=t["STABLE-RENDITION-ID"];return r?r===e["STABLE-RENDITION-ID"]:!["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED"].some((function(r){return t[r]!==e[r]}))}var Sn=function(t){function e(e,r,i){var n;return(n=t.call(this,e,r,i,"[subtitle-stream-controller]",ve)||this).levels=[],n.currentTrackId=-1,n.tracksBuffered=[],n.mainDetails=null,n._registerListeners(),n}l(e,t);var r=e.prototype;return r.onHandlerDestroying=function(){this._unregisterListeners(),this.mainDetails=null},r._registerListeners=function(){var t=this.hls;t.on(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.LEVEL_LOADED,this.onLevelLoaded,this),t.on(E.ERROR,this.onError,this),t.on(E.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),t.on(E.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),t.on(E.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),t.on(E.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),t.on(E.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(E.FRAG_BUFFERED,this.onFragBuffered,this)},r._unregisterListeners=function(){var t=this.hls;t.off(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.LEVEL_LOADED,this.onLevelLoaded,this),t.off(E.ERROR,this.onError,this),t.off(E.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),t.off(E.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),t.off(E.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),t.off(E.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),t.off(E.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(E.FRAG_BUFFERED,this.onFragBuffered,this)},r.startLoad=function(t){this.stopLoad(),this.state=Gr,this.setInterval(500),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()},r.onManifestLoading=function(){this.mainDetails=null,this.fragmentTracker.removeAllFragments()},r.onMediaDetaching=function(){this.tracksBuffered=[],t.prototype.onMediaDetaching.call(this)},r.onLevelLoaded=function(t,e){this.mainDetails=e.details},r.onSubtitleFragProcessed=function(t,e){var r=e.frag,i=e.success;if(this.fragPrevious=r,this.state=Gr,i){var n=this.tracksBuffered[this.currentTrackId];if(n){for(var a,s=r.start,o=0;o<n.length;o++)if(s>=n[o].start&&s<=n[o].end){a=n[o];break}var l=r.start+r.duration;a?a.end=l:(a={start:s,end:l},n.push(a)),this.fragmentTracker.fragBuffered(r)}}},r.onBufferFlushing=function(t,e){var r=e.startOffset,i=e.endOffset;if(0===r&&i!==Number.POSITIVE_INFINITY){var n=this.currentTrackId,a=this.levels;if(!a.length||!a[n]||!a[n].details)return;var s=i-a[n].details.targetduration;if(s<=0)return;e.endOffsetSubtitles=Math.max(0,s),this.tracksBuffered.forEach((function(t){for(var e=0;e<t.length;)if(t[e].end<=s)t.shift();else{if(!(t[e].start<s))break;t[e].start=s,e++}})),this.fragmentTracker.removeFragmentsInRange(r,s,ve)}},r.onFragBuffered=function(t,e){var r;this.loadedmetadata||e.frag.type!==fe||null!=(r=this.media)&&r.buffered.length&&(this.loadedmetadata=!0)},r.onError=function(t,e){var r=e.frag;(null==r?void 0:r.type)===ve&&(this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==Br&&(this.state=Gr))},r.onSubtitleTracksUpdated=function(t,e){var r=this,i=e.subtitleTracks;Tn(this.levels,i)?this.levels=i.map((function(t){return new Me(t)})):(this.tracksBuffered=[],this.levels=i.map((function(t){var e=new Me(t);return r.tracksBuffered[e.id]=[],e})),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,ve),this.fragPrevious=null,this.mediaBuffer=null)},r.onSubtitleTrackSwitch=function(t,e){if(this.currentTrackId=e.id,this.levels.length&&-1!==this.currentTrackId){var r=this.levels[this.currentTrackId];null!=r&&r.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,r&&this.setInterval(500)}else this.clearInterval()},r.onSubtitleTrackLoaded=function(t,e){var r,i=e.details,n=e.id,a=this.currentTrackId,s=this.levels;if(s.length){var o=s[a];if(!(n>=s.length||n!==a)&&o){this.mediaBuffer=this.mediaBufferTimeRanges;var l=0;if(i.live||null!=(r=o.details)&&r.live){var u=this.mainDetails;if(i.deltaUpdateFailed||!u)return;var h=u.fragments[0];o.details?0===(l=this.alignPlaylists(i,o.details))&&h&&Ke(i,l=h.start):i.hasProgramDateTime&&u.hasProgramDateTime?(xr(i,u),l=i.fragments[0].start):h&&Ke(i,l=h.start)}o.details=i,this.levelLastLoaded=n,this.startFragRequested||!this.mainDetails&&i.live||this.setStartPosition(o.details,l),this.tick(),i.live&&!this.fragCurrent&&this.media&&this.state===Gr&&(Qe(null,i.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),o.details=void 0))}}},r._handleFragmentLoadComplete=function(t){var e=this,r=t.frag,i=t.payload,n=r.decryptdata,a=this.hls;if(!this.fragContextChanged(r)&&i&&i.byteLength>0&&n&&n.key&&n.iv&&"AES-128"===n.method){var s=performance.now();this.decrypter.decrypt(new Uint8Array(i),n.key.buffer,n.iv.buffer).catch((function(t){throw a.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.FRAG_DECRYPT_ERROR,fatal:!1,error:t,reason:t.message,frag:r}),t})).then((function(t){var e=performance.now();a.trigger(E.FRAG_DECRYPTED,{frag:r,payload:t,stats:{tstart:s,tdecrypt:e}})})).catch((function(t){e.warn(t.name+": "+t.message),e.state=Gr}))}},r.doTick=function(){if(this.media){if(this.state===Gr){var t=this.currentTrackId,e=this.levels,r=e[t];if(!e.length||!r||!r.details)return;var i=r.details,n=i.targetduration,a=this.config,s=this.getLoadPosition(),o=Dr.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],s-n,a.maxBufferHole),l=o.end,u=o.len,h=this.getFwdBufferInfo(this.media,fe);if(u>this.getMaxBufferLength(null==h?void 0:h.len)+n)return;var d=i.fragments,c=d.length,f=i.edge,g=null,v=this.fragPrevious;if(l<f){var m=a.maxFragLookUpTolerance;!(g=Qe(v,d,Math.max(d[0].start,l),m))&&v&&v.start<d[0].start&&(g=d[0])}else g=d[c-1];if(!g)return;g=this.mapToInitFragWhenRequired(g),this.fragmentTracker.getState(g)===cr&&this.loadFragment(g,r,l)}}else this.state=Gr},r.getMaxBufferLength=function(e){var r=t.prototype.getMaxBufferLength.call(this);return e?Math.max(r,e):r},r.loadFragment=function(e,r,i){this.fragCurrent=e,"initSegment"===e.sn?this._loadInitSegment(e,r):(this.startFragRequested=!0,t.prototype.loadFragment.call(this,e,r,i))},a(e,[{key:"mediaBufferTimeRanges",get:function(){return new Ln(this.tracksBuffered[this.currentTrackId]||[])}}]),e}($r),Ln=function(t){this.buffered=void 0;var e=function(e,r,i){if((r>>>=0)>i-1)throw new DOMException("Failed to execute '"+e+"' on 'TimeRanges': The index provided ("+r+") is greater than the maximum bound ("+i+")");return t[r][e]};this.buffered={get length(){return t.length},end:function(r){return e("end",r,t.length)},start:function(r){return e("start",r,t.length)}}},Rn=function(t){function e(e){var r;return(r=t.call(this,e,"[subtitle-track-controller]")||this).media=null,r.tracks=[],r.groupId=null,r.tracksInGroup=[],r.trackId=-1,r.selectDefaultTrack=!0,r.queuedDefaultTrack=-1,r.trackChangeListener=function(){return r.onTextTracksChanged()},r.asyncPollTrackChange=function(){return r.pollTrackChange(0)},r.useTextTrackPolling=!1,r.subtitlePollingInterval=-1,r._subtitleDisplay=!0,r.registerListeners(),r}l(e,t);var r=e.prototype;return r.destroy=function(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.trackChangeListener=this.asyncPollTrackChange=null,t.prototype.destroy.call(this)},r.registerListeners=function(){var t=this.hls;t.on(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.MANIFEST_PARSED,this.onManifestParsed,this),t.on(E.LEVEL_LOADING,this.onLevelLoading,this),t.on(E.LEVEL_SWITCHING,this.onLevelSwitching,this),t.on(E.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),t.on(E.ERROR,this.onError,this)},r.unregisterListeners=function(){var t=this.hls;t.off(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.MANIFEST_PARSED,this.onManifestParsed,this),t.off(E.LEVEL_LOADING,this.onLevelLoading,this),t.off(E.LEVEL_SWITCHING,this.onLevelSwitching,this),t.off(E.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),t.off(E.ERROR,this.onError,this)},r.onMediaAttached=function(t,e){this.media=e.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&"onchange"in this.media.textTracks),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))},r.pollTrackChange=function(t){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.trackChangeListener,t)},r.onMediaDetaching=function(){this.media&&(self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),An(this.media.textTracks).forEach((function(t){Se(t)})),this.subtitleTrack=-1,this.media=null)},r.onManifestLoading=function(){this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.selectDefaultTrack=!0},r.onManifestParsed=function(t,e){this.tracks=e.subtitleTracks},r.onSubtitleTrackLoaded=function(t,e){var r=e.id,i=e.details,n=this.trackId,a=this.tracksInGroup[n];if(a){var s=a.details;a.details=e.details,this.log("subtitle track "+r+" loaded ["+i.startSN+"-"+i.endSN+"]"),r===this.trackId&&this.playlistLoaded(r,e,s)}else this.warn("Invalid subtitle track id "+r)},r.onLevelLoading=function(t,e){this.switchLevel(e.level)},r.onLevelSwitching=function(t,e){this.switchLevel(e.level)},r.switchLevel=function(t){var e=this.hls.levels[t];if(null!=e&&e.textGroupIds){var r=e.textGroupIds[e.urlId],i=this.tracksInGroup?this.tracksInGroup[this.trackId]:void 0;if(this.groupId!==r){var n=this.tracks.filter((function(t){return!r||t.groupId===r}));this.tracksInGroup=n;var a=this.findTrackId(null==i?void 0:i.name)||this.findTrackId();this.groupId=r||null;var s={subtitleTracks:n};this.log("Updating subtitle tracks, "+n.length+' track(s) found in "'+r+'" group-id'),this.hls.trigger(E.SUBTITLE_TRACKS_UPDATED,s),-1!==a&&this.setSubtitleTrack(a,i)}else this.shouldReloadPlaylist(i)&&this.setSubtitleTrack(this.trackId,i)}},r.findTrackId=function(t){for(var e=this.tracksInGroup,r=0;r<e.length;r++){var i=e[r];if((!this.selectDefaultTrack||i.default)&&(!t||t===i.name))return i.id}return-1},r.onError=function(t,e){!e.fatal&&e.context&&e.context.type===ce&&e.context.id===this.trackId&&e.context.groupId===this.groupId&&this.checkRetry(e)},r.loadPlaylist=function(e){t.prototype.loadPlaylist.call(this);var r=this.tracksInGroup[this.trackId];if(this.shouldLoadPlaylist(r)){var i=r.id,n=r.groupId,a=r.url;if(e)try{a=e.addDirectives(a)}catch(t){this.warn("Could not construct new URL with HLS Delivery Directives: "+t)}this.log("Loading subtitle playlist for id "+i),this.hls.trigger(E.SUBTITLE_TRACK_LOADING,{url:a,id:i,groupId:n,deliveryDirectives:e||null})}},r.toggleTrackModes=function(t){var e=this,r=this.media,i=this.trackId;if(r){var n=An(r.textTracks),a=n.filter((function(t){return t.groupId===e.groupId}));if(-1===t)[].slice.call(n).forEach((function(t){t.mode="disabled"}));else{var s=a[i];s&&(s.mode="disabled")}var o=a[t];o&&(o.mode=this.subtitleDisplay?"showing":"hidden")}},r.setSubtitleTrack=function(t,e){var r,i=this.tracksInGroup;if(this.media){if(this.trackId!==t&&this.toggleTrackModes(t),!(this.trackId===t&&(-1===t||null!=(r=i[t])&&r.details)||t<-1||t>=i.length)){this.clearTimer();var n=i[t];if(this.log("Switching to subtitle-track "+t+(n?' "'+n.name+'" lang:'+n.lang+" group:"+n.groupId:"")),this.trackId=t,n){var a=n.id,s=n.groupId,o=void 0===s?"":s,l=n.name,u=n.type,h=n.url;this.hls.trigger(E.SUBTITLE_TRACK_SWITCH,{id:a,groupId:o,name:l,type:u,url:h});var d=this.switchParams(n.url,null==e?void 0:e.details);this.loadPlaylist(d)}else this.hls.trigger(E.SUBTITLE_TRACK_SWITCH,{id:t})}}else this.queuedDefaultTrack=t},r.onTextTracksChanged=function(){if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),this.media&&this.hls.config.renderTextTracksNatively){for(var t=-1,e=An(this.media.textTracks),r=0;r<e.length;r++)if("hidden"===e[r].mode)t=r;else if("showing"===e[r].mode){t=r;break}this.subtitleTrack!==t&&(this.subtitleTrack=t)}},a(e,[{key:"subtitleDisplay",get:function(){return this._subtitleDisplay},set:function(t){this._subtitleDisplay=t,this.trackId>-1&&this.toggleTrackModes(this.trackId)}},{key:"subtitleTracks",get:function(){return this.tracksInGroup}},{key:"subtitleTrack",get:function(){return this.trackId},set:function(t){this.selectDefaultTrack=!1;var e=this.tracksInGroup?this.tracksInGroup[this.trackId]:void 0;this.setSubtitleTrack(t,e)}}]),e}(lr);function An(t){for(var e=[],r=0;r<t.length;r++){var i=t[r];"subtitles"!==i.kind&&"captions"!==i.kind||!i.label||e.push(t[r])}return e}var kn=function(){function t(t){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=t}var e=t.prototype;return e.append=function(t,e){var r=this.queues[e];r.push(t),1===r.length&&this.buffers[e]&&this.executeNext(e)},e.insertAbort=function(t,e){this.queues[e].unshift(t),this.executeNext(e)},e.appendBlocker=function(t){var e,r=new Promise((function(t){e=t})),i={execute:e,onStart:function(){},onComplete:function(){},onError:function(){}};return this.append(i,t),r},e.executeNext=function(t){var e=this.buffers,r=this.queues,i=e[t],n=r[t];if(n.length){var a=n[0];try{a.execute()}catch(e){I.warn("[buffer-operation-queue]: Unhandled exception executing the current operation"),a.onError(e),null!=i&&i.updating||(n.shift(),this.executeNext(t))}}},e.shiftAndExecuteNext=function(t){this.queues[t].shift(),this.executeNext(t)},e.current=function(t){return this.queues[t][0]},t}(),bn=jt(),Dn=/([ha]vc.)(?:\.[^.,]+)+/,In=function(){function t(t){var e=this;this.details=null,this._objectUrl=null,this.operationQueue=void 0,this.listeners=void 0,this.hls=void 0,this.bufferCodecEventsExpected=0,this._bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.appendError=0,this.tracks={},this.pendingTracks={},this.sourceBuffer=void 0,this._onMediaSourceOpen=function(){var t=e.media,r=e.mediaSource;I.log("[buffer-controller]: Media source opened"),t&&(t.removeEventListener("emptied",e._onMediaEmptied),e.updateMediaElementDuration(),e.hls.trigger(E.MEDIA_ATTACHED,{media:t})),r&&r.removeEventListener("sourceopen",e._onMediaSourceOpen),e.checkPendingTracks()},this._onMediaSourceClose=function(){I.log("[buffer-controller]: Media source closed")},this._onMediaSourceEnded=function(){I.log("[buffer-controller]: Media source ended")},this._onMediaEmptied=function(){var t=e.media,r=e._objectUrl;t&&t.src!==r&&I.error("Media element src was set while attaching MediaSource ("+r+" > "+t.src+")")},this.hls=t,this._initSourceBuffer(),this.registerListeners()}var e=t.prototype;return e.hasSourceTypes=function(){return this.getSourceBufferTypes().length>0||Object.keys(this.pendingTracks).length>0},e.destroy=function(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=null},e.registerListeners=function(){var t=this.hls;t.on(E.MEDIA_ATTACHING,this.onMediaAttaching,this),t.on(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.MANIFEST_PARSED,this.onManifestParsed,this),t.on(E.BUFFER_RESET,this.onBufferReset,this),t.on(E.BUFFER_APPENDING,this.onBufferAppending,this),t.on(E.BUFFER_CODECS,this.onBufferCodecs,this),t.on(E.BUFFER_EOS,this.onBufferEos,this),t.on(E.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(E.LEVEL_UPDATED,this.onLevelUpdated,this),t.on(E.FRAG_PARSED,this.onFragParsed,this),t.on(E.FRAG_CHANGED,this.onFragChanged,this)},e.unregisterListeners=function(){var t=this.hls;t.off(E.MEDIA_ATTACHING,this.onMediaAttaching,this),t.off(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.MANIFEST_PARSED,this.onManifestParsed,this),t.off(E.BUFFER_RESET,this.onBufferReset,this),t.off(E.BUFFER_APPENDING,this.onBufferAppending,this),t.off(E.BUFFER_CODECS,this.onBufferCodecs,this),t.off(E.BUFFER_EOS,this.onBufferEos,this),t.off(E.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(E.LEVEL_UPDATED,this.onLevelUpdated,this),t.off(E.FRAG_PARSED,this.onFragParsed,this),t.off(E.FRAG_CHANGED,this.onFragChanged,this)},e._initSourceBuffer=function(){this.sourceBuffer={},this.operationQueue=new kn(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]},this.lastMpegAudioChunk=null},e.onManifestLoading=function(){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=0,this.details=null},e.onManifestParsed=function(t,e){var r=2;(e.audio&&!e.video||!e.altAudio)&&(r=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=r,I.log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")},e.onMediaAttaching=function(t,e){var r=this.media=e.media;if(r&&bn){var i=this.mediaSource=new bn;i.addEventListener("sourceopen",this._onMediaSourceOpen),i.addEventListener("sourceended",this._onMediaSourceEnded),i.addEventListener("sourceclose",this._onMediaSourceClose),r.src=self.URL.createObjectURL(i),this._objectUrl=r.src,r.addEventListener("emptied",this._onMediaEmptied)}},e.onMediaDetaching=function(){var t=this.media,e=this.mediaSource,r=this._objectUrl;if(e){if(I.log("[buffer-controller]: media source detaching"),"open"===e.readyState)try{e.endOfStream()}catch(t){I.warn("[buffer-controller]: onMediaDetaching: "+t.message+" while calling endOfStream")}this.onBufferReset(),e.removeEventListener("sourceopen",this._onMediaSourceOpen),e.removeEventListener("sourceended",this._onMediaSourceEnded),e.removeEventListener("sourceclose",this._onMediaSourceClose),t&&(t.removeEventListener("emptied",this._onMediaEmptied),r&&self.URL.revokeObjectURL(r),t.src===r?(t.removeAttribute("src"),t.load()):I.warn("[buffer-controller]: media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={}}this.hls.trigger(E.MEDIA_DETACHED,void 0)},e.onBufferReset=function(){var t=this;this.getSourceBufferTypes().forEach((function(e){var r=t.sourceBuffer[e];try{r&&(t.removeBufferListeners(e),t.mediaSource&&t.mediaSource.removeSourceBuffer(r),t.sourceBuffer[e]=void 0)}catch(t){I.warn("[buffer-controller]: Failed to reset the "+e+" buffer",t)}})),this._initSourceBuffer()},e.onBufferCodecs=function(t,e){var r=this,i=this.getSourceBufferTypes().length;Object.keys(e).forEach((function(t){if(i){var n=r.tracks[t];if(n&&"function"==typeof n.buffer.changeType){var a=e[t],s=a.id,o=a.codec,l=a.levelCodec,u=a.container,h=a.metadata,d=(n.levelCodec||n.codec).replace(Dn,"$1"),c=(l||o).replace(Dn,"$1");if(d!==c){var f=u+";codecs="+(l||o);r.appendChangeType(t,f),I.log("[buffer-controller]: switching codec "+d+" to "+c),r.tracks[t]={buffer:n.buffer,codec:o,container:u,levelCodec:l,metadata:h,id:s}}}}else r.pendingTracks[t]=e[t]})),i||(this.bufferCodecEventsExpected=Math.max(this.bufferCodecEventsExpected-1,0),this.mediaSource&&"open"===this.mediaSource.readyState&&this.checkPendingTracks())},e.appendChangeType=function(t,e){var r=this,i=this.operationQueue,n={execute:function(){var n=r.sourceBuffer[t];n&&(I.log("[buffer-controller]: changing "+t+" sourceBuffer type to "+e),n.changeType(e)),i.shiftAndExecuteNext(t)},onStart:function(){},onComplete:function(){},onError:function(e){I.warn("[buffer-controller]: Failed to change "+t+" SourceBuffer type",e)}};i.append(n,t)},e.onBufferAppending=function(t,e){var r=this,i=this.hls,n=this.operationQueue,a=this.tracks,s=e.data,o=e.type,l=e.frag,u=e.part,h=e.chunkMeta,d=h.buffering[o],c=self.performance.now();d.start=c;var f=l.stats.buffering,g=u?u.stats.buffering:null;0===f.start&&(f.start=c),g&&0===g.start&&(g.start=c);var v=a.audio,m=!1;"audio"===o&&"audio/mpeg"===(null==v?void 0:v.container)&&(m=!this.lastMpegAudioChunk||1===h.id||this.lastMpegAudioChunk.sn!==h.sn,this.lastMpegAudioChunk=h);var p=l.start,y={execute:function(){if(d.executeStart=self.performance.now(),m){var t=r.sourceBuffer[o];if(t){var e=p-t.timestampOffset;Math.abs(e)>=.1&&(I.log("[buffer-controller]: Updating audio SourceBuffer timestampOffset to "+p+" (delta: "+e+") sn: "+l.sn+")"),t.timestampOffset=p)}}r.appendExecutor(s,o)},onStart:function(){},onComplete:function(){var t=self.performance.now();d.executeEnd=d.end=t,0===f.first&&(f.first=t),g&&0===g.first&&(g.first=t);var e=r.sourceBuffer,i={};for(var n in e)i[n]=Dr.getBuffered(e[n]);r.appendError=0,r.hls.trigger(E.BUFFER_APPENDED,{type:o,frag:l,part:u,chunkMeta:h,parent:l.type,timeRanges:i})},onError:function(t){I.error("[buffer-controller]: Error encountered while trying to append to the "+o+" SourceBuffer",t);var e={type:S.MEDIA_ERROR,parent:l.type,details:L.BUFFER_APPEND_ERROR,frag:l,part:u,chunkMeta:h,error:t,err:t,fatal:!1};t.code===DOMException.QUOTA_EXCEEDED_ERR?e.details=L.BUFFER_FULL_ERROR:(r.appendError++,e.details=L.BUFFER_APPEND_ERROR,r.appendError>i.config.appendErrorMaxRetry&&(I.error("[buffer-controller]: Failed "+i.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),e.fatal=!0)),i.trigger(E.ERROR,e)}};n.append(y,o)},e.onBufferFlushing=function(t,e){var r=this,i=this.operationQueue,n=function(t){return{execute:r.removeExecutor.bind(r,t,e.startOffset,e.endOffset),onStart:function(){},onComplete:function(){r.hls.trigger(E.BUFFER_FLUSHED,{type:t})},onError:function(e){I.warn("[buffer-controller]: Failed to remove from "+t+" SourceBuffer",e)}}};e.type?i.append(n(e.type),e.type):this.getSourceBufferTypes().forEach((function(t){i.append(n(t),t)}))},e.onFragParsed=function(t,e){var r=this,i=e.frag,n=e.part,a=[],s=n?n.elementaryStreams:i.elementaryStreams;s[N]?a.push("audiovideo"):(s[O]&&a.push("audio"),s[M]&&a.push("video")),0===a.length&&I.warn("Fragments must have at least one ElementaryStreamType set. type: "+i.type+" level: "+i.level+" sn: "+i.sn),this.blockBuffers((function(){var t=self.performance.now();i.stats.buffering.end=t,n&&(n.stats.buffering.end=t);var e=n?n.stats:i.stats;r.hls.trigger(E.FRAG_BUFFERED,{frag:i,part:n,stats:e,id:i.type})}),a)},e.onFragChanged=function(t,e){this.flushBackBuffer()},e.onBufferEos=function(t,e){var r=this;this.getSourceBufferTypes().reduce((function(t,i){var n=r.sourceBuffer[i];return!n||e.type&&e.type!==i||(n.ending=!0,n.ended||(n.ended=!0,I.log("[buffer-controller]: "+i+" sourceBuffer now EOS"))),t&&!(n&&!n.ended)}),!0)&&(I.log("[buffer-controller]: Queueing mediaSource.endOfStream()"),this.blockBuffers((function(){r.getSourceBufferTypes().forEach((function(t){var e=r.sourceBuffer[t];e&&(e.ending=!1)}));var t=r.mediaSource;t&&"open"===t.readyState?(I.log("[buffer-controller]: Calling mediaSource.endOfStream()"),t.endOfStream()):t&&I.info("[buffer-controller]: Could not call mediaSource.endOfStream(). mediaSource.readyState: "+t.readyState)})))},e.onLevelUpdated=function(t,e){var r=e.details;r.fragments.length&&(this.details=r,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())},e.flushBackBuffer=function(){var t=this.hls,e=this.details,r=this.media,i=this.sourceBuffer;if(r&&null!==e){var n=this.getSourceBufferTypes();if(n.length){var a=e.live&&null!==t.config.liveBackBufferLength?t.config.liveBackBufferLength:t.config.backBufferLength;if(T(a)&&!(a<0)){var s=r.currentTime,o=e.levelTargetDuration,l=Math.max(a,o),u=Math.floor(s/o)*o-l;n.forEach((function(r){var n=i[r];if(n){var a=Dr.getBuffered(n);if(a.length>0&&u>a.start(0)){if(t.trigger(E.BACK_BUFFER_REACHED,{bufferEnd:u}),e.live)t.trigger(E.LIVE_BACK_BUFFER_REACHED,{bufferEnd:u});else if(n.ended&&a.end(a.length-1)-s<2*o)return void I.info("[buffer-controller]: Cannot flush "+r+" back buffer while SourceBuffer is in ended state");t.trigger(E.BUFFER_FLUSHING,{startOffset:0,endOffset:u,type:r})}}}))}}}},e.updateMediaElementDuration=function(){if(this.details&&this.media&&this.mediaSource&&"open"===this.mediaSource.readyState){var t=this.details,e=this.hls,r=this.media,i=this.mediaSource,n=t.fragments[0].start+t.totalduration,a=r.duration,s=T(i.duration)?i.duration:0;t.live&&e.config.liveDurationInfinity?(I.log("[buffer-controller]: Media Source duration is set to Infinity"),i.duration=1/0,this.updateSeekableRange(t)):(n>s&&n>a||!T(a))&&(I.log("[buffer-controller]: Updating Media Source duration to "+n.toFixed(3)),i.duration=n)}},e.updateSeekableRange=function(t){var e=this.mediaSource,r=t.fragments;if(r.length&&t.live&&null!=e&&e.setLiveSeekableRange){var i=Math.max(0,r[0].start),n=Math.max(i,i+t.totalduration);e.setLiveSeekableRange(i,n)}},e.checkPendingTracks=function(){var t=this.bufferCodecEventsExpected,e=this.operationQueue,r=this.pendingTracks,i=Object.keys(r).length;if(i&&!t||2===i){this.createSourceBuffers(r),this.pendingTracks={};var n=this.getSourceBufferTypes();if(n.length)this.hls.trigger(E.BUFFER_CREATED,{tracks:this.tracks}),n.forEach((function(t){e.executeNext(t)}));else{var a=new Error("could not create source buffer for media codec(s)");this.hls.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:a,reason:a.message})}}},e.createSourceBuffers=function(t){var e=this.sourceBuffer,r=this.mediaSource;if(!r)throw Error("createSourceBuffers called when mediaSource was null");for(var i in t)if(!e[i]){var n=t[i];if(!n)throw Error("source buffer exists for track "+i+", however track does not");var a=n.levelCodec||n.codec,s=n.container+";codecs="+a;I.log("[buffer-controller]: creating sourceBuffer("+s+")");try{var o=e[i]=r.addSourceBuffer(s),l=i;this.addBufferListener(l,"updatestart",this._onSBUpdateStart),this.addBufferListener(l,"updateend",this._onSBUpdateEnd),this.addBufferListener(l,"error",this._onSBUpdateError),this.tracks[i]={buffer:o,codec:a,container:n.container,levelCodec:n.levelCodec,metadata:n.metadata,id:n.id}}catch(t){I.error("[buffer-controller]: error while trying to add sourceBuffer: "+t.message),this.hls.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:t,mimeType:s})}}},e._onSBUpdateStart=function(t){this.operationQueue.current(t).onStart()},e._onSBUpdateEnd=function(t){var e=this.operationQueue;e.current(t).onComplete(),e.shiftAndExecuteNext(t)},e._onSBUpdateError=function(t,e){var r=new Error(t+" SourceBuffer error");I.error("[buffer-controller]: "+r,e),this.hls.trigger(E.ERROR,{type:S.MEDIA_ERROR,details:L.BUFFER_APPENDING_ERROR,error:r,fatal:!1});var i=this.operationQueue.current(t);i&&i.onError(e)},e.removeExecutor=function(t,e,r){var i=this.media,n=this.mediaSource,a=this.operationQueue,s=this.sourceBuffer[t];if(!i||!n||!s)return I.warn("[buffer-controller]: Attempting to remove from the "+t+" SourceBuffer, but it does not exist"),void a.shiftAndExecuteNext(t);var o=T(i.duration)?i.duration:1/0,l=T(n.duration)?n.duration:1/0,u=Math.max(0,e),h=Math.min(r,o,l);h>u&&!s.ending?(s.ended=!1,I.log("[buffer-controller]: Removing ["+u+","+h+"] from the "+t+" SourceBuffer"),s.remove(u,h)):a.shiftAndExecuteNext(t)},e.appendExecutor=function(t,e){var r=this.operationQueue,i=this.sourceBuffer[e];if(!i)return I.warn("[buffer-controller]: Attempting to append to the "+e+" SourceBuffer, but it does not exist"),void r.shiftAndExecuteNext(e);i.ended=!1,i.appendBuffer(t)},e.blockBuffers=function(t,e){var r=this;if(void 0===e&&(e=this.getSourceBufferTypes()),!e.length)return I.log("[buffer-controller]: Blocking operation requested, but no SourceBuffers exist"),void Promise.resolve().then(t);var i=this.operationQueue,n=e.map((function(t){return i.appendBlocker(t)}));Promise.all(n).then((function(){t(),e.forEach((function(t){var e=r.sourceBuffer[t];null!=e&&e.updating||i.shiftAndExecuteNext(t)}))}))},e.getSourceBufferTypes=function(){return Object.keys(this.sourceBuffer)},e.addBufferListener=function(t,e,r){var i=this.sourceBuffer[t];if(i){var n=r.bind(this,t);this.listeners[t].push({event:e,listener:n}),i.addEventListener(e,n)}},e.removeBufferListeners=function(t){var e=this.sourceBuffer[t];e&&this.listeners[t].forEach((function(t){e.removeEventListener(t.event,t.listener)}))},t}(),wn={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},Cn=function(t){var e=t;return wn.hasOwnProperty(t)&&(e=wn[t]),String.fromCharCode(e)},_n=15,Pn=100,xn={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},Fn={17:2,18:4,21:6,22:8,23:10,19:13,20:15},On={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},Mn={25:2,26:4,29:6,30:8,31:10,27:13,28:15},Nn=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],Un=function(){function t(){this.time=null,this.verboseLevel=0}return t.prototype.log=function(t,e){if(this.verboseLevel>=t){var r="function"==typeof e?e():e;I.log(this.time+" ["+t+"] "+r)}},t}(),Bn=function(t){for(var e=[],r=0;r<t.length;r++)e.push(t[r].toString(16));return e},Gn=function(){function t(t,e,r,i,n){this.foreground=void 0,this.underline=void 0,this.italics=void 0,this.background=void 0,this.flash=void 0,this.foreground=t||"white",this.underline=e||!1,this.italics=r||!1,this.background=i||"black",this.flash=n||!1}var e=t.prototype;return e.reset=function(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1},e.setStyles=function(t){for(var e=["foreground","underline","italics","background","flash"],r=0;r<e.length;r++){var i=e[r];t.hasOwnProperty(i)&&(this[i]=t[i])}},e.isDefault=function(){return"white"===this.foreground&&!this.underline&&!this.italics&&"black"===this.background&&!this.flash},e.equals=function(t){return this.foreground===t.foreground&&this.underline===t.underline&&this.italics===t.italics&&this.background===t.background&&this.flash===t.flash},e.copy=function(t){this.foreground=t.foreground,this.underline=t.underline,this.italics=t.italics,this.background=t.background,this.flash=t.flash},e.toString=function(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash},t}(),Kn=function(){function t(t,e,r,i,n,a){this.uchar=void 0,this.penState=void 0,this.uchar=t||" ",this.penState=new Gn(e,r,i,n,a)}var e=t.prototype;return e.reset=function(){this.uchar=" ",this.penState.reset()},e.setChar=function(t,e){this.uchar=t,this.penState.copy(e)},e.setPenState=function(t){this.penState.copy(t)},e.equals=function(t){return this.uchar===t.uchar&&this.penState.equals(t.penState)},e.copy=function(t){this.uchar=t.uchar,this.penState.copy(t.penState)},e.isEmpty=function(){return" "===this.uchar&&this.penState.isDefault()},t}(),Hn=function(){function t(t){this.chars=void 0,this.pos=void 0,this.currPenState=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chars=[];for(var e=0;e<Pn;e++)this.chars.push(new Kn);this.logger=t,this.pos=0,this.currPenState=new Gn}var e=t.prototype;return e.equals=function(t){for(var e=!0,r=0;r<Pn;r++)if(!this.chars[r].equals(t.chars[r])){e=!1;break}return e},e.copy=function(t){for(var e=0;e<Pn;e++)this.chars[e].copy(t.chars[e])},e.isEmpty=function(){for(var t=!0,e=0;e<Pn;e++)if(!this.chars[e].isEmpty()){t=!1;break}return t},e.setCursor=function(t){this.pos!==t&&(this.pos=t),this.pos<0?(this.logger.log(3,"Negative cursor position "+this.pos),this.pos=0):this.pos>Pn&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=Pn)},e.moveCursor=function(t){var e=this.pos+t;if(t>1)for(var r=this.pos+1;r<e+1;r++)this.chars[r].setPenState(this.currPenState);this.setCursor(e)},e.backSpace=function(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)},e.insertChar=function(t){var e=this;t>=144&&this.backSpace();var r=Cn(t);this.pos>=Pn?this.logger.log(0,(function(){return"Cannot insert "+t.toString(16)+" ("+r+") at position "+e.pos+". Skipping it!"})):(this.chars[this.pos].setChar(r,this.currPenState),this.moveCursor(1))},e.clearFromPos=function(t){var e;for(e=t;e<Pn;e++)this.chars[e].reset()},e.clear=function(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()},e.clearToEndOfRow=function(){this.clearFromPos(this.pos)},e.getTextString=function(){for(var t=[],e=!0,r=0;r<Pn;r++){var i=this.chars[r].uchar;" "!==i&&(e=!1),t.push(i)}return e?"":t.join("")},e.setPenStyles=function(t){this.currPenState.setStyles(t),this.chars[this.pos].setPenState(this.currPenState)},t}(),Vn=function(){function t(t){this.rows=void 0,this.currRow=void 0,this.nrRollUpRows=void 0,this.lastOutputScreen=void 0,this.logger=void 0,this.rows=[];for(var e=0;e<_n;e++)this.rows.push(new Hn(t));this.logger=t,this.currRow=14,this.nrRollUpRows=null,this.lastOutputScreen=null,this.reset()}var e=t.prototype;return e.reset=function(){for(var t=0;t<_n;t++)this.rows[t].clear();this.currRow=14},e.equals=function(t){for(var e=!0,r=0;r<_n;r++)if(!this.rows[r].equals(t.rows[r])){e=!1;break}return e},e.copy=function(t){for(var e=0;e<_n;e++)this.rows[e].copy(t.rows[e])},e.isEmpty=function(){for(var t=!0,e=0;e<_n;e++)if(!this.rows[e].isEmpty()){t=!1;break}return t},e.backSpace=function(){this.rows[this.currRow].backSpace()},e.clearToEndOfRow=function(){this.rows[this.currRow].clearToEndOfRow()},e.insertChar=function(t){this.rows[this.currRow].insertChar(t)},e.setPen=function(t){this.rows[this.currRow].setPenStyles(t)},e.moveCursor=function(t){this.rows[this.currRow].moveCursor(t)},e.setCursor=function(t){this.logger.log(2,"setCursor: "+t),this.rows[this.currRow].setCursor(t)},e.setPAC=function(t){this.logger.log(2,(function(){return"pacData = "+JSON.stringify(t)}));var e=t.row-1;if(this.nrRollUpRows&&e<this.nrRollUpRows-1&&(e=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==e){for(var r=0;r<_n;r++)this.rows[r].clear();var i=this.currRow+1-this.nrRollUpRows,n=this.lastOutputScreen;if(n){var a=n.rows[i].cueStartTime,s=this.logger.time;if(a&&null!==s&&a<s)for(var o=0;o<this.nrRollUpRows;o++)this.rows[e-this.nrRollUpRows+o+1].copy(n.rows[i+o])}}this.currRow=e;var l=this.rows[this.currRow];if(null!==t.indent){var u=t.indent,h=Math.max(u-1,0);l.setCursor(t.indent),t.color=l.chars[h].penState.foreground}var d={foreground:t.color,underline:t.underline,italics:t.italics,background:"black",flash:!1};this.setPen(d)},e.setBkgData=function(t){this.logger.log(2,(function(){return"bkgData = "+JSON.stringify(t)})),this.backSpace(),this.setPen(t),this.insertChar(32)},e.setRollUpRows=function(t){this.nrRollUpRows=t},e.rollUp=function(){var t=this;if(null!==this.nrRollUpRows){this.logger.log(1,(function(){return t.getDisplayText()}));var e=this.currRow+1-this.nrRollUpRows,r=this.rows.splice(e,1)[0];r.clear(),this.rows.splice(this.currRow,0,r),this.logger.log(2,"Rolling up")}else this.logger.log(3,"roll_up but nrRollUpRows not set yet")},e.getDisplayText=function(t){t=t||!1;for(var e=[],r="",i=-1,n=0;n<_n;n++){var a=this.rows[n].getTextString();a&&(i=n+1,t?e.push("Row "+i+": '"+a+"'"):e.push(a.trim()))}return e.length>0&&(r=t?"["+e.join(" | ")+"]":e.join("\n")),r},e.getTextAndFormat=function(){return this.rows},t}(),Yn=function(){function t(t,e,r){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=t,this.outputFilter=e,this.mode=null,this.verbose=0,this.displayedMemory=new Vn(r),this.nonDisplayedMemory=new Vn(r),this.lastOutputScreen=new Vn(r),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=r}var e=t.prototype;return e.reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null},e.getHandler=function(){return this.outputFilter},e.setHandler=function(t){this.outputFilter=t},e.setPAC=function(t){this.writeScreen.setPAC(t)},e.setBkgData=function(t){this.writeScreen.setBkgData(t)},e.setMode=function(t){t!==this.mode&&(this.mode=t,this.logger.log(2,(function(){return"MODE="+t})),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=t)},e.insertChars=function(t){for(var e=this,r=0;r<t.length;r++)this.writeScreen.insertChar(t[r]);var i=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,(function(){return i+": "+e.writeScreen.getDisplayText(!0)})),"MODE_PAINT-ON"!==this.mode&&"MODE_ROLL-UP"!==this.mode||(this.logger.log(1,(function(){return"DISPLAYED: "+e.displayedMemory.getDisplayText(!0)})),this.outputDataUpdate())},e.ccRCL=function(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")},e.ccBS=function(){this.logger.log(2,"BS - BackSpace"),"MODE_TEXT"!==this.mode&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())},e.ccAOF=function(){},e.ccAON=function(){},e.ccDER=function(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()},e.ccRU=function(t){this.logger.log(2,"RU("+t+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(t)},e.ccFON=function(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})},e.ccRDC=function(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")},e.ccTR=function(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")},e.ccRTD=function(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")},e.ccEDM=function(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)},e.ccCR=function(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)},e.ccENM=function(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()},e.ccEOC=function(){var t=this;if(this.logger.log(2,"EOC - End Of Caption"),"MODE_POP-ON"===this.mode){var e=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=e,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,(function(){return"DISP: "+t.displayedMemory.getDisplayText()}))}this.outputDataUpdate(!0)},e.ccTO=function(t){this.logger.log(2,"TO("+t+") - Tab Offset"),this.writeScreen.moveCursor(t)},e.ccMIDROW=function(t){var e={flash:!1};if(e.underline=t%2==1,e.italics=t>=46,e.italics)e.foreground="white";else{var r=Math.floor(t/2)-16;e.foreground=["white","green","blue","cyan","red","yellow","magenta"][r]}this.logger.log(2,"MIDROW: "+JSON.stringify(e)),this.writeScreen.setPen(e)},e.outputDataUpdate=function(t){void 0===t&&(t=!1);var e=this.logger.time;null!==e&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),t&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))},e.cueSplitAtTime=function(t){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,t,this.displayedMemory),this.cueStartTime=t))},t}(),Wn=function(){function t(t,e,r){this.channels=void 0,this.currentChannel=0,this.cmdHistory=void 0,this.logger=void 0;var i=new Un;this.channels=[null,new Yn(t,e,i),new Yn(t+1,r,i)],this.cmdHistory={a:null,b:null},this.logger=i}var e=t.prototype;return e.getHandler=function(t){return this.channels[t].getHandler()},e.setHandler=function(t,e){this.channels[t].setHandler(e)},e.addData=function(t,e){var r,i,n,a=!1;this.logger.time=t;for(var s=0;s<e.length;s+=2)if(i=127&e[s],n=127&e[s+1],0!==i||0!==n){if(this.logger.log(3,"["+Bn([e[s],e[s+1]])+"] -> ("+Bn([i,n])+")"),(r=this.parseCmd(i,n))||(r=this.parseMidrow(i,n)),r||(r=this.parsePAC(i,n)),r||(r=this.parseBackgroundAttributes(i,n)),!r&&(a=this.parseChars(i,n))){var o=this.currentChannel;o&&o>0?this.channels[o].insertChars(a):this.logger.log(2,"No channel found yet. TEXT-MODE?")}r||a||this.logger.log(2,"Couldn't parse cleaned data "+Bn([i,n])+" orig: "+Bn([e[s],e[s+1]]))}},e.parseCmd=function(t,e){var r=this.cmdHistory;if(!((20===t||28===t||21===t||29===t)&&e>=32&&e<=47||(23===t||31===t)&&e>=33&&e<=35))return!1;if(qn(t,e,r))return jn(null,null,r),this.logger.log(3,"Repeated command ("+Bn([t,e])+") is dropped"),!0;var i=20===t||21===t||23===t?1:2,n=this.channels[i];return 20===t||21===t||28===t||29===t?32===e?n.ccRCL():33===e?n.ccBS():34===e?n.ccAOF():35===e?n.ccAON():36===e?n.ccDER():37===e?n.ccRU(2):38===e?n.ccRU(3):39===e?n.ccRU(4):40===e?n.ccFON():41===e?n.ccRDC():42===e?n.ccTR():43===e?n.ccRTD():44===e?n.ccEDM():45===e?n.ccCR():46===e?n.ccENM():47===e&&n.ccEOC():n.ccTO(e-32),jn(t,e,r),this.currentChannel=i,!0},e.parseMidrow=function(t,e){var r=0;if((17===t||25===t)&&e>=32&&e<=47){if((r=17===t?1:2)!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;var i=this.channels[r];return!!i&&(i.ccMIDROW(e),this.logger.log(3,"MIDROW ("+Bn([t,e])+")"),!0)}return!1},e.parsePAC=function(t,e){var r,i=this.cmdHistory;if(!((t>=17&&t<=23||t>=25&&t<=31)&&e>=64&&e<=127||(16===t||24===t)&&e>=64&&e<=95))return!1;if(qn(t,e,i))return jn(null,null,i),!0;var n=t<=23?1:2;r=e>=64&&e<=95?1===n?xn[t]:On[t]:1===n?Fn[t]:Mn[t];var a=this.channels[n];return!!a&&(a.setPAC(this.interpretPAC(r,e)),jn(t,e,i),this.currentChannel=n,!0)},e.interpretPAC=function(t,e){var r,i={color:null,italics:!1,indent:null,underline:!1,row:t};return r=e>95?e-96:e-64,i.underline=1==(1&r),r<=13?i.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(r/2)]:r<=15?(i.italics=!0,i.color="white"):i.indent=4*Math.floor((r-16)/2),i},e.parseChars=function(t,e){var r,i,n=null,a=null;if(t>=25?(r=2,a=t-8):(r=1,a=t),a>=17&&a<=19?(i=17===a?e+80:18===a?e+112:e+144,this.logger.log(2,"Special char '"+Cn(i)+"' in channel "+r),n=[i]):t>=32&&t<=127&&(n=0===e?[t]:[t,e]),n){var s=Bn(n);this.logger.log(3,"Char codes = "+s.join(",")),jn(t,e,this.cmdHistory)}return n},e.parseBackgroundAttributes=function(t,e){var r;if(!((16===t||24===t)&&e>=32&&e<=47||(23===t||31===t)&&e>=45&&e<=47))return!1;var i={};16===t||24===t?(r=Math.floor((e-32)/2),i.background=Nn[r],e%2==1&&(i.background=i.background+"_semi")):45===e?i.background="transparent":(i.foreground="black",47===e&&(i.underline=!0));var n=t<=23?1:2;return this.channels[n].setBkgData(i),jn(t,e,this.cmdHistory),!0},e.reset=function(){for(var t=0;t<Object.keys(this.channels).length;t++){var e=this.channels[t];e&&e.reset()}this.cmdHistory={a:null,b:null}},e.cueSplitAtTime=function(t){for(var e=0;e<this.channels.length;e++){var r=this.channels[e];r&&r.cueSplitAtTime(t)}},t}();function jn(t,e,r){r.a=t,r.b=e}function qn(t,e,r){return r.a===t&&r.b===e}var Xn=function(){function t(t,e){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=t,this.trackName=e}var e=t.prototype;return e.dispatchCue=function(){null!==this.startTime&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)},e.newCue=function(t,e,r){(null===this.startTime||this.startTime>t)&&(this.startTime=t),this.endTime=e,this.screen=r,this.timelineController.createCaptionsTrack(this.trackName)},e.reset=function(){this.cueRanges=[],this.startTime=null},t}(),zn=function(){if("undefined"!=typeof self&&self.VTTCue)return self.VTTCue;var t=["","lr","rl"],e=["start","middle","end","left","right"];function r(t,e){if("string"!=typeof e)return!1;if(!Array.isArray(t))return!1;var r=e.toLowerCase();return!!~t.indexOf(r)&&r}function i(t){return r(e,t)}function n(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var s in a)t[s]=a[s]}return t}function a(e,a,s){var o=this,l={enumerable:!0};o.hasBeenReset=!1;var u="",h=!1,d=e,c=a,f=s,g=null,v="",m=!0,p="auto",y="start",T=50,E="middle",S=50,L="middle";Object.defineProperty(o,"id",n({},l,{get:function(){return u},set:function(t){u=""+t}})),Object.defineProperty(o,"pauseOnExit",n({},l,{get:function(){return h},set:function(t){h=!!t}})),Object.defineProperty(o,"startTime",n({},l,{get:function(){return d},set:function(t){if("number"!=typeof t)throw new TypeError("Start time must be set to a number.");d=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"endTime",n({},l,{get:function(){return c},set:function(t){if("number"!=typeof t)throw new TypeError("End time must be set to a number.");c=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"text",n({},l,{get:function(){return f},set:function(t){f=""+t,this.hasBeenReset=!0}})),Object.defineProperty(o,"region",n({},l,{get:function(){return g},set:function(t){g=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"vertical",n({},l,{get:function(){return v},set:function(e){var i=function(e){return r(t,e)}(e);if(!1===i)throw new SyntaxError("An invalid or illegal string was specified.");v=i,this.hasBeenReset=!0}})),Object.defineProperty(o,"snapToLines",n({},l,{get:function(){return m},set:function(t){m=!!t,this.hasBeenReset=!0}})),Object.defineProperty(o,"line",n({},l,{get:function(){return p},set:function(t){if("number"!=typeof t&&"auto"!==t)throw new SyntaxError("An invalid number or illegal string was specified.");p=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"lineAlign",n({},l,{get:function(){return y},set:function(t){var e=i(t);if(!e)throw new SyntaxError("An invalid or illegal string was specified.");y=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"position",n({},l,{get:function(){return T},set:function(t){if(t<0||t>100)throw new Error("Position must be between 0 and 100.");T=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"positionAlign",n({},l,{get:function(){return E},set:function(t){var e=i(t);if(!e)throw new SyntaxError("An invalid or illegal string was specified.");E=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"size",n({},l,{get:function(){return S},set:function(t){if(t<0||t>100)throw new Error("Size must be between 0 and 100.");S=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"align",n({},l,{get:function(){return L},set:function(t){var e=i(t);if(!e)throw new SyntaxError("An invalid or illegal string was specified.");L=e,this.hasBeenReset=!0}})),o.displayState=void 0}return a.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},a}(),Qn=function(){function t(){}return t.prototype.decode=function(t,e){if(!t)return"";if("string"!=typeof t)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))},t}();function $n(t){function e(t,e,r,i){return 3600*(0|t)+60*(0|e)+(0|r)+parseFloat(i||0)}var r=t.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return r?parseFloat(r[2])>59?e(r[2],r[3],0,r[4]):e(r[1],r[2],r[3],r[4]):null}var Jn=function(){function t(){this.values=Object.create(null)}var e=t.prototype;return e.set=function(t,e){this.get(t)||""===e||(this.values[t]=e)},e.get=function(t,e,r){return r?this.has(t)?this.values[t]:e[r]:this.has(t)?this.values[t]:e},e.has=function(t){return t in this.values},e.alt=function(t,e,r){for(var i=0;i<r.length;++i)if(e===r[i]){this.set(t,e);break}},e.integer=function(t,e){/^-?\d+$/.test(e)&&this.set(t,parseInt(e,10))},e.percent=function(t,e){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(e)){var r=parseFloat(e);if(r>=0&&r<=100)return this.set(t,r),!0}return!1},t}();function Zn(t,e,r,i){var n=i?t.split(i):[t];for(var a in n)if("string"==typeof n[a]){var s=n[a].split(r);2===s.length&&e(s[0],s[1])}}var ta=new zn(0,0,""),ea="middle"===ta.align?"middle":"center";function ra(t,e,r){var i=t;function n(){var e=$n(t);if(null===e)throw new Error("Malformed timestamp: "+i);return t=t.replace(/^[^\sa-zA-Z-]+/,""),e}function a(){t=t.replace(/^\s+/,"")}if(a(),e.startTime=n(),a(),"--\x3e"!==t.slice(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+i);t=t.slice(3),a(),e.endTime=n(),a(),function(t,e){var i=new Jn;Zn(t,(function(t,e){var n;switch(t){case"region":for(var a=r.length-1;a>=0;a--)if(r[a].id===e){i.set(t,r[a].region);break}break;case"vertical":i.alt(t,e,["rl","lr"]);break;case"line":n=e.split(","),i.integer(t,n[0]),i.percent(t,n[0])&&i.set("snapToLines",!1),i.alt(t,n[0],["auto"]),2===n.length&&i.alt("lineAlign",n[1],["start",ea,"end"]);break;case"position":n=e.split(","),i.percent(t,n[0]),2===n.length&&i.alt("positionAlign",n[1],["start",ea,"end","line-left","line-right","auto"]);break;case"size":i.percent(t,e);break;case"align":i.alt(t,e,["start",ea,"end","left","right"])}}),/:/,/\s/),e.region=i.get("region",null),e.vertical=i.get("vertical","");var n=i.get("line","auto");"auto"===n&&-1===ta.line&&(n=-1),e.line=n,e.lineAlign=i.get("lineAlign","start"),e.snapToLines=i.get("snapToLines",!0),e.size=i.get("size",100),e.align=i.get("align",ea);var a=i.get("position","auto");"auto"===a&&50===ta.position&&(a="start"===e.align||"left"===e.align?0:"end"===e.align||"right"===e.align?100:50),e.position=a}(t,e)}function ia(t){return t.replace(/<br(?: \/)?>/gi,"\n")}var na=function(){function t(){this.state="INITIAL",this.buffer="",this.decoder=new Qn,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}var e=t.prototype;return e.parse=function(t){var e=this;function r(){var t=e.buffer,r=0;for(t=ia(t);r<t.length&&"\r"!==t[r]&&"\n"!==t[r];)++r;var i=t.slice(0,r);return"\r"===t[r]&&++r,"\n"===t[r]&&++r,e.buffer=t.slice(r),i}t&&(e.buffer+=e.decoder.decode(t,{stream:!0}));try{var i="";if("INITIAL"===e.state){if(!/\r\n|\n/.test(e.buffer))return this;var n=(i=r()).match(/^()?WEBVTT([ \t].*)?$/);if(null==n||!n[0])throw new Error("Malformed WebVTT signature.");e.state="HEADER"}for(var a=!1;e.buffer;){if(!/\r\n|\n/.test(e.buffer))return this;switch(a?a=!1:i=r(),e.state){case"HEADER":/:/.test(i)?Zn(i,(function(t,e){}),/:/):i||(e.state="ID");continue;case"NOTE":i||(e.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(i)){e.state="NOTE";break}if(!i)continue;if(e.cue=new zn(0,0,""),e.state="CUE",-1===i.indexOf("--\x3e")){e.cue.id=i;continue}case"CUE":if(!e.cue){e.state="BADCUE";continue}try{ra(i,e.cue,e.regionList)}catch(t){e.cue=null,e.state="BADCUE";continue}e.state="CUETEXT";continue;case"CUETEXT":var s=-1!==i.indexOf("--\x3e");if(!i||s&&(a=!0)){e.oncue&&e.cue&&e.oncue(e.cue),e.cue=null,e.state="ID";continue}if(null===e.cue)continue;e.cue.text&&(e.cue.text+="\n"),e.cue.text+=i;continue;case"BADCUE":i||(e.state="ID")}}}catch(t){"CUETEXT"===e.state&&e.cue&&e.oncue&&e.oncue(e.cue),e.cue=null,e.state="INITIAL"===e.state?"BADWEBVTT":"BADCUE"}return this},e.flush=function(){var t=this;try{if((t.cue||"HEADER"===t.state)&&(t.buffer+="\n\n",t.parse()),"INITIAL"===t.state||"BADWEBVTT"===t.state)throw new Error("Malformed WebVTT signature.")}catch(e){t.onparsingerror&&t.onparsingerror(e)}return t.onflush&&t.onflush(),this},t}(),aa=/\r\n|\n\r|\n|\r/g,sa=function(t,e,r){return void 0===r&&(r=0),t.slice(r,r+e.length)===e},oa=function(t){for(var e=5381,r=t.length;r;)e=33*e^t.charCodeAt(--r);return(e>>>0).toString()};function la(t,e,r){return oa(t.toString())+oa(e.toString())+oa(r)}function ua(t,e,r,i,n,a,s){var o,l,u,h=new na,d=mt(new Uint8Array(t)).trim().replace(aa,"\n").split("\n"),c=[],f=(o=e.baseTime,void 0===(l=e.timescale)&&(l=1),Ui(o,Ni,1/l)),g="00:00.000",v=0,m=0,p=!0;h.oncue=function(t){var e=r[i],a=r.ccOffset,s=(v-f)/9e4;null!=e&&e.new&&(void 0!==m?a=r.ccOffset=e.start:function(t,e,r){var i=t[e],n=t[i.prevCC];if(!n||!n.new&&i.new)return t.ccOffset=t.presentationOffset=i.start,void(i.new=!1);for(;null!=(a=n)&&a.new;){var a;t.ccOffset+=i.start-n.start,i.new=!1,n=t[(i=n).prevCC]}t.presentationOffset=r}(r,i,s)),s&&(a=s-r.presentationOffset);var o=t.endTime-t.startTime,l=Vi(9e4*(t.startTime+a-m),9e4*n)/9e4;t.startTime=Math.max(l,0),t.endTime=Math.max(l+o,0);var u=t.text.trim();t.text=decodeURIComponent(encodeURIComponent(u)),t.id||(t.id=la(t.startTime,t.endTime,u)),t.endTime>0&&c.push(t)},h.onparsingerror=function(t){u=t},h.onflush=function(){u?s(u):a(c)},d.forEach((function(t){if(p){if(sa(t,"X-TIMESTAMP-MAP=")){p=!1,t.slice(16).split(",").forEach((function(t){sa(t,"LOCAL:")?g=t.slice(6):sa(t,"MPEGTS:")&&(v=parseInt(t.slice(7)))}));try{m=function(t){var e=parseInt(t.slice(-3)),r=parseInt(t.slice(-6,-4)),i=parseInt(t.slice(-9,-7)),n=t.length>9?parseInt(t.substring(0,t.indexOf(":"))):0;if(!(T(e)&&T(r)&&T(i)&&T(n)))throw Error("Malformed X-TIMESTAMP-MAP: Local:"+t);return e+=1e3*r,(e+=6e4*i)+36e5*n}(g)/1e3}catch(t){u=t}return}""===t&&(p=!1)}h.parse(t+"\n")})),h.flush()}var ha="stpp.ttml.im1t",da=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,ca=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,fa={left:"start",center:"center",right:"end",start:"start",end:"end"};function ga(t,e,r,i){var n=Dt(new Uint8Array(t),["mdat"]);if(0!==n.length){var a,s,l,u,h=n.map((function(t){return mt(t)})),d=(a=e.baseTime,s=1,void 0===(l=e.timescale)&&(l=1),void 0===u&&(u=!1),Ui(a,s,1/l,u));try{h.forEach((function(t){return r(function(t,e){var r=(new DOMParser).parseFromString(t,"text/xml"),i=r.getElementsByTagName("tt")[0];if(!i)throw new Error("Invalid ttml");var n={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},a=Object.keys(n).reduce((function(t,e){return t[e]=i.getAttribute("ttp:"+e)||n[e],t}),{}),s="preserve"!==i.getAttribute("xml:space"),l=ma(va(i,"styling","style")),u=ma(va(i,"layout","region")),h=va(i,"body","[begin]");return[].map.call(h,(function(t){var r=pa(t,s);if(!r||!t.hasAttribute("begin"))return null;var i=Ea(t.getAttribute("begin"),a),n=Ea(t.getAttribute("dur"),a),h=Ea(t.getAttribute("end"),a);if(null===i)throw Ta(t);if(null===h){if(null===n)throw Ta(t);h=i+n}var d=new zn(i-e,h-e,r);d.id=la(d.startTime,d.endTime,d.text);var c=function(t,e,r){var i="http://www.w3.org/ns/ttml#styling",n=null,a=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],s=null!=t&&t.hasAttribute("style")?t.getAttribute("style"):null;return s&&r.hasOwnProperty(s)&&(n=r[s]),a.reduce((function(r,a){var s=ya(e,i,a)||ya(t,i,a)||ya(n,i,a);return s&&(r[a]=s),r}),{})}(u[t.getAttribute("region")],l[t.getAttribute("style")],l),f=c.textAlign;if(f){var g=fa[f];g&&(d.lineAlign=g),d.align=f}return o(d,c),d})).filter((function(t){return null!==t}))}(t,d))}))}catch(t){i(t)}}else i(new Error("Could not parse IMSC1 mdat"))}function va(t,e,r){var i=t.getElementsByTagName(e)[0];return i?[].slice.call(i.querySelectorAll(r)):[]}function ma(t){return t.reduce((function(t,e){var r=e.getAttribute("xml:id");return r&&(t[r]=e),t}),{})}function pa(t,e){return[].slice.call(t.childNodes).reduce((function(t,r,i){var n;return"br"===r.nodeName&&i?t+"\n":null!=(n=r.childNodes)&&n.length?pa(r,e):e?t+r.textContent.trim().replace(/\s+/g," "):t+r.textContent}),"")}function ya(t,e,r){return t&&t.hasAttributeNS(e,r)?t.getAttributeNS(e,r):null}function Ta(t){return new Error("Could not parse ttml timestamp "+t)}function Ea(t,e){if(!t)return null;var r=$n(t);return null===r&&(da.test(t)?r=function(t,e){var r=da.exec(t),i=(0|r[4])+(0|r[5])/e.subFrameRate;return 3600*(0|r[1])+60*(0|r[2])+(0|r[3])+i/e.frameRate}(t,e):ca.test(t)&&(r=function(t,e){var r=ca.exec(t),i=Number(r[1]);switch(r[2]){case"h":return 3600*i;case"m":return 60*i;case"ms":return 1e3*i;case"f":return i/e.frameRate;case"t":return i/e.tickRate}return i}(t,e))),r}var Sa=function(){function t(t){if(this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this.captionsProperties=void 0,this.hls=t,this.config=t.config,this.Cues=t.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},this.config.enableCEA708Captions){var e=new Xn(this,"textTrack1"),r=new Xn(this,"textTrack2"),i=new Xn(this,"textTrack3"),n=new Xn(this,"textTrack4");this.cea608Parser1=new Wn(1,e,r),this.cea608Parser2=new Wn(3,i,n)}t.on(E.MEDIA_ATTACHING,this.onMediaAttaching,this),t.on(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.MANIFEST_LOADED,this.onManifestLoaded,this),t.on(E.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),t.on(E.FRAG_LOADING,this.onFragLoading,this),t.on(E.FRAG_LOADED,this.onFragLoaded,this),t.on(E.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),t.on(E.FRAG_DECRYPTED,this.onFragDecrypted,this),t.on(E.INIT_PTS_FOUND,this.onInitPtsFound,this),t.on(E.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),t.on(E.BUFFER_FLUSHING,this.onBufferFlushing,this)}var e=t.prototype;return e.destroy=function(){var t=this.hls;t.off(E.MEDIA_ATTACHING,this.onMediaAttaching,this),t.off(E.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.MANIFEST_LOADED,this.onManifestLoaded,this),t.off(E.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),t.off(E.FRAG_LOADING,this.onFragLoading,this),t.off(E.FRAG_LOADED,this.onFragLoaded,this),t.off(E.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),t.off(E.FRAG_DECRYPTED,this.onFragDecrypted,this),t.off(E.INIT_PTS_FOUND,this.onInitPtsFound,this),t.off(E.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),t.off(E.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.cea608Parser1=this.cea608Parser2=null},e.addCues=function(t,e,r,i,n){for(var a,s,o,l,u=!1,h=n.length;h--;){var d=n[h],c=(a=d[0],s=d[1],o=e,l=r,Math.min(s,l)-Math.max(a,o));if(c>=0&&(d[0]=Math.min(d[0],e),d[1]=Math.max(d[1],r),u=!0,c/(r-e)>.5))return}if(u||n.push([e,r]),this.config.renderTextTracksNatively){var f=this.captionsTracks[t];this.Cues.newCue(f,e,r,i)}else{var g=this.Cues.newCue(null,e,r,i);this.hls.trigger(E.CUES_PARSED,{type:"captions",cues:g,track:t})}},e.onInitPtsFound=function(t,e){var r=this,i=e.frag,n=e.id,a=e.initPTS,s=e.timescale,o=this.unparsedVttFrags;"main"===n&&(this.initPTS[i.cc]={baseTime:a,timescale:s}),o.length&&(this.unparsedVttFrags=[],o.forEach((function(t){r.onFragLoaded(E.FRAG_LOADED,t)})))},e.getExistingTrack=function(t){var e=this.media;if(e)for(var r=0;r<e.textTracks.length;r++){var i=e.textTracks[r];if(i[t])return i}return null},e.createCaptionsTrack=function(t){this.config.renderTextTracksNatively?this.createNativeTrack(t):this.createNonNativeTrack(t)},e.createNativeTrack=function(t){if(!this.captionsTracks[t]){var e=this.captionsProperties,r=this.captionsTracks,i=this.media,n=e[t],a=n.label,s=n.languageCode,o=this.getExistingTrack(t);if(o)r[t]=o,Se(r[t]),Te(r[t],i);else{var l=this.createTextTrack("captions",a,s);l&&(l[t]=!0,r[t]=l)}}},e.createNonNativeTrack=function(t){if(!this.nonNativeCaptionsTracks[t]){var e=this.captionsProperties[t];if(e){var r={_id:t,label:e.label,kind:"captions",default:!!e.media&&!!e.media.default,closedCaptions:e.media};this.nonNativeCaptionsTracks[t]=r,this.hls.trigger(E.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[r]})}}},e.createTextTrack=function(t,e,r){var i=this.media;if(i)return i.addTextTrack(t,e,r)},e.onMediaAttaching=function(t,e){this.media=e.media,this._cleanTracks()},e.onMediaDetaching=function(){var t=this.captionsTracks;Object.keys(t).forEach((function(e){Se(t[e]),delete t[e]})),this.nonNativeCaptionsTracks={}},e.onManifestLoading=function(){this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=this.unparsedVttFrags||[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())},e._cleanTracks=function(){var t=this.media;if(t){var e=t.textTracks;if(e)for(var r=0;r<e.length;r++)Se(e[r])}},e.onSubtitleTracksUpdated=function(t,e){var r=this,i=e.subtitleTracks||[],n=i.some((function(t){return t.textCodec===ha}));if(this.config.enableWebVTT||n&&this.config.enableIMSC1){if(Tn(this.tracks,i))return void(this.tracks=i);if(this.textTracks=[],this.tracks=i,this.config.renderTextTracksNatively){var a=this.media?this.media.textTracks:null;this.tracks.forEach((function(t,e){var i;if(a&&e<a.length){for(var n=null,s=0;s<a.length;s++)if(La(a[s],t)){n=a[s];break}n&&(i=n)}if(i)Se(i);else{var o=r._captionsOrSubtitlesFromCharacteristics(t);(i=r.createTextTrack(o,t.name,t.lang))&&(i.mode="disabled")}i&&(i.groupId=t.groupId,r.textTracks.push(i))}))}else if(this.tracks.length){var s=this.tracks.map((function(t){return{label:t.name,kind:t.type.toLowerCase(),default:t.default,subtitleTrack:t}}));this.hls.trigger(E.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:s})}}},e._captionsOrSubtitlesFromCharacteristics=function(t){if(t.attrs.CHARACTERISTICS){var e=/transcribes-spoken-dialog/gi.test(t.attrs.CHARACTERISTICS),r=/describes-music-and-sound/gi.test(t.attrs.CHARACTERISTICS);if(e&&r)return"captions"}return"subtitles"},e.onManifestLoaded=function(t,e){var r=this;this.config.enableCEA708Captions&&e.captions&&e.captions.forEach((function(t){var e=/(?:CC|SERVICE)([1-4])/.exec(t.instreamId);if(e){var i="textTrack"+e[1],n=r.captionsProperties[i];n&&(n.label=t.name,t.lang&&(n.languageCode=t.lang),n.media=t)}}))},e.closedCaptionsForLevel=function(t){var e=this.hls.levels[t.level];return null==e?void 0:e.attrs["CLOSED-CAPTIONS"]},e.onFragLoading=function(t,e){var r=this.cea608Parser1,i=this.cea608Parser2,n=this.lastSn,a=this.lastPartIndex;if(this.enabled&&r&&i&&e.frag.type===fe){var s,o,l=e.frag.sn,u=null!=(s=null==e||null==(o=e.part)?void 0:o.index)?s:-1;l===n+1||l===n&&u===a+1||(r.reset(),i.reset()),this.lastSn=l,this.lastPartIndex=u}},e.onFragLoaded=function(t,e){var r=e.frag,i=e.payload,n=this.initPTS,a=this.unparsedVttFrags;if(r.type===ve)if(i.byteLength){if(!n[r.cc])return a.push(e),void(n.length&&this.hls.trigger(E.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:r,error:new Error("Missing initial subtitle PTS")}));var s=r.decryptdata,o="stats"in e;if(null==s||!s.encrypted||o){var l=this.tracks[r.level],u=this.vttCCs;u[r.cc]||(u[r.cc]={start:r.start,prevCC:this.prevCC,new:!0},this.prevCC=r.cc),l&&l.textCodec===ha?this._parseIMSC1(r,i):this._parseVTTs(r,i,u)}}else this.hls.trigger(E.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:r,error:new Error("Empty subtitle payload")})},e._parseIMSC1=function(t,e){var r=this,i=this.hls;ga(e,this.initPTS[t.cc],(function(e){r._appendCues(e,t.level),i.trigger(E.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:t})}),(function(e){I.log("Failed to parse IMSC1: "+e),i.trigger(E.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:t,error:e})}))},e._parseVTTs=function(t,e,r){var i,n=this,a=this.hls;ua(null!=(i=t.initSegment)&&i.data?Pt(t.initSegment.data,new Uint8Array(e)):e,this.initPTS[t.cc],r,t.cc,t.start,(function(e){n._appendCues(e,t.level),a.trigger(E.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:t})}),(function(r){n._fallbackToIMSC1(t,e),I.log("Failed to parse VTT cue: "+r),a.trigger(E.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:t,error:r})}))},e._fallbackToIMSC1=function(t,e){var r=this,i=this.tracks[t.level];i.textCodec||ga(e,this.initPTS[t.cc],(function(){i.textCodec=ha,r._parseIMSC1(t,e)}),(function(){i.textCodec="wvtt"}))},e._appendCues=function(t,e){var r=this.hls;if(this.config.renderTextTracksNatively){var i=this.textTracks[e];if(!i||"disabled"===i.mode)return;t.forEach((function(t){return Ee(i,t)}))}else{var n=this.tracks[e];if(!n)return;var a=n.default?"default":"subtitles"+e;r.trigger(E.CUES_PARSED,{type:"subtitles",cues:t,track:a})}},e.onFragDecrypted=function(t,e){var r=e.frag;if(r.type===ve){if(!this.initPTS[r.cc])return void this.unparsedVttFrags.push(e);this.onFragLoaded(E.FRAG_LOADED,e)}},e.onSubtitleTracksCleared=function(){this.tracks=[],this.captionsTracks={}},e.onFragParsingUserdata=function(t,e){var r=this.cea608Parser1,i=this.cea608Parser2;if(this.enabled&&r&&i){var n=e.frag,a=e.samples;if(n.type!==fe||"NONE"!==this.closedCaptionsForLevel(n))for(var s=0;s<a.length;s++){var o=a[s].bytes;if(o){var l=this.extractCea608Data(o);r.addData(a[s].pts,l[0]),i.addData(a[s].pts,l[1])}}}},e.onBufferFlushing=function(t,e){var r=e.startOffset,i=e.endOffset,n=e.endOffsetSubtitles,a=e.type,s=this.media;if(s&&!(s.currentTime<i)){if(!a||"video"===a){var o=this.captionsTracks;Object.keys(o).forEach((function(t){return Le(o[t],r,i)}))}if(this.config.renderTextTracksNatively&&0===r&&void 0!==n){var l=this.textTracks;Object.keys(l).forEach((function(t){return Le(l[t],r,n)}))}}},e.extractCea608Data=function(t){for(var e=[[],[]],r=31&t[0],i=2,n=0;n<r;n++){var a=t[i++],s=127&t[i++],o=127&t[i++];if((0!==s||0!==o)&&0!=(4&a)){var l=3&a;0!==l&&1!==l||(e[l].push(s),e[l].push(o))}}return e},t}();function La(t,e){return!!t&&t.label===e.name&&!(t.textTrack1||t.textTrack2)}var Ra=function(){function t(t){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=t,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}var e=t.prototype;return e.setStreamController=function(t){this.streamController=t},e.destroy=function(){this.unregisterListener(),this.hls.config.capLevelToPlayerSize&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null},e.registerListeners=function(){var t=this.hls;t.on(E.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.on(E.MEDIA_ATTACHING,this.onMediaAttaching,this),t.on(E.MANIFEST_PARSED,this.onManifestParsed,this),t.on(E.BUFFER_CODECS,this.onBufferCodecs,this),t.on(E.MEDIA_DETACHING,this.onMediaDetaching,this)},e.unregisterListener=function(){var t=this.hls;t.off(E.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.off(E.MEDIA_ATTACHING,this.onMediaAttaching,this),t.off(E.MANIFEST_PARSED,this.onManifestParsed,this),t.off(E.BUFFER_CODECS,this.onBufferCodecs,this),t.off(E.MEDIA_DETACHING,this.onMediaDetaching,this)},e.onFpsDropLevelCapping=function(t,e){var r=this.hls.levels[e.droppedLevel];this.isLevelAllowed(r)&&this.restrictedLevels.push({bitrate:r.bitrate,height:r.height,width:r.width})},e.onMediaAttaching=function(t,e){this.media=e.media instanceof HTMLVideoElement?e.media:null,this.clientRect=null},e.onManifestParsed=function(t,e){var r=this.hls;this.restrictedLevels=[],this.firstLevel=e.firstLevel,r.config.capLevelToPlayerSize&&e.video&&this.startCapping()},e.onBufferCodecs=function(t,e){this.hls.config.capLevelToPlayerSize&&e.video&&this.startCapping()},e.onMediaDetaching=function(){this.stopCapping()},e.detectPlayerSize=function(){if(this.media&&this.mediaHeight>0&&this.mediaWidth>0){var t=this.hls.levels;if(t.length){var e=this.hls;e.autoLevelCapping=this.getMaxLevel(t.length-1),e.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=e.autoLevelCapping}}},e.getMaxLevel=function(e){var r=this,i=this.hls.levels;if(!i.length)return-1;var n=i.filter((function(t,i){return r.isLevelAllowed(t)&&i<=e}));return this.clientRect=null,t.getMaxLevelByMediaSize(n,this.mediaWidth,this.mediaHeight)},e.startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},e.stopCapping=function(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)},e.getDimensions=function(){if(this.clientRect)return this.clientRect;var t=this.media,e={width:0,height:0};if(t){var r=t.getBoundingClientRect();e.width=r.width,e.height=r.height,e.width||e.height||(e.width=r.right-r.left||t.width||0,e.height=r.bottom-r.top||t.height||0)}return this.clientRect=e,e},e.isLevelAllowed=function(t){return!this.restrictedLevels.some((function(e){return t.bitrate===e.bitrate&&t.width===e.width&&t.height===e.height}))},t.getMaxLevelByMediaSize=function(t,e,r){if(null==t||!t.length)return-1;for(var i,n,a=t.length-1,s=0;s<t.length;s+=1){var o=t[s];if((o.width>=e||o.height>=r)&&(i=o,!(n=t[s+1])||i.width!==n.width||i.height!==n.height)){a=s;break}}return a},a(t,[{key:"mediaWidth",get:function(){return this.getDimensions().width*this.contentScaleFactor}},{key:"mediaHeight",get:function(){return this.getDimensions().height*this.contentScaleFactor}},{key:"contentScaleFactor",get:function(){var t=1;if(!this.hls.config.ignoreDevicePixelRatio)try{t=self.devicePixelRatio}catch(t){}return t}}]),t}(),Aa=function(){function t(t){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=t,this.registerListeners()}var e=t.prototype;return e.setStreamController=function(t){this.streamController=t},e.registerListeners=function(){this.hls.on(E.MEDIA_ATTACHING,this.onMediaAttaching,this)},e.unregisterListeners=function(){this.hls.off(E.MEDIA_ATTACHING,this.onMediaAttaching,this)},e.destroy=function(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null},e.onMediaAttaching=function(t,e){var r=this.hls.config;if(r.capLevelOnFPSDrop){var i=e.media instanceof self.HTMLVideoElement?e.media:null;this.media=i,i&&"function"==typeof i.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),r.fpsDroppedMonitoringPeriod)}},e.checkFPS=function(t,e,r){var i=performance.now();if(e){if(this.lastTime){var n=i-this.lastTime,a=r-this.lastDroppedFrames,s=e-this.lastDecodedFrames,o=1e3*a/n,l=this.hls;if(l.trigger(E.FPS_DROP,{currentDropped:a,currentDecoded:s,totalDroppedFrames:r}),o>0&&a>l.config.fpsDroppedMonitoringThreshold*s){var u=l.currentLevel;I.warn("drop FPS ratio greater than max allowed value for currentLevel: "+u),u>0&&(-1===l.autoLevelCapping||l.autoLevelCapping>=u)&&(u-=1,l.trigger(E.FPS_DROP_LEVEL_CAPPING,{level:u,droppedLevel:l.currentLevel}),l.autoLevelCapping=u,this.streamController.nextLevelSwitch())}}this.lastTime=i,this.lastDroppedFrames=r,this.lastDecodedFrames=e}},e.checkFPSInterval=function(){var t=this.media;if(t)if(this.isVideoPlaybackQualityAvailable){var e=t.getVideoPlaybackQuality();this.checkFPS(t,e.totalVideoFrames,e.droppedVideoFrames)}else this.checkFPS(t,t.webkitDecodedFrameCount,t.webkitDroppedFrameCount)},t}(),ka="[eme]",ba=function(){function t(e){this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.setMediaKeysQueue=t.CDMCleanupPromise?[t.CDMCleanupPromise]:[],this.onMediaEncrypted=this._onMediaEncrypted.bind(this),this.onWaitingForKey=this._onWaitingForKey.bind(this),this.debug=I.debug.bind(I,ka),this.log=I.log.bind(I,ka),this.warn=I.warn.bind(I,ka),this.error=I.error.bind(I,ka),this.hls=e,this.config=e.config,this.registerListeners()}var e=t.prototype;return e.destroy=function(){this.unregisterListeners(),this.onMediaDetached();var t=this.config;t.requestMediaKeySystemAccessFunc=null,t.licenseXhrSetup=t.licenseResponseCallback=void 0,t.drmSystems=t.drmSystemOptions={},this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null,this.config=null},e.registerListeners=function(){this.hls.on(E.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(E.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(E.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(E.MANIFEST_LOADED,this.onManifestLoaded,this)},e.unregisterListeners=function(){this.hls.off(E.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(E.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(E.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(E.MANIFEST_LOADED,this.onManifestLoaded,this)},e.getLicenseServerUrl=function(t){var e=this.config,r=e.drmSystems,i=e.widevineLicenseUrl,n=r[t];if(n)return n.licenseUrl;if(t===W.WIDEVINE&&i)return i;throw new Error('no license server URL configured for key-system "'+t+'"')},e.getServerCertificateUrl=function(t){var e=this.config.drmSystems[t];if(e)return e.serverCertificateUrl;this.log('No Server Certificate in config.drmSystems["'+t+'"]')},e.attemptKeySystemAccess=function(t){var e=this,r=this.hls.levels,i=function(t,e,r){return!!t&&r.indexOf(t)===e},n=r.map((function(t){return t.audioCodec})).filter(i),a=r.map((function(t){return t.videoCodec})).filter(i);return n.length+a.length===0&&a.push("avc1.42e01e"),new Promise((function(r,i){!function t(s){var o=s.shift();e.getMediaKeysPromise(o,n,a).then((function(t){return r({keySystem:o,mediaKeys:t})})).catch((function(e){s.length?t(s):i(e instanceof Da?e:new Da({type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_NO_ACCESS,error:e,fatal:!0},e.message))}))}(t)}))},e.requestMediaKeySystemAccess=function(t,e){var r=this.config.requestMediaKeySystemAccessFunc;if("function"!=typeof r){var i="Configured requestMediaKeySystemAccess is not a function "+r;return null===tt&&"http:"===self.location.protocol&&(i="navigator.requestMediaKeySystemAccess is not available over insecure protocol "+location.protocol),Promise.reject(new Error(i))}return r(t,e)},e.getMediaKeysPromise=function(t,e,r){var i=this,n=function(t,e,r,i){var n;switch(t){case W.FAIRPLAY:n=["cenc","sinf"];break;case W.WIDEVINE:case W.PLAYREADY:n=["cenc"];break;case W.CLEARKEY:n=["cenc","keyids"];break;default:throw new Error("Unknown key-system: "+t)}return function(t,e,r,i){return[{initDataTypes:t,persistentState:i.persistentState||"not-allowed",distinctiveIdentifier:i.distinctiveIdentifier||"not-allowed",sessionTypes:i.sessionTypes||[i.sessionType||"temporary"],audioCapabilities:e.map((function(t){return{contentType:'audio/mp4; codecs="'+t+'"',robustness:i.audioRobustness||"",encryptionScheme:i.audioEncryptionScheme||null}})),videoCapabilities:r.map((function(t){return{contentType:'video/mp4; codecs="'+t+'"',robustness:i.videoRobustness||"",encryptionScheme:i.videoEncryptionScheme||null}}))}]}(n,e,r,i)}(t,e,r,this.config.drmSystemOptions),a=this.keySystemAccessPromises[t],s=null==a?void 0:a.keySystemAccess;if(!s){this.log('Requesting encrypted media "'+t+'" key-system access with config: '+JSON.stringify(n)),s=this.requestMediaKeySystemAccess(t,n);var o=this.keySystemAccessPromises[t]={keySystemAccess:s};return s.catch((function(e){i.log('Failed to obtain access to key-system "'+t+'": '+e)})),s.then((function(e){i.log('Access for key-system "'+e.keySystem+'" obtained');var r=i.fetchServerCertificate(t);return i.log('Create media-keys for "'+t+'"'),o.mediaKeys=e.createMediaKeys().then((function(e){return i.log('Media-keys created for "'+t+'"'),r.then((function(r){return r?i.setMediaKeysServerCertificate(e,t,r):e}))})),o.mediaKeys.catch((function(e){i.error('Failed to create media-keys for "'+t+'"}: '+e)})),o.mediaKeys}))}return s.then((function(){return a.mediaKeys}))},e.createMediaKeySessionContext=function(t){var e=t.decryptdata,r=t.keySystem,i=t.mediaKeys;this.log('Creating key-system session "'+r+'" keyId: '+yt(e.keyId||[]));var n=i.createSession(),a={decryptdata:e,keySystem:r,mediaKeys:i,mediaKeysSession:n,keyStatus:"status-pending"};return this.mediaKeySessions.push(a),a},e.renewKeySession=function(t){var e=t.decryptdata;if(e.pssh){var r=this.createMediaKeySessionContext(t),i=this.getKeyIdString(e);this.keyIdToKeySessionPromise[i]=this.generateRequestWithPreferredKeySession(r,"cenc",e.pssh,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(t)},e.getKeyIdString=function(t){if(!t)throw new Error("Could not read keyId of undefined decryptdata");if(null===t.keyId)throw new Error("keyId is null");return yt(t.keyId)},e.updateKeySession=function(t,e){var r,i=t.mediaKeysSession;return this.log('Updating key-session "'+i.sessionId+'" for keyID '+yt((null==(r=t.decryptdata)?void 0:r.keyId)||[])+"\n } (data length: "+(e?e.byteLength:e)+")"),i.update(e)},e.selectKeySystemFormat=function(t){var e=Object.keys(t.levelkeys||{});return this.keyFormatPromise||(this.log("Selecting key-system from fragment (sn: "+t.sn+" "+t.type+": "+t.level+") key formats "+e.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(e)),this.keyFormatPromise},e.getKeyFormatPromise=function(t){var e=this;return new Promise((function(r,i){var n=Z(e.config),a=t.map(Q).filter((function(t){return!!t&&-1!==n.indexOf(t)}));return e.getKeySystemSelectionPromise(a).then((function(t){var e=t.keySystem,n=J(e);n?r(n):i(new Error('Unable to find format for key-system "'+e+'"'))})).catch(i)}))},e.loadKey=function(t){var e=this,r=t.keyInfo.decryptdata,i=this.getKeyIdString(r),n="(keyId: "+i+' format: "'+r.keyFormat+'" method: '+r.method+" uri: "+r.uri+")";this.log("Starting session for key "+n);var a=this.keyIdToKeySessionPromise[i];return a||(a=this.keyIdToKeySessionPromise[i]=this.getKeySystemForKeyPromise(r).then((function(i){var a=i.keySystem,s=i.mediaKeys;return e.throwIfDestroyed(),e.log("Handle encrypted media sn: "+t.frag.sn+" "+t.frag.type+": "+t.frag.level+" using key "+n),e.attemptSetMediaKeys(a,s).then((function(){e.throwIfDestroyed();var t=e.createMediaKeySessionContext({keySystem:a,mediaKeys:s,decryptdata:r});return e.generateRequestWithPreferredKeySession(t,"cenc",r.pssh,"playlist-key")}))}))).catch((function(t){return e.handleError(t)})),a},e.throwIfDestroyed=function(t){if(!this.hls)throw new Error("invalid state")},e.handleError=function(t){this.hls&&(this.error(t.message),t instanceof Da?this.hls.trigger(E.ERROR,t.data):this.hls.trigger(E.ERROR,{type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_NO_KEYS,error:t,fatal:!0}))},e.getKeySystemForKeyPromise=function(t){var e=this.getKeyIdString(t),r=this.keyIdToKeySessionPromise[e];if(!r){var i=Q(t.keyFormat),n=i?[i]:Z(this.config);return this.attemptKeySystemAccess(n)}return r},e.getKeySystemSelectionPromise=function(t){if(t.length||(t=Z(this.config)),0===t.length)throw new Da({type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},"Missing key-system license configuration options "+JSON.stringify({drmSystems:this.config.drmSystems}));return this.attemptKeySystemAccess(t)},e._onMediaEncrypted=function(t){var e=this,r=t.initDataType,i=t.initData;if(this.debug('"'+t.type+'" event: init data type: "'+r+'"'),null!==i){var n,a;if("sinf"===r&&this.config.drmSystems[W.FAIRPLAY]){var s=Lt(new Uint8Array(i));try{var o=H(JSON.parse(s).sinf),l=Ct(new Uint8Array(o));if(!l)return;n=l.subarray(8,24),a=W.FAIRPLAY}catch(t){return void this.warn('Failed to parse sinf "encrypted" event message initData')}}else{var u=function(t){if(!(t instanceof ArrayBuffer)||t.byteLength<32)return null;var e={version:0,systemId:"",kids:null,data:null},r=new DataView(t),i=r.getUint32(0);if(t.byteLength!==i&&i>44)return null;if(1886614376!==r.getUint32(4))return null;if(e.version=r.getUint32(8)>>>24,e.version>1)return null;e.systemId=yt(new Uint8Array(t,12,16));var n=r.getUint32(28);if(0===e.version){if(i-32<n)return null;e.data=new Uint8Array(t,32,n)}else if(1===e.version){e.kids=[];for(var a=0;a<n;a++)e.kids.push(new Uint8Array(t,32+16*a,16))}return e}(i);if(null===u)return;0===u.version&&u.systemId===$&&u.data&&(n=u.data.subarray(8,24)),a=function(t){if(t===$)return W.WIDEVINE}(u.systemId)}if(a&&n){for(var h=yt(n),d=this.keyIdToKeySessionPromise,c=this.mediaKeySessions,f=d[h],g=function(){var t=c[v],a=t.decryptdata;if(a.pssh||!a.keyId)return"continue";var s=yt(a.keyId);return h===s||-1!==a.uri.replace(/-/g,"").indexOf(h)?(f=d[s],delete d[s],a.pssh=new Uint8Array(i),a.keyId=n,f=d[h]=f.then((function(){return e.generateRequestWithPreferredKeySession(t,r,i,"encrypted-event-key-match")})),"break"):void 0},v=0;v<c.length;v++){var m=g();if("continue"!==m&&"break"===m)break}f||(f=d[h]=this.getKeySystemSelectionPromise([a]).then((function(t){var a,s=t.keySystem,o=t.mediaKeys;e.throwIfDestroyed();var l=new Bt("ISO-23001-7",h,null!=(a=J(s))?a:"");return l.pssh=new Uint8Array(i),l.keyId=n,e.attemptSetMediaKeys(s,o).then((function(){e.throwIfDestroyed();var t=e.createMediaKeySessionContext({decryptdata:l,keySystem:s,mediaKeys:o});return e.generateRequestWithPreferredKeySession(t,r,i,"encrypted-event-no-match")}))}))),f.catch((function(t){return e.handleError(t)}))}}},e._onWaitingForKey=function(t){this.log('"'+t.type+'" event')},e.attemptSetMediaKeys=function(t,e){var r=this,i=this.setMediaKeysQueue.slice();this.log('Setting media-keys for "'+t+'"');var n=Promise.all(i).then((function(){if(!r.media)throw new Error("Attempted to set mediaKeys without media element attached");return r.media.setMediaKeys(e)}));return this.setMediaKeysQueue.push(n),n.then((function(){r.log('Media-keys set for "'+t+'"'),i.push(n),r.setMediaKeysQueue=r.setMediaKeysQueue.filter((function(t){return-1===i.indexOf(t)}))}))},e.generateRequestWithPreferredKeySession=function(t,e,r,i){var n,a,s=this,o=null==(n=this.config.drmSystems)||null==(a=n[t.keySystem])?void 0:a.generateRequest;if(o)try{var l=o.call(this.hls,e,r,t);if(!l)throw new Error("Invalid response from configured generateRequest filter");e=l.initDataType,r=t.decryptdata.pssh=l.initData?new Uint8Array(l.initData):null}catch(t){var u;if(this.warn(t.message),null!=(u=this.hls)&&u.config.debug)throw t}if(null===r)return this.log('Skipping key-session request for "'+i+'" (no initData)'),Promise.resolve(t);var h=this.getKeyIdString(t.decryptdata);this.log('Generating key-session request for "'+i+'": '+h+" (init data type: "+e+" length: "+(r?r.byteLength:null)+")");var d=new an;t.mediaKeysSession.onmessage=function(e){var r=t.mediaKeysSession;if(r){var i=e.messageType,n=e.message;s.log('"'+i+'" message event for session "'+r.sessionId+'" message size: '+n.byteLength),"license-request"===i||"license-renewal"===i?s.renewLicense(t,n).catch((function(t){s.handleError(t),d.emit("error",t)})):"license-release"===i?t.keySystem===W.FAIRPLAY&&(s.updateKeySession(t,Y("acknowledged")),s.removeSession(t)):s.warn('unhandled media key message type "'+i+'"')}else d.emit("error",new Error("invalid state"))},t.mediaKeysSession.onkeystatuseschange=function(e){if(t.mediaKeysSession){s.onKeyStatusChange(t);var r=t.keyStatus;d.emit("keyStatus",r),"expired"===r&&(s.warn(t.keySystem+" expired for key "+h),s.renewKeySession(t))}else d.emit("error",new Error("invalid state"))};var c=new Promise((function(t,e){d.on("error",e),d.on("keyStatus",(function(r){r.startsWith("usable")?t():"output-restricted"===r?e(new Da({type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):"internal-error"===r?e(new Da({type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},'key status changed to "'+r+'"')):"expired"===r?e(new Error("key expired while generating request")):s.warn('unhandled key status change "'+r+'"')}))}));return t.mediaKeysSession.generateRequest(e,r).then((function(){var e;s.log('Request generated for key-session "'+(null==(e=t.mediaKeysSession)?void 0:e.sessionId)+'" keyId: '+h)})).catch((function(t){throw new Da({type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_NO_SESSION,error:t,fatal:!1},"Error generating key-session request: "+t)})).then((function(){return c})).catch((function(e){throw d.removeAllListeners(),s.removeSession(t),e})).then((function(){return d.removeAllListeners(),t}))},e.onKeyStatusChange=function(t){var e=this;t.mediaKeysSession.keyStatuses.forEach((function(r,i){e.log('key status change "'+r+'" for keyStatuses keyId: '+yt("buffer"in i?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i))+" session keyId: "+yt(new Uint8Array(t.decryptdata.keyId||[]))+" uri: "+t.decryptdata.uri),t.keyStatus=r}))},e.fetchServerCertificate=function(t){var e=this.config,r=new(0,e.loader)(e),n=this.getServerCertificateUrl(t);return n?(this.log('Fetching serverCertificate for "'+t+'"'),new Promise((function(a,s){var o={responseType:"arraybuffer",url:n},l=e.certLoadPolicy.default,u={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},h={onSuccess:function(t,e,r,i){a(t.data)},onError:function(e,r,a,l){s(new Da({type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:a,response:i({url:o.url,data:void 0},e)},'"'+t+'" certificate request failed ('+n+"). Status: "+e.code+" ("+e.text+")"))},onTimeout:function(e,r,i){s(new Da({type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:i,response:{url:o.url,data:void 0}},'"'+t+'" certificate request timed out ('+n+")"))},onAbort:function(t,e,r){s(new Error("aborted"))}};r.load(o,u,h)}))):Promise.resolve()},e.setMediaKeysServerCertificate=function(t,e,r){var i=this;return new Promise((function(n,a){t.setServerCertificate(r).then((function(a){i.log("setServerCertificate "+(a?"success":"not supported by CDM")+" ("+(null==r?void 0:r.byteLength)+') on "'+e+'"'),n(t)})).catch((function(t){a(new Da({type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:t,fatal:!0},t.message))}))}))},e.renewLicense=function(t,e){var r=this;return this.requestLicense(t,new Uint8Array(e)).then((function(e){return r.updateKeySession(t,new Uint8Array(e)).catch((function(t){throw new Da({type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:t,fatal:!0},t.message)}))}))},e.setupLicenseXHR=function(t,e,r,i){var n=this,a=this.config.licenseXhrSetup;return a?Promise.resolve().then((function(){if(!r.decryptdata)throw new Error("Key removed");return a.call(n.hls,t,e,r,i)})).catch((function(s){if(!r.decryptdata)throw s;return t.open("POST",e,!0),a.call(n.hls,t,e,r,i)})).then((function(r){return t.readyState||t.open("POST",e,!0),{xhr:t,licenseChallenge:r||i}})):(t.open("POST",e,!0),Promise.resolve({xhr:t,licenseChallenge:i}))},e.requestLicense=function(t,e){var r=this,i=this.config.keyLoadPolicy.default;return new Promise((function(n,a){var s=r.getLicenseServerUrl(t.keySystem);r.log("Sending license request to URL: "+s);var o=new XMLHttpRequest;o.responseType="arraybuffer",o.onreadystatechange=function(){if(!r.hls||!t.mediaKeysSession)return a(new Error("invalid state"));if(4===o.readyState)if(200===o.status){r._requestLicenseFailureCount=0;var l=o.response;r.log("License received "+(l instanceof ArrayBuffer?l.byteLength:l));var u=r.config.licenseResponseCallback;if(u)try{l=u.call(r.hls,o,s,t)}catch(t){r.error(t)}n(l)}else{var h=i.errorRetry,d=h?h.maxNumRetry:0;if(r._requestLicenseFailureCount++,r._requestLicenseFailureCount>d||o.status>=400&&o.status<500)a(new Da({type:S.KEY_SYSTEM_ERROR,details:L.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:o,response:{url:s,data:void 0,code:o.status,text:o.statusText}},"License Request XHR failed ("+s+"). Status: "+o.status+" ("+o.statusText+")"));else{var c=d-r._requestLicenseFailureCount+1;r.warn("Retrying license request, "+c+" attempts left"),r.requestLicense(t,e).then(n,a)}}},t.licenseXhr&&t.licenseXhr.readyState!==XMLHttpRequest.DONE&&t.licenseXhr.abort(),t.licenseXhr=o,r.setupLicenseXHR(o,s,t,e).then((function(t){var e=t.xhr,r=t.licenseChallenge;e.send(r)}))}))},e.onMediaAttached=function(t,e){if(this.config.emeEnabled){var r=e.media;this.media=r,r.addEventListener("encrypted",this.onMediaEncrypted),r.addEventListener("waitingforkey",this.onWaitingForKey)}},e.onMediaDetached=function(){var e=this,r=this.media,i=this.mediaKeySessions;r&&(r.removeEventListener("encrypted",this.onMediaEncrypted),r.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},Bt.clearKeyUriToKeyIdMap();var n=i.length;t.CDMCleanupPromise=Promise.all(i.map((function(t){return e.removeSession(t)})).concat(null==r?void 0:r.setMediaKeys(null).catch((function(t){e.log("Could not clear media keys: "+t+". media.src: "+(null==r?void 0:r.src))})))).then((function(){n&&(e.log("finished closing key sessions and clearing media keys"),i.length=0)})).catch((function(t){e.log("Could not close sessions and clear media keys: "+t+". media.src: "+(null==r?void 0:r.src))}))},e.onManifestLoading=function(){this.keyFormatPromise=null},e.onManifestLoaded=function(t,e){var r=e.sessionKeys;if(r&&this.config.emeEnabled&&!this.keyFormatPromise){var i=r.reduce((function(t,e){return-1===t.indexOf(e.keyFormat)&&t.push(e.keyFormat),t}),[]);this.log("Selecting key-system from session-keys "+i.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(i)}},e.removeSession=function(t){var e=this,r=t.mediaKeysSession,i=t.licenseXhr;if(r){this.log("Remove licenses and keys and close session "+r.sessionId),r.onmessage=null,r.onkeystatuseschange=null,i&&i.readyState!==XMLHttpRequest.DONE&&i.abort(),t.mediaKeysSession=t.decryptdata=t.licenseXhr=void 0;var n=this.mediaKeySessions.indexOf(t);return n>-1&&this.mediaKeySessions.splice(n,1),r.remove().catch((function(t){e.log("Could not remove session: "+t)})).then((function(){return r.close()})).catch((function(t){e.log("Could not close session: "+t)}))}},t}();ba.CDMCleanupPromise=void 0;var Da=function(t){function e(e,r){var i;return(i=t.call(this,r)||this).data=void 0,e.error||(e.error=new Error(r)),i.data=e,e.err=e.error,i}return l(e,t),e}(c(Error)),Ia="m",wa="a",Ca="v",_a="av",Pa="i",xa="tt",Fa=function(){function t(e){var r=this;this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=function(){r.initialized&&(r.starved=!0),r.buffering=!0},this.onPlaying=function(){r.initialized||(r.initialized=!0),r.buffering=!1},this.applyPlaylistData=function(t){try{r.apply(t,{ot:Ia,su:!r.initialized})}catch(t){I.warn("Could not generate manifest CMCD data.",t)}},this.applyFragmentData=function(t){try{var e=t.frag,i=r.hls.levels[e.level],n=r.getObjectType(e),a={d:1e3*e.duration,ot:n};n!==Ca&&n!==wa&&n!=_a||(a.br=i.bitrate/1e3,a.tb=r.getTopBandwidth(n)/1e3,a.bl=r.getBufferLength(n)),r.apply(t,a)}catch(t){I.warn("Could not generate segment CMCD data.",t)}},this.hls=e;var i=this.config=e.config,n=i.cmcd;null!=n&&(i.pLoader=this.createPlaylistLoader(),i.fLoader=this.createFragmentLoader(),this.sid=n.sessionId||t.uuid(),this.cid=n.contentId,this.useHeaders=!0===n.useHeaders,this.registerListeners())}var e=t.prototype;return e.registerListeners=function(){var t=this.hls;t.on(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(E.MEDIA_DETACHED,this.onMediaDetached,this),t.on(E.BUFFER_CREATED,this.onBufferCreated,this)},e.unregisterListeners=function(){var t=this.hls;t.off(E.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(E.MEDIA_DETACHED,this.onMediaDetached,this),t.off(E.BUFFER_CREATED,this.onBufferCreated,this)},e.destroy=function(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null},e.onMediaAttached=function(t,e){this.media=e.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)},e.onMediaDetached=function(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)},e.onBufferCreated=function(t,e){var r,i;this.audioBuffer=null==(r=e.tracks.audio)?void 0:r.buffer,this.videoBuffer=null==(i=e.tracks.video)?void 0:i.buffer},e.createData=function(){var t;return{v:1,sf:"h",sid:this.sid,cid:this.cid,pr:null==(t=this.media)?void 0:t.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}},e.apply=function(e,r){void 0===r&&(r={}),o(r,this.createData());var i=r.ot===Pa||r.ot===Ca||r.ot===_a;if(this.starved&&i&&(r.bs=!0,r.su=!0,this.starved=!1),null==r.su&&(r.su=this.buffering),this.useHeaders){var n=t.toHeaders(r);if(!Object.keys(n).length)return;e.headers||(e.headers={}),o(e.headers,n)}else{var a=t.toQuery(r);if(!a)return;e.url=t.appendQueryToUri(e.url,a)}},e.getObjectType=function(t){var e=t.type;return"subtitle"===e?xa:"initSegment"===t.sn?Pa:"audio"===e?wa:"main"===e?this.hls.audioTracks.length?Ca:_a:void 0},e.getTopBandwidth=function(t){var e,r=0,i=this.hls;if(t===wa)e=i.audioTracks;else{var n=i.maxAutoLevel,a=n>-1?n+1:i.levels.length;e=i.levels.slice(0,a)}for(var s,o=g(e);!(s=o()).done;){var l=s.value;l.bitrate>r&&(r=l.bitrate)}return r>0?r:NaN},e.getBufferLength=function(t){var e=this.hls.media,r=t===wa?this.audioBuffer:this.videoBuffer;return r&&e?1e3*Dr.bufferInfo(r,e.currentTime,this.config.maxBufferHole).len:NaN},e.createPlaylistLoader=function(){var t=this.config.pLoader,e=this.applyPlaylistData,r=t||this.config.loader;return function(){function t(t){this.loader=void 0,this.loader=new r(t)}var i=t.prototype;return i.destroy=function(){this.loader.destroy()},i.abort=function(){this.loader.abort()},i.load=function(t,r,i){e(t),this.loader.load(t,r,i)},a(t,[{key:"stats",get:function(){return this.loader.stats}},{key:"context",get:function(){return this.loader.context}}]),t}()},e.createFragmentLoader=function(){var t=this.config.fLoader,e=this.applyFragmentData,r=t||this.config.loader;return function(){function t(t){this.loader=void 0,this.loader=new r(t)}var i=t.prototype;return i.destroy=function(){this.loader.destroy()},i.abort=function(){this.loader.abort()},i.load=function(t,r,i){e(t),this.loader.load(t,r,i)},a(t,[{key:"stats",get:function(){return this.loader.stats}},{key:"context",get:function(){return this.loader.context}}]),t}()},t.uuid=function(){var t=URL.createObjectURL(new Blob),e=t.toString();return URL.revokeObjectURL(t),e.slice(e.lastIndexOf("/")+1)},t.serialize=function(t){for(var e,r=[],i=function(t){return!Number.isNaN(t)&&null!=t&&""!==t&&!1!==t},n=function(t){return Math.round(t)},a=function(t){return 100*n(t/100)},s={br:n,d:n,bl:a,dl:a,mtp:a,nor:function(t){return encodeURIComponent(t)},rtp:a,tb:n},o=g(Object.keys(t||{}).sort());!(e=o()).done;){var l=e.value,u=t[l];if(i(u)&&!("v"===l&&1===u||"pr"==l&&1===u)){var h=s[l];h&&(u=h(u));var d=typeof u,c=void 0;c="ot"===l||"sf"===l||"st"===l?l+"="+u:"boolean"===d?l:"number"===d?l+"="+u:l+"="+JSON.stringify(u),r.push(c)}}return r.join(",")},t.toHeaders=function(e){for(var r={},i=["Object","Request","Session","Status"],n=[{},{},{},{}],a={br:0,d:0,ot:0,tb:0,bl:1,dl:1,mtp:1,nor:1,nrr:1,su:1,cid:2,pr:2,sf:2,sid:2,st:2,v:2,bs:3,rtp:3},s=0,o=Object.keys(e);s<o.length;s++){var l=o[s];n[null!=a[l]?a[l]:1][l]=e[l]}for(var u=0;u<n.length;u++){var h=t.serialize(n[u]);h&&(r["CMCD-"+i[u]]=h)}return r},t.toQuery=function(e){return"CMCD="+encodeURIComponent(t.serialize(e))},t.appendQueryToUri=function(t,e){if(!e)return t;var r=t.includes("?")?"&":"?";return""+t+r+e},t}(),Oa=function(){function t(t){this.hls=void 0,this.log=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this.pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=t,this.log=I.log.bind(I,"[content-steering]:"),this.registerListeners()}var e=t.prototype;return e.registerListeners=function(){var t=this.hls;t.on(E.MANIFEST_LOADING,this.onManifestLoading,this),t.on(E.MANIFEST_LOADED,this.onManifestLoaded,this),t.on(E.MANIFEST_PARSED,this.onManifestParsed,this),t.on(E.ERROR,this.onError,this)},e.unregisterListeners=function(){var t=this.hls;t&&(t.off(E.MANIFEST_LOADING,this.onManifestLoading,this),t.off(E.MANIFEST_LOADED,this.onManifestLoaded,this),t.off(E.MANIFEST_PARSED,this.onManifestParsed,this),t.off(E.ERROR,this.onError,this))},e.startLoad=function(){if(this.started=!0,self.clearTimeout(this.reloadTimer),this.enabled&&this.uri)if(this.updated){var t=Math.max(1e3*this.timeToLoad-(performance.now()-this.updated),0);this.scheduleRefresh(this.uri,t)}else this.loadSteeringManifest(this.uri)},e.stopLoad=function(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),self.clearTimeout(this.reloadTimer)},e.destroy=function(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null},e.removeLevel=function(t){var e=this.levels;e&&(this.levels=e.filter((function(e){return e!==t})))},e.onManifestLoading=function(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null},e.onManifestLoaded=function(t,e){var r=e.contentSteering;null!==r&&(this.pathwayId=r.pathwayId,this.uri=r.uri,this.started&&this.startLoad())},e.onManifestParsed=function(t,e){this.audioTracks=e.audioTracks,this.subtitleTracks=e.subtitleTracks},e.onError=function(t,e){var r=e.errorAction;if((null==r?void 0:r.action)===rr&&r.flags===ar){var i=this.pathwayPriority,n=this.pathwayId;this.penalizedPathways[n]||(this.penalizedPathways[n]=performance.now()),!i&&this.levels&&(i=this.levels.reduce((function(t,e){return-1===t.indexOf(e.pathwayId)&&t.push(e.pathwayId),t}),[])),i&&i.length>1&&(this.updatePathwayPriority(i),r.resolved=this.pathwayId!==n)}},e.filterParsedLevels=function(t){this.levels=t;var e=this.getLevelsForPathway(this.pathwayId);if(0===e.length){var r=t[0].pathwayId;this.log("No levels found in Pathway "+this.pathwayId+'. Setting initial Pathway to "'+r+'"'),e=this.getLevelsForPathway(r),this.pathwayId=r}return e.length!==t.length?(this.log("Found "+e.length+"/"+t.length+' levels in Pathway "'+this.pathwayId+'"'),e):t},e.getLevelsForPathway=function(t){return null===this.levels?[]:this.levels.filter((function(e){return t===e.pathwayId}))},e.updatePathwayPriority=function(t){var e;this.pathwayPriority=t;var r=this.penalizedPathways,i=performance.now();Object.keys(r).forEach((function(t){i-r[t]>3e5&&delete r[t]}));for(var n=0;n<t.length;n++){var a=t[n];if(!r[a]){if(a===this.pathwayId)return;var s=this.hls.nextLoadLevel,o=this.hls.levels[s];if((e=this.getLevelsForPathway(a)).length>0){this.log('Setting Pathway to "'+a+'"'),this.pathwayId=a,this.hls.trigger(E.LEVELS_UPDATED,{levels:e});var l=this.hls.levels[s];o&&l&&this.levels&&(l.attrs["STABLE-VARIANT-ID"]!==o.attrs["STABLE-VARIANT-ID"]&&l.bitrate!==o.bitrate&&this.log("Unstable Pathways change from bitrate "+o.bitrate+" to "+l.bitrate),this.hls.nextLoadLevel=s);break}}}},e.clonePathways=function(t){var e=this,r=this.levels;if(r){var i={},n={};t.forEach((function(t){var a=t.ID,s=t["BASE-ID"],l=t["URI-REPLACEMENT"];if(!r.some((function(t){return t.pathwayId===a}))){var u=e.getLevelsForPathway(s).map((function(t){var e=o({},t);e.details=void 0,e.url=Na(t.uri,t.attrs["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",l);var r=new _(t.attrs);r["PATHWAY-ID"]=a;var s=r.AUDIO&&r.AUDIO+"_clone_"+a,u=r.SUBTITLES&&r.SUBTITLES+"_clone_"+a;s&&(i[r.AUDIO]=s,r.AUDIO=s),u&&(n[r.SUBTITLES]=u,r.SUBTITLES=u),e.attrs=r;var h=new Me(e);return hr(h,"audio",s),hr(h,"text",u),h}));r.push.apply(r,u),Ma(e.audioTracks,i,l,a),Ma(e.subtitleTracks,n,l,a)}}))}},e.loadSteeringManifest=function(t){var e,r=this,i=this.hls.config,n=i.loader;this.loader&&this.loader.destroy(),this.loader=new n(i);try{e=new self.URL(t)}catch(e){return this.enabled=!1,void this.log("Failed to parse Steering Manifest URI: "+t)}if("data:"!==e.protocol){var a=0|(this.hls.bandwidthEstimate||i.abrEwmaDefaultEstimate);e.searchParams.set("_HLS_pathway",this.pathwayId),e.searchParams.set("_HLS_throughput",""+a)}var s={responseType:"json",url:e.href},o=i.steeringManifestLoadPolicy.default,l=o.errorRetry||o.timeoutRetry||{},u={loadPolicy:o,timeout:o.maxLoadTimeMs,maxRetry:l.maxNumRetry||0,retryDelay:l.retryDelayMs||0,maxRetryDelay:l.maxRetryDelayMs||0},h={onSuccess:function(t,i,n,a){r.log('Loaded steering manifest: "'+e+'"');var s=t.data;if(1===s.VERSION){r.updated=performance.now(),r.timeToLoad=s.TTL;var o=s["RELOAD-URI"],l=s["PATHWAY-CLONES"],u=s["PATHWAY-PRIORITY"];if(o)try{r.uri=new self.URL(o,e).href}catch(t){return r.enabled=!1,void r.log("Failed to parse Steering Manifest RELOAD-URI: "+o)}r.scheduleRefresh(r.uri||n.url),l&&r.clonePathways(l),u&&r.updatePathwayPriority(u)}else r.log("Steering VERSION "+s.VERSION+" not supported!")},onError:function(t,e,i,n){if(r.log("Error loading steering manifest: "+t.code+" "+t.text+" ("+e.url+")"),r.stopLoad(),410===t.code)return r.enabled=!1,void r.log("Steering manifest "+e.url+" no longer available");var a=1e3*r.timeToLoad;if(429!==t.code)r.scheduleRefresh(r.uri||e.url,a);else{var s=r.loader;if("function"==typeof(null==s?void 0:s.getResponseHeader)){var o=s.getResponseHeader("Retry-After");o&&(a=1e3*parseFloat(o))}r.log("Steering manifest "+e.url+" rate limited")}},onTimeout:function(t,e,i){r.log("Timeout loading steering manifest ("+e.url+")"),r.scheduleRefresh(r.uri||e.url)}};this.log("Requesting steering manifest: "+e),this.loader.load(s,u,h)},e.scheduleRefresh=function(t,e){var r=this;void 0===e&&(e=1e3*this.timeToLoad),self.clearTimeout(this.reloadTimer),this.reloadTimer=self.setTimeout((function(){r.loadSteeringManifest(t)}),e)},t}();function Ma(t,e,r,i){t&&Object.keys(e).forEach((function(n){var a=t.filter((function(t){return t.groupId===n})).map((function(t){var a=o({},t);return a.details=void 0,a.attrs=new _(a.attrs),a.url=a.attrs.URI=Na(t.url,t.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",r),a.groupId=a.attrs["GROUP-ID"]=e[n],a.attrs["PATHWAY-ID"]=i,a}));t.push.apply(t,a)}))}function Na(t,e,r,i){var n,a=i.HOST,s=i.PARAMS,o=i[r];e&&(n=null==o?void 0:o[e])&&(t=n);var l=new self.URL(t);return a&&!n&&(l.host=a),s&&Object.keys(s).sort().forEach((function(t){t&&l.searchParams.set(t,s[t])})),l.href}var Ua=/^age:\s*[\d.]+\s*$/im,Ba=function(){function t(t){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=void 0,this.loader=null,this.stats=void 0,this.xhrSetup=t&&t.xhrSetup||null,this.stats=new F,this.retryDelay=0}var e=t.prototype;return e.destroy=function(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null},e.abortInternal=function(){var t=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),t&&(t.onreadystatechange=null,t.onprogress=null,4!==t.readyState&&(this.stats.aborted=!0,t.abort()))},e.abort=function(){var t;this.abortInternal(),null!=(t=this.callbacks)&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)},e.load=function(t,e,r){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=t,this.config=e,this.callbacks=r,this.loadInternal()},e.loadInternal=function(){var t=this,e=this.config,r=this.context;if(e){var i=this.loader=new self.XMLHttpRequest,n=this.stats;n.loading.first=0,n.loaded=0;var a=this.xhrSetup;a?Promise.resolve().then((function(){if(!t.stats.aborted)return a(i,r.url)})).catch((function(t){return i.open("GET",r.url,!0),a(i,r.url)})).then((function(){t.stats.aborted||t.openAndSendXhr(i,r,e)})).catch((function(e){t.callbacks.onError({code:i.status,text:e.message},r,i,n)})):this.openAndSendXhr(i,r,e)}},e.openAndSendXhr=function(t,e,r){t.readyState||t.open("GET",e.url,!0);var i=this.context.headers,n=r.loadPolicy,a=n.maxTimeToFirstByteMs,s=n.maxLoadTimeMs;if(i)for(var o in i)t.setRequestHeader(o,i[o]);e.rangeEnd&&t.setRequestHeader("Range","bytes="+e.rangeStart+"-"+(e.rangeEnd-1)),t.onreadystatechange=this.readystatechange.bind(this),t.onprogress=this.loadprogress.bind(this),t.responseType=e.responseType,self.clearTimeout(this.requestTimeout),r.timeout=a&&T(a)?a:s,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),r.timeout),t.send()},e.readystatechange=function(){var t=this.context,e=this.loader,r=this.stats;if(t&&e){var i=e.readyState,n=this.config;if(!r.aborted&&i>=2&&(0===r.loading.first&&(r.loading.first=Math.max(self.performance.now(),r.loading.start),n.timeout!==n.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),n.timeout=n.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),n.loadPolicy.maxLoadTimeMs-(r.loading.first-r.loading.start)))),4===i)){self.clearTimeout(this.requestTimeout),e.onreadystatechange=null,e.onprogress=null;var a=e.status,s="text"!==e.responseType;if(a>=200&&a<300&&(s&&e.response||null!==e.responseText)){r.loading.end=Math.max(self.performance.now(),r.loading.first);var o=s?e.response:e.responseText,l="arraybuffer"===e.responseType?o.byteLength:o.length;if(r.loaded=r.total=l,r.bwEstimate=8e3*r.total/(r.loading.end-r.loading.first),!this.callbacks)return;var u=this.callbacks.onProgress;if(u&&u(r,t,o,e),!this.callbacks)return;var h={url:e.responseURL,data:o,code:a};this.callbacks.onSuccess(h,r,t,e)}else{var d=n.loadPolicy.errorRetry;Xe(d,r.retry,!1,a)?this.retry(d):(I.error(a+" while loading "+t.url),this.callbacks.onError({code:a,text:e.statusText},t,e,r))}}}},e.loadtimeout=function(){var t,e=null==(t=this.config)?void 0:t.loadPolicy.timeoutRetry;if(Xe(e,this.stats.retry,!0))this.retry(e);else{I.warn("timeout while loading "+this.context.url);var r=this.callbacks;r&&(this.abortInternal(),r.onTimeout(this.stats,this.context,this.loader))}},e.retry=function(t){var e=this.context,r=this.stats;this.retryDelay=je(t,r.retry),r.retry++,I.warn((status?"HTTP Status "+status:"Timeout")+" while loading "+e.url+", retrying "+r.retry+"/"+t.maxNumRetry+" in "+this.retryDelay+"ms"),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)},e.loadprogress=function(t){var e=this.stats;e.loaded=t.loaded,t.lengthComputable&&(e.total=t.total)},e.getCacheAge=function(){var t=null;if(this.loader&&Ua.test(this.loader.getAllResponseHeaders())){var e=this.loader.getResponseHeader("age");t=e?parseFloat(e):null}return t},e.getResponseHeader=function(t){return this.loader&&new RegExp("^"+t+":\\s*[\\d.]+\\s*$","im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(t):null},t}(),Ga=/(\d+)-(\d+)\/(\d+)/,Ka=function(){function t(t){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=void 0,this.response=void 0,this.controller=void 0,this.context=void 0,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=t.fetchSetup||Ha,this.controller=new self.AbortController,this.stats=new F}var e=t.prototype;return e.destroy=function(){this.loader=this.callbacks=null,this.abortInternal()},e.abortInternal=function(){var t=this.response;null!=t&&t.ok||(this.stats.aborted=!0,this.controller.abort())},e.abort=function(){var t;this.abortInternal(),null!=(t=this.callbacks)&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)},e.load=function(t,e,r){var i=this,n=this.stats;if(n.loading.start)throw new Error("Loader can only be used once.");n.loading.start=self.performance.now();var a=function(t,e){var r={method:"GET",mode:"cors",credentials:"same-origin",signal:e,headers:new self.Headers(o({},t.headers))};return t.rangeEnd&&r.headers.set("Range","bytes="+t.rangeStart+"-"+String(t.rangeEnd-1)),r}(t,this.controller.signal),s=r.onProgress,l="arraybuffer"===t.responseType,u=l?"byteLength":"length",h=e.loadPolicy,d=h.maxTimeToFirstByteMs,c=h.maxLoadTimeMs;this.context=t,this.config=e,this.callbacks=r,this.request=this.fetchSetup(t,a),self.clearTimeout(this.requestTimeout),e.timeout=d&&T(d)?d:c,this.requestTimeout=self.setTimeout((function(){i.abortInternal(),r.onTimeout(n,t,i.response)}),e.timeout),self.fetch(this.request).then((function(a){i.response=i.loader=a;var o=Math.max(self.performance.now(),n.loading.start);if(self.clearTimeout(i.requestTimeout),e.timeout=c,i.requestTimeout=self.setTimeout((function(){i.abortInternal(),r.onTimeout(n,t,i.response)}),c-(o-n.loading.start)),!a.ok){var u=a.status,h=a.statusText;throw new Va(h||"fetch, bad network response",u,a)}return n.loading.first=o,n.total=function(t){var e=t.get("Content-Range");if(e){var r=function(t){var e=Ga.exec(t);if(e)return parseInt(e[2])-parseInt(e[1])+1}(e);if(T(r))return r}var i=t.get("Content-Length");if(i)return parseInt(i)}(a.headers)||n.total,s&&T(e.highWaterMark)?i.loadProgressively(a,n,t,e.highWaterMark,s):l?a.arrayBuffer():"json"===t.responseType?a.json():a.text()})).then((function(a){var o=i.response;self.clearTimeout(i.requestTimeout),n.loading.end=Math.max(self.performance.now(),n.loading.first);var l=a[u];l&&(n.loaded=n.total=l);var h={url:o.url,data:a,code:o.status};s&&!T(e.highWaterMark)&&s(n,t,a,o),r.onSuccess(h,n,t,o)})).catch((function(e){if(self.clearTimeout(i.requestTimeout),!n.aborted){var a=e&&e.code||0,s=e?e.message:null;r.onError({code:a,text:s},t,e?e.details:null,n)}}))},e.getCacheAge=function(){var t=null;if(this.response){var e=this.response.headers.get("age");t=e?parseFloat(e):null}return t},e.getResponseHeader=function(t){return this.response?this.response.headers.get(t):null},e.loadProgressively=function(t,e,r,i,n){void 0===i&&(i=0);var a=new mn,s=t.body.getReader();return function o(){return s.read().then((function(s){if(s.done)return a.dataLength&&n(e,r,a.flush(),t),Promise.resolve(new ArrayBuffer(0));var l=s.value,u=l.length;return e.loaded+=u,u<i||a.dataLength?(a.push(l),a.dataLength>=i&&n(e,r,a.flush(),t)):n(e,r,l,t),o()})).catch((function(){return Promise.reject()}))}()},t}();function Ha(t,e){return new self.Request(t.url,e)}var Va=function(t){function e(e,r,i){var n;return(n=t.call(this,e)||this).code=void 0,n.details=void 0,n.code=r,n.details=i,n}return l(e,t),e}(c(Error)),Ya=/\s/,Wa=i(i({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,maxBufferSize:6e7,maxBufferHole:.1,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:Ba,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:vn,bufferController:In,capLevelController:Ra,errorController:or,fpsController:Aa,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:tt,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableID3MetadataCues:!0,certLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null}},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},{cueHandler:{newCue:function(t,e,r,i){for(var n,a,s,o,l,u=[],h=self.VTTCue||self.TextTrackCue,d=0;d<i.rows.length;d++)if(s=!0,o=0,l="",!(n=i.rows[d]).isEmpty()){for(var c,f=0;f<n.chars.length;f++)Ya.test(n.chars[f].uchar)&&s?o++:(l+=n.chars[f].uchar,s=!1);n.cueStartTime=e,e===r&&(r+=1e-4),o>=16?o--:o++;var g=ia(l.trim()),v=la(e,r,g);null!=t&&null!=(c=t.cues)&&c.getCueById(v)||((a=new h(e,r,g)).id=v,a.line=d+1,a.align="left",a.position=10+Math.min(80,10*Math.floor(8*o/32)),u.push(a))}return t&&u.length&&(u.sort((function(t,e){return"auto"===t.line||"auto"===e.line?0:t.line>8&&e.line>8?e.line-t.line:t.line-e.line})),u.forEach((function(e){return Ee(t,e)}))),u}},enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:Sn,subtitleTrackController:Rn,timelineController:Sa,audioStreamController:pn,audioTrackController:yn,emeController:ba,cmcdController:Fa,contentSteeringController:Oa});function ja(t){return t&&"object"==typeof t?Array.isArray(t)?t.map(ja):Object.keys(t).reduce((function(e,r){return e[r]=ja(t[r]),e}),{}):t}function qa(t){var e=t.loader;e!==Ka&&e!==Ba?(I.log("[config]: Custom loader detected, cannot enable progressive streaming"),t.progressive=!1):function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(t){}return!1}()&&(t.loader=Ka,t.progressive=!0,t.enableSoftwareAES=!0,I.log("[config]: Progressive streaming enabled, using FetchLoader"))}var Xa=function(){function t(e){void 0===e&&(e={}),this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new an,this._autoLevelCapping=void 0,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null,D(e.debug||!1,"Hls instance");var r=this.config=function(t,e){if((e.liveSyncDurationCount||e.liveMaxLatencyDurationCount)&&(e.liveSyncDuration||e.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(void 0!==e.liveMaxLatencyDurationCount&&(void 0===e.liveSyncDurationCount||e.liveMaxLatencyDurationCount<=e.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(void 0!==e.liveMaxLatencyDuration&&(void 0===e.liveSyncDuration||e.liveMaxLatencyDuration<=e.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');var r=ja(t),n=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return["manifest","level","frag"].forEach((function(t){var i=("level"===t?"playlist":t)+"LoadPolicy",a=void 0===e[i],s=[];n.forEach((function(n){var o=t+"Loading"+n,l=e[o];if(void 0!==l&&a){s.push(o);var u=r[i].default;switch(e[i]={default:u},n){case"TimeOut":u.maxLoadTimeMs=l,u.maxTimeToFirstByteMs=l;break;case"MaxRetry":u.errorRetry.maxNumRetry=l,u.timeoutRetry.maxNumRetry=l;break;case"RetryDelay":u.errorRetry.retryDelayMs=l,u.timeoutRetry.retryDelayMs=l;break;case"MaxRetryTimeout":u.errorRetry.maxRetryDelayMs=l,u.timeoutRetry.maxRetryDelayMs=l}}})),s.length&&I.warn('hls.js config: "'+s.join('", "')+'" setting(s) are deprecated, use "'+i+'": '+JSON.stringify(e[i]))})),i(i({},r),e)}(t.DefaultConfig,e);this.userConfig=e,this._autoLevelCapping=-1,r.progressive&&qa(r);var n=r.abrController,a=r.bufferController,s=r.capLevelController,o=r.errorController,l=r.fpsController,u=new o(this),h=this.abrController=new n(this),d=this.bufferController=new a(this),c=this.capLevelController=new s(this),f=new l(this),g=new ye(this),v=new we(this),m=r.contentSteeringController,p=m?new m(this):null,y=this.levelController=new ur(this,p),T=new mr(this),S=new Ar(this.config),L=this.streamController=new cn(this,T,S);c.setStreamController(L),f.setStreamController(L);var R=[g,y,L];p&&R.splice(1,0,p),this.networkControllers=R;var A=[h,d,c,f,v,T];this.audioTrackController=this.createController(r.audioTrackController,R);var k=r.audioStreamController;k&&R.push(new k(this,T,S)),this.subtitleTrackController=this.createController(r.subtitleTrackController,R);var b=r.subtitleStreamController;b&&R.push(new b(this,T,S)),this.createController(r.timelineController,A),S.emeController=this.emeController=this.createController(r.emeController,A),this.cmcdController=this.createController(r.cmcdController,A),this.latencyController=this.createController(Ce,A),this.coreComponents=A,R.push(u);var w=u.onErrorOut;"function"==typeof w&&this.on(E.ERROR,w,u)}t.isSupported=function(){return function(){var t=jt();if(!t)return!1;var e=Jr(),r=t&&"function"==typeof t.isTypeSupported&&t.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),i=!e||e.prototype&&"function"==typeof e.prototype.appendBuffer&&"function"==typeof e.prototype.remove;return!!r&&!!i}()};var e=t.prototype;return e.createController=function(t,e){if(t){var r=new t(this);return e&&e.push(r),r}return null},e.on=function(t,e,r){void 0===r&&(r=this),this._emitter.on(t,e,r)},e.once=function(t,e,r){void 0===r&&(r=this),this._emitter.once(t,e,r)},e.removeAllListeners=function(t){this._emitter.removeAllListeners(t)},e.off=function(t,e,r,i){void 0===r&&(r=this),this._emitter.off(t,e,r,i)},e.listeners=function(t){return this._emitter.listeners(t)},e.emit=function(t,e,r){return this._emitter.emit(t,e,r)},e.trigger=function(t,e){if(this.config.debug)return this.emit(t,t,e);try{return this.emit(t,t,e)}catch(e){I.error("An internal error happened while handling event "+t+'. Error message: "'+e.message+'". Here is a stacktrace:',e),this.trigger(E.ERROR,{type:S.OTHER_ERROR,details:L.INTERNAL_EXCEPTION,fatal:!1,event:t,error:e})}return!1},e.listenerCount=function(t){return this._emitter.listenerCount(t)},e.destroy=function(){I.log("destroy"),this.trigger(E.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this.url=null,this.networkControllers.forEach((function(t){return t.destroy()})),this.networkControllers.length=0,this.coreComponents.forEach((function(t){return t.destroy()})),this.coreComponents.length=0;var t=this.config;t.xhrSetup=t.fetchSetup=void 0,this.userConfig=null},e.attachMedia=function(t){I.log("attachMedia"),this._media=t,this.trigger(E.MEDIA_ATTACHING,{media:t})},e.detachMedia=function(){I.log("detachMedia"),this.trigger(E.MEDIA_DETACHING,void 0),this._media=null},e.loadSource=function(t){this.stopLoad();var e=this.media,r=this.url,i=this.url=y.buildAbsoluteURL(self.location.href,t,{alwaysNormalize:!0});I.log("loadSource:"+i),e&&r&&(r!==i||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(e)),this.trigger(E.MANIFEST_LOADING,{url:t})},e.startLoad=function(t){void 0===t&&(t=-1),I.log("startLoad("+t+")"),this.networkControllers.forEach((function(e){e.startLoad(t)}))},e.stopLoad=function(){I.log("stopLoad"),this.networkControllers.forEach((function(t){t.stopLoad()}))},e.swapAudioCodec=function(){I.log("swapAudioCodec"),this.streamController.swapAudioCodec()},e.recoverMediaError=function(){I.log("recoverMediaError");var t=this._media;this.detachMedia(),t&&this.attachMedia(t)},e.removeLevel=function(t,e){void 0===e&&(e=0),this.levelController.removeLevel(t,e)},a(t,[{key:"levels",get:function(){var t=this.levelController.levels;return t||[]}},{key:"currentLevel",get:function(){return this.streamController.currentLevel},set:function(t){I.log("set currentLevel:"+t),this.loadLevel=t,this.abrController.clearTimer(),this.streamController.immediateLevelSwitch()}},{key:"nextLevel",get:function(){return this.streamController.nextLevel},set:function(t){I.log("set nextLevel:"+t),this.levelController.manualLevel=t,this.streamController.nextLevelSwitch()}},{key:"loadLevel",get:function(){return this.levelController.level},set:function(t){I.log("set loadLevel:"+t),this.levelController.manualLevel=t}},{key:"nextLoadLevel",get:function(){return this.levelController.nextLoadLevel},set:function(t){this.levelController.nextLoadLevel=t}},{key:"firstLevel",get:function(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)},set:function(t){I.log("set firstLevel:"+t),this.levelController.firstLevel=t}},{key:"startLevel",get:function(){return this.levelController.startLevel},set:function(t){I.log("set startLevel:"+t),-1!==t&&(t=Math.max(t,this.minAutoLevel)),this.levelController.startLevel=t}},{key:"capLevelToPlayerSize",get:function(){return this.config.capLevelToPlayerSize},set:function(t){var e=!!t;e!==this.config.capLevelToPlayerSize&&(e?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=e)}},{key:"autoLevelCapping",get:function(){return this._autoLevelCapping},set:function(t){this._autoLevelCapping!==t&&(I.log("set autoLevelCapping:"+t),this._autoLevelCapping=t)}},{key:"bandwidthEstimate",get:function(){var t=this.abrController.bwEstimator;return t?t.getEstimate():NaN}},{key:"ttfbEstimate",get:function(){var t=this.abrController.bwEstimator;return t?t.getEstimateTTFB():NaN}},{key:"maxHdcpLevel",get:function(){return this._maxHdcpLevel},set:function(t){_e.indexOf(t)>-1&&(this._maxHdcpLevel=t)}},{key:"autoLevelEnabled",get:function(){return-1===this.levelController.manualLevel}},{key:"manualLevel",get:function(){return this.levelController.manualLevel}},{key:"minAutoLevel",get:function(){var t=this.levels,e=this.config.minAutoBitrate;if(!t)return 0;for(var r=t.length,i=0;i<r;i++)if(t[i].maxBitrate>=e)return i;return 0}},{key:"maxAutoLevel",get:function(){var t,e=this.levels,r=this.autoLevelCapping,i=this.maxHdcpLevel;if(t=-1===r&&e&&e.length?e.length-1:r,i)for(var n=t;n--;){var a=e[n].attrs["HDCP-LEVEL"];if(a&&a<=i)return n}return t}},{key:"nextAutoLevel",get:function(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)},set:function(t){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,t)}},{key:"playingDate",get:function(){return this.streamController.currentProgramDateTime}},{key:"mainForwardBufferInfo",get:function(){return this.streamController.getMainFwdBufferInfo()}},{key:"audioTracks",get:function(){var t=this.audioTrackController;return t?t.audioTracks:[]}},{key:"audioTrack",get:function(){var t=this.audioTrackController;return t?t.audioTrack:-1},set:function(t){var e=this.audioTrackController;e&&(e.audioTrack=t)}},{key:"subtitleTracks",get:function(){var t=this.subtitleTrackController;return t?t.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var t=this.subtitleTrackController;return t?t.subtitleTrack:-1},set:function(t){var e=this.subtitleTrackController;e&&(e.subtitleTrack=t)}},{key:"media",get:function(){return this._media}},{key:"subtitleDisplay",get:function(){var t=this.subtitleTrackController;return!!t&&t.subtitleDisplay},set:function(t){var e=this.subtitleTrackController;e&&(e.subtitleDisplay=t)}},{key:"lowLatencyMode",get:function(){return this.config.lowLatencyMode},set:function(t){this.config.lowLatencyMode=t}},{key:"liveSyncPosition",get:function(){return this.latencyController.liveSyncPosition}},{key:"latency",get:function(){return this.latencyController.latency}},{key:"maxLatency",get:function(){return this.latencyController.maxLatency}},{key:"targetLatency",get:function(){return this.latencyController.targetLatency}},{key:"drift",get:function(){return this.latencyController.drift}},{key:"forceStartLoad",get:function(){return this.streamController.forceStartLoad}}],[{key:"version",get:function(){}},{key:"Events",get:function(){return E}},{key:"ErrorTypes",get:function(){return S}},{key:"ErrorDetails",get:function(){return L}},{key:"DefaultConfig",get:function(){return t.defaultConfig?t.defaultConfig:Wa},set:function(e){t.defaultConfig=e}}]),t}();return Xa.defaultConfig=void 0,Xa},"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(r="undefined"!=typeof globalThis?globalThis:r||self).Hls=i()}(!1);
- //# sourceMappingURL=hls.min.js.map
- /**
- * @file plugin.js
- */
- let flvjs = window.flvjs
- let flv265 = window.flv265
- let videojs = window.videojs
- let Html5 = videojs.getTech('Html5');
- let mergeOptions = videojs.mergeOptions || videojs.util.mergeOptions;
- let defaults = {
- mediaDataSource: {},
- config: {}
- };
- class Flvjs extends Html5 {
- /**
- * Create an instance of this Tech.
- *
- * @param {Object} [options]
- * The key/value store of player options.
- *
- * @param {Component~ReadyCallback} ready
- * Callback function to call when the `Flvjs` Tech is ready.
- */
- constructor(options, ready) {
- options = mergeOptions(defaults, options);
- super(options, ready);
- }
- /**
- * A getter/setter for the `Flvjs` Tech's source object.
- *
- * @param {Tech~SourceObject} [src]
- * The source object you want to set on the `Flvjs` techs.
- *
- * @return {Tech~SourceObject|undefined}
- * - The current source object when a source is not passed in.
- * - undefined when setting
- */
- setSrc(src) {
- if (this.flvPlayer) {
- // Is this necessary to change source?
- this.flvPlayer.detachMediaElement();
- this.flvPlayer.destroy();
- }
- const mediaDataSource = this.options_.mediaDataSource;
- const config = this.options_.config;
- mediaDataSource.type = mediaDataSource.type === undefined ? 'flv' : mediaDataSource.type;
- mediaDataSource.url = src;
- // const features = flv265.getFeatureList()
- // console.log("features = ", features.nativeMP4H265Playback)
- // if (features.nativeMP4H265Playback) this.flvPlayer = flv265.createPlayer(mediaDataSource, config);
- // else this.flvPlayer = flvjs.createPlayer(mediaDataSource, config);
- this.flvPlayer = flvjs.createPlayer(mediaDataSource, config);
- this.flvPlayer.attachMediaElement(this.el_);
- this.flvPlayer.load();
- }
- /**
- * Dispose of flvjs.
- */
- dispose() {
- if (this.flvPlayer) {
- this.flvPlayer.detachMediaElement();
- this.flvPlayer.destroy();
- }
- super.dispose();
- }
- }
- /**
- * Check if the Flvjs tech is currently supported.
- *
- * @return {boolean}
- * - True if the Flvjs tech is supported.
- * - False otherwise.
- */
- Flvjs.isSupported = function () {
- return flvjs && flvjs.isSupported();
- };
- /**
- * Flvjs supported mime types.
- *
- * @constant {Object}
- */
- Flvjs.formats = {
- 'video/flv': 'FLV',
- 'video/x-flv': 'FLV'
- };
- /**
- * Check if the tech can support the given type
- *
- * @param {string} type
- * The mimetype to check
- * @return {string} 'probably', 'maybe', or '' (empty string)
- */
- Flvjs.canPlayType = function (type) {
- if (Flvjs.isSupported() && type in Flvjs.formats) {
- return 'maybe';
- }
- return '';
- };
- /**
- * Check if the tech can support the given source
- * @param {Object} srcObj
- * The source object
- * @param {Object} options
- * The options passed to the tech
- * @return {string} 'probably', 'maybe', or '' (empty string)
- */
- Flvjs.canPlaySource = function (srcObj, options) {
- return Flvjs.canPlayType(srcObj.type);
- };
- // Include the version number.
- Flvjs.VERSION = '__VERSION__';
- videojs.registerTech('Flvjs', Flvjs);
- /**
- * @file plugin.js
- */
- const Hls = window.Hls
- class Hlsjs extends Html5 {
- /**
- * Create an instance of this Tech.
- *
- * @param {Object} [options]
- * The key/value store of player options.
- *
- * @param {Component~ReadyCallback} ready
- * Callback function to call when the `Hlsjs` Tech is ready.
- */
- constructor(options, ready) {
- options = videojs.obj.merge(defaults, options);
- super(options, ready);
- }
- /**
- * A getter/setter for the `Hlsjs` Tech's source object.
- *
- * @param {Tech~SourceObject} [src]
- * The source object you want to set on the `Hlsjs` techs.
- *
- * @return {Tech~SourceObject|undefined}
- * - The current source object when a source is not passed in.
- * - undefined when setting
- */
- setSrc(src) {
- if (this.hlsPlayer) {
- this.hlsPlayer.detachMedia();
- this.hlsPlayer.destroy();
- }
- this.src_ = src
- this.hlsPlayer = new Hls();
- this.hlsPlayer.attachMedia(this.el_);
- this.hlsPlayer.loadSource(this.src_);
- this.hlsPlayer.once(Hls.Events.LEVEL_PTS_UPDATED, (event, data) => this.isLive_ = data.details.live) // 设置直播状态
- }
- autoplay() {
- return this.options_.autoplay;
- }
- currentSrc() {
- if (this.hlsPlayer) return this.hlsPlayer.url;
- return this.el_.currentSrc;
- }
- setCurrentTime(seconds) {
- this.el_.currentTime = seconds;
- }
- play() {
- this.el_.play();
- }
- duration() {
- if (this.isLive_) return Infinity
- else return this.el_.duration
- }
- /**
- * Dispose of Hlsjs.
- */
- dispose() {
- if (this.hlsPlayer) {
- this.hlsPlayer.detachMedia();
- this.hlsPlayer.destroy();
- }
- super.dispose();
- }
- }
- /**
- * Check if the Hlsjs tech is currently supported.
- *
- * @return {boolean}
- * - True if the Hlsjs tech is supported.
- * - False otherwise.
- */
- Hlsjs.isSupported = function () {
- return Hls && Hls.isSupported();
- };
- /**
- * Check if the tech can support the given source
- * @param {Object} srcObj
- * The source object
- * @param {Object} options
- * The options passed to the tech
- * @return {string} 'probably', 'maybe', or '' (empty string)
- */
- // Hlsjs.canPlaySource = function (srcObj, options) {
- // return Hlsjs.canPlayType(srcObj.type);
- // };
- // Include the version number.
- Hlsjs.VERSION = '1.0.0';
- videojs.registerTech('Hlsjs', Hlsjs);
- /*! videojs-resolution-switcher - 2015-7-26
- * Copyright (c) 2016 Kasper Moskwiak
- * Modified by Pierre Kraft
- * Licensed under the Apache-2.0 license. */
- (function() {
- /* jshint eqnull: true*/
- /* global require */
- 'use strict';
- var videojs = null;
- if(typeof window.videojs === 'undefined' && typeof require === 'function') {
- videojs = require('video.js');
- } else {
- videojs = window.videojs;
- }
- (function(window, videojs) {
- var defaults = {},
- videoJsResolutionSwitcher,
- currentResolution = {}, // stores current resolution
- menuItemsHolder = {}; // stores menuItems
- function setSourcesSanitized(player, sources, label, customSourcePicker) {
- currentResolution = {
- label: label,
- sources: sources
- };
- if(typeof customSourcePicker === 'function'){
- return customSourcePicker(player, sources, label);
- }
- return player.src(sources.map(function(src) {
- return {src: src.src, type: src.type, res: src.res};
- }));
- }
- /*
- * Resolution menu item
- */
- var MenuItem = videojs.getComponent('MenuItem');
- // const Component = videojs.getComponent('Component');
- class ResolutionMenuItem extends MenuItem {
- constructor(player, options, onClickListener, label){
- super(player, options, onClickListener, label)
- this.onClickListener = onClickListener;
- this.label = label;
- // Sets this.player_, this.options_ and initializes the component
- MenuItem.call(this, player, options);
- this.src = options.src;
- this.on('click', this.onClick);
- this.on('touchstart', this.onClick);
- if (options.initialySelected) {
- this.showAsLabel();
- this.selected(true);
- this.addClass('vjs-selected');
- }
- }
- showAsLabel() {
- // Change menu button label to the label of this item if the menu button label is provided
- if(this.label) {
- this.label.innerHTML = this.options_.label;
- }
- }
- onClick(customSourcePicker){
- this.onClickListener(this);
- // Remember player state
- var currentTime = this.player_.currentTime();
- var isPaused = this.player_.paused();
- this.showAsLabel();
- // add .current class
- this.addClass('vjs-selected');
- // Hide bigPlayButton
- if(!isPaused){
- this.player_.bigPlayButton.hide();
- }
- if(typeof customSourcePicker !== 'function' &&
- typeof this.options_.customSourcePicker === 'function'){
- customSourcePicker = this.options_.customSourcePicker;
- }
- // Change player source and wait for loadeddata event, then play video
- // loadedmetadata doesn't work right now for flash.
- // Probably because of https://github.com/videojs/video-js-swf/issues/124
- // If player preload is 'none' and then loadeddata not fired. So, we need timeupdate event for seek handle (timeupdate doesn't work properly with flash)
- var handleSeekEvent = 'loadeddata';
- if(this.player_.techName_ !== 'Youtube' && this.player_.preload() === 'none' && this.player_.techName_ !== 'Flash') {
- handleSeekEvent = 'timeupdate';
- }
- setSourcesSanitized(this.player_, this.src, this.options_.label, customSourcePicker)
- this.player_.one(handleSeekEvent, function() {
- this.player_.currentTime(currentTime);
- this.player_.handleTechSeeked_();
- this.player_.trigger('resolutionchange');
- });
- }
- }
- videojs.registerComponent('ResolutionMenuItem', ResolutionMenuItem);
- // var ResolutionMenuItem = videojs.extend(MenuItem, {
- // constructor: function(player, options, onClickListener, label){
- // this.onClickListener = onClickListener;
- // this.label = label;
- // // Sets this.player_, this.options_ and initializes the component
- // MenuItem.call(this, player, options);
- // this.src = options.src;
- //
- // this.on('click', this.onClick);
- // this.on('touchstart', this.onClick);
- //
- // if (options.initialySelected) {
- // this.showAsLabel();
- // this.selected(true);
- //
- // this.addClass('vjs-selected');
- // }
- // },
- // showAsLabel: function() {
- // // Change menu button label to the label of this item if the menu button label is provided
- // if(this.label) {
- // this.label.innerHTML = this.options_.label;
- // }
- // },
- // onClick: function(customSourcePicker){
- // this.onClickListener(this);
- // // Remember player state
- // var currentTime = this.player_.currentTime();
- // var isPaused = this.player_.paused();
- // this.showAsLabel();
- //
- // // add .current class
- // this.addClass('vjs-selected');
- //
- // // Hide bigPlayButton
- // if(!isPaused){
- // this.player_.bigPlayButton.hide();
- // }
- // if(typeof customSourcePicker !== 'function' &&
- // typeof this.options_.customSourcePicker === 'function'){
- // customSourcePicker = this.options_.customSourcePicker;
- // }
- // // Change player source and wait for loadeddata event, then play video
- // // loadedmetadata doesn't work right now for flash.
- // // Probably because of https://github.com/videojs/video-js-swf/issues/124
- // // If player preload is 'none' and then loadeddata not fired. So, we need timeupdate event for seek handle (timeupdate doesn't work properly with flash)
- // var handleSeekEvent = 'loadeddata';
- // if(this.player_.techName_ !== 'Youtube' && this.player_.preload() === 'none' && this.player_.techName_ !== 'Flash') {
- // handleSeekEvent = 'timeupdate';
- // }
- // setSourcesSanitized(this.player_, this.src, this.options_.label, customSourcePicker)
- // this.player_.one(handleSeekEvent, function() {
- // this.player_.currentTime(currentTime);
- // this.player_.handleTechSeeked_();
- // this.player_.trigger('resolutionchange');
- // });
- // }
- // });
- /*
- * Resolution menu button
- */
- var MenuButton = videojs.getComponent('MenuButton');
- class ResolutionMenuButton extends MenuButton {
- constructor(player, options, settings, label){
- super(player, options, settings, label)
- this.sources = options.sources;
- this.label = label;
- this.label.innerHTML = options.initialySelectedLabel;
- // Sets this.player_, this.options_ and initializes the component
- MenuButton.call(this, player, options, settings);
- this.controlText('Quality');
- if(settings.dynamicLabel){
- this.el().appendChild(label);
- }else{
- var staticLabel = document.createElement('span');
- videojs.dom.addClass(staticLabel, 'vjs-resolution-button-staticlabel');
- this.el().appendChild(staticLabel);
- }
- }
- createItems(){
- var menuItems = [];
- var labels = (this.sources && this.sources.label) || {};
- var onClickUnselectOthers = function(clickedItem) {
- menuItems.map(function(item) {
- item.selected(item === clickedItem);
- item.removeClass('vjs-selected');
- });
- };
- for (var key in labels) {
- if (labels.hasOwnProperty(key)) {
- menuItems.push(new ResolutionMenuItem(
- this.player_,
- {
- label: key,
- src: labels[key],
- initialySelected: key === this.options_.initialySelectedLabel,
- customSourcePicker: this.options_.customSourcePicker
- },
- onClickUnselectOthers,
- this.label));
- // Store menu item for API calls
- menuItemsHolder[key] = menuItems[menuItems.length - 1];
- }
- }
- return menuItems;
- }
- }
- videojs.registerComponent('ResolutionMenuButton', ResolutionMenuButton);
- // var ResolutionMenuButton = videojs.extend(MenuButton, {
- // constructor: function(player, options, settings, label){
- // this.sources = options.sources;
- // this.label = label;
- // this.label.innerHTML = options.initialySelectedLabel;
- // // Sets this.player_, this.options_ and initializes the component
- // MenuButton.call(this, player, options, settings);
- // this.controlText('Quality');
- //
- // if(settings.dynamicLabel){
- // this.el().appendChild(label);
- // }else{
- // var staticLabel = document.createElement('span');
- // videojs.dom.addClass(staticLabel, 'vjs-resolution-button-staticlabel');
- // this.el().appendChild(staticLabel);
- // }
- // },
- // createItems: function(){
- // var menuItems = [];
- // var labels = (this.sources && this.sources.label) || {};
- // var onClickUnselectOthers = function(clickedItem) {
- // menuItems.map(function(item) {
- // item.selected(item === clickedItem);
- // item.removeClass('vjs-selected');
- // });
- // };
- //
- // for (var key in labels) {
- // if (labels.hasOwnProperty(key)) {
- // menuItems.push(new ResolutionMenuItem(
- // this.player_,
- // {
- // label: key,
- // src: labels[key],
- // initialySelected: key === this.options_.initialySelectedLabel,
- // customSourcePicker: this.options_.customSourcePicker
- // },
- // onClickUnselectOthers,
- // this.label));
- // // Store menu item for API calls
- // menuItemsHolder[key] = menuItems[menuItems.length - 1];
- // }
- // }
- // return menuItems;
- // }
- // });
- /**
- * Initialize the plugin.
- * @param {object} [options] configuration for the plugin
- */
- videoJsResolutionSwitcher = function(options) {
- var settings = videojs.mergeOptions(defaults, options),
- player = this,
- label = document.createElement('span'),
- groupedSrc = {};
- videojs.dom.addClass(label, 'vjs-resolution-button-label');
- /**
- * Updates player sources or returns current source URL
- * @param {Array} [src] array of sources [{src: '', type: '', label: '', res: ''}]
- * @returns {Object|String|Array} videojs player object if used as setter or current source URL, object, or array of sources
- */
- player.updateSrc = function(src){
- //Return current src if src is not given
- if(!src){ return player.src(); }
- // Dispose old resolution menu button before adding new sources
- if(player.controlBar.resolutionSwitcher){
- player.controlBar.resolutionSwitcher.dispose();
- delete player.controlBar.resolutionSwitcher;
- }
- //Sort sources
- src = src.sort(compareResolutions);
- groupedSrc = bucketSources(src);
- var choosen = chooseSrc(groupedSrc, src);
- var menuButton = new ResolutionMenuButton(player, { sources: groupedSrc, initialySelectedLabel: choosen.label , initialySelectedRes: choosen.res , customSourcePicker: settings.customSourcePicker}, settings, label);
- videojs.dom.addClass(menuButton.el(), 'vjs-resolution-button');
- player.controlBar.resolutionSwitcher = player.controlBar.el_.insertBefore(menuButton.el_, player.controlBar.getChild('fullscreenToggle').el_);
- player.controlBar.resolutionSwitcher.dispose = function(){
- this.parentNode.removeChild(this);
- };
- return setSourcesSanitized(player, choosen.sources, choosen.label);
- };
- /**
- * Returns current resolution or sets one when label is specified
- * @param {String} [label] label name
- * @param {Function} [customSourcePicker] custom function to choose source. Takes 3 arguments: player, sources, label. Must return player object.
- * @returns {Object} current resolution object {label: '', sources: []} if used as getter or player object if used as setter
- */
- player.currentResolution = function(label, customSourcePicker){
- if(label == null) { return currentResolution; }
- if(menuItemsHolder[label] != null){
- menuItemsHolder[label].onClick(customSourcePicker);
- }
- return player;
- };
- /**
- * Returns grouped sources by label, resolution and type
- * @returns {Object} grouped sources: { label: { key: [] }, res: { key: [] }, type: { key: [] } }
- */
- player.getGroupedSrc = function(){
- return groupedSrc;
- };
- /**
- * Method used for sorting list of sources
- * @param {Object} a - source object with res property
- * @param {Object} b - source object with res property
- * @returns {Number} result of comparation
- */
- function compareResolutions(a, b){
- if(!a.res || !b.res){ return 0; }
- return (+b.res)-(+a.res);
- }
- /**
- * Group sources by label, resolution and type
- * @param {Array} src Array of sources
- * @returns {Object} grouped sources: { label: { key: [] }, res: { key: [] }, type: { key: [] } }
- */
- function bucketSources(src){
- var resolutions = {
- label: {},
- res: {},
- type: {}
- };
- src.map(function(source) {
- initResolutionKey(resolutions, 'label', source);
- initResolutionKey(resolutions, 'res', source);
- initResolutionKey(resolutions, 'type', source);
- appendSourceToKey(resolutions, 'label', source);
- appendSourceToKey(resolutions, 'res', source);
- appendSourceToKey(resolutions, 'type', source);
- });
- return resolutions;
- }
- function initResolutionKey(resolutions, key, source) {
- if(resolutions[key][source[key]] == null) {
- resolutions[key][source[key]] = [];
- }
- }
- function appendSourceToKey(resolutions, key, source) {
- resolutions[key][source[key]].push(source);
- }
- /**
- * Choose src if option.default is specified
- * @param {Object} groupedSrc {res: { key: [] }}
- * @param {Array} src Array of sources sorted by resolution used to find high and low res
- * @returns {Object} {res: string, sources: []}
- */
- function chooseSrc(groupedSrc, src){
- var selectedRes = settings['default']; // use array access as default is a reserved keyword
- var selectedLabel = '';
- if (selectedRes === 'high') {
- selectedRes = src[0].res;
- selectedLabel = src[0].label;
- } else if (selectedRes === 'low' || selectedRes == null || !groupedSrc.res[selectedRes]) {
- // Select low-res if default is low or not set
- selectedRes = src[src.length - 1].res;
- selectedLabel = src[src.length -1].label;
- } else if (groupedSrc.res[selectedRes]) {
- selectedLabel = groupedSrc.res[selectedRes][0].label;
- }
- return {res: selectedRes, label: selectedLabel, sources: groupedSrc.res[selectedRes]};
- }
- function initResolutionForYt(player){
- // Init resolution
- player.tech_.ytPlayer.setPlaybackQuality('default');
- // Capture events
- player.tech_.ytPlayer.addEventListener('onPlaybackQualityChange', function(){
- player.trigger('resolutionchange');
- });
- // We must wait for play event
- player.one('play', function(){
- var qualities = player.tech_.ytPlayer.getAvailableQualityLevels();
- // Map youtube qualities names
- var _yts = {
- highres: {res: 1080, label: '1080', yt: 'highres'},
- hd1080: {res: 1080, label: '1080', yt: 'hd1080'},
- hd720: {res: 720, label: '720', yt: 'hd720'},
- large: {res: 480, label: '480', yt: 'large'},
- medium: {res: 360, label: '360', yt: 'medium'},
- small: {res: 240, label: '240', yt: 'small'},
- tiny: {res: 144, label: '144', yt: 'tiny'},
- auto: {res: 0, label: 'auto', yt: 'default'}
- };
- var _sources = [];
- qualities.map(function(q){
- _sources.push({
- src: player.src().src,
- type: player.src().type,
- label: _yts[q].label,
- res: _yts[q].res,
- _yt: _yts[q].yt
- });
- });
- groupedSrc = bucketSources(_sources);
- // Overwrite defualt sourcePicer function
- var _customSourcePicker = function(_player, _sources, _label){
- player.tech_.ytPlayer.setPlaybackQuality(_sources[0]._yt);
- return player;
- };
- var choosen = {label: 'auto', res: 0, sources: groupedSrc.label.auto};
- var menuButton = new ResolutionMenuButton(player, {
- sources: groupedSrc,
- initialySelectedLabel: choosen.label,
- initialySelectedRes: choosen.res,
- customSourcePicker: _customSourcePicker
- }, settings, label);
- menuButton.el().classList.add('vjs-resolution-button');
- player.controlBar.resolutionSwitcher = player.controlBar.addChild(menuButton);
- });
- }
- player.ready(function(){
- if(player.options_.sources.length > 1){
- // tech: Html5 and Flash
- // Create resolution switcher for videos form <source> tag inside <video>
- player.updateSrc(player.options_.sources);
- }
- if(player.techName_ === 'Youtube'){
- // tech: YouTube
- initResolutionForYt(player);
- }
- });
- };
- // register the plugin
- videojs.registerPlugin('videoJsResolutionSwitcher', videoJsResolutionSwitcher);
- })(window, videojs);
- })();
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, {
- /******/ configurable: false,
- /******/ enumerable: true,
- /******/ get: getter
- /******/ });
- /******/ }
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "";
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 0);
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ "+8RM":
- /***/ (function(module, exports) {
- module.exports = "data:font/ttf;base64,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"
- /***/ }),
- /***/ "+HRN":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var Buffer = __webpack_require__("kkc6").Buffer;
- var util = __webpack_require__(4);
- function copyBuffer(src, target, offset) {
- src.copy(target, offset);
- }
- module.exports = function () {
- function BufferList() {
- _classCallCheck(this, BufferList);
- this.head = null;
- this.tail = null;
- this.length = 0;
- }
- BufferList.prototype.push = function push(v) {
- var entry = { data: v, next: null };
- if (this.length > 0) this.tail.next = entry;else this.head = entry;
- this.tail = entry;
- ++this.length;
- };
- BufferList.prototype.unshift = function unshift(v) {
- var entry = { data: v, next: this.head };
- if (this.length === 0) this.tail = entry;
- this.head = entry;
- ++this.length;
- };
- BufferList.prototype.shift = function shift() {
- if (this.length === 0) return;
- var ret = this.head.data;
- if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
- --this.length;
- return ret;
- };
- BufferList.prototype.clear = function clear() {
- this.head = this.tail = null;
- this.length = 0;
- };
- BufferList.prototype.join = function join(s) {
- if (this.length === 0) return '';
- var p = this.head;
- var ret = '' + p.data;
- while (p = p.next) {
- ret += s + p.data;
- }return ret;
- };
- BufferList.prototype.concat = function concat(n) {
- if (this.length === 0) return Buffer.alloc(0);
- var ret = Buffer.allocUnsafe(n >>> 0);
- var p = this.head;
- var i = 0;
- while (p) {
- copyBuffer(p.data, ret, i);
- i += p.data.length;
- p = p.next;
- }
- return ret;
- };
- return BufferList;
- }();
- if (util && util.inspect && util.inspect.custom) {
- module.exports.prototype[util.inspect.custom] = function () {
- var obj = util.inspect({ length: this.length });
- return this.constructor.name + ' ' + obj;
- };
- }
- /***/ }),
- /***/ "+e0g":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var hash = __webpack_require__("3PYz");
- var curves = __webpack_require__("hQ80");
- var utils = __webpack_require__("TkWM");
- var assert = utils.assert;
- var parseBytes = utils.parseBytes;
- var KeyPair = __webpack_require__("RzOE");
- var Signature = __webpack_require__("hkfz");
- function EDDSA(curve) {
- assert(curve === 'ed25519', 'only tested with ed25519 so far');
- if (!(this instanceof EDDSA))
- return new EDDSA(curve);
- curve = curves[curve].curve;
- this.curve = curve;
- this.g = curve.g;
- this.g.precompute(curve.n.bitLength() + 1);
- this.pointClass = curve.point().constructor;
- this.encodingLength = Math.ceil(curve.n.bitLength() / 8);
- this.hash = hash.sha512;
- }
- module.exports = EDDSA;
- /**
- * @param {Array|String} message - message bytes
- * @param {Array|String|KeyPair} secret - secret bytes or a keypair
- * @returns {Signature} - signature
- */
- EDDSA.prototype.sign = function sign(message, secret) {
- message = parseBytes(message);
- var key = this.keyFromSecret(secret);
- var r = this.hashInt(key.messagePrefix(), message);
- var R = this.g.mul(r);
- var Rencoded = this.encodePoint(R);
- var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
- .mul(key.priv());
- var S = r.add(s_).umod(this.curve.n);
- return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
- };
- /**
- * @param {Array} message - message bytes
- * @param {Array|String|Signature} sig - sig bytes
- * @param {Array|String|Point|KeyPair} pub - public key
- * @returns {Boolean} - true if public key matches sig of message
- */
- EDDSA.prototype.verify = function verify(message, sig, pub) {
- message = parseBytes(message);
- sig = this.makeSignature(sig);
- var key = this.keyFromPublic(pub);
- var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
- var SG = this.g.mul(sig.S());
- var RplusAh = sig.R().add(key.pub().mul(h));
- return RplusAh.eq(SG);
- };
- EDDSA.prototype.hashInt = function hashInt() {
- var hash = this.hash();
- for (var i = 0; i < arguments.length; i++)
- hash.update(arguments[i]);
- return utils.intFromLE(hash.digest()).umod(this.curve.n);
- };
- EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
- return KeyPair.fromPublic(this, pub);
- };
- EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
- return KeyPair.fromSecret(this, secret);
- };
- EDDSA.prototype.makeSignature = function makeSignature(sig) {
- if (sig instanceof Signature)
- return sig;
- return new Signature(this, sig);
- };
- /**
- * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2
- *
- * EDDSA defines methods for encoding and decoding points and integers. These are
- * helper convenience methods, that pass along to utility functions implied
- * parameters.
- *
- */
- EDDSA.prototype.encodePoint = function encodePoint(point) {
- var enc = point.getY().toArray('le', this.encodingLength);
- enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;
- return enc;
- };
- EDDSA.prototype.decodePoint = function decodePoint(bytes) {
- bytes = utils.parseBytes(bytes);
- var lastIx = bytes.length - 1;
- var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);
- var xIsOdd = (bytes[lastIx] & 0x80) !== 0;
- var y = utils.intFromLE(normed);
- return this.curve.pointFromY(y, xIsOdd);
- };
- EDDSA.prototype.encodeInt = function encodeInt(num) {
- return num.toArray('le', this.encodingLength);
- };
- EDDSA.prototype.decodeInt = function decodeInt(bytes) {
- return utils.intFromLE(bytes);
- };
- EDDSA.prototype.isPoint = function isPoint(val) {
- return val instanceof this.pointClass;
- };
- /***/ }),
- /***/ "+jDU":
- /***/ (function(module, exports, __webpack_require__) {
- var AuthCipher = __webpack_require__("/y0r")
- var Buffer = __webpack_require__("X3l8").Buffer
- var MODES = __webpack_require__("BCiZ")
- var StreamCipher = __webpack_require__("6hW9")
- var Transform = __webpack_require__("z+8S")
- var aes = __webpack_require__("BEbT")
- var ebtk = __webpack_require__("Cgw8")
- var inherits = __webpack_require__("LC74")
- function Decipher (mode, key, iv) {
- Transform.call(this)
- this._cache = new Splitter()
- this._last = void 0
- this._cipher = new aes.AES(key)
- this._prev = Buffer.from(iv)
- this._mode = mode
- this._autopadding = true
- }
- inherits(Decipher, Transform)
- Decipher.prototype._update = function (data) {
- this._cache.add(data)
- var chunk
- var thing
- var out = []
- while ((chunk = this._cache.get(this._autopadding))) {
- thing = this._mode.decrypt(this, chunk)
- out.push(thing)
- }
- return Buffer.concat(out)
- }
- Decipher.prototype._final = function () {
- var chunk = this._cache.flush()
- if (this._autopadding) {
- return unpad(this._mode.decrypt(this, chunk))
- } else if (chunk) {
- throw new Error('data not multiple of block length')
- }
- }
- Decipher.prototype.setAutoPadding = function (setTo) {
- this._autopadding = !!setTo
- return this
- }
- function Splitter () {
- this.cache = Buffer.allocUnsafe(0)
- }
- Splitter.prototype.add = function (data) {
- this.cache = Buffer.concat([this.cache, data])
- }
- Splitter.prototype.get = function (autoPadding) {
- var out
- if (autoPadding) {
- if (this.cache.length > 16) {
- out = this.cache.slice(0, 16)
- this.cache = this.cache.slice(16)
- return out
- }
- } else {
- if (this.cache.length >= 16) {
- out = this.cache.slice(0, 16)
- this.cache = this.cache.slice(16)
- return out
- }
- }
- return null
- }
- Splitter.prototype.flush = function () {
- if (this.cache.length) return this.cache
- }
- function unpad (last) {
- var padded = last[15]
- if (padded < 1 || padded > 16) {
- throw new Error('unable to decrypt data')
- }
- var i = -1
- while (++i < padded) {
- if (last[(i + (16 - padded))] !== padded) {
- throw new Error('unable to decrypt data')
- }
- }
- if (padded === 16) return
- return last.slice(0, 16 - padded)
- }
- function createDecipheriv (suite, password, iv) {
- var config = MODES[suite.toLowerCase()]
- if (!config) throw new TypeError('invalid suite type')
- if (typeof iv === 'string') iv = Buffer.from(iv)
- if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)
- if (typeof password === 'string') password = Buffer.from(password)
- if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)
- if (config.type === 'stream') {
- return new StreamCipher(config.module, password, iv, true)
- } else if (config.type === 'auth') {
- return new AuthCipher(config.module, password, iv, true)
- }
- return new Decipher(config.module, password, iv)
- }
- function createDecipher (suite, password) {
- var config = MODES[suite.toLowerCase()]
- if (!config) throw new TypeError('invalid suite type')
- var keys = ebtk(password, false, config.key, config.iv)
- return createDecipheriv(suite, keys.key, keys.iv)
- }
- exports.createDecipher = createDecipher
- exports.createDecipheriv = createDecipheriv
- /***/ }),
- /***/ "+olj":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UIMixins; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_assets_js_logo_loading_json__ = __webpack_require__("jxY5");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_assets_js_logo_loading_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_assets_js_logo_loading_json__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__config__ = __webpack_require__("FhoZ");
- var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
- var loadingGifLength = __WEBPACK_IMPORTED_MODULE_1__config__["a" /* default */].loadingGifLength,
- logoGifLength = __WEBPACK_IMPORTED_MODULE_1__config__["a" /* default */].logoGifLength;
- var UIMixins = {
- methods: {
- initVideoEle: function initVideoEle() {
- var _this = this;
- if (this.noSingleEle && this.noSingleEle.parentNode) this.noSingleEle.parentNode.removeChild(this.noSingleEle);
- this.videoEle = this.$el.querySelector("video");
- if (this.videoEle && this.videoEle.parentNode) this.videoEle.parentNode.removeChild(this.videoEle);
- this._videoId = this.getUUID().split("-").join('');
- if (!this.videoUrl.startsWith("webrtc")) {
- //TODO 不是webRTC
- this.videoEle = document.createElement("video");
- this.videoEle.setAttribute("id", this._videoId);
- this.videoEle.setAttribute("ref", 'easyPlayer');
- this.videoEle.setAttribute('loop', "true");
- this.videoEle.setAttribute('preload', "true");
- this.videoEle.setAttribute("webkit-playsinline", "true");
- this.videoEle.setAttribute("playsinline", 'playsinline'); //阻止弹出层
- this.videoEle.setAttribute('x5-playsinline', 'x5-playsinline');
- this.videoEle.setAttribute('x-webkit-airplay', 'allow');
- this.videoEle.setAttribute("x5-video-player-type", 'h5');
- this.videoEle.setAttribute("x5-video-player-fullscreen", "true");
- this.videoEle.setAttribute('x5-video-orientation', 'portrait');
- this.videoEle.setAttribute('x5-video-ignore-metadata', "true");
- this.videoEle.setAttribute('crossOrigin', 'anonymous');
- this.videoEle.setAttribute("x5-crossOrigin", 'anonymous');
- this.videoEle.controls = false;
- this.videoEle.muted = this.playerMuted;
- this.videoEle.autoplay = this.autoplay;
- this.videoEle.classList = "video-js vjs-default-skin vjs-big-play-centered magic-video";
- this.videoEle.style = "width:100%;height: 100%";
- }
- // 加载loading标签
- var videoWidth = parseInt(this.easyVideoPlayerInnerEle.offsetWidth);
- this.easyPlayerLoadingEle = document.createElement("div");
- var loadingImgEle = document.createElement("img");
- var loadingTextEle = document.createElement("div");
- this.easyPlayerLoadingEle.setAttribute("ref", "loadingPage");
- this.easyPlayerLoadingEle.classList = "easy-player-loading";
- loadingTextEle.classList = "loading-text";
- loadingTextEle.setAttribute("ref", "loadingText");
- loadingTextEle.innerHTML = "加载中...";
- loadingImgEle.classList = 'logo';
- if (videoWidth < 625) {
- loadingImgEle.style = "width:90px;height:24px;line-height: 24px;";
- loadingTextEle.style.height = '24px';
- this.$refs.loadingTextInfo.style.fontSize = '10px';
- } else {
- loadingImgEle.style.width = '180';
- loadingImgEle.style.height = '40px';
- loadingTextEle.style.height = '24px';
- this.$refs.loadingTextInfo.style.fontSize = '12px';
- }
- loadingImgEle.setAttribute("src", this.showEnterprise ? __WEBPACK_IMPORTED_MODULE_0_assets_js_logo_loading_json___default.a.logoGif : __WEBPACK_IMPORTED_MODULE_0_assets_js_logo_loading_json___default.a.loading);
- this.easyPlayerLoadingEle.appendChild(loadingImgEle);
- this.easyPlayerLoadingEle.appendChild(loadingTextEle);
- if (this.videoEle) this.easyVideoPlayerInnerEle.appendChild(this.videoEle);
- //TODO 检查是否更换logo
- setTimeout(function () {
- var currentLength = loadingImgEle.src.length;
- if (_this.showEnterprise && currentLength !== logoGifLength) return _this.destroyPlayer(); //企业logo
- if (!_this.showEnterprise && currentLength !== loadingGifLength) return _this.destroyPlayer(); //非企业logo
- }, 1000);
- },
- _createVideoLoadingEle: function _createVideoLoadingEle() {
- document.getElementById(this._videoId).appendChild(this.easyPlayerLoadingEle);
- },
- _handlerVideoProgress: function _handlerVideoProgress() {
- //TODO 处理是否显示进度条
- if (this.$el.querySelector(".vjs-progress-control")) this.$el.querySelector(".vjs-progress-control").style.opacity = this.progress ? 1 : 0;
- },
- _createVideoPlayBtnEle: function _createVideoPlayBtnEle() {
- var _this2 = this;
- if (this.autoplay) return;
- var videoParentEle = document.getElementById(this._videoId);
- var playBtn = document.createElement("div");
- var spanEle = document.createElement("span");
- playBtn.classList = 'easy-big-play-button easy-play-btn';
- playBtn.style = "display:flex;flex-direction: row;justify-content:centet;align-items: center;z-index:889;position: absolute; top: 50%;left: 50%;";
- spanEle.classList = 'iconfont icon-bofang easy-play-btn-bofang';
- playBtn.appendChild(spanEle);
- videoParentEle.appendChild(playBtn);
- var playBtnEle = this.$el.querySelector(".easy-big-play-button");
- playBtnEle.onclick = function () {
- var type = _this2.playerOption.type;
- _this2.easyPlayer.src({ src: _this2.videoUrl, type: type });
- _this2.easyPlayer.load();
- setTimeout(function () {
- return _this2.easyPlayer.play();
- }, 200);
- videoParentEle.removeChild(playBtnEle);
- playBtnEle = null;
- setTimeout(function () {
- return _this2.setHLSListener();
- }, 200); //监测是否是HLS265
- setTimeout(function () {
- return _this2.setFlvPlayerListener(_this2.easyPlayer);
- }, 200);
- };
- },
- // TODO 渲染自定义菜单按钮
- createPlayerMenusBtn: function createPlayerMenusBtn() {
- var _this3 = this;
- var playerControlBar = this.easyPlayer.controlBar.el_;
- var _playerControlBar$get = playerControlBar.getElementsByClassName("vjs-fullscreen-control"),
- _playerControlBar$get2 = _slicedToArray(_playerControlBar$get, 1),
- fullscreenBtn = _playerControlBar$get2[0];
- // TODO 渲染拉伸模式
- var stretchBtn = document.createElement("button");
- stretchBtn.className = "vjs-control vjs-button vjs-stretch-control";
- stretchBtn.type = "button";
- stretchBtn.title = "拉伸模式";
- stretchBtn.innerText = this.stretch ? "拉伸" : "标准";
- stretchBtn.addEventListener("click", function () {
- _this3.stretch = !_this3.stretch;
- stretchBtn.innerText = _this3.stretch ? "拉伸" : "标准";
- });
- playerControlBar.insertBefore(stretchBtn, fullscreenBtn);
- //TODO 录像
- this.luXiangEle = document.createElement("span");
- this.luXiangEle.title = "录像";
- this.luXiangEle.style = "font-size:16px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center;";
- this.luXiangEle.classList = "iconfont icon-luxiang2";
- this.luXiangEle.onclick = function () {
- _this3._recordingUIChange();
- };
- playerControlBar.insertBefore(this.luXiangEle, fullscreenBtn);
- // TODO 渲染快照
- var snapshotBtn = document.createElement("button");
- snapshotBtn.className = "vjs-control vjs-button vjs-snapshot-control";
- snapshotBtn.type = "button";
- snapshotBtn.title = "快照";
- snapshotBtn.innerHTML = '<span class="iconfont icon-xiangji"></span>';
- playerControlBar.insertBefore(snapshotBtn, fullscreenBtn);
- snapshotBtn.addEventListener("click", function () {
- _this3.saveLocalSnapshot(); //调用保存快照
- });
- // TODO 码率
- if (!this.videoUrl.includes(".mp4")) {
- var bitRate = document.createElement("span");
- bitRate.className = "vjs-control vjs-button vjs-bitrate-control";
- bitRate.type = "span";
- bitRate.title = "码率";
- bitRate.style = "line-height: 30px;width: 75px";
- playerControlBar.insertBefore(bitRate, stretchBtn);
- }
- },
- setFLVListener: function setFLVListener() {
- this.createKbps(Math.ceil(this.easyPlayer.tech_.flvPlayer._transmuxer._controller._ioctl._speedSampler.averageKBps * 8));
- },
- //TODO 渲染 码率
- createKbps: function createKbps(kbps) {
- if (this.pause) return this.$el.querySelector(".vjs-bitrate-control").innerHTML = "";
- if (kbps > 1024) kbps = (kbps / 1024).toFixed(2) + " Mb/s";else kbps = kbps.toFixed(2) + " Kb/s";
- this.$el.querySelector(".vjs-bitrate-control").innerHTML = kbps;
- },
- //TODO 显示版本信息
- showVersion: function showVersion() {
- var _this4 = this;
- //TODO 加载版本号 2021年11月01日
- var easyH5Player = this.$refs.easyH5Player;
- var videoEle = this.$el.querySelector(".easy-video-player-inner");
- if (videoEle) videoEle.setAttribute('oncontextmenu', 'return false'); //禁止原生video 右击事件
- easyH5Player.oncontextmenu = function (e) {
- var positionStyle = {
- left: e.offsetX + "px",
- top: e.offsetY + "px",
- pointerEvents: 'auto'
- };
- _this4.showRightMenu = true;
- _this4.versionStyle = Object.assign(_this4.versionStyle, positionStyle);
- };
- easyH5Player.onclick = function () {
- _this4.showRightMenu = false;
- _this4.versionStyle = Object.assign(_this4.versionStyle, { pointerEvents: 'none' });
- };
- },
- //TODO 右击复制播放地址
- onTouchCopyVideoSrc: function onTouchCopyVideoSrc() {
- var inputEle = document.createElement('input');
- this.$refs.easyH5Player.appendChild(inputEle);
- inputEle.value = this.videoUrl; // 复制到剪切板的内容
- inputEle.select();
- if (!document.execCommand) return;
- document.execCommand("copy");
- this.$refs.easyH5Player.removeChild(inputEle);
- },
- onTouchRightMenuClose: function onTouchRightMenuClose() {
- var _this5 = this;
- if (!this.videoUrl) return;
- this.$emit("change", '');
- this.$emit("rightMenuClose");
- this.$nextTick(function () {
- if (document.getElementById(_this5._videoId)) _this5.destroyPlayer();
- });
- },
- //TODO 保存快照
- saveLocalSnapshot: function saveLocalSnapshot() {
- try {
- var date = new Date(); //实例一个时间对象;
- var year = date.getFullYear(); //获取系统的年;
- var month = date.getMonth() + 1; //获取系统月份,由于月份是从0开始计算,所以要加1
- var day = date.getDate(); //获取系统日
- var hour = date.getHours(); //获取系统时间
- var minute = date.getMinutes(); //分
- var second = date.getSeconds(); //秒
- var fileName = this.recordFileName ? this.recordFileName + "-" + year + month + day + hour + minute + second + ".png" : "EasyPlayer-" + year + month + day + hour + minute + second + ".png";
- var fileType = "png"; // 如果文件名中没有带后缀,默认使用png
- // 判断保存的图片格式
- switch (fileName) {
- case fileName.indexOf("png") > -1:
- fileType = "png";
- break;
- case fileName.indexOf("jpg") > -1:
- fileType = "jpg";
- break;
- case fileName.indexOf("jpeg") > -1:
- fileType = "jpeg";
- break;
- case fileName.indexOf("bmp") > -1:
- fileType = "bmp";
- break;
- case fileName.indexOf("gif") > -1:
- fileType = "gif";
- break;
- default:
- fileType = "png";
- break;
- }
- var strDataURL = void 0,
- canvas = void 0;
- if (this.easyPlayer === null) return;
- var _easyPlayer$el_$child = _slicedToArray(this.easyPlayer.el_.children, 1),
- video = _easyPlayer$el_$child[0];
- if (!!video && video.tagName.toUpperCase() === "object".toUpperCase()) {
- // 如果是播放rtmp流时,截图调用这个
- strDataURL = video.vjs_snap();
- } else {
- canvas = window.canvas = document.createElement("canvas");
- canvas.width = video.videoWidth;
- canvas.height = video.videoHeight;
- canvas.getContext("2d").drawImage(video, 0, 0, canvas.width, canvas.height); // 图片大小和视频分辨率一致
- strDataURL = canvas.toDataURL("image/" + fileType); // canvas中video中取一帧图片并转成dataURL
- }
- if (strDataURL.trim().length === 6) return;
- if (this.isCacheCleanUp) return this.restartSnapshot = strDataURL;
- var arr = strDataURL.split(","),
- mime = arr[0].match(/:(.*?);/)[1],
- bstr = atob(arr[1]),
- n = bstr.length,
- u8arr = new Uint8Array(n);
- while (n--) {
- u8arr[n] = bstr.charCodeAt(n);
- }
- var blob = new Blob([u8arr], {
- type: mime
- });
- var url = window.URL.createObjectURL(blob);
- var a = document.createElement("a");
- a.style.display = "none";
- a.href = url;
- a.download = fileName;
- a.click();
- document.body.appendChild(a);
- setTimeout(function () {
- document.body.removeChild(a);
- window.URL.revokeObjectURL(url);
- }, 1000);
- } catch (e) {
- console.log("e", e);
- }
- }
- }
- };
- /***/ }),
- /***/ "/+iU":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // A bit simpler than readable streams.
- // Implement an async ._write(chunk, encoding, cb), and it'll handle all
- // the drain event emission and buffering.
- module.exports = Writable;
- /* <replacement> */
- function WriteReq(chunk, encoding, cb) {
- this.chunk = chunk;
- this.encoding = encoding;
- this.callback = cb;
- this.next = null;
- }
- // It seems a linked list but it is not
- // there will be only 2 of these for each stream
- function CorkedRequest(state) {
- var _this = this;
- this.next = null;
- this.entry = null;
- this.finish = function () {
- onCorkedFinish(_this, state);
- };
- }
- /* </replacement> */
- /*<replacement>*/
- var Duplex;
- /*</replacement>*/
- Writable.WritableState = WritableState;
- /*<replacement>*/
- var internalUtil = {
- deprecate: __webpack_require__("iP15")
- };
- /*</replacement>*/
- /*<replacement>*/
- var Stream = __webpack_require__("xXuq");
- /*</replacement>*/
- var Buffer = __webpack_require__("EuP9").Buffer;
- var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};
- function _uint8ArrayToBuffer(chunk) {
- return Buffer.from(chunk);
- }
- function _isUint8Array(obj) {
- return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
- }
- var destroyImpl = __webpack_require__("EzfO");
- var _require = __webpack_require__("hBHd"),
- getHighWaterMark = _require.getHighWaterMark;
- var _require$codes = __webpack_require__("WrlE").codes,
- ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,
- ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,
- ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,
- ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,
- ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,
- ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,
- ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,
- ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;
- var errorOrDestroy = destroyImpl.errorOrDestroy;
- __webpack_require__("LC74")(Writable, Stream);
- function nop() {}
- function WritableState(options, stream, isDuplex) {
- Duplex = Duplex || __webpack_require__("PBMQ");
- options = options || {};
- // Duplex streams are both readable and writable, but share
- // the same options object.
- // However, some cases require setting options to different
- // values for the readable and the writable sides of the duplex stream,
- // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.
- if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;
- // object stream flag to indicate whether or not this stream
- // contains buffers or objects.
- this.objectMode = !!options.objectMode;
- if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
- // the point at which write() starts returning false
- // Note: 0 is a valid value, means that we always return false if
- // the entire buffer is not flushed immediately on write()
- this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);
- // if _final has been called
- this.finalCalled = false;
- // drain event flag.
- this.needDrain = false;
- // at the start of calling end()
- this.ending = false;
- // when end() has been called, and returned
- this.ended = false;
- // when 'finish' is emitted
- this.finished = false;
- // has it been destroyed
- this.destroyed = false;
- // should we decode strings into buffers before passing to _write?
- // this is here so that some node-core streams can optimize string
- // handling at a lower level.
- var noDecode = options.decodeStrings === false;
- this.decodeStrings = !noDecode;
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
- // not an actual buffer we keep track of, but a measurement
- // of how much we're waiting to get pushed to some underlying
- // socket or file.
- this.length = 0;
- // a flag to see when we're in the middle of a write.
- this.writing = false;
- // when true all writes will be buffered until .uncork() call
- this.corked = 0;
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
- // a flag to know if we're processing previously buffered items, which
- // may call the _write() callback in the same tick, so that we don't
- // end up in an overlapped onwrite situation.
- this.bufferProcessing = false;
- // the callback that's passed to _write(chunk,cb)
- this.onwrite = function (er) {
- onwrite(stream, er);
- };
- // the callback that the user supplies to write(chunk,encoding,cb)
- this.writecb = null;
- // the amount that is being written when _write is called.
- this.writelen = 0;
- this.bufferedRequest = null;
- this.lastBufferedRequest = null;
- // number of pending user-supplied write callbacks
- // this must be 0 before 'finish' can be emitted
- this.pendingcb = 0;
- // emit prefinish if the only thing we're waiting for is _write cbs
- // This is relevant for synchronous Transform streams
- this.prefinished = false;
- // True if the error was already emitted and should not be thrown again
- this.errorEmitted = false;
- // Should close be emitted on destroy. Defaults to true.
- this.emitClose = options.emitClose !== false;
- // Should .destroy() be called after 'finish' (and potentially 'end')
- this.autoDestroy = !!options.autoDestroy;
- // count buffered requests
- this.bufferedRequestCount = 0;
- // allocate the first CorkedRequest, there is always
- // one allocated and free to use, and we maintain at most two
- this.corkedRequestsFree = new CorkedRequest(this);
- }
- WritableState.prototype.getBuffer = function getBuffer() {
- var current = this.bufferedRequest;
- var out = [];
- while (current) {
- out.push(current);
- current = current.next;
- }
- return out;
- };
- (function () {
- try {
- Object.defineProperty(WritableState.prototype, 'buffer', {
- get: internalUtil.deprecate(function writableStateBufferGetter() {
- return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
- });
- } catch (_) {}
- })();
- // Test _writableState for inheritance to account for Duplex streams,
- // whose prototype chain only points to Readable.
- var realHasInstance;
- if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
- realHasInstance = Function.prototype[Symbol.hasInstance];
- Object.defineProperty(Writable, Symbol.hasInstance, {
- value: function value(object) {
- if (realHasInstance.call(this, object)) return true;
- if (this !== Writable) return false;
- return object && object._writableState instanceof WritableState;
- }
- });
- } else {
- realHasInstance = function realHasInstance(object) {
- return object instanceof this;
- };
- }
- function Writable(options) {
- Duplex = Duplex || __webpack_require__("PBMQ");
- // Writable ctor is applied to Duplexes, too.
- // `realHasInstance` is necessary because using plain `instanceof`
- // would return false, as no `_writableState` property is attached.
- // Trying to use the custom `instanceof` for Writable here will also break the
- // Node.js LazyTransform implementation, which has a non-trivial getter for
- // `_writableState` that would lead to infinite recursion.
- // Checking for a Stream.Duplex instance is faster here instead of inside
- // the WritableState constructor, at least with V8 6.5
- var isDuplex = this instanceof Duplex;
- if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);
- this._writableState = new WritableState(options, this, isDuplex);
- // legacy.
- this.writable = true;
- if (options) {
- if (typeof options.write === 'function') this._write = options.write;
- if (typeof options.writev === 'function') this._writev = options.writev;
- if (typeof options.destroy === 'function') this._destroy = options.destroy;
- if (typeof options.final === 'function') this._final = options.final;
- }
- Stream.call(this);
- }
- // Otherwise people can pipe Writable streams, which is just wrong.
- Writable.prototype.pipe = function () {
- errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());
- };
- function writeAfterEnd(stream, cb) {
- var er = new ERR_STREAM_WRITE_AFTER_END();
- // TODO: defer error events consistently everywhere, not just the cb
- errorOrDestroy(stream, er);
- process.nextTick(cb, er);
- }
- // Checks that a user-supplied chunk is valid, especially for the particular
- // mode the stream is in. Currently this means that `null` is never accepted
- // and undefined/non-string values are only allowed in object mode.
- function validChunk(stream, state, chunk, cb) {
- var er;
- if (chunk === null) {
- er = new ERR_STREAM_NULL_VALUES();
- } else if (typeof chunk !== 'string' && !state.objectMode) {
- er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);
- }
- if (er) {
- errorOrDestroy(stream, er);
- process.nextTick(cb, er);
- return false;
- }
- return true;
- }
- Writable.prototype.write = function (chunk, encoding, cb) {
- var state = this._writableState;
- var ret = false;
- var isBuf = !state.objectMode && _isUint8Array(chunk);
- if (isBuf && !Buffer.isBuffer(chunk)) {
- chunk = _uint8ArrayToBuffer(chunk);
- }
- if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
- if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
- if (typeof cb !== 'function') cb = nop;
- if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
- state.pendingcb++;
- ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
- }
- return ret;
- };
- Writable.prototype.cork = function () {
- this._writableState.corked++;
- };
- Writable.prototype.uncork = function () {
- var state = this._writableState;
- if (state.corked) {
- state.corked--;
- if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
- }
- };
- Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
- // node::ParseEncoding() requires lower case.
- if (typeof encoding === 'string') encoding = encoding.toLowerCase();
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);
- this._writableState.defaultEncoding = encoding;
- return this;
- };
- Object.defineProperty(Writable.prototype, 'writableBuffer', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState && this._writableState.getBuffer();
- }
- });
- function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
- chunk = Buffer.from(chunk, encoding);
- }
- return chunk;
- }
- Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState.highWaterMark;
- }
- });
- // if we're already writing something, then just put this
- // in the queue, and wait our turn. Otherwise, call _write
- // If we return false, then we need a drain event, so set that flag.
- function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
- if (!isBuf) {
- var newChunk = decodeChunk(state, chunk, encoding);
- if (chunk !== newChunk) {
- isBuf = true;
- encoding = 'buffer';
- chunk = newChunk;
- }
- }
- var len = state.objectMode ? 1 : chunk.length;
- state.length += len;
- var ret = state.length < state.highWaterMark;
- // we must ensure that previous needDrain will not be reset to false.
- if (!ret) state.needDrain = true;
- if (state.writing || state.corked) {
- var last = state.lastBufferedRequest;
- state.lastBufferedRequest = {
- chunk: chunk,
- encoding: encoding,
- isBuf: isBuf,
- callback: cb,
- next: null
- };
- if (last) {
- last.next = state.lastBufferedRequest;
- } else {
- state.bufferedRequest = state.lastBufferedRequest;
- }
- state.bufferedRequestCount += 1;
- } else {
- doWrite(stream, state, false, len, chunk, encoding, cb);
- }
- return ret;
- }
- function doWrite(stream, state, writev, len, chunk, encoding, cb) {
- state.writelen = len;
- state.writecb = cb;
- state.writing = true;
- state.sync = true;
- if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
- state.sync = false;
- }
- function onwriteError(stream, state, sync, er, cb) {
- --state.pendingcb;
- if (sync) {
- // defer the callback if we are being called synchronously
- // to avoid piling up things on the stack
- process.nextTick(cb, er);
- // this can emit finish, and it will always happen
- // after error
- process.nextTick(finishMaybe, stream, state);
- stream._writableState.errorEmitted = true;
- errorOrDestroy(stream, er);
- } else {
- // the caller expect this to happen before if
- // it is async
- cb(er);
- stream._writableState.errorEmitted = true;
- errorOrDestroy(stream, er);
- // this can emit finish, but finish must
- // always follow error
- finishMaybe(stream, state);
- }
- }
- function onwriteStateUpdate(state) {
- state.writing = false;
- state.writecb = null;
- state.length -= state.writelen;
- state.writelen = 0;
- }
- function onwrite(stream, er) {
- var state = stream._writableState;
- var sync = state.sync;
- var cb = state.writecb;
- if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();
- onwriteStateUpdate(state);
- if (er) onwriteError(stream, state, sync, er, cb);else {
- // Check if we're actually ready to finish, but don't emit yet
- var finished = needFinish(state) || stream.destroyed;
- if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
- clearBuffer(stream, state);
- }
- if (sync) {
- process.nextTick(afterWrite, stream, state, finished, cb);
- } else {
- afterWrite(stream, state, finished, cb);
- }
- }
- }
- function afterWrite(stream, state, finished, cb) {
- if (!finished) onwriteDrain(stream, state);
- state.pendingcb--;
- cb();
- finishMaybe(stream, state);
- }
- // Must force callback to be called on nextTick, so that we don't
- // emit 'drain' before the write() consumer gets the 'false' return
- // value, and has a chance to attach a 'drain' listener.
- function onwriteDrain(stream, state) {
- if (state.length === 0 && state.needDrain) {
- state.needDrain = false;
- stream.emit('drain');
- }
- }
- // if there's something in the buffer waiting, then process it
- function clearBuffer(stream, state) {
- state.bufferProcessing = true;
- var entry = state.bufferedRequest;
- if (stream._writev && entry && entry.next) {
- // Fast case, write everything using _writev()
- var l = state.bufferedRequestCount;
- var buffer = new Array(l);
- var holder = state.corkedRequestsFree;
- holder.entry = entry;
- var count = 0;
- var allBuffers = true;
- while (entry) {
- buffer[count] = entry;
- if (!entry.isBuf) allBuffers = false;
- entry = entry.next;
- count += 1;
- }
- buffer.allBuffers = allBuffers;
- doWrite(stream, state, true, state.length, buffer, '', holder.finish);
- // doWrite is almost always async, defer these to save a bit of time
- // as the hot path ends with doWrite
- state.pendingcb++;
- state.lastBufferedRequest = null;
- if (holder.next) {
- state.corkedRequestsFree = holder.next;
- holder.next = null;
- } else {
- state.corkedRequestsFree = new CorkedRequest(state);
- }
- state.bufferedRequestCount = 0;
- } else {
- // Slow case, write chunks one-by-one
- while (entry) {
- var chunk = entry.chunk;
- var encoding = entry.encoding;
- var cb = entry.callback;
- var len = state.objectMode ? 1 : chunk.length;
- doWrite(stream, state, false, len, chunk, encoding, cb);
- entry = entry.next;
- state.bufferedRequestCount--;
- // if we didn't call the onwrite immediately, then
- // it means that we need to wait until it does.
- // also, that means that the chunk and cb are currently
- // being processed, so move the buffer counter past them.
- if (state.writing) {
- break;
- }
- }
- if (entry === null) state.lastBufferedRequest = null;
- }
- state.bufferedRequest = entry;
- state.bufferProcessing = false;
- }
- Writable.prototype._write = function (chunk, encoding, cb) {
- cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));
- };
- Writable.prototype._writev = null;
- Writable.prototype.end = function (chunk, encoding, cb) {
- var state = this._writableState;
- if (typeof chunk === 'function') {
- cb = chunk;
- chunk = null;
- encoding = null;
- } else if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
- if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
- // .end() fully uncorks
- if (state.corked) {
- state.corked = 1;
- this.uncork();
- }
- // ignore unnecessary end() calls.
- if (!state.ending) endWritable(this, state, cb);
- return this;
- };
- Object.defineProperty(Writable.prototype, 'writableLength', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState.length;
- }
- });
- function needFinish(state) {
- return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
- }
- function callFinal(stream, state) {
- stream._final(function (err) {
- state.pendingcb--;
- if (err) {
- errorOrDestroy(stream, err);
- }
- state.prefinished = true;
- stream.emit('prefinish');
- finishMaybe(stream, state);
- });
- }
- function prefinish(stream, state) {
- if (!state.prefinished && !state.finalCalled) {
- if (typeof stream._final === 'function' && !state.destroyed) {
- state.pendingcb++;
- state.finalCalled = true;
- process.nextTick(callFinal, stream, state);
- } else {
- state.prefinished = true;
- stream.emit('prefinish');
- }
- }
- }
- function finishMaybe(stream, state) {
- var need = needFinish(state);
- if (need) {
- prefinish(stream, state);
- if (state.pendingcb === 0) {
- state.finished = true;
- stream.emit('finish');
- if (state.autoDestroy) {
- // In case of duplex streams we need a way to detect
- // if the readable side is ready for autoDestroy as well
- var rState = stream._readableState;
- if (!rState || rState.autoDestroy && rState.endEmitted) {
- stream.destroy();
- }
- }
- }
- }
- return need;
- }
- function endWritable(stream, state, cb) {
- state.ending = true;
- finishMaybe(stream, state);
- if (cb) {
- if (state.finished) process.nextTick(cb);else stream.once('finish', cb);
- }
- state.ended = true;
- stream.writable = false;
- }
- function onCorkedFinish(corkReq, state, err) {
- var entry = corkReq.entry;
- corkReq.entry = null;
- while (entry) {
- var cb = entry.callback;
- state.pendingcb--;
- cb(err);
- entry = entry.next;
- }
- // reuse the free corkReq.
- state.corkedRequestsFree.next = corkReq;
- }
- Object.defineProperty(Writable.prototype, 'destroyed', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- if (this._writableState === undefined) {
- return false;
- }
- return this._writableState.destroyed;
- },
- set: function set(value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (!this._writableState) {
- return;
- }
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._writableState.destroyed = value;
- }
- });
- Writable.prototype.destroy = destroyImpl.destroy;
- Writable.prototype._undestroy = destroyImpl.undestroy;
- Writable.prototype._destroy = function (err, cb) {
- cb(err);
- };
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("W2nU")))
- /***/ }),
- /***/ "/MLu":
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__("cSWu").PassThrough
- /***/ }),
- /***/ "/OYm":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // a transform stream is a readable/writable stream where you do
- // something with the data. Sometimes it's called a "filter",
- // but that's not a great name for it, since that implies a thing where
- // some bits pass through, and others are simply ignored. (That would
- // be a valid example of a transform, of course.)
- //
- // While the output is causally related to the input, it's not a
- // necessarily symmetric or synchronous transformation. For example,
- // a zlib stream might take multiple plain-text writes(), and then
- // emit a single compressed chunk some time in the future.
- //
- // Here's how this works:
- //
- // The Transform stream has all the aspects of the readable and writable
- // stream classes. When you write(chunk), that calls _write(chunk,cb)
- // internally, and returns false if there's a lot of pending writes
- // buffered up. When you call read(), that calls _read(n) until
- // there's enough pending readable data buffered up.
- //
- // In a transform stream, the written data is placed in a buffer. When
- // _read(n) is called, it transforms the queued up data, calling the
- // buffered _write cb's as it consumes chunks. If consuming a single
- // written chunk would result in multiple output chunks, then the first
- // outputted bit calls the readcb, and subsequent chunks just go into
- // the read buffer, and will cause it to emit 'readable' if necessary.
- //
- // This way, back-pressure is actually determined by the reading side,
- // since _read has to be called to start processing a new chunk. However,
- // a pathological inflate type of transform can cause excessive buffering
- // here. For example, imagine a stream where every byte of input is
- // interpreted as an integer from 0-255, and then results in that many
- // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
- // 1kb of data being output. In this case, you could write a very small
- // amount of input, and end up with a very large amount of output. In
- // such a pathological inflating mechanism, there'd be no way to tell
- // the system to stop doing the transform. A single 4MB write could
- // cause the system to run out of memory.
- //
- // However, even in such a pathological case, only a single written chunk
- // would be consumed, and then the rest would wait (un-transformed) until
- // the results of the previous transformed chunk were consumed.
- module.exports = Transform;
- var _require$codes = __webpack_require__("3U89").codes,
- ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,
- ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,
- ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,
- ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;
- var Duplex = __webpack_require__("PhfM");
- __webpack_require__("LC74")(Transform, Duplex);
- function afterTransform(er, data) {
- var ts = this._transformState;
- ts.transforming = false;
- var cb = ts.writecb;
- if (cb === null) {
- return this.emit('error', new ERR_MULTIPLE_CALLBACK());
- }
- ts.writechunk = null;
- ts.writecb = null;
- if (data != null)
- // single equals check for both `null` and `undefined`
- this.push(data);
- cb(er);
- var rs = this._readableState;
- rs.reading = false;
- if (rs.needReadable || rs.length < rs.highWaterMark) {
- this._read(rs.highWaterMark);
- }
- }
- function Transform(options) {
- if (!(this instanceof Transform)) return new Transform(options);
- Duplex.call(this, options);
- this._transformState = {
- afterTransform: afterTransform.bind(this),
- needTransform: false,
- transforming: false,
- writecb: null,
- writechunk: null,
- writeencoding: null
- };
- // start out asking for a readable event once data is transformed.
- this._readableState.needReadable = true;
- // we have implemented the _read method, and done the other things
- // that Readable wants before the first _read call, so unset the
- // sync guard flag.
- this._readableState.sync = false;
- if (options) {
- if (typeof options.transform === 'function') this._transform = options.transform;
- if (typeof options.flush === 'function') this._flush = options.flush;
- }
- // When the writable side finishes, then flush out anything remaining.
- this.on('prefinish', prefinish);
- }
- function prefinish() {
- var _this = this;
- if (typeof this._flush === 'function' && !this._readableState.destroyed) {
- this._flush(function (er, data) {
- done(_this, er, data);
- });
- } else {
- done(this, null, null);
- }
- }
- Transform.prototype.push = function (chunk, encoding) {
- this._transformState.needTransform = false;
- return Duplex.prototype.push.call(this, chunk, encoding);
- };
- // This is the part where you do stuff!
- // override this function in implementation classes.
- // 'chunk' is an input chunk.
- //
- // Call `push(newChunk)` to pass along transformed output
- // to the readable side. You may call 'push' zero or more times.
- //
- // Call `cb(err)` when you are done with this chunk. If you pass
- // an error, then that'll put the hurt on the whole operation. If you
- // never call cb(), then you'll never get another chunk.
- Transform.prototype._transform = function (chunk, encoding, cb) {
- cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));
- };
- Transform.prototype._write = function (chunk, encoding, cb) {
- var ts = this._transformState;
- ts.writecb = cb;
- ts.writechunk = chunk;
- ts.writeencoding = encoding;
- if (!ts.transforming) {
- var rs = this._readableState;
- if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
- }
- };
- // Doesn't matter what the args are here.
- // _transform does all the work.
- // That we got here means that the readable side wants more data.
- Transform.prototype._read = function (n) {
- var ts = this._transformState;
- if (ts.writechunk !== null && !ts.transforming) {
- ts.transforming = true;
- this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
- } else {
- // mark that we need a transform, so that any data that comes in
- // will get processed, now that we've asked for it.
- ts.needTransform = true;
- }
- };
- Transform.prototype._destroy = function (err, cb) {
- Duplex.prototype._destroy.call(this, err, function (err2) {
- cb(err2);
- });
- };
- function done(stream, er, data) {
- if (er) return stream.emit('error', er);
- if (data != null)
- // single equals check for both `null` and `undefined`
- stream.push(data);
- // TODO(BridgeAR): Write a test for these two error cases
- // if there's nothing in the write buffer, then that means
- // that nothing more will ever be provided
- if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();
- if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();
- return stream.push(null);
- }
- /***/ }),
- /***/ "/TTR":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__("qMAc");
- if(typeof content === 'string') content = [[module.i, content, '']];
- // Prepare cssTransformation
- var transform;
- var options = {"hmr":true}
- options.transform = transform
- // add the styles to the DOM
- var update = __webpack_require__("MTIv")(content, options);
- if(content.locals) module.exports = content.locals;
- // Hot Module Replacement
- if(false) {
- // When the styles change, update the <style> tags
- if(!content.locals) {
- module.hot.accept("!!../../node_modules/css-loader/index.js!./video-js.css", function() {
- var newContent = require("!!../../node_modules/css-loader/index.js!./video-js.css");
- if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
- update(newContent);
- });
- }
- // When the module is disposed, remove the <style> tags
- module.hot.dispose(function() { update(); });
- }
- /***/ }),
- /***/ "/vd3":
- /***/ (function(module, exports, __webpack_require__) {
- exports.pbkdf2 = __webpack_require__("GUE9")
- exports.pbkdf2Sync = __webpack_require__("Zq1s")
- /***/ }),
- /***/ "/y0r":
- /***/ (function(module, exports, __webpack_require__) {
- var aes = __webpack_require__("BEbT")
- var Buffer = __webpack_require__("X3l8").Buffer
- var Transform = __webpack_require__("z+8S")
- var inherits = __webpack_require__("LC74")
- var GHASH = __webpack_require__("UPHp")
- var xor = __webpack_require__("H2Pp")
- var incr32 = __webpack_require__("4sPJ")
- function xorTest (a, b) {
- var out = 0
- if (a.length !== b.length) out++
- var len = Math.min(a.length, b.length)
- for (var i = 0; i < len; ++i) {
- out += (a[i] ^ b[i])
- }
- return out
- }
- function calcIv (self, iv, ck) {
- if (iv.length === 12) {
- self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])
- return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])
- }
- var ghash = new GHASH(ck)
- var len = iv.length
- var toPad = len % 16
- ghash.update(iv)
- if (toPad) {
- toPad = 16 - toPad
- ghash.update(Buffer.alloc(toPad, 0))
- }
- ghash.update(Buffer.alloc(8, 0))
- var ivBits = len * 8
- var tail = Buffer.alloc(8)
- tail.writeUIntBE(ivBits, 0, 8)
- ghash.update(tail)
- self._finID = ghash.state
- var out = Buffer.from(self._finID)
- incr32(out)
- return out
- }
- function StreamCipher (mode, key, iv, decrypt) {
- Transform.call(this)
- var h = Buffer.alloc(4, 0)
- this._cipher = new aes.AES(key)
- var ck = this._cipher.encryptBlock(h)
- this._ghash = new GHASH(ck)
- iv = calcIv(this, iv, ck)
- this._prev = Buffer.from(iv)
- this._cache = Buffer.allocUnsafe(0)
- this._secCache = Buffer.allocUnsafe(0)
- this._decrypt = decrypt
- this._alen = 0
- this._len = 0
- this._mode = mode
- this._authTag = null
- this._called = false
- }
- inherits(StreamCipher, Transform)
- StreamCipher.prototype._update = function (chunk) {
- if (!this._called && this._alen) {
- var rump = 16 - (this._alen % 16)
- if (rump < 16) {
- rump = Buffer.alloc(rump, 0)
- this._ghash.update(rump)
- }
- }
- this._called = true
- var out = this._mode.encrypt(this, chunk)
- if (this._decrypt) {
- this._ghash.update(chunk)
- } else {
- this._ghash.update(out)
- }
- this._len += chunk.length
- return out
- }
- StreamCipher.prototype._final = function () {
- if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')
- var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))
- if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')
- this._authTag = tag
- this._cipher.scrub()
- }
- StreamCipher.prototype.getAuthTag = function getAuthTag () {
- if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')
- return this._authTag
- }
- StreamCipher.prototype.setAuthTag = function setAuthTag (tag) {
- if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')
- this._authTag = tag
- }
- StreamCipher.prototype.setAAD = function setAAD (buf) {
- if (this._called) throw new Error('Attempting to set AAD in unsupported state')
- this._ghash.update(buf)
- this._alen += buf.length
- }
- module.exports = StreamCipher
- /***/ }),
- /***/ 0:
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__("8liJ");
- /***/ }),
- /***/ "08Lv":
- /***/ (function(module, exports) {
- module.exports = assert;
- function assert(val, msg) {
- if (!val)
- throw new Error(msg || 'Assertion failed');
- }
- assert.equal = function assertEqual(l, r, msg) {
- if (l != r)
- throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));
- };
- /***/ }),
- /***/ "0IYo":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(process) {
- // undocumented cb() API, needed for core, not for public API
- function destroy(err, cb) {
- var _this = this;
- var readableDestroyed = this._readableState && this._readableState.destroyed;
- var writableDestroyed = this._writableState && this._writableState.destroyed;
- if (readableDestroyed || writableDestroyed) {
- if (cb) {
- cb(err);
- } else if (err) {
- if (!this._writableState) {
- process.nextTick(emitErrorNT, this, err);
- } else if (!this._writableState.errorEmitted) {
- this._writableState.errorEmitted = true;
- process.nextTick(emitErrorNT, this, err);
- }
- }
- return this;
- }
- // we set destroyed to true before firing error callbacks in order
- // to make it re-entrance safe in case destroy() is called within callbacks
- if (this._readableState) {
- this._readableState.destroyed = true;
- }
- // if this is a duplex stream mark the writable part as destroyed as well
- if (this._writableState) {
- this._writableState.destroyed = true;
- }
- this._destroy(err || null, function (err) {
- if (!cb && err) {
- if (!_this._writableState) {
- process.nextTick(emitErrorAndCloseNT, _this, err);
- } else if (!_this._writableState.errorEmitted) {
- _this._writableState.errorEmitted = true;
- process.nextTick(emitErrorAndCloseNT, _this, err);
- } else {
- process.nextTick(emitCloseNT, _this);
- }
- } else if (cb) {
- process.nextTick(emitCloseNT, _this);
- cb(err);
- } else {
- process.nextTick(emitCloseNT, _this);
- }
- });
- return this;
- }
- function emitErrorAndCloseNT(self, err) {
- emitErrorNT(self, err);
- emitCloseNT(self);
- }
- function emitCloseNT(self) {
- if (self._writableState && !self._writableState.emitClose) return;
- if (self._readableState && !self._readableState.emitClose) return;
- self.emit('close');
- }
- function undestroy() {
- if (this._readableState) {
- this._readableState.destroyed = false;
- this._readableState.reading = false;
- this._readableState.ended = false;
- this._readableState.endEmitted = false;
- }
- if (this._writableState) {
- this._writableState.destroyed = false;
- this._writableState.ended = false;
- this._writableState.ending = false;
- this._writableState.finalCalled = false;
- this._writableState.prefinished = false;
- this._writableState.finished = false;
- this._writableState.errorEmitted = false;
- }
- }
- function emitErrorNT(self, err) {
- self.emit('error', err);
- }
- function errorOrDestroy(stream, err) {
- // We have tests that rely on errors being emitted
- // in the same tick, so changing this is semver major.
- // For now when you opt-in to autoDestroy we allow
- // the error to be emitted nextTick. In a future
- // semver major update we should change the default to this.
- var rState = stream._readableState;
- var wState = stream._writableState;
- if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);
- }
- module.exports = {
- destroy: destroy,
- undestroy: undestroy,
- errorOrDestroy: errorOrDestroy
- };
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("W2nU")))
- /***/ }),
- /***/ 1:
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ }),
- /***/ 10:
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ }),
- /***/ "162o":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
- (typeof self !== "undefined" && self) ||
- window;
- var apply = Function.prototype.apply;
- // DOM APIs, for completeness
- exports.setTimeout = function() {
- return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
- };
- exports.setInterval = function() {
- return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
- };
- exports.clearTimeout =
- exports.clearInterval = function(timeout) {
- if (timeout) {
- timeout.close();
- }
- };
- function Timeout(id, clearFn) {
- this._id = id;
- this._clearFn = clearFn;
- }
- Timeout.prototype.unref = Timeout.prototype.ref = function() {};
- Timeout.prototype.close = function() {
- this._clearFn.call(scope, this._id);
- };
- // Does not start the time, just sets up the members needed.
- exports.enroll = function(item, msecs) {
- clearTimeout(item._idleTimeoutId);
- item._idleTimeout = msecs;
- };
- exports.unenroll = function(item) {
- clearTimeout(item._idleTimeoutId);
- item._idleTimeout = -1;
- };
- exports._unrefActive = exports.active = function(item) {
- clearTimeout(item._idleTimeoutId);
- var msecs = item._idleTimeout;
- if (msecs >= 0) {
- item._idleTimeoutId = setTimeout(function onTimeout() {
- if (item._onTimeout)
- item._onTimeout();
- }, msecs);
- }
- };
- // setimmediate attaches itself to the global object
- __webpack_require__("mypn");
- // On some exotic environments, it's not clear which object `setimmediate` was
- // able to install onto. Search each possibility in the same order as the
- // `setimmediate` library.
- exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
- (typeof global !== "undefined" && global.setImmediate) ||
- (this && this.setImmediate);
- exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
- (typeof global !== "undefined" && global.clearImmediate) ||
- (this && this.clearImmediate);
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2")))
- /***/ }),
- /***/ "16On":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const inherits = __webpack_require__("LC74");
- function Reporter(options) {
- this._reporterState = {
- obj: null,
- path: [],
- options: options || {},
- errors: []
- };
- }
- exports.Reporter = Reporter;
- Reporter.prototype.isError = function isError(obj) {
- return obj instanceof ReporterError;
- };
- Reporter.prototype.save = function save() {
- const state = this._reporterState;
- return { obj: state.obj, pathLen: state.path.length };
- };
- Reporter.prototype.restore = function restore(data) {
- const state = this._reporterState;
- state.obj = data.obj;
- state.path = state.path.slice(0, data.pathLen);
- };
- Reporter.prototype.enterKey = function enterKey(key) {
- return this._reporterState.path.push(key);
- };
- Reporter.prototype.exitKey = function exitKey(index) {
- const state = this._reporterState;
- state.path = state.path.slice(0, index - 1);
- };
- Reporter.prototype.leaveKey = function leaveKey(index, key, value) {
- const state = this._reporterState;
- this.exitKey(index);
- if (state.obj !== null)
- state.obj[key] = value;
- };
- Reporter.prototype.path = function path() {
- return this._reporterState.path.join('/');
- };
- Reporter.prototype.enterObject = function enterObject() {
- const state = this._reporterState;
- const prev = state.obj;
- state.obj = {};
- return prev;
- };
- Reporter.prototype.leaveObject = function leaveObject(prev) {
- const state = this._reporterState;
- const now = state.obj;
- state.obj = prev;
- return now;
- };
- Reporter.prototype.error = function error(msg) {
- let err;
- const state = this._reporterState;
- const inherited = msg instanceof ReporterError;
- if (inherited) {
- err = msg;
- } else {
- err = new ReporterError(state.path.map(function(elem) {
- return '[' + JSON.stringify(elem) + ']';
- }).join(''), msg.message || msg, msg.stack);
- }
- if (!state.options.partial)
- throw err;
- if (!inherited)
- state.errors.push(err);
- return err;
- };
- Reporter.prototype.wrapResult = function wrapResult(result) {
- const state = this._reporterState;
- if (!state.options.partial)
- return result;
- return {
- result: this.isError(result) ? null : result,
- errors: state.errors
- };
- };
- function ReporterError(path, msg) {
- this.path = path;
- this.rethrow(msg);
- }
- inherits(ReporterError, Error);
- ReporterError.prototype.rethrow = function rethrow(msg) {
- this.message = msg + ' at: ' + (this.path || '(shallow)');
- if (Error.captureStackTrace)
- Error.captureStackTrace(this, ReporterError);
- if (!this.stack) {
- try {
- // IE only adds stack when thrown
- throw new Error(this.message);
- } catch (e) {
- this.stack = e.stack;
- }
- }
- return this;
- };
- /***/ }),
- /***/ "19bf":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js
- // Fedor, you are amazing.
- var asn1 = __webpack_require__("KDHK")
- exports.certificate = __webpack_require__("lQBd")
- var RSAPrivateKey = asn1.define('RSAPrivateKey', function () {
- this.seq().obj(
- this.key('version').int(),
- this.key('modulus').int(),
- this.key('publicExponent').int(),
- this.key('privateExponent').int(),
- this.key('prime1').int(),
- this.key('prime2').int(),
- this.key('exponent1').int(),
- this.key('exponent2').int(),
- this.key('coefficient').int()
- )
- })
- exports.RSAPrivateKey = RSAPrivateKey
- var RSAPublicKey = asn1.define('RSAPublicKey', function () {
- this.seq().obj(
- this.key('modulus').int(),
- this.key('publicExponent').int()
- )
- })
- exports.RSAPublicKey = RSAPublicKey
- var PublicKey = asn1.define('SubjectPublicKeyInfo', function () {
- this.seq().obj(
- this.key('algorithm').use(AlgorithmIdentifier),
- this.key('subjectPublicKey').bitstr()
- )
- })
- exports.PublicKey = PublicKey
- var AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {
- this.seq().obj(
- this.key('algorithm').objid(),
- this.key('none').null_().optional(),
- this.key('curve').objid().optional(),
- this.key('params').seq().obj(
- this.key('p').int(),
- this.key('q').int(),
- this.key('g').int()
- ).optional()
- )
- })
- var PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {
- this.seq().obj(
- this.key('version').int(),
- this.key('algorithm').use(AlgorithmIdentifier),
- this.key('subjectPrivateKey').octstr()
- )
- })
- exports.PrivateKey = PrivateKeyInfo
- var EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {
- this.seq().obj(
- this.key('algorithm').seq().obj(
- this.key('id').objid(),
- this.key('decrypt').seq().obj(
- this.key('kde').seq().obj(
- this.key('id').objid(),
- this.key('kdeparams').seq().obj(
- this.key('salt').octstr(),
- this.key('iters').int()
- )
- ),
- this.key('cipher').seq().obj(
- this.key('algo').objid(),
- this.key('iv').octstr()
- )
- )
- ),
- this.key('subjectPrivateKey').octstr()
- )
- })
- exports.EncryptedPrivateKey = EncryptedPrivateKeyInfo
- var DSAPrivateKey = asn1.define('DSAPrivateKey', function () {
- this.seq().obj(
- this.key('version').int(),
- this.key('p').int(),
- this.key('q').int(),
- this.key('g').int(),
- this.key('pub_key').int(),
- this.key('priv_key').int()
- )
- })
- exports.DSAPrivateKey = DSAPrivateKey
- exports.DSAparam = asn1.define('DSAparam', function () {
- this.int()
- })
- var ECPrivateKey = asn1.define('ECPrivateKey', function () {
- this.seq().obj(
- this.key('version').int(),
- this.key('privateKey').octstr(),
- this.key('parameters').optional().explicit(0).use(ECParameters),
- this.key('publicKey').optional().explicit(1).bitstr()
- )
- })
- exports.ECPrivateKey = ECPrivateKey
- var ECParameters = asn1.define('ECParameters', function () {
- this.choice({
- namedCurve: this.objid()
- })
- })
- exports.signature = asn1.define('signature', function () {
- this.seq().obj(
- this.key('r').int(),
- this.key('s').int()
- )
- })
- /***/ }),
- /***/ "1lLf":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var assert = __webpack_require__("08Lv");
- var inherits = __webpack_require__("LC74");
- exports.inherits = inherits;
- function isSurrogatePair(msg, i) {
- if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {
- return false;
- }
- if (i < 0 || i + 1 >= msg.length) {
- return false;
- }
- return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;
- }
- function toArray(msg, enc) {
- if (Array.isArray(msg))
- return msg.slice();
- if (!msg)
- return [];
- var res = [];
- if (typeof msg === 'string') {
- if (!enc) {
- // Inspired by stringToUtf8ByteArray() in closure-library by Google
- // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143
- // Apache License 2.0
- // https://github.com/google/closure-library/blob/master/LICENSE
- var p = 0;
- for (var i = 0; i < msg.length; i++) {
- var c = msg.charCodeAt(i);
- if (c < 128) {
- res[p++] = c;
- } else if (c < 2048) {
- res[p++] = (c >> 6) | 192;
- res[p++] = (c & 63) | 128;
- } else if (isSurrogatePair(msg, i)) {
- c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);
- res[p++] = (c >> 18) | 240;
- res[p++] = ((c >> 12) & 63) | 128;
- res[p++] = ((c >> 6) & 63) | 128;
- res[p++] = (c & 63) | 128;
- } else {
- res[p++] = (c >> 12) | 224;
- res[p++] = ((c >> 6) & 63) | 128;
- res[p++] = (c & 63) | 128;
- }
- }
- } else if (enc === 'hex') {
- msg = msg.replace(/[^a-z0-9]+/ig, '');
- if (msg.length % 2 !== 0)
- msg = '0' + msg;
- for (i = 0; i < msg.length; i += 2)
- res.push(parseInt(msg[i] + msg[i + 1], 16));
- }
- } else {
- for (i = 0; i < msg.length; i++)
- res[i] = msg[i] | 0;
- }
- return res;
- }
- exports.toArray = toArray;
- function toHex(msg) {
- var res = '';
- for (var i = 0; i < msg.length; i++)
- res += zero2(msg[i].toString(16));
- return res;
- }
- exports.toHex = toHex;
- function htonl(w) {
- var res = (w >>> 24) |
- ((w >>> 8) & 0xff00) |
- ((w << 8) & 0xff0000) |
- ((w & 0xff) << 24);
- return res >>> 0;
- }
- exports.htonl = htonl;
- function toHex32(msg, endian) {
- var res = '';
- for (var i = 0; i < msg.length; i++) {
- var w = msg[i];
- if (endian === 'little')
- w = htonl(w);
- res += zero8(w.toString(16));
- }
- return res;
- }
- exports.toHex32 = toHex32;
- function zero2(word) {
- if (word.length === 1)
- return '0' + word;
- else
- return word;
- }
- exports.zero2 = zero2;
- function zero8(word) {
- if (word.length === 7)
- return '0' + word;
- else if (word.length === 6)
- return '00' + word;
- else if (word.length === 5)
- return '000' + word;
- else if (word.length === 4)
- return '0000' + word;
- else if (word.length === 3)
- return '00000' + word;
- else if (word.length === 2)
- return '000000' + word;
- else if (word.length === 1)
- return '0000000' + word;
- else
- return word;
- }
- exports.zero8 = zero8;
- function join32(msg, start, end, endian) {
- var len = end - start;
- assert(len % 4 === 0);
- var res = new Array(len / 4);
- for (var i = 0, k = start; i < res.length; i++, k += 4) {
- var w;
- if (endian === 'big')
- w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];
- else
- w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];
- res[i] = w >>> 0;
- }
- return res;
- }
- exports.join32 = join32;
- function split32(msg, endian) {
- var res = new Array(msg.length * 4);
- for (var i = 0, k = 0; i < msg.length; i++, k += 4) {
- var m = msg[i];
- if (endian === 'big') {
- res[k] = m >>> 24;
- res[k + 1] = (m >>> 16) & 0xff;
- res[k + 2] = (m >>> 8) & 0xff;
- res[k + 3] = m & 0xff;
- } else {
- res[k + 3] = m >>> 24;
- res[k + 2] = (m >>> 16) & 0xff;
- res[k + 1] = (m >>> 8) & 0xff;
- res[k] = m & 0xff;
- }
- }
- return res;
- }
- exports.split32 = split32;
- function rotr32(w, b) {
- return (w >>> b) | (w << (32 - b));
- }
- exports.rotr32 = rotr32;
- function rotl32(w, b) {
- return (w << b) | (w >>> (32 - b));
- }
- exports.rotl32 = rotl32;
- function sum32(a, b) {
- return (a + b) >>> 0;
- }
- exports.sum32 = sum32;
- function sum32_3(a, b, c) {
- return (a + b + c) >>> 0;
- }
- exports.sum32_3 = sum32_3;
- function sum32_4(a, b, c, d) {
- return (a + b + c + d) >>> 0;
- }
- exports.sum32_4 = sum32_4;
- function sum32_5(a, b, c, d, e) {
- return (a + b + c + d + e) >>> 0;
- }
- exports.sum32_5 = sum32_5;
- function sum64(buf, pos, ah, al) {
- var bh = buf[pos];
- var bl = buf[pos + 1];
- var lo = (al + bl) >>> 0;
- var hi = (lo < al ? 1 : 0) + ah + bh;
- buf[pos] = hi >>> 0;
- buf[pos + 1] = lo;
- }
- exports.sum64 = sum64;
- function sum64_hi(ah, al, bh, bl) {
- var lo = (al + bl) >>> 0;
- var hi = (lo < al ? 1 : 0) + ah + bh;
- return hi >>> 0;
- }
- exports.sum64_hi = sum64_hi;
- function sum64_lo(ah, al, bh, bl) {
- var lo = al + bl;
- return lo >>> 0;
- }
- exports.sum64_lo = sum64_lo;
- function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
- var carry = 0;
- var lo = al;
- lo = (lo + bl) >>> 0;
- carry += lo < al ? 1 : 0;
- lo = (lo + cl) >>> 0;
- carry += lo < cl ? 1 : 0;
- lo = (lo + dl) >>> 0;
- carry += lo < dl ? 1 : 0;
- var hi = ah + bh + ch + dh + carry;
- return hi >>> 0;
- }
- exports.sum64_4_hi = sum64_4_hi;
- function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
- var lo = al + bl + cl + dl;
- return lo >>> 0;
- }
- exports.sum64_4_lo = sum64_4_lo;
- function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
- var carry = 0;
- var lo = al;
- lo = (lo + bl) >>> 0;
- carry += lo < al ? 1 : 0;
- lo = (lo + cl) >>> 0;
- carry += lo < cl ? 1 : 0;
- lo = (lo + dl) >>> 0;
- carry += lo < dl ? 1 : 0;
- lo = (lo + el) >>> 0;
- carry += lo < el ? 1 : 0;
- var hi = ah + bh + ch + dh + eh + carry;
- return hi >>> 0;
- }
- exports.sum64_5_hi = sum64_5_hi;
- function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
- var lo = al + bl + cl + dl + el;
- return lo >>> 0;
- }
- exports.sum64_5_lo = sum64_5_lo;
- function rotr64_hi(ah, al, num) {
- var r = (al << (32 - num)) | (ah >>> num);
- return r >>> 0;
- }
- exports.rotr64_hi = rotr64_hi;
- function rotr64_lo(ah, al, num) {
- var r = (ah << (32 - num)) | (al >>> num);
- return r >>> 0;
- }
- exports.rotr64_lo = rotr64_lo;
- function shr64_hi(ah, al, num) {
- return ah >>> num;
- }
- exports.shr64_hi = shr64_hi;
- function shr64_lo(ah, al, num) {
- var r = (ah << (32 - num)) | (al >>> num);
- return r >>> 0;
- }
- exports.shr64_lo = shr64_lo;
- /***/ }),
- /***/ 2:
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ }),
- /***/ "24Y6":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("TkWM");
- var BN = __webpack_require__("geuY");
- var inherits = __webpack_require__("LC74");
- var Base = __webpack_require__("B6Bn");
- var assert = utils.assert;
- function EdwardsCurve(conf) {
- // NOTE: Important as we are creating point in Base.call()
- this.twisted = (conf.a | 0) !== 1;
- this.mOneA = this.twisted && (conf.a | 0) === -1;
- this.extended = this.mOneA;
- Base.call(this, 'edwards', conf);
- this.a = new BN(conf.a, 16).umod(this.red.m);
- this.a = this.a.toRed(this.red);
- this.c = new BN(conf.c, 16).toRed(this.red);
- this.c2 = this.c.redSqr();
- this.d = new BN(conf.d, 16).toRed(this.red);
- this.dd = this.d.redAdd(this.d);
- assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);
- this.oneC = (conf.c | 0) === 1;
- }
- inherits(EdwardsCurve, Base);
- module.exports = EdwardsCurve;
- EdwardsCurve.prototype._mulA = function _mulA(num) {
- if (this.mOneA)
- return num.redNeg();
- else
- return this.a.redMul(num);
- };
- EdwardsCurve.prototype._mulC = function _mulC(num) {
- if (this.oneC)
- return num;
- else
- return this.c.redMul(num);
- };
- // Just for compatibility with Short curve
- EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
- return this.point(x, y, z, t);
- };
- EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
- x = new BN(x, 16);
- if (!x.red)
- x = x.toRed(this.red);
- var x2 = x.redSqr();
- var rhs = this.c2.redSub(this.a.redMul(x2));
- var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
- var y2 = rhs.redMul(lhs.redInvm());
- var y = y2.redSqrt();
- if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)
- throw new Error('invalid point');
- var isOdd = y.fromRed().isOdd();
- if (odd && !isOdd || !odd && isOdd)
- y = y.redNeg();
- return this.point(x, y);
- };
- EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
- y = new BN(y, 16);
- if (!y.red)
- y = y.toRed(this.red);
- // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)
- var y2 = y.redSqr();
- var lhs = y2.redSub(this.c2);
- var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);
- var x2 = lhs.redMul(rhs.redInvm());
- if (x2.cmp(this.zero) === 0) {
- if (odd)
- throw new Error('invalid point');
- else
- return this.point(this.zero, y);
- }
- var x = x2.redSqrt();
- if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)
- throw new Error('invalid point');
- if (x.fromRed().isOdd() !== odd)
- x = x.redNeg();
- return this.point(x, y);
- };
- EdwardsCurve.prototype.validate = function validate(point) {
- if (point.isInfinity())
- return true;
- // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)
- point.normalize();
- var x2 = point.x.redSqr();
- var y2 = point.y.redSqr();
- var lhs = x2.redMul(this.a).redAdd(y2);
- var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
- return lhs.cmp(rhs) === 0;
- };
- function Point(curve, x, y, z, t) {
- Base.BasePoint.call(this, curve, 'projective');
- if (x === null && y === null && z === null) {
- this.x = this.curve.zero;
- this.y = this.curve.one;
- this.z = this.curve.one;
- this.t = this.curve.zero;
- this.zOne = true;
- } else {
- this.x = new BN(x, 16);
- this.y = new BN(y, 16);
- this.z = z ? new BN(z, 16) : this.curve.one;
- this.t = t && new BN(t, 16);
- if (!this.x.red)
- this.x = this.x.toRed(this.curve.red);
- if (!this.y.red)
- this.y = this.y.toRed(this.curve.red);
- if (!this.z.red)
- this.z = this.z.toRed(this.curve.red);
- if (this.t && !this.t.red)
- this.t = this.t.toRed(this.curve.red);
- this.zOne = this.z === this.curve.one;
- // Use extended coordinates
- if (this.curve.extended && !this.t) {
- this.t = this.x.redMul(this.y);
- if (!this.zOne)
- this.t = this.t.redMul(this.z.redInvm());
- }
- }
- }
- inherits(Point, Base.BasePoint);
- EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
- return Point.fromJSON(this, obj);
- };
- EdwardsCurve.prototype.point = function point(x, y, z, t) {
- return new Point(this, x, y, z, t);
- };
- Point.fromJSON = function fromJSON(curve, obj) {
- return new Point(curve, obj[0], obj[1], obj[2]);
- };
- Point.prototype.inspect = function inspect() {
- if (this.isInfinity())
- return '<EC Point Infinity>';
- return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +
- ' y: ' + this.y.fromRed().toString(16, 2) +
- ' z: ' + this.z.fromRed().toString(16, 2) + '>';
- };
- Point.prototype.isInfinity = function isInfinity() {
- // XXX This code assumes that zero is always zero in red
- return this.x.cmpn(0) === 0 &&
- (this.y.cmp(this.z) === 0 ||
- (this.zOne && this.y.cmp(this.curve.c) === 0));
- };
- Point.prototype._extDbl = function _extDbl() {
- // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html
- // #doubling-dbl-2008-hwcd
- // 4M + 4S
- // A = X1^2
- var a = this.x.redSqr();
- // B = Y1^2
- var b = this.y.redSqr();
- // C = 2 * Z1^2
- var c = this.z.redSqr();
- c = c.redIAdd(c);
- // D = a * A
- var d = this.curve._mulA(a);
- // E = (X1 + Y1)^2 - A - B
- var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
- // G = D + B
- var g = d.redAdd(b);
- // F = G - C
- var f = g.redSub(c);
- // H = D - B
- var h = d.redSub(b);
- // X3 = E * F
- var nx = e.redMul(f);
- // Y3 = G * H
- var ny = g.redMul(h);
- // T3 = E * H
- var nt = e.redMul(h);
- // Z3 = F * G
- var nz = f.redMul(g);
- return this.curve.point(nx, ny, nz, nt);
- };
- Point.prototype._projDbl = function _projDbl() {
- // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
- // #doubling-dbl-2008-bbjlp
- // #doubling-dbl-2007-bl
- // and others
- // Generally 3M + 4S or 2M + 4S
- // B = (X1 + Y1)^2
- var b = this.x.redAdd(this.y).redSqr();
- // C = X1^2
- var c = this.x.redSqr();
- // D = Y1^2
- var d = this.y.redSqr();
- var nx;
- var ny;
- var nz;
- var e;
- var h;
- var j;
- if (this.curve.twisted) {
- // E = a * C
- e = this.curve._mulA(c);
- // F = E + D
- var f = e.redAdd(d);
- if (this.zOne) {
- // X3 = (B - C - D) * (F - 2)
- nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
- // Y3 = F * (E - D)
- ny = f.redMul(e.redSub(d));
- // Z3 = F^2 - 2 * F
- nz = f.redSqr().redSub(f).redSub(f);
- } else {
- // H = Z1^2
- h = this.z.redSqr();
- // J = F - 2 * H
- j = f.redSub(h).redISub(h);
- // X3 = (B-C-D)*J
- nx = b.redSub(c).redISub(d).redMul(j);
- // Y3 = F * (E - D)
- ny = f.redMul(e.redSub(d));
- // Z3 = F * J
- nz = f.redMul(j);
- }
- } else {
- // E = C + D
- e = c.redAdd(d);
- // H = (c * Z1)^2
- h = this.curve._mulC(this.z).redSqr();
- // J = E - 2 * H
- j = e.redSub(h).redSub(h);
- // X3 = c * (B - E) * J
- nx = this.curve._mulC(b.redISub(e)).redMul(j);
- // Y3 = c * E * (C - D)
- ny = this.curve._mulC(e).redMul(c.redISub(d));
- // Z3 = E * J
- nz = e.redMul(j);
- }
- return this.curve.point(nx, ny, nz);
- };
- Point.prototype.dbl = function dbl() {
- if (this.isInfinity())
- return this;
- // Double in extended coordinates
- if (this.curve.extended)
- return this._extDbl();
- else
- return this._projDbl();
- };
- Point.prototype._extAdd = function _extAdd(p) {
- // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html
- // #addition-add-2008-hwcd-3
- // 8M
- // A = (Y1 - X1) * (Y2 - X2)
- var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
- // B = (Y1 + X1) * (Y2 + X2)
- var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
- // C = T1 * k * T2
- var c = this.t.redMul(this.curve.dd).redMul(p.t);
- // D = Z1 * 2 * Z2
- var d = this.z.redMul(p.z.redAdd(p.z));
- // E = B - A
- var e = b.redSub(a);
- // F = D - C
- var f = d.redSub(c);
- // G = D + C
- var g = d.redAdd(c);
- // H = B + A
- var h = b.redAdd(a);
- // X3 = E * F
- var nx = e.redMul(f);
- // Y3 = G * H
- var ny = g.redMul(h);
- // T3 = E * H
- var nt = e.redMul(h);
- // Z3 = F * G
- var nz = f.redMul(g);
- return this.curve.point(nx, ny, nz, nt);
- };
- Point.prototype._projAdd = function _projAdd(p) {
- // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
- // #addition-add-2008-bbjlp
- // #addition-add-2007-bl
- // 10M + 1S
- // A = Z1 * Z2
- var a = this.z.redMul(p.z);
- // B = A^2
- var b = a.redSqr();
- // C = X1 * X2
- var c = this.x.redMul(p.x);
- // D = Y1 * Y2
- var d = this.y.redMul(p.y);
- // E = d * C * D
- var e = this.curve.d.redMul(c).redMul(d);
- // F = B - E
- var f = b.redSub(e);
- // G = B + E
- var g = b.redAdd(e);
- // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
- var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
- var nx = a.redMul(f).redMul(tmp);
- var ny;
- var nz;
- if (this.curve.twisted) {
- // Y3 = A * G * (D - a * C)
- ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
- // Z3 = F * G
- nz = f.redMul(g);
- } else {
- // Y3 = A * G * (D - C)
- ny = a.redMul(g).redMul(d.redSub(c));
- // Z3 = c * F * G
- nz = this.curve._mulC(f).redMul(g);
- }
- return this.curve.point(nx, ny, nz);
- };
- Point.prototype.add = function add(p) {
- if (this.isInfinity())
- return p;
- if (p.isInfinity())
- return this;
- if (this.curve.extended)
- return this._extAdd(p);
- else
- return this._projAdd(p);
- };
- Point.prototype.mul = function mul(k) {
- if (this._hasDoubles(k))
- return this.curve._fixedNafMul(this, k);
- else
- return this.curve._wnafMul(this, k);
- };
- Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
- return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);
- };
- Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
- return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);
- };
- Point.prototype.normalize = function normalize() {
- if (this.zOne)
- return this;
- // Normalize coordinates
- var zi = this.z.redInvm();
- this.x = this.x.redMul(zi);
- this.y = this.y.redMul(zi);
- if (this.t)
- this.t = this.t.redMul(zi);
- this.z = this.curve.one;
- this.zOne = true;
- return this;
- };
- Point.prototype.neg = function neg() {
- return this.curve.point(this.x.redNeg(),
- this.y,
- this.z,
- this.t && this.t.redNeg());
- };
- Point.prototype.getX = function getX() {
- this.normalize();
- return this.x.fromRed();
- };
- Point.prototype.getY = function getY() {
- this.normalize();
- return this.y.fromRed();
- };
- Point.prototype.eq = function eq(other) {
- return this === other ||
- this.getX().cmp(other.getX()) === 0 &&
- this.getY().cmp(other.getY()) === 0;
- };
- Point.prototype.eqXToP = function eqXToP(x) {
- var rx = x.toRed(this.curve.red).redMul(this.z);
- if (this.x.cmp(rx) === 0)
- return true;
- var xc = x.clone();
- var t = this.curve.redN.redMul(this.z);
- for (;;) {
- xc.iadd(this.curve.n);
- if (xc.cmp(this.curve.p) >= 0)
- return false;
- rx.redIAdd(t);
- if (this.x.cmp(rx) === 0)
- return true;
- }
- };
- // Compatibility with BaseCurve
- Point.prototype.toP = Point.prototype.normalize;
- Point.prototype.mixedAdd = Point.prototype.add;
- /***/ }),
- /***/ "2JY6":
- /***/ (function(module, exports) {
- var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs
- module.exports = function (iterations, keylen) {
- if (typeof iterations !== 'number') {
- throw new TypeError('Iterations not a number')
- }
- if (iterations < 0) {
- throw new TypeError('Bad iterations')
- }
- if (typeof keylen !== 'number') {
- throw new TypeError('Key length not a number')
- }
- if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */
- throw new TypeError('Bad key length')
- }
- }
- /***/ }),
- /***/ "2Ml6":
- /***/ (function(module, exports) {
- module.exports = "data:application/vnd.ms-fontobject;base64,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"
- /***/ }),
- /***/ 3:
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ }),
- /***/ "35aj":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global, process) {var defaultEncoding
- /* istanbul ignore next */
- if (global.process && global.process.browser) {
- defaultEncoding = 'utf-8'
- } else if (global.process && global.process.version) {
- var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)
- defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'
- } else {
- defaultEncoding = 'utf-8'
- }
- module.exports = defaultEncoding
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("W2nU")))
- /***/ }),
- /***/ "3IRH":
- /***/ (function(module, exports) {
- module.exports = function(module) {
- if(!module.webpackPolyfill) {
- module.deprecate = function() {};
- module.paths = [];
- // module.parent = undefined by default
- if(!module.children) module.children = [];
- Object.defineProperty(module, "loaded", {
- enumerable: true,
- get: function() {
- return module.l;
- }
- });
- Object.defineProperty(module, "id", {
- enumerable: true,
- get: function() {
- return module.i;
- }
- });
- module.webpackPolyfill = 1;
- }
- return module;
- };
- /***/ }),
- /***/ "3PYz":
- /***/ (function(module, exports, __webpack_require__) {
- var hash = exports;
- hash.utils = __webpack_require__("1lLf");
- hash.common = __webpack_require__("YSDb");
- hash.sha = __webpack_require__("NCTB");
- hash.ripemd = __webpack_require__("CKAI");
- hash.hmac = __webpack_require__("3kRU");
- // Proxy hash functions to the main object
- hash.sha1 = hash.sha.sha1;
- hash.sha256 = hash.sha.sha256;
- hash.sha224 = hash.sha.sha224;
- hash.sha384 = hash.sha.sha384;
- hash.sha512 = hash.sha.sha512;
- hash.ripemd160 = hash.ripemd.ripemd160;
- /***/ }),
- /***/ "3U89":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
- var codes = {};
- function createErrorType(code, message, Base) {
- if (!Base) {
- Base = Error;
- }
- function getMessage(arg1, arg2, arg3) {
- if (typeof message === 'string') {
- return message;
- } else {
- return message(arg1, arg2, arg3);
- }
- }
- var NodeError =
- /*#__PURE__*/
- function (_Base) {
- _inheritsLoose(NodeError, _Base);
- function NodeError(arg1, arg2, arg3) {
- return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;
- }
- return NodeError;
- }(Base);
- NodeError.prototype.name = Base.name;
- NodeError.prototype.code = code;
- codes[code] = NodeError;
- } // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js
- function oneOf(expected, thing) {
- if (Array.isArray(expected)) {
- var len = expected.length;
- expected = expected.map(function (i) {
- return String(i);
- });
- if (len > 2) {
- return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(', '), ", or ") + expected[len - 1];
- } else if (len === 2) {
- return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);
- } else {
- return "of ".concat(thing, " ").concat(expected[0]);
- }
- } else {
- return "of ".concat(thing, " ").concat(String(expected));
- }
- } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
- function startsWith(str, search, pos) {
- return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;
- } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
- function endsWith(str, search, this_len) {
- if (this_len === undefined || this_len > str.length) {
- this_len = str.length;
- }
- return str.substring(this_len - search.length, this_len) === search;
- } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
- function includes(str, search, start) {
- if (typeof start !== 'number') {
- start = 0;
- }
- if (start + search.length > str.length) {
- return false;
- } else {
- return str.indexOf(search, start) !== -1;
- }
- }
- createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {
- return 'The value "' + value + '" is invalid for option "' + name + '"';
- }, TypeError);
- createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {
- // determiner: 'must be' or 'must not be'
- var determiner;
- if (typeof expected === 'string' && startsWith(expected, 'not ')) {
- determiner = 'must not be';
- expected = expected.replace(/^not /, '');
- } else {
- determiner = 'must be';
- }
- var msg;
- if (endsWith(name, ' argument')) {
- // For cases like 'first argument'
- msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, 'type'));
- } else {
- var type = includes(name, '.') ? 'property' : 'argument';
- msg = "The \"".concat(name, "\" ").concat(type, " ").concat(determiner, " ").concat(oneOf(expected, 'type'));
- }
- msg += ". Received type ".concat(typeof actual);
- return msg;
- }, TypeError);
- createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');
- createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {
- return 'The ' + name + ' method is not implemented';
- });
- createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');
- createErrorType('ERR_STREAM_DESTROYED', function (name) {
- return 'Cannot call ' + name + ' after a stream was destroyed';
- });
- createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');
- createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');
- createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');
- createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);
- createErrorType('ERR_UNKNOWN_ENCODING', function (arg) {
- return 'Unknown encoding: ' + arg;
- }, TypeError);
- createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');
- module.exports.codes = codes;
- /***/ }),
- /***/ "3UtB":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const base = exports;
- base.Reporter = __webpack_require__("16On").Reporter;
- base.DecoderBuffer = __webpack_require__("iTY7").DecoderBuffer;
- base.EncoderBuffer = __webpack_require__("iTY7").EncoderBuffer;
- base.Node = __webpack_require__("vugd");
- /***/ }),
- /***/ "3fzc":
- /***/ (function(module, exports, __webpack_require__) {
- var randomBytes = __webpack_require__("rOku");
- module.exports = findPrime;
- findPrime.simpleSieve = simpleSieve;
- findPrime.fermatTest = fermatTest;
- var BN = __webpack_require__("geuY");
- var TWENTYFOUR = new BN(24);
- var MillerRabin = __webpack_require__("aK3A");
- var millerRabin = new MillerRabin();
- var ONE = new BN(1);
- var TWO = new BN(2);
- var FIVE = new BN(5);
- var SIXTEEN = new BN(16);
- var EIGHT = new BN(8);
- var TEN = new BN(10);
- var THREE = new BN(3);
- var SEVEN = new BN(7);
- var ELEVEN = new BN(11);
- var FOUR = new BN(4);
- var TWELVE = new BN(12);
- var primes = null;
- function _getPrimes() {
- if (primes !== null)
- return primes;
- var limit = 0x100000;
- var res = [];
- res[0] = 2;
- for (var i = 1, k = 3; k < limit; k += 2) {
- var sqrt = Math.ceil(Math.sqrt(k));
- for (var j = 0; j < i && res[j] <= sqrt; j++)
- if (k % res[j] === 0)
- break;
- if (i !== j && res[j] <= sqrt)
- continue;
- res[i++] = k;
- }
- primes = res;
- return res;
- }
- function simpleSieve(p) {
- var primes = _getPrimes();
- for (var i = 0; i < primes.length; i++)
- if (p.modn(primes[i]) === 0) {
- if (p.cmpn(primes[i]) === 0) {
- return true;
- } else {
- return false;
- }
- }
- return true;
- }
- function fermatTest(p) {
- var red = BN.mont(p);
- return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;
- }
- function findPrime(bits, gen) {
- if (bits < 16) {
- // this is what openssl does
- if (gen === 2 || gen === 5) {
- return new BN([0x8c, 0x7b]);
- } else {
- return new BN([0x8c, 0x27]);
- }
- }
- gen = new BN(gen);
- var num, n2;
- while (true) {
- num = new BN(randomBytes(Math.ceil(bits / 8)));
- while (num.bitLength() > bits) {
- num.ishrn(1);
- }
- if (num.isEven()) {
- num.iadd(ONE);
- }
- if (!num.testn(1)) {
- num.iadd(TWO);
- }
- if (!gen.cmp(TWO)) {
- while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {
- num.iadd(FOUR);
- }
- } else if (!gen.cmp(FIVE)) {
- while (num.mod(TEN).cmp(THREE)) {
- num.iadd(FOUR);
- }
- }
- n2 = num.shrn(1);
- if (simpleSieve(n2) && simpleSieve(num) &&
- fermatTest(n2) && fermatTest(num) &&
- millerRabin.test(n2) && millerRabin.test(num)) {
- return num;
- }
- }
- }
- /***/ }),
- /***/ "3kRU":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("1lLf");
- var assert = __webpack_require__("08Lv");
- function Hmac(hash, key, enc) {
- if (!(this instanceof Hmac))
- return new Hmac(hash, key, enc);
- this.Hash = hash;
- this.blockSize = hash.blockSize / 8;
- this.outSize = hash.outSize / 8;
- this.inner = null;
- this.outer = null;
- this._init(utils.toArray(key, enc));
- }
- module.exports = Hmac;
- Hmac.prototype._init = function init(key) {
- // Shorten key, if needed
- if (key.length > this.blockSize)
- key = new this.Hash().update(key).digest();
- assert(key.length <= this.blockSize);
- // Add padding to key
- for (var i = key.length; i < this.blockSize; i++)
- key.push(0);
- for (i = 0; i < key.length; i++)
- key[i] ^= 0x36;
- this.inner = new this.Hash().update(key);
- // 0x36 ^ 0x5c = 0x6a
- for (i = 0; i < key.length; i++)
- key[i] ^= 0x6a;
- this.outer = new this.Hash().update(key);
- };
- Hmac.prototype.update = function update(msg, enc) {
- this.inner.update(msg, enc);
- return this;
- };
- Hmac.prototype.digest = function digest(enc) {
- this.outer.update(this.inner.digest());
- return this.outer.digest(enc);
- };
- /***/ }),
- /***/ "3nYK":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("1lLf");
- var rotr32 = utils.rotr32;
- function ft_1(s, x, y, z) {
- if (s === 0)
- return ch32(x, y, z);
- if (s === 1 || s === 3)
- return p32(x, y, z);
- if (s === 2)
- return maj32(x, y, z);
- }
- exports.ft_1 = ft_1;
- function ch32(x, y, z) {
- return (x & y) ^ ((~x) & z);
- }
- exports.ch32 = ch32;
- function maj32(x, y, z) {
- return (x & y) ^ (x & z) ^ (y & z);
- }
- exports.maj32 = maj32;
- function p32(x, y, z) {
- return x ^ y ^ z;
- }
- exports.p32 = p32;
- function s0_256(x) {
- return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);
- }
- exports.s0_256 = s0_256;
- function s1_256(x) {
- return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);
- }
- exports.s1_256 = s1_256;
- function g0_256(x) {
- return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);
- }
- exports.g0_256 = g0_256;
- function g1_256(x) {
- return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);
- }
- exports.g1_256 = g1_256;
- /***/ }),
- /***/ 4:
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ }),
- /***/ "4/4u":
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__("cSWu").Transform
- /***/ }),
- /***/ "4R/o":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global, process) {
- function oldBrowser () {
- throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11')
- }
- var safeBuffer = __webpack_require__("X3l8")
- var randombytes = __webpack_require__("rOku")
- var Buffer = safeBuffer.Buffer
- var kBufferMaxLength = safeBuffer.kMaxLength
- var crypto = global.crypto || global.msCrypto
- var kMaxUint32 = Math.pow(2, 32) - 1
- function assertOffset (offset, length) {
- if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare
- throw new TypeError('offset must be a number')
- }
- if (offset > kMaxUint32 || offset < 0) {
- throw new TypeError('offset must be a uint32')
- }
- if (offset > kBufferMaxLength || offset > length) {
- throw new RangeError('offset out of range')
- }
- }
- function assertSize (size, offset, length) {
- if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare
- throw new TypeError('size must be a number')
- }
- if (size > kMaxUint32 || size < 0) {
- throw new TypeError('size must be a uint32')
- }
- if (size + offset > length || size > kBufferMaxLength) {
- throw new RangeError('buffer too small')
- }
- }
- if ((crypto && crypto.getRandomValues) || !process.browser) {
- exports.randomFill = randomFill
- exports.randomFillSync = randomFillSync
- } else {
- exports.randomFill = oldBrowser
- exports.randomFillSync = oldBrowser
- }
- function randomFill (buf, offset, size, cb) {
- if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {
- throw new TypeError('"buf" argument must be a Buffer or Uint8Array')
- }
- if (typeof offset === 'function') {
- cb = offset
- offset = 0
- size = buf.length
- } else if (typeof size === 'function') {
- cb = size
- size = buf.length - offset
- } else if (typeof cb !== 'function') {
- throw new TypeError('"cb" argument must be a function')
- }
- assertOffset(offset, buf.length)
- assertSize(size, offset, buf.length)
- return actualFill(buf, offset, size, cb)
- }
- function actualFill (buf, offset, size, cb) {
- if (process.browser) {
- var ourBuf = buf.buffer
- var uint = new Uint8Array(ourBuf, offset, size)
- crypto.getRandomValues(uint)
- if (cb) {
- process.nextTick(function () {
- cb(null, buf)
- })
- return
- }
- return buf
- }
- if (cb) {
- randombytes(size, function (err, bytes) {
- if (err) {
- return cb(err)
- }
- bytes.copy(buf, offset)
- cb(null, buf)
- })
- return
- }
- var bytes = randombytes(size)
- bytes.copy(buf, offset)
- return buf
- }
- function randomFillSync (buf, offset, size) {
- if (typeof offset === 'undefined') {
- offset = 0
- }
- if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {
- throw new TypeError('"buf" argument must be a Buffer or Uint8Array')
- }
- assertOffset(offset, buf.length)
- if (size === undefined) size = buf.length - offset
- assertSize(size, offset, buf.length)
- return actualFill(buf, offset, size)
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("W2nU")))
- /***/ }),
- /***/ "4Vh3":
- /***/ (function(module, exports) {
- module.exports = {"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}
- /***/ }),
- /***/ "4lnF":
- /***/ (function(module, exports, __webpack_require__) {
- !function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VueFullscreen=t():e.VueFullscreen=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=5)}([function(e,t,n){"use strict";function i(){var e={},t=!1,n=0,r=arguments.length;for("[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(t=arguments[0],n++);n<r;n++){var l=arguments[n];!function(n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t&&"[object Object]"===Object.prototype.toString.call(n[r])?e[r]=i(!0,e[r],n[r]):e[r]=n[r])}(l)}return e}t.a=i},function(e,t){!function(){"use strict";var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},n=void 0!==e&&e.exports,i=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=0,r=n.length,l={};i<r;i++)if((e=n[i])&&e[1]in t){for(i=0;i<e.length;i++)l[n[0][i]]=e[i];return l}return!1}(),r={change:i.fullscreenchange,error:i.fullscreenerror},l={request:function(e,n){return new Promise(function(r,l){var s=function(){this.off("change",s),r()}.bind(this);this.on("change",s),e=e||t.documentElement;var o=e[i.requestFullscreen](n);o instanceof Promise&&o.then(s).catch(l)}.bind(this))},exit:function(){return new Promise(function(e,n){if(!this.isFullscreen)return void e();var r=function(){this.off("change",r),e()}.bind(this);this.on("change",r);var l=t[i.exitFullscreen]();l instanceof Promise&&l.then(r).catch(n)}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){var i=r[e];i&&t.addEventListener(i,n,!1)},off:function(e,n){var i=r[e];i&&t.removeEventListener(i,n,!1)},raw:i};if(!i)return void(n?e.exports={isEnabled:!1}:window.screenfull={isEnabled:!1});Object.defineProperties(l,{isFullscreen:{get:function(){return Boolean(t[i.fullscreenElement])}},element:{enumerable:!0,get:function(){return t[i.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(t[i.fullscreenEnabled])}}}),n?e.exports=l:window.screenfull=l}()},function(e,t,n){"use strict";function i(e,t){e.style.position=t.position,e.style.left=t.left,e.style.top=t.top,e.style.width=t.width,e.style.height=t.height}function r(e){var t=e.element;t&&(t.classList.remove(e.options.fullscreenClass),(e.options.teleport||e.options.pageOnly)&&(e.options.teleport&&a&&(a.insertBefore(t,u),a.removeChild(u)),t.__styleCache&&i(t,t.__styleCache)))}var l=n(1),s=n.n(l),o=n(0),c={callback:function(){},fullscreenClass:"fullscreen",pageOnly:!1,teleport:!1},u=void 0,a=void 0,f={options:null,element:null,isFullscreen:!1,isEnabled:s.a.isEnabled,toggle:function(e,t,n){return void 0===n?this.isFullscreen?this.exit():this.request(e,t):n?this.request(e,t):this.exit()},request:function(e,t){var l=this;if(this.isFullscreen)return Promise.resolve();if(e||(e=document.body),this.options=n.i(o.a)({},c,t),e===document.body&&(this.options.teleport=!1),s.a.isEnabled||(this.options.pageOnly=!0),e.classList.add(this.options.fullscreenClass),this.options.teleport||this.options.pageOnly){var f=e.style,h=f.position,p=f.left,d=f.top,m=f.width,v=f.height;e.__styleCache={position:h,left:p,top:d,width:m,height:v},i(e,{position:"fixed",left:"0",top:"0",width:"100%",height:"100%"})}if(this.options.teleport&&(a=e.parentNode)&&(u=document.createComment("fullscreen-token"),a.insertBefore(u,e),document.body.appendChild(e)),this.options.pageOnly){var b=function e(t){"Escape"===t.key&&(document.removeEventListener("keyup",e),l.exit())};return this.isFullscreen=!0,this.element=e,document.removeEventListener("keyup",b),document.addEventListener("keyup",b),this.options.callback&&this.options.callback(this.isFullscreen),Promise.resolve()}var y=function t(){s.a.isFullscreen||(s.a.off("change",t),r(l)),l.isFullscreen=s.a.isFullscreen,l.options.teleport?l.element=e||null:l.element=s.a.element,l.options.callback&&l.options.callback(s.a.isFullscreen)};return s.a.on("change",y),s.a.request(this.options.teleport?document.body:e)},exit:function(){return this.isFullscreen?this.options.pageOnly?(r(this),this.isFullscreen=!1,this.element=null,this.options.callback&&this.options.callback(this.isFullscreen),Promise.resolve()):s.a.exit():Promise.resolve()}};f.support=f.isEnabled,f.getState=function(){return f.isFullscreen},f.enter=f.request,t.a=f},function(e,t,n){"use strict";function i(e,t){var n={};for(var i in e)t.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);return n}var r=n(2),l=n(0),s=function(e,t){var s=function(){var e=void 0,s={teleport:t.modifiers.teleport,pageOnly:t.modifiers.pageOnly};if(t.value)if("string"==typeof t.value)e=t.value;else{var o=t.value,c=o.target,u=i(o,["target"]);e=c,s=n.i(l.a)(s,u)}"string"==typeof e&&(e=document.querySelector(e)),r.a.toggle(e,s)};e._onClickFullScreen&&e.removeEventListener("click",e._onClickFullScreen),e.addEventListener("click",s),e._onClickFullScreen=s};t.a=s},function(e,t,n){var i=n(7)(n(6),n(8),null,null);e.exports=i.exports},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(4),r=n.n(i),l=n(2),s=n(3),o=n(1),c=n.n(o),u=n(0);n.d(t,"screenfull",function(){return c.a}),n.d(t,"api",function(){return l.a}),n.d(t,"directive",function(){return s.a}),n.d(t,"component",function(){return r.a}),t.default={install:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.name||"fullscreen";e.component(i,n.i(u.a)(r.a,{name:i})),e.prototype["$"+i]=l.a,e.directive(i,s.a)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(1),r=n.n(i);t.default={props:{value:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},exitOnClickWrapper:{type:Boolean,default:!0},fullscreenClass:{type:String,default:"fullscreen"},pageOnly:{type:Boolean,default:!1},teleport:{type:Boolean,default:!1}},data:function(){return{isFullscreen:!1,isEnabled:!1}},computed:{support:function(){return this.isEnabled},isPageOnly:function(){return this.pageOnly||!r.a.isEnabled},wrapperStyle:function(){return(this.isPageOnly||this.teleport)&&this.isFullscreen?{position:"fixed",left:"0",top:"0",width:"100%",height:"100%"}:void 0}},methods:{toggle:function(e){void 0===e?this.isFullscreen?this.exit():this.request():e?this.request():this.exit()},request:function(){if(this.isPageOnly?(this.isFullscreen=!0,this.onChangeFullScreen(),document.removeEventListener("keyup",this.keypressCallback),document.addEventListener("keyup",this.keypressCallback)):(r.a.off("change",this.fullScreenCallback),r.a.on("change",this.fullScreenCallback),r.a.request(this.teleport?document.body:this.$el)),this.teleport){if(this.$el.parentNode===document.body)return;this.__parentNode=this.$el.parentNode,this.__token=document.createComment("fullscreen-token"),this.__parentNode.insertBefore(this.__token,this.$el),document.body.appendChild(this.$el)}},exit:function(){this.isFullscreen&&(this.isPageOnly?(this.isFullscreen=!1,this.onChangeFullScreen(),document.removeEventListener("keyup",this.keypressCallback)):r.a.exit())},shadeClick:function(e){e.target===this.$el&&this.exitOnClickWrapper&&this.exit()},fullScreenCallback:function(){r.a.isFullscreen||r.a.off("change",this.fullScreenCallback),this.isFullscreen=r.a.isFullscreen,this.onChangeFullScreen()},keypressCallback:function(e){"Escape"===e.key&&this.exit()},onChangeFullScreen:function(){this.isFullscreen||this.teleport&&this.__parentNode&&(this.__parentNode.insertBefore(this.$el,this.__token),this.__parentNode.removeChild(this.__token)),this.$emit("change",this.isFullscreen),this.$emit("update:fullscreen",this.isFullscreen),this.$emit("input",this.isFullscreen)},enter:function(){this.request()},getState:function(){return this.isFullscreen}},watch:{value:function(e){e!==this.isFullscreen&&(e?this.request():this.exit())},fullscreen:function(e){e!==this.isFullscreen&&(e?this.request():this.exit())}},created:function(){this.isEnabled=r.a.isEnabled}}},function(e,t){e.exports=function(e,t,n,i){var r,l=e=e||{},s=typeof e.default;"object"!==s&&"function"!==s||(r=e,l=e.default);var o="function"==typeof l?l.options:l;if(t&&(o.render=t.render,o.staticRenderFns=t.staticRenderFns),n&&(o._scopeId=n),i){var c=Object.create(o.computed||null);Object.keys(i).forEach(function(e){var t=i[e];c[e]=function(){return t}}),o.computed=c}return{esModule:r,exports:l,options:o}}},function(e,t){e.exports={render:function(){var e,t=this,n=t.$createElement;return(t._self._c||n)("div",t._b({ref:"wrapper",class:(e={},e[t.fullscreenClass]=t.isFullscreen,e),style:t.wrapperStyle,on:{click:function(e){return t.shadeClick(e)}}},"div",t.$attrs,!1),[t._t("default")],2)},staticRenderFns:[]}}])});
- /***/ }),
- /***/ "4sPJ":
- /***/ (function(module, exports) {
- function incr32 (iv) {
- var len = iv.length
- var item
- while (len--) {
- item = iv.readUInt8(len)
- if (item === 255) {
- iv.writeUInt8(0, len)
- } else {
- item++
- iv.writeUInt8(item, len)
- break
- }
- }
- }
- module.exports = incr32
- /***/ }),
- /***/ 5:
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ }),
- /***/ "5QAX":
- /***/ (function(module, exports, __webpack_require__) {
- var BN = __webpack_require__("geuY")
- var Buffer = __webpack_require__("X3l8").Buffer
- function withPublic (paddedMsg, key) {
- return Buffer.from(paddedMsg
- .toRed(BN.mont(key.modulus))
- .redPow(new BN(key.publicExponent))
- .fromRed()
- .toArray())
- }
- module.exports = withPublic
- /***/ }),
- /***/ 6:
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ }),
- /***/ "6ZSt":
- /***/ (function(module, exports) {
- module.exports = {"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}
- /***/ }),
- /***/ "6hW9":
- /***/ (function(module, exports, __webpack_require__) {
- var aes = __webpack_require__("BEbT")
- var Buffer = __webpack_require__("X3l8").Buffer
- var Transform = __webpack_require__("z+8S")
- var inherits = __webpack_require__("LC74")
- function StreamCipher (mode, key, iv, decrypt) {
- Transform.call(this)
- this._cipher = new aes.AES(key)
- this._prev = Buffer.from(iv)
- this._cache = Buffer.allocUnsafe(0)
- this._secCache = Buffer.allocUnsafe(0)
- this._decrypt = decrypt
- this._mode = mode
- }
- inherits(StreamCipher, Transform)
- StreamCipher.prototype._update = function (chunk) {
- return this._mode.encrypt(this, chunk, this._decrypt)
- }
- StreamCipher.prototype._final = function () {
- this._cipher.scrub()
- }
- module.exports = StreamCipher
- /***/ }),
- /***/ 7:
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ }),
- /***/ "7Gjy":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HlsMixins; });
- var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
- var HlsMixins = {
- methods: {
- //TODO 检查播放是否是HLS的监听事件
- setHLSListener: function setHLSListener() {
- var _this = this;
- if (this.isStreamH265) return;
- if (!this.videoUrl.includes('.m3u8')) return;
- if (!this.easyPlayer.tech_.hlsPlayer) return setTimeout(function () {
- return _this.setHLSListener();
- }, 50);
- this.easyPlayer.tech_.hlsPlayer.on(Hls.Events.ERROR, function (event, data) {
- var type = data.type,
- reason = data.reason,
- response = data.response;
- switch (type) {
- case 'networkError':
- if (response.code === 404) {
- if (_this._recording) {
- _this.recordDownload();
- _this._recording = false;
- setTimeout(function () {
- return _this.initPlayer();
- }, 1500);
- } else {
- _this.initPlayer();
- }
- }
- break;
- case 'mediaError':
- //TODO 记载265 播放器
- if (reason !== "Unsupported HEVC stream type found 0x24") return;
- if (!_this.isStreamH265) _this.initH265Player(12);
- _this.isStreamH265 = true;
- break;
- default:
- break;
- }
- });
- //处理hls 码率问题
- this.easyPlayer.tech_.hlsPlayer.on(Hls.Events.FRAG_BUFFERED, function (eventName, data) {
- var _data$frag$tagList$fi = _slicedToArray(data.frag.tagList.filter(function (item) {
- return item.indexOf("INF") !== -1;
- })[0], 2),
- _ = _data$frag$tagList$fi[0],
- extInf = _data$frag$tagList$fi[1];
- _this.createKbps(Math.round(data.stats.total / (data.stats.buffering.end - data.stats.loading.first)) / extInf);
- });
- //TODO m3u8 录像问题
- this.easyPlayer.tech_.hlsPlayer.on(Hls.Events.RECORDING, function (event, _ref) {
- var buffer = _ref.data;
- if (_this._recording === undefined) _this._recording = false;
- if (_this._cacheArrayBuffer === undefined) _this._cacheArrayBuffer = [];
- if (_this._recordArrayBuffer === undefined) _this._recordArrayBuffer = [];
- if (_this._recordOffset === undefined) _this._recordOffset = 0;
- if (_this.recordFileName === undefined) _this.recordFileName = _this.dateFormat(new Date(), "YYYYMMDDhhmmss") + '.mp4';
- if (!_this._recording) {
- if (_this._cacheArrayBuffer.length === 2) _this._cacheArrayBuffer.shift();
- _this._cacheArrayBuffer.push(buffer);
- _this.recordDownload();
- } else {
- if (_this._recordArrayBuffer.length === 0) _this._recordArrayBuffer = new Uint8Array(_this.recordMaxFileSize * 1024 * 1024);
- // TODO 给视频预留缓存 加上缓存
- if (_this._cacheArrayBuffer.length !== 0) {
- _this._cacheArrayBuffer.forEach(function (_cache) {
- _this._recordArrayBuffer.set(new Int8Array(_cache), _this._recordOffset);
- _this._recordOffset += _cache.byteLength;
- });
- }
- _this._cacheArrayBuffer = [];
- _this._recordArrayBuffer.set(new Int8Array(buffer), _this._recordOffset);
- _this._recordOffset += buffer.byteLength;
- }
- });
- }
- }
- };
- /***/ }),
- /***/ "7NRE":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {
- 'use strict';
- // Utils
- function assert (val, msg) {
- if (!val) throw new Error(msg || 'Assertion failed');
- }
- // Could use `inherits` module, but don't want to move from single file
- // architecture yet.
- function inherits (ctor, superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- TempCtor.prototype = superCtor.prototype;
- ctor.prototype = new TempCtor();
- ctor.prototype.constructor = ctor;
- }
- // BN
- function BN (number, base, endian) {
- if (BN.isBN(number)) {
- return number;
- }
- this.negative = 0;
- this.words = null;
- this.length = 0;
- // Reduction context
- this.red = null;
- if (number !== null) {
- if (base === 'le' || base === 'be') {
- endian = base;
- base = 10;
- }
- this._init(number || 0, base || 10, endian || 'be');
- }
- }
- if (typeof module === 'object') {
- module.exports = BN;
- } else {
- exports.BN = BN;
- }
- BN.BN = BN;
- BN.wordSize = 26;
- var Buffer;
- try {
- if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {
- Buffer = window.Buffer;
- } else {
- Buffer = __webpack_require__(9).Buffer;
- }
- } catch (e) {
- }
- BN.isBN = function isBN (num) {
- if (num instanceof BN) {
- return true;
- }
- return num !== null && typeof num === 'object' &&
- num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
- };
- BN.max = function max (left, right) {
- if (left.cmp(right) > 0) return left;
- return right;
- };
- BN.min = function min (left, right) {
- if (left.cmp(right) < 0) return left;
- return right;
- };
- BN.prototype._init = function init (number, base, endian) {
- if (typeof number === 'number') {
- return this._initNumber(number, base, endian);
- }
- if (typeof number === 'object') {
- return this._initArray(number, base, endian);
- }
- if (base === 'hex') {
- base = 16;
- }
- assert(base === (base | 0) && base >= 2 && base <= 36);
- number = number.toString().replace(/\s+/g, '');
- var start = 0;
- if (number[0] === '-') {
- start++;
- this.negative = 1;
- }
- if (start < number.length) {
- if (base === 16) {
- this._parseHex(number, start, endian);
- } else {
- this._parseBase(number, base, start);
- if (endian === 'le') {
- this._initArray(this.toArray(), base, endian);
- }
- }
- }
- };
- BN.prototype._initNumber = function _initNumber (number, base, endian) {
- if (number < 0) {
- this.negative = 1;
- number = -number;
- }
- if (number < 0x4000000) {
- this.words = [number & 0x3ffffff];
- this.length = 1;
- } else if (number < 0x10000000000000) {
- this.words = [
- number & 0x3ffffff,
- (number / 0x4000000) & 0x3ffffff
- ];
- this.length = 2;
- } else {
- assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)
- this.words = [
- number & 0x3ffffff,
- (number / 0x4000000) & 0x3ffffff,
- 1
- ];
- this.length = 3;
- }
- if (endian !== 'le') return;
- // Reverse the bytes
- this._initArray(this.toArray(), base, endian);
- };
- BN.prototype._initArray = function _initArray (number, base, endian) {
- // Perhaps a Uint8Array
- assert(typeof number.length === 'number');
- if (number.length <= 0) {
- this.words = [0];
- this.length = 1;
- return this;
- }
- this.length = Math.ceil(number.length / 3);
- this.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) {
- this.words[i] = 0;
- }
- var j, w;
- var off = 0;
- if (endian === 'be') {
- for (i = number.length - 1, j = 0; i >= 0; i -= 3) {
- w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);
- this.words[j] |= (w << off) & 0x3ffffff;
- this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;
- off += 24;
- if (off >= 26) {
- off -= 26;
- j++;
- }
- }
- } else if (endian === 'le') {
- for (i = 0, j = 0; i < number.length; i += 3) {
- w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);
- this.words[j] |= (w << off) & 0x3ffffff;
- this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;
- off += 24;
- if (off >= 26) {
- off -= 26;
- j++;
- }
- }
- }
- return this._strip();
- };
- function parseHex4Bits (string, index) {
- var c = string.charCodeAt(index);
- // '0' - '9'
- if (c >= 48 && c <= 57) {
- return c - 48;
- // 'A' - 'F'
- } else if (c >= 65 && c <= 70) {
- return c - 55;
- // 'a' - 'f'
- } else if (c >= 97 && c <= 102) {
- return c - 87;
- } else {
- assert(false, 'Invalid character in ' + string);
- }
- }
- function parseHexByte (string, lowerBound, index) {
- var r = parseHex4Bits(string, index);
- if (index - 1 >= lowerBound) {
- r |= parseHex4Bits(string, index - 1) << 4;
- }
- return r;
- }
- BN.prototype._parseHex = function _parseHex (number, start, endian) {
- // Create possibly bigger array to ensure that it fits the number
- this.length = Math.ceil((number.length - start) / 6);
- this.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) {
- this.words[i] = 0;
- }
- // 24-bits chunks
- var off = 0;
- var j = 0;
- var w;
- if (endian === 'be') {
- for (i = number.length - 1; i >= start; i -= 2) {
- w = parseHexByte(number, start, i) << off;
- this.words[j] |= w & 0x3ffffff;
- if (off >= 18) {
- off -= 18;
- j += 1;
- this.words[j] |= w >>> 26;
- } else {
- off += 8;
- }
- }
- } else {
- var parseLength = number.length - start;
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {
- w = parseHexByte(number, start, i) << off;
- this.words[j] |= w & 0x3ffffff;
- if (off >= 18) {
- off -= 18;
- j += 1;
- this.words[j] |= w >>> 26;
- } else {
- off += 8;
- }
- }
- }
- this._strip();
- };
- function parseBase (str, start, end, mul) {
- var r = 0;
- var b = 0;
- var len = Math.min(str.length, end);
- for (var i = start; i < len; i++) {
- var c = str.charCodeAt(i) - 48;
- r *= mul;
- // 'a'
- if (c >= 49) {
- b = c - 49 + 0xa;
- // 'A'
- } else if (c >= 17) {
- b = c - 17 + 0xa;
- // '0' - '9'
- } else {
- b = c;
- }
- assert(c >= 0 && b < mul, 'Invalid character');
- r += b;
- }
- return r;
- }
- BN.prototype._parseBase = function _parseBase (number, base, start) {
- // Initialize as zero
- this.words = [0];
- this.length = 1;
- // Find length of limb in base
- for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {
- limbLen++;
- }
- limbLen--;
- limbPow = (limbPow / base) | 0;
- var total = number.length - start;
- var mod = total % limbLen;
- var end = Math.min(total, total - mod) + start;
- var word = 0;
- for (var i = start; i < end; i += limbLen) {
- word = parseBase(number, i, i + limbLen, base);
- this.imuln(limbPow);
- if (this.words[0] + word < 0x4000000) {
- this.words[0] += word;
- } else {
- this._iaddn(word);
- }
- }
- if (mod !== 0) {
- var pow = 1;
- word = parseBase(number, i, number.length, base);
- for (i = 0; i < mod; i++) {
- pow *= base;
- }
- this.imuln(pow);
- if (this.words[0] + word < 0x4000000) {
- this.words[0] += word;
- } else {
- this._iaddn(word);
- }
- }
- this._strip();
- };
- BN.prototype.copy = function copy (dest) {
- dest.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) {
- dest.words[i] = this.words[i];
- }
- dest.length = this.length;
- dest.negative = this.negative;
- dest.red = this.red;
- };
- function move (dest, src) {
- dest.words = src.words;
- dest.length = src.length;
- dest.negative = src.negative;
- dest.red = src.red;
- }
- BN.prototype._move = function _move (dest) {
- move(dest, this);
- };
- BN.prototype.clone = function clone () {
- var r = new BN(null);
- this.copy(r);
- return r;
- };
- BN.prototype._expand = function _expand (size) {
- while (this.length < size) {
- this.words[this.length++] = 0;
- }
- return this;
- };
- // Remove leading `0` from `this`
- BN.prototype._strip = function strip () {
- while (this.length > 1 && this.words[this.length - 1] === 0) {
- this.length--;
- }
- return this._normSign();
- };
- BN.prototype._normSign = function _normSign () {
- // -0 = 0
- if (this.length === 1 && this.words[0] === 0) {
- this.negative = 0;
- }
- return this;
- };
- // Check Symbol.for because not everywhere where Symbol defined
- // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility
- if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {
- try {
- BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;
- } catch (e) {
- BN.prototype.inspect = inspect;
- }
- } else {
- BN.prototype.inspect = inspect;
- }
- function inspect () {
- return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';
- }
- /*
- var zeros = [];
- var groupSizes = [];
- var groupBases = [];
- var s = '';
- var i = -1;
- while (++i < BN.wordSize) {
- zeros[i] = s;
- s += '0';
- }
- groupSizes[0] = 0;
- groupSizes[1] = 0;
- groupBases[0] = 0;
- groupBases[1] = 0;
- var base = 2 - 1;
- while (++base < 36 + 1) {
- var groupSize = 0;
- var groupBase = 1;
- while (groupBase < (1 << BN.wordSize) / base) {
- groupBase *= base;
- groupSize += 1;
- }
- groupSizes[base] = groupSize;
- groupBases[base] = groupBase;
- }
- */
- var zeros = [
- '',
- '0',
- '00',
- '000',
- '0000',
- '00000',
- '000000',
- '0000000',
- '00000000',
- '000000000',
- '0000000000',
- '00000000000',
- '000000000000',
- '0000000000000',
- '00000000000000',
- '000000000000000',
- '0000000000000000',
- '00000000000000000',
- '000000000000000000',
- '0000000000000000000',
- '00000000000000000000',
- '000000000000000000000',
- '0000000000000000000000',
- '00000000000000000000000',
- '000000000000000000000000',
- '0000000000000000000000000'
- ];
- var groupSizes = [
- 0, 0,
- 25, 16, 12, 11, 10, 9, 8,
- 8, 7, 7, 7, 7, 6, 6,
- 6, 6, 6, 6, 6, 5, 5,
- 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5
- ];
- var groupBases = [
- 0, 0,
- 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,
- 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,
- 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,
- 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,
- 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176
- ];
- BN.prototype.toString = function toString (base, padding) {
- base = base || 10;
- padding = padding | 0 || 1;
- var out;
- if (base === 16 || base === 'hex') {
- out = '';
- var off = 0;
- var carry = 0;
- for (var i = 0; i < this.length; i++) {
- var w = this.words[i];
- var word = (((w << off) | carry) & 0xffffff).toString(16);
- carry = (w >>> (24 - off)) & 0xffffff;
- off += 2;
- if (off >= 26) {
- off -= 26;
- i--;
- }
- if (carry !== 0 || i !== this.length - 1) {
- out = zeros[6 - word.length] + word + out;
- } else {
- out = word + out;
- }
- }
- if (carry !== 0) {
- out = carry.toString(16) + out;
- }
- while (out.length % padding !== 0) {
- out = '0' + out;
- }
- if (this.negative !== 0) {
- out = '-' + out;
- }
- return out;
- }
- if (base === (base | 0) && base >= 2 && base <= 36) {
- // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
- var groupSize = groupSizes[base];
- // var groupBase = Math.pow(base, groupSize);
- var groupBase = groupBases[base];
- out = '';
- var c = this.clone();
- c.negative = 0;
- while (!c.isZero()) {
- var r = c.modrn(groupBase).toString(base);
- c = c.idivn(groupBase);
- if (!c.isZero()) {
- out = zeros[groupSize - r.length] + r + out;
- } else {
- out = r + out;
- }
- }
- if (this.isZero()) {
- out = '0' + out;
- }
- while (out.length % padding !== 0) {
- out = '0' + out;
- }
- if (this.negative !== 0) {
- out = '-' + out;
- }
- return out;
- }
- assert(false, 'Base should be between 2 and 36');
- };
- BN.prototype.toNumber = function toNumber () {
- var ret = this.words[0];
- if (this.length === 2) {
- ret += this.words[1] * 0x4000000;
- } else if (this.length === 3 && this.words[2] === 0x01) {
- // NOTE: at this stage it is known that the top bit is set
- ret += 0x10000000000000 + (this.words[1] * 0x4000000);
- } else if (this.length > 2) {
- assert(false, 'Number can only safely store up to 53 bits');
- }
- return (this.negative !== 0) ? -ret : ret;
- };
- BN.prototype.toJSON = function toJSON () {
- return this.toString(16, 2);
- };
- if (Buffer) {
- BN.prototype.toBuffer = function toBuffer (endian, length) {
- return this.toArrayLike(Buffer, endian, length);
- };
- }
- BN.prototype.toArray = function toArray (endian, length) {
- return this.toArrayLike(Array, endian, length);
- };
- var allocate = function allocate (ArrayType, size) {
- if (ArrayType.allocUnsafe) {
- return ArrayType.allocUnsafe(size);
- }
- return new ArrayType(size);
- };
- BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
- this._strip();
- var byteLength = this.byteLength();
- var reqLength = length || Math.max(1, byteLength);
- assert(byteLength <= reqLength, 'byte array longer than desired length');
- assert(reqLength > 0, 'Requested array length <= 0');
- var res = allocate(ArrayType, reqLength);
- var postfix = endian === 'le' ? 'LE' : 'BE';
- this['_toArrayLike' + postfix](res, byteLength);
- return res;
- };
- BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {
- var position = 0;
- var carry = 0;
- for (var i = 0, shift = 0; i < this.length; i++) {
- var word = (this.words[i] << shift) | carry;
- res[position++] = word & 0xff;
- if (position < res.length) {
- res[position++] = (word >> 8) & 0xff;
- }
- if (position < res.length) {
- res[position++] = (word >> 16) & 0xff;
- }
- if (shift === 6) {
- if (position < res.length) {
- res[position++] = (word >> 24) & 0xff;
- }
- carry = 0;
- shift = 0;
- } else {
- carry = word >>> 24;
- shift += 2;
- }
- }
- if (position < res.length) {
- res[position++] = carry;
- while (position < res.length) {
- res[position++] = 0;
- }
- }
- };
- BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {
- var position = res.length - 1;
- var carry = 0;
- for (var i = 0, shift = 0; i < this.length; i++) {
- var word = (this.words[i] << shift) | carry;
- res[position--] = word & 0xff;
- if (position >= 0) {
- res[position--] = (word >> 8) & 0xff;
- }
- if (position >= 0) {
- res[position--] = (word >> 16) & 0xff;
- }
- if (shift === 6) {
- if (position >= 0) {
- res[position--] = (word >> 24) & 0xff;
- }
- carry = 0;
- shift = 0;
- } else {
- carry = word >>> 24;
- shift += 2;
- }
- }
- if (position >= 0) {
- res[position--] = carry;
- while (position >= 0) {
- res[position--] = 0;
- }
- }
- };
- if (Math.clz32) {
- BN.prototype._countBits = function _countBits (w) {
- return 32 - Math.clz32(w);
- };
- } else {
- BN.prototype._countBits = function _countBits (w) {
- var t = w;
- var r = 0;
- if (t >= 0x1000) {
- r += 13;
- t >>>= 13;
- }
- if (t >= 0x40) {
- r += 7;
- t >>>= 7;
- }
- if (t >= 0x8) {
- r += 4;
- t >>>= 4;
- }
- if (t >= 0x02) {
- r += 2;
- t >>>= 2;
- }
- return r + t;
- };
- }
- BN.prototype._zeroBits = function _zeroBits (w) {
- // Short-cut
- if (w === 0) return 26;
- var t = w;
- var r = 0;
- if ((t & 0x1fff) === 0) {
- r += 13;
- t >>>= 13;
- }
- if ((t & 0x7f) === 0) {
- r += 7;
- t >>>= 7;
- }
- if ((t & 0xf) === 0) {
- r += 4;
- t >>>= 4;
- }
- if ((t & 0x3) === 0) {
- r += 2;
- t >>>= 2;
- }
- if ((t & 0x1) === 0) {
- r++;
- }
- return r;
- };
- // Return number of used bits in a BN
- BN.prototype.bitLength = function bitLength () {
- var w = this.words[this.length - 1];
- var hi = this._countBits(w);
- return (this.length - 1) * 26 + hi;
- };
- function toBitArray (num) {
- var w = new Array(num.bitLength());
- for (var bit = 0; bit < w.length; bit++) {
- var off = (bit / 26) | 0;
- var wbit = bit % 26;
- w[bit] = (num.words[off] >>> wbit) & 0x01;
- }
- return w;
- }
- // Number of trailing zero bits
- BN.prototype.zeroBits = function zeroBits () {
- if (this.isZero()) return 0;
- var r = 0;
- for (var i = 0; i < this.length; i++) {
- var b = this._zeroBits(this.words[i]);
- r += b;
- if (b !== 26) break;
- }
- return r;
- };
- BN.prototype.byteLength = function byteLength () {
- return Math.ceil(this.bitLength() / 8);
- };
- BN.prototype.toTwos = function toTwos (width) {
- if (this.negative !== 0) {
- return this.abs().inotn(width).iaddn(1);
- }
- return this.clone();
- };
- BN.prototype.fromTwos = function fromTwos (width) {
- if (this.testn(width - 1)) {
- return this.notn(width).iaddn(1).ineg();
- }
- return this.clone();
- };
- BN.prototype.isNeg = function isNeg () {
- return this.negative !== 0;
- };
- // Return negative clone of `this`
- BN.prototype.neg = function neg () {
- return this.clone().ineg();
- };
- BN.prototype.ineg = function ineg () {
- if (!this.isZero()) {
- this.negative ^= 1;
- }
- return this;
- };
- // Or `num` with `this` in-place
- BN.prototype.iuor = function iuor (num) {
- while (this.length < num.length) {
- this.words[this.length++] = 0;
- }
- for (var i = 0; i < num.length; i++) {
- this.words[i] = this.words[i] | num.words[i];
- }
- return this._strip();
- };
- BN.prototype.ior = function ior (num) {
- assert((this.negative | num.negative) === 0);
- return this.iuor(num);
- };
- // Or `num` with `this`
- BN.prototype.or = function or (num) {
- if (this.length > num.length) return this.clone().ior(num);
- return num.clone().ior(this);
- };
- BN.prototype.uor = function uor (num) {
- if (this.length > num.length) return this.clone().iuor(num);
- return num.clone().iuor(this);
- };
- // And `num` with `this` in-place
- BN.prototype.iuand = function iuand (num) {
- // b = min-length(num, this)
- var b;
- if (this.length > num.length) {
- b = num;
- } else {
- b = this;
- }
- for (var i = 0; i < b.length; i++) {
- this.words[i] = this.words[i] & num.words[i];
- }
- this.length = b.length;
- return this._strip();
- };
- BN.prototype.iand = function iand (num) {
- assert((this.negative | num.negative) === 0);
- return this.iuand(num);
- };
- // And `num` with `this`
- BN.prototype.and = function and (num) {
- if (this.length > num.length) return this.clone().iand(num);
- return num.clone().iand(this);
- };
- BN.prototype.uand = function uand (num) {
- if (this.length > num.length) return this.clone().iuand(num);
- return num.clone().iuand(this);
- };
- // Xor `num` with `this` in-place
- BN.prototype.iuxor = function iuxor (num) {
- // a.length > b.length
- var a;
- var b;
- if (this.length > num.length) {
- a = this;
- b = num;
- } else {
- a = num;
- b = this;
- }
- for (var i = 0; i < b.length; i++) {
- this.words[i] = a.words[i] ^ b.words[i];
- }
- if (this !== a) {
- for (; i < a.length; i++) {
- this.words[i] = a.words[i];
- }
- }
- this.length = a.length;
- return this._strip();
- };
- BN.prototype.ixor = function ixor (num) {
- assert((this.negative | num.negative) === 0);
- return this.iuxor(num);
- };
- // Xor `num` with `this`
- BN.prototype.xor = function xor (num) {
- if (this.length > num.length) return this.clone().ixor(num);
- return num.clone().ixor(this);
- };
- BN.prototype.uxor = function uxor (num) {
- if (this.length > num.length) return this.clone().iuxor(num);
- return num.clone().iuxor(this);
- };
- // Not ``this`` with ``width`` bitwidth
- BN.prototype.inotn = function inotn (width) {
- assert(typeof width === 'number' && width >= 0);
- var bytesNeeded = Math.ceil(width / 26) | 0;
- var bitsLeft = width % 26;
- // Extend the buffer with leading zeroes
- this._expand(bytesNeeded);
- if (bitsLeft > 0) {
- bytesNeeded--;
- }
- // Handle complete words
- for (var i = 0; i < bytesNeeded; i++) {
- this.words[i] = ~this.words[i] & 0x3ffffff;
- }
- // Handle the residue
- if (bitsLeft > 0) {
- this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));
- }
- // And remove leading zeroes
- return this._strip();
- };
- BN.prototype.notn = function notn (width) {
- return this.clone().inotn(width);
- };
- // Set `bit` of `this`
- BN.prototype.setn = function setn (bit, val) {
- assert(typeof bit === 'number' && bit >= 0);
- var off = (bit / 26) | 0;
- var wbit = bit % 26;
- this._expand(off + 1);
- if (val) {
- this.words[off] = this.words[off] | (1 << wbit);
- } else {
- this.words[off] = this.words[off] & ~(1 << wbit);
- }
- return this._strip();
- };
- // Add `num` to `this` in-place
- BN.prototype.iadd = function iadd (num) {
- var r;
- // negative + positive
- if (this.negative !== 0 && num.negative === 0) {
- this.negative = 0;
- r = this.isub(num);
- this.negative ^= 1;
- return this._normSign();
- // positive + negative
- } else if (this.negative === 0 && num.negative !== 0) {
- num.negative = 0;
- r = this.isub(num);
- num.negative = 1;
- return r._normSign();
- }
- // a.length > b.length
- var a, b;
- if (this.length > num.length) {
- a = this;
- b = num;
- } else {
- a = num;
- b = this;
- }
- var carry = 0;
- for (var i = 0; i < b.length; i++) {
- r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
- this.words[i] = r & 0x3ffffff;
- carry = r >>> 26;
- }
- for (; carry !== 0 && i < a.length; i++) {
- r = (a.words[i] | 0) + carry;
- this.words[i] = r & 0x3ffffff;
- carry = r >>> 26;
- }
- this.length = a.length;
- if (carry !== 0) {
- this.words[this.length] = carry;
- this.length++;
- // Copy the rest of the words
- } else if (a !== this) {
- for (; i < a.length; i++) {
- this.words[i] = a.words[i];
- }
- }
- return this;
- };
- // Add `num` to `this`
- BN.prototype.add = function add (num) {
- var res;
- if (num.negative !== 0 && this.negative === 0) {
- num.negative = 0;
- res = this.sub(num);
- num.negative ^= 1;
- return res;
- } else if (num.negative === 0 && this.negative !== 0) {
- this.negative = 0;
- res = num.sub(this);
- this.negative = 1;
- return res;
- }
- if (this.length > num.length) return this.clone().iadd(num);
- return num.clone().iadd(this);
- };
- // Subtract `num` from `this` in-place
- BN.prototype.isub = function isub (num) {
- // this - (-num) = this + num
- if (num.negative !== 0) {
- num.negative = 0;
- var r = this.iadd(num);
- num.negative = 1;
- return r._normSign();
- // -this - num = -(this + num)
- } else if (this.negative !== 0) {
- this.negative = 0;
- this.iadd(num);
- this.negative = 1;
- return this._normSign();
- }
- // At this point both numbers are positive
- var cmp = this.cmp(num);
- // Optimization - zeroify
- if (cmp === 0) {
- this.negative = 0;
- this.length = 1;
- this.words[0] = 0;
- return this;
- }
- // a > b
- var a, b;
- if (cmp > 0) {
- a = this;
- b = num;
- } else {
- a = num;
- b = this;
- }
- var carry = 0;
- for (var i = 0; i < b.length; i++) {
- r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
- carry = r >> 26;
- this.words[i] = r & 0x3ffffff;
- }
- for (; carry !== 0 && i < a.length; i++) {
- r = (a.words[i] | 0) + carry;
- carry = r >> 26;
- this.words[i] = r & 0x3ffffff;
- }
- // Copy rest of the words
- if (carry === 0 && i < a.length && a !== this) {
- for (; i < a.length; i++) {
- this.words[i] = a.words[i];
- }
- }
- this.length = Math.max(this.length, i);
- if (a !== this) {
- this.negative = 1;
- }
- return this._strip();
- };
- // Subtract `num` from `this`
- BN.prototype.sub = function sub (num) {
- return this.clone().isub(num);
- };
- function smallMulTo (self, num, out) {
- out.negative = num.negative ^ self.negative;
- var len = (self.length + num.length) | 0;
- out.length = len;
- len = (len - 1) | 0;
- // Peel one iteration (compiler can't do it, because of code complexity)
- var a = self.words[0] | 0;
- var b = num.words[0] | 0;
- var r = a * b;
- var lo = r & 0x3ffffff;
- var carry = (r / 0x4000000) | 0;
- out.words[0] = lo;
- for (var k = 1; k < len; k++) {
- // Sum all words with the same `i + j = k` and accumulate `ncarry`,
- // note that ncarry could be >= 0x3ffffff
- var ncarry = carry >>> 26;
- var rword = carry & 0x3ffffff;
- var maxJ = Math.min(k, num.length - 1);
- for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
- var i = (k - j) | 0;
- a = self.words[i] | 0;
- b = num.words[j] | 0;
- r = a * b + rword;
- ncarry += (r / 0x4000000) | 0;
- rword = r & 0x3ffffff;
- }
- out.words[k] = rword | 0;
- carry = ncarry | 0;
- }
- if (carry !== 0) {
- out.words[k] = carry | 0;
- } else {
- out.length--;
- }
- return out._strip();
- }
- // TODO(indutny): it may be reasonable to omit it for users who don't need
- // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit
- // multiplication (like elliptic secp256k1).
- var comb10MulTo = function comb10MulTo (self, num, out) {
- var a = self.words;
- var b = num.words;
- var o = out.words;
- var c = 0;
- var lo;
- var mid;
- var hi;
- var a0 = a[0] | 0;
- var al0 = a0 & 0x1fff;
- var ah0 = a0 >>> 13;
- var a1 = a[1] | 0;
- var al1 = a1 & 0x1fff;
- var ah1 = a1 >>> 13;
- var a2 = a[2] | 0;
- var al2 = a2 & 0x1fff;
- var ah2 = a2 >>> 13;
- var a3 = a[3] | 0;
- var al3 = a3 & 0x1fff;
- var ah3 = a3 >>> 13;
- var a4 = a[4] | 0;
- var al4 = a4 & 0x1fff;
- var ah4 = a4 >>> 13;
- var a5 = a[5] | 0;
- var al5 = a5 & 0x1fff;
- var ah5 = a5 >>> 13;
- var a6 = a[6] | 0;
- var al6 = a6 & 0x1fff;
- var ah6 = a6 >>> 13;
- var a7 = a[7] | 0;
- var al7 = a7 & 0x1fff;
- var ah7 = a7 >>> 13;
- var a8 = a[8] | 0;
- var al8 = a8 & 0x1fff;
- var ah8 = a8 >>> 13;
- var a9 = a[9] | 0;
- var al9 = a9 & 0x1fff;
- var ah9 = a9 >>> 13;
- var b0 = b[0] | 0;
- var bl0 = b0 & 0x1fff;
- var bh0 = b0 >>> 13;
- var b1 = b[1] | 0;
- var bl1 = b1 & 0x1fff;
- var bh1 = b1 >>> 13;
- var b2 = b[2] | 0;
- var bl2 = b2 & 0x1fff;
- var bh2 = b2 >>> 13;
- var b3 = b[3] | 0;
- var bl3 = b3 & 0x1fff;
- var bh3 = b3 >>> 13;
- var b4 = b[4] | 0;
- var bl4 = b4 & 0x1fff;
- var bh4 = b4 >>> 13;
- var b5 = b[5] | 0;
- var bl5 = b5 & 0x1fff;
- var bh5 = b5 >>> 13;
- var b6 = b[6] | 0;
- var bl6 = b6 & 0x1fff;
- var bh6 = b6 >>> 13;
- var b7 = b[7] | 0;
- var bl7 = b7 & 0x1fff;
- var bh7 = b7 >>> 13;
- var b8 = b[8] | 0;
- var bl8 = b8 & 0x1fff;
- var bh8 = b8 >>> 13;
- var b9 = b[9] | 0;
- var bl9 = b9 & 0x1fff;
- var bh9 = b9 >>> 13;
- out.negative = self.negative ^ num.negative;
- out.length = 19;
- /* k = 0 */
- lo = Math.imul(al0, bl0);
- mid = Math.imul(al0, bh0);
- mid = (mid + Math.imul(ah0, bl0)) | 0;
- hi = Math.imul(ah0, bh0);
- var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;
- w0 &= 0x3ffffff;
- /* k = 1 */
- lo = Math.imul(al1, bl0);
- mid = Math.imul(al1, bh0);
- mid = (mid + Math.imul(ah1, bl0)) | 0;
- hi = Math.imul(ah1, bh0);
- lo = (lo + Math.imul(al0, bl1)) | 0;
- mid = (mid + Math.imul(al0, bh1)) | 0;
- mid = (mid + Math.imul(ah0, bl1)) | 0;
- hi = (hi + Math.imul(ah0, bh1)) | 0;
- var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;
- w1 &= 0x3ffffff;
- /* k = 2 */
- lo = Math.imul(al2, bl0);
- mid = Math.imul(al2, bh0);
- mid = (mid + Math.imul(ah2, bl0)) | 0;
- hi = Math.imul(ah2, bh0);
- lo = (lo + Math.imul(al1, bl1)) | 0;
- mid = (mid + Math.imul(al1, bh1)) | 0;
- mid = (mid + Math.imul(ah1, bl1)) | 0;
- hi = (hi + Math.imul(ah1, bh1)) | 0;
- lo = (lo + Math.imul(al0, bl2)) | 0;
- mid = (mid + Math.imul(al0, bh2)) | 0;
- mid = (mid + Math.imul(ah0, bl2)) | 0;
- hi = (hi + Math.imul(ah0, bh2)) | 0;
- var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;
- w2 &= 0x3ffffff;
- /* k = 3 */
- lo = Math.imul(al3, bl0);
- mid = Math.imul(al3, bh0);
- mid = (mid + Math.imul(ah3, bl0)) | 0;
- hi = Math.imul(ah3, bh0);
- lo = (lo + Math.imul(al2, bl1)) | 0;
- mid = (mid + Math.imul(al2, bh1)) | 0;
- mid = (mid + Math.imul(ah2, bl1)) | 0;
- hi = (hi + Math.imul(ah2, bh1)) | 0;
- lo = (lo + Math.imul(al1, bl2)) | 0;
- mid = (mid + Math.imul(al1, bh2)) | 0;
- mid = (mid + Math.imul(ah1, bl2)) | 0;
- hi = (hi + Math.imul(ah1, bh2)) | 0;
- lo = (lo + Math.imul(al0, bl3)) | 0;
- mid = (mid + Math.imul(al0, bh3)) | 0;
- mid = (mid + Math.imul(ah0, bl3)) | 0;
- hi = (hi + Math.imul(ah0, bh3)) | 0;
- var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;
- w3 &= 0x3ffffff;
- /* k = 4 */
- lo = Math.imul(al4, bl0);
- mid = Math.imul(al4, bh0);
- mid = (mid + Math.imul(ah4, bl0)) | 0;
- hi = Math.imul(ah4, bh0);
- lo = (lo + Math.imul(al3, bl1)) | 0;
- mid = (mid + Math.imul(al3, bh1)) | 0;
- mid = (mid + Math.imul(ah3, bl1)) | 0;
- hi = (hi + Math.imul(ah3, bh1)) | 0;
- lo = (lo + Math.imul(al2, bl2)) | 0;
- mid = (mid + Math.imul(al2, bh2)) | 0;
- mid = (mid + Math.imul(ah2, bl2)) | 0;
- hi = (hi + Math.imul(ah2, bh2)) | 0;
- lo = (lo + Math.imul(al1, bl3)) | 0;
- mid = (mid + Math.imul(al1, bh3)) | 0;
- mid = (mid + Math.imul(ah1, bl3)) | 0;
- hi = (hi + Math.imul(ah1, bh3)) | 0;
- lo = (lo + Math.imul(al0, bl4)) | 0;
- mid = (mid + Math.imul(al0, bh4)) | 0;
- mid = (mid + Math.imul(ah0, bl4)) | 0;
- hi = (hi + Math.imul(ah0, bh4)) | 0;
- var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;
- w4 &= 0x3ffffff;
- /* k = 5 */
- lo = Math.imul(al5, bl0);
- mid = Math.imul(al5, bh0);
- mid = (mid + Math.imul(ah5, bl0)) | 0;
- hi = Math.imul(ah5, bh0);
- lo = (lo + Math.imul(al4, bl1)) | 0;
- mid = (mid + Math.imul(al4, bh1)) | 0;
- mid = (mid + Math.imul(ah4, bl1)) | 0;
- hi = (hi + Math.imul(ah4, bh1)) | 0;
- lo = (lo + Math.imul(al3, bl2)) | 0;
- mid = (mid + Math.imul(al3, bh2)) | 0;
- mid = (mid + Math.imul(ah3, bl2)) | 0;
- hi = (hi + Math.imul(ah3, bh2)) | 0;
- lo = (lo + Math.imul(al2, bl3)) | 0;
- mid = (mid + Math.imul(al2, bh3)) | 0;
- mid = (mid + Math.imul(ah2, bl3)) | 0;
- hi = (hi + Math.imul(ah2, bh3)) | 0;
- lo = (lo + Math.imul(al1, bl4)) | 0;
- mid = (mid + Math.imul(al1, bh4)) | 0;
- mid = (mid + Math.imul(ah1, bl4)) | 0;
- hi = (hi + Math.imul(ah1, bh4)) | 0;
- lo = (lo + Math.imul(al0, bl5)) | 0;
- mid = (mid + Math.imul(al0, bh5)) | 0;
- mid = (mid + Math.imul(ah0, bl5)) | 0;
- hi = (hi + Math.imul(ah0, bh5)) | 0;
- var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;
- w5 &= 0x3ffffff;
- /* k = 6 */
- lo = Math.imul(al6, bl0);
- mid = Math.imul(al6, bh0);
- mid = (mid + Math.imul(ah6, bl0)) | 0;
- hi = Math.imul(ah6, bh0);
- lo = (lo + Math.imul(al5, bl1)) | 0;
- mid = (mid + Math.imul(al5, bh1)) | 0;
- mid = (mid + Math.imul(ah5, bl1)) | 0;
- hi = (hi + Math.imul(ah5, bh1)) | 0;
- lo = (lo + Math.imul(al4, bl2)) | 0;
- mid = (mid + Math.imul(al4, bh2)) | 0;
- mid = (mid + Math.imul(ah4, bl2)) | 0;
- hi = (hi + Math.imul(ah4, bh2)) | 0;
- lo = (lo + Math.imul(al3, bl3)) | 0;
- mid = (mid + Math.imul(al3, bh3)) | 0;
- mid = (mid + Math.imul(ah3, bl3)) | 0;
- hi = (hi + Math.imul(ah3, bh3)) | 0;
- lo = (lo + Math.imul(al2, bl4)) | 0;
- mid = (mid + Math.imul(al2, bh4)) | 0;
- mid = (mid + Math.imul(ah2, bl4)) | 0;
- hi = (hi + Math.imul(ah2, bh4)) | 0;
- lo = (lo + Math.imul(al1, bl5)) | 0;
- mid = (mid + Math.imul(al1, bh5)) | 0;
- mid = (mid + Math.imul(ah1, bl5)) | 0;
- hi = (hi + Math.imul(ah1, bh5)) | 0;
- lo = (lo + Math.imul(al0, bl6)) | 0;
- mid = (mid + Math.imul(al0, bh6)) | 0;
- mid = (mid + Math.imul(ah0, bl6)) | 0;
- hi = (hi + Math.imul(ah0, bh6)) | 0;
- var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;
- w6 &= 0x3ffffff;
- /* k = 7 */
- lo = Math.imul(al7, bl0);
- mid = Math.imul(al7, bh0);
- mid = (mid + Math.imul(ah7, bl0)) | 0;
- hi = Math.imul(ah7, bh0);
- lo = (lo + Math.imul(al6, bl1)) | 0;
- mid = (mid + Math.imul(al6, bh1)) | 0;
- mid = (mid + Math.imul(ah6, bl1)) | 0;
- hi = (hi + Math.imul(ah6, bh1)) | 0;
- lo = (lo + Math.imul(al5, bl2)) | 0;
- mid = (mid + Math.imul(al5, bh2)) | 0;
- mid = (mid + Math.imul(ah5, bl2)) | 0;
- hi = (hi + Math.imul(ah5, bh2)) | 0;
- lo = (lo + Math.imul(al4, bl3)) | 0;
- mid = (mid + Math.imul(al4, bh3)) | 0;
- mid = (mid + Math.imul(ah4, bl3)) | 0;
- hi = (hi + Math.imul(ah4, bh3)) | 0;
- lo = (lo + Math.imul(al3, bl4)) | 0;
- mid = (mid + Math.imul(al3, bh4)) | 0;
- mid = (mid + Math.imul(ah3, bl4)) | 0;
- hi = (hi + Math.imul(ah3, bh4)) | 0;
- lo = (lo + Math.imul(al2, bl5)) | 0;
- mid = (mid + Math.imul(al2, bh5)) | 0;
- mid = (mid + Math.imul(ah2, bl5)) | 0;
- hi = (hi + Math.imul(ah2, bh5)) | 0;
- lo = (lo + Math.imul(al1, bl6)) | 0;
- mid = (mid + Math.imul(al1, bh6)) | 0;
- mid = (mid + Math.imul(ah1, bl6)) | 0;
- hi = (hi + Math.imul(ah1, bh6)) | 0;
- lo = (lo + Math.imul(al0, bl7)) | 0;
- mid = (mid + Math.imul(al0, bh7)) | 0;
- mid = (mid + Math.imul(ah0, bl7)) | 0;
- hi = (hi + Math.imul(ah0, bh7)) | 0;
- var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;
- w7 &= 0x3ffffff;
- /* k = 8 */
- lo = Math.imul(al8, bl0);
- mid = Math.imul(al8, bh0);
- mid = (mid + Math.imul(ah8, bl0)) | 0;
- hi = Math.imul(ah8, bh0);
- lo = (lo + Math.imul(al7, bl1)) | 0;
- mid = (mid + Math.imul(al7, bh1)) | 0;
- mid = (mid + Math.imul(ah7, bl1)) | 0;
- hi = (hi + Math.imul(ah7, bh1)) | 0;
- lo = (lo + Math.imul(al6, bl2)) | 0;
- mid = (mid + Math.imul(al6, bh2)) | 0;
- mid = (mid + Math.imul(ah6, bl2)) | 0;
- hi = (hi + Math.imul(ah6, bh2)) | 0;
- lo = (lo + Math.imul(al5, bl3)) | 0;
- mid = (mid + Math.imul(al5, bh3)) | 0;
- mid = (mid + Math.imul(ah5, bl3)) | 0;
- hi = (hi + Math.imul(ah5, bh3)) | 0;
- lo = (lo + Math.imul(al4, bl4)) | 0;
- mid = (mid + Math.imul(al4, bh4)) | 0;
- mid = (mid + Math.imul(ah4, bl4)) | 0;
- hi = (hi + Math.imul(ah4, bh4)) | 0;
- lo = (lo + Math.imul(al3, bl5)) | 0;
- mid = (mid + Math.imul(al3, bh5)) | 0;
- mid = (mid + Math.imul(ah3, bl5)) | 0;
- hi = (hi + Math.imul(ah3, bh5)) | 0;
- lo = (lo + Math.imul(al2, bl6)) | 0;
- mid = (mid + Math.imul(al2, bh6)) | 0;
- mid = (mid + Math.imul(ah2, bl6)) | 0;
- hi = (hi + Math.imul(ah2, bh6)) | 0;
- lo = (lo + Math.imul(al1, bl7)) | 0;
- mid = (mid + Math.imul(al1, bh7)) | 0;
- mid = (mid + Math.imul(ah1, bl7)) | 0;
- hi = (hi + Math.imul(ah1, bh7)) | 0;
- lo = (lo + Math.imul(al0, bl8)) | 0;
- mid = (mid + Math.imul(al0, bh8)) | 0;
- mid = (mid + Math.imul(ah0, bl8)) | 0;
- hi = (hi + Math.imul(ah0, bh8)) | 0;
- var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;
- w8 &= 0x3ffffff;
- /* k = 9 */
- lo = Math.imul(al9, bl0);
- mid = Math.imul(al9, bh0);
- mid = (mid + Math.imul(ah9, bl0)) | 0;
- hi = Math.imul(ah9, bh0);
- lo = (lo + Math.imul(al8, bl1)) | 0;
- mid = (mid + Math.imul(al8, bh1)) | 0;
- mid = (mid + Math.imul(ah8, bl1)) | 0;
- hi = (hi + Math.imul(ah8, bh1)) | 0;
- lo = (lo + Math.imul(al7, bl2)) | 0;
- mid = (mid + Math.imul(al7, bh2)) | 0;
- mid = (mid + Math.imul(ah7, bl2)) | 0;
- hi = (hi + Math.imul(ah7, bh2)) | 0;
- lo = (lo + Math.imul(al6, bl3)) | 0;
- mid = (mid + Math.imul(al6, bh3)) | 0;
- mid = (mid + Math.imul(ah6, bl3)) | 0;
- hi = (hi + Math.imul(ah6, bh3)) | 0;
- lo = (lo + Math.imul(al5, bl4)) | 0;
- mid = (mid + Math.imul(al5, bh4)) | 0;
- mid = (mid + Math.imul(ah5, bl4)) | 0;
- hi = (hi + Math.imul(ah5, bh4)) | 0;
- lo = (lo + Math.imul(al4, bl5)) | 0;
- mid = (mid + Math.imul(al4, bh5)) | 0;
- mid = (mid + Math.imul(ah4, bl5)) | 0;
- hi = (hi + Math.imul(ah4, bh5)) | 0;
- lo = (lo + Math.imul(al3, bl6)) | 0;
- mid = (mid + Math.imul(al3, bh6)) | 0;
- mid = (mid + Math.imul(ah3, bl6)) | 0;
- hi = (hi + Math.imul(ah3, bh6)) | 0;
- lo = (lo + Math.imul(al2, bl7)) | 0;
- mid = (mid + Math.imul(al2, bh7)) | 0;
- mid = (mid + Math.imul(ah2, bl7)) | 0;
- hi = (hi + Math.imul(ah2, bh7)) | 0;
- lo = (lo + Math.imul(al1, bl8)) | 0;
- mid = (mid + Math.imul(al1, bh8)) | 0;
- mid = (mid + Math.imul(ah1, bl8)) | 0;
- hi = (hi + Math.imul(ah1, bh8)) | 0;
- lo = (lo + Math.imul(al0, bl9)) | 0;
- mid = (mid + Math.imul(al0, bh9)) | 0;
- mid = (mid + Math.imul(ah0, bl9)) | 0;
- hi = (hi + Math.imul(ah0, bh9)) | 0;
- var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;
- w9 &= 0x3ffffff;
- /* k = 10 */
- lo = Math.imul(al9, bl1);
- mid = Math.imul(al9, bh1);
- mid = (mid + Math.imul(ah9, bl1)) | 0;
- hi = Math.imul(ah9, bh1);
- lo = (lo + Math.imul(al8, bl2)) | 0;
- mid = (mid + Math.imul(al8, bh2)) | 0;
- mid = (mid + Math.imul(ah8, bl2)) | 0;
- hi = (hi + Math.imul(ah8, bh2)) | 0;
- lo = (lo + Math.imul(al7, bl3)) | 0;
- mid = (mid + Math.imul(al7, bh3)) | 0;
- mid = (mid + Math.imul(ah7, bl3)) | 0;
- hi = (hi + Math.imul(ah7, bh3)) | 0;
- lo = (lo + Math.imul(al6, bl4)) | 0;
- mid = (mid + Math.imul(al6, bh4)) | 0;
- mid = (mid + Math.imul(ah6, bl4)) | 0;
- hi = (hi + Math.imul(ah6, bh4)) | 0;
- lo = (lo + Math.imul(al5, bl5)) | 0;
- mid = (mid + Math.imul(al5, bh5)) | 0;
- mid = (mid + Math.imul(ah5, bl5)) | 0;
- hi = (hi + Math.imul(ah5, bh5)) | 0;
- lo = (lo + Math.imul(al4, bl6)) | 0;
- mid = (mid + Math.imul(al4, bh6)) | 0;
- mid = (mid + Math.imul(ah4, bl6)) | 0;
- hi = (hi + Math.imul(ah4, bh6)) | 0;
- lo = (lo + Math.imul(al3, bl7)) | 0;
- mid = (mid + Math.imul(al3, bh7)) | 0;
- mid = (mid + Math.imul(ah3, bl7)) | 0;
- hi = (hi + Math.imul(ah3, bh7)) | 0;
- lo = (lo + Math.imul(al2, bl8)) | 0;
- mid = (mid + Math.imul(al2, bh8)) | 0;
- mid = (mid + Math.imul(ah2, bl8)) | 0;
- hi = (hi + Math.imul(ah2, bh8)) | 0;
- lo = (lo + Math.imul(al1, bl9)) | 0;
- mid = (mid + Math.imul(al1, bh9)) | 0;
- mid = (mid + Math.imul(ah1, bl9)) | 0;
- hi = (hi + Math.imul(ah1, bh9)) | 0;
- var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;
- w10 &= 0x3ffffff;
- /* k = 11 */
- lo = Math.imul(al9, bl2);
- mid = Math.imul(al9, bh2);
- mid = (mid + Math.imul(ah9, bl2)) | 0;
- hi = Math.imul(ah9, bh2);
- lo = (lo + Math.imul(al8, bl3)) | 0;
- mid = (mid + Math.imul(al8, bh3)) | 0;
- mid = (mid + Math.imul(ah8, bl3)) | 0;
- hi = (hi + Math.imul(ah8, bh3)) | 0;
- lo = (lo + Math.imul(al7, bl4)) | 0;
- mid = (mid + Math.imul(al7, bh4)) | 0;
- mid = (mid + Math.imul(ah7, bl4)) | 0;
- hi = (hi + Math.imul(ah7, bh4)) | 0;
- lo = (lo + Math.imul(al6, bl5)) | 0;
- mid = (mid + Math.imul(al6, bh5)) | 0;
- mid = (mid + Math.imul(ah6, bl5)) | 0;
- hi = (hi + Math.imul(ah6, bh5)) | 0;
- lo = (lo + Math.imul(al5, bl6)) | 0;
- mid = (mid + Math.imul(al5, bh6)) | 0;
- mid = (mid + Math.imul(ah5, bl6)) | 0;
- hi = (hi + Math.imul(ah5, bh6)) | 0;
- lo = (lo + Math.imul(al4, bl7)) | 0;
- mid = (mid + Math.imul(al4, bh7)) | 0;
- mid = (mid + Math.imul(ah4, bl7)) | 0;
- hi = (hi + Math.imul(ah4, bh7)) | 0;
- lo = (lo + Math.imul(al3, bl8)) | 0;
- mid = (mid + Math.imul(al3, bh8)) | 0;
- mid = (mid + Math.imul(ah3, bl8)) | 0;
- hi = (hi + Math.imul(ah3, bh8)) | 0;
- lo = (lo + Math.imul(al2, bl9)) | 0;
- mid = (mid + Math.imul(al2, bh9)) | 0;
- mid = (mid + Math.imul(ah2, bl9)) | 0;
- hi = (hi + Math.imul(ah2, bh9)) | 0;
- var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;
- w11 &= 0x3ffffff;
- /* k = 12 */
- lo = Math.imul(al9, bl3);
- mid = Math.imul(al9, bh3);
- mid = (mid + Math.imul(ah9, bl3)) | 0;
- hi = Math.imul(ah9, bh3);
- lo = (lo + Math.imul(al8, bl4)) | 0;
- mid = (mid + Math.imul(al8, bh4)) | 0;
- mid = (mid + Math.imul(ah8, bl4)) | 0;
- hi = (hi + Math.imul(ah8, bh4)) | 0;
- lo = (lo + Math.imul(al7, bl5)) | 0;
- mid = (mid + Math.imul(al7, bh5)) | 0;
- mid = (mid + Math.imul(ah7, bl5)) | 0;
- hi = (hi + Math.imul(ah7, bh5)) | 0;
- lo = (lo + Math.imul(al6, bl6)) | 0;
- mid = (mid + Math.imul(al6, bh6)) | 0;
- mid = (mid + Math.imul(ah6, bl6)) | 0;
- hi = (hi + Math.imul(ah6, bh6)) | 0;
- lo = (lo + Math.imul(al5, bl7)) | 0;
- mid = (mid + Math.imul(al5, bh7)) | 0;
- mid = (mid + Math.imul(ah5, bl7)) | 0;
- hi = (hi + Math.imul(ah5, bh7)) | 0;
- lo = (lo + Math.imul(al4, bl8)) | 0;
- mid = (mid + Math.imul(al4, bh8)) | 0;
- mid = (mid + Math.imul(ah4, bl8)) | 0;
- hi = (hi + Math.imul(ah4, bh8)) | 0;
- lo = (lo + Math.imul(al3, bl9)) | 0;
- mid = (mid + Math.imul(al3, bh9)) | 0;
- mid = (mid + Math.imul(ah3, bl9)) | 0;
- hi = (hi + Math.imul(ah3, bh9)) | 0;
- var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;
- w12 &= 0x3ffffff;
- /* k = 13 */
- lo = Math.imul(al9, bl4);
- mid = Math.imul(al9, bh4);
- mid = (mid + Math.imul(ah9, bl4)) | 0;
- hi = Math.imul(ah9, bh4);
- lo = (lo + Math.imul(al8, bl5)) | 0;
- mid = (mid + Math.imul(al8, bh5)) | 0;
- mid = (mid + Math.imul(ah8, bl5)) | 0;
- hi = (hi + Math.imul(ah8, bh5)) | 0;
- lo = (lo + Math.imul(al7, bl6)) | 0;
- mid = (mid + Math.imul(al7, bh6)) | 0;
- mid = (mid + Math.imul(ah7, bl6)) | 0;
- hi = (hi + Math.imul(ah7, bh6)) | 0;
- lo = (lo + Math.imul(al6, bl7)) | 0;
- mid = (mid + Math.imul(al6, bh7)) | 0;
- mid = (mid + Math.imul(ah6, bl7)) | 0;
- hi = (hi + Math.imul(ah6, bh7)) | 0;
- lo = (lo + Math.imul(al5, bl8)) | 0;
- mid = (mid + Math.imul(al5, bh8)) | 0;
- mid = (mid + Math.imul(ah5, bl8)) | 0;
- hi = (hi + Math.imul(ah5, bh8)) | 0;
- lo = (lo + Math.imul(al4, bl9)) | 0;
- mid = (mid + Math.imul(al4, bh9)) | 0;
- mid = (mid + Math.imul(ah4, bl9)) | 0;
- hi = (hi + Math.imul(ah4, bh9)) | 0;
- var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;
- w13 &= 0x3ffffff;
- /* k = 14 */
- lo = Math.imul(al9, bl5);
- mid = Math.imul(al9, bh5);
- mid = (mid + Math.imul(ah9, bl5)) | 0;
- hi = Math.imul(ah9, bh5);
- lo = (lo + Math.imul(al8, bl6)) | 0;
- mid = (mid + Math.imul(al8, bh6)) | 0;
- mid = (mid + Math.imul(ah8, bl6)) | 0;
- hi = (hi + Math.imul(ah8, bh6)) | 0;
- lo = (lo + Math.imul(al7, bl7)) | 0;
- mid = (mid + Math.imul(al7, bh7)) | 0;
- mid = (mid + Math.imul(ah7, bl7)) | 0;
- hi = (hi + Math.imul(ah7, bh7)) | 0;
- lo = (lo + Math.imul(al6, bl8)) | 0;
- mid = (mid + Math.imul(al6, bh8)) | 0;
- mid = (mid + Math.imul(ah6, bl8)) | 0;
- hi = (hi + Math.imul(ah6, bh8)) | 0;
- lo = (lo + Math.imul(al5, bl9)) | 0;
- mid = (mid + Math.imul(al5, bh9)) | 0;
- mid = (mid + Math.imul(ah5, bl9)) | 0;
- hi = (hi + Math.imul(ah5, bh9)) | 0;
- var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;
- w14 &= 0x3ffffff;
- /* k = 15 */
- lo = Math.imul(al9, bl6);
- mid = Math.imul(al9, bh6);
- mid = (mid + Math.imul(ah9, bl6)) | 0;
- hi = Math.imul(ah9, bh6);
- lo = (lo + Math.imul(al8, bl7)) | 0;
- mid = (mid + Math.imul(al8, bh7)) | 0;
- mid = (mid + Math.imul(ah8, bl7)) | 0;
- hi = (hi + Math.imul(ah8, bh7)) | 0;
- lo = (lo + Math.imul(al7, bl8)) | 0;
- mid = (mid + Math.imul(al7, bh8)) | 0;
- mid = (mid + Math.imul(ah7, bl8)) | 0;
- hi = (hi + Math.imul(ah7, bh8)) | 0;
- lo = (lo + Math.imul(al6, bl9)) | 0;
- mid = (mid + Math.imul(al6, bh9)) | 0;
- mid = (mid + Math.imul(ah6, bl9)) | 0;
- hi = (hi + Math.imul(ah6, bh9)) | 0;
- var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;
- w15 &= 0x3ffffff;
- /* k = 16 */
- lo = Math.imul(al9, bl7);
- mid = Math.imul(al9, bh7);
- mid = (mid + Math.imul(ah9, bl7)) | 0;
- hi = Math.imul(ah9, bh7);
- lo = (lo + Math.imul(al8, bl8)) | 0;
- mid = (mid + Math.imul(al8, bh8)) | 0;
- mid = (mid + Math.imul(ah8, bl8)) | 0;
- hi = (hi + Math.imul(ah8, bh8)) | 0;
- lo = (lo + Math.imul(al7, bl9)) | 0;
- mid = (mid + Math.imul(al7, bh9)) | 0;
- mid = (mid + Math.imul(ah7, bl9)) | 0;
- hi = (hi + Math.imul(ah7, bh9)) | 0;
- var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;
- w16 &= 0x3ffffff;
- /* k = 17 */
- lo = Math.imul(al9, bl8);
- mid = Math.imul(al9, bh8);
- mid = (mid + Math.imul(ah9, bl8)) | 0;
- hi = Math.imul(ah9, bh8);
- lo = (lo + Math.imul(al8, bl9)) | 0;
- mid = (mid + Math.imul(al8, bh9)) | 0;
- mid = (mid + Math.imul(ah8, bl9)) | 0;
- hi = (hi + Math.imul(ah8, bh9)) | 0;
- var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;
- w17 &= 0x3ffffff;
- /* k = 18 */
- lo = Math.imul(al9, bl9);
- mid = Math.imul(al9, bh9);
- mid = (mid + Math.imul(ah9, bl9)) | 0;
- hi = Math.imul(ah9, bh9);
- var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;
- w18 &= 0x3ffffff;
- o[0] = w0;
- o[1] = w1;
- o[2] = w2;
- o[3] = w3;
- o[4] = w4;
- o[5] = w5;
- o[6] = w6;
- o[7] = w7;
- o[8] = w8;
- o[9] = w9;
- o[10] = w10;
- o[11] = w11;
- o[12] = w12;
- o[13] = w13;
- o[14] = w14;
- o[15] = w15;
- o[16] = w16;
- o[17] = w17;
- o[18] = w18;
- if (c !== 0) {
- o[19] = c;
- out.length++;
- }
- return out;
- };
- // Polyfill comb
- if (!Math.imul) {
- comb10MulTo = smallMulTo;
- }
- function bigMulTo (self, num, out) {
- out.negative = num.negative ^ self.negative;
- out.length = self.length + num.length;
- var carry = 0;
- var hncarry = 0;
- for (var k = 0; k < out.length - 1; k++) {
- // Sum all words with the same `i + j = k` and accumulate `ncarry`,
- // note that ncarry could be >= 0x3ffffff
- var ncarry = hncarry;
- hncarry = 0;
- var rword = carry & 0x3ffffff;
- var maxJ = Math.min(k, num.length - 1);
- for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
- var i = k - j;
- var a = self.words[i] | 0;
- var b = num.words[j] | 0;
- var r = a * b;
- var lo = r & 0x3ffffff;
- ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;
- lo = (lo + rword) | 0;
- rword = lo & 0x3ffffff;
- ncarry = (ncarry + (lo >>> 26)) | 0;
- hncarry += ncarry >>> 26;
- ncarry &= 0x3ffffff;
- }
- out.words[k] = rword;
- carry = ncarry;
- ncarry = hncarry;
- }
- if (carry !== 0) {
- out.words[k] = carry;
- } else {
- out.length--;
- }
- return out._strip();
- }
- function jumboMulTo (self, num, out) {
- // Temporary disable, see https://github.com/indutny/bn.js/issues/211
- // var fftm = new FFTM();
- // return fftm.mulp(self, num, out);
- return bigMulTo(self, num, out);
- }
- BN.prototype.mulTo = function mulTo (num, out) {
- var res;
- var len = this.length + num.length;
- if (this.length === 10 && num.length === 10) {
- res = comb10MulTo(this, num, out);
- } else if (len < 63) {
- res = smallMulTo(this, num, out);
- } else if (len < 1024) {
- res = bigMulTo(this, num, out);
- } else {
- res = jumboMulTo(this, num, out);
- }
- return res;
- };
- // Cooley-Tukey algorithm for FFT
- // slightly revisited to rely on looping instead of recursion
- function FFTM (x, y) {
- this.x = x;
- this.y = y;
- }
- FFTM.prototype.makeRBT = function makeRBT (N) {
- var t = new Array(N);
- var l = BN.prototype._countBits(N) - 1;
- for (var i = 0; i < N; i++) {
- t[i] = this.revBin(i, l, N);
- }
- return t;
- };
- // Returns binary-reversed representation of `x`
- FFTM.prototype.revBin = function revBin (x, l, N) {
- if (x === 0 || x === N - 1) return x;
- var rb = 0;
- for (var i = 0; i < l; i++) {
- rb |= (x & 1) << (l - i - 1);
- x >>= 1;
- }
- return rb;
- };
- // Performs "tweedling" phase, therefore 'emulating'
- // behaviour of the recursive algorithm
- FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
- for (var i = 0; i < N; i++) {
- rtws[i] = rws[rbt[i]];
- itws[i] = iws[rbt[i]];
- }
- };
- FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
- this.permute(rbt, rws, iws, rtws, itws, N);
- for (var s = 1; s < N; s <<= 1) {
- var l = s << 1;
- var rtwdf = Math.cos(2 * Math.PI / l);
- var itwdf = Math.sin(2 * Math.PI / l);
- for (var p = 0; p < N; p += l) {
- var rtwdf_ = rtwdf;
- var itwdf_ = itwdf;
- for (var j = 0; j < s; j++) {
- var re = rtws[p + j];
- var ie = itws[p + j];
- var ro = rtws[p + j + s];
- var io = itws[p + j + s];
- var rx = rtwdf_ * ro - itwdf_ * io;
- io = rtwdf_ * io + itwdf_ * ro;
- ro = rx;
- rtws[p + j] = re + ro;
- itws[p + j] = ie + io;
- rtws[p + j + s] = re - ro;
- itws[p + j + s] = ie - io;
- /* jshint maxdepth : false */
- if (j !== l) {
- rx = rtwdf * rtwdf_ - itwdf * itwdf_;
- itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
- rtwdf_ = rx;
- }
- }
- }
- }
- };
- FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
- var N = Math.max(m, n) | 1;
- var odd = N & 1;
- var i = 0;
- for (N = N / 2 | 0; N; N = N >>> 1) {
- i++;
- }
- return 1 << i + 1 + odd;
- };
- FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
- if (N <= 1) return;
- for (var i = 0; i < N / 2; i++) {
- var t = rws[i];
- rws[i] = rws[N - i - 1];
- rws[N - i - 1] = t;
- t = iws[i];
- iws[i] = -iws[N - i - 1];
- iws[N - i - 1] = -t;
- }
- };
- FFTM.prototype.normalize13b = function normalize13b (ws, N) {
- var carry = 0;
- for (var i = 0; i < N / 2; i++) {
- var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +
- Math.round(ws[2 * i] / N) +
- carry;
- ws[i] = w & 0x3ffffff;
- if (w < 0x4000000) {
- carry = 0;
- } else {
- carry = w / 0x4000000 | 0;
- }
- }
- return ws;
- };
- FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
- var carry = 0;
- for (var i = 0; i < len; i++) {
- carry = carry + (ws[i] | 0);
- rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;
- rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;
- }
- // Pad with zeroes
- for (i = 2 * len; i < N; ++i) {
- rws[i] = 0;
- }
- assert(carry === 0);
- assert((carry & ~0x1fff) === 0);
- };
- FFTM.prototype.stub = function stub (N) {
- var ph = new Array(N);
- for (var i = 0; i < N; i++) {
- ph[i] = 0;
- }
- return ph;
- };
- FFTM.prototype.mulp = function mulp (x, y, out) {
- var N = 2 * this.guessLen13b(x.length, y.length);
- var rbt = this.makeRBT(N);
- var _ = this.stub(N);
- var rws = new Array(N);
- var rwst = new Array(N);
- var iwst = new Array(N);
- var nrws = new Array(N);
- var nrwst = new Array(N);
- var niwst = new Array(N);
- var rmws = out.words;
- rmws.length = N;
- this.convert13b(x.words, x.length, rws, N);
- this.convert13b(y.words, y.length, nrws, N);
- this.transform(rws, _, rwst, iwst, N, rbt);
- this.transform(nrws, _, nrwst, niwst, N, rbt);
- for (var i = 0; i < N; i++) {
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
- iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
- rwst[i] = rx;
- }
- this.conjugate(rwst, iwst, N);
- this.transform(rwst, iwst, rmws, _, N, rbt);
- this.conjugate(rmws, _, N);
- this.normalize13b(rmws, N);
- out.negative = x.negative ^ y.negative;
- out.length = x.length + y.length;
- return out._strip();
- };
- // Multiply `this` by `num`
- BN.prototype.mul = function mul (num) {
- var out = new BN(null);
- out.words = new Array(this.length + num.length);
- return this.mulTo(num, out);
- };
- // Multiply employing FFT
- BN.prototype.mulf = function mulf (num) {
- var out = new BN(null);
- out.words = new Array(this.length + num.length);
- return jumboMulTo(this, num, out);
- };
- // In-place Multiplication
- BN.prototype.imul = function imul (num) {
- return this.clone().mulTo(num, this);
- };
- BN.prototype.imuln = function imuln (num) {
- var isNegNum = num < 0;
- if (isNegNum) num = -num;
- assert(typeof num === 'number');
- assert(num < 0x4000000);
- // Carry
- var carry = 0;
- for (var i = 0; i < this.length; i++) {
- var w = (this.words[i] | 0) * num;
- var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);
- carry >>= 26;
- carry += (w / 0x4000000) | 0;
- // NOTE: lo is 27bit maximum
- carry += lo >>> 26;
- this.words[i] = lo & 0x3ffffff;
- }
- if (carry !== 0) {
- this.words[i] = carry;
- this.length++;
- }
- return isNegNum ? this.ineg() : this;
- };
- BN.prototype.muln = function muln (num) {
- return this.clone().imuln(num);
- };
- // `this` * `this`
- BN.prototype.sqr = function sqr () {
- return this.mul(this);
- };
- // `this` * `this` in-place
- BN.prototype.isqr = function isqr () {
- return this.imul(this.clone());
- };
- // Math.pow(`this`, `num`)
- BN.prototype.pow = function pow (num) {
- var w = toBitArray(num);
- if (w.length === 0) return new BN(1);
- // Skip leading zeroes
- var res = this;
- for (var i = 0; i < w.length; i++, res = res.sqr()) {
- if (w[i] !== 0) break;
- }
- if (++i < w.length) {
- for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
- if (w[i] === 0) continue;
- res = res.mul(q);
- }
- }
- return res;
- };
- // Shift-left in-place
- BN.prototype.iushln = function iushln (bits) {
- assert(typeof bits === 'number' && bits >= 0);
- var r = bits % 26;
- var s = (bits - r) / 26;
- var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);
- var i;
- if (r !== 0) {
- var carry = 0;
- for (i = 0; i < this.length; i++) {
- var newCarry = this.words[i] & carryMask;
- var c = ((this.words[i] | 0) - newCarry) << r;
- this.words[i] = c | carry;
- carry = newCarry >>> (26 - r);
- }
- if (carry) {
- this.words[i] = carry;
- this.length++;
- }
- }
- if (s !== 0) {
- for (i = this.length - 1; i >= 0; i--) {
- this.words[i + s] = this.words[i];
- }
- for (i = 0; i < s; i++) {
- this.words[i] = 0;
- }
- this.length += s;
- }
- return this._strip();
- };
- BN.prototype.ishln = function ishln (bits) {
- // TODO(indutny): implement me
- assert(this.negative === 0);
- return this.iushln(bits);
- };
- // Shift-right in-place
- // NOTE: `hint` is a lowest bit before trailing zeroes
- // NOTE: if `extended` is present - it will be filled with destroyed bits
- BN.prototype.iushrn = function iushrn (bits, hint, extended) {
- assert(typeof bits === 'number' && bits >= 0);
- var h;
- if (hint) {
- h = (hint - (hint % 26)) / 26;
- } else {
- h = 0;
- }
- var r = bits % 26;
- var s = Math.min((bits - r) / 26, this.length);
- var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);
- var maskedWords = extended;
- h -= s;
- h = Math.max(0, h);
- // Extended mode, copy masked part
- if (maskedWords) {
- for (var i = 0; i < s; i++) {
- maskedWords.words[i] = this.words[i];
- }
- maskedWords.length = s;
- }
- if (s === 0) {
- // No-op, we should not move anything at all
- } else if (this.length > s) {
- this.length -= s;
- for (i = 0; i < this.length; i++) {
- this.words[i] = this.words[i + s];
- }
- } else {
- this.words[0] = 0;
- this.length = 1;
- }
- var carry = 0;
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
- var word = this.words[i] | 0;
- this.words[i] = (carry << (26 - r)) | (word >>> r);
- carry = word & mask;
- }
- // Push carried bits as a mask
- if (maskedWords && carry !== 0) {
- maskedWords.words[maskedWords.length++] = carry;
- }
- if (this.length === 0) {
- this.words[0] = 0;
- this.length = 1;
- }
- return this._strip();
- };
- BN.prototype.ishrn = function ishrn (bits, hint, extended) {
- // TODO(indutny): implement me
- assert(this.negative === 0);
- return this.iushrn(bits, hint, extended);
- };
- // Shift-left
- BN.prototype.shln = function shln (bits) {
- return this.clone().ishln(bits);
- };
- BN.prototype.ushln = function ushln (bits) {
- return this.clone().iushln(bits);
- };
- // Shift-right
- BN.prototype.shrn = function shrn (bits) {
- return this.clone().ishrn(bits);
- };
- BN.prototype.ushrn = function ushrn (bits) {
- return this.clone().iushrn(bits);
- };
- // Test if n bit is set
- BN.prototype.testn = function testn (bit) {
- assert(typeof bit === 'number' && bit >= 0);
- var r = bit % 26;
- var s = (bit - r) / 26;
- var q = 1 << r;
- // Fast case: bit is much higher than all existing words
- if (this.length <= s) return false;
- // Check bit and return
- var w = this.words[s];
- return !!(w & q);
- };
- // Return only lowers bits of number (in-place)
- BN.prototype.imaskn = function imaskn (bits) {
- assert(typeof bits === 'number' && bits >= 0);
- var r = bits % 26;
- var s = (bits - r) / 26;
- assert(this.negative === 0, 'imaskn works only with positive numbers');
- if (this.length <= s) {
- return this;
- }
- if (r !== 0) {
- s++;
- }
- this.length = Math.min(s, this.length);
- if (r !== 0) {
- var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);
- this.words[this.length - 1] &= mask;
- }
- return this._strip();
- };
- // Return only lowers bits of number
- BN.prototype.maskn = function maskn (bits) {
- return this.clone().imaskn(bits);
- };
- // Add plain number `num` to `this`
- BN.prototype.iaddn = function iaddn (num) {
- assert(typeof num === 'number');
- assert(num < 0x4000000);
- if (num < 0) return this.isubn(-num);
- // Possible sign change
- if (this.negative !== 0) {
- if (this.length === 1 && (this.words[0] | 0) <= num) {
- this.words[0] = num - (this.words[0] | 0);
- this.negative = 0;
- return this;
- }
- this.negative = 0;
- this.isubn(num);
- this.negative = 1;
- return this;
- }
- // Add without checks
- return this._iaddn(num);
- };
- BN.prototype._iaddn = function _iaddn (num) {
- this.words[0] += num;
- // Carry
- for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {
- this.words[i] -= 0x4000000;
- if (i === this.length - 1) {
- this.words[i + 1] = 1;
- } else {
- this.words[i + 1]++;
- }
- }
- this.length = Math.max(this.length, i + 1);
- return this;
- };
- // Subtract plain number `num` from `this`
- BN.prototype.isubn = function isubn (num) {
- assert(typeof num === 'number');
- assert(num < 0x4000000);
- if (num < 0) return this.iaddn(-num);
- if (this.negative !== 0) {
- this.negative = 0;
- this.iaddn(num);
- this.negative = 1;
- return this;
- }
- this.words[0] -= num;
- if (this.length === 1 && this.words[0] < 0) {
- this.words[0] = -this.words[0];
- this.negative = 1;
- } else {
- // Carry
- for (var i = 0; i < this.length && this.words[i] < 0; i++) {
- this.words[i] += 0x4000000;
- this.words[i + 1] -= 1;
- }
- }
- return this._strip();
- };
- BN.prototype.addn = function addn (num) {
- return this.clone().iaddn(num);
- };
- BN.prototype.subn = function subn (num) {
- return this.clone().isubn(num);
- };
- BN.prototype.iabs = function iabs () {
- this.negative = 0;
- return this;
- };
- BN.prototype.abs = function abs () {
- return this.clone().iabs();
- };
- BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
- var len = num.length + shift;
- var i;
- this._expand(len);
- var w;
- var carry = 0;
- for (i = 0; i < num.length; i++) {
- w = (this.words[i + shift] | 0) + carry;
- var right = (num.words[i] | 0) * mul;
- w -= right & 0x3ffffff;
- carry = (w >> 26) - ((right / 0x4000000) | 0);
- this.words[i + shift] = w & 0x3ffffff;
- }
- for (; i < this.length - shift; i++) {
- w = (this.words[i + shift] | 0) + carry;
- carry = w >> 26;
- this.words[i + shift] = w & 0x3ffffff;
- }
- if (carry === 0) return this._strip();
- // Subtraction overflow
- assert(carry === -1);
- carry = 0;
- for (i = 0; i < this.length; i++) {
- w = -(this.words[i] | 0) + carry;
- carry = w >> 26;
- this.words[i] = w & 0x3ffffff;
- }
- this.negative = 1;
- return this._strip();
- };
- BN.prototype._wordDiv = function _wordDiv (num, mode) {
- var shift = this.length - num.length;
- var a = this.clone();
- var b = num;
- // Normalize
- var bhi = b.words[b.length - 1] | 0;
- var bhiBits = this._countBits(bhi);
- shift = 26 - bhiBits;
- if (shift !== 0) {
- b = b.ushln(shift);
- a.iushln(shift);
- bhi = b.words[b.length - 1] | 0;
- }
- // Initialize quotient
- var m = a.length - b.length;
- var q;
- if (mode !== 'mod') {
- q = new BN(null);
- q.length = m + 1;
- q.words = new Array(q.length);
- for (var i = 0; i < q.length; i++) {
- q.words[i] = 0;
- }
- }
- var diff = a.clone()._ishlnsubmul(b, 1, m);
- if (diff.negative === 0) {
- a = diff;
- if (q) {
- q.words[m] = 1;
- }
- }
- for (var j = m - 1; j >= 0; j--) {
- var qj = (a.words[b.length + j] | 0) * 0x4000000 +
- (a.words[b.length + j - 1] | 0);
- // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max
- // (0x7ffffff)
- qj = Math.min((qj / bhi) | 0, 0x3ffffff);
- a._ishlnsubmul(b, qj, j);
- while (a.negative !== 0) {
- qj--;
- a.negative = 0;
- a._ishlnsubmul(b, 1, j);
- if (!a.isZero()) {
- a.negative ^= 1;
- }
- }
- if (q) {
- q.words[j] = qj;
- }
- }
- if (q) {
- q._strip();
- }
- a._strip();
- // Denormalize
- if (mode !== 'div' && shift !== 0) {
- a.iushrn(shift);
- }
- return {
- div: q || null,
- mod: a
- };
- };
- // NOTE: 1) `mode` can be set to `mod` to request mod only,
- // to `div` to request div only, or be absent to
- // request both div & mod
- // 2) `positive` is true if unsigned mod is requested
- BN.prototype.divmod = function divmod (num, mode, positive) {
- assert(!num.isZero());
- if (this.isZero()) {
- return {
- div: new BN(0),
- mod: new BN(0)
- };
- }
- var div, mod, res;
- if (this.negative !== 0 && num.negative === 0) {
- res = this.neg().divmod(num, mode);
- if (mode !== 'mod') {
- div = res.div.neg();
- }
- if (mode !== 'div') {
- mod = res.mod.neg();
- if (positive && mod.negative !== 0) {
- mod.iadd(num);
- }
- }
- return {
- div: div,
- mod: mod
- };
- }
- if (this.negative === 0 && num.negative !== 0) {
- res = this.divmod(num.neg(), mode);
- if (mode !== 'mod') {
- div = res.div.neg();
- }
- return {
- div: div,
- mod: res.mod
- };
- }
- if ((this.negative & num.negative) !== 0) {
- res = this.neg().divmod(num.neg(), mode);
- if (mode !== 'div') {
- mod = res.mod.neg();
- if (positive && mod.negative !== 0) {
- mod.isub(num);
- }
- }
- return {
- div: res.div,
- mod: mod
- };
- }
- // Both numbers are positive at this point
- // Strip both numbers to approximate shift value
- if (num.length > this.length || this.cmp(num) < 0) {
- return {
- div: new BN(0),
- mod: this
- };
- }
- // Very short reduction
- if (num.length === 1) {
- if (mode === 'div') {
- return {
- div: this.divn(num.words[0]),
- mod: null
- };
- }
- if (mode === 'mod') {
- return {
- div: null,
- mod: new BN(this.modrn(num.words[0]))
- };
- }
- return {
- div: this.divn(num.words[0]),
- mod: new BN(this.modrn(num.words[0]))
- };
- }
- return this._wordDiv(num, mode);
- };
- // Find `this` / `num`
- BN.prototype.div = function div (num) {
- return this.divmod(num, 'div', false).div;
- };
- // Find `this` % `num`
- BN.prototype.mod = function mod (num) {
- return this.divmod(num, 'mod', false).mod;
- };
- BN.prototype.umod = function umod (num) {
- return this.divmod(num, 'mod', true).mod;
- };
- // Find Round(`this` / `num`)
- BN.prototype.divRound = function divRound (num) {
- var dm = this.divmod(num);
- // Fast case - exact division
- if (dm.mod.isZero()) return dm.div;
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
- var half = num.ushrn(1);
- var r2 = num.andln(1);
- var cmp = mod.cmp(half);
- // Round down
- if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;
- // Round up
- return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
- };
- BN.prototype.modrn = function modrn (num) {
- var isNegNum = num < 0;
- if (isNegNum) num = -num;
- assert(num <= 0x3ffffff);
- var p = (1 << 26) % num;
- var acc = 0;
- for (var i = this.length - 1; i >= 0; i--) {
- acc = (p * acc + (this.words[i] | 0)) % num;
- }
- return isNegNum ? -acc : acc;
- };
- // WARNING: DEPRECATED
- BN.prototype.modn = function modn (num) {
- return this.modrn(num);
- };
- // In-place division by number
- BN.prototype.idivn = function idivn (num) {
- var isNegNum = num < 0;
- if (isNegNum) num = -num;
- assert(num <= 0x3ffffff);
- var carry = 0;
- for (var i = this.length - 1; i >= 0; i--) {
- var w = (this.words[i] | 0) + carry * 0x4000000;
- this.words[i] = (w / num) | 0;
- carry = w % num;
- }
- this._strip();
- return isNegNum ? this.ineg() : this;
- };
- BN.prototype.divn = function divn (num) {
- return this.clone().idivn(num);
- };
- BN.prototype.egcd = function egcd (p) {
- assert(p.negative === 0);
- assert(!p.isZero());
- var x = this;
- var y = p.clone();
- if (x.negative !== 0) {
- x = x.umod(p);
- } else {
- x = x.clone();
- }
- // A * x + B * y = x
- var A = new BN(1);
- var B = new BN(0);
- // C * x + D * y = y
- var C = new BN(0);
- var D = new BN(1);
- var g = 0;
- while (x.isEven() && y.isEven()) {
- x.iushrn(1);
- y.iushrn(1);
- ++g;
- }
- var yp = y.clone();
- var xp = x.clone();
- while (!x.isZero()) {
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) {
- x.iushrn(i);
- while (i-- > 0) {
- if (A.isOdd() || B.isOdd()) {
- A.iadd(yp);
- B.isub(xp);
- }
- A.iushrn(1);
- B.iushrn(1);
- }
- }
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) {
- y.iushrn(j);
- while (j-- > 0) {
- if (C.isOdd() || D.isOdd()) {
- C.iadd(yp);
- D.isub(xp);
- }
- C.iushrn(1);
- D.iushrn(1);
- }
- }
- if (x.cmp(y) >= 0) {
- x.isub(y);
- A.isub(C);
- B.isub(D);
- } else {
- y.isub(x);
- C.isub(A);
- D.isub(B);
- }
- }
- return {
- a: C,
- b: D,
- gcd: y.iushln(g)
- };
- };
- // This is reduced incarnation of the binary EEA
- // above, designated to invert members of the
- // _prime_ fields F(p) at a maximal speed
- BN.prototype._invmp = function _invmp (p) {
- assert(p.negative === 0);
- assert(!p.isZero());
- var a = this;
- var b = p.clone();
- if (a.negative !== 0) {
- a = a.umod(p);
- } else {
- a = a.clone();
- }
- var x1 = new BN(1);
- var x2 = new BN(0);
- var delta = b.clone();
- while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) {
- a.iushrn(i);
- while (i-- > 0) {
- if (x1.isOdd()) {
- x1.iadd(delta);
- }
- x1.iushrn(1);
- }
- }
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) {
- b.iushrn(j);
- while (j-- > 0) {
- if (x2.isOdd()) {
- x2.iadd(delta);
- }
- x2.iushrn(1);
- }
- }
- if (a.cmp(b) >= 0) {
- a.isub(b);
- x1.isub(x2);
- } else {
- b.isub(a);
- x2.isub(x1);
- }
- }
- var res;
- if (a.cmpn(1) === 0) {
- res = x1;
- } else {
- res = x2;
- }
- if (res.cmpn(0) < 0) {
- res.iadd(p);
- }
- return res;
- };
- BN.prototype.gcd = function gcd (num) {
- if (this.isZero()) return num.abs();
- if (num.isZero()) return this.abs();
- var a = this.clone();
- var b = num.clone();
- a.negative = 0;
- b.negative = 0;
- // Remove common factor of two
- for (var shift = 0; a.isEven() && b.isEven(); shift++) {
- a.iushrn(1);
- b.iushrn(1);
- }
- do {
- while (a.isEven()) {
- a.iushrn(1);
- }
- while (b.isEven()) {
- b.iushrn(1);
- }
- var r = a.cmp(b);
- if (r < 0) {
- // Swap `a` and `b` to make `a` always bigger than `b`
- var t = a;
- a = b;
- b = t;
- } else if (r === 0 || b.cmpn(1) === 0) {
- break;
- }
- a.isub(b);
- } while (true);
- return b.iushln(shift);
- };
- // Invert number in the field F(num)
- BN.prototype.invm = function invm (num) {
- return this.egcd(num).a.umod(num);
- };
- BN.prototype.isEven = function isEven () {
- return (this.words[0] & 1) === 0;
- };
- BN.prototype.isOdd = function isOdd () {
- return (this.words[0] & 1) === 1;
- };
- // And first word and num
- BN.prototype.andln = function andln (num) {
- return this.words[0] & num;
- };
- // Increment at the bit position in-line
- BN.prototype.bincn = function bincn (bit) {
- assert(typeof bit === 'number');
- var r = bit % 26;
- var s = (bit - r) / 26;
- var q = 1 << r;
- // Fast case: bit is much higher than all existing words
- if (this.length <= s) {
- this._expand(s + 1);
- this.words[s] |= q;
- return this;
- }
- // Add bit and propagate, if needed
- var carry = q;
- for (var i = s; carry !== 0 && i < this.length; i++) {
- var w = this.words[i] | 0;
- w += carry;
- carry = w >>> 26;
- w &= 0x3ffffff;
- this.words[i] = w;
- }
- if (carry !== 0) {
- this.words[i] = carry;
- this.length++;
- }
- return this;
- };
- BN.prototype.isZero = function isZero () {
- return this.length === 1 && this.words[0] === 0;
- };
- BN.prototype.cmpn = function cmpn (num) {
- var negative = num < 0;
- if (this.negative !== 0 && !negative) return -1;
- if (this.negative === 0 && negative) return 1;
- this._strip();
- var res;
- if (this.length > 1) {
- res = 1;
- } else {
- if (negative) {
- num = -num;
- }
- assert(num <= 0x3ffffff, 'Number is too big');
- var w = this.words[0] | 0;
- res = w === num ? 0 : w < num ? -1 : 1;
- }
- if (this.negative !== 0) return -res | 0;
- return res;
- };
- // Compare two numbers and return:
- // 1 - if `this` > `num`
- // 0 - if `this` == `num`
- // -1 - if `this` < `num`
- BN.prototype.cmp = function cmp (num) {
- if (this.negative !== 0 && num.negative === 0) return -1;
- if (this.negative === 0 && num.negative !== 0) return 1;
- var res = this.ucmp(num);
- if (this.negative !== 0) return -res | 0;
- return res;
- };
- // Unsigned comparison
- BN.prototype.ucmp = function ucmp (num) {
- // At this point both numbers have the same sign
- if (this.length > num.length) return 1;
- if (this.length < num.length) return -1;
- var res = 0;
- for (var i = this.length - 1; i >= 0; i--) {
- var a = this.words[i] | 0;
- var b = num.words[i] | 0;
- if (a === b) continue;
- if (a < b) {
- res = -1;
- } else if (a > b) {
- res = 1;
- }
- break;
- }
- return res;
- };
- BN.prototype.gtn = function gtn (num) {
- return this.cmpn(num) === 1;
- };
- BN.prototype.gt = function gt (num) {
- return this.cmp(num) === 1;
- };
- BN.prototype.gten = function gten (num) {
- return this.cmpn(num) >= 0;
- };
- BN.prototype.gte = function gte (num) {
- return this.cmp(num) >= 0;
- };
- BN.prototype.ltn = function ltn (num) {
- return this.cmpn(num) === -1;
- };
- BN.prototype.lt = function lt (num) {
- return this.cmp(num) === -1;
- };
- BN.prototype.lten = function lten (num) {
- return this.cmpn(num) <= 0;
- };
- BN.prototype.lte = function lte (num) {
- return this.cmp(num) <= 0;
- };
- BN.prototype.eqn = function eqn (num) {
- return this.cmpn(num) === 0;
- };
- BN.prototype.eq = function eq (num) {
- return this.cmp(num) === 0;
- };
- //
- // A reduce context, could be using montgomery or something better, depending
- // on the `m` itself.
- //
- BN.red = function red (num) {
- return new Red(num);
- };
- BN.prototype.toRed = function toRed (ctx) {
- assert(!this.red, 'Already a number in reduction context');
- assert(this.negative === 0, 'red works only with positives');
- return ctx.convertTo(this)._forceRed(ctx);
- };
- BN.prototype.fromRed = function fromRed () {
- assert(this.red, 'fromRed works only with numbers in reduction context');
- return this.red.convertFrom(this);
- };
- BN.prototype._forceRed = function _forceRed (ctx) {
- this.red = ctx;
- return this;
- };
- BN.prototype.forceRed = function forceRed (ctx) {
- assert(!this.red, 'Already a number in reduction context');
- return this._forceRed(ctx);
- };
- BN.prototype.redAdd = function redAdd (num) {
- assert(this.red, 'redAdd works only with red numbers');
- return this.red.add(this, num);
- };
- BN.prototype.redIAdd = function redIAdd (num) {
- assert(this.red, 'redIAdd works only with red numbers');
- return this.red.iadd(this, num);
- };
- BN.prototype.redSub = function redSub (num) {
- assert(this.red, 'redSub works only with red numbers');
- return this.red.sub(this, num);
- };
- BN.prototype.redISub = function redISub (num) {
- assert(this.red, 'redISub works only with red numbers');
- return this.red.isub(this, num);
- };
- BN.prototype.redShl = function redShl (num) {
- assert(this.red, 'redShl works only with red numbers');
- return this.red.shl(this, num);
- };
- BN.prototype.redMul = function redMul (num) {
- assert(this.red, 'redMul works only with red numbers');
- this.red._verify2(this, num);
- return this.red.mul(this, num);
- };
- BN.prototype.redIMul = function redIMul (num) {
- assert(this.red, 'redMul works only with red numbers');
- this.red._verify2(this, num);
- return this.red.imul(this, num);
- };
- BN.prototype.redSqr = function redSqr () {
- assert(this.red, 'redSqr works only with red numbers');
- this.red._verify1(this);
- return this.red.sqr(this);
- };
- BN.prototype.redISqr = function redISqr () {
- assert(this.red, 'redISqr works only with red numbers');
- this.red._verify1(this);
- return this.red.isqr(this);
- };
- // Square root over p
- BN.prototype.redSqrt = function redSqrt () {
- assert(this.red, 'redSqrt works only with red numbers');
- this.red._verify1(this);
- return this.red.sqrt(this);
- };
- BN.prototype.redInvm = function redInvm () {
- assert(this.red, 'redInvm works only with red numbers');
- this.red._verify1(this);
- return this.red.invm(this);
- };
- // Return negative clone of `this` % `red modulo`
- BN.prototype.redNeg = function redNeg () {
- assert(this.red, 'redNeg works only with red numbers');
- this.red._verify1(this);
- return this.red.neg(this);
- };
- BN.prototype.redPow = function redPow (num) {
- assert(this.red && !num.red, 'redPow(normalNum)');
- this.red._verify1(this);
- return this.red.pow(this, num);
- };
- // Prime numbers with efficient reduction
- var primes = {
- k256: null,
- p224: null,
- p192: null,
- p25519: null
- };
- // Pseudo-Mersenne prime
- function MPrime (name, p) {
- // P = 2 ^ N - K
- this.name = name;
- this.p = new BN(p, 16);
- this.n = this.p.bitLength();
- this.k = new BN(1).iushln(this.n).isub(this.p);
- this.tmp = this._tmp();
- }
- MPrime.prototype._tmp = function _tmp () {
- var tmp = new BN(null);
- tmp.words = new Array(Math.ceil(this.n / 13));
- return tmp;
- };
- MPrime.prototype.ireduce = function ireduce (num) {
- // Assumes that `num` is less than `P^2`
- // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
- var r = num;
- var rlen;
- do {
- this.split(r, this.tmp);
- r = this.imulK(r);
- r = r.iadd(this.tmp);
- rlen = r.bitLength();
- } while (rlen > this.n);
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
- if (cmp === 0) {
- r.words[0] = 0;
- r.length = 1;
- } else if (cmp > 0) {
- r.isub(this.p);
- } else {
- if (r.strip !== undefined) {
- // r is a BN v4 instance
- r.strip();
- } else {
- // r is a BN v5 instance
- r._strip();
- }
- }
- return r;
- };
- MPrime.prototype.split = function split (input, out) {
- input.iushrn(this.n, 0, out);
- };
- MPrime.prototype.imulK = function imulK (num) {
- return num.imul(this.k);
- };
- function K256 () {
- MPrime.call(
- this,
- 'k256',
- 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
- }
- inherits(K256, MPrime);
- K256.prototype.split = function split (input, output) {
- // 256 = 9 * 26 + 22
- var mask = 0x3fffff;
- var outLen = Math.min(input.length, 9);
- for (var i = 0; i < outLen; i++) {
- output.words[i] = input.words[i];
- }
- output.length = outLen;
- if (input.length <= 9) {
- input.words[0] = 0;
- input.length = 1;
- return;
- }
- // Shift by 9 limbs
- var prev = input.words[9];
- output.words[output.length++] = prev & mask;
- for (i = 10; i < input.length; i++) {
- var next = input.words[i] | 0;
- input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);
- prev = next;
- }
- prev >>>= 22;
- input.words[i - 10] = prev;
- if (prev === 0 && input.length > 10) {
- input.length -= 10;
- } else {
- input.length -= 9;
- }
- };
- K256.prototype.imulK = function imulK (num) {
- // K = 0x1000003d1 = [ 0x40, 0x3d1 ]
- num.words[num.length] = 0;
- num.words[num.length + 1] = 0;
- num.length += 2;
- // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390
- var lo = 0;
- for (var i = 0; i < num.length; i++) {
- var w = num.words[i] | 0;
- lo += w * 0x3d1;
- num.words[i] = lo & 0x3ffffff;
- lo = w * 0x40 + ((lo / 0x4000000) | 0);
- }
- // Fast length reduction
- if (num.words[num.length - 1] === 0) {
- num.length--;
- if (num.words[num.length - 1] === 0) {
- num.length--;
- }
- }
- return num;
- };
- function P224 () {
- MPrime.call(
- this,
- 'p224',
- 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');
- }
- inherits(P224, MPrime);
- function P192 () {
- MPrime.call(
- this,
- 'p192',
- 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
- }
- inherits(P192, MPrime);
- function P25519 () {
- // 2 ^ 255 - 19
- MPrime.call(
- this,
- '25519',
- '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
- }
- inherits(P25519, MPrime);
- P25519.prototype.imulK = function imulK (num) {
- // K = 0x13
- var carry = 0;
- for (var i = 0; i < num.length; i++) {
- var hi = (num.words[i] | 0) * 0x13 + carry;
- var lo = hi & 0x3ffffff;
- hi >>>= 26;
- num.words[i] = lo;
- carry = hi;
- }
- if (carry !== 0) {
- num.words[num.length++] = carry;
- }
- return num;
- };
- // Exported mostly for testing purposes, use plain name instead
- BN._prime = function prime (name) {
- // Cached version of prime
- if (primes[name]) return primes[name];
- var prime;
- if (name === 'k256') {
- prime = new K256();
- } else if (name === 'p224') {
- prime = new P224();
- } else if (name === 'p192') {
- prime = new P192();
- } else if (name === 'p25519') {
- prime = new P25519();
- } else {
- throw new Error('Unknown prime ' + name);
- }
- primes[name] = prime;
- return prime;
- };
- //
- // Base reduction engine
- //
- function Red (m) {
- if (typeof m === 'string') {
- var prime = BN._prime(m);
- this.m = prime.p;
- this.prime = prime;
- } else {
- assert(m.gtn(1), 'modulus must be greater than 1');
- this.m = m;
- this.prime = null;
- }
- }
- Red.prototype._verify1 = function _verify1 (a) {
- assert(a.negative === 0, 'red works only with positives');
- assert(a.red, 'red works only with red numbers');
- };
- Red.prototype._verify2 = function _verify2 (a, b) {
- assert((a.negative | b.negative) === 0, 'red works only with positives');
- assert(a.red && a.red === b.red,
- 'red works only with red numbers');
- };
- Red.prototype.imod = function imod (a) {
- if (this.prime) return this.prime.ireduce(a)._forceRed(this);
- move(a, a.umod(this.m)._forceRed(this));
- return a;
- };
- Red.prototype.neg = function neg (a) {
- if (a.isZero()) {
- return a.clone();
- }
- return this.m.sub(a)._forceRed(this);
- };
- Red.prototype.add = function add (a, b) {
- this._verify2(a, b);
- var res = a.add(b);
- if (res.cmp(this.m) >= 0) {
- res.isub(this.m);
- }
- return res._forceRed(this);
- };
- Red.prototype.iadd = function iadd (a, b) {
- this._verify2(a, b);
- var res = a.iadd(b);
- if (res.cmp(this.m) >= 0) {
- res.isub(this.m);
- }
- return res;
- };
- Red.prototype.sub = function sub (a, b) {
- this._verify2(a, b);
- var res = a.sub(b);
- if (res.cmpn(0) < 0) {
- res.iadd(this.m);
- }
- return res._forceRed(this);
- };
- Red.prototype.isub = function isub (a, b) {
- this._verify2(a, b);
- var res = a.isub(b);
- if (res.cmpn(0) < 0) {
- res.iadd(this.m);
- }
- return res;
- };
- Red.prototype.shl = function shl (a, num) {
- this._verify1(a);
- return this.imod(a.ushln(num));
- };
- Red.prototype.imul = function imul (a, b) {
- this._verify2(a, b);
- return this.imod(a.imul(b));
- };
- Red.prototype.mul = function mul (a, b) {
- this._verify2(a, b);
- return this.imod(a.mul(b));
- };
- Red.prototype.isqr = function isqr (a) {
- return this.imul(a, a.clone());
- };
- Red.prototype.sqr = function sqr (a) {
- return this.mul(a, a);
- };
- Red.prototype.sqrt = function sqrt (a) {
- if (a.isZero()) return a.clone();
- var mod3 = this.m.andln(3);
- assert(mod3 % 2 === 1);
- // Fast case
- if (mod3 === 3) {
- var pow = this.m.add(new BN(1)).iushrn(2);
- return this.pow(a, pow);
- }
- // Tonelli-Shanks algorithm (Totally unoptimized and slow)
- //
- // Find Q and S, that Q * 2 ^ S = (P - 1)
- var q = this.m.subn(1);
- var s = 0;
- while (!q.isZero() && q.andln(1) === 0) {
- s++;
- q.iushrn(1);
- }
- assert(!q.isZero());
- var one = new BN(1).toRed(this);
- var nOne = one.redNeg();
- // Find quadratic non-residue
- // NOTE: Max is such because of generalized Riemann hypothesis.
- var lpow = this.m.subn(1).iushrn(1);
- var z = this.m.bitLength();
- z = new BN(2 * z * z).toRed(this);
- while (this.pow(z, lpow).cmp(nOne) !== 0) {
- z.redIAdd(nOne);
- }
- var c = this.pow(z, q);
- var r = this.pow(a, q.addn(1).iushrn(1));
- var t = this.pow(a, q);
- var m = s;
- while (t.cmp(one) !== 0) {
- var tmp = t;
- for (var i = 0; tmp.cmp(one) !== 0; i++) {
- tmp = tmp.redSqr();
- }
- assert(i < m);
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
- r = r.redMul(b);
- c = b.redSqr();
- t = t.redMul(c);
- m = i;
- }
- return r;
- };
- Red.prototype.invm = function invm (a) {
- var inv = a._invmp(this.m);
- if (inv.negative !== 0) {
- inv.negative = 0;
- return this.imod(inv).redNeg();
- } else {
- return this.imod(inv);
- }
- };
- Red.prototype.pow = function pow (a, num) {
- if (num.isZero()) return new BN(1).toRed(this);
- if (num.cmpn(1) === 0) return a.clone();
- var windowSize = 4;
- var wnd = new Array(1 << windowSize);
- wnd[0] = new BN(1).toRed(this);
- wnd[1] = a;
- for (var i = 2; i < wnd.length; i++) {
- wnd[i] = this.mul(wnd[i - 1], a);
- }
- var res = wnd[0];
- var current = 0;
- var currentLen = 0;
- var start = num.bitLength() % 26;
- if (start === 0) {
- start = 26;
- }
- for (i = num.length - 1; i >= 0; i--) {
- var word = num.words[i];
- for (var j = start - 1; j >= 0; j--) {
- var bit = (word >> j) & 1;
- if (res !== wnd[0]) {
- res = this.sqr(res);
- }
- if (bit === 0 && current === 0) {
- currentLen = 0;
- continue;
- }
- current <<= 1;
- current |= bit;
- currentLen++;
- if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
- res = this.mul(res, wnd[current]);
- currentLen = 0;
- current = 0;
- }
- start = 26;
- }
- return res;
- };
- Red.prototype.convertTo = function convertTo (num) {
- var r = num.umod(this.m);
- return r === num ? r.clone() : r;
- };
- Red.prototype.convertFrom = function convertFrom (num) {
- var res = num.clone();
- res.red = null;
- return res;
- };
- //
- // Montgomery method engine
- //
- BN.mont = function mont (num) {
- return new Mont(num);
- };
- function Mont (m) {
- Red.call(this, m);
- this.shift = this.m.bitLength();
- if (this.shift % 26 !== 0) {
- this.shift += 26 - (this.shift % 26);
- }
- this.r = new BN(1).iushln(this.shift);
- this.r2 = this.imod(this.r.sqr());
- this.rinv = this.r._invmp(this.m);
- this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
- this.minv = this.minv.umod(this.r);
- this.minv = this.r.sub(this.minv);
- }
- inherits(Mont, Red);
- Mont.prototype.convertTo = function convertTo (num) {
- return this.imod(num.ushln(this.shift));
- };
- Mont.prototype.convertFrom = function convertFrom (num) {
- var r = this.imod(num.mul(this.rinv));
- r.red = null;
- return r;
- };
- Mont.prototype.imul = function imul (a, b) {
- if (a.isZero() || b.isZero()) {
- a.words[0] = 0;
- a.length = 1;
- return a;
- }
- var t = a.imul(b);
- var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
- var u = t.isub(c).iushrn(this.shift);
- var res = u;
- if (u.cmp(this.m) >= 0) {
- res = u.isub(this.m);
- } else if (u.cmpn(0) < 0) {
- res = u.iadd(this.m);
- }
- return res._forceRed(this);
- };
- Mont.prototype.mul = function mul (a, b) {
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
- var t = a.mul(b);
- var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
- var u = t.isub(c).iushrn(this.shift);
- var res = u;
- if (u.cmp(this.m) >= 0) {
- res = u.isub(this.m);
- } else if (u.cmpn(0) < 0) {
- res = u.iadd(this.m);
- }
- return res._forceRed(this);
- };
- Mont.prototype.invm = function invm (a) {
- // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R
- var res = this.imod(a._invmp(this.m).mul(this.r2));
- return res._forceRed(this);
- };
- })(typeof module === 'undefined' || module, this);
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("3IRH")(module)))
- /***/ }),
- /***/ "7P+W":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_events__ = __webpack_require__("vzCy");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_events___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_events__);
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var WebRtcPlayer = function () {
- function WebRtcPlayer() {
- var videoSrc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
- var videoParentEle = arguments[1];
- var autoplay = arguments[2];
- var loadingEle = arguments[3];
- var _videoId = arguments[4];
- var iceServers = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];
- var _this = this;
- var playerMuted = arguments[6];
- var recordFileName = arguments[7];
- _classCallCheck(this, WebRtcPlayer);
- this.TAG = "WebRtcPlayer";
- this._emitter = new __WEBPACK_IMPORTED_MODULE_0_events___default.a();
- if (videoSrc.includes("webrtcs://")) this._videoSrc = videoSrc.replace("webrtcs:", "https:");else if (videoSrc.includes("webrtc://")) this._videoSrc = videoSrc.replace("webrtc://", "http://");else this._videoSrc = videoSrc;
- this._videoEle = null;
- this._videoId = _videoId;
- this._videoJsPlayer = null;
- this._isFristPlaying = true;
- this._localSessionDesc = '';
- this._videoParentEle = videoParentEle;
- this._luXiangEle = null;
- this._rtcPC = new RTCPeerConnection({ iceServers: iceServers });
- this._playing = true;
- this._autoplay = autoplay;
- this._loadingEle = loadingEle;
- this._fullScreenBtnEle = null;
- this._playBtnEle = null;
- this._mute = playerMuted;
- this._isFullScreen = false;
- this._videoTools = null;
- this._mobile = this._isMobile();
- this._webrtcRecordedBlobs = [];
- this._webrtcMediaRecorder = null;
- this._webrtcMimeType = { mimeType: 'video/webm;codecs=vp9,opus' };
- this._webrtcRecording = false;
- this._isAndroid = navigator.userAgent.toLocaleLowerCase().includes("android"); // 是否android
- this._setOntrack();
- this.initRTC();
- this._loadingEle.style.opacity = this._autoplay ? 1 : 0;
- setTimeout(function () {
- return _this._videoParentEle.appendChild(_this._loadingEle);
- }, 200);
- this._recordFileName = recordFileName;
- }
- _createClass(WebRtcPlayer, [{
- key: '_setOntrack',
- value: function _setOntrack() {
- var _this2 = this;
- this._rtcPC.ontrack = function (event) {
- if (_this2._autoplay) _this2._playing = true;else _this2._playing = false;
- _this2._loadingEle.style.opacity = _this2._playing ? 1 : 0;
- // TODO 创建标签
- _this2._videoEle = document.createElement(event.track.kind);
- _this2._videoEle.srcObject = event.streams[0];
- var aspect = 'aspect-ratio:' + _this2._videoParentEle.offsetWidth + '/' + _this2._videoParentEle.offsetHeight;
- _this2._videoEle.style = 'width:100%;height: 100%;object-fit: fill;' + aspect + ';';
- _this2._videoEle.setAttribute('id', _this2._videoId);
- _this2._videoEle.setAttribute('loop', true);
- _this2._videoEle.setAttribute('preload', true);
- _this2._videoEle.setAttribute('controls', false);
- _this2._videoEle.setAttribute('webkit-playsinline', true);
- _this2._videoEle.setAttribute('playsinline', 'playsinline'); //阻止弹出层
- _this2._videoEle.setAttribute('x5-playsinline', 'x5-playsinline');
- _this2._videoEle.setAttribute('x-webkit-airplay', 'allow');
- _this2._videoEle.setAttribute('x5-video-player-type', 'h5');
- _this2._videoEle.setAttribute('x5-video-player-fullscreen', 'true');
- _this2._videoEle.setAttribute('x5-video-orientation', 'portrait');
- _this2._videoEle.setAttribute('x5-video-ignore-metadata', true);
- _this2._videoEle.setAttribute('x5-video-orientation', 'landscape');
- _this2._videoEle.setAttribute('crossOrigin', 'Anonymous');
- _this2._videoEle.muted = true;
- _this2._videoEle.controls = false;
- _this2._videoEle.autoplay = _this2._autoplay;
- _this2._renderVideoTools();
- _this2._videoParentEle.appendChild(_this2._videoEle);
- _this2._setVideoEleEventListener();
- if (_this2._autoplay) _this2._videoEle.play();
- window.stream = event.streams[0];
- };
- }
- }, {
- key: 'initRTC',
- value: function initRTC() {
- var _this3 = this;
- this._rtcPC.oniceconnectionstatechange = function (event) {
- return _this3._emitter.emit("oniceconnectionstatechange", event);
- };
- this._rtcPC.onicecandidate = function (event) {
- if (event.candidate === null) {
- _this3._localSessionDesc = btoa(_this3._rtcPC.localDescription.sdp);
- setTimeout(function () {
- return _this3.play();
- }, 200);
- }
- };
- this._rtcPC.addTransceiver('video', { 'direction': 'sendrecv' });
- this._rtcPC.createOffer().then(function (d) {
- return _this3._rtcPC.setLocalDescription(d);
- }).catch(function (e) {
- return console.log(e);
- });
- }
- }, {
- key: '_setVideoEleEventListener',
- value: function _setVideoEleEventListener() {
- var _this4 = this;
- this._videoEle.addEventListener('waiting', function (e) {
- _this4._loadingEle.style.opacity = 1;
- _this4._emitter.emit("waiting", e);
- });
- this._videoEle.addEventListener('playing', function (e) {
- _this4._emitter.emit("playing", e);
- _this4._playing = true;
- _this4._loadingEle.style.opacity = 0;
- });
- this._videoEle.addEventListener('canplay', function (e) {
- if (_this4._autoplay) _this4._videoEle.play();
- });
- this._videoEle.addEventListener('dblclick', function (e) {
- _this4._onTouchFullScreen();
- });
- this._videoEle.addEventListener('click', function (e) {
- _this4._emitter.emit("click", e);
- if (!_this4._mobile) return e.preventDefault();
- if (_this4._videoEle) _this4._videoEle.play();
- });
- this._videoEle.addEventListener("webkitendfullscreen", function () {
- _this4._isFullScreen = false;
- _this4._fullScreenBtnEle.classList = 'iconfont ' + (_this4._isFullScreen ? 'icon-xiaoping' : 'icon-quanping1');
- });
- if (this._isMobile()) {
- //TODO 移动事件监听 去除移动端长按显示的 菜单
- this._videoParentEle.addEventListener('touchstart', function (e) {
- _this4._emitter.emit("touchstart", e);
- });
- }
- }
- }, {
- key: '_renderVideoTools',
- value: function _renderVideoTools() {
- var _this5 = this;
- var videoTools = document.createElement("span");
- videoTools.style = "width:100%;height:30px;position:absolute;bottom:0;left:0;background-color:rgba(43, 51, 63, 0.7);;z-index: 10;opacity:1;display: flex;flex-direction: row;justify-content: space-between;";
- videoTools.classList = "video-tools";
- var leftTools = document.createElement("div");
- leftTools.style = 'display: flex;flex-direction: row;';
- this._playBtnEle = document.createElement("span");
- this._playBtnEle.style = "font-size:14px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center";
- this._playBtnEle.classList = 'iconfont ' + (this._playing ? 'icon-zanting' : 'icon-bofang');
- var audioBtnEle = document.createElement("span");
- audioBtnEle.style = "font-size:14px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center";
- audioBtnEle.classList = 'iconfont ' + (this._mute ? 'icon-jingyin' : 'icon-shengyin1');
- this._playBtnEle.onclick = function () {
- _this5._playing = !_this5._playing;
- if (_this5._playing) _this5._videoEle.play();else _this5._videoEle.pause();
- _this5._playBtnEle.title = _this5._playing ? "暂停" : "播放";
- _this5._playBtnEle.classList = 'iconfont ' + (_this5._playing ? 'icon-zanting' : 'icon-bofang');
- };
- audioBtnEle.onclick = function () {
- _this5._mute = !_this5._mute;
- audioBtnEle.title = _this5._mute ? "取消静音" : "静音";
- audioBtnEle.classList = 'iconfont ' + (_this5._mute ? 'icon-jingyin' : 'icon-shengyin1');
- _this5._videoEle.muted = _this5._mute;
- };
- //TODO 右侧工具类
- var rightTools = document.createElement("div");
- rightTools.style = 'display: flex;flex-direction: row;';
- //码率显示
- this.kbpsEle = document.createElement("div");
- this.kbpsEle.style = "font-size:12px;min-width:60px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center;padding-right: 10px;";
- //TODO 快照
- var snapshotEle = document.createElement("span");
- snapshotEle.title = "快照";
- snapshotEle.style = "font-size:16px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center;";
- snapshotEle.classList = 'iconfont icon-xiangji';
- snapshotEle.onclick = function () {
- return _this5._saveLocalSnapshot();
- };
- //TODO 录像
- this._luXiangEle = document.createElement("span");
- this._luXiangEle.title = "录像";
- this._luXiangEle.style = "font-size:16px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center;";
- this._luXiangEle.classList = 'iconfont icon-luxiang2';
- this._luXiangEle.onclick = function () {
- _this5._webrtcRecording = !_this5._webrtcRecording;
- _this5._luXiangEle.style.color = _this5._webrtcRecording ? 'red' : '#FFF';
- _this5._luXiangEle.title = _this5._webrtcRecording ? "停止录像" : '录像';
- if (_this5._webrtcRecording) _this5.startRecording();else _this5.stopRecording();
- };
- this._fullScreenBtnEle = document.createElement("span");
- this._fullScreenBtnEle.title = "全屏";
- this._fullScreenBtnEle.style = "font-size:14px;width:40px;height: 30px;color:#FFF;text-align:center;display:flex;flex-direction: row;justify-content: center;align-items: center";
- this._fullScreenBtnEle.classList = 'iconfont ' + (this._isFullScreen ? 'icon-xiaoping' : 'icon-quanping1');
- if (this._mobile) this._fullScreenBtnEle.addEventListener('touchstart', function () {
- return _this5._onTouchFullScreen();
- });else this._fullScreenBtnEle.onclick = function () {
- return _this5._onTouchFullScreen();
- };
- this._videoParentEle.onmousemove = function () {
- _this5.videoToolsTimer && clearTimeout(_this5.videoToolsTimer);
- _this5._videoTools.style.opacity = '1';
- _this5.videoToolsTimer = setTimeout(function () {
- _this5._videoTools.style.opacity = '0';
- }, 10 * 1000);
- };
- this._videoParentEle.onmouseout = function () {
- _this5._videoTools.style.opacity = '0';
- _this5.videoToolsTimer && clearTimeout(_this5.videoToolsTimer);
- _this5.videoToolsTimer = null;
- };
- leftTools.appendChild(this._playBtnEle);
- leftTools.appendChild(audioBtnEle);
- rightTools.appendChild(this.kbpsEle);
- rightTools.appendChild(this._luXiangEle);
- rightTools.appendChild(snapshotEle);
- rightTools.appendChild(this._fullScreenBtnEle);
- videoTools.appendChild(leftTools);
- videoTools.appendChild(rightTools);
- this._creatBigPlayBtn();
- this._videoTools = videoTools;
- this._videoParentEle.appendChild(videoTools);
- window.onresize = function () {
- if (!document.fullscreenElement && _this5._isFullScreen) {
- _this5._isFullScreen = false;
- _this5._fullScreenBtnEle.classList = 'iconfont ' + (_this5._isFullScreen ? 'icon-xiaoping' : 'icon-quanping1');
- }
- };
- }
- }, {
- key: '_onTouchFullScreen',
- value: function _onTouchFullScreen() {
- this._isFullScreen = !this._isFullScreen;
- this._fullScreenBtnEle.title = this._isFullScreen ? "退出全屏" : "全屏";
- this._fullScreenBtnEle.classList = 'iconfont ' + (this._isFullScreen ? 'icon-xiaoping' : 'icon-quanping1');
- if (this._isFullScreen) {
- if (this._videoParentEle.requestFullScreen) {
- this._videoParentEle.requestFullScreen();
- } else if (this._videoEle.webkitEnterFullScreen) {
- if (this._mobile) {
- if (this._isAndroid) {
- if (this._videoParentEle.webkitRequestFullScreen) this._videoParentEle.webkitRequestFullScreen();
- } else {
- if (this._videoEle.webkitEnterFullScreen) this._videoEle.webkitEnterFullScreen();
- }
- } else {
- if (this._videoParentEle.webkitRequestFullScreen) this._videoParentEle.webkitRequestFullScreen();
- }
- } else if (this._videoParentEle.webkitRequestFullScreen) {
- this._videoParentEle.webkitRequestFullScreen();
- } else if (this._videoParentEle.mozRequestFullScreen) {
- this._videoParentEle.mozRequestFullScreen();
- } else if (this._videoParentEle.msRequestFullscreen) {
- this._videoParentEle.msRequestFullscreen();
- }
- } else {
- if (document.exitFullscreen) {
- document.exitFullscreen();
- } else if (document.mozCancelFullScreen) {
- document.mozCancelFullScreen();
- } else if (document.webkitExitFullscreen) {
- document.webkitExitFullscreen();
- } else if (document.msExitFullscreen) {
- document.msExitFullscreen();
- }
- }
- }
- }, {
- key: '_creatBigPlayBtn',
- value: function _creatBigPlayBtn() {
- var _this6 = this;
- if (this._autoplay) return;
- var playerBtn = document.createElement("div");
- var spanEle = document.createElement("span");
- playerBtn.style = "color:#FFF;font-size: 2em;text-align: center;line-height: 1.5em;height: 1.5em;width: 3em;" + "display: block;position: absolute;top:50%;left: 50%;padding: 0;cursor: pointer;opacity: 1;" + "border: 0.06666em solid #fff;background-color: #2B333F;background-color: rgba(43, 51, 63, 0.7);" + "border-radius: 0.3em;transition: all 0.4s;display:flex;flex-direction: row;justify-content:centet;" + "align-items: center;z-index:50;justify-content:center;margin-left: -1.5em;margin-top: -1em;";
- spanEle.classList = 'iconfont icon-bofang easy-play-btn-bofang';
- playerBtn.appendChild(spanEle);
- this._videoParentEle.appendChild(playerBtn);
- if (this._mobile) {
- playerBtn.addEventListener('touchstart', function () {
- return _this6._onTouchBigPlayerBtn(playerBtn);
- });
- } else {
- playerBtn.onclick = function () {
- return _this6._onTouchBigPlayerBtn(playerBtn);
- };
- }
- }
- }, {
- key: '_onTouchBigPlayerBtn',
- value: function _onTouchBigPlayerBtn(playerBtn) {
- this._playing = true;
- this._videoEle.play();
- this._loadingEle.style.opacity = this._playing ? 1 : 0;
- this._playBtnEle.classList = 'iconfont ' + (this._playing ? 'icon-zanting' : 'icon-bofang');
- this._videoParentEle.removeChild(playerBtn);
- }
- }, {
- key: '_isMobile',
- value: function _isMobile() {
- try {
- document.createEvent("TouchEvent");
- return true;
- } catch (e) {
- return false;
- }
- }
- }, {
- key: 'play',
- value: function play() {
- var _this7 = this;
- if (this._videoSrc === '') return console.error("播放地址不能为空");
- if (this._localSessionDesc === '') {
- if (!this._isFristPlaying) return;
- if (this._isFristPlaying) this._isFristPlaying = false;
- return setTimeout(function () {
- return _this7.play();
- }, 200);
- }
- var xhr = new XMLHttpRequest();
- xhr.open("POST", this._videoSrc, true);
- xhr.setRequestHeader("Content-type", "text/plain; charset=utf-8");
- xhr.onload = function () {
- var remoteSessionDescription = atob(xhr.response);
- try {
- _this7._rtcPC.setRemoteDescription(new RTCSessionDescription({
- sdp: remoteSessionDescription,
- type: "answer"
- }));
- } catch (error) {
- _this7._emitter.emit("error", error);
- }
- };
- xhr.send(this._localSessionDesc);
- }
- }, {
- key: 'startRecording',
- value: function startRecording() {
- var _this8 = this;
- try {
- this._webrtcMediaRecorder = new MediaRecorder(window.stream, this._webrtcMimeType);
- this._webrtcMediaRecorder.ondataavailable = function (event) {
- if (event.data && event.data.size > 0) {
- _this8._webrtcRecordedBlobs.push(event.data);
- _this8.downRecording(); //TODO 自动下载视频
- }
- };
- this._webrtcMediaRecorder.start();
- } catch (e) {
- console.error('Exception while creating MediaRecorder:', e);
- }
- }
- }, {
- key: 'downRecording',
- value: function downRecording() {
- var _this9 = this;
- var blob = new Blob(this._webrtcRecordedBlobs, { type: 'video/mp4' });
- var url = window.URL.createObjectURL(blob);
- var a = document.createElement('a');
- a.style.display = 'none';
- a.href = url;
- a.download = this._recordFileName ? this._recordFileName + '-' + this.dateFormat(new Date(), "YYYYMMDDhhmmss") + '.mp4' : this.dateFormat(new Date(), "YYYYMMDDhhmmss") + '.mp4';
- document.body.appendChild(a);
- a.click();
- setTimeout(function () {
- document.body.removeChild(a);
- window.URL.revokeObjectURL(url);
- _this9._webrtcRecordedBlobs = [];
- }, 100);
- }
- }, {
- key: 'dateFormat',
- value: function dateFormat(date, fmt) {
- var ret = void 0;
- var opt = {
- 'Y+': date.getFullYear().toString(), // 年
- 'M+': (date.getMonth() + 1).toString(), // 月
- 'D+': date.getDate().toString(), // 日
- 'h+': date.getHours().toString(), // 时
- 'm+': date.getMinutes().toString(), // 分
- 's+': date.getSeconds().toString() // 秒
- // 有其他格式化字符需求可以继续添加,必须转化成字符串
- };
- for (var k in opt) {
- ret = new RegExp('(' + k + ')').exec(fmt);
- if (ret) {
- fmt = fmt.replace(ret[1], ret[1].length === 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));
- }
- }
- return fmt;
- }
- }, {
- key: 'stopRecording',
- value: function stopRecording() {
- this._webrtcMediaRecorder.stop();
- }
- //TODO 保存快照
- }, {
- key: '_saveLocalSnapshot',
- value: function _saveLocalSnapshot() {
- var strDataURL = this.getImageDataURL();
- var arr = strDataURL.split(","),
- mime = arr[0].match(/:(.*?);/)[1],
- bstr = atob(arr[1]),
- n = bstr.length,
- u8arr = new Uint8Array(n);
- while (n--) {
- u8arr[n] = bstr.charCodeAt(n);
- }
- var blob = new Blob([u8arr], {
- type: mime
- });
- var url = window.URL.createObjectURL(blob);
- var a = document.createElement("a");
- a.style.display = "none";
- a.href = url;
- a.download = fileName;
- a.click();
- document.body.appendChild(a);
- setTimeout(function () {
- document.body.removeChild(a);
- window.URL.revokeObjectURL(url);
- }, 1000);
- }
- }, {
- key: 'getImageDataURL',
- value: function getImageDataURL() {
- var fileName = this._recordFileName ? this._recordFileName + '-' + this.dateFormat(new Date(), "YYYYMMDDhhmmss") + '.png' : this.dateFormat(new Date(), "YYYYMMDDhhmmss") + '.png';
- var strDataURL = void 0,
- canvas = void 0;
- if (!!this._videoEle && this._videoEle.tagName.toUpperCase() === "object".toUpperCase()) {
- // 如果是播放rtmp流时,截图调用这个
- strDataURL = this._videoEle.vjs_snap();
- } else {
- canvas = window.canvas = document.createElement("canvas");
- canvas.width = this._videoEle.videoWidth;
- canvas.height = this._videoEle.videoHeight;
- canvas.getContext("2d").drawImage(this._videoEle, 0, 0, canvas.width, canvas.height); // 图片大小和视频分辨率一致
- strDataURL = canvas.toDataURL("image/png"); // canvas中video中取一帧图片并转成dataURL
- }
- return strDataURL;
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- if (this._videoEle && this._videoEle.srcObject) {
- //遍历关闭所有track
- this._videoEle.srcObject.getTracks().forEach(function (track) {
- return track.stop();
- });
- this._videoEle.srcObject = null;
- //完成流与视频元素的分离
- this._videoEle.removeAttribute("src");
- this._videoEle.removeAttribute("srcObject");
- this._videoEle.removeAttribute("autoplay");
- if (this._videoParentEle) this._videoParentEle.removeChild(this._videoEle);
- if (this._videoParentEle) this._videoParentEle.removeChild(this._videoTools);
- if (this._videoEle) this._videoEle = null;
- if (this._videoTools) this._videoTools = null;
- this._videoParentEle.onmouseout = null;
- this._videoParentEle.onmousemove = null;
- }
- if (this._rtcPC) {
- this._rtcPC.close();
- this._rtcPC = null;
- }
- if (this._videoJsPlayer) this._videoJsPlayer.dispose();
- }
- }]);
- return WebRtcPlayer;
- }();
- /* harmony default export */ __webpack_exports__["a"] = (WebRtcPlayer);
- /***/ }),
- /***/ "7VT+":
- /***/ (function(module, exports, __webpack_require__) {
- // adapted from https://github.com/apatil/pemstrip
- var findProc = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m
- var startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m
- var fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m
- var evp = __webpack_require__("Cgw8")
- var ciphers = __webpack_require__("tXf9")
- var Buffer = __webpack_require__("X3l8").Buffer
- module.exports = function (okey, password) {
- var key = okey.toString()
- var match = key.match(findProc)
- var decrypted
- if (!match) {
- var match2 = key.match(fullRegex)
- decrypted = Buffer.from(match2[2].replace(/[\r\n]/g, ''), 'base64')
- } else {
- var suite = 'aes' + match[1]
- var iv = Buffer.from(match[2], 'hex')
- var cipherText = Buffer.from(match[3].replace(/[\r\n]/g, ''), 'base64')
- var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key
- var out = []
- var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)
- out.push(cipher.update(cipherText))
- out.push(cipher.final())
- decrypted = Buffer.concat(out)
- }
- var tag = key.match(startRegex)[1]
- return {
- tag: tag,
- data: decrypted
- }
- }
- /***/ }),
- /***/ "7YgM":
- /***/ (function(module, exports) {
- module.exports = {"name":"@easydarwin/easyplayer","description":"hls, flv and websocket player h265","version":"5.1.1","author":"easydarwin","license":"MIT","private":false,"scripts":{"start":"cross-env NODE_ENV=development webpack-dev-server --host 0.0.0.0 --useLocalIp --open --open-page element/index.html","server":"cross-env NODE_ENV=development webpack-dev-server --host 0.0.0.0 --useLocalIp --open --open-page element/index.html","build":"cross-env NODE_ENV=production webpack --progress --hide-modules","publish":"npm publish --access=public"},"files":["dist/","README.md"],"main":"dist/component/EasyPlayer-component.min.js","devDependencies":{"@videojs/generator-helpers":"~1.2.0","@videojs/vhs-utils":"^1.1.0","axios":"0.17.1","babel-core":"6.26.0","babel-loader":"^7.1.5","babel-plugin-component":"1.0.0","babel-polyfill":"6.26.0","babel-preset-env":"1.6.0","babel-preset-stage-3":"6.24.1","clean-webpack-plugin":"0.1.17","copy-webpack-plugin":"4.1.1","cross-env":"5.0.5","css-loader":"0.28.7","document-register-element":"1.7.0","element-resize-detector":"^1.2.3","es6-promise":"^4.2.8","exports-loader":"0.6.4","expose-loader":"0.7.4","extract-text-webpack-plugin":"3.0.1","file-loader":"1.1.5","file-saver":"2.0.0","font-awesome":"4.7.0","html-webpack-plugin":"2.30.1","less":"3.0.0-alpha.3","less-loader":"4.0.5","moment":"2.18.1","optimize-css-assets-webpack-plugin":"3.2.0","style-loader":"0.19.0","uglify-js":"2.8.29","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"0.6.2","vue":"2.5.13","vue-fullscreen":"^2.1.6","vue-custom-element":"^3.2.6","vue-loader":"13.3.0","vue-router":"3.0.1","vue-template-compiler":"2.5.13","vuex":"2.4.1","wasm-loader":"^1.3.0","webpack":"3.6.0","webpack-concat-plugin":"2.4.2","webpack-dev-server":"2.7.1","webworkify-webpack":"^2.1.5","wrapper-webpack-plugin":"1.0.0"},"keywords":["easy-player","hls","rtmp","flv"],"pack":[{"name":"EasyPlayer.js","format":"zip","pattern":"{dist/element/**,dist/component/**,README.pdf}","options":{"dot":true,"ignore":[]}}],"dependencies":{}}
- /***/ }),
- /***/ "7dSG":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // A bit simpler than readable streams.
- // Implement an async ._write(chunk, encoding, cb), and it'll handle all
- // the drain event emission and buffering.
- /*<replacement>*/
- var pna = __webpack_require__("ypnx");
- /*</replacement>*/
- module.exports = Writable;
- /* <replacement> */
- function WriteReq(chunk, encoding, cb) {
- this.chunk = chunk;
- this.encoding = encoding;
- this.callback = cb;
- this.next = null;
- }
- // It seems a linked list but it is not
- // there will be only 2 of these for each stream
- function CorkedRequest(state) {
- var _this = this;
- this.next = null;
- this.entry = null;
- this.finish = function () {
- onCorkedFinish(_this, state);
- };
- }
- /* </replacement> */
- /*<replacement>*/
- var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
- /*</replacement>*/
- /*<replacement>*/
- var Duplex;
- /*</replacement>*/
- Writable.WritableState = WritableState;
- /*<replacement>*/
- var util = Object.create(__webpack_require__("jOgh"));
- util.inherits = __webpack_require__("LC74");
- /*</replacement>*/
- /*<replacement>*/
- var internalUtil = {
- deprecate: __webpack_require__("iP15")
- };
- /*</replacement>*/
- /*<replacement>*/
- var Stream = __webpack_require__("UcPO");
- /*</replacement>*/
- /*<replacement>*/
- var Buffer = __webpack_require__("kkc6").Buffer;
- var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};
- function _uint8ArrayToBuffer(chunk) {
- return Buffer.from(chunk);
- }
- function _isUint8Array(obj) {
- return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
- }
- /*</replacement>*/
- var destroyImpl = __webpack_require__("x0Ha");
- util.inherits(Writable, Stream);
- function nop() {}
- function WritableState(options, stream) {
- Duplex = Duplex || __webpack_require__("DsFX");
- options = options || {};
- // Duplex streams are both readable and writable, but share
- // the same options object.
- // However, some cases require setting options to different
- // values for the readable and the writable sides of the duplex stream.
- // These options can be provided separately as readableXXX and writableXXX.
- var isDuplex = stream instanceof Duplex;
- // object stream flag to indicate whether or not this stream
- // contains buffers or objects.
- this.objectMode = !!options.objectMode;
- if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
- // the point at which write() starts returning false
- // Note: 0 is a valid value, means that we always return false if
- // the entire buffer is not flushed immediately on write()
- var hwm = options.highWaterMark;
- var writableHwm = options.writableHighWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;
- // cast to ints.
- this.highWaterMark = Math.floor(this.highWaterMark);
- // if _final has been called
- this.finalCalled = false;
- // drain event flag.
- this.needDrain = false;
- // at the start of calling end()
- this.ending = false;
- // when end() has been called, and returned
- this.ended = false;
- // when 'finish' is emitted
- this.finished = false;
- // has it been destroyed
- this.destroyed = false;
- // should we decode strings into buffers before passing to _write?
- // this is here so that some node-core streams can optimize string
- // handling at a lower level.
- var noDecode = options.decodeStrings === false;
- this.decodeStrings = !noDecode;
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
- // not an actual buffer we keep track of, but a measurement
- // of how much we're waiting to get pushed to some underlying
- // socket or file.
- this.length = 0;
- // a flag to see when we're in the middle of a write.
- this.writing = false;
- // when true all writes will be buffered until .uncork() call
- this.corked = 0;
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
- // a flag to know if we're processing previously buffered items, which
- // may call the _write() callback in the same tick, so that we don't
- // end up in an overlapped onwrite situation.
- this.bufferProcessing = false;
- // the callback that's passed to _write(chunk,cb)
- this.onwrite = function (er) {
- onwrite(stream, er);
- };
- // the callback that the user supplies to write(chunk,encoding,cb)
- this.writecb = null;
- // the amount that is being written when _write is called.
- this.writelen = 0;
- this.bufferedRequest = null;
- this.lastBufferedRequest = null;
- // number of pending user-supplied write callbacks
- // this must be 0 before 'finish' can be emitted
- this.pendingcb = 0;
- // emit prefinish if the only thing we're waiting for is _write cbs
- // This is relevant for synchronous Transform streams
- this.prefinished = false;
- // True if the error was already emitted and should not be thrown again
- this.errorEmitted = false;
- // count buffered requests
- this.bufferedRequestCount = 0;
- // allocate the first CorkedRequest, there is always
- // one allocated and free to use, and we maintain at most two
- this.corkedRequestsFree = new CorkedRequest(this);
- }
- WritableState.prototype.getBuffer = function getBuffer() {
- var current = this.bufferedRequest;
- var out = [];
- while (current) {
- out.push(current);
- current = current.next;
- }
- return out;
- };
- (function () {
- try {
- Object.defineProperty(WritableState.prototype, 'buffer', {
- get: internalUtil.deprecate(function () {
- return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
- });
- } catch (_) {}
- })();
- // Test _writableState for inheritance to account for Duplex streams,
- // whose prototype chain only points to Readable.
- var realHasInstance;
- if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
- realHasInstance = Function.prototype[Symbol.hasInstance];
- Object.defineProperty(Writable, Symbol.hasInstance, {
- value: function (object) {
- if (realHasInstance.call(this, object)) return true;
- if (this !== Writable) return false;
- return object && object._writableState instanceof WritableState;
- }
- });
- } else {
- realHasInstance = function (object) {
- return object instanceof this;
- };
- }
- function Writable(options) {
- Duplex = Duplex || __webpack_require__("DsFX");
- // Writable ctor is applied to Duplexes, too.
- // `realHasInstance` is necessary because using plain `instanceof`
- // would return false, as no `_writableState` property is attached.
- // Trying to use the custom `instanceof` for Writable here will also break the
- // Node.js LazyTransform implementation, which has a non-trivial getter for
- // `_writableState` that would lead to infinite recursion.
- if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
- return new Writable(options);
- }
- this._writableState = new WritableState(options, this);
- // legacy.
- this.writable = true;
- if (options) {
- if (typeof options.write === 'function') this._write = options.write;
- if (typeof options.writev === 'function') this._writev = options.writev;
- if (typeof options.destroy === 'function') this._destroy = options.destroy;
- if (typeof options.final === 'function') this._final = options.final;
- }
- Stream.call(this);
- }
- // Otherwise people can pipe Writable streams, which is just wrong.
- Writable.prototype.pipe = function () {
- this.emit('error', new Error('Cannot pipe, not readable'));
- };
- function writeAfterEnd(stream, cb) {
- var er = new Error('write after end');
- // TODO: defer error events consistently everywhere, not just the cb
- stream.emit('error', er);
- pna.nextTick(cb, er);
- }
- // Checks that a user-supplied chunk is valid, especially for the particular
- // mode the stream is in. Currently this means that `null` is never accepted
- // and undefined/non-string values are only allowed in object mode.
- function validChunk(stream, state, chunk, cb) {
- var valid = true;
- var er = false;
- if (chunk === null) {
- er = new TypeError('May not write null values to stream');
- } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
- er = new TypeError('Invalid non-string/buffer chunk');
- }
- if (er) {
- stream.emit('error', er);
- pna.nextTick(cb, er);
- valid = false;
- }
- return valid;
- }
- Writable.prototype.write = function (chunk, encoding, cb) {
- var state = this._writableState;
- var ret = false;
- var isBuf = !state.objectMode && _isUint8Array(chunk);
- if (isBuf && !Buffer.isBuffer(chunk)) {
- chunk = _uint8ArrayToBuffer(chunk);
- }
- if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
- if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
- if (typeof cb !== 'function') cb = nop;
- if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
- state.pendingcb++;
- ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
- }
- return ret;
- };
- Writable.prototype.cork = function () {
- var state = this._writableState;
- state.corked++;
- };
- Writable.prototype.uncork = function () {
- var state = this._writableState;
- if (state.corked) {
- state.corked--;
- if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
- }
- };
- Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
- // node::ParseEncoding() requires lower case.
- if (typeof encoding === 'string') encoding = encoding.toLowerCase();
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
- this._writableState.defaultEncoding = encoding;
- return this;
- };
- function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
- chunk = Buffer.from(chunk, encoding);
- }
- return chunk;
- }
- Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function () {
- return this._writableState.highWaterMark;
- }
- });
- // if we're already writing something, then just put this
- // in the queue, and wait our turn. Otherwise, call _write
- // If we return false, then we need a drain event, so set that flag.
- function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
- if (!isBuf) {
- var newChunk = decodeChunk(state, chunk, encoding);
- if (chunk !== newChunk) {
- isBuf = true;
- encoding = 'buffer';
- chunk = newChunk;
- }
- }
- var len = state.objectMode ? 1 : chunk.length;
- state.length += len;
- var ret = state.length < state.highWaterMark;
- // we must ensure that previous needDrain will not be reset to false.
- if (!ret) state.needDrain = true;
- if (state.writing || state.corked) {
- var last = state.lastBufferedRequest;
- state.lastBufferedRequest = {
- chunk: chunk,
- encoding: encoding,
- isBuf: isBuf,
- callback: cb,
- next: null
- };
- if (last) {
- last.next = state.lastBufferedRequest;
- } else {
- state.bufferedRequest = state.lastBufferedRequest;
- }
- state.bufferedRequestCount += 1;
- } else {
- doWrite(stream, state, false, len, chunk, encoding, cb);
- }
- return ret;
- }
- function doWrite(stream, state, writev, len, chunk, encoding, cb) {
- state.writelen = len;
- state.writecb = cb;
- state.writing = true;
- state.sync = true;
- if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
- state.sync = false;
- }
- function onwriteError(stream, state, sync, er, cb) {
- --state.pendingcb;
- if (sync) {
- // defer the callback if we are being called synchronously
- // to avoid piling up things on the stack
- pna.nextTick(cb, er);
- // this can emit finish, and it will always happen
- // after error
- pna.nextTick(finishMaybe, stream, state);
- stream._writableState.errorEmitted = true;
- stream.emit('error', er);
- } else {
- // the caller expect this to happen before if
- // it is async
- cb(er);
- stream._writableState.errorEmitted = true;
- stream.emit('error', er);
- // this can emit finish, but finish must
- // always follow error
- finishMaybe(stream, state);
- }
- }
- function onwriteStateUpdate(state) {
- state.writing = false;
- state.writecb = null;
- state.length -= state.writelen;
- state.writelen = 0;
- }
- function onwrite(stream, er) {
- var state = stream._writableState;
- var sync = state.sync;
- var cb = state.writecb;
- onwriteStateUpdate(state);
- if (er) onwriteError(stream, state, sync, er, cb);else {
- // Check if we're actually ready to finish, but don't emit yet
- var finished = needFinish(state);
- if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
- clearBuffer(stream, state);
- }
- if (sync) {
- /*<replacement>*/
- asyncWrite(afterWrite, stream, state, finished, cb);
- /*</replacement>*/
- } else {
- afterWrite(stream, state, finished, cb);
- }
- }
- }
- function afterWrite(stream, state, finished, cb) {
- if (!finished) onwriteDrain(stream, state);
- state.pendingcb--;
- cb();
- finishMaybe(stream, state);
- }
- // Must force callback to be called on nextTick, so that we don't
- // emit 'drain' before the write() consumer gets the 'false' return
- // value, and has a chance to attach a 'drain' listener.
- function onwriteDrain(stream, state) {
- if (state.length === 0 && state.needDrain) {
- state.needDrain = false;
- stream.emit('drain');
- }
- }
- // if there's something in the buffer waiting, then process it
- function clearBuffer(stream, state) {
- state.bufferProcessing = true;
- var entry = state.bufferedRequest;
- if (stream._writev && entry && entry.next) {
- // Fast case, write everything using _writev()
- var l = state.bufferedRequestCount;
- var buffer = new Array(l);
- var holder = state.corkedRequestsFree;
- holder.entry = entry;
- var count = 0;
- var allBuffers = true;
- while (entry) {
- buffer[count] = entry;
- if (!entry.isBuf) allBuffers = false;
- entry = entry.next;
- count += 1;
- }
- buffer.allBuffers = allBuffers;
- doWrite(stream, state, true, state.length, buffer, '', holder.finish);
- // doWrite is almost always async, defer these to save a bit of time
- // as the hot path ends with doWrite
- state.pendingcb++;
- state.lastBufferedRequest = null;
- if (holder.next) {
- state.corkedRequestsFree = holder.next;
- holder.next = null;
- } else {
- state.corkedRequestsFree = new CorkedRequest(state);
- }
- state.bufferedRequestCount = 0;
- } else {
- // Slow case, write chunks one-by-one
- while (entry) {
- var chunk = entry.chunk;
- var encoding = entry.encoding;
- var cb = entry.callback;
- var len = state.objectMode ? 1 : chunk.length;
- doWrite(stream, state, false, len, chunk, encoding, cb);
- entry = entry.next;
- state.bufferedRequestCount--;
- // if we didn't call the onwrite immediately, then
- // it means that we need to wait until it does.
- // also, that means that the chunk and cb are currently
- // being processed, so move the buffer counter past them.
- if (state.writing) {
- break;
- }
- }
- if (entry === null) state.lastBufferedRequest = null;
- }
- state.bufferedRequest = entry;
- state.bufferProcessing = false;
- }
- Writable.prototype._write = function (chunk, encoding, cb) {
- cb(new Error('_write() is not implemented'));
- };
- Writable.prototype._writev = null;
- Writable.prototype.end = function (chunk, encoding, cb) {
- var state = this._writableState;
- if (typeof chunk === 'function') {
- cb = chunk;
- chunk = null;
- encoding = null;
- } else if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
- if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
- // .end() fully uncorks
- if (state.corked) {
- state.corked = 1;
- this.uncork();
- }
- // ignore unnecessary end() calls.
- if (!state.ending) endWritable(this, state, cb);
- };
- function needFinish(state) {
- return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
- }
- function callFinal(stream, state) {
- stream._final(function (err) {
- state.pendingcb--;
- if (err) {
- stream.emit('error', err);
- }
- state.prefinished = true;
- stream.emit('prefinish');
- finishMaybe(stream, state);
- });
- }
- function prefinish(stream, state) {
- if (!state.prefinished && !state.finalCalled) {
- if (typeof stream._final === 'function') {
- state.pendingcb++;
- state.finalCalled = true;
- pna.nextTick(callFinal, stream, state);
- } else {
- state.prefinished = true;
- stream.emit('prefinish');
- }
- }
- }
- function finishMaybe(stream, state) {
- var need = needFinish(state);
- if (need) {
- prefinish(stream, state);
- if (state.pendingcb === 0) {
- state.finished = true;
- stream.emit('finish');
- }
- }
- return need;
- }
- function endWritable(stream, state, cb) {
- state.ending = true;
- finishMaybe(stream, state);
- if (cb) {
- if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);
- }
- state.ended = true;
- stream.writable = false;
- }
- function onCorkedFinish(corkReq, state, err) {
- var entry = corkReq.entry;
- corkReq.entry = null;
- while (entry) {
- var cb = entry.callback;
- state.pendingcb--;
- cb(err);
- entry = entry.next;
- }
- // reuse the free corkReq.
- state.corkedRequestsFree.next = corkReq;
- }
- Object.defineProperty(Writable.prototype, 'destroyed', {
- get: function () {
- if (this._writableState === undefined) {
- return false;
- }
- return this._writableState.destroyed;
- },
- set: function (value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (!this._writableState) {
- return;
- }
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._writableState.destroyed = value;
- }
- });
- Writable.prototype.destroy = destroyImpl.destroy;
- Writable.prototype._undestroy = destroyImpl.undestroy;
- Writable.prototype._destroy = function (err, cb) {
- this.end();
- cb(err);
- };
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("W2nU"), __webpack_require__("162o").setImmediate, __webpack_require__("DuR2")))
- /***/ }),
- /***/ 8:
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ }),
- /***/ "8/0b":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("1lLf");
- var common = __webpack_require__("YSDb");
- var assert = __webpack_require__("08Lv");
- var rotr64_hi = utils.rotr64_hi;
- var rotr64_lo = utils.rotr64_lo;
- var shr64_hi = utils.shr64_hi;
- var shr64_lo = utils.shr64_lo;
- var sum64 = utils.sum64;
- var sum64_hi = utils.sum64_hi;
- var sum64_lo = utils.sum64_lo;
- var sum64_4_hi = utils.sum64_4_hi;
- var sum64_4_lo = utils.sum64_4_lo;
- var sum64_5_hi = utils.sum64_5_hi;
- var sum64_5_lo = utils.sum64_5_lo;
- var BlockHash = common.BlockHash;
- var sha512_K = [
- 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
- 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
- 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
- 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
- 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
- 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
- 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
- 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
- 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
- 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
- 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
- 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
- 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
- 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
- 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
- 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
- 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
- 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
- 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
- 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
- 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
- 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
- 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
- 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
- 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
- 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
- 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
- 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
- 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
- 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
- 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
- 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
- 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
- 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
- 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
- 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
- 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
- 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
- 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
- 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
- ];
- function SHA512() {
- if (!(this instanceof SHA512))
- return new SHA512();
- BlockHash.call(this);
- this.h = [
- 0x6a09e667, 0xf3bcc908,
- 0xbb67ae85, 0x84caa73b,
- 0x3c6ef372, 0xfe94f82b,
- 0xa54ff53a, 0x5f1d36f1,
- 0x510e527f, 0xade682d1,
- 0x9b05688c, 0x2b3e6c1f,
- 0x1f83d9ab, 0xfb41bd6b,
- 0x5be0cd19, 0x137e2179 ];
- this.k = sha512_K;
- this.W = new Array(160);
- }
- utils.inherits(SHA512, BlockHash);
- module.exports = SHA512;
- SHA512.blockSize = 1024;
- SHA512.outSize = 512;
- SHA512.hmacStrength = 192;
- SHA512.padLength = 128;
- SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
- var W = this.W;
- // 32 x 32bit words
- for (var i = 0; i < 32; i++)
- W[i] = msg[start + i];
- for (; i < W.length; i += 2) {
- var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2
- var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);
- var c1_hi = W[i - 14]; // i - 7
- var c1_lo = W[i - 13];
- var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15
- var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);
- var c3_hi = W[i - 32]; // i - 16
- var c3_lo = W[i - 31];
- W[i] = sum64_4_hi(
- c0_hi, c0_lo,
- c1_hi, c1_lo,
- c2_hi, c2_lo,
- c3_hi, c3_lo);
- W[i + 1] = sum64_4_lo(
- c0_hi, c0_lo,
- c1_hi, c1_lo,
- c2_hi, c2_lo,
- c3_hi, c3_lo);
- }
- };
- SHA512.prototype._update = function _update(msg, start) {
- this._prepareBlock(msg, start);
- var W = this.W;
- var ah = this.h[0];
- var al = this.h[1];
- var bh = this.h[2];
- var bl = this.h[3];
- var ch = this.h[4];
- var cl = this.h[5];
- var dh = this.h[6];
- var dl = this.h[7];
- var eh = this.h[8];
- var el = this.h[9];
- var fh = this.h[10];
- var fl = this.h[11];
- var gh = this.h[12];
- var gl = this.h[13];
- var hh = this.h[14];
- var hl = this.h[15];
- assert(this.k.length === W.length);
- for (var i = 0; i < W.length; i += 2) {
- var c0_hi = hh;
- var c0_lo = hl;
- var c1_hi = s1_512_hi(eh, el);
- var c1_lo = s1_512_lo(eh, el);
- var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
- var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
- var c3_hi = this.k[i];
- var c3_lo = this.k[i + 1];
- var c4_hi = W[i];
- var c4_lo = W[i + 1];
- var T1_hi = sum64_5_hi(
- c0_hi, c0_lo,
- c1_hi, c1_lo,
- c2_hi, c2_lo,
- c3_hi, c3_lo,
- c4_hi, c4_lo);
- var T1_lo = sum64_5_lo(
- c0_hi, c0_lo,
- c1_hi, c1_lo,
- c2_hi, c2_lo,
- c3_hi, c3_lo,
- c4_hi, c4_lo);
- c0_hi = s0_512_hi(ah, al);
- c0_lo = s0_512_lo(ah, al);
- c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
- c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
- var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
- var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
- hh = gh;
- hl = gl;
- gh = fh;
- gl = fl;
- fh = eh;
- fl = el;
- eh = sum64_hi(dh, dl, T1_hi, T1_lo);
- el = sum64_lo(dl, dl, T1_hi, T1_lo);
- dh = ch;
- dl = cl;
- ch = bh;
- cl = bl;
- bh = ah;
- bl = al;
- ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
- al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
- }
- sum64(this.h, 0, ah, al);
- sum64(this.h, 2, bh, bl);
- sum64(this.h, 4, ch, cl);
- sum64(this.h, 6, dh, dl);
- sum64(this.h, 8, eh, el);
- sum64(this.h, 10, fh, fl);
- sum64(this.h, 12, gh, gl);
- sum64(this.h, 14, hh, hl);
- };
- SHA512.prototype._digest = function digest(enc) {
- if (enc === 'hex')
- return utils.toHex32(this.h, 'big');
- else
- return utils.split32(this.h, 'big');
- };
- function ch64_hi(xh, xl, yh, yl, zh) {
- var r = (xh & yh) ^ ((~xh) & zh);
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function ch64_lo(xh, xl, yh, yl, zh, zl) {
- var r = (xl & yl) ^ ((~xl) & zl);
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function maj64_hi(xh, xl, yh, yl, zh) {
- var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function maj64_lo(xh, xl, yh, yl, zh, zl) {
- var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function s0_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 28);
- var c1_hi = rotr64_hi(xl, xh, 2); // 34
- var c2_hi = rotr64_hi(xl, xh, 7); // 39
- var r = c0_hi ^ c1_hi ^ c2_hi;
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function s0_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 28);
- var c1_lo = rotr64_lo(xl, xh, 2); // 34
- var c2_lo = rotr64_lo(xl, xh, 7); // 39
- var r = c0_lo ^ c1_lo ^ c2_lo;
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function s1_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 14);
- var c1_hi = rotr64_hi(xh, xl, 18);
- var c2_hi = rotr64_hi(xl, xh, 9); // 41
- var r = c0_hi ^ c1_hi ^ c2_hi;
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function s1_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 14);
- var c1_lo = rotr64_lo(xh, xl, 18);
- var c2_lo = rotr64_lo(xl, xh, 9); // 41
- var r = c0_lo ^ c1_lo ^ c2_lo;
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function g0_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 1);
- var c1_hi = rotr64_hi(xh, xl, 8);
- var c2_hi = shr64_hi(xh, xl, 7);
- var r = c0_hi ^ c1_hi ^ c2_hi;
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function g0_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 1);
- var c1_lo = rotr64_lo(xh, xl, 8);
- var c2_lo = shr64_lo(xh, xl, 7);
- var r = c0_lo ^ c1_lo ^ c2_lo;
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function g1_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 19);
- var c1_hi = rotr64_hi(xl, xh, 29); // 61
- var c2_hi = shr64_hi(xh, xl, 6);
- var r = c0_hi ^ c1_hi ^ c2_hi;
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- function g1_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 19);
- var c1_lo = rotr64_lo(xl, xh, 29); // 61
- var c2_lo = shr64_lo(xh, xl, 6);
- var r = c0_lo ^ c1_lo ^ c2_lo;
- if (r < 0)
- r += 0x100000000;
- return r;
- }
- /***/ }),
- /***/ "87vf":
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__("7dSG");
- /***/ }),
- /***/ "8RE6":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__("ViP4");
- if(typeof content === 'string') content = [[module.i, content, '']];
- if(content.locals) module.exports = content.locals;
- // add the styles to the DOM
- var update = __webpack_require__("rjj0")("445b92e4", content, true, {});
- /***/ }),
- /***/ "8YCc":
- /***/ (function(module, exports) {
- module.exports = {"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}
- /***/ }),
- /***/ "8liJ":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__("I3G/");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_document_register_element_build_document_register_element__ = __webpack_require__("CLCt");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_document_register_element_build_document_register_element___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_document_register_element_build_document_register_element__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_custom_element__ = __webpack_require__("PXmv");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_components_EasyPlayer_vue__ = __webpack_require__("ytBe");
- __WEBPACK_IMPORTED_MODULE_0_vue___default.a.use(__WEBPACK_IMPORTED_MODULE_2_vue_custom_element__["a" /* default */]);
- __WEBPACK_IMPORTED_MODULE_0_vue___default.a.customElement(__WEBPACK_IMPORTED_MODULE_3_components_EasyPlayer_vue__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_3_components_EasyPlayer_vue__["a" /* default */]);
- /***/ }),
- /***/ "8qoP":
- /***/ (function(module, exports, __webpack_require__) {
- var Buffer = __webpack_require__("X3l8").Buffer
- var xor = __webpack_require__("H2Pp")
- function encryptStart (self, data, decrypt) {
- var len = data.length
- var out = xor(data, self._cache)
- self._cache = self._cache.slice(len)
- self._prev = Buffer.concat([self._prev, decrypt ? data : out])
- return out
- }
- exports.encrypt = function (self, data, decrypt) {
- var out = Buffer.allocUnsafe(0)
- var len
- while (data.length) {
- if (self._cache.length === 0) {
- self._cache = self._cipher.encryptBlock(self._prev)
- self._prev = Buffer.allocUnsafe(0)
- }
- if (self._cache.length <= data.length) {
- len = self._cache.length
- out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])
- data = data.slice(len)
- } else {
- out = Buffer.concat([out, encryptStart(self, data, decrypt)])
- break
- }
- }
- return out
- }
- /***/ }),
- /***/ 9:
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ }),
- /***/ "9DG0":
- /***/ (function(module, exports, __webpack_require__) {
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- module.exports = Stream;
- var EE = __webpack_require__("vzCy").EventEmitter;
- var inherits = __webpack_require__("LC74");
- inherits(Stream, EE);
- Stream.Readable = __webpack_require__("cSWu");
- Stream.Writable = __webpack_require__("87vf");
- Stream.Duplex = __webpack_require__("SDM6");
- Stream.Transform = __webpack_require__("4/4u");
- Stream.PassThrough = __webpack_require__("/MLu");
- // Backwards-compat with node 0.4.x
- Stream.Stream = Stream;
- // old-style streams. Note that the pipe method (the only relevant
- // part of this class) is overridden in the Readable class.
- function Stream() {
- EE.call(this);
- }
- Stream.prototype.pipe = function(dest, options) {
- var source = this;
- function ondata(chunk) {
- if (dest.writable) {
- if (false === dest.write(chunk) && source.pause) {
- source.pause();
- }
- }
- }
- source.on('data', ondata);
- function ondrain() {
- if (source.readable && source.resume) {
- source.resume();
- }
- }
- dest.on('drain', ondrain);
- // If the 'end' option is not supplied, dest.end() will be called when
- // source gets the 'end' or 'close' events. Only dest.end() once.
- if (!dest._isStdio && (!options || options.end !== false)) {
- source.on('end', onend);
- source.on('close', onclose);
- }
- var didOnEnd = false;
- function onend() {
- if (didOnEnd) return;
- didOnEnd = true;
- dest.end();
- }
- function onclose() {
- if (didOnEnd) return;
- didOnEnd = true;
- if (typeof dest.destroy === 'function') dest.destroy();
- }
- // don't leave dangling pipes when there are errors.
- function onerror(er) {
- cleanup();
- if (EE.listenerCount(this, 'error') === 0) {
- throw er; // Unhandled stream error in pipe.
- }
- }
- source.on('error', onerror);
- dest.on('error', onerror);
- // remove all the event listeners that were added.
- function cleanup() {
- source.removeListener('data', ondata);
- dest.removeListener('drain', ondrain);
- source.removeListener('end', onend);
- source.removeListener('close', onclose);
- source.removeListener('error', onerror);
- dest.removeListener('error', onerror);
- source.removeListener('end', cleanup);
- source.removeListener('close', cleanup);
- dest.removeListener('close', cleanup);
- }
- source.on('end', cleanup);
- source.on('close', cleanup);
- dest.on('close', cleanup);
- dest.emit('pipe', source);
- // Allow for unix-like usage: A.pipe(B).pipe(C)
- return dest;
- };
- /***/ }),
- /***/ "9P96":
- /***/ (function(module, exports, __webpack_require__) {
- exports.publicEncrypt = __webpack_require__("9hYg")
- exports.privateDecrypt = __webpack_require__("fxuI")
- exports.privateEncrypt = function privateEncrypt (key, buf) {
- return exports.publicEncrypt(key, buf, true)
- }
- exports.publicDecrypt = function publicDecrypt (key, buf) {
- return exports.privateDecrypt(key, buf, true)
- }
- /***/ }),
- /***/ "9bI3":
- /***/ (function(module, exports) {
- module.exports = {
- doubles: {
- step: 4,
- points: [
- [
- 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
- 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',
- ],
- [
- '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
- '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',
- ],
- [
- '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
- 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',
- ],
- [
- '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
- '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',
- ],
- [
- '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
- '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',
- ],
- [
- '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
- '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',
- ],
- [
- 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
- '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',
- ],
- [
- '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
- 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',
- ],
- [
- 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
- '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',
- ],
- [
- 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
- 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',
- ],
- [
- 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
- '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',
- ],
- [
- '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
- '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',
- ],
- [
- '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
- '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',
- ],
- [
- '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
- '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',
- ],
- [
- '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
- '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',
- ],
- [
- '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
- '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',
- ],
- [
- '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
- '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',
- ],
- [
- '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
- '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',
- ],
- [
- '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
- 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',
- ],
- [
- 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
- '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',
- ],
- [
- 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
- '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',
- ],
- [
- '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
- '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',
- ],
- [
- '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
- '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',
- ],
- [
- 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
- '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',
- ],
- [
- '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
- 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',
- ],
- [
- 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
- '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',
- ],
- [
- 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
- 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',
- ],
- [
- 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
- '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',
- ],
- [
- 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
- 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',
- ],
- [
- 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
- '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',
- ],
- [
- '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
- 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',
- ],
- [
- '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
- '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',
- ],
- [
- 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
- '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',
- ],
- [
- '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
- 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',
- ],
- [
- 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
- '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',
- ],
- [
- 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
- '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',
- ],
- [
- 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
- 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',
- ],
- [
- '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
- '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',
- ],
- [
- '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
- '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',
- ],
- [
- '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
- 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',
- ],
- [
- '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
- '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',
- ],
- [
- 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
- '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',
- ],
- [
- '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
- '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',
- ],
- [
- '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
- 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',
- ],
- [
- '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
- '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',
- ],
- [
- 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
- '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',
- ],
- [
- '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
- 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',
- ],
- [
- 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
- 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',
- ],
- [
- 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
- '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',
- ],
- [
- '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
- 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',
- ],
- [
- '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
- 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',
- ],
- [
- 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
- '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',
- ],
- [
- 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
- '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',
- ],
- [
- 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
- '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',
- ],
- [
- '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
- 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',
- ],
- [
- '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
- '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',
- ],
- [
- 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
- 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',
- ],
- [
- '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
- 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',
- ],
- [
- '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
- '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',
- ],
- [
- '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
- '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',
- ],
- [
- 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
- 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',
- ],
- [
- '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
- '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',
- ],
- [
- '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
- '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',
- ],
- [
- 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
- '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',
- ],
- [
- 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
- 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',
- ],
- ],
- },
- naf: {
- wnd: 7,
- points: [
- [
- 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
- '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',
- ],
- [
- '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
- 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',
- ],
- [
- '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
- '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',
- ],
- [
- 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
- 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',
- ],
- [
- '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
- 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',
- ],
- [
- 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
- 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',
- ],
- [
- 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
- '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',
- ],
- [
- 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
- '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',
- ],
- [
- '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
- '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',
- ],
- [
- '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
- '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',
- ],
- [
- '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
- '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',
- ],
- [
- '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
- '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',
- ],
- [
- 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
- 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',
- ],
- [
- 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
- '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',
- ],
- [
- '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
- 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',
- ],
- [
- '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
- 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',
- ],
- [
- '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
- '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',
- ],
- [
- '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
- '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',
- ],
- [
- '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
- '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',
- ],
- [
- '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
- 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',
- ],
- [
- 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
- 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',
- ],
- [
- '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
- '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',
- ],
- [
- '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
- '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',
- ],
- [
- 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
- 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',
- ],
- [
- '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
- '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',
- ],
- [
- 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
- 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',
- ],
- [
- 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
- 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',
- ],
- [
- '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
- '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',
- ],
- [
- '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
- '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',
- ],
- [
- '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
- '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',
- ],
- [
- 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
- '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',
- ],
- [
- '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
- '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',
- ],
- [
- 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
- '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',
- ],
- [
- '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
- 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',
- ],
- [
- '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
- 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',
- ],
- [
- 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
- 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',
- ],
- [
- '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
- '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',
- ],
- [
- '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
- 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',
- ],
- [
- 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
- 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',
- ],
- [
- '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
- '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',
- ],
- [
- '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
- 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',
- ],
- [
- '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
- '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',
- ],
- [
- '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
- 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',
- ],
- [
- 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
- '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',
- ],
- [
- '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
- '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',
- ],
- [
- '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
- 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',
- ],
- [
- '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
- 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',
- ],
- [
- 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
- 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',
- ],
- [
- 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
- 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',
- ],
- [
- '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
- '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',
- ],
- [
- '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
- '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',
- ],
- [
- 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
- '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',
- ],
- [
- 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
- 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',
- ],
- [
- '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
- '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',
- ],
- [
- '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
- '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',
- ],
- [
- 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
- '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',
- ],
- [
- '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
- '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',
- ],
- [
- 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
- 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',
- ],
- [
- '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
- 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',
- ],
- [
- '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
- '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',
- ],
- [
- 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
- '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',
- ],
- [
- 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
- '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',
- ],
- [
- '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
- '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',
- ],
- [
- '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
- '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',
- ],
- [
- '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
- 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',
- ],
- [
- '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
- 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',
- ],
- [
- '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
- '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',
- ],
- [
- '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
- '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',
- ],
- [
- '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
- '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',
- ],
- [
- '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
- 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',
- ],
- [
- 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
- 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',
- ],
- [
- '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
- 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',
- ],
- [
- 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
- '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',
- ],
- [
- 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
- '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',
- ],
- [
- 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
- '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',
- ],
- [
- 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
- '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',
- ],
- [
- '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
- 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',
- ],
- [
- '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
- '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',
- ],
- [
- '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
- 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',
- ],
- [
- 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
- 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',
- ],
- [
- 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
- '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',
- ],
- [
- 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
- 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',
- ],
- [
- 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
- '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',
- ],
- [
- '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
- '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',
- ],
- [
- 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
- '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',
- ],
- [
- 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
- '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',
- ],
- [
- '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
- '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',
- ],
- [
- '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
- 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',
- ],
- [
- 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
- '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',
- ],
- [
- 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
- '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',
- ],
- [
- 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
- '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',
- ],
- [
- '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
- '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',
- ],
- [
- 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
- 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',
- ],
- [
- '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
- 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',
- ],
- [
- 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
- 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',
- ],
- [
- 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
- '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',
- ],
- [
- '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
- 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',
- ],
- [
- 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
- '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',
- ],
- [
- 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
- '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',
- ],
- [
- 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
- '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',
- ],
- [
- '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
- 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',
- ],
- [
- '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
- 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',
- ],
- [
- 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
- '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',
- ],
- [
- '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
- 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',
- ],
- [
- '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
- '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',
- ],
- [
- '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
- 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',
- ],
- [
- 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
- 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',
- ],
- [
- '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
- 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',
- ],
- [
- '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
- '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',
- ],
- [
- '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
- 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',
- ],
- [
- '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
- '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',
- ],
- [
- 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
- 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',
- ],
- [
- '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
- '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',
- ],
- [
- 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
- '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',
- ],
- [
- '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
- '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',
- ],
- [
- 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
- 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',
- ],
- [
- 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
- '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',
- ],
- [
- 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
- 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',
- ],
- [
- '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
- 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',
- ],
- [
- '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
- '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',
- ],
- [
- '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
- 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',
- ],
- [
- '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
- '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',
- ],
- [
- '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
- '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',
- ],
- [
- '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
- 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',
- ],
- [
- '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
- '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',
- ],
- [
- '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
- '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',
- ],
- [
- '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
- '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',
- ],
- ],
- },
- };
- /***/ }),
- /***/ "9hYg":
- /***/ (function(module, exports, __webpack_require__) {
- var parseKeys = __webpack_require__("jkjm")
- var randomBytes = __webpack_require__("rOku")
- var createHash = __webpack_require__("BVsN")
- var mgf = __webpack_require__("Cua8")
- var xor = __webpack_require__("zOO0")
- var BN = __webpack_require__("geuY")
- var withPublic = __webpack_require__("5QAX")
- var crt = __webpack_require__("jSRM")
- var Buffer = __webpack_require__("X3l8").Buffer
- module.exports = function publicEncrypt (publicKey, msg, reverse) {
- var padding
- if (publicKey.padding) {
- padding = publicKey.padding
- } else if (reverse) {
- padding = 1
- } else {
- padding = 4
- }
- var key = parseKeys(publicKey)
- var paddedMsg
- if (padding === 4) {
- paddedMsg = oaep(key, msg)
- } else if (padding === 1) {
- paddedMsg = pkcs1(key, msg, reverse)
- } else if (padding === 3) {
- paddedMsg = new BN(msg)
- if (paddedMsg.cmp(key.modulus) >= 0) {
- throw new Error('data too long for modulus')
- }
- } else {
- throw new Error('unknown padding')
- }
- if (reverse) {
- return crt(paddedMsg, key)
- } else {
- return withPublic(paddedMsg, key)
- }
- }
- function oaep (key, msg) {
- var k = key.modulus.byteLength()
- var mLen = msg.length
- var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()
- var hLen = iHash.length
- var hLen2 = 2 * hLen
- if (mLen > k - hLen2 - 2) {
- throw new Error('message too long')
- }
- var ps = Buffer.alloc(k - mLen - hLen2 - 2)
- var dblen = k - hLen - 1
- var seed = randomBytes(hLen)
- var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))
- var maskedSeed = xor(seed, mgf(maskedDb, hLen))
- return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))
- }
- function pkcs1 (key, msg, reverse) {
- var mLen = msg.length
- var k = key.modulus.byteLength()
- if (mLen > k - 11) {
- throw new Error('message too long')
- }
- var ps
- if (reverse) {
- ps = Buffer.alloc(k - mLen - 3, 0xff)
- } else {
- ps = nonZero(k - mLen - 3)
- }
- return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))
- }
- function nonZero (len) {
- var out = Buffer.allocUnsafe(len)
- var i = 0
- var cache = randomBytes(len * 2)
- var cur = 0
- var num
- while (i < len) {
- if (cur === cache.length) {
- cache = randomBytes(len * 2)
- cur = 0
- }
- num = cache[cur++]
- if (num) {
- out[i++] = num
- }
- }
- return out
- }
- /***/ }),
- /***/ "ARY+":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var inherits = __webpack_require__("LC74")
- var Legacy = __webpack_require__("YQyn")
- var Base = __webpack_require__("z+8S")
- var Buffer = __webpack_require__("X3l8").Buffer
- var md5 = __webpack_require__("EXeW")
- var RIPEMD160 = __webpack_require__("LYGd")
- var sha = __webpack_require__("JaR3")
- var ZEROS = Buffer.alloc(128)
- function Hmac (alg, key) {
- Base.call(this, 'digest')
- if (typeof key === 'string') {
- key = Buffer.from(key)
- }
- var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64
- this._alg = alg
- this._key = key
- if (key.length > blocksize) {
- var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
- key = hash.update(key).digest()
- } else if (key.length < blocksize) {
- key = Buffer.concat([key, ZEROS], blocksize)
- }
- var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
- var opad = this._opad = Buffer.allocUnsafe(blocksize)
- for (var i = 0; i < blocksize; i++) {
- ipad[i] = key[i] ^ 0x36
- opad[i] = key[i] ^ 0x5C
- }
- this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
- this._hash.update(ipad)
- }
- inherits(Hmac, Base)
- Hmac.prototype._update = function (data) {
- this._hash.update(data)
- }
- Hmac.prototype._final = function () {
- var h = this._hash.digest()
- var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
- return hash.update(this._opad).update(h).digest()
- }
- module.exports = function createHmac (alg, key) {
- alg = alg.toLowerCase()
- if (alg === 'rmd160' || alg === 'ripemd160') {
- return new Hmac('rmd160', key)
- }
- if (alg === 'md5') {
- return new Legacy(md5, key)
- }
- return new Hmac(alg, key)
- }
- /***/ }),
- /***/ "AWjC":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var assert = __webpack_require__("08Lv");
- function Cipher(options) {
- this.options = options;
- this.type = this.options.type;
- this.blockSize = 8;
- this._init();
- this.buffer = new Array(this.blockSize);
- this.bufferOff = 0;
- this.padding = options.padding !== false
- }
- module.exports = Cipher;
- Cipher.prototype._init = function _init() {
- // Might be overrided
- };
- Cipher.prototype.update = function update(data) {
- if (data.length === 0)
- return [];
- if (this.type === 'decrypt')
- return this._updateDecrypt(data);
- else
- return this._updateEncrypt(data);
- };
- Cipher.prototype._buffer = function _buffer(data, off) {
- // Append data to buffer
- var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);
- for (var i = 0; i < min; i++)
- this.buffer[this.bufferOff + i] = data[off + i];
- this.bufferOff += min;
- // Shift next
- return min;
- };
- Cipher.prototype._flushBuffer = function _flushBuffer(out, off) {
- this._update(this.buffer, 0, out, off);
- this.bufferOff = 0;
- return this.blockSize;
- };
- Cipher.prototype._updateEncrypt = function _updateEncrypt(data) {
- var inputOff = 0;
- var outputOff = 0;
- var count = ((this.bufferOff + data.length) / this.blockSize) | 0;
- var out = new Array(count * this.blockSize);
- if (this.bufferOff !== 0) {
- inputOff += this._buffer(data, inputOff);
- if (this.bufferOff === this.buffer.length)
- outputOff += this._flushBuffer(out, outputOff);
- }
- // Write blocks
- var max = data.length - ((data.length - inputOff) % this.blockSize);
- for (; inputOff < max; inputOff += this.blockSize) {
- this._update(data, inputOff, out, outputOff);
- outputOff += this.blockSize;
- }
- // Queue rest
- for (; inputOff < data.length; inputOff++, this.bufferOff++)
- this.buffer[this.bufferOff] = data[inputOff];
- return out;
- };
- Cipher.prototype._updateDecrypt = function _updateDecrypt(data) {
- var inputOff = 0;
- var outputOff = 0;
- var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;
- var out = new Array(count * this.blockSize);
- // TODO(indutny): optimize it, this is far from optimal
- for (; count > 0; count--) {
- inputOff += this._buffer(data, inputOff);
- outputOff += this._flushBuffer(out, outputOff);
- }
- // Buffer rest of the input
- inputOff += this._buffer(data, inputOff);
- return out;
- };
- Cipher.prototype.final = function final(buffer) {
- var first;
- if (buffer)
- first = this.update(buffer);
- var last;
- if (this.type === 'encrypt')
- last = this._finalEncrypt();
- else
- last = this._finalDecrypt();
- if (first)
- return first.concat(last);
- else
- return last;
- };
- Cipher.prototype._pad = function _pad(buffer, off) {
- if (off === 0)
- return false;
- while (off < buffer.length)
- buffer[off++] = 0;
- return true;
- };
- Cipher.prototype._finalEncrypt = function _finalEncrypt() {
- if (!this._pad(this.buffer, this.bufferOff))
- return [];
- var out = new Array(this.blockSize);
- this._update(this.buffer, 0, out, 0);
- return out;
- };
- Cipher.prototype._unpad = function _unpad(buffer) {
- return buffer;
- };
- Cipher.prototype._finalDecrypt = function _finalDecrypt() {
- assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');
- var out = new Array(this.blockSize);
- this._flushBuffer(out, 0);
- return this._unpad(out);
- };
- /***/ }),
- /***/ "Az4Q":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global) {module.exports = global["EPlayer"] = __webpack_require__("w3EX");
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2")))
- /***/ }),
- /***/ "B6Bn":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var BN = __webpack_require__("geuY");
- var utils = __webpack_require__("TkWM");
- var getNAF = utils.getNAF;
- var getJSF = utils.getJSF;
- var assert = utils.assert;
- function BaseCurve(type, conf) {
- this.type = type;
- this.p = new BN(conf.p, 16);
- // Use Montgomery, when there is no fast reduction for the prime
- this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
- // Useful for many curves
- this.zero = new BN(0).toRed(this.red);
- this.one = new BN(1).toRed(this.red);
- this.two = new BN(2).toRed(this.red);
- // Curve configuration, optional
- this.n = conf.n && new BN(conf.n, 16);
- this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
- // Temporary arrays
- this._wnafT1 = new Array(4);
- this._wnafT2 = new Array(4);
- this._wnafT3 = new Array(4);
- this._wnafT4 = new Array(4);
- this._bitLength = this.n ? this.n.bitLength() : 0;
- // Generalized Greg Maxwell's trick
- var adjustCount = this.n && this.p.div(this.n);
- if (!adjustCount || adjustCount.cmpn(100) > 0) {
- this.redN = null;
- } else {
- this._maxwellTrick = true;
- this.redN = this.n.toRed(this.red);
- }
- }
- module.exports = BaseCurve;
- BaseCurve.prototype.point = function point() {
- throw new Error('Not implemented');
- };
- BaseCurve.prototype.validate = function validate() {
- throw new Error('Not implemented');
- };
- BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
- assert(p.precomputed);
- var doubles = p._getDoubles();
- var naf = getNAF(k, 1, this._bitLength);
- var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);
- I /= 3;
- // Translate into more windowed form
- var repr = [];
- var j;
- var nafW;
- for (j = 0; j < naf.length; j += doubles.step) {
- nafW = 0;
- for (var l = j + doubles.step - 1; l >= j; l--)
- nafW = (nafW << 1) + naf[l];
- repr.push(nafW);
- }
- var a = this.jpoint(null, null, null);
- var b = this.jpoint(null, null, null);
- for (var i = I; i > 0; i--) {
- for (j = 0; j < repr.length; j++) {
- nafW = repr[j];
- if (nafW === i)
- b = b.mixedAdd(doubles.points[j]);
- else if (nafW === -i)
- b = b.mixedAdd(doubles.points[j].neg());
- }
- a = a.add(b);
- }
- return a.toP();
- };
- BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
- var w = 4;
- // Precompute window
- var nafPoints = p._getNAFPoints(w);
- w = nafPoints.wnd;
- var wnd = nafPoints.points;
- // Get NAF form
- var naf = getNAF(k, w, this._bitLength);
- // Add `this`*(N+1) for every w-NAF index
- var acc = this.jpoint(null, null, null);
- for (var i = naf.length - 1; i >= 0; i--) {
- // Count zeroes
- for (var l = 0; i >= 0 && naf[i] === 0; i--)
- l++;
- if (i >= 0)
- l++;
- acc = acc.dblp(l);
- if (i < 0)
- break;
- var z = naf[i];
- assert(z !== 0);
- if (p.type === 'affine') {
- // J +- P
- if (z > 0)
- acc = acc.mixedAdd(wnd[(z - 1) >> 1]);
- else
- acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());
- } else {
- // J +- J
- if (z > 0)
- acc = acc.add(wnd[(z - 1) >> 1]);
- else
- acc = acc.add(wnd[(-z - 1) >> 1].neg());
- }
- }
- return p.type === 'affine' ? acc.toP() : acc;
- };
- BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
- points,
- coeffs,
- len,
- jacobianResult) {
- var wndWidth = this._wnafT1;
- var wnd = this._wnafT2;
- var naf = this._wnafT3;
- // Fill all arrays
- var max = 0;
- var i;
- var j;
- var p;
- for (i = 0; i < len; i++) {
- p = points[i];
- var nafPoints = p._getNAFPoints(defW);
- wndWidth[i] = nafPoints.wnd;
- wnd[i] = nafPoints.points;
- }
- // Comb small window NAFs
- for (i = len - 1; i >= 1; i -= 2) {
- var a = i - 1;
- var b = i;
- if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {
- naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);
- naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);
- max = Math.max(naf[a].length, max);
- max = Math.max(naf[b].length, max);
- continue;
- }
- var comb = [
- points[a], /* 1 */
- null, /* 3 */
- null, /* 5 */
- points[b], /* 7 */
- ];
- // Try to avoid Projective points, if possible
- if (points[a].y.cmp(points[b].y) === 0) {
- comb[1] = points[a].add(points[b]);
- comb[2] = points[a].toJ().mixedAdd(points[b].neg());
- } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {
- comb[1] = points[a].toJ().mixedAdd(points[b]);
- comb[2] = points[a].add(points[b].neg());
- } else {
- comb[1] = points[a].toJ().mixedAdd(points[b]);
- comb[2] = points[a].toJ().mixedAdd(points[b].neg());
- }
- var index = [
- -3, /* -1 -1 */
- -1, /* -1 0 */
- -5, /* -1 1 */
- -7, /* 0 -1 */
- 0, /* 0 0 */
- 7, /* 0 1 */
- 5, /* 1 -1 */
- 1, /* 1 0 */
- 3, /* 1 1 */
- ];
- var jsf = getJSF(coeffs[a], coeffs[b]);
- max = Math.max(jsf[0].length, max);
- naf[a] = new Array(max);
- naf[b] = new Array(max);
- for (j = 0; j < max; j++) {
- var ja = jsf[0][j] | 0;
- var jb = jsf[1][j] | 0;
- naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];
- naf[b][j] = 0;
- wnd[a] = comb;
- }
- }
- var acc = this.jpoint(null, null, null);
- var tmp = this._wnafT4;
- for (i = max; i >= 0; i--) {
- var k = 0;
- while (i >= 0) {
- var zero = true;
- for (j = 0; j < len; j++) {
- tmp[j] = naf[j][i] | 0;
- if (tmp[j] !== 0)
- zero = false;
- }
- if (!zero)
- break;
- k++;
- i--;
- }
- if (i >= 0)
- k++;
- acc = acc.dblp(k);
- if (i < 0)
- break;
- for (j = 0; j < len; j++) {
- var z = tmp[j];
- p;
- if (z === 0)
- continue;
- else if (z > 0)
- p = wnd[j][(z - 1) >> 1];
- else if (z < 0)
- p = wnd[j][(-z - 1) >> 1].neg();
- if (p.type === 'affine')
- acc = acc.mixedAdd(p);
- else
- acc = acc.add(p);
- }
- }
- // Zeroify references
- for (i = 0; i < len; i++)
- wnd[i] = null;
- if (jacobianResult)
- return acc;
- else
- return acc.toP();
- };
- function BasePoint(curve, type) {
- this.curve = curve;
- this.type = type;
- this.precomputed = null;
- }
- BaseCurve.BasePoint = BasePoint;
- BasePoint.prototype.eq = function eq(/*other*/) {
- throw new Error('Not implemented');
- };
- BasePoint.prototype.validate = function validate() {
- return this.curve.validate(this);
- };
- BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
- bytes = utils.toArray(bytes, enc);
- var len = this.p.byteLength();
- // uncompressed, hybrid-odd, hybrid-even
- if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&
- bytes.length - 1 === 2 * len) {
- if (bytes[0] === 0x06)
- assert(bytes[bytes.length - 1] % 2 === 0);
- else if (bytes[0] === 0x07)
- assert(bytes[bytes.length - 1] % 2 === 1);
- var res = this.point(bytes.slice(1, 1 + len),
- bytes.slice(1 + len, 1 + 2 * len));
- return res;
- } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&
- bytes.length - 1 === len) {
- return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);
- }
- throw new Error('Unknown point format');
- };
- BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
- return this.encode(enc, true);
- };
- BasePoint.prototype._encode = function _encode(compact) {
- var len = this.curve.p.byteLength();
- var x = this.getX().toArray('be', len);
- if (compact)
- return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);
- return [ 0x04 ].concat(x, this.getY().toArray('be', len));
- };
- BasePoint.prototype.encode = function encode(enc, compact) {
- return utils.encode(this._encode(compact), enc);
- };
- BasePoint.prototype.precompute = function precompute(power) {
- if (this.precomputed)
- return this;
- var precomputed = {
- doubles: null,
- naf: null,
- beta: null,
- };
- precomputed.naf = this._getNAFPoints(8);
- precomputed.doubles = this._getDoubles(4, power);
- precomputed.beta = this._getBeta();
- this.precomputed = precomputed;
- return this;
- };
- BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
- if (!this.precomputed)
- return false;
- var doubles = this.precomputed.doubles;
- if (!doubles)
- return false;
- return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);
- };
- BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
- if (this.precomputed && this.precomputed.doubles)
- return this.precomputed.doubles;
- var doubles = [ this ];
- var acc = this;
- for (var i = 0; i < power; i += step) {
- for (var j = 0; j < step; j++)
- acc = acc.dbl();
- doubles.push(acc);
- }
- return {
- step: step,
- points: doubles,
- };
- };
- BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
- if (this.precomputed && this.precomputed.naf)
- return this.precomputed.naf;
- var res = [ this ];
- var max = (1 << wnd) - 1;
- var dbl = max === 1 ? null : this.dbl();
- for (var i = 1; i < max; i++)
- res[i] = res[i - 1].add(dbl);
- return {
- wnd: wnd,
- points: res,
- };
- };
- BasePoint.prototype._getBeta = function _getBeta() {
- return null;
- };
- BasePoint.prototype.dblp = function dblp(k) {
- var r = this;
- for (var i = 0; i < k; i++)
- r = r.dbl();
- return r;
- };
- /***/ }),
- /***/ "BCiZ":
- /***/ (function(module, exports, __webpack_require__) {
- var modeModules = {
- ECB: __webpack_require__("U6yG"),
- CBC: __webpack_require__("lUSU"),
- CFB: __webpack_require__("8qoP"),
- CFB8: __webpack_require__("Z7yx"),
- CFB1: __webpack_require__("k2Sm"),
- OFB: __webpack_require__("H1q7"),
- CTR: __webpack_require__("SsjP"),
- GCM: __webpack_require__("SsjP")
- }
- var modes = __webpack_require__("6ZSt")
- for (var key in modes) {
- modes[key].module = modeModules[modes[key].mode]
- }
- module.exports = modes
- /***/ }),
- /***/ "BEbT":
- /***/ (function(module, exports, __webpack_require__) {
- // based on the aes implimentation in triple sec
- // https://github.com/keybase/triplesec
- // which is in turn based on the one from crypto-js
- // https://code.google.com/p/crypto-js/
- var Buffer = __webpack_require__("X3l8").Buffer
- function asUInt32Array (buf) {
- if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)
- var len = (buf.length / 4) | 0
- var out = new Array(len)
- for (var i = 0; i < len; i++) {
- out[i] = buf.readUInt32BE(i * 4)
- }
- return out
- }
- function scrubVec (v) {
- for (var i = 0; i < v.length; v++) {
- v[i] = 0
- }
- }
- function cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {
- var SUB_MIX0 = SUB_MIX[0]
- var SUB_MIX1 = SUB_MIX[1]
- var SUB_MIX2 = SUB_MIX[2]
- var SUB_MIX3 = SUB_MIX[3]
- var s0 = M[0] ^ keySchedule[0]
- var s1 = M[1] ^ keySchedule[1]
- var s2 = M[2] ^ keySchedule[2]
- var s3 = M[3] ^ keySchedule[3]
- var t0, t1, t2, t3
- var ksRow = 4
- for (var round = 1; round < nRounds; round++) {
- t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]
- t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]
- t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]
- t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]
- s0 = t0
- s1 = t1
- s2 = t2
- s3 = t3
- }
- t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]
- t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]
- t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]
- t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]
- t0 = t0 >>> 0
- t1 = t1 >>> 0
- t2 = t2 >>> 0
- t3 = t3 >>> 0
- return [t0, t1, t2, t3]
- }
- // AES constants
- var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]
- var G = (function () {
- // Compute double table
- var d = new Array(256)
- for (var j = 0; j < 256; j++) {
- if (j < 128) {
- d[j] = j << 1
- } else {
- d[j] = (j << 1) ^ 0x11b
- }
- }
- var SBOX = []
- var INV_SBOX = []
- var SUB_MIX = [[], [], [], []]
- var INV_SUB_MIX = [[], [], [], []]
- // Walk GF(2^8)
- var x = 0
- var xi = 0
- for (var i = 0; i < 256; ++i) {
- // Compute sbox
- var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)
- sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63
- SBOX[x] = sx
- INV_SBOX[sx] = x
- // Compute multiplication
- var x2 = d[x]
- var x4 = d[x2]
- var x8 = d[x4]
- // Compute sub bytes, mix columns tables
- var t = (d[sx] * 0x101) ^ (sx * 0x1010100)
- SUB_MIX[0][x] = (t << 24) | (t >>> 8)
- SUB_MIX[1][x] = (t << 16) | (t >>> 16)
- SUB_MIX[2][x] = (t << 8) | (t >>> 24)
- SUB_MIX[3][x] = t
- // Compute inv sub bytes, inv mix columns tables
- t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)
- INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)
- INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)
- INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)
- INV_SUB_MIX[3][sx] = t
- if (x === 0) {
- x = xi = 1
- } else {
- x = x2 ^ d[d[d[x8 ^ x2]]]
- xi ^= d[d[xi]]
- }
- }
- return {
- SBOX: SBOX,
- INV_SBOX: INV_SBOX,
- SUB_MIX: SUB_MIX,
- INV_SUB_MIX: INV_SUB_MIX
- }
- })()
- function AES (key) {
- this._key = asUInt32Array(key)
- this._reset()
- }
- AES.blockSize = 4 * 4
- AES.keySize = 256 / 8
- AES.prototype.blockSize = AES.blockSize
- AES.prototype.keySize = AES.keySize
- AES.prototype._reset = function () {
- var keyWords = this._key
- var keySize = keyWords.length
- var nRounds = keySize + 6
- var ksRows = (nRounds + 1) * 4
- var keySchedule = []
- for (var k = 0; k < keySize; k++) {
- keySchedule[k] = keyWords[k]
- }
- for (k = keySize; k < ksRows; k++) {
- var t = keySchedule[k - 1]
- if (k % keySize === 0) {
- t = (t << 8) | (t >>> 24)
- t =
- (G.SBOX[t >>> 24] << 24) |
- (G.SBOX[(t >>> 16) & 0xff] << 16) |
- (G.SBOX[(t >>> 8) & 0xff] << 8) |
- (G.SBOX[t & 0xff])
- t ^= RCON[(k / keySize) | 0] << 24
- } else if (keySize > 6 && k % keySize === 4) {
- t =
- (G.SBOX[t >>> 24] << 24) |
- (G.SBOX[(t >>> 16) & 0xff] << 16) |
- (G.SBOX[(t >>> 8) & 0xff] << 8) |
- (G.SBOX[t & 0xff])
- }
- keySchedule[k] = keySchedule[k - keySize] ^ t
- }
- var invKeySchedule = []
- for (var ik = 0; ik < ksRows; ik++) {
- var ksR = ksRows - ik
- var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]
- if (ik < 4 || ksR <= 4) {
- invKeySchedule[ik] = tt
- } else {
- invKeySchedule[ik] =
- G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^
- G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^
- G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^
- G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]
- }
- }
- this._nRounds = nRounds
- this._keySchedule = keySchedule
- this._invKeySchedule = invKeySchedule
- }
- AES.prototype.encryptBlockRaw = function (M) {
- M = asUInt32Array(M)
- return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)
- }
- AES.prototype.encryptBlock = function (M) {
- var out = this.encryptBlockRaw(M)
- var buf = Buffer.allocUnsafe(16)
- buf.writeUInt32BE(out[0], 0)
- buf.writeUInt32BE(out[1], 4)
- buf.writeUInt32BE(out[2], 8)
- buf.writeUInt32BE(out[3], 12)
- return buf
- }
- AES.prototype.decryptBlock = function (M) {
- M = asUInt32Array(M)
- // swap
- var m1 = M[1]
- M[1] = M[3]
- M[3] = m1
- var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)
- var buf = Buffer.allocUnsafe(16)
- buf.writeUInt32BE(out[0], 0)
- buf.writeUInt32BE(out[3], 4)
- buf.writeUInt32BE(out[2], 8)
- buf.writeUInt32BE(out[1], 12)
- return buf
- }
- AES.prototype.scrub = function () {
- scrubVec(this._keySchedule)
- scrubVec(this._invKeySchedule)
- scrubVec(this._key)
- }
- module.exports.AES = AES
- /***/ }),
- /***/ "BO8W":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- exports.utils = __webpack_require__("iNQt");
- exports.Cipher = __webpack_require__("AWjC");
- exports.DES = __webpack_require__("Icsf");
- exports.CBC = __webpack_require__("nyV4");
- exports.EDE = __webpack_require__("YePo");
- /***/ }),
- /***/ "BVsN":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var inherits = __webpack_require__("LC74")
- var MD5 = __webpack_require__("eCz2")
- var RIPEMD160 = __webpack_require__("LYGd")
- var sha = __webpack_require__("JaR3")
- var Base = __webpack_require__("z+8S")
- function Hash (hash) {
- Base.call(this, 'digest')
- this._hash = hash
- }
- inherits(Hash, Base)
- Hash.prototype._update = function (data) {
- this._hash.update(data)
- }
- Hash.prototype._final = function () {
- return this._hash.digest()
- }
- module.exports = function createHash (alg) {
- alg = alg.toLowerCase()
- if (alg === 'md5') return new MD5()
- if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()
- return new Hash(sha(alg))
- }
- /***/ }),
- /***/ "Bbd/":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(process) {
- var _Object$setPrototypeO;
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
- var finished = __webpack_require__("DvOT");
- var kLastResolve = Symbol('lastResolve');
- var kLastReject = Symbol('lastReject');
- var kError = Symbol('error');
- var kEnded = Symbol('ended');
- var kLastPromise = Symbol('lastPromise');
- var kHandlePromise = Symbol('handlePromise');
- var kStream = Symbol('stream');
- function createIterResult(value, done) {
- return {
- value: value,
- done: done
- };
- }
- function readAndResolve(iter) {
- var resolve = iter[kLastResolve];
- if (resolve !== null) {
- var data = iter[kStream].read();
- // we defer if data is null
- // we can be expecting either 'end' or
- // 'error'
- if (data !== null) {
- iter[kLastPromise] = null;
- iter[kLastResolve] = null;
- iter[kLastReject] = null;
- resolve(createIterResult(data, false));
- }
- }
- }
- function onReadable(iter) {
- // we wait for the next tick, because it might
- // emit an error with process.nextTick
- process.nextTick(readAndResolve, iter);
- }
- function wrapForNext(lastPromise, iter) {
- return function (resolve, reject) {
- lastPromise.then(function () {
- if (iter[kEnded]) {
- resolve(createIterResult(undefined, true));
- return;
- }
- iter[kHandlePromise](resolve, reject);
- }, reject);
- };
- }
- var AsyncIteratorPrototype = Object.getPrototypeOf(function () {});
- var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {
- get stream() {
- return this[kStream];
- },
- next: function next() {
- var _this = this;
- // if we have detected an error in the meanwhile
- // reject straight away
- var error = this[kError];
- if (error !== null) {
- return Promise.reject(error);
- }
- if (this[kEnded]) {
- return Promise.resolve(createIterResult(undefined, true));
- }
- if (this[kStream].destroyed) {
- // We need to defer via nextTick because if .destroy(err) is
- // called, the error will be emitted via nextTick, and
- // we cannot guarantee that there is no error lingering around
- // waiting to be emitted.
- return new Promise(function (resolve, reject) {
- process.nextTick(function () {
- if (_this[kError]) {
- reject(_this[kError]);
- } else {
- resolve(createIterResult(undefined, true));
- }
- });
- });
- }
- // if we have multiple next() calls
- // we will wait for the previous Promise to finish
- // this logic is optimized to support for await loops,
- // where next() is only called once at a time
- var lastPromise = this[kLastPromise];
- var promise;
- if (lastPromise) {
- promise = new Promise(wrapForNext(lastPromise, this));
- } else {
- // fast path needed to support multiple this.push()
- // without triggering the next() queue
- var data = this[kStream].read();
- if (data !== null) {
- return Promise.resolve(createIterResult(data, false));
- }
- promise = new Promise(this[kHandlePromise]);
- }
- this[kLastPromise] = promise;
- return promise;
- }
- }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {
- return this;
- }), _defineProperty(_Object$setPrototypeO, "return", function _return() {
- var _this2 = this;
- // destroy(err, cb) is a private API
- // we can guarantee we have that here, because we control the
- // Readable class this is attached to
- return new Promise(function (resolve, reject) {
- _this2[kStream].destroy(null, function (err) {
- if (err) {
- reject(err);
- return;
- }
- resolve(createIterResult(undefined, true));
- });
- });
- }), _Object$setPrototypeO), AsyncIteratorPrototype);
- var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {
- var _Object$create;
- var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {
- value: stream,
- writable: true
- }), _defineProperty(_Object$create, kLastResolve, {
- value: null,
- writable: true
- }), _defineProperty(_Object$create, kLastReject, {
- value: null,
- writable: true
- }), _defineProperty(_Object$create, kError, {
- value: null,
- writable: true
- }), _defineProperty(_Object$create, kEnded, {
- value: stream._readableState.endEmitted,
- writable: true
- }), _defineProperty(_Object$create, kHandlePromise, {
- value: function value(resolve, reject) {
- var data = iterator[kStream].read();
- if (data) {
- iterator[kLastPromise] = null;
- iterator[kLastResolve] = null;
- iterator[kLastReject] = null;
- resolve(createIterResult(data, false));
- } else {
- iterator[kLastResolve] = resolve;
- iterator[kLastReject] = reject;
- }
- },
- writable: true
- }), _Object$create));
- iterator[kLastPromise] = null;
- finished(stream, function (err) {
- if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {
- var reject = iterator[kLastReject];
- // reject if we are waiting for data in the Promise
- // returned by next() and store the error
- if (reject !== null) {
- iterator[kLastPromise] = null;
- iterator[kLastResolve] = null;
- iterator[kLastReject] = null;
- reject(err);
- }
- iterator[kError] = err;
- return;
- }
- var resolve = iterator[kLastResolve];
- if (resolve !== null) {
- iterator[kLastPromise] = null;
- iterator[kLastResolve] = null;
- iterator[kLastReject] = null;
- resolve(createIterResult(undefined, true));
- }
- iterator[kEnded] = true;
- });
- stream.on('readable', onReadable.bind(null, iterator));
- return iterator;
- };
- module.exports = createReadableStreamAsyncIterator;
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("W2nU")))
- /***/ }),
- /***/ "C015":
- /***/ (function(module, exports, __webpack_require__) {
- var inherits = __webpack_require__("LC74")
- var Hash = __webpack_require__("CzQx")
- var Buffer = __webpack_require__("X3l8").Buffer
- var K = [
- 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
- 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
- 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
- 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
- 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
- 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
- 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
- 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
- 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
- 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
- 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
- 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
- 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
- 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
- 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
- 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
- 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
- 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
- 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
- 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
- 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
- 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
- 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
- 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
- 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
- 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
- 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
- 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
- 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
- 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
- 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
- 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
- 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
- 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
- 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
- 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
- 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
- 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
- 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
- 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
- ]
- var W = new Array(160)
- function Sha512 () {
- this.init()
- this._w = W
- Hash.call(this, 128, 112)
- }
- inherits(Sha512, Hash)
- Sha512.prototype.init = function () {
- this._ah = 0x6a09e667
- this._bh = 0xbb67ae85
- this._ch = 0x3c6ef372
- this._dh = 0xa54ff53a
- this._eh = 0x510e527f
- this._fh = 0x9b05688c
- this._gh = 0x1f83d9ab
- this._hh = 0x5be0cd19
- this._al = 0xf3bcc908
- this._bl = 0x84caa73b
- this._cl = 0xfe94f82b
- this._dl = 0x5f1d36f1
- this._el = 0xade682d1
- this._fl = 0x2b3e6c1f
- this._gl = 0xfb41bd6b
- this._hl = 0x137e2179
- return this
- }
- function Ch (x, y, z) {
- return z ^ (x & (y ^ z))
- }
- function maj (x, y, z) {
- return (x & y) | (z & (x | y))
- }
- function sigma0 (x, xl) {
- return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)
- }
- function sigma1 (x, xl) {
- return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)
- }
- function Gamma0 (x, xl) {
- return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)
- }
- function Gamma0l (x, xl) {
- return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)
- }
- function Gamma1 (x, xl) {
- return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)
- }
- function Gamma1l (x, xl) {
- return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)
- }
- function getCarry (a, b) {
- return (a >>> 0) < (b >>> 0) ? 1 : 0
- }
- Sha512.prototype._update = function (M) {
- var W = this._w
- var ah = this._ah | 0
- var bh = this._bh | 0
- var ch = this._ch | 0
- var dh = this._dh | 0
- var eh = this._eh | 0
- var fh = this._fh | 0
- var gh = this._gh | 0
- var hh = this._hh | 0
- var al = this._al | 0
- var bl = this._bl | 0
- var cl = this._cl | 0
- var dl = this._dl | 0
- var el = this._el | 0
- var fl = this._fl | 0
- var gl = this._gl | 0
- var hl = this._hl | 0
- for (var i = 0; i < 32; i += 2) {
- W[i] = M.readInt32BE(i * 4)
- W[i + 1] = M.readInt32BE(i * 4 + 4)
- }
- for (; i < 160; i += 2) {
- var xh = W[i - 15 * 2]
- var xl = W[i - 15 * 2 + 1]
- var gamma0 = Gamma0(xh, xl)
- var gamma0l = Gamma0l(xl, xh)
- xh = W[i - 2 * 2]
- xl = W[i - 2 * 2 + 1]
- var gamma1 = Gamma1(xh, xl)
- var gamma1l = Gamma1l(xl, xh)
- // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
- var Wi7h = W[i - 7 * 2]
- var Wi7l = W[i - 7 * 2 + 1]
- var Wi16h = W[i - 16 * 2]
- var Wi16l = W[i - 16 * 2 + 1]
- var Wil = (gamma0l + Wi7l) | 0
- var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0
- Wil = (Wil + gamma1l) | 0
- Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0
- Wil = (Wil + Wi16l) | 0
- Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0
- W[i] = Wih
- W[i + 1] = Wil
- }
- for (var j = 0; j < 160; j += 2) {
- Wih = W[j]
- Wil = W[j + 1]
- var majh = maj(ah, bh, ch)
- var majl = maj(al, bl, cl)
- var sigma0h = sigma0(ah, al)
- var sigma0l = sigma0(al, ah)
- var sigma1h = sigma1(eh, el)
- var sigma1l = sigma1(el, eh)
- // t1 = h + sigma1 + ch + K[j] + W[j]
- var Kih = K[j]
- var Kil = K[j + 1]
- var chh = Ch(eh, fh, gh)
- var chl = Ch(el, fl, gl)
- var t1l = (hl + sigma1l) | 0
- var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0
- t1l = (t1l + chl) | 0
- t1h = (t1h + chh + getCarry(t1l, chl)) | 0
- t1l = (t1l + Kil) | 0
- t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0
- t1l = (t1l + Wil) | 0
- t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0
- // t2 = sigma0 + maj
- var t2l = (sigma0l + majl) | 0
- var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0
- hh = gh
- hl = gl
- gh = fh
- gl = fl
- fh = eh
- fl = el
- el = (dl + t1l) | 0
- eh = (dh + t1h + getCarry(el, dl)) | 0
- dh = ch
- dl = cl
- ch = bh
- cl = bl
- bh = ah
- bl = al
- al = (t1l + t2l) | 0
- ah = (t1h + t2h + getCarry(al, t1l)) | 0
- }
- this._al = (this._al + al) | 0
- this._bl = (this._bl + bl) | 0
- this._cl = (this._cl + cl) | 0
- this._dl = (this._dl + dl) | 0
- this._el = (this._el + el) | 0
- this._fl = (this._fl + fl) | 0
- this._gl = (this._gl + gl) | 0
- this._hl = (this._hl + hl) | 0
- this._ah = (this._ah + ah + getCarry(this._al, al)) | 0
- this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0
- this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0
- this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0
- this._eh = (this._eh + eh + getCarry(this._el, el)) | 0
- this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0
- this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0
- this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0
- }
- Sha512.prototype._hash = function () {
- var H = Buffer.allocUnsafe(64)
- function writeInt64BE (h, l, offset) {
- H.writeInt32BE(h, offset)
- H.writeInt32BE(l, offset + 4)
- }
- writeInt64BE(this._ah, this._al, 0)
- writeInt64BE(this._bh, this._bl, 8)
- writeInt64BE(this._ch, this._cl, 16)
- writeInt64BE(this._dh, this._dl, 24)
- writeInt64BE(this._eh, this._el, 32)
- writeInt64BE(this._fh, this._fl, 40)
- writeInt64BE(this._gh, this._gl, 48)
- writeInt64BE(this._hh, this._hl, 56)
- return H
- }
- module.exports = Sha512
- /***/ }),
- /***/ "C1C2":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Helper
- function reverse(map) {
- const res = {};
- Object.keys(map).forEach(function(key) {
- // Convert key to integer if it is stringified
- if ((key | 0) == key)
- key = key | 0;
- const value = map[key];
- res[value] = key;
- });
- return res;
- }
- exports.tagClass = {
- 0: 'universal',
- 1: 'application',
- 2: 'context',
- 3: 'private'
- };
- exports.tagClassByName = reverse(exports.tagClass);
- exports.tag = {
- 0x00: 'end',
- 0x01: 'bool',
- 0x02: 'int',
- 0x03: 'bitstr',
- 0x04: 'octstr',
- 0x05: 'null_',
- 0x06: 'objid',
- 0x07: 'objDesc',
- 0x08: 'external',
- 0x09: 'real',
- 0x0a: 'enum',
- 0x0b: 'embed',
- 0x0c: 'utf8str',
- 0x0d: 'relativeOid',
- 0x10: 'seq',
- 0x11: 'set',
- 0x12: 'numstr',
- 0x13: 'printstr',
- 0x14: 't61str',
- 0x15: 'videostr',
- 0x16: 'ia5str',
- 0x17: 'utctime',
- 0x18: 'gentime',
- 0x19: 'graphstr',
- 0x1a: 'iso646str',
- 0x1b: 'genstr',
- 0x1c: 'unistr',
- 0x1d: 'charstr',
- 0x1e: 'bmpstr'
- };
- exports.tagByName = reverse(exports.tag);
- /***/ }),
- /***/ "CKAI":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("1lLf");
- var common = __webpack_require__("YSDb");
- var rotl32 = utils.rotl32;
- var sum32 = utils.sum32;
- var sum32_3 = utils.sum32_3;
- var sum32_4 = utils.sum32_4;
- var BlockHash = common.BlockHash;
- function RIPEMD160() {
- if (!(this instanceof RIPEMD160))
- return new RIPEMD160();
- BlockHash.call(this);
- this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];
- this.endian = 'little';
- }
- utils.inherits(RIPEMD160, BlockHash);
- exports.ripemd160 = RIPEMD160;
- RIPEMD160.blockSize = 512;
- RIPEMD160.outSize = 160;
- RIPEMD160.hmacStrength = 192;
- RIPEMD160.padLength = 64;
- RIPEMD160.prototype._update = function update(msg, start) {
- var A = this.h[0];
- var B = this.h[1];
- var C = this.h[2];
- var D = this.h[3];
- var E = this.h[4];
- var Ah = A;
- var Bh = B;
- var Ch = C;
- var Dh = D;
- var Eh = E;
- for (var j = 0; j < 80; j++) {
- var T = sum32(
- rotl32(
- sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
- s[j]),
- E);
- A = E;
- E = D;
- D = rotl32(C, 10);
- C = B;
- B = T;
- T = sum32(
- rotl32(
- sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
- sh[j]),
- Eh);
- Ah = Eh;
- Eh = Dh;
- Dh = rotl32(Ch, 10);
- Ch = Bh;
- Bh = T;
- }
- T = sum32_3(this.h[1], C, Dh);
- this.h[1] = sum32_3(this.h[2], D, Eh);
- this.h[2] = sum32_3(this.h[3], E, Ah);
- this.h[3] = sum32_3(this.h[4], A, Bh);
- this.h[4] = sum32_3(this.h[0], B, Ch);
- this.h[0] = T;
- };
- RIPEMD160.prototype._digest = function digest(enc) {
- if (enc === 'hex')
- return utils.toHex32(this.h, 'little');
- else
- return utils.split32(this.h, 'little');
- };
- function f(j, x, y, z) {
- if (j <= 15)
- return x ^ y ^ z;
- else if (j <= 31)
- return (x & y) | ((~x) & z);
- else if (j <= 47)
- return (x | (~y)) ^ z;
- else if (j <= 63)
- return (x & z) | (y & (~z));
- else
- return x ^ (y | (~z));
- }
- function K(j) {
- if (j <= 15)
- return 0x00000000;
- else if (j <= 31)
- return 0x5a827999;
- else if (j <= 47)
- return 0x6ed9eba1;
- else if (j <= 63)
- return 0x8f1bbcdc;
- else
- return 0xa953fd4e;
- }
- function Kh(j) {
- if (j <= 15)
- return 0x50a28be6;
- else if (j <= 31)
- return 0x5c4dd124;
- else if (j <= 47)
- return 0x6d703ef3;
- else if (j <= 63)
- return 0x7a6d76e9;
- else
- return 0x00000000;
- }
- var r = [
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
- 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
- 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
- 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
- ];
- var rh = [
- 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
- 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
- 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
- 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
- 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
- ];
- var s = [
- 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
- 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
- 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
- 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
- 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
- ];
- var sh = [
- 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
- 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
- 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
- 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
- 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
- ];
- /***/ }),
- /***/ "CLCt":
- /***/ (function(module, exports) {
- /*! (C) Andrea Giammarchi - @WebReflection - Mit Style License */
- (function(e,t){"use strict";function Ht(){var e=wt.splice(0,wt.length);Et=0;while(e.length)e.shift().call(null,e.shift())}function Bt(e,t){for(var n=0,r=e.length;n<r;n++)Jt(e[n],t)}function jt(e){for(var t=0,n=e.length,r;t<n;t++)r=e[t],Pt(r,A[It(r)])}function Ft(e){return function(t){ut(t)&&(Jt(t,e),O.length&&Bt(t.querySelectorAll(O),e))}}function It(e){var t=ht.call(e,"is"),n=e.nodeName.toUpperCase(),r=_.call(L,t?N+t.toUpperCase():T+n);return t&&-1<r&&!qt(n,t)?-1:r}function qt(e,t){return-1<O.indexOf(e+'[is="'+t+'"]')}function Rt(e){var t=e.currentTarget,n=e.attrChange,r=e.attrName,i=e.target,s=e[y]||2,o=e[w]||3;kt&&(!i||i===t)&&t[h]&&r!=="style"&&(e.prevValue!==e.newValue||e.newValue===""&&(n===s||n===o))&&t[h](r,n===s?null:e.prevValue,n===o?null:e.newValue)}function Ut(e){var t=Ft(e);return function(e){wt.push(t,e.target),Et&&clearTimeout(Et),Et=setTimeout(Ht,1)}}function zt(e){Ct&&(Ct=!1,e.currentTarget.removeEventListener(S,zt)),O.length&&Bt((e.target||n).querySelectorAll(O),e.detail===l?l:a),st&&Vt()}function Wt(e,t){var n=this;vt.call(n,e,t),Lt.call(n,{target:n})}function Xt(e,t){nt(e,t),Mt?Mt.observe(e,yt):(Nt&&(e.setAttribute=Wt,e[o]=Ot(e),e[u](x,Lt)),e[u](E,Rt)),e[m]&&kt&&(e.created=!0,e[m](),e.created=!1)}function Vt(){for(var e,t=0,n=at.length;t<n;t++)e=at[t],M.contains(e)||(n--,at.splice(t--,1),Jt(e,l))}function $t(e){throw new Error("A "+e+" type is already registered")}function Jt(e,t){var n,r=It(e),i;-1<r&&(Dt(e,A[r]),r=0,t===a&&!e[a]?(e[l]=!1,e[a]=!0,i="connected",r=1,st&&_.call(at,e)<0&&at.push(e)):t===l&&!e[l]&&(e[a]=!1,e[l]=!0,i="disconnected",r=1),r&&(n=e[t+f]||e[i+f])&&n.call(e))}function Kt(){}function Qt(e,t,r){var i=r&&r[c]||"",o=t.prototype,u=tt(o),a=t.observedAttributes||j,f={prototype:u};ot(u,m,{value:function(){if(Q)Q=!1;else if(!this[W]){this[W]=!0,new t(this),o[m]&&o[m].call(this);var e=G[Z.get(t)];(!V||e.create.length>1)&&Zt(this)}}}),ot(u,h,{value:function(e){-1<_.call(a,e)&&o[h].apply(this,arguments)}}),o[d]&&ot(u,p,{value:o[d]}),o[v]&&ot(u,g,{value:o[v]}),i&&(f[c]=i),e=e.toUpperCase(),G[e]={constructor:t,create:i?[i,et(e)]:[e]},Z.set(t,e),n[s](e.toLowerCase(),f),en(e),Y[e].r()}function Gt(e){var t=G[e.toUpperCase()];return t&&t.constructor}function Yt(e){return typeof e=="string"?e:e&&e.is||""}function Zt(e){var t=e[h],n=t?e.attributes:j,r=n.length,i;while(r--)i=n[r],t.call(e,i.name||i.nodeName,null,i.value||i.nodeValue)}function en(e){return e=e.toUpperCase(),e in Y||(Y[e]={},Y[e].p=new K(function(t){Y[e].r=t})),Y[e].p}function tn(){X&&delete e.customElements,B(e,"customElements",{configurable:!0,value:new Kt}),B(e,"CustomElementRegistry",{configurable:!0,value:Kt});for(var t=function(t){var r=e[t];if(r){e[t]=function(t){var i,s;return t||(t=this),t[W]||(Q=!0,i=G[Z.get(t.constructor)],s=V&&i.create.length===1,t=s?Reflect.construct(r,j,i.constructor):n.createElement.apply(n,i.create),t[W]=!0,Q=!1,s||Zt(t)),t},e[t].prototype=r.prototype;try{r.prototype.constructor=e[t]}catch(i){z=!0,B(r,W,{value:e[t]})}}},r=i.get(/^HTML[A-Z]*[a-z]/),o=r.length;o--;t(r[o]));n.createElement=function(e,t){var n=Yt(t);return n?gt.call(this,e,et(n)):gt.call(this,e)},St||(Tt=!0,n[s](""))}var n=e.document,r=e.Object,i=function(e){var t=/^[A-Z]+[a-z]/,n=function(e){var t=[],n;for(n in s)e.test(n)&&t.push(n);return t},i=function(e,t){t=t.toLowerCase(),t in s||(s[e]=(s[e]||[]).concat(t),s[t]=s[t.toUpperCase()]=e)},s=(r.create||r)(null),o={},u,a,f,l;for(a in e)for(l in e[a]){f=e[a][l],s[l]=f;for(u=0;u<f.length;u++)s[f[u].toLowerCase()]=s[f[u].toUpperCase()]=l}return o.get=function(r){return typeof r=="string"?s[r]||(t.test(r)?[]:""):n(r)},o.set=function(n,r){return t.test(n)?i(n,r):i(r,n),o},o}({collections:{HTMLAllCollection:["all"],HTMLCollection:["forms"],HTMLFormControlsCollection:["elements"],HTMLOptionsCollection:["options"]},elements:{Element:["element"],HTMLAnchorElement:["a"],HTMLAppletElement:["applet"],HTMLAreaElement:["area"],HTMLAttachmentElement:["attachment"],HTMLAudioElement:["audio"],HTMLBRElement:["br"],HTMLBaseElement:["base"],HTMLBodyElement:["body"],HTMLButtonElement:["button"],HTMLCanvasElement:["canvas"],HTMLContentElement:["content"],HTMLDListElement:["dl"],HTMLDataElement:["data"],HTMLDataListElement:["datalist"],HTMLDetailsElement:["details"],HTMLDialogElement:["dialog"],HTMLDirectoryElement:["dir"],HTMLDivElement:["div"],HTMLDocument:["document"],HTMLElement:["element","abbr","address","article","aside","b","bdi","bdo","cite","code","command","dd","dfn","dt","em","figcaption","figure","footer","header","i","kbd","mark","nav","noscript","rp","rt","ruby","s","samp","section","small","strong","sub","summary","sup","u","var","wbr"],HTMLEmbedElement:["embed"],HTMLFieldSetElement:["fieldset"],HTMLFontElement:["font"],HTMLFormElement:["form"],HTMLFrameElement:["frame"],HTMLFrameSetElement:["frameset"],HTMLHRElement:["hr"],HTMLHeadElement:["head"],HTMLHeadingElement:["h1","h2","h3","h4","h5","h6"],HTMLHtmlElement:["html"],HTMLIFrameElement:["iframe"],HTMLImageElement:["img"],HTMLInputElement:["input"],HTMLKeygenElement:["keygen"],HTMLLIElement:["li"],HTMLLabelElement:["label"],HTMLLegendElement:["legend"],HTMLLinkElement:["link"],HTMLMapElement:["map"],HTMLMarqueeElement:["marquee"],HTMLMediaElement:["media"],HTMLMenuElement:["menu"],HTMLMenuItemElement:["menuitem"],HTMLMetaElement:["meta"],HTMLMeterElement:["meter"],HTMLModElement:["del","ins"],HTMLOListElement:["ol"],HTMLObjectElement:["object"],HTMLOptGroupElement:["optgroup"],HTMLOptionElement:["option"],HTMLOutputElement:["output"],HTMLParagraphElement:["p"],HTMLParamElement:["param"],HTMLPictureElement:["picture"],HTMLPreElement:["pre"],HTMLProgressElement:["progress"],HTMLQuoteElement:["blockquote","q","quote"],HTMLScriptElement:["script"],HTMLSelectElement:["select"],HTMLShadowElement:["shadow"],HTMLSlotElement:["slot"],HTMLSourceElement:["source"],HTMLSpanElement:["span"],HTMLStyleElement:["style"],HTMLTableCaptionElement:["caption"],HTMLTableCellElement:["td","th"],HTMLTableColElement:["col","colgroup"],HTMLTableElement:["table"],HTMLTableRowElement:["tr"],HTMLTableSectionElement:["thead","tbody","tfoot"],HTMLTemplateElement:["template"],HTMLTextAreaElement:["textarea"],HTMLTimeElement:["time"],HTMLTitleElement:["title"],HTMLTrackElement:["track"],HTMLUListElement:["ul"],HTMLUnknownElement:["unknown","vhgroupv","vkeygen"],HTMLVideoElement:["video"]},nodes:{Attr:["node"],Audio:["audio"],CDATASection:["node"],CharacterData:["node"],Comment:["#comment"],Document:["#document"],DocumentFragment:["#document-fragment"],DocumentType:["node"],HTMLDocument:["#document"],Image:["img"],Option:["option"],ProcessingInstruction:["node"],ShadowRoot:["#shadow-root"],Text:["#text"],XMLDocument:["xml"]}});typeof t!="object"&&(t={type:t||"auto"});var s="registerElement",o="__"+s+(e.Math.random()*1e5>>0),u="addEventListener",a="attached",f="Callback",l="detached",c="extends",h="attributeChanged"+f,p=a+f,d="connected"+f,v="disconnected"+f,m="created"+f,g=l+f,y="ADDITION",b="MODIFICATION",w="REMOVAL",E="DOMAttrModified",S="DOMContentLoaded",x="DOMSubtreeModified",T="<",N="=",C=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)+$/,k=["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"],L=[],A=[],O="",M=n.documentElement,_=L.indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},D=r.prototype,P=D.hasOwnProperty,H=D.isPrototypeOf,B=r.defineProperty,j=[],F=r.getOwnPropertyDescriptor,I=r.getOwnPropertyNames,q=r.getPrototypeOf,R=r.setPrototypeOf,U=!!r.__proto__,z=!1,W="__dreCEv1",X=e.customElements,V=!/^force/.test(t.type)&&!!(X&&X.define&&X.get&&X.whenDefined),$=r.create||r,J=e.Map||function(){var t=[],n=[],r;return{get:function(e){return n[_.call(t,e)]},set:function(e,i){r=_.call(t,e),r<0?n[t.push(e)-1]=i:n[r]=i}}},K=e.Promise||function(e){function i(e){n=!0;while(t.length)t.shift()(e)}var t=[],n=!1,r={"catch":function(){return r},then:function(e){return t.push(e),n&&setTimeout(i,1),r}};return e(i),r},Q=!1,G=$(null),Y=$(null),Z=new J,et=function(e){return e.toLowerCase()},tt=r.create||function sn(e){return e?(sn.prototype=e,new sn):this},nt=R||(U?function(e,t){return e.__proto__=t,e}:I&&F?function(){function e(e,t){for(var n,r=I(t),i=0,s=r.length;i<s;i++)n=r[i],P.call(e,n)||B(e,n,F(t,n))}return function(t,n){do e(t,n);while((n=q(n))&&!H.call(n,t));return t}}():function(e,t){for(var n in t)e[n]=t[n];return e}),rt=e.MutationObserver||e.WebKitMutationObserver,it=(e.HTMLElement||e.Element||e.Node).prototype,st=!H.call(it,M),ot=st?function(e,t,n){return e[t]=n.value,e}:B,ut=st?function(e){return e.nodeType===1}:function(e){return H.call(it,e)},at=st&&[],ft=it.attachShadow,lt=it.cloneNode,ct=it.dispatchEvent,ht=it.getAttribute,pt=it.hasAttribute,dt=it.removeAttribute,vt=it.setAttribute,mt=n.createElement,gt=mt,yt=rt&&{attributes:!0,characterData:!0,attributeOldValue:!0},bt=rt||function(e){Nt=!1,M.removeEventListener(E,bt)},wt,Et=0,St=s in n&&!/^force-all/.test(t.type),xt=!0,Tt=!1,Nt=!0,Ct=!0,kt=!0,Lt,At,Ot,Mt,_t,Dt,Pt;St||(R||U?(Dt=function(e,t){H.call(t,e)||Xt(e,t)},Pt=Xt):(Dt=function(e,t){e[o]||(e[o]=r(!0),Xt(e,t))},Pt=Dt),st?(Nt=!1,function(){var e=F(it,u),t=e.value,n=function(e){var t=new CustomEvent(E,{bubbles:!0});t.attrName=e,t.prevValue=ht.call(this,e),t.newValue=null,t[w]=t.attrChange=2,dt.call(this,e),ct.call(this,t)},r=function(e,t){var n=pt.call(this,e),r=n&&ht.call(this,e),i=new CustomEvent(E,{bubbles:!0});vt.call(this,e,t),i.attrName=e,i.prevValue=n?r:null,i.newValue=t,n?i[b]=i.attrChange=1:i[y]=i.attrChange=0,ct.call(this,i)},i=function(e){var t=e.currentTarget,n=t[o],r=e.propertyName,i;n.hasOwnProperty(r)&&(n=n[r],i=new CustomEvent(E,{bubbles:!0}),i.attrName=n.name,i.prevValue=n.value||null,i.newValue=n.value=t[r]||null,i.prevValue==null?i[y]=i.attrChange=0:i[b]=i.attrChange=1,ct.call(t,i))};e.value=function(e,s,u){e===E&&this[h]&&this.setAttribute!==r&&(this[o]={className:{name:"class",value:this.className}},this.setAttribute=r,this.removeAttribute=n,t.call(this,"propertychange",i)),t.call(this,e,s,u)},B(it,u,e)}()):rt||(M[u](E,bt),M.setAttribute(o,1),M.removeAttribute(o),Nt&&(Lt=function(e){var t=this,n,r,i;if(t===e.target){n=t[o],t[o]=r=Ot(t);for(i in r){if(!(i in n))return At(0,t,i,n[i],r[i],y);if(r[i]!==n[i])return At(1,t,i,n[i],r[i],b)}for(i in n)if(!(i in r))return At(2,t,i,n[i],r[i],w)}},At=function(e,t,n,r,i,s){var o={attrChange:e,currentTarget:t,attrName:n,prevValue:r,newValue:i};o[s]=e,Rt(o)},Ot=function(e){for(var t,n,r={},i=e.attributes,s=0,o=i.length;s<o;s++)t=i[s],n=t.name,n!=="setAttribute"&&(r[n]=t.value);return r})),n[s]=function(t,r){p=t.toUpperCase(),xt&&(xt=!1,rt?(Mt=function(e,t){function n(e,t){for(var n=0,r=e.length;n<r;t(e[n++]));}return new rt(function(r){for(var i,s,o,u=0,a=r.length;u<a;u++)i=r[u],i.type==="childList"?(n(i.addedNodes,e),n(i.removedNodes,t)):(s=i.target,kt&&s[h]&&i.attributeName!=="style"&&(o=ht.call(s,i.attributeName),o!==i.oldValue&&s[h](i.attributeName,i.oldValue,o)))})}(Ft(a),Ft(l)),_t=function(e){return Mt.observe(e,{childList:!0,subtree:!0}),e},_t(n),ft&&(it.attachShadow=function(){return _t(ft.apply(this,arguments))})):(wt=[],n[u]("DOMNodeInserted",Ut(a)),n[u]("DOMNodeRemoved",Ut(l))),n[u](S,zt),n[u]("readystatechange",zt),it.cloneNode=function(e){var t=lt.call(this,!!e),n=It(t);return-1<n&&Pt(t,A[n]),e&&O.length&&jt(t.querySelectorAll(O)),t});if(Tt)return Tt=!1;-2<_.call(L,N+p)+_.call(L,T+p)&&$t(t);if(!C.test(p)||-1<_.call(k,p))throw new Error("The type "+t+" is invalid");var i=function(){return o?n.createElement(f,p):n.createElement(f)},s=r||D,o=P.call(s,c),f=o?r[c].toUpperCase():p,p,d;return o&&-1<_.call(L,T+f)&&$t(f),d=L.push((o?N:T)+p)-1,O=O.concat(O.length?",":"",o?f+'[is="'+t.toLowerCase()+'"]':f),i.prototype=A[d]=P.call(s,"prototype")?s.prototype:tt(it),O.length&&Bt(n.querySelectorAll(O),a),i},n.createElement=gt=function(e,t){var r=Yt(t),i=r?mt.call(n,e,et(r)):mt.call(n,e),s=""+e,o=_.call(L,(r?N:T)+(r||s).toUpperCase()),u=-1<o;return r&&(i.setAttribute("is",r=r.toLowerCase()),u&&(u=qt(s.toUpperCase(),r))),kt=!n.createElement.innerHTMLHelper,u&&Pt(i,A[o]),i}),Kt.prototype={constructor:Kt,define:V?function(e,t,n){if(n)Qt(e,t,n);else{var r=e.toUpperCase();G[r]={constructor:t,create:[r]},Z.set(t,r),X.define(e,t)}}:Qt,get:V?function(e){return X.get(e)||Gt(e)}:Gt,whenDefined:V?function(e){return K.race([X.whenDefined(e),en(e)])}:en};if(!X||/^force/.test(t.type))tn();else if(!t.noBuiltIn)try{(function(t,r,i){r[c]="a",t.prototype=tt(HTMLAnchorElement.prototype),t.prototype.constructor=t,e.customElements.define(i,t,r);if(ht.call(n.createElement("a",{is:i}),"is")!==i||V&&ht.call(new t,"is")!==i)throw r})(function on(){return Reflect.construct(HTMLAnchorElement,[],on)},{},"document-register-element-a")}catch(nn){tn()}if(!t.noBuiltIn)try{mt.call(n,"a","a")}catch(rn){et=function(e){return{is:e.toLowerCase()}}}})(window);
- /***/ }),
- /***/ "CVWE":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- module.exports = Readable;
- /*<replacement>*/
- var Duplex;
- /*</replacement>*/
- Readable.ReadableState = ReadableState;
- /*<replacement>*/
- var EE = __webpack_require__("vzCy").EventEmitter;
- var EElistenerCount = function EElistenerCount(emitter, type) {
- return emitter.listeners(type).length;
- };
- /*</replacement>*/
- /*<replacement>*/
- var Stream = __webpack_require__("qOYl");
- /*</replacement>*/
- var Buffer = __webpack_require__("EuP9").Buffer;
- var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};
- function _uint8ArrayToBuffer(chunk) {
- return Buffer.from(chunk);
- }
- function _isUint8Array(obj) {
- return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
- }
- /*<replacement>*/
- var debugUtil = __webpack_require__(1);
- var debug;
- if (debugUtil && debugUtil.debuglog) {
- debug = debugUtil.debuglog('stream');
- } else {
- debug = function debug() {};
- }
- /*</replacement>*/
- var BufferList = __webpack_require__("ZEc8");
- var destroyImpl = __webpack_require__("0IYo");
- var _require = __webpack_require__("iqpV"),
- getHighWaterMark = _require.getHighWaterMark;
- var _require$codes = __webpack_require__("3U89").codes,
- ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,
- ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,
- ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,
- ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
- // Lazy loaded to improve the startup performance.
- var StringDecoder;
- var createReadableStreamAsyncIterator;
- var from;
- __webpack_require__("LC74")(Readable, Stream);
- var errorOrDestroy = destroyImpl.errorOrDestroy;
- var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
- function prependListener(emitter, event, fn) {
- // Sadly this is not cacheable as some libraries bundle their own
- // event emitter implementation with them.
- if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
- // This is a hack to make sure that our error handler is attached before any
- // userland ones. NEVER DO THIS. This is here only because this code needs
- // to continue to work with older versions of Node.js that do not include
- // the prependListener() method. The goal is to eventually remove this hack.
- if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
- }
- function ReadableState(options, stream, isDuplex) {
- Duplex = Duplex || __webpack_require__("PhfM");
- options = options || {};
- // Duplex streams are both readable and writable, but share
- // the same options object.
- // However, some cases require setting options to different
- // values for the readable and the writable sides of the duplex stream.
- // These options can be provided separately as readableXXX and writableXXX.
- if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;
- // object stream flag. Used to make read(n) ignore n and to
- // make all the buffer merging and length checks go away
- this.objectMode = !!options.objectMode;
- if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
- // the point at which it stops calling _read() to fill the buffer
- // Note: 0 is a valid value, means "don't call _read preemptively ever"
- this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);
- // A linked list is used to store data chunks instead of an array because the
- // linked list can remove elements from the beginning faster than
- // array.shift()
- this.buffer = new BufferList();
- this.length = 0;
- this.pipes = null;
- this.pipesCount = 0;
- this.flowing = null;
- this.ended = false;
- this.endEmitted = false;
- this.reading = false;
- // a flag to be able to tell if the event 'readable'/'data' is emitted
- // immediately, or on a later tick. We set this to true at first, because
- // any actions that shouldn't happen until "later" should generally also
- // not happen before the first read call.
- this.sync = true;
- // whenever we return null, then we set a flag to say
- // that we're awaiting a 'readable' event emission.
- this.needReadable = false;
- this.emittedReadable = false;
- this.readableListening = false;
- this.resumeScheduled = false;
- this.paused = true;
- // Should close be emitted on destroy. Defaults to true.
- this.emitClose = options.emitClose !== false;
- // Should .destroy() be called after 'end' (and potentially 'finish')
- this.autoDestroy = !!options.autoDestroy;
- // has it been destroyed
- this.destroyed = false;
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
- // the number of writers that are awaiting a drain event in .pipe()s
- this.awaitDrain = 0;
- // if true, a maybeReadMore has been scheduled
- this.readingMore = false;
- this.decoder = null;
- this.encoding = null;
- if (options.encoding) {
- if (!StringDecoder) StringDecoder = __webpack_require__("X4X3").StringDecoder;
- this.decoder = new StringDecoder(options.encoding);
- this.encoding = options.encoding;
- }
- }
- function Readable(options) {
- Duplex = Duplex || __webpack_require__("PhfM");
- if (!(this instanceof Readable)) return new Readable(options);
- // Checking for a Stream.Duplex instance is faster here instead of inside
- // the ReadableState constructor, at least with V8 6.5
- var isDuplex = this instanceof Duplex;
- this._readableState = new ReadableState(options, this, isDuplex);
- // legacy
- this.readable = true;
- if (options) {
- if (typeof options.read === 'function') this._read = options.read;
- if (typeof options.destroy === 'function') this._destroy = options.destroy;
- }
- Stream.call(this);
- }
- Object.defineProperty(Readable.prototype, 'destroyed', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- if (this._readableState === undefined) {
- return false;
- }
- return this._readableState.destroyed;
- },
- set: function set(value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (!this._readableState) {
- return;
- }
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._readableState.destroyed = value;
- }
- });
- Readable.prototype.destroy = destroyImpl.destroy;
- Readable.prototype._undestroy = destroyImpl.undestroy;
- Readable.prototype._destroy = function (err, cb) {
- cb(err);
- };
- // Manually shove something into the read() buffer.
- // This returns true if the highWaterMark has not been hit yet,
- // similar to how Writable.write() returns true if you should
- // write() some more.
- Readable.prototype.push = function (chunk, encoding) {
- var state = this._readableState;
- var skipChunkCheck;
- if (!state.objectMode) {
- if (typeof chunk === 'string') {
- encoding = encoding || state.defaultEncoding;
- if (encoding !== state.encoding) {
- chunk = Buffer.from(chunk, encoding);
- encoding = '';
- }
- skipChunkCheck = true;
- }
- } else {
- skipChunkCheck = true;
- }
- return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
- };
- // Unshift should *always* be something directly out of read()
- Readable.prototype.unshift = function (chunk) {
- return readableAddChunk(this, chunk, null, true, false);
- };
- function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
- debug('readableAddChunk', chunk);
- var state = stream._readableState;
- if (chunk === null) {
- state.reading = false;
- onEofChunk(stream, state);
- } else {
- var er;
- if (!skipChunkCheck) er = chunkInvalid(state, chunk);
- if (er) {
- errorOrDestroy(stream, er);
- } else if (state.objectMode || chunk && chunk.length > 0) {
- if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
- chunk = _uint8ArrayToBuffer(chunk);
- }
- if (addToFront) {
- if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);
- } else if (state.ended) {
- errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());
- } else if (state.destroyed) {
- return false;
- } else {
- state.reading = false;
- if (state.decoder && !encoding) {
- chunk = state.decoder.write(chunk);
- if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
- } else {
- addChunk(stream, state, chunk, false);
- }
- }
- } else if (!addToFront) {
- state.reading = false;
- maybeReadMore(stream, state);
- }
- }
- // We can push more data if we are below the highWaterMark.
- // Also, if we have no data yet, we can stand some more bytes.
- // This is to work around cases where hwm=0, such as the repl.
- return !state.ended && (state.length < state.highWaterMark || state.length === 0);
- }
- function addChunk(stream, state, chunk, addToFront) {
- if (state.flowing && state.length === 0 && !state.sync) {
- state.awaitDrain = 0;
- stream.emit('data', chunk);
- } else {
- // update the buffer info.
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
- if (state.needReadable) emitReadable(stream);
- }
- maybeReadMore(stream, state);
- }
- function chunkInvalid(state, chunk) {
- var er;
- if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
- er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);
- }
- return er;
- }
- Readable.prototype.isPaused = function () {
- return this._readableState.flowing === false;
- };
- // backwards compatibility.
- Readable.prototype.setEncoding = function (enc) {
- if (!StringDecoder) StringDecoder = __webpack_require__("X4X3").StringDecoder;
- var decoder = new StringDecoder(enc);
- this._readableState.decoder = decoder;
- // If setEncoding(null), decoder.encoding equals utf8
- this._readableState.encoding = this._readableState.decoder.encoding;
- // Iterate over current buffer to convert already stored Buffers:
- var p = this._readableState.buffer.head;
- var content = '';
- while (p !== null) {
- content += decoder.write(p.data);
- p = p.next;
- }
- this._readableState.buffer.clear();
- if (content !== '') this._readableState.buffer.push(content);
- this._readableState.length = content.length;
- return this;
- };
- // Don't raise the hwm > 1GB
- var MAX_HWM = 0x40000000;
- function computeNewHighWaterMark(n) {
- if (n >= MAX_HWM) {
- // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.
- n = MAX_HWM;
- } else {
- // Get the next highest power of 2 to prevent increasing hwm excessively in
- // tiny amounts
- n--;
- n |= n >>> 1;
- n |= n >>> 2;
- n |= n >>> 4;
- n |= n >>> 8;
- n |= n >>> 16;
- n++;
- }
- return n;
- }
- // This function is designed to be inlinable, so please take care when making
- // changes to the function body.
- function howMuchToRead(n, state) {
- if (n <= 0 || state.length === 0 && state.ended) return 0;
- if (state.objectMode) return 1;
- if (n !== n) {
- // Only flow one buffer at a time
- if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
- }
- // If we're asking for more than the current hwm, then raise the hwm.
- if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
- if (n <= state.length) return n;
- // Don't have enough
- if (!state.ended) {
- state.needReadable = true;
- return 0;
- }
- return state.length;
- }
- // you can override either this method, or the async _read(n) below.
- Readable.prototype.read = function (n) {
- debug('read', n);
- n = parseInt(n, 10);
- var state = this._readableState;
- var nOrig = n;
- if (n !== 0) state.emittedReadable = false;
- // if we're doing read(0) to trigger a readable event, but we
- // already have a bunch of data in the buffer, then just trigger
- // the 'readable' event and move on.
- if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {
- debug('read: emitReadable', state.length, state.ended);
- if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
- return null;
- }
- n = howMuchToRead(n, state);
- // if we've ended, and we're now clear, then finish it up.
- if (n === 0 && state.ended) {
- if (state.length === 0) endReadable(this);
- return null;
- }
- // All the actual chunk generation logic needs to be
- // *below* the call to _read. The reason is that in certain
- // synthetic stream cases, such as passthrough streams, _read
- // may be a completely synchronous operation which may change
- // the state of the read buffer, providing enough data when
- // before there was *not* enough.
- //
- // So, the steps are:
- // 1. Figure out what the state of things will be after we do
- // a read from the buffer.
- //
- // 2. If that resulting state will trigger a _read, then call _read.
- // Note that this may be asynchronous, or synchronous. Yes, it is
- // deeply ugly to write APIs this way, but that still doesn't mean
- // that the Readable class should behave improperly, as streams are
- // designed to be sync/async agnostic.
- // Take note if the _read call is sync or async (ie, if the read call
- // has returned yet), so that we know whether or not it's safe to emit
- // 'readable' etc.
- //
- // 3. Actually pull the requested chunks out of the buffer and return.
- // if we need a readable event, then we need to do some reading.
- var doRead = state.needReadable;
- debug('need readable', doRead);
- // if we currently have less than the highWaterMark, then also read some
- if (state.length === 0 || state.length - n < state.highWaterMark) {
- doRead = true;
- debug('length less than watermark', doRead);
- }
- // however, if we've ended, then there's no point, and if we're already
- // reading, then it's unnecessary.
- if (state.ended || state.reading) {
- doRead = false;
- debug('reading or ended', doRead);
- } else if (doRead) {
- debug('do read');
- state.reading = true;
- state.sync = true;
- // if the length is currently zero, then we *need* a readable event.
- if (state.length === 0) state.needReadable = true;
- // call internal read method
- this._read(state.highWaterMark);
- state.sync = false;
- // If _read pushed data synchronously, then `reading` will be false,
- // and we need to re-evaluate how much data we can return to the user.
- if (!state.reading) n = howMuchToRead(nOrig, state);
- }
- var ret;
- if (n > 0) ret = fromList(n, state);else ret = null;
- if (ret === null) {
- state.needReadable = state.length <= state.highWaterMark;
- n = 0;
- } else {
- state.length -= n;
- state.awaitDrain = 0;
- }
- if (state.length === 0) {
- // If we have nothing in the buffer, then we want to know
- // as soon as we *do* get something into the buffer.
- if (!state.ended) state.needReadable = true;
- // If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended) endReadable(this);
- }
- if (ret !== null) this.emit('data', ret);
- return ret;
- };
- function onEofChunk(stream, state) {
- debug('onEofChunk');
- if (state.ended) return;
- if (state.decoder) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) {
- state.buffer.push(chunk);
- state.length += state.objectMode ? 1 : chunk.length;
- }
- }
- state.ended = true;
- if (state.sync) {
- // if we are sync, wait until next tick to emit the data.
- // Otherwise we risk emitting data in the flow()
- // the readable code triggers during a read() call
- emitReadable(stream);
- } else {
- // emit 'readable' now to make sure it gets picked up.
- state.needReadable = false;
- if (!state.emittedReadable) {
- state.emittedReadable = true;
- emitReadable_(stream);
- }
- }
- }
- // Don't emit readable right away in sync mode, because this can trigger
- // another read() call => stack overflow. This way, it might trigger
- // a nextTick recursion warning, but that's not so bad.
- function emitReadable(stream) {
- var state = stream._readableState;
- debug('emitReadable', state.needReadable, state.emittedReadable);
- state.needReadable = false;
- if (!state.emittedReadable) {
- debug('emitReadable', state.flowing);
- state.emittedReadable = true;
- process.nextTick(emitReadable_, stream);
- }
- }
- function emitReadable_(stream) {
- var state = stream._readableState;
- debug('emitReadable_', state.destroyed, state.length, state.ended);
- if (!state.destroyed && (state.length || state.ended)) {
- stream.emit('readable');
- state.emittedReadable = false;
- }
- // The stream needs another readable event if
- // 1. It is not flowing, as the flow mechanism will take
- // care of it.
- // 2. It is not ended.
- // 3. It is below the highWaterMark, so we can schedule
- // another readable later.
- state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;
- flow(stream);
- }
- // at this point, the user has presumably seen the 'readable' event,
- // and called read() to consume some data. that may have triggered
- // in turn another _read(n) call, in which case reading = true if
- // it's in progress.
- // However, if we're not ended, or reading, and the length < hwm,
- // then go ahead and try to read some more preemptively.
- function maybeReadMore(stream, state) {
- if (!state.readingMore) {
- state.readingMore = true;
- process.nextTick(maybeReadMore_, stream, state);
- }
- }
- function maybeReadMore_(stream, state) {
- // Attempt to read more data if we should.
- //
- // The conditions for reading more data are (one of):
- // - Not enough data buffered (state.length < state.highWaterMark). The loop
- // is responsible for filling the buffer with enough data if such data
- // is available. If highWaterMark is 0 and we are not in the flowing mode
- // we should _not_ attempt to buffer any extra data. We'll get more data
- // when the stream consumer calls read() instead.
- // - No data in the buffer, and the stream is in flowing mode. In this mode
- // the loop below is responsible for ensuring read() is called. Failing to
- // call read here would abort the flow and there's no other mechanism for
- // continuing the flow if the stream consumer has just subscribed to the
- // 'data' event.
- //
- // In addition to the above conditions to keep reading data, the following
- // conditions prevent the data from being read:
- // - The stream has ended (state.ended).
- // - There is already a pending 'read' operation (state.reading). This is a
- // case where the the stream has called the implementation defined _read()
- // method, but they are processing the call asynchronously and have _not_
- // called push() with new data. In this case we skip performing more
- // read()s. The execution ends in this method again after the _read() ends
- // up calling push() with more data.
- while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {
- var len = state.length;
- debug('maybeReadMore read 0');
- stream.read(0);
- if (len === state.length)
- // didn't get any data, stop spinning.
- break;
- }
- state.readingMore = false;
- }
- // abstract method. to be overridden in specific implementation classes.
- // call cb(er, data) where data is <= n in length.
- // for virtual (non-string, non-buffer) streams, "length" is somewhat
- // arbitrary, and perhaps not very meaningful.
- Readable.prototype._read = function (n) {
- errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));
- };
- Readable.prototype.pipe = function (dest, pipeOpts) {
- var src = this;
- var state = this._readableState;
- switch (state.pipesCount) {
- case 0:
- state.pipes = dest;
- break;
- case 1:
- state.pipes = [state.pipes, dest];
- break;
- default:
- state.pipes.push(dest);
- break;
- }
- state.pipesCount += 1;
- debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
- var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
- var endFn = doEnd ? onend : unpipe;
- if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);
- dest.on('unpipe', onunpipe);
- function onunpipe(readable, unpipeInfo) {
- debug('onunpipe');
- if (readable === src) {
- if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
- unpipeInfo.hasUnpiped = true;
- cleanup();
- }
- }
- }
- function onend() {
- debug('onend');
- dest.end();
- }
- // when the dest drains, it reduces the awaitDrain counter
- // on the source. This would be more elegant with a .once()
- // handler in flow(), but adding and removing repeatedly is
- // too slow.
- var ondrain = pipeOnDrain(src);
- dest.on('drain', ondrain);
- var cleanedUp = false;
- function cleanup() {
- debug('cleanup');
- // cleanup event handlers once the pipe is broken
- dest.removeListener('close', onclose);
- dest.removeListener('finish', onfinish);
- dest.removeListener('drain', ondrain);
- dest.removeListener('error', onerror);
- dest.removeListener('unpipe', onunpipe);
- src.removeListener('end', onend);
- src.removeListener('end', unpipe);
- src.removeListener('data', ondata);
- cleanedUp = true;
- // if the reader is waiting for a drain event from this
- // specific writer, then it would cause it to never start
- // flowing again.
- // So, if this is awaiting a drain, then we just call it now.
- // If we don't know, then assume that we are waiting for one.
- if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
- }
- src.on('data', ondata);
- function ondata(chunk) {
- debug('ondata');
- var ret = dest.write(chunk);
- debug('dest.write', ret);
- if (ret === false) {
- // If the user unpiped during `dest.write()`, it is possible
- // to get stuck in a permanently paused state if that write
- // also returned false.
- // => Check whether `dest` is still a piping destination.
- if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
- debug('false write response, pause', state.awaitDrain);
- state.awaitDrain++;
- }
- src.pause();
- }
- }
- // if the dest has an error, then stop piping into it.
- // however, don't suppress the throwing behavior for this.
- function onerror(er) {
- debug('onerror', er);
- unpipe();
- dest.removeListener('error', onerror);
- if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);
- }
- // Make sure our error handler is attached before userland ones.
- prependListener(dest, 'error', onerror);
- // Both close and finish should trigger unpipe, but only once.
- function onclose() {
- dest.removeListener('finish', onfinish);
- unpipe();
- }
- dest.once('close', onclose);
- function onfinish() {
- debug('onfinish');
- dest.removeListener('close', onclose);
- unpipe();
- }
- dest.once('finish', onfinish);
- function unpipe() {
- debug('unpipe');
- src.unpipe(dest);
- }
- // tell the dest that it's being piped to
- dest.emit('pipe', src);
- // start the flow if it hasn't been started already.
- if (!state.flowing) {
- debug('pipe resume');
- src.resume();
- }
- return dest;
- };
- function pipeOnDrain(src) {
- return function pipeOnDrainFunctionResult() {
- var state = src._readableState;
- debug('pipeOnDrain', state.awaitDrain);
- if (state.awaitDrain) state.awaitDrain--;
- if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
- state.flowing = true;
- flow(src);
- }
- };
- }
- Readable.prototype.unpipe = function (dest) {
- var state = this._readableState;
- var unpipeInfo = {
- hasUnpiped: false
- };
- // if we're not piping anywhere, then do nothing.
- if (state.pipesCount === 0) return this;
- // just one destination. most common case.
- if (state.pipesCount === 1) {
- // passed in one, but it's not the right one.
- if (dest && dest !== state.pipes) return this;
- if (!dest) dest = state.pipes;
- // got a match.
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- if (dest) dest.emit('unpipe', this, unpipeInfo);
- return this;
- }
- // slow case. multiple pipe destinations.
- if (!dest) {
- // remove all.
- var dests = state.pipes;
- var len = state.pipesCount;
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {
- hasUnpiped: false
- });
- return this;
- }
- // try to find the right one.
- var index = indexOf(state.pipes, dest);
- if (index === -1) return this;
- state.pipes.splice(index, 1);
- state.pipesCount -= 1;
- if (state.pipesCount === 1) state.pipes = state.pipes[0];
- dest.emit('unpipe', this, unpipeInfo);
- return this;
- };
- // set up data events if they are asked for
- // Ensure readable listeners eventually get something
- Readable.prototype.on = function (ev, fn) {
- var res = Stream.prototype.on.call(this, ev, fn);
- var state = this._readableState;
- if (ev === 'data') {
- // update readableListening so that resume() may be a no-op
- // a few lines down. This is needed to support once('readable').
- state.readableListening = this.listenerCount('readable') > 0;
- // Try start flowing on next tick if stream isn't explicitly paused
- if (state.flowing !== false) this.resume();
- } else if (ev === 'readable') {
- if (!state.endEmitted && !state.readableListening) {
- state.readableListening = state.needReadable = true;
- state.flowing = false;
- state.emittedReadable = false;
- debug('on readable', state.length, state.reading);
- if (state.length) {
- emitReadable(this);
- } else if (!state.reading) {
- process.nextTick(nReadingNextTick, this);
- }
- }
- }
- return res;
- };
- Readable.prototype.addListener = Readable.prototype.on;
- Readable.prototype.removeListener = function (ev, fn) {
- var res = Stream.prototype.removeListener.call(this, ev, fn);
- if (ev === 'readable') {
- // We need to check if there is someone still listening to
- // readable and reset the state. However this needs to happen
- // after readable has been emitted but before I/O (nextTick) to
- // support once('readable', fn) cycles. This means that calling
- // resume within the same tick will have no
- // effect.
- process.nextTick(updateReadableListening, this);
- }
- return res;
- };
- Readable.prototype.removeAllListeners = function (ev) {
- var res = Stream.prototype.removeAllListeners.apply(this, arguments);
- if (ev === 'readable' || ev === undefined) {
- // We need to check if there is someone still listening to
- // readable and reset the state. However this needs to happen
- // after readable has been emitted but before I/O (nextTick) to
- // support once('readable', fn) cycles. This means that calling
- // resume within the same tick will have no
- // effect.
- process.nextTick(updateReadableListening, this);
- }
- return res;
- };
- function updateReadableListening(self) {
- var state = self._readableState;
- state.readableListening = self.listenerCount('readable') > 0;
- if (state.resumeScheduled && !state.paused) {
- // flowing needs to be set to true now, otherwise
- // the upcoming resume will not flow.
- state.flowing = true;
- // crude way to check if we should resume
- } else if (self.listenerCount('data') > 0) {
- self.resume();
- }
- }
- function nReadingNextTick(self) {
- debug('readable nexttick read 0');
- self.read(0);
- }
- // pause() and resume() are remnants of the legacy readable stream API
- // If the user uses them, then switch into old mode.
- Readable.prototype.resume = function () {
- var state = this._readableState;
- if (!state.flowing) {
- debug('resume');
- // we flow only if there is no one listening
- // for readable, but we still have to call
- // resume()
- state.flowing = !state.readableListening;
- resume(this, state);
- }
- state.paused = false;
- return this;
- };
- function resume(stream, state) {
- if (!state.resumeScheduled) {
- state.resumeScheduled = true;
- process.nextTick(resume_, stream, state);
- }
- }
- function resume_(stream, state) {
- debug('resume', state.reading);
- if (!state.reading) {
- stream.read(0);
- }
- state.resumeScheduled = false;
- stream.emit('resume');
- flow(stream);
- if (state.flowing && !state.reading) stream.read(0);
- }
- Readable.prototype.pause = function () {
- debug('call pause flowing=%j', this._readableState.flowing);
- if (this._readableState.flowing !== false) {
- debug('pause');
- this._readableState.flowing = false;
- this.emit('pause');
- }
- this._readableState.paused = true;
- return this;
- };
- function flow(stream) {
- var state = stream._readableState;
- debug('flow', state.flowing);
- while (state.flowing && stream.read() !== null);
- }
- // wrap an old-style stream as the async data source.
- // This is *not* part of the readable stream interface.
- // It is an ugly unfortunate mess of history.
- Readable.prototype.wrap = function (stream) {
- var _this = this;
- var state = this._readableState;
- var paused = false;
- stream.on('end', function () {
- debug('wrapped end');
- if (state.decoder && !state.ended) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) _this.push(chunk);
- }
- _this.push(null);
- });
- stream.on('data', function (chunk) {
- debug('wrapped data');
- if (state.decoder) chunk = state.decoder.write(chunk);
- // don't skip over falsy values in objectMode
- if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
- var ret = _this.push(chunk);
- if (!ret) {
- paused = true;
- stream.pause();
- }
- });
- // proxy all the other methods.
- // important when wrapping filters and duplexes.
- for (var i in stream) {
- if (this[i] === undefined && typeof stream[i] === 'function') {
- this[i] = function methodWrap(method) {
- return function methodWrapReturnFunction() {
- return stream[method].apply(stream, arguments);
- };
- }(i);
- }
- }
- // proxy certain important events.
- for (var n = 0; n < kProxyEvents.length; n++) {
- stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
- }
- // when we try to consume some more bytes, simply unpause the
- // underlying stream.
- this._read = function (n) {
- debug('wrapped _read', n);
- if (paused) {
- paused = false;
- stream.resume();
- }
- };
- return this;
- };
- if (typeof Symbol === 'function') {
- Readable.prototype[Symbol.asyncIterator] = function () {
- if (createReadableStreamAsyncIterator === undefined) {
- createReadableStreamAsyncIterator = __webpack_require__("Bbd/");
- }
- return createReadableStreamAsyncIterator(this);
- };
- }
- Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._readableState.highWaterMark;
- }
- });
- Object.defineProperty(Readable.prototype, 'readableBuffer', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._readableState && this._readableState.buffer;
- }
- });
- Object.defineProperty(Readable.prototype, 'readableFlowing', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._readableState.flowing;
- },
- set: function set(state) {
- if (this._readableState) {
- this._readableState.flowing = state;
- }
- }
- });
- // exposed for testing purposes only.
- Readable._fromList = fromList;
- Object.defineProperty(Readable.prototype, 'readableLength', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._readableState.length;
- }
- });
- // Pluck off n bytes from an array of buffers.
- // Length is the combined lengths of all the buffers in the list.
- // This function is designed to be inlinable, so please take care when making
- // changes to the function body.
- function fromList(n, state) {
- // nothing buffered
- if (state.length === 0) return null;
- var ret;
- if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
- // read it all, truncate the list
- if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);
- state.buffer.clear();
- } else {
- // read part of list
- ret = state.buffer.consume(n, state.decoder);
- }
- return ret;
- }
- function endReadable(stream) {
- var state = stream._readableState;
- debug('endReadable', state.endEmitted);
- if (!state.endEmitted) {
- state.ended = true;
- process.nextTick(endReadableNT, state, stream);
- }
- }
- function endReadableNT(state, stream) {
- debug('endReadableNT', state.endEmitted, state.length);
- // Check that we didn't get one last unshift.
- if (!state.endEmitted && state.length === 0) {
- state.endEmitted = true;
- stream.readable = false;
- stream.emit('end');
- if (state.autoDestroy) {
- // In case of duplex streams we need a way to detect
- // if the writable side is ready for autoDestroy as well
- var wState = stream._writableState;
- if (!wState || wState.autoDestroy && wState.finished) {
- stream.destroy();
- }
- }
- }
- }
- if (typeof Symbol === 'function') {
- Readable.from = function (iterable, opts) {
- if (from === undefined) {
- from = __webpack_require__("r9kI");
- }
- return from(Readable, iterable, opts);
- };
- }
- function indexOf(xs, x) {
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) return i;
- }
- return -1;
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("W2nU")))
- /***/ }),
- /***/ "Cgw8":
- /***/ (function(module, exports, __webpack_require__) {
- var Buffer = __webpack_require__("X3l8").Buffer
- var MD5 = __webpack_require__("eCz2")
- /* eslint-disable camelcase */
- function EVP_BytesToKey (password, salt, keyBits, ivLen) {
- if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')
- if (salt) {
- if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')
- if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')
- }
- var keyLen = keyBits / 8
- var key = Buffer.alloc(keyLen)
- var iv = Buffer.alloc(ivLen || 0)
- var tmp = Buffer.alloc(0)
- while (keyLen > 0 || ivLen > 0) {
- var hash = new MD5()
- hash.update(tmp)
- hash.update(password)
- if (salt) hash.update(salt)
- tmp = hash.digest()
- var used = 0
- if (keyLen > 0) {
- var keyStart = key.length - keyLen
- used = Math.min(keyLen, tmp.length)
- tmp.copy(key, keyStart, 0, used)
- keyLen -= used
- }
- if (used < tmp.length && ivLen > 0) {
- var ivStart = iv.length - ivLen
- var length = Math.min(ivLen, tmp.length - used)
- tmp.copy(iv, ivStart, used, used + length)
- ivLen -= length
- }
- }
- tmp.fill(0)
- return { key: key, iv: iv }
- }
- module.exports = EVP_BytesToKey
- /***/ }),
- /***/ "Cua8":
- /***/ (function(module, exports, __webpack_require__) {
- var createHash = __webpack_require__("BVsN")
- var Buffer = __webpack_require__("X3l8").Buffer
- module.exports = function (seed, len) {
- var t = Buffer.alloc(0)
- var i = 0
- var c
- while (t.length < len) {
- c = i2ops(i++)
- t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])
- }
- return t.slice(0, len)
- }
- function i2ops (c) {
- var out = Buffer.allocUnsafe(4)
- out.writeUInt32BE(c, 0)
- return out
- }
- /***/ }),
- /***/ "CzQx":
- /***/ (function(module, exports, __webpack_require__) {
- var Buffer = __webpack_require__("X3l8").Buffer
- // prototype class for hash functions
- function Hash (blockSize, finalSize) {
- this._block = Buffer.alloc(blockSize)
- this._finalSize = finalSize
- this._blockSize = blockSize
- this._len = 0
- }
- Hash.prototype.update = function (data, enc) {
- if (typeof data === 'string') {
- enc = enc || 'utf8'
- data = Buffer.from(data, enc)
- }
- var block = this._block
- var blockSize = this._blockSize
- var length = data.length
- var accum = this._len
- for (var offset = 0; offset < length;) {
- var assigned = accum % blockSize
- var remainder = Math.min(length - offset, blockSize - assigned)
- for (var i = 0; i < remainder; i++) {
- block[assigned + i] = data[offset + i]
- }
- accum += remainder
- offset += remainder
- if ((accum % blockSize) === 0) {
- this._update(block)
- }
- }
- this._len += length
- return this
- }
- Hash.prototype.digest = function (enc) {
- var rem = this._len % this._blockSize
- this._block[rem] = 0x80
- // zero (rem + 1) trailing bits, where (rem + 1) is the smallest
- // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize
- this._block.fill(0, rem + 1)
- if (rem >= this._finalSize) {
- this._update(this._block)
- this._block.fill(0)
- }
- var bits = this._len * 8
- // uint32
- if (bits <= 0xffffffff) {
- this._block.writeUInt32BE(bits, this._blockSize - 4)
- // uint64
- } else {
- var lowBits = (bits & 0xffffffff) >>> 0
- var highBits = (bits - lowBits) / 0x100000000
- this._block.writeUInt32BE(highBits, this._blockSize - 8)
- this._block.writeUInt32BE(lowBits, this._blockSize - 4)
- }
- this._update(this._block)
- var hash = this._hash()
- return enc ? hash.toString(enc) : hash
- }
- Hash.prototype._update = function () {
- throw new Error('_update must be implemented by subclass')
- }
- module.exports = Hash
- /***/ }),
- /***/ "D1Va":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // a transform stream is a readable/writable stream where you do
- // something with the data. Sometimes it's called a "filter",
- // but that's not a great name for it, since that implies a thing where
- // some bits pass through, and others are simply ignored. (That would
- // be a valid example of a transform, of course.)
- //
- // While the output is causally related to the input, it's not a
- // necessarily symmetric or synchronous transformation. For example,
- // a zlib stream might take multiple plain-text writes(), and then
- // emit a single compressed chunk some time in the future.
- //
- // Here's how this works:
- //
- // The Transform stream has all the aspects of the readable and writable
- // stream classes. When you write(chunk), that calls _write(chunk,cb)
- // internally, and returns false if there's a lot of pending writes
- // buffered up. When you call read(), that calls _read(n) until
- // there's enough pending readable data buffered up.
- //
- // In a transform stream, the written data is placed in a buffer. When
- // _read(n) is called, it transforms the queued up data, calling the
- // buffered _write cb's as it consumes chunks. If consuming a single
- // written chunk would result in multiple output chunks, then the first
- // outputted bit calls the readcb, and subsequent chunks just go into
- // the read buffer, and will cause it to emit 'readable' if necessary.
- //
- // This way, back-pressure is actually determined by the reading side,
- // since _read has to be called to start processing a new chunk. However,
- // a pathological inflate type of transform can cause excessive buffering
- // here. For example, imagine a stream where every byte of input is
- // interpreted as an integer from 0-255, and then results in that many
- // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
- // 1kb of data being output. In this case, you could write a very small
- // amount of input, and end up with a very large amount of output. In
- // such a pathological inflating mechanism, there'd be no way to tell
- // the system to stop doing the transform. A single 4MB write could
- // cause the system to run out of memory.
- //
- // However, even in such a pathological case, only a single written chunk
- // would be consumed, and then the rest would wait (un-transformed) until
- // the results of the previous transformed chunk were consumed.
- module.exports = Transform;
- var Duplex = __webpack_require__("DsFX");
- /*<replacement>*/
- var util = Object.create(__webpack_require__("jOgh"));
- util.inherits = __webpack_require__("LC74");
- /*</replacement>*/
- util.inherits(Transform, Duplex);
- function afterTransform(er, data) {
- var ts = this._transformState;
- ts.transforming = false;
- var cb = ts.writecb;
- if (!cb) {
- return this.emit('error', new Error('write callback called multiple times'));
- }
- ts.writechunk = null;
- ts.writecb = null;
- if (data != null) // single equals check for both `null` and `undefined`
- this.push(data);
- cb(er);
- var rs = this._readableState;
- rs.reading = false;
- if (rs.needReadable || rs.length < rs.highWaterMark) {
- this._read(rs.highWaterMark);
- }
- }
- function Transform(options) {
- if (!(this instanceof Transform)) return new Transform(options);
- Duplex.call(this, options);
- this._transformState = {
- afterTransform: afterTransform.bind(this),
- needTransform: false,
- transforming: false,
- writecb: null,
- writechunk: null,
- writeencoding: null
- };
- // start out asking for a readable event once data is transformed.
- this._readableState.needReadable = true;
- // we have implemented the _read method, and done the other things
- // that Readable wants before the first _read call, so unset the
- // sync guard flag.
- this._readableState.sync = false;
- if (options) {
- if (typeof options.transform === 'function') this._transform = options.transform;
- if (typeof options.flush === 'function') this._flush = options.flush;
- }
- // When the writable side finishes, then flush out anything remaining.
- this.on('prefinish', prefinish);
- }
- function prefinish() {
- var _this = this;
- if (typeof this._flush === 'function') {
- this._flush(function (er, data) {
- done(_this, er, data);
- });
- } else {
- done(this, null, null);
- }
- }
- Transform.prototype.push = function (chunk, encoding) {
- this._transformState.needTransform = false;
- return Duplex.prototype.push.call(this, chunk, encoding);
- };
- // This is the part where you do stuff!
- // override this function in implementation classes.
- // 'chunk' is an input chunk.
- //
- // Call `push(newChunk)` to pass along transformed output
- // to the readable side. You may call 'push' zero or more times.
- //
- // Call `cb(err)` when you are done with this chunk. If you pass
- // an error, then that'll put the hurt on the whole operation. If you
- // never call cb(), then you'll never get another chunk.
- Transform.prototype._transform = function (chunk, encoding, cb) {
- throw new Error('_transform() is not implemented');
- };
- Transform.prototype._write = function (chunk, encoding, cb) {
- var ts = this._transformState;
- ts.writecb = cb;
- ts.writechunk = chunk;
- ts.writeencoding = encoding;
- if (!ts.transforming) {
- var rs = this._readableState;
- if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
- }
- };
- // Doesn't matter what the args are here.
- // _transform does all the work.
- // That we got here means that the readable side wants more data.
- Transform.prototype._read = function (n) {
- var ts = this._transformState;
- if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
- ts.transforming = true;
- this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
- } else {
- // mark that we need a transform, so that any data that comes in
- // will get processed, now that we've asked for it.
- ts.needTransform = true;
- }
- };
- Transform.prototype._destroy = function (err, cb) {
- var _this2 = this;
- Duplex.prototype._destroy.call(this, err, function (err2) {
- cb(err2);
- _this2.emit('close');
- });
- };
- function done(stream, er, data) {
- if (er) return stream.emit('error', er);
- if (data != null) // single equals check for both `null` and `undefined`
- stream.push(data);
- // if there's nothing in the write buffer, then that means
- // that nothing more will ever be provided
- if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');
- if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');
- return stream.push(null);
- }
- /***/ }),
- /***/ "DHvs":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = Log;
- /* unused harmony export dateFormat */
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
- /**
- * @description TODO 日志输出
- * @author Magic.XL
- * @TAG 标签
- * @messages 输出对象
- * @date 2021年11月17日
- */
- function Log(self, show) {
- var isSafari = /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);
- for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
- messages[_key - 2] = arguments[_key];
- }
- if (!isSafari) {
- var _console;
- if (!show) return;
- var TAG = '';
- if ((typeof self === 'undefined' ? 'undefined' : _typeof(self)) === 'object') TAG = self.$options.name;else TAG = self;
- (_console = console).log.apply(_console, ['%c ' + TAG + ' %c ' + dateFormat(new Date(), ' YYYY-MM-DD hh:mm:ss') + ' %c', 'background:#2d8cf0; padding: 1px; border-radius: 3px 0 0 3px; color: #fff;margin:5px 0', 'background:#19be6b; padding: 1px; border-radius: 0 3px 3px 0; color: #fff;margin-right: 10px', 'background:transparent'].concat(messages));
- } else {
- var _console2;
- (_console2 = console).log.apply(_console2, messages);
- }
- }
- /**
- * @description TODO 日期格式化
- * @author Magic.XL
- * @date 日期对象
- * @fmt 日期格式
- * @date 2021年11月17日
- */
- function dateFormat(date, fmt) {
- var ret = void 0;
- var opt = {
- 'Y+': date.getFullYear().toString(), // 年
- 'M+': (date.getMonth() + 1).toString(), // 月
- 'D+': date.getDate().toString(), // 日
- 'h+': date.getHours().toString(), // 时
- 'm+': date.getMinutes().toString(), // 分
- 's+': date.getSeconds().toString() // 秒
- // 有其他格式化字符需求可以继续添加,必须转化成字符串
- };
- for (var k in opt) {
- ret = new RegExp('(' + k + ')').exec(fmt);
- if (ret) {
- fmt = fmt.replace(ret[1], ret[1].length === 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));
- }
- }
- return fmt;
- }
- /***/ }),
- /***/ "DsFX":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // a duplex stream is just a stream that is both readable and writable.
- // Since JS doesn't have multiple prototypal inheritance, this class
- // prototypally inherits from Readable, and then parasitically from
- // Writable.
- /*<replacement>*/
- var pna = __webpack_require__("ypnx");
- /*</replacement>*/
- /*<replacement>*/
- var objectKeys = Object.keys || function (obj) {
- var keys = [];
- for (var key in obj) {
- keys.push(key);
- }return keys;
- };
- /*</replacement>*/
- module.exports = Duplex;
- /*<replacement>*/
- var util = Object.create(__webpack_require__("jOgh"));
- util.inherits = __webpack_require__("LC74");
- /*</replacement>*/
- var Readable = __webpack_require__("Rt1F");
- var Writable = __webpack_require__("7dSG");
- util.inherits(Duplex, Readable);
- {
- // avoid scope creep, the keys array can then be collected
- var keys = objectKeys(Writable.prototype);
- for (var v = 0; v < keys.length; v++) {
- var method = keys[v];
- if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
- }
- }
- function Duplex(options) {
- if (!(this instanceof Duplex)) return new Duplex(options);
- Readable.call(this, options);
- Writable.call(this, options);
- if (options && options.readable === false) this.readable = false;
- if (options && options.writable === false) this.writable = false;
- this.allowHalfOpen = true;
- if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
- this.once('end', onend);
- }
- Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function () {
- return this._writableState.highWaterMark;
- }
- });
- // the no-half-open enforcer
- function onend() {
- // if we allow half-open state, or if the writable side ended,
- // then we're ok.
- if (this.allowHalfOpen || this._writableState.ended) return;
- // no more data can be written.
- // But allow more writes to happen in this tick.
- pna.nextTick(onEndNT, this);
- }
- function onEndNT(self) {
- self.end();
- }
- Object.defineProperty(Duplex.prototype, 'destroyed', {
- get: function () {
- if (this._readableState === undefined || this._writableState === undefined) {
- return false;
- }
- return this._readableState.destroyed && this._writableState.destroyed;
- },
- set: function (value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (this._readableState === undefined || this._writableState === undefined) {
- return;
- }
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._readableState.destroyed = value;
- this._writableState.destroyed = value;
- }
- });
- Duplex.prototype._destroy = function (err, cb) {
- this.push(null);
- this.end();
- pna.nextTick(cb, err);
- };
- /***/ }),
- /***/ "DuR2":
- /***/ (function(module, exports) {
- var g;
- // This works in non-strict mode
- g = (function() {
- return this;
- })();
- try {
- // This works if eval is allowed (see CSP)
- g = g || Function("return this")() || (1,eval)("this");
- } catch(e) {
- // This works if the window reference is available
- if(typeof window === "object")
- g = window;
- }
- // g can still be undefined, but nothing to do about it...
- // We return undefined, instead of nothing here, so it's
- // easier to handle this case. if(!global) { ...}
- module.exports = g;
- /***/ }),
- /***/ "DvOT":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Ported from https://github.com/mafintosh/end-of-stream with
- // permission from the author, Mathias Buus (@mafintosh).
- var ERR_STREAM_PREMATURE_CLOSE = __webpack_require__("3U89").codes.ERR_STREAM_PREMATURE_CLOSE;
- function once(callback) {
- var called = false;
- return function () {
- if (called) return;
- called = true;
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- callback.apply(this, args);
- };
- }
- function noop() {}
- function isRequest(stream) {
- return stream.setHeader && typeof stream.abort === 'function';
- }
- function eos(stream, opts, callback) {
- if (typeof opts === 'function') return eos(stream, null, opts);
- if (!opts) opts = {};
- callback = once(callback || noop);
- var readable = opts.readable || opts.readable !== false && stream.readable;
- var writable = opts.writable || opts.writable !== false && stream.writable;
- var onlegacyfinish = function onlegacyfinish() {
- if (!stream.writable) onfinish();
- };
- var writableEnded = stream._writableState && stream._writableState.finished;
- var onfinish = function onfinish() {
- writable = false;
- writableEnded = true;
- if (!readable) callback.call(stream);
- };
- var readableEnded = stream._readableState && stream._readableState.endEmitted;
- var onend = function onend() {
- readable = false;
- readableEnded = true;
- if (!writable) callback.call(stream);
- };
- var onerror = function onerror(err) {
- callback.call(stream, err);
- };
- var onclose = function onclose() {
- var err;
- if (readable && !readableEnded) {
- if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();
- return callback.call(stream, err);
- }
- if (writable && !writableEnded) {
- if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();
- return callback.call(stream, err);
- }
- };
- var onrequest = function onrequest() {
- stream.req.on('finish', onfinish);
- };
- if (isRequest(stream)) {
- stream.on('complete', onfinish);
- stream.on('abort', onclose);
- if (stream.req) onrequest();else stream.on('request', onrequest);
- } else if (writable && !stream._writableState) {
- // legacy streams
- stream.on('end', onlegacyfinish);
- stream.on('close', onlegacyfinish);
- }
- stream.on('end', onend);
- stream.on('finish', onfinish);
- if (opts.error !== false) stream.on('error', onerror);
- stream.on('close', onclose);
- return function () {
- stream.removeListener('complete', onfinish);
- stream.removeListener('abort', onclose);
- stream.removeListener('request', onrequest);
- if (stream.req) stream.req.removeListener('finish', onfinish);
- stream.removeListener('end', onlegacyfinish);
- stream.removeListener('close', onlegacyfinish);
- stream.removeListener('finish', onfinish);
- stream.removeListener('end', onend);
- stream.removeListener('error', onerror);
- stream.removeListener('close', onclose);
- };
- }
- module.exports = eos;
- /***/ }),
- /***/ "EH7o":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("1lLf");
- var SHA512 = __webpack_require__("8/0b");
- function SHA384() {
- if (!(this instanceof SHA384))
- return new SHA384();
- SHA512.call(this);
- this.h = [
- 0xcbbb9d5d, 0xc1059ed8,
- 0x629a292a, 0x367cd507,
- 0x9159015a, 0x3070dd17,
- 0x152fecd8, 0xf70e5939,
- 0x67332667, 0xffc00b31,
- 0x8eb44a87, 0x68581511,
- 0xdb0c2e0d, 0x64f98fa7,
- 0x47b5481d, 0xbefa4fa4 ];
- }
- utils.inherits(SHA384, SHA512);
- module.exports = SHA384;
- SHA384.blockSize = 1024;
- SHA384.outSize = 384;
- SHA384.hmacStrength = 192;
- SHA384.padLength = 128;
- SHA384.prototype._digest = function digest(enc) {
- if (enc === 'hex')
- return utils.toHex32(this.h.slice(0, 12), 'big');
- else
- return utils.split32(this.h.slice(0, 12), 'big');
- };
- /***/ }),
- /***/ "EKta":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- exports.byteLength = byteLength
- exports.toByteArray = toByteArray
- exports.fromByteArray = fromByteArray
- var lookup = []
- var revLookup = []
- var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
- var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
- for (var i = 0, len = code.length; i < len; ++i) {
- lookup[i] = code[i]
- revLookup[code.charCodeAt(i)] = i
- }
- // Support decoding URL-safe base64 strings, as Node.js does.
- // See: https://en.wikipedia.org/wiki/Base64#URL_applications
- revLookup['-'.charCodeAt(0)] = 62
- revLookup['_'.charCodeAt(0)] = 63
- function getLens (b64) {
- var len = b64.length
- if (len % 4 > 0) {
- throw new Error('Invalid string. Length must be a multiple of 4')
- }
- // Trim off extra bytes after placeholder bytes are found
- // See: https://github.com/beatgammit/base64-js/issues/42
- var validLen = b64.indexOf('=')
- if (validLen === -1) validLen = len
- var placeHoldersLen = validLen === len
- ? 0
- : 4 - (validLen % 4)
- return [validLen, placeHoldersLen]
- }
- // base64 is 4/3 + up to two characters of the original data
- function byteLength (b64) {
- var lens = getLens(b64)
- var validLen = lens[0]
- var placeHoldersLen = lens[1]
- return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
- }
- function _byteLength (b64, validLen, placeHoldersLen) {
- return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
- }
- function toByteArray (b64) {
- var tmp
- var lens = getLens(b64)
- var validLen = lens[0]
- var placeHoldersLen = lens[1]
- var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
- var curByte = 0
- // if there are placeholders, only get up to the last complete 4 chars
- var len = placeHoldersLen > 0
- ? validLen - 4
- : validLen
- var i
- for (i = 0; i < len; i += 4) {
- tmp =
- (revLookup[b64.charCodeAt(i)] << 18) |
- (revLookup[b64.charCodeAt(i + 1)] << 12) |
- (revLookup[b64.charCodeAt(i + 2)] << 6) |
- revLookup[b64.charCodeAt(i + 3)]
- arr[curByte++] = (tmp >> 16) & 0xFF
- arr[curByte++] = (tmp >> 8) & 0xFF
- arr[curByte++] = tmp & 0xFF
- }
- if (placeHoldersLen === 2) {
- tmp =
- (revLookup[b64.charCodeAt(i)] << 2) |
- (revLookup[b64.charCodeAt(i + 1)] >> 4)
- arr[curByte++] = tmp & 0xFF
- }
- if (placeHoldersLen === 1) {
- tmp =
- (revLookup[b64.charCodeAt(i)] << 10) |
- (revLookup[b64.charCodeAt(i + 1)] << 4) |
- (revLookup[b64.charCodeAt(i + 2)] >> 2)
- arr[curByte++] = (tmp >> 8) & 0xFF
- arr[curByte++] = tmp & 0xFF
- }
- return arr
- }
- function tripletToBase64 (num) {
- return lookup[num >> 18 & 0x3F] +
- lookup[num >> 12 & 0x3F] +
- lookup[num >> 6 & 0x3F] +
- lookup[num & 0x3F]
- }
- function encodeChunk (uint8, start, end) {
- var tmp
- var output = []
- for (var i = start; i < end; i += 3) {
- tmp =
- ((uint8[i] << 16) & 0xFF0000) +
- ((uint8[i + 1] << 8) & 0xFF00) +
- (uint8[i + 2] & 0xFF)
- output.push(tripletToBase64(tmp))
- }
- return output.join('')
- }
- function fromByteArray (uint8) {
- var tmp
- var len = uint8.length
- var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
- var parts = []
- var maxChunkLength = 16383 // must be multiple of 3
- // go through the array every three bytes, we'll deal with trailing stuff later
- for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
- parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
- }
- // pad the end with zeros, but make sure to not forget the extra bytes
- if (extraBytes === 1) {
- tmp = uint8[len - 1]
- parts.push(
- lookup[tmp >> 2] +
- lookup[(tmp << 4) & 0x3F] +
- '=='
- )
- } else if (extraBytes === 2) {
- tmp = (uint8[len - 2] << 8) + uint8[len - 1]
- parts.push(
- lookup[tmp >> 10] +
- lookup[(tmp >> 4) & 0x3F] +
- lookup[(tmp << 2) & 0x3F] +
- '='
- )
- }
- return parts.join('')
- }
- /***/ }),
- /***/ "EXeW":
- /***/ (function(module, exports, __webpack_require__) {
- var MD5 = __webpack_require__("eCz2")
- module.exports = function (buffer) {
- return new MD5().update(buffer).digest()
- }
- /***/ }),
- /***/ "Ep4u":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Ported from https://github.com/mafintosh/pump with
- // permission from the author, Mathias Buus (@mafintosh).
- var eos;
- function once(callback) {
- var called = false;
- return function () {
- if (called) return;
- called = true;
- callback.apply(void 0, arguments);
- };
- }
- var _require$codes = __webpack_require__("WrlE").codes,
- ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,
- ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
- function noop(err) {
- // Rethrow the error if it exists to avoid swallowing it
- if (err) throw err;
- }
- function isRequest(stream) {
- return stream.setHeader && typeof stream.abort === 'function';
- }
- function destroyer(stream, reading, writing, callback) {
- callback = once(callback);
- var closed = false;
- stream.on('close', function () {
- closed = true;
- });
- if (eos === undefined) eos = __webpack_require__("PcVv");
- eos(stream, {
- readable: reading,
- writable: writing
- }, function (err) {
- if (err) return callback(err);
- closed = true;
- callback();
- });
- var destroyed = false;
- return function (err) {
- if (closed) return;
- if (destroyed) return;
- destroyed = true;
- // request.destroy just do .end - .abort is what we want
- if (isRequest(stream)) return stream.abort();
- if (typeof stream.destroy === 'function') return stream.destroy();
- callback(err || new ERR_STREAM_DESTROYED('pipe'));
- };
- }
- function call(fn) {
- fn();
- }
- function pipe(from, to) {
- return from.pipe(to);
- }
- function popCallback(streams) {
- if (!streams.length) return noop;
- if (typeof streams[streams.length - 1] !== 'function') return noop;
- return streams.pop();
- }
- function pipeline() {
- for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {
- streams[_key] = arguments[_key];
- }
- var callback = popCallback(streams);
- if (Array.isArray(streams[0])) streams = streams[0];
- if (streams.length < 2) {
- throw new ERR_MISSING_ARGS('streams');
- }
- var error;
- var destroys = streams.map(function (stream, i) {
- var reading = i < streams.length - 1;
- var writing = i > 0;
- return destroyer(stream, reading, writing, function (err) {
- if (!error) error = err;
- if (err) destroys.forEach(call);
- if (reading) return;
- destroys.forEach(call);
- callback(error);
- });
- });
- return streams.reduce(pipe);
- }
- module.exports = pipeline;
- /***/ }),
- /***/ "EuP9":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global) {/*!
- * The buffer module from node.js, for the browser.
- *
- * @author Feross Aboukhadijeh <http://feross.org>
- * @license MIT
- */
- /* eslint-disable no-proto */
- var base64 = __webpack_require__("EKta")
- var ieee754 = __webpack_require__("ujcs")
- var isArray = __webpack_require__("sOR5")
- exports.Buffer = Buffer
- exports.SlowBuffer = SlowBuffer
- exports.INSPECT_MAX_BYTES = 50
- /**
- * If `Buffer.TYPED_ARRAY_SUPPORT`:
- * === true Use Uint8Array implementation (fastest)
- * === false Use Object implementation (most compatible, even IE6)
- *
- * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
- * Opera 11.6+, iOS 4.2+.
- *
- * Due to various browser bugs, sometimes the Object implementation will be used even
- * when the browser supports typed arrays.
- *
- * Note:
- *
- * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
- * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
- *
- * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
- *
- * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
- * incorrect length in some situations.
- * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
- * get the Object implementation, which is slower but behaves correctly.
- */
- Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
- ? global.TYPED_ARRAY_SUPPORT
- : typedArraySupport()
- /*
- * Export kMaxLength after typed array support is determined.
- */
- exports.kMaxLength = kMaxLength()
- function typedArraySupport () {
- try {
- var arr = new Uint8Array(1)
- arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
- return arr.foo() === 42 && // typed array instances can be augmented
- typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
- arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
- } catch (e) {
- return false
- }
- }
- function kMaxLength () {
- return Buffer.TYPED_ARRAY_SUPPORT
- ? 0x7fffffff
- : 0x3fffffff
- }
- function createBuffer (that, length) {
- if (kMaxLength() < length) {
- throw new RangeError('Invalid typed array length')
- }
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- // Return an augmented `Uint8Array` instance, for best performance
- that = new Uint8Array(length)
- that.__proto__ = Buffer.prototype
- } else {
- // Fallback: Return an object instance of the Buffer class
- if (that === null) {
- that = new Buffer(length)
- }
- that.length = length
- }
- return that
- }
- /**
- * The Buffer constructor returns instances of `Uint8Array` that have their
- * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
- * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
- * and the `Uint8Array` methods. Square bracket notation works as expected -- it
- * returns a single octet.
- *
- * The `Uint8Array` prototype remains unmodified.
- */
- function Buffer (arg, encodingOrOffset, length) {
- if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
- return new Buffer(arg, encodingOrOffset, length)
- }
- // Common case.
- if (typeof arg === 'number') {
- if (typeof encodingOrOffset === 'string') {
- throw new Error(
- 'If encoding is specified then the first argument must be a string'
- )
- }
- return allocUnsafe(this, arg)
- }
- return from(this, arg, encodingOrOffset, length)
- }
- Buffer.poolSize = 8192 // not used by this implementation
- // TODO: Legacy, not needed anymore. Remove in next major version.
- Buffer._augment = function (arr) {
- arr.__proto__ = Buffer.prototype
- return arr
- }
- function from (that, value, encodingOrOffset, length) {
- if (typeof value === 'number') {
- throw new TypeError('"value" argument must not be a number')
- }
- if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
- return fromArrayBuffer(that, value, encodingOrOffset, length)
- }
- if (typeof value === 'string') {
- return fromString(that, value, encodingOrOffset)
- }
- return fromObject(that, value)
- }
- /**
- * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
- * if value is a number.
- * Buffer.from(str[, encoding])
- * Buffer.from(array)
- * Buffer.from(buffer)
- * Buffer.from(arrayBuffer[, byteOffset[, length]])
- **/
- Buffer.from = function (value, encodingOrOffset, length) {
- return from(null, value, encodingOrOffset, length)
- }
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- Buffer.prototype.__proto__ = Uint8Array.prototype
- Buffer.__proto__ = Uint8Array
- if (typeof Symbol !== 'undefined' && Symbol.species &&
- Buffer[Symbol.species] === Buffer) {
- // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
- Object.defineProperty(Buffer, Symbol.species, {
- value: null,
- configurable: true
- })
- }
- }
- function assertSize (size) {
- if (typeof size !== 'number') {
- throw new TypeError('"size" argument must be a number')
- } else if (size < 0) {
- throw new RangeError('"size" argument must not be negative')
- }
- }
- function alloc (that, size, fill, encoding) {
- assertSize(size)
- if (size <= 0) {
- return createBuffer(that, size)
- }
- if (fill !== undefined) {
- // Only pay attention to encoding if it's a string. This
- // prevents accidentally sending in a number that would
- // be interpretted as a start offset.
- return typeof encoding === 'string'
- ? createBuffer(that, size).fill(fill, encoding)
- : createBuffer(that, size).fill(fill)
- }
- return createBuffer(that, size)
- }
- /**
- * Creates a new filled Buffer instance.
- * alloc(size[, fill[, encoding]])
- **/
- Buffer.alloc = function (size, fill, encoding) {
- return alloc(null, size, fill, encoding)
- }
- function allocUnsafe (that, size) {
- assertSize(size)
- that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
- if (!Buffer.TYPED_ARRAY_SUPPORT) {
- for (var i = 0; i < size; ++i) {
- that[i] = 0
- }
- }
- return that
- }
- /**
- * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
- * */
- Buffer.allocUnsafe = function (size) {
- return allocUnsafe(null, size)
- }
- /**
- * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
- */
- Buffer.allocUnsafeSlow = function (size) {
- return allocUnsafe(null, size)
- }
- function fromString (that, string, encoding) {
- if (typeof encoding !== 'string' || encoding === '') {
- encoding = 'utf8'
- }
- if (!Buffer.isEncoding(encoding)) {
- throw new TypeError('"encoding" must be a valid string encoding')
- }
- var length = byteLength(string, encoding) | 0
- that = createBuffer(that, length)
- var actual = that.write(string, encoding)
- if (actual !== length) {
- // Writing a hex string, for example, that contains invalid characters will
- // cause everything after the first invalid character to be ignored. (e.g.
- // 'abxxcd' will be treated as 'ab')
- that = that.slice(0, actual)
- }
- return that
- }
- function fromArrayLike (that, array) {
- var length = array.length < 0 ? 0 : checked(array.length) | 0
- that = createBuffer(that, length)
- for (var i = 0; i < length; i += 1) {
- that[i] = array[i] & 255
- }
- return that
- }
- function fromArrayBuffer (that, array, byteOffset, length) {
- array.byteLength // this throws if `array` is not a valid ArrayBuffer
- if (byteOffset < 0 || array.byteLength < byteOffset) {
- throw new RangeError('\'offset\' is out of bounds')
- }
- if (array.byteLength < byteOffset + (length || 0)) {
- throw new RangeError('\'length\' is out of bounds')
- }
- if (byteOffset === undefined && length === undefined) {
- array = new Uint8Array(array)
- } else if (length === undefined) {
- array = new Uint8Array(array, byteOffset)
- } else {
- array = new Uint8Array(array, byteOffset, length)
- }
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- // Return an augmented `Uint8Array` instance, for best performance
- that = array
- that.__proto__ = Buffer.prototype
- } else {
- // Fallback: Return an object instance of the Buffer class
- that = fromArrayLike(that, array)
- }
- return that
- }
- function fromObject (that, obj) {
- if (Buffer.isBuffer(obj)) {
- var len = checked(obj.length) | 0
- that = createBuffer(that, len)
- if (that.length === 0) {
- return that
- }
- obj.copy(that, 0, 0, len)
- return that
- }
- if (obj) {
- if ((typeof ArrayBuffer !== 'undefined' &&
- obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
- if (typeof obj.length !== 'number' || isnan(obj.length)) {
- return createBuffer(that, 0)
- }
- return fromArrayLike(that, obj)
- }
- if (obj.type === 'Buffer' && isArray(obj.data)) {
- return fromArrayLike(that, obj.data)
- }
- }
- throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
- }
- function checked (length) {
- // Note: cannot use `length < kMaxLength()` here because that fails when
- // length is NaN (which is otherwise coerced to zero.)
- if (length >= kMaxLength()) {
- throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
- 'size: 0x' + kMaxLength().toString(16) + ' bytes')
- }
- return length | 0
- }
- function SlowBuffer (length) {
- if (+length != length) { // eslint-disable-line eqeqeq
- length = 0
- }
- return Buffer.alloc(+length)
- }
- Buffer.isBuffer = function isBuffer (b) {
- return !!(b != null && b._isBuffer)
- }
- Buffer.compare = function compare (a, b) {
- if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
- throw new TypeError('Arguments must be Buffers')
- }
- if (a === b) return 0
- var x = a.length
- var y = b.length
- for (var i = 0, len = Math.min(x, y); i < len; ++i) {
- if (a[i] !== b[i]) {
- x = a[i]
- y = b[i]
- break
- }
- }
- if (x < y) return -1
- if (y < x) return 1
- return 0
- }
- Buffer.isEncoding = function isEncoding (encoding) {
- switch (String(encoding).toLowerCase()) {
- case 'hex':
- case 'utf8':
- case 'utf-8':
- case 'ascii':
- case 'latin1':
- case 'binary':
- case 'base64':
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return true
- default:
- return false
- }
- }
- Buffer.concat = function concat (list, length) {
- if (!isArray(list)) {
- throw new TypeError('"list" argument must be an Array of Buffers')
- }
- if (list.length === 0) {
- return Buffer.alloc(0)
- }
- var i
- if (length === undefined) {
- length = 0
- for (i = 0; i < list.length; ++i) {
- length += list[i].length
- }
- }
- var buffer = Buffer.allocUnsafe(length)
- var pos = 0
- for (i = 0; i < list.length; ++i) {
- var buf = list[i]
- if (!Buffer.isBuffer(buf)) {
- throw new TypeError('"list" argument must be an Array of Buffers')
- }
- buf.copy(buffer, pos)
- pos += buf.length
- }
- return buffer
- }
- function byteLength (string, encoding) {
- if (Buffer.isBuffer(string)) {
- return string.length
- }
- if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
- (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
- return string.byteLength
- }
- if (typeof string !== 'string') {
- string = '' + string
- }
- var len = string.length
- if (len === 0) return 0
- // Use a for loop to avoid recursion
- var loweredCase = false
- for (;;) {
- switch (encoding) {
- case 'ascii':
- case 'latin1':
- case 'binary':
- return len
- case 'utf8':
- case 'utf-8':
- case undefined:
- return utf8ToBytes(string).length
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return len * 2
- case 'hex':
- return len >>> 1
- case 'base64':
- return base64ToBytes(string).length
- default:
- if (loweredCase) return utf8ToBytes(string).length // assume utf8
- encoding = ('' + encoding).toLowerCase()
- loweredCase = true
- }
- }
- }
- Buffer.byteLength = byteLength
- function slowToString (encoding, start, end) {
- var loweredCase = false
- // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
- // property of a typed array.
- // This behaves neither like String nor Uint8Array in that we set start/end
- // to their upper/lower bounds if the value passed is out of range.
- // undefined is handled specially as per ECMA-262 6th Edition,
- // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
- if (start === undefined || start < 0) {
- start = 0
- }
- // Return early if start > this.length. Done here to prevent potential uint32
- // coercion fail below.
- if (start > this.length) {
- return ''
- }
- if (end === undefined || end > this.length) {
- end = this.length
- }
- if (end <= 0) {
- return ''
- }
- // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
- end >>>= 0
- start >>>= 0
- if (end <= start) {
- return ''
- }
- if (!encoding) encoding = 'utf8'
- while (true) {
- switch (encoding) {
- case 'hex':
- return hexSlice(this, start, end)
- case 'utf8':
- case 'utf-8':
- return utf8Slice(this, start, end)
- case 'ascii':
- return asciiSlice(this, start, end)
- case 'latin1':
- case 'binary':
- return latin1Slice(this, start, end)
- case 'base64':
- return base64Slice(this, start, end)
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return utf16leSlice(this, start, end)
- default:
- if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
- encoding = (encoding + '').toLowerCase()
- loweredCase = true
- }
- }
- }
- // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
- // Buffer instances.
- Buffer.prototype._isBuffer = true
- function swap (b, n, m) {
- var i = b[n]
- b[n] = b[m]
- b[m] = i
- }
- Buffer.prototype.swap16 = function swap16 () {
- var len = this.length
- if (len % 2 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 16-bits')
- }
- for (var i = 0; i < len; i += 2) {
- swap(this, i, i + 1)
- }
- return this
- }
- Buffer.prototype.swap32 = function swap32 () {
- var len = this.length
- if (len % 4 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 32-bits')
- }
- for (var i = 0; i < len; i += 4) {
- swap(this, i, i + 3)
- swap(this, i + 1, i + 2)
- }
- return this
- }
- Buffer.prototype.swap64 = function swap64 () {
- var len = this.length
- if (len % 8 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 64-bits')
- }
- for (var i = 0; i < len; i += 8) {
- swap(this, i, i + 7)
- swap(this, i + 1, i + 6)
- swap(this, i + 2, i + 5)
- swap(this, i + 3, i + 4)
- }
- return this
- }
- Buffer.prototype.toString = function toString () {
- var length = this.length | 0
- if (length === 0) return ''
- if (arguments.length === 0) return utf8Slice(this, 0, length)
- return slowToString.apply(this, arguments)
- }
- Buffer.prototype.equals = function equals (b) {
- if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
- if (this === b) return true
- return Buffer.compare(this, b) === 0
- }
- Buffer.prototype.inspect = function inspect () {
- var str = ''
- var max = exports.INSPECT_MAX_BYTES
- if (this.length > 0) {
- str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
- if (this.length > max) str += ' ... '
- }
- return '<Buffer ' + str + '>'
- }
- Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
- if (!Buffer.isBuffer(target)) {
- throw new TypeError('Argument must be a Buffer')
- }
- if (start === undefined) {
- start = 0
- }
- if (end === undefined) {
- end = target ? target.length : 0
- }
- if (thisStart === undefined) {
- thisStart = 0
- }
- if (thisEnd === undefined) {
- thisEnd = this.length
- }
- if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
- throw new RangeError('out of range index')
- }
- if (thisStart >= thisEnd && start >= end) {
- return 0
- }
- if (thisStart >= thisEnd) {
- return -1
- }
- if (start >= end) {
- return 1
- }
- start >>>= 0
- end >>>= 0
- thisStart >>>= 0
- thisEnd >>>= 0
- if (this === target) return 0
- var x = thisEnd - thisStart
- var y = end - start
- var len = Math.min(x, y)
- var thisCopy = this.slice(thisStart, thisEnd)
- var targetCopy = target.slice(start, end)
- for (var i = 0; i < len; ++i) {
- if (thisCopy[i] !== targetCopy[i]) {
- x = thisCopy[i]
- y = targetCopy[i]
- break
- }
- }
- if (x < y) return -1
- if (y < x) return 1
- return 0
- }
- // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
- // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
- //
- // Arguments:
- // - buffer - a Buffer to search
- // - val - a string, Buffer, or number
- // - byteOffset - an index into `buffer`; will be clamped to an int32
- // - encoding - an optional encoding, relevant is val is a string
- // - dir - true for indexOf, false for lastIndexOf
- function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
- // Empty buffer means no match
- if (buffer.length === 0) return -1
- // Normalize byteOffset
- if (typeof byteOffset === 'string') {
- encoding = byteOffset
- byteOffset = 0
- } else if (byteOffset > 0x7fffffff) {
- byteOffset = 0x7fffffff
- } else if (byteOffset < -0x80000000) {
- byteOffset = -0x80000000
- }
- byteOffset = +byteOffset // Coerce to Number.
- if (isNaN(byteOffset)) {
- // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
- byteOffset = dir ? 0 : (buffer.length - 1)
- }
- // Normalize byteOffset: negative offsets start from the end of the buffer
- if (byteOffset < 0) byteOffset = buffer.length + byteOffset
- if (byteOffset >= buffer.length) {
- if (dir) return -1
- else byteOffset = buffer.length - 1
- } else if (byteOffset < 0) {
- if (dir) byteOffset = 0
- else return -1
- }
- // Normalize val
- if (typeof val === 'string') {
- val = Buffer.from(val, encoding)
- }
- // Finally, search either indexOf (if dir is true) or lastIndexOf
- if (Buffer.isBuffer(val)) {
- // Special case: looking for empty string/buffer always fails
- if (val.length === 0) {
- return -1
- }
- return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
- } else if (typeof val === 'number') {
- val = val & 0xFF // Search for a byte value [0-255]
- if (Buffer.TYPED_ARRAY_SUPPORT &&
- typeof Uint8Array.prototype.indexOf === 'function') {
- if (dir) {
- return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
- } else {
- return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
- }
- }
- return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
- }
- throw new TypeError('val must be string, number or Buffer')
- }
- function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
- var indexSize = 1
- var arrLength = arr.length
- var valLength = val.length
- if (encoding !== undefined) {
- encoding = String(encoding).toLowerCase()
- if (encoding === 'ucs2' || encoding === 'ucs-2' ||
- encoding === 'utf16le' || encoding === 'utf-16le') {
- if (arr.length < 2 || val.length < 2) {
- return -1
- }
- indexSize = 2
- arrLength /= 2
- valLength /= 2
- byteOffset /= 2
- }
- }
- function read (buf, i) {
- if (indexSize === 1) {
- return buf[i]
- } else {
- return buf.readUInt16BE(i * indexSize)
- }
- }
- var i
- if (dir) {
- var foundIndex = -1
- for (i = byteOffset; i < arrLength; i++) {
- if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
- if (foundIndex === -1) foundIndex = i
- if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
- } else {
- if (foundIndex !== -1) i -= i - foundIndex
- foundIndex = -1
- }
- }
- } else {
- if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
- for (i = byteOffset; i >= 0; i--) {
- var found = true
- for (var j = 0; j < valLength; j++) {
- if (read(arr, i + j) !== read(val, j)) {
- found = false
- break
- }
- }
- if (found) return i
- }
- }
- return -1
- }
- Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
- return this.indexOf(val, byteOffset, encoding) !== -1
- }
- Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
- return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
- }
- Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
- return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
- }
- function hexWrite (buf, string, offset, length) {
- offset = Number(offset) || 0
- var remaining = buf.length - offset
- if (!length) {
- length = remaining
- } else {
- length = Number(length)
- if (length > remaining) {
- length = remaining
- }
- }
- // must be an even number of digits
- var strLen = string.length
- if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
- if (length > strLen / 2) {
- length = strLen / 2
- }
- for (var i = 0; i < length; ++i) {
- var parsed = parseInt(string.substr(i * 2, 2), 16)
- if (isNaN(parsed)) return i
- buf[offset + i] = parsed
- }
- return i
- }
- function utf8Write (buf, string, offset, length) {
- return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
- }
- function asciiWrite (buf, string, offset, length) {
- return blitBuffer(asciiToBytes(string), buf, offset, length)
- }
- function latin1Write (buf, string, offset, length) {
- return asciiWrite(buf, string, offset, length)
- }
- function base64Write (buf, string, offset, length) {
- return blitBuffer(base64ToBytes(string), buf, offset, length)
- }
- function ucs2Write (buf, string, offset, length) {
- return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
- }
- Buffer.prototype.write = function write (string, offset, length, encoding) {
- // Buffer#write(string)
- if (offset === undefined) {
- encoding = 'utf8'
- length = this.length
- offset = 0
- // Buffer#write(string, encoding)
- } else if (length === undefined && typeof offset === 'string') {
- encoding = offset
- length = this.length
- offset = 0
- // Buffer#write(string, offset[, length][, encoding])
- } else if (isFinite(offset)) {
- offset = offset | 0
- if (isFinite(length)) {
- length = length | 0
- if (encoding === undefined) encoding = 'utf8'
- } else {
- encoding = length
- length = undefined
- }
- // legacy write(string, encoding, offset, length) - remove in v0.13
- } else {
- throw new Error(
- 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
- )
- }
- var remaining = this.length - offset
- if (length === undefined || length > remaining) length = remaining
- if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
- throw new RangeError('Attempt to write outside buffer bounds')
- }
- if (!encoding) encoding = 'utf8'
- var loweredCase = false
- for (;;) {
- switch (encoding) {
- case 'hex':
- return hexWrite(this, string, offset, length)
- case 'utf8':
- case 'utf-8':
- return utf8Write(this, string, offset, length)
- case 'ascii':
- return asciiWrite(this, string, offset, length)
- case 'latin1':
- case 'binary':
- return latin1Write(this, string, offset, length)
- case 'base64':
- // Warning: maxLength not taken into account in base64Write
- return base64Write(this, string, offset, length)
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return ucs2Write(this, string, offset, length)
- default:
- if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
- encoding = ('' + encoding).toLowerCase()
- loweredCase = true
- }
- }
- }
- Buffer.prototype.toJSON = function toJSON () {
- return {
- type: 'Buffer',
- data: Array.prototype.slice.call(this._arr || this, 0)
- }
- }
- function base64Slice (buf, start, end) {
- if (start === 0 && end === buf.length) {
- return base64.fromByteArray(buf)
- } else {
- return base64.fromByteArray(buf.slice(start, end))
- }
- }
- function utf8Slice (buf, start, end) {
- end = Math.min(buf.length, end)
- var res = []
- var i = start
- while (i < end) {
- var firstByte = buf[i]
- var codePoint = null
- var bytesPerSequence = (firstByte > 0xEF) ? 4
- : (firstByte > 0xDF) ? 3
- : (firstByte > 0xBF) ? 2
- : 1
- if (i + bytesPerSequence <= end) {
- var secondByte, thirdByte, fourthByte, tempCodePoint
- switch (bytesPerSequence) {
- case 1:
- if (firstByte < 0x80) {
- codePoint = firstByte
- }
- break
- case 2:
- secondByte = buf[i + 1]
- if ((secondByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
- if (tempCodePoint > 0x7F) {
- codePoint = tempCodePoint
- }
- }
- break
- case 3:
- secondByte = buf[i + 1]
- thirdByte = buf[i + 2]
- if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
- if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
- codePoint = tempCodePoint
- }
- }
- break
- case 4:
- secondByte = buf[i + 1]
- thirdByte = buf[i + 2]
- fourthByte = buf[i + 3]
- if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
- if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
- codePoint = tempCodePoint
- }
- }
- }
- }
- if (codePoint === null) {
- // we did not generate a valid codePoint so insert a
- // replacement char (U+FFFD) and advance only 1 byte
- codePoint = 0xFFFD
- bytesPerSequence = 1
- } else if (codePoint > 0xFFFF) {
- // encode to utf16 (surrogate pair dance)
- codePoint -= 0x10000
- res.push(codePoint >>> 10 & 0x3FF | 0xD800)
- codePoint = 0xDC00 | codePoint & 0x3FF
- }
- res.push(codePoint)
- i += bytesPerSequence
- }
- return decodeCodePointsArray(res)
- }
- // Based on http://stackoverflow.com/a/22747272/680742, the browser with
- // the lowest limit is Chrome, with 0x10000 args.
- // We go 1 magnitude less, for safety
- var MAX_ARGUMENTS_LENGTH = 0x1000
- function decodeCodePointsArray (codePoints) {
- var len = codePoints.length
- if (len <= MAX_ARGUMENTS_LENGTH) {
- return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
- }
- // Decode in chunks to avoid "call stack size exceeded".
- var res = ''
- var i = 0
- while (i < len) {
- res += String.fromCharCode.apply(
- String,
- codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
- )
- }
- return res
- }
- function asciiSlice (buf, start, end) {
- var ret = ''
- end = Math.min(buf.length, end)
- for (var i = start; i < end; ++i) {
- ret += String.fromCharCode(buf[i] & 0x7F)
- }
- return ret
- }
- function latin1Slice (buf, start, end) {
- var ret = ''
- end = Math.min(buf.length, end)
- for (var i = start; i < end; ++i) {
- ret += String.fromCharCode(buf[i])
- }
- return ret
- }
- function hexSlice (buf, start, end) {
- var len = buf.length
- if (!start || start < 0) start = 0
- if (!end || end < 0 || end > len) end = len
- var out = ''
- for (var i = start; i < end; ++i) {
- out += toHex(buf[i])
- }
- return out
- }
- function utf16leSlice (buf, start, end) {
- var bytes = buf.slice(start, end)
- var res = ''
- for (var i = 0; i < bytes.length; i += 2) {
- res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
- }
- return res
- }
- Buffer.prototype.slice = function slice (start, end) {
- var len = this.length
- start = ~~start
- end = end === undefined ? len : ~~end
- if (start < 0) {
- start += len
- if (start < 0) start = 0
- } else if (start > len) {
- start = len
- }
- if (end < 0) {
- end += len
- if (end < 0) end = 0
- } else if (end > len) {
- end = len
- }
- if (end < start) end = start
- var newBuf
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- newBuf = this.subarray(start, end)
- newBuf.__proto__ = Buffer.prototype
- } else {
- var sliceLen = end - start
- newBuf = new Buffer(sliceLen, undefined)
- for (var i = 0; i < sliceLen; ++i) {
- newBuf[i] = this[i + start]
- }
- }
- return newBuf
- }
- /*
- * Need to make sure that buffer isn't trying to write out of bounds.
- */
- function checkOffset (offset, ext, length) {
- if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
- if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
- }
- Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
- var val = this[offset]
- var mul = 1
- var i = 0
- while (++i < byteLength && (mul *= 0x100)) {
- val += this[offset + i] * mul
- }
- return val
- }
- Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- checkOffset(offset, byteLength, this.length)
- }
- var val = this[offset + --byteLength]
- var mul = 1
- while (byteLength > 0 && (mul *= 0x100)) {
- val += this[offset + --byteLength] * mul
- }
- return val
- }
- Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 1, this.length)
- return this[offset]
- }
- Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- return this[offset] | (this[offset + 1] << 8)
- }
- Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- return (this[offset] << 8) | this[offset + 1]
- }
- Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return ((this[offset]) |
- (this[offset + 1] << 8) |
- (this[offset + 2] << 16)) +
- (this[offset + 3] * 0x1000000)
- }
- Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return (this[offset] * 0x1000000) +
- ((this[offset + 1] << 16) |
- (this[offset + 2] << 8) |
- this[offset + 3])
- }
- Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
- var val = this[offset]
- var mul = 1
- var i = 0
- while (++i < byteLength && (mul *= 0x100)) {
- val += this[offset + i] * mul
- }
- mul *= 0x80
- if (val >= mul) val -= Math.pow(2, 8 * byteLength)
- return val
- }
- Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
- var i = byteLength
- var mul = 1
- var val = this[offset + --i]
- while (i > 0 && (mul *= 0x100)) {
- val += this[offset + --i] * mul
- }
- mul *= 0x80
- if (val >= mul) val -= Math.pow(2, 8 * byteLength)
- return val
- }
- Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 1, this.length)
- if (!(this[offset] & 0x80)) return (this[offset])
- return ((0xff - this[offset] + 1) * -1)
- }
- Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- var val = this[offset] | (this[offset + 1] << 8)
- return (val & 0x8000) ? val | 0xFFFF0000 : val
- }
- Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- var val = this[offset + 1] | (this[offset] << 8)
- return (val & 0x8000) ? val | 0xFFFF0000 : val
- }
- Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return (this[offset]) |
- (this[offset + 1] << 8) |
- (this[offset + 2] << 16) |
- (this[offset + 3] << 24)
- }
- Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return (this[offset] << 24) |
- (this[offset + 1] << 16) |
- (this[offset + 2] << 8) |
- (this[offset + 3])
- }
- Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return ieee754.read(this, offset, true, 23, 4)
- }
- Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return ieee754.read(this, offset, false, 23, 4)
- }
- Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 8, this.length)
- return ieee754.read(this, offset, true, 52, 8)
- }
- Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 8, this.length)
- return ieee754.read(this, offset, false, 52, 8)
- }
- function checkInt (buf, value, offset, ext, max, min) {
- if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
- if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
- if (offset + ext > buf.length) throw new RangeError('Index out of range')
- }
- Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- var maxBytes = Math.pow(2, 8 * byteLength) - 1
- checkInt(this, value, offset, byteLength, maxBytes, 0)
- }
- var mul = 1
- var i = 0
- this[offset] = value & 0xFF
- while (++i < byteLength && (mul *= 0x100)) {
- this[offset + i] = (value / mul) & 0xFF
- }
- return offset + byteLength
- }
- Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- var maxBytes = Math.pow(2, 8 * byteLength) - 1
- checkInt(this, value, offset, byteLength, maxBytes, 0)
- }
- var i = byteLength - 1
- var mul = 1
- this[offset + i] = value & 0xFF
- while (--i >= 0 && (mul *= 0x100)) {
- this[offset + i] = (value / mul) & 0xFF
- }
- return offset + byteLength
- }
- Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
- if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
- this[offset] = (value & 0xff)
- return offset + 1
- }
- function objectWriteUInt16 (buf, value, offset, littleEndian) {
- if (value < 0) value = 0xffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
- buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
- (littleEndian ? i : 1 - i) * 8
- }
- }
- Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- } else {
- objectWriteUInt16(this, value, offset, true)
- }
- return offset + 2
- }
- Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 8)
- this[offset + 1] = (value & 0xff)
- } else {
- objectWriteUInt16(this, value, offset, false)
- }
- return offset + 2
- }
- function objectWriteUInt32 (buf, value, offset, littleEndian) {
- if (value < 0) value = 0xffffffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
- buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
- }
- }
- Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset + 3] = (value >>> 24)
- this[offset + 2] = (value >>> 16)
- this[offset + 1] = (value >>> 8)
- this[offset] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, true)
- }
- return offset + 4
- }
- Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 24)
- this[offset + 1] = (value >>> 16)
- this[offset + 2] = (value >>> 8)
- this[offset + 3] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, false)
- }
- return offset + 4
- }
- Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) {
- var limit = Math.pow(2, 8 * byteLength - 1)
- checkInt(this, value, offset, byteLength, limit - 1, -limit)
- }
- var i = 0
- var mul = 1
- var sub = 0
- this[offset] = value & 0xFF
- while (++i < byteLength && (mul *= 0x100)) {
- if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
- sub = 1
- }
- this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
- }
- return offset + byteLength
- }
- Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) {
- var limit = Math.pow(2, 8 * byteLength - 1)
- checkInt(this, value, offset, byteLength, limit - 1, -limit)
- }
- var i = byteLength - 1
- var mul = 1
- var sub = 0
- this[offset + i] = value & 0xFF
- while (--i >= 0 && (mul *= 0x100)) {
- if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
- sub = 1
- }
- this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
- }
- return offset + byteLength
- }
- Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
- if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
- if (value < 0) value = 0xff + value + 1
- this[offset] = (value & 0xff)
- return offset + 1
- }
- Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- } else {
- objectWriteUInt16(this, value, offset, true)
- }
- return offset + 2
- }
- Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 8)
- this[offset + 1] = (value & 0xff)
- } else {
- objectWriteUInt16(this, value, offset, false)
- }
- return offset + 2
- }
- Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- this[offset + 2] = (value >>> 16)
- this[offset + 3] = (value >>> 24)
- } else {
- objectWriteUInt32(this, value, offset, true)
- }
- return offset + 4
- }
- Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
- if (value < 0) value = 0xffffffff + value + 1
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 24)
- this[offset + 1] = (value >>> 16)
- this[offset + 2] = (value >>> 8)
- this[offset + 3] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, false)
- }
- return offset + 4
- }
- function checkIEEE754 (buf, value, offset, ext, max, min) {
- if (offset + ext > buf.length) throw new RangeError('Index out of range')
- if (offset < 0) throw new RangeError('Index out of range')
- }
- function writeFloat (buf, value, offset, littleEndian, noAssert) {
- if (!noAssert) {
- checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
- }
- ieee754.write(buf, value, offset, littleEndian, 23, 4)
- return offset + 4
- }
- Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
- return writeFloat(this, value, offset, true, noAssert)
- }
- Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
- return writeFloat(this, value, offset, false, noAssert)
- }
- function writeDouble (buf, value, offset, littleEndian, noAssert) {
- if (!noAssert) {
- checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
- }
- ieee754.write(buf, value, offset, littleEndian, 52, 8)
- return offset + 8
- }
- Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
- return writeDouble(this, value, offset, true, noAssert)
- }
- Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
- return writeDouble(this, value, offset, false, noAssert)
- }
- // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
- Buffer.prototype.copy = function copy (target, targetStart, start, end) {
- if (!start) start = 0
- if (!end && end !== 0) end = this.length
- if (targetStart >= target.length) targetStart = target.length
- if (!targetStart) targetStart = 0
- if (end > 0 && end < start) end = start
- // Copy 0 bytes; we're done
- if (end === start) return 0
- if (target.length === 0 || this.length === 0) return 0
- // Fatal error conditions
- if (targetStart < 0) {
- throw new RangeError('targetStart out of bounds')
- }
- if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
- if (end < 0) throw new RangeError('sourceEnd out of bounds')
- // Are we oob?
- if (end > this.length) end = this.length
- if (target.length - targetStart < end - start) {
- end = target.length - targetStart + start
- }
- var len = end - start
- var i
- if (this === target && start < targetStart && targetStart < end) {
- // descending copy from end
- for (i = len - 1; i >= 0; --i) {
- target[i + targetStart] = this[i + start]
- }
- } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
- // ascending copy from start
- for (i = 0; i < len; ++i) {
- target[i + targetStart] = this[i + start]
- }
- } else {
- Uint8Array.prototype.set.call(
- target,
- this.subarray(start, start + len),
- targetStart
- )
- }
- return len
- }
- // Usage:
- // buffer.fill(number[, offset[, end]])
- // buffer.fill(buffer[, offset[, end]])
- // buffer.fill(string[, offset[, end]][, encoding])
- Buffer.prototype.fill = function fill (val, start, end, encoding) {
- // Handle string cases:
- if (typeof val === 'string') {
- if (typeof start === 'string') {
- encoding = start
- start = 0
- end = this.length
- } else if (typeof end === 'string') {
- encoding = end
- end = this.length
- }
- if (val.length === 1) {
- var code = val.charCodeAt(0)
- if (code < 256) {
- val = code
- }
- }
- if (encoding !== undefined && typeof encoding !== 'string') {
- throw new TypeError('encoding must be a string')
- }
- if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
- throw new TypeError('Unknown encoding: ' + encoding)
- }
- } else if (typeof val === 'number') {
- val = val & 255
- }
- // Invalid ranges are not set to a default, so can range check early.
- if (start < 0 || this.length < start || this.length < end) {
- throw new RangeError('Out of range index')
- }
- if (end <= start) {
- return this
- }
- start = start >>> 0
- end = end === undefined ? this.length : end >>> 0
- if (!val) val = 0
- var i
- if (typeof val === 'number') {
- for (i = start; i < end; ++i) {
- this[i] = val
- }
- } else {
- var bytes = Buffer.isBuffer(val)
- ? val
- : utf8ToBytes(new Buffer(val, encoding).toString())
- var len = bytes.length
- for (i = 0; i < end - start; ++i) {
- this[i + start] = bytes[i % len]
- }
- }
- return this
- }
- // HELPER FUNCTIONS
- // ================
- var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
- function base64clean (str) {
- // Node strips out invalid characters like \n and \t from the string, base64-js does not
- str = stringtrim(str).replace(INVALID_BASE64_RE, '')
- // Node converts strings with length < 2 to ''
- if (str.length < 2) return ''
- // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
- while (str.length % 4 !== 0) {
- str = str + '='
- }
- return str
- }
- function stringtrim (str) {
- if (str.trim) return str.trim()
- return str.replace(/^\s+|\s+$/g, '')
- }
- function toHex (n) {
- if (n < 16) return '0' + n.toString(16)
- return n.toString(16)
- }
- function utf8ToBytes (string, units) {
- units = units || Infinity
- var codePoint
- var length = string.length
- var leadSurrogate = null
- var bytes = []
- for (var i = 0; i < length; ++i) {
- codePoint = string.charCodeAt(i)
- // is surrogate component
- if (codePoint > 0xD7FF && codePoint < 0xE000) {
- // last char was a lead
- if (!leadSurrogate) {
- // no lead yet
- if (codePoint > 0xDBFF) {
- // unexpected trail
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- continue
- } else if (i + 1 === length) {
- // unpaired lead
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- continue
- }
- // valid lead
- leadSurrogate = codePoint
- continue
- }
- // 2 leads in a row
- if (codePoint < 0xDC00) {
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- leadSurrogate = codePoint
- continue
- }
- // valid surrogate pair
- codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
- } else if (leadSurrogate) {
- // valid bmp char, but last char was a lead
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- }
- leadSurrogate = null
- // encode utf8
- if (codePoint < 0x80) {
- if ((units -= 1) < 0) break
- bytes.push(codePoint)
- } else if (codePoint < 0x800) {
- if ((units -= 2) < 0) break
- bytes.push(
- codePoint >> 0x6 | 0xC0,
- codePoint & 0x3F | 0x80
- )
- } else if (codePoint < 0x10000) {
- if ((units -= 3) < 0) break
- bytes.push(
- codePoint >> 0xC | 0xE0,
- codePoint >> 0x6 & 0x3F | 0x80,
- codePoint & 0x3F | 0x80
- )
- } else if (codePoint < 0x110000) {
- if ((units -= 4) < 0) break
- bytes.push(
- codePoint >> 0x12 | 0xF0,
- codePoint >> 0xC & 0x3F | 0x80,
- codePoint >> 0x6 & 0x3F | 0x80,
- codePoint & 0x3F | 0x80
- )
- } else {
- throw new Error('Invalid code point')
- }
- }
- return bytes
- }
- function asciiToBytes (str) {
- var byteArray = []
- for (var i = 0; i < str.length; ++i) {
- // Node's code seems to be doing this and not & 0x7F..
- byteArray.push(str.charCodeAt(i) & 0xFF)
- }
- return byteArray
- }
- function utf16leToBytes (str, units) {
- var c, hi, lo
- var byteArray = []
- for (var i = 0; i < str.length; ++i) {
- if ((units -= 2) < 0) break
- c = str.charCodeAt(i)
- hi = c >> 8
- lo = c % 256
- byteArray.push(lo)
- byteArray.push(hi)
- }
- return byteArray
- }
- function base64ToBytes (str) {
- return base64.toByteArray(base64clean(str))
- }
- function blitBuffer (src, dst, offset, length) {
- for (var i = 0; i < length; ++i) {
- if ((i + offset >= dst.length) || (i >= src.length)) break
- dst[i + offset] = src[i]
- }
- return i
- }
- function isnan (val) {
- return val !== val // eslint-disable-line no-self-compare
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2")))
- /***/ }),
- /***/ "EzfO":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(process) {
- // undocumented cb() API, needed for core, not for public API
- function destroy(err, cb) {
- var _this = this;
- var readableDestroyed = this._readableState && this._readableState.destroyed;
- var writableDestroyed = this._writableState && this._writableState.destroyed;
- if (readableDestroyed || writableDestroyed) {
- if (cb) {
- cb(err);
- } else if (err) {
- if (!this._writableState) {
- process.nextTick(emitErrorNT, this, err);
- } else if (!this._writableState.errorEmitted) {
- this._writableState.errorEmitted = true;
- process.nextTick(emitErrorNT, this, err);
- }
- }
- return this;
- }
- // we set destroyed to true before firing error callbacks in order
- // to make it re-entrance safe in case destroy() is called within callbacks
- if (this._readableState) {
- this._readableState.destroyed = true;
- }
- // if this is a duplex stream mark the writable part as destroyed as well
- if (this._writableState) {
- this._writableState.destroyed = true;
- }
- this._destroy(err || null, function (err) {
- if (!cb && err) {
- if (!_this._writableState) {
- process.nextTick(emitErrorAndCloseNT, _this, err);
- } else if (!_this._writableState.errorEmitted) {
- _this._writableState.errorEmitted = true;
- process.nextTick(emitErrorAndCloseNT, _this, err);
- } else {
- process.nextTick(emitCloseNT, _this);
- }
- } else if (cb) {
- process.nextTick(emitCloseNT, _this);
- cb(err);
- } else {
- process.nextTick(emitCloseNT, _this);
- }
- });
- return this;
- }
- function emitErrorAndCloseNT(self, err) {
- emitErrorNT(self, err);
- emitCloseNT(self);
- }
- function emitCloseNT(self) {
- if (self._writableState && !self._writableState.emitClose) return;
- if (self._readableState && !self._readableState.emitClose) return;
- self.emit('close');
- }
- function undestroy() {
- if (this._readableState) {
- this._readableState.destroyed = false;
- this._readableState.reading = false;
- this._readableState.ended = false;
- this._readableState.endEmitted = false;
- }
- if (this._writableState) {
- this._writableState.destroyed = false;
- this._writableState.ended = false;
- this._writableState.ending = false;
- this._writableState.finalCalled = false;
- this._writableState.prefinished = false;
- this._writableState.finished = false;
- this._writableState.errorEmitted = false;
- }
- }
- function emitErrorNT(self, err) {
- self.emit('error', err);
- }
- function errorOrDestroy(stream, err) {
- // We have tests that rely on errors being emitted
- // in the same tick, so changing this is semver major.
- // For now when you opt-in to autoDestroy we allow
- // the error to be emitted nextTick. In a future
- // semver major update we should change the default to this.
- var rState = stream._readableState;
- var wState = stream._writableState;
- if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);
- }
- module.exports = {
- destroy: destroy,
- undestroy: undestroy,
- errorOrDestroy: errorOrDestroy
- };
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("W2nU")))
- /***/ }),
- /***/ "F11g":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var BN = __webpack_require__("geuY");
- var HmacDRBG = __webpack_require__("HzeT");
- var utils = __webpack_require__("TkWM");
- var curves = __webpack_require__("hQ80");
- var rand = __webpack_require__("txgm");
- var assert = utils.assert;
- var KeyPair = __webpack_require__("yMmo");
- var Signature = __webpack_require__("NMED");
- function EC(options) {
- if (!(this instanceof EC))
- return new EC(options);
- // Shortcut `elliptic.ec(curve-name)`
- if (typeof options === 'string') {
- assert(Object.prototype.hasOwnProperty.call(curves, options),
- 'Unknown curve ' + options);
- options = curves[options];
- }
- // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
- if (options instanceof curves.PresetCurve)
- options = { curve: options };
- this.curve = options.curve.curve;
- this.n = this.curve.n;
- this.nh = this.n.ushrn(1);
- this.g = this.curve.g;
- // Point on curve
- this.g = options.curve.g;
- this.g.precompute(options.curve.n.bitLength() + 1);
- // Hash for function for DRBG
- this.hash = options.hash || options.curve.hash;
- }
- module.exports = EC;
- EC.prototype.keyPair = function keyPair(options) {
- return new KeyPair(this, options);
- };
- EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
- return KeyPair.fromPrivate(this, priv, enc);
- };
- EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
- return KeyPair.fromPublic(this, pub, enc);
- };
- EC.prototype.genKeyPair = function genKeyPair(options) {
- if (!options)
- options = {};
- // Instantiate Hmac_DRBG
- var drbg = new HmacDRBG({
- hash: this.hash,
- pers: options.pers,
- persEnc: options.persEnc || 'utf8',
- entropy: options.entropy || rand(this.hash.hmacStrength),
- entropyEnc: options.entropy && options.entropyEnc || 'utf8',
- nonce: this.n.toArray(),
- });
- var bytes = this.n.byteLength();
- var ns2 = this.n.sub(new BN(2));
- for (;;) {
- var priv = new BN(drbg.generate(bytes));
- if (priv.cmp(ns2) > 0)
- continue;
- priv.iaddn(1);
- return this.keyFromPrivate(priv);
- }
- };
- EC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {
- var delta = msg.byteLength() * 8 - this.n.bitLength();
- if (delta > 0)
- msg = msg.ushrn(delta);
- if (!truncOnly && msg.cmp(this.n) >= 0)
- return msg.sub(this.n);
- else
- return msg;
- };
- EC.prototype.sign = function sign(msg, key, enc, options) {
- if (typeof enc === 'object') {
- options = enc;
- enc = null;
- }
- if (!options)
- options = {};
- key = this.keyFromPrivate(key, enc);
- msg = this._truncateToN(new BN(msg, 16));
- // Zero-extend key to provide enough entropy
- var bytes = this.n.byteLength();
- var bkey = key.getPrivate().toArray('be', bytes);
- // Zero-extend nonce to have the same byte size as N
- var nonce = msg.toArray('be', bytes);
- // Instantiate Hmac_DRBG
- var drbg = new HmacDRBG({
- hash: this.hash,
- entropy: bkey,
- nonce: nonce,
- pers: options.pers,
- persEnc: options.persEnc || 'utf8',
- });
- // Number of bytes to generate
- var ns1 = this.n.sub(new BN(1));
- for (var iter = 0; ; iter++) {
- var k = options.k ?
- options.k(iter) :
- new BN(drbg.generate(this.n.byteLength()));
- k = this._truncateToN(k, true);
- if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)
- continue;
- var kp = this.g.mul(k);
- if (kp.isInfinity())
- continue;
- var kpX = kp.getX();
- var r = kpX.umod(this.n);
- if (r.cmpn(0) === 0)
- continue;
- var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
- s = s.umod(this.n);
- if (s.cmpn(0) === 0)
- continue;
- var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |
- (kpX.cmp(r) !== 0 ? 2 : 0);
- // Use complement of `s`, if it is > `n / 2`
- if (options.canonical && s.cmp(this.nh) > 0) {
- s = this.n.sub(s);
- recoveryParam ^= 1;
- }
- return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
- }
- };
- EC.prototype.verify = function verify(msg, signature, key, enc) {
- msg = this._truncateToN(new BN(msg, 16));
- key = this.keyFromPublic(key, enc);
- signature = new Signature(signature, 'hex');
- // Perform primitive values validation
- var r = signature.r;
- var s = signature.s;
- if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)
- return false;
- if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)
- return false;
- // Validate signature
- var sinv = s.invm(this.n);
- var u1 = sinv.mul(msg).umod(this.n);
- var u2 = sinv.mul(r).umod(this.n);
- var p;
- if (!this.curve._maxwellTrick) {
- p = this.g.mulAdd(u1, key.getPublic(), u2);
- if (p.isInfinity())
- return false;
- return p.getX().umod(this.n).cmp(r) === 0;
- }
- // NOTE: Greg Maxwell's trick, inspired by:
- // https://git.io/vad3K
- p = this.g.jmulAdd(u1, key.getPublic(), u2);
- if (p.isInfinity())
- return false;
- // Compare `p.x` of Jacobian point with `r`,
- // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the
- // inverse of `p.z^2`
- return p.eqXToP(r);
- };
- EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
- assert((3 & j) === j, 'The recovery param is more than two bits');
- signature = new Signature(signature, enc);
- var n = this.n;
- var e = new BN(msg);
- var r = signature.r;
- var s = signature.s;
- // A set LSB signifies that the y-coordinate is odd
- var isYOdd = j & 1;
- var isSecondKey = j >> 1;
- if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)
- throw new Error('Unable to find sencond key candinate');
- // 1.1. Let x = r + jn.
- if (isSecondKey)
- r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
- else
- r = this.curve.pointFromX(r, isYOdd);
- var rInv = signature.r.invm(n);
- var s1 = n.sub(e).mul(rInv).umod(n);
- var s2 = s.mul(rInv).umod(n);
- // 1.6.1 Compute Q = r^-1 (sR - eG)
- // Q = r^-1 (sR + -eG)
- return this.g.mulAdd(s1, r, s2);
- };
- EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
- signature = new Signature(signature, enc);
- if (signature.recoveryParam !== null)
- return signature.recoveryParam;
- for (var i = 0; i < 4; i++) {
- var Qprime;
- try {
- Qprime = this.recoverPubKey(e, signature, i);
- } catch (e) {
- continue;
- }
- if (Qprime.eq(Q))
- return i;
- }
- throw new Error('Unable to find valid recovery factor');
- };
- /***/ }),
- /***/ "FZ+f":
- /***/ (function(module, exports) {
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- // css base code, injected by the css-loader
- module.exports = function(useSourceMap) {
- var list = [];
- // return the list of modules as css string
- list.toString = function toString() {
- return this.map(function (item) {
- var content = cssWithMappingToString(item, useSourceMap);
- if(item[2]) {
- return "@media " + item[2] + "{" + content + "}";
- } else {
- return content;
- }
- }).join("");
- };
- // import a list of modules into the list
- list.i = function(modules, mediaQuery) {
- if(typeof modules === "string")
- modules = [[null, modules, ""]];
- var alreadyImportedModules = {};
- for(var i = 0; i < this.length; i++) {
- var id = this[i][0];
- if(typeof id === "number")
- alreadyImportedModules[id] = true;
- }
- for(i = 0; i < modules.length; i++) {
- var item = modules[i];
- // skip already imported module
- // this implementation is not 100% perfect for weird media query combinations
- // when a module is imported multiple times with different media queries.
- // I hope this will never occur (Hey this way we have smaller bundles)
- if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
- if(mediaQuery && !item[2]) {
- item[2] = mediaQuery;
- } else if(mediaQuery) {
- item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
- }
- list.push(item);
- }
- }
- };
- return list;
- };
- function cssWithMappingToString(item, useSourceMap) {
- var content = item[1] || '';
- var cssMapping = item[3];
- if (!cssMapping) {
- return content;
- }
- if (useSourceMap && typeof btoa === 'function') {
- var sourceMapping = toComment(cssMapping);
- var sourceURLs = cssMapping.sources.map(function (source) {
- return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
- });
- return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
- }
- return [content].join('\n');
- }
- // Adapted from convert-source-map (MIT)
- function toComment(sourceMap) {
- // eslint-disable-next-line no-undef
- var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
- var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
- return '/*# ' + data + ' */';
- }
- /***/ }),
- /***/ "FhoZ":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__package_json__ = __webpack_require__("7YgM");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__package_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__package_json__);
- /**
- * @author Magic.XL
- * @date 2021年11月19日
- * @description 项目基础配置文件
- */
- var production = "production" === 'production'; //false 测试环境 true 生产环境
- /* harmony default export */ __webpack_exports__["a"] = ({
- production: production,
- appVersion: __WEBPACK_IMPORTED_MODULE_0__package_json__["version"],
- showProgressBar: true,
- logoGifLength: 1009174,
- loadingGifLength: 967490,
- appEnterprise: {
- email: 'contact@tsingsee.com',
- aboutUS: 'http://www.tsingsee.com/about/',
- tsingsee: 'http://www.tsingsee.com/',
- copyright: 'TSINGSEE@\u65ED\u5E06\u79D1\u6280'
- },
- iceServers: [{
- urls: "turn:81.68.130.94:19302?transport=udp",
- username: "tsingsee",
- credential: "6df2668750e68cd69d9135ccd25b703c370fe88f20adb3138dcd482cc652b187"
- }]
- });
- /***/ }),
- /***/ "GUE9":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global) {var Buffer = __webpack_require__("X3l8").Buffer
- var checkParameters = __webpack_require__("2JY6")
- var defaultEncoding = __webpack_require__("35aj")
- var sync = __webpack_require__("Zq1s")
- var toBuffer = __webpack_require__("Ml+W")
- var ZERO_BUF
- var subtle = global.crypto && global.crypto.subtle
- var toBrowser = {
- sha: 'SHA-1',
- 'sha-1': 'SHA-1',
- sha1: 'SHA-1',
- sha256: 'SHA-256',
- 'sha-256': 'SHA-256',
- sha384: 'SHA-384',
- 'sha-384': 'SHA-384',
- 'sha-512': 'SHA-512',
- sha512: 'SHA-512'
- }
- var checks = []
- function checkNative (algo) {
- if (global.process && !global.process.browser) {
- return Promise.resolve(false)
- }
- if (!subtle || !subtle.importKey || !subtle.deriveBits) {
- return Promise.resolve(false)
- }
- if (checks[algo] !== undefined) {
- return checks[algo]
- }
- ZERO_BUF = ZERO_BUF || Buffer.alloc(8)
- var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)
- .then(function () {
- return true
- }).catch(function () {
- return false
- })
- checks[algo] = prom
- return prom
- }
- var nextTick
- function getNextTick () {
- if (nextTick) {
- return nextTick
- }
- if (global.process && global.process.nextTick) {
- nextTick = global.process.nextTick
- } else if (global.queueMicrotask) {
- nextTick = global.queueMicrotask
- } else if (global.setImmediate) {
- nextTick = global.setImmediate
- } else {
- nextTick = global.setTimeout
- }
- return nextTick
- }
- function browserPbkdf2 (password, salt, iterations, length, algo) {
- return subtle.importKey(
- 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']
- ).then(function (key) {
- return subtle.deriveBits({
- name: 'PBKDF2',
- salt: salt,
- iterations: iterations,
- hash: {
- name: algo
- }
- }, key, length << 3)
- }).then(function (res) {
- return Buffer.from(res)
- })
- }
- function resolvePromise (promise, callback) {
- promise.then(function (out) {
- getNextTick()(function () {
- callback(null, out)
- })
- }, function (e) {
- getNextTick()(function () {
- callback(e)
- })
- })
- }
- module.exports = function (password, salt, iterations, keylen, digest, callback) {
- if (typeof digest === 'function') {
- callback = digest
- digest = undefined
- }
- digest = digest || 'sha1'
- var algo = toBrowser[digest.toLowerCase()]
- if (!algo || typeof global.Promise !== 'function') {
- getNextTick()(function () {
- var out
- try {
- out = sync(password, salt, iterations, keylen, digest)
- } catch (e) {
- return callback(e)
- }
- callback(null, out)
- })
- return
- }
- checkParameters(iterations, keylen)
- password = toBuffer(password, defaultEncoding, 'Password')
- salt = toBuffer(salt, defaultEncoding, 'Salt')
- if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')
- resolvePromise(checkNative(algo).then(function (resp) {
- if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)
- return sync(password, salt, iterations, keylen, digest)
- }), callback)
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2")))
- /***/ }),
- /***/ "H1q7":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__("H2Pp")
- function getBlock (self) {
- self._prev = self._cipher.encryptBlock(self._prev)
- return self._prev
- }
- exports.encrypt = function (self, chunk) {
- while (self._cache.length < chunk.length) {
- self._cache = Buffer.concat([self._cache, getBlock(self)])
- }
- var pad = self._cache.slice(0, chunk.length)
- self._cache = self._cache.slice(chunk.length)
- return xor(chunk, pad)
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("EuP9").Buffer))
- /***/ }),
- /***/ "H2Pp":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function xor (a, b) {
- var length = Math.min(a.length, b.length)
- var buffer = new Buffer(length)
- for (var i = 0; i < length; ++i) {
- buffer[i] = a[i] ^ b[i]
- }
- return buffer
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("EuP9").Buffer))
- /***/ }),
- /***/ "Hwfm":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(process) {/* eslint-disable node/no-deprecated-api */
- var buffer = __webpack_require__("EuP9")
- var Buffer = buffer.Buffer
- var safer = {}
- var key
- for (key in buffer) {
- if (!buffer.hasOwnProperty(key)) continue
- if (key === 'SlowBuffer' || key === 'Buffer') continue
- safer[key] = buffer[key]
- }
- var Safer = safer.Buffer = {}
- for (key in Buffer) {
- if (!Buffer.hasOwnProperty(key)) continue
- if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue
- Safer[key] = Buffer[key]
- }
- safer.Buffer.prototype = Buffer.prototype
- if (!Safer.from || Safer.from === Uint8Array.from) {
- Safer.from = function (value, encodingOrOffset, length) {
- if (typeof value === 'number') {
- throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value)
- }
- if (value && typeof value.length === 'undefined') {
- throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)
- }
- return Buffer(value, encodingOrOffset, length)
- }
- }
- if (!Safer.alloc) {
- Safer.alloc = function (size, fill, encoding) {
- if (typeof size !== 'number') {
- throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size)
- }
- if (size < 0 || size >= 2 * (1 << 30)) {
- throw new RangeError('The value "' + size + '" is invalid for option "size"')
- }
- var buf = Buffer(size)
- if (!fill || fill.length === 0) {
- buf.fill(0)
- } else if (typeof encoding === 'string') {
- buf.fill(fill, encoding)
- } else {
- buf.fill(fill)
- }
- return buf
- }
- }
- if (!safer.kStringMaxLength) {
- try {
- safer.kStringMaxLength = process.binding('buffer').kStringMaxLength
- } catch (e) {
- // we can't determine kStringMaxLength in environments where process.binding
- // is unsupported, so let's not set it
- }
- }
- if (!safer.constants) {
- safer.constants = {
- MAX_LENGTH: safer.kMaxLength
- }
- if (safer.kStringMaxLength) {
- safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength
- }
- }
- module.exports = safer
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("W2nU")))
- /***/ }),
- /***/ "HzeT":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var hash = __webpack_require__("3PYz");
- var utils = __webpack_require__("tpuU");
- var assert = __webpack_require__("08Lv");
- function HmacDRBG(options) {
- if (!(this instanceof HmacDRBG))
- return new HmacDRBG(options);
- this.hash = options.hash;
- this.predResist = !!options.predResist;
- this.outLen = this.hash.outSize;
- this.minEntropy = options.minEntropy || this.hash.hmacStrength;
- this._reseed = null;
- this.reseedInterval = null;
- this.K = null;
- this.V = null;
- var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');
- var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');
- var pers = utils.toArray(options.pers, options.persEnc || 'hex');
- assert(entropy.length >= (this.minEntropy / 8),
- 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
- this._init(entropy, nonce, pers);
- }
- module.exports = HmacDRBG;
- HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
- var seed = entropy.concat(nonce).concat(pers);
- this.K = new Array(this.outLen / 8);
- this.V = new Array(this.outLen / 8);
- for (var i = 0; i < this.V.length; i++) {
- this.K[i] = 0x00;
- this.V[i] = 0x01;
- }
- this._update(seed);
- this._reseed = 1;
- this.reseedInterval = 0x1000000000000; // 2^48
- };
- HmacDRBG.prototype._hmac = function hmac() {
- return new hash.hmac(this.hash, this.K);
- };
- HmacDRBG.prototype._update = function update(seed) {
- var kmac = this._hmac()
- .update(this.V)
- .update([ 0x00 ]);
- if (seed)
- kmac = kmac.update(seed);
- this.K = kmac.digest();
- this.V = this._hmac().update(this.V).digest();
- if (!seed)
- return;
- this.K = this._hmac()
- .update(this.V)
- .update([ 0x01 ])
- .update(seed)
- .digest();
- this.V = this._hmac().update(this.V).digest();
- };
- HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
- // Optional entropy enc
- if (typeof entropyEnc !== 'string') {
- addEnc = add;
- add = entropyEnc;
- entropyEnc = null;
- }
- entropy = utils.toArray(entropy, entropyEnc);
- add = utils.toArray(add, addEnc);
- assert(entropy.length >= (this.minEntropy / 8),
- 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
- this._update(entropy.concat(add || []));
- this._reseed = 1;
- };
- HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
- if (this._reseed > this.reseedInterval)
- throw new Error('Reseed is required');
- // Optional encoding
- if (typeof enc !== 'string') {
- addEnc = add;
- add = enc;
- enc = null;
- }
- // Optional additional data
- if (add) {
- add = utils.toArray(add, addEnc || 'hex');
- this._update(add);
- }
- var temp = [];
- while (temp.length < len) {
- this.V = this._hmac().update(this.V).digest();
- temp = temp.concat(this.V);
- }
- var res = temp.slice(0, len);
- this._update(add);
- this._reseed++;
- return utils.encode(res, enc);
- };
- /***/ }),
- /***/ "I3G/":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global, setImmediate) {/*!
- * Vue.js v2.5.13
- * (c) 2014-2017 Evan You
- * Released under the MIT License.
- */
- /* */
- var emptyObject = Object.freeze({});
- // these helpers produces better vm code in JS engines due to their
- // explicitness and function inlining
- function isUndef (v) {
- return v === undefined || v === null
- }
- function isDef (v) {
- return v !== undefined && v !== null
- }
- function isTrue (v) {
- return v === true
- }
- function isFalse (v) {
- return v === false
- }
- /**
- * Check if value is primitive
- */
- function isPrimitive (value) {
- return (
- typeof value === 'string' ||
- typeof value === 'number' ||
- // $flow-disable-line
- typeof value === 'symbol' ||
- typeof value === 'boolean'
- )
- }
- /**
- * Quick object check - this is primarily used to tell
- * Objects from primitive values when we know the value
- * is a JSON-compliant type.
- */
- function isObject (obj) {
- return obj !== null && typeof obj === 'object'
- }
- /**
- * Get the raw type string of a value e.g. [object Object]
- */
- var _toString = Object.prototype.toString;
- function toRawType (value) {
- return _toString.call(value).slice(8, -1)
- }
- /**
- * Strict object type check. Only returns true
- * for plain JavaScript objects.
- */
- function isPlainObject (obj) {
- return _toString.call(obj) === '[object Object]'
- }
- function isRegExp (v) {
- return _toString.call(v) === '[object RegExp]'
- }
- /**
- * Check if val is a valid array index.
- */
- function isValidArrayIndex (val) {
- var n = parseFloat(String(val));
- return n >= 0 && Math.floor(n) === n && isFinite(val)
- }
- /**
- * Convert a value to a string that is actually rendered.
- */
- function toString (val) {
- return val == null
- ? ''
- : typeof val === 'object'
- ? JSON.stringify(val, null, 2)
- : String(val)
- }
- /**
- * Convert a input value to a number for persistence.
- * If the conversion fails, return original string.
- */
- function toNumber (val) {
- var n = parseFloat(val);
- return isNaN(n) ? val : n
- }
- /**
- * Make a map and return a function for checking if a key
- * is in that map.
- */
- function makeMap (
- str,
- expectsLowerCase
- ) {
- var map = Object.create(null);
- var list = str.split(',');
- for (var i = 0; i < list.length; i++) {
- map[list[i]] = true;
- }
- return expectsLowerCase
- ? function (val) { return map[val.toLowerCase()]; }
- : function (val) { return map[val]; }
- }
- /**
- * Check if a tag is a built-in tag.
- */
- var isBuiltInTag = makeMap('slot,component', true);
- /**
- * Check if a attribute is a reserved attribute.
- */
- var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
- /**
- * Remove an item from an array
- */
- function remove (arr, item) {
- if (arr.length) {
- var index = arr.indexOf(item);
- if (index > -1) {
- return arr.splice(index, 1)
- }
- }
- }
- /**
- * Check whether the object has the property.
- */
- var hasOwnProperty = Object.prototype.hasOwnProperty;
- function hasOwn (obj, key) {
- return hasOwnProperty.call(obj, key)
- }
- /**
- * Create a cached version of a pure function.
- */
- function cached (fn) {
- var cache = Object.create(null);
- return (function cachedFn (str) {
- var hit = cache[str];
- return hit || (cache[str] = fn(str))
- })
- }
- /**
- * Camelize a hyphen-delimited string.
- */
- var camelizeRE = /-(\w)/g;
- var camelize = cached(function (str) {
- return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
- });
- /**
- * Capitalize a string.
- */
- var capitalize = cached(function (str) {
- return str.charAt(0).toUpperCase() + str.slice(1)
- });
- /**
- * Hyphenate a camelCase string.
- */
- var hyphenateRE = /\B([A-Z])/g;
- var hyphenate = cached(function (str) {
- return str.replace(hyphenateRE, '-$1').toLowerCase()
- });
- /**
- * Simple bind, faster than native
- */
- function bind (fn, ctx) {
- function boundFn (a) {
- var l = arguments.length;
- return l
- ? l > 1
- ? fn.apply(ctx, arguments)
- : fn.call(ctx, a)
- : fn.call(ctx)
- }
- // record original fn length
- boundFn._length = fn.length;
- return boundFn
- }
- /**
- * Convert an Array-like object to a real Array.
- */
- function toArray (list, start) {
- start = start || 0;
- var i = list.length - start;
- var ret = new Array(i);
- while (i--) {
- ret[i] = list[i + start];
- }
- return ret
- }
- /**
- * Mix properties into target object.
- */
- function extend (to, _from) {
- for (var key in _from) {
- to[key] = _from[key];
- }
- return to
- }
- /**
- * Merge an Array of Objects into a single Object.
- */
- function toObject (arr) {
- var res = {};
- for (var i = 0; i < arr.length; i++) {
- if (arr[i]) {
- extend(res, arr[i]);
- }
- }
- return res
- }
- /**
- * Perform no operation.
- * Stubbing args to make Flow happy without leaving useless transpiled code
- * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)
- */
- function noop (a, b, c) {}
- /**
- * Always return false.
- */
- var no = function (a, b, c) { return false; };
- /**
- * Return same value
- */
- var identity = function (_) { return _; };
- /**
- * Generate a static keys string from compiler modules.
- */
- function genStaticKeys (modules) {
- return modules.reduce(function (keys, m) {
- return keys.concat(m.staticKeys || [])
- }, []).join(',')
- }
- /**
- * Check if two values are loosely equal - that is,
- * if they are plain objects, do they have the same shape?
- */
- function looseEqual (a, b) {
- if (a === b) { return true }
- var isObjectA = isObject(a);
- var isObjectB = isObject(b);
- if (isObjectA && isObjectB) {
- try {
- var isArrayA = Array.isArray(a);
- var isArrayB = Array.isArray(b);
- if (isArrayA && isArrayB) {
- return a.length === b.length && a.every(function (e, i) {
- return looseEqual(e, b[i])
- })
- } else if (!isArrayA && !isArrayB) {
- var keysA = Object.keys(a);
- var keysB = Object.keys(b);
- return keysA.length === keysB.length && keysA.every(function (key) {
- return looseEqual(a[key], b[key])
- })
- } else {
- /* istanbul ignore next */
- return false
- }
- } catch (e) {
- /* istanbul ignore next */
- return false
- }
- } else if (!isObjectA && !isObjectB) {
- return String(a) === String(b)
- } else {
- return false
- }
- }
- function looseIndexOf (arr, val) {
- for (var i = 0; i < arr.length; i++) {
- if (looseEqual(arr[i], val)) { return i }
- }
- return -1
- }
- /**
- * Ensure a function is called only once.
- */
- function once (fn) {
- var called = false;
- return function () {
- if (!called) {
- called = true;
- fn.apply(this, arguments);
- }
- }
- }
- var SSR_ATTR = 'data-server-rendered';
- var ASSET_TYPES = [
- 'component',
- 'directive',
- 'filter'
- ];
- var LIFECYCLE_HOOKS = [
- 'beforeCreate',
- 'created',
- 'beforeMount',
- 'mounted',
- 'beforeUpdate',
- 'updated',
- 'beforeDestroy',
- 'destroyed',
- 'activated',
- 'deactivated',
- 'errorCaptured'
- ];
- /* */
- var config = ({
- /**
- * Option merge strategies (used in core/util/options)
- */
- // $flow-disable-line
- optionMergeStrategies: Object.create(null),
- /**
- * Whether to suppress warnings.
- */
- silent: false,
- /**
- * Show production mode tip message on boot?
- */
- productionTip: "production" !== 'production',
- /**
- * Whether to enable devtools
- */
- devtools: "production" !== 'production',
- /**
- * Whether to record perf
- */
- performance: false,
- /**
- * Error handler for watcher errors
- */
- errorHandler: null,
- /**
- * Warn handler for watcher warns
- */
- warnHandler: null,
- /**
- * Ignore certain custom elements
- */
- ignoredElements: [],
- /**
- * Custom user key aliases for v-on
- */
- // $flow-disable-line
- keyCodes: Object.create(null),
- /**
- * Check if a tag is reserved so that it cannot be registered as a
- * component. This is platform-dependent and may be overwritten.
- */
- isReservedTag: no,
- /**
- * Check if an attribute is reserved so that it cannot be used as a component
- * prop. This is platform-dependent and may be overwritten.
- */
- isReservedAttr: no,
- /**
- * Check if a tag is an unknown element.
- * Platform-dependent.
- */
- isUnknownElement: no,
- /**
- * Get the namespace of an element
- */
- getTagNamespace: noop,
- /**
- * Parse the real tag name for the specific platform.
- */
- parsePlatformTagName: identity,
- /**
- * Check if an attribute must be bound using property, e.g. value
- * Platform-dependent.
- */
- mustUseProp: no,
- /**
- * Exposed for legacy reasons
- */
- _lifecycleHooks: LIFECYCLE_HOOKS
- });
- /* */
- /**
- * Check if a string starts with $ or _
- */
- function isReserved (str) {
- var c = (str + '').charCodeAt(0);
- return c === 0x24 || c === 0x5F
- }
- /**
- * Define a property.
- */
- function def (obj, key, val, enumerable) {
- Object.defineProperty(obj, key, {
- value: val,
- enumerable: !!enumerable,
- writable: true,
- configurable: true
- });
- }
- /**
- * Parse simple path.
- */
- var bailRE = /[^\w.$]/;
- function parsePath (path) {
- if (bailRE.test(path)) {
- return
- }
- var segments = path.split('.');
- return function (obj) {
- for (var i = 0; i < segments.length; i++) {
- if (!obj) { return }
- obj = obj[segments[i]];
- }
- return obj
- }
- }
- /* */
- // can we use __proto__?
- var hasProto = '__proto__' in {};
- // Browser environment sniffing
- var inBrowser = typeof window !== 'undefined';
- var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
- var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
- var UA = inBrowser && window.navigator.userAgent.toLowerCase();
- var isIE = UA && /msie|trident/.test(UA);
- var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
- var isEdge = UA && UA.indexOf('edge/') > 0;
- var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
- var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
- var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
- // Firefox has a "watch" function on Object.prototype...
- var nativeWatch = ({}).watch;
- var supportsPassive = false;
- if (inBrowser) {
- try {
- var opts = {};
- Object.defineProperty(opts, 'passive', ({
- get: function get () {
- /* istanbul ignore next */
- supportsPassive = true;
- }
- })); // https://github.com/facebook/flow/issues/285
- window.addEventListener('test-passive', null, opts);
- } catch (e) {}
- }
- // this needs to be lazy-evaled because vue may be required before
- // vue-server-renderer can set VUE_ENV
- var _isServer;
- var isServerRendering = function () {
- if (_isServer === undefined) {
- /* istanbul ignore if */
- if (!inBrowser && typeof global !== 'undefined') {
- // detect presence of vue-server-renderer and avoid
- // Webpack shimming the process
- _isServer = global['process'].env.VUE_ENV === 'server';
- } else {
- _isServer = false;
- }
- }
- return _isServer
- };
- // detect devtools
- var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
- /* istanbul ignore next */
- function isNative (Ctor) {
- return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
- }
- var hasSymbol =
- typeof Symbol !== 'undefined' && isNative(Symbol) &&
- typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
- var _Set;
- /* istanbul ignore if */ // $flow-disable-line
- if (typeof Set !== 'undefined' && isNative(Set)) {
- // use native Set when available.
- _Set = Set;
- } else {
- // a non-standard Set polyfill that only works with primitive keys.
- _Set = (function () {
- function Set () {
- this.set = Object.create(null);
- }
- Set.prototype.has = function has (key) {
- return this.set[key] === true
- };
- Set.prototype.add = function add (key) {
- this.set[key] = true;
- };
- Set.prototype.clear = function clear () {
- this.set = Object.create(null);
- };
- return Set;
- }());
- }
- /* */
- var warn = noop;
- var tip = noop;
- var generateComponentTrace = (noop); // work around flow check
- var formatComponentName = (noop);
- if (false) {
- var hasConsole = typeof console !== 'undefined';
- var classifyRE = /(?:^|[-_])(\w)/g;
- var classify = function (str) { return str
- .replace(classifyRE, function (c) { return c.toUpperCase(); })
- .replace(/[-_]/g, ''); };
- warn = function (msg, vm) {
- var trace = vm ? generateComponentTrace(vm) : '';
- if (config.warnHandler) {
- config.warnHandler.call(null, msg, vm, trace);
- } else if (hasConsole && (!config.silent)) {
- console.error(("[Vue warn]: " + msg + trace));
- }
- };
- tip = function (msg, vm) {
- if (hasConsole && (!config.silent)) {
- console.warn("[Vue tip]: " + msg + (
- vm ? generateComponentTrace(vm) : ''
- ));
- }
- };
- formatComponentName = function (vm, includeFile) {
- if (vm.$root === vm) {
- return '<Root>'
- }
- var options = typeof vm === 'function' && vm.cid != null
- ? vm.options
- : vm._isVue
- ? vm.$options || vm.constructor.options
- : vm || {};
- var name = options.name || options._componentTag;
- var file = options.__file;
- if (!name && file) {
- var match = file.match(/([^/\\]+)\.vue$/);
- name = match && match[1];
- }
- return (
- (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
- (file && includeFile !== false ? (" at " + file) : '')
- )
- };
- var repeat = function (str, n) {
- var res = '';
- while (n) {
- if (n % 2 === 1) { res += str; }
- if (n > 1) { str += str; }
- n >>= 1;
- }
- return res
- };
- generateComponentTrace = function (vm) {
- if (vm._isVue && vm.$parent) {
- var tree = [];
- var currentRecursiveSequence = 0;
- while (vm) {
- if (tree.length > 0) {
- var last = tree[tree.length - 1];
- if (last.constructor === vm.constructor) {
- currentRecursiveSequence++;
- vm = vm.$parent;
- continue
- } else if (currentRecursiveSequence > 0) {
- tree[tree.length - 1] = [last, currentRecursiveSequence];
- currentRecursiveSequence = 0;
- }
- }
- tree.push(vm);
- vm = vm.$parent;
- }
- return '\n\nfound in\n\n' + tree
- .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
- ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
- : formatComponentName(vm))); })
- .join('\n')
- } else {
- return ("\n\n(found in " + (formatComponentName(vm)) + ")")
- }
- };
- }
- /* */
- var uid = 0;
- /**
- * A dep is an observable that can have multiple
- * directives subscribing to it.
- */
- var Dep = function Dep () {
- this.id = uid++;
- this.subs = [];
- };
- Dep.prototype.addSub = function addSub (sub) {
- this.subs.push(sub);
- };
- Dep.prototype.removeSub = function removeSub (sub) {
- remove(this.subs, sub);
- };
- Dep.prototype.depend = function depend () {
- if (Dep.target) {
- Dep.target.addDep(this);
- }
- };
- Dep.prototype.notify = function notify () {
- // stabilize the subscriber list first
- var subs = this.subs.slice();
- for (var i = 0, l = subs.length; i < l; i++) {
- subs[i].update();
- }
- };
- // the current target watcher being evaluated.
- // this is globally unique because there could be only one
- // watcher being evaluated at any time.
- Dep.target = null;
- var targetStack = [];
- function pushTarget (_target) {
- if (Dep.target) { targetStack.push(Dep.target); }
- Dep.target = _target;
- }
- function popTarget () {
- Dep.target = targetStack.pop();
- }
- /* */
- var VNode = function VNode (
- tag,
- data,
- children,
- text,
- elm,
- context,
- componentOptions,
- asyncFactory
- ) {
- this.tag = tag;
- this.data = data;
- this.children = children;
- this.text = text;
- this.elm = elm;
- this.ns = undefined;
- this.context = context;
- this.fnContext = undefined;
- this.fnOptions = undefined;
- this.fnScopeId = undefined;
- this.key = data && data.key;
- this.componentOptions = componentOptions;
- this.componentInstance = undefined;
- this.parent = undefined;
- this.raw = false;
- this.isStatic = false;
- this.isRootInsert = true;
- this.isComment = false;
- this.isCloned = false;
- this.isOnce = false;
- this.asyncFactory = asyncFactory;
- this.asyncMeta = undefined;
- this.isAsyncPlaceholder = false;
- };
- var prototypeAccessors = { child: { configurable: true } };
- // DEPRECATED: alias for componentInstance for backwards compat.
- /* istanbul ignore next */
- prototypeAccessors.child.get = function () {
- return this.componentInstance
- };
- Object.defineProperties( VNode.prototype, prototypeAccessors );
- var createEmptyVNode = function (text) {
- if ( text === void 0 ) text = '';
- var node = new VNode();
- node.text = text;
- node.isComment = true;
- return node
- };
- function createTextVNode (val) {
- return new VNode(undefined, undefined, undefined, String(val))
- }
- // optimized shallow clone
- // used for static nodes and slot nodes because they may be reused across
- // multiple renders, cloning them avoids errors when DOM manipulations rely
- // on their elm reference.
- function cloneVNode (vnode, deep) {
- var componentOptions = vnode.componentOptions;
- var cloned = new VNode(
- vnode.tag,
- vnode.data,
- vnode.children,
- vnode.text,
- vnode.elm,
- vnode.context,
- componentOptions,
- vnode.asyncFactory
- );
- cloned.ns = vnode.ns;
- cloned.isStatic = vnode.isStatic;
- cloned.key = vnode.key;
- cloned.isComment = vnode.isComment;
- cloned.fnContext = vnode.fnContext;
- cloned.fnOptions = vnode.fnOptions;
- cloned.fnScopeId = vnode.fnScopeId;
- cloned.isCloned = true;
- if (deep) {
- if (vnode.children) {
- cloned.children = cloneVNodes(vnode.children, true);
- }
- if (componentOptions && componentOptions.children) {
- componentOptions.children = cloneVNodes(componentOptions.children, true);
- }
- }
- return cloned
- }
- function cloneVNodes (vnodes, deep) {
- var len = vnodes.length;
- var res = new Array(len);
- for (var i = 0; i < len; i++) {
- res[i] = cloneVNode(vnodes[i], deep);
- }
- return res
- }
- /*
- * not type checking this file because flow doesn't play well with
- * dynamically accessing methods on Array prototype
- */
- var arrayProto = Array.prototype;
- var arrayMethods = Object.create(arrayProto);[
- 'push',
- 'pop',
- 'shift',
- 'unshift',
- 'splice',
- 'sort',
- 'reverse'
- ].forEach(function (method) {
- // cache original method
- var original = arrayProto[method];
- def(arrayMethods, method, function mutator () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
- var result = original.apply(this, args);
- var ob = this.__ob__;
- var inserted;
- switch (method) {
- case 'push':
- case 'unshift':
- inserted = args;
- break
- case 'splice':
- inserted = args.slice(2);
- break
- }
- if (inserted) { ob.observeArray(inserted); }
- // notify change
- ob.dep.notify();
- return result
- });
- });
- /* */
- var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
- /**
- * By default, when a reactive property is set, the new value is
- * also converted to become reactive. However when passing down props,
- * we don't want to force conversion because the value may be a nested value
- * under a frozen data structure. Converting it would defeat the optimization.
- */
- var observerState = {
- shouldConvert: true
- };
- /**
- * Observer class that are attached to each observed
- * object. Once attached, the observer converts target
- * object's property keys into getter/setters that
- * collect dependencies and dispatches updates.
- */
- var Observer = function Observer (value) {
- this.value = value;
- this.dep = new Dep();
- this.vmCount = 0;
- def(value, '__ob__', this);
- if (Array.isArray(value)) {
- var augment = hasProto
- ? protoAugment
- : copyAugment;
- augment(value, arrayMethods, arrayKeys);
- this.observeArray(value);
- } else {
- this.walk(value);
- }
- };
- /**
- * Walk through each property and convert them into
- * getter/setters. This method should only be called when
- * value type is Object.
- */
- Observer.prototype.walk = function walk (obj) {
- var keys = Object.keys(obj);
- for (var i = 0; i < keys.length; i++) {
- defineReactive(obj, keys[i], obj[keys[i]]);
- }
- };
- /**
- * Observe a list of Array items.
- */
- Observer.prototype.observeArray = function observeArray (items) {
- for (var i = 0, l = items.length; i < l; i++) {
- observe(items[i]);
- }
- };
- // helpers
- /**
- * Augment an target Object or Array by intercepting
- * the prototype chain using __proto__
- */
- function protoAugment (target, src, keys) {
- /* eslint-disable no-proto */
- target.__proto__ = src;
- /* eslint-enable no-proto */
- }
- /**
- * Augment an target Object or Array by defining
- * hidden properties.
- */
- /* istanbul ignore next */
- function copyAugment (target, src, keys) {
- for (var i = 0, l = keys.length; i < l; i++) {
- var key = keys[i];
- def(target, key, src[key]);
- }
- }
- /**
- * Attempt to create an observer instance for a value,
- * returns the new observer if successfully observed,
- * or the existing observer if the value already has one.
- */
- function observe (value, asRootData) {
- if (!isObject(value) || value instanceof VNode) {
- return
- }
- var ob;
- if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
- ob = value.__ob__;
- } else if (
- observerState.shouldConvert &&
- !isServerRendering() &&
- (Array.isArray(value) || isPlainObject(value)) &&
- Object.isExtensible(value) &&
- !value._isVue
- ) {
- ob = new Observer(value);
- }
- if (asRootData && ob) {
- ob.vmCount++;
- }
- return ob
- }
- /**
- * Define a reactive property on an Object.
- */
- function defineReactive (
- obj,
- key,
- val,
- customSetter,
- shallow
- ) {
- var dep = new Dep();
- var property = Object.getOwnPropertyDescriptor(obj, key);
- if (property && property.configurable === false) {
- return
- }
- // cater for pre-defined getter/setters
- var getter = property && property.get;
- var setter = property && property.set;
- var childOb = !shallow && observe(val);
- Object.defineProperty(obj, key, {
- enumerable: true,
- configurable: true,
- get: function reactiveGetter () {
- var value = getter ? getter.call(obj) : val;
- if (Dep.target) {
- dep.depend();
- if (childOb) {
- childOb.dep.depend();
- if (Array.isArray(value)) {
- dependArray(value);
- }
- }
- }
- return value
- },
- set: function reactiveSetter (newVal) {
- var value = getter ? getter.call(obj) : val;
- /* eslint-disable no-self-compare */
- if (newVal === value || (newVal !== newVal && value !== value)) {
- return
- }
- /* eslint-enable no-self-compare */
- if (false) {
- customSetter();
- }
- if (setter) {
- setter.call(obj, newVal);
- } else {
- val = newVal;
- }
- childOb = !shallow && observe(newVal);
- dep.notify();
- }
- });
- }
- /**
- * Set a property on an object. Adds the new property and
- * triggers change notification if the property doesn't
- * already exist.
- */
- function set (target, key, val) {
- if (Array.isArray(target) && isValidArrayIndex(key)) {
- target.length = Math.max(target.length, key);
- target.splice(key, 1, val);
- return val
- }
- if (key in target && !(key in Object.prototype)) {
- target[key] = val;
- return val
- }
- var ob = (target).__ob__;
- if (target._isVue || (ob && ob.vmCount)) {
- "production" !== 'production' && warn(
- 'Avoid adding reactive properties to a Vue instance or its root $data ' +
- 'at runtime - declare it upfront in the data option.'
- );
- return val
- }
- if (!ob) {
- target[key] = val;
- return val
- }
- defineReactive(ob.value, key, val);
- ob.dep.notify();
- return val
- }
- /**
- * Delete a property and trigger change if necessary.
- */
- function del (target, key) {
- if (Array.isArray(target) && isValidArrayIndex(key)) {
- target.splice(key, 1);
- return
- }
- var ob = (target).__ob__;
- if (target._isVue || (ob && ob.vmCount)) {
- "production" !== 'production' && warn(
- 'Avoid deleting properties on a Vue instance or its root $data ' +
- '- just set it to null.'
- );
- return
- }
- if (!hasOwn(target, key)) {
- return
- }
- delete target[key];
- if (!ob) {
- return
- }
- ob.dep.notify();
- }
- /**
- * Collect dependencies on array elements when the array is touched, since
- * we cannot intercept array element access like property getters.
- */
- function dependArray (value) {
- for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
- e = value[i];
- e && e.__ob__ && e.__ob__.dep.depend();
- if (Array.isArray(e)) {
- dependArray(e);
- }
- }
- }
- /* */
- /**
- * Option overwriting strategies are functions that handle
- * how to merge a parent option value and a child option
- * value into the final value.
- */
- var strats = config.optionMergeStrategies;
- /**
- * Options with restrictions
- */
- if (false) {
- strats.el = strats.propsData = function (parent, child, vm, key) {
- if (!vm) {
- warn(
- "option \"" + key + "\" can only be used during instance " +
- 'creation with the `new` keyword.'
- );
- }
- return defaultStrat(parent, child)
- };
- }
- /**
- * Helper that recursively merges two data objects together.
- */
- function mergeData (to, from) {
- if (!from) { return to }
- var key, toVal, fromVal;
- var keys = Object.keys(from);
- for (var i = 0; i < keys.length; i++) {
- key = keys[i];
- toVal = to[key];
- fromVal = from[key];
- if (!hasOwn(to, key)) {
- set(to, key, fromVal);
- } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {
- mergeData(toVal, fromVal);
- }
- }
- return to
- }
- /**
- * Data
- */
- function mergeDataOrFn (
- parentVal,
- childVal,
- vm
- ) {
- if (!vm) {
- // in a Vue.extend merge, both should be functions
- if (!childVal) {
- return parentVal
- }
- if (!parentVal) {
- return childVal
- }
- // when parentVal & childVal are both present,
- // we need to return a function that returns the
- // merged result of both functions... no need to
- // check if parentVal is a function here because
- // it has to be a function to pass previous merges.
- return function mergedDataFn () {
- return mergeData(
- typeof childVal === 'function' ? childVal.call(this, this) : childVal,
- typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
- )
- }
- } else {
- return function mergedInstanceDataFn () {
- // instance merge
- var instanceData = typeof childVal === 'function'
- ? childVal.call(vm, vm)
- : childVal;
- var defaultData = typeof parentVal === 'function'
- ? parentVal.call(vm, vm)
- : parentVal;
- if (instanceData) {
- return mergeData(instanceData, defaultData)
- } else {
- return defaultData
- }
- }
- }
- }
- strats.data = function (
- parentVal,
- childVal,
- vm
- ) {
- if (!vm) {
- if (childVal && typeof childVal !== 'function') {
- "production" !== 'production' && warn(
- 'The "data" option should be a function ' +
- 'that returns a per-instance value in component ' +
- 'definitions.',
- vm
- );
- return parentVal
- }
- return mergeDataOrFn(parentVal, childVal)
- }
- return mergeDataOrFn(parentVal, childVal, vm)
- };
- /**
- * Hooks and props are merged as arrays.
- */
- function mergeHook (
- parentVal,
- childVal
- ) {
- return childVal
- ? parentVal
- ? parentVal.concat(childVal)
- : Array.isArray(childVal)
- ? childVal
- : [childVal]
- : parentVal
- }
- LIFECYCLE_HOOKS.forEach(function (hook) {
- strats[hook] = mergeHook;
- });
- /**
- * Assets
- *
- * When a vm is present (instance creation), we need to do
- * a three-way merge between constructor options, instance
- * options and parent options.
- */
- function mergeAssets (
- parentVal,
- childVal,
- vm,
- key
- ) {
- var res = Object.create(parentVal || null);
- if (childVal) {
- "production" !== 'production' && assertObjectType(key, childVal, vm);
- return extend(res, childVal)
- } else {
- return res
- }
- }
- ASSET_TYPES.forEach(function (type) {
- strats[type + 's'] = mergeAssets;
- });
- /**
- * Watchers.
- *
- * Watchers hashes should not overwrite one
- * another, so we merge them as arrays.
- */
- strats.watch = function (
- parentVal,
- childVal,
- vm,
- key
- ) {
- // work around Firefox's Object.prototype.watch...
- if (parentVal === nativeWatch) { parentVal = undefined; }
- if (childVal === nativeWatch) { childVal = undefined; }
- /* istanbul ignore if */
- if (!childVal) { return Object.create(parentVal || null) }
- if (false) {
- assertObjectType(key, childVal, vm);
- }
- if (!parentVal) { return childVal }
- var ret = {};
- extend(ret, parentVal);
- for (var key$1 in childVal) {
- var parent = ret[key$1];
- var child = childVal[key$1];
- if (parent && !Array.isArray(parent)) {
- parent = [parent];
- }
- ret[key$1] = parent
- ? parent.concat(child)
- : Array.isArray(child) ? child : [child];
- }
- return ret
- };
- /**
- * Other object hashes.
- */
- strats.props =
- strats.methods =
- strats.inject =
- strats.computed = function (
- parentVal,
- childVal,
- vm,
- key
- ) {
- if (childVal && "production" !== 'production') {
- assertObjectType(key, childVal, vm);
- }
- if (!parentVal) { return childVal }
- var ret = Object.create(null);
- extend(ret, parentVal);
- if (childVal) { extend(ret, childVal); }
- return ret
- };
- strats.provide = mergeDataOrFn;
- /**
- * Default strategy.
- */
- var defaultStrat = function (parentVal, childVal) {
- return childVal === undefined
- ? parentVal
- : childVal
- };
- /**
- * Validate component names
- */
- function checkComponents (options) {
- for (var key in options.components) {
- validateComponentName(key);
- }
- }
- function validateComponentName (name) {
- if (!/^[a-zA-Z][\w-]*$/.test(name)) {
- warn(
- 'Invalid component name: "' + name + '". Component names ' +
- 'can only contain alphanumeric characters and the hyphen, ' +
- 'and must start with a letter.'
- );
- }
- if (isBuiltInTag(name) || config.isReservedTag(name)) {
- warn(
- 'Do not use built-in or reserved HTML elements as component ' +
- 'id: ' + name
- );
- }
- }
- /**
- * Ensure all props option syntax are normalized into the
- * Object-based format.
- */
- function normalizeProps (options, vm) {
- var props = options.props;
- if (!props) { return }
- var res = {};
- var i, val, name;
- if (Array.isArray(props)) {
- i = props.length;
- while (i--) {
- val = props[i];
- if (typeof val === 'string') {
- name = camelize(val);
- res[name] = { type: null };
- } else if (false) {
- warn('props must be strings when using array syntax.');
- }
- }
- } else if (isPlainObject(props)) {
- for (var key in props) {
- val = props[key];
- name = camelize(key);
- res[name] = isPlainObject(val)
- ? val
- : { type: val };
- }
- } else if (false) {
- warn(
- "Invalid value for option \"props\": expected an Array or an Object, " +
- "but got " + (toRawType(props)) + ".",
- vm
- );
- }
- options.props = res;
- }
- /**
- * Normalize all injections into Object-based format
- */
- function normalizeInject (options, vm) {
- var inject = options.inject;
- if (!inject) { return }
- var normalized = options.inject = {};
- if (Array.isArray(inject)) {
- for (var i = 0; i < inject.length; i++) {
- normalized[inject[i]] = { from: inject[i] };
- }
- } else if (isPlainObject(inject)) {
- for (var key in inject) {
- var val = inject[key];
- normalized[key] = isPlainObject(val)
- ? extend({ from: key }, val)
- : { from: val };
- }
- } else if (false) {
- warn(
- "Invalid value for option \"inject\": expected an Array or an Object, " +
- "but got " + (toRawType(inject)) + ".",
- vm
- );
- }
- }
- /**
- * Normalize raw function directives into object format.
- */
- function normalizeDirectives (options) {
- var dirs = options.directives;
- if (dirs) {
- for (var key in dirs) {
- var def = dirs[key];
- if (typeof def === 'function') {
- dirs[key] = { bind: def, update: def };
- }
- }
- }
- }
- function assertObjectType (name, value, vm) {
- if (!isPlainObject(value)) {
- warn(
- "Invalid value for option \"" + name + "\": expected an Object, " +
- "but got " + (toRawType(value)) + ".",
- vm
- );
- }
- }
- /**
- * Merge two option objects into a new one.
- * Core utility used in both instantiation and inheritance.
- */
- function mergeOptions (
- parent,
- child,
- vm
- ) {
- if (false) {
- checkComponents(child);
- }
- if (typeof child === 'function') {
- child = child.options;
- }
- normalizeProps(child, vm);
- normalizeInject(child, vm);
- normalizeDirectives(child);
- var extendsFrom = child.extends;
- if (extendsFrom) {
- parent = mergeOptions(parent, extendsFrom, vm);
- }
- if (child.mixins) {
- for (var i = 0, l = child.mixins.length; i < l; i++) {
- parent = mergeOptions(parent, child.mixins[i], vm);
- }
- }
- var options = {};
- var key;
- for (key in parent) {
- mergeField(key);
- }
- for (key in child) {
- if (!hasOwn(parent, key)) {
- mergeField(key);
- }
- }
- function mergeField (key) {
- var strat = strats[key] || defaultStrat;
- options[key] = strat(parent[key], child[key], vm, key);
- }
- return options
- }
- /**
- * Resolve an asset.
- * This function is used because child instances need access
- * to assets defined in its ancestor chain.
- */
- function resolveAsset (
- options,
- type,
- id,
- warnMissing
- ) {
- /* istanbul ignore if */
- if (typeof id !== 'string') {
- return
- }
- var assets = options[type];
- // check local registration variations first
- if (hasOwn(assets, id)) { return assets[id] }
- var camelizedId = camelize(id);
- if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
- var PascalCaseId = capitalize(camelizedId);
- if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
- // fallback to prototype chain
- var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
- if (false) {
- warn(
- 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
- options
- );
- }
- return res
- }
- /* */
- function validateProp (
- key,
- propOptions,
- propsData,
- vm
- ) {
- var prop = propOptions[key];
- var absent = !hasOwn(propsData, key);
- var value = propsData[key];
- // handle boolean props
- if (isType(Boolean, prop.type)) {
- if (absent && !hasOwn(prop, 'default')) {
- value = false;
- } else if (!isType(String, prop.type) && (value === '' || value === hyphenate(key))) {
- value = true;
- }
- }
- // check default value
- if (value === undefined) {
- value = getPropDefaultValue(vm, prop, key);
- // since the default value is a fresh copy,
- // make sure to observe it.
- var prevShouldConvert = observerState.shouldConvert;
- observerState.shouldConvert = true;
- observe(value);
- observerState.shouldConvert = prevShouldConvert;
- }
- if (
- false
- ) {
- assertProp(prop, key, value, vm, absent);
- }
- return value
- }
- /**
- * Get the default value of a prop.
- */
- function getPropDefaultValue (vm, prop, key) {
- // no default, return undefined
- if (!hasOwn(prop, 'default')) {
- return undefined
- }
- var def = prop.default;
- // warn against non-factory defaults for Object & Array
- if (false) {
- warn(
- 'Invalid default value for prop "' + key + '": ' +
- 'Props with type Object/Array must use a factory function ' +
- 'to return the default value.',
- vm
- );
- }
- // the raw prop value was also undefined from previous render,
- // return previous default value to avoid unnecessary watcher trigger
- if (vm && vm.$options.propsData &&
- vm.$options.propsData[key] === undefined &&
- vm._props[key] !== undefined
- ) {
- return vm._props[key]
- }
- // call factory function for non-Function types
- // a value is Function if its prototype is function even across different execution context
- return typeof def === 'function' && getType(prop.type) !== 'Function'
- ? def.call(vm)
- : def
- }
- /**
- * Assert whether a prop is valid.
- */
- function assertProp (
- prop,
- name,
- value,
- vm,
- absent
- ) {
- if (prop.required && absent) {
- warn(
- 'Missing required prop: "' + name + '"',
- vm
- );
- return
- }
- if (value == null && !prop.required) {
- return
- }
- var type = prop.type;
- var valid = !type || type === true;
- var expectedTypes = [];
- if (type) {
- if (!Array.isArray(type)) {
- type = [type];
- }
- for (var i = 0; i < type.length && !valid; i++) {
- var assertedType = assertType(value, type[i]);
- expectedTypes.push(assertedType.expectedType || '');
- valid = assertedType.valid;
- }
- }
- if (!valid) {
- warn(
- "Invalid prop: type check failed for prop \"" + name + "\"." +
- " Expected " + (expectedTypes.map(capitalize).join(', ')) +
- ", got " + (toRawType(value)) + ".",
- vm
- );
- return
- }
- var validator = prop.validator;
- if (validator) {
- if (!validator(value)) {
- warn(
- 'Invalid prop: custom validator check failed for prop "' + name + '".',
- vm
- );
- }
- }
- }
- var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
- function assertType (value, type) {
- var valid;
- var expectedType = getType(type);
- if (simpleCheckRE.test(expectedType)) {
- var t = typeof value;
- valid = t === expectedType.toLowerCase();
- // for primitive wrapper objects
- if (!valid && t === 'object') {
- valid = value instanceof type;
- }
- } else if (expectedType === 'Object') {
- valid = isPlainObject(value);
- } else if (expectedType === 'Array') {
- valid = Array.isArray(value);
- } else {
- valid = value instanceof type;
- }
- return {
- valid: valid,
- expectedType: expectedType
- }
- }
- /**
- * Use function string name to check built-in types,
- * because a simple equality check will fail when running
- * across different vms / iframes.
- */
- function getType (fn) {
- var match = fn && fn.toString().match(/^\s*function (\w+)/);
- return match ? match[1] : ''
- }
- function isType (type, fn) {
- if (!Array.isArray(fn)) {
- return getType(fn) === getType(type)
- }
- for (var i = 0, len = fn.length; i < len; i++) {
- if (getType(fn[i]) === getType(type)) {
- return true
- }
- }
- /* istanbul ignore next */
- return false
- }
- /* */
- function handleError (err, vm, info) {
- if (vm) {
- var cur = vm;
- while ((cur = cur.$parent)) {
- var hooks = cur.$options.errorCaptured;
- if (hooks) {
- for (var i = 0; i < hooks.length; i++) {
- try {
- var capture = hooks[i].call(cur, err, vm, info) === false;
- if (capture) { return }
- } catch (e) {
- globalHandleError(e, cur, 'errorCaptured hook');
- }
- }
- }
- }
- }
- globalHandleError(err, vm, info);
- }
- function globalHandleError (err, vm, info) {
- if (config.errorHandler) {
- try {
- return config.errorHandler.call(null, err, vm, info)
- } catch (e) {
- logError(e, null, 'config.errorHandler');
- }
- }
- logError(err, vm, info);
- }
- function logError (err, vm, info) {
- if (false) {
- warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
- }
- /* istanbul ignore else */
- if ((inBrowser || inWeex) && typeof console !== 'undefined') {
- console.error(err);
- } else {
- throw err
- }
- }
- /* */
- /* globals MessageChannel */
- var callbacks = [];
- var pending = false;
- function flushCallbacks () {
- pending = false;
- var copies = callbacks.slice(0);
- callbacks.length = 0;
- for (var i = 0; i < copies.length; i++) {
- copies[i]();
- }
- }
- // Here we have async deferring wrappers using both micro and macro tasks.
- // In < 2.4 we used micro tasks everywhere, but there are some scenarios where
- // micro tasks have too high a priority and fires in between supposedly
- // sequential events (e.g. #4521, #6690) or even between bubbling of the same
- // event (#6566). However, using macro tasks everywhere also has subtle problems
- // when state is changed right before repaint (e.g. #6813, out-in transitions).
- // Here we use micro task by default, but expose a way to force macro task when
- // needed (e.g. in event handlers attached by v-on).
- var microTimerFunc;
- var macroTimerFunc;
- var useMacroTask = false;
- // Determine (macro) Task defer implementation.
- // Technically setImmediate should be the ideal choice, but it's only available
- // in IE. The only polyfill that consistently queues the callback after all DOM
- // events triggered in the same loop is by using MessageChannel.
- /* istanbul ignore if */
- if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
- macroTimerFunc = function () {
- setImmediate(flushCallbacks);
- };
- } else if (typeof MessageChannel !== 'undefined' && (
- isNative(MessageChannel) ||
- // PhantomJS
- MessageChannel.toString() === '[object MessageChannelConstructor]'
- )) {
- var channel = new MessageChannel();
- var port = channel.port2;
- channel.port1.onmessage = flushCallbacks;
- macroTimerFunc = function () {
- port.postMessage(1);
- };
- } else {
- /* istanbul ignore next */
- macroTimerFunc = function () {
- setTimeout(flushCallbacks, 0);
- };
- }
- // Determine MicroTask defer implementation.
- /* istanbul ignore next, $flow-disable-line */
- if (typeof Promise !== 'undefined' && isNative(Promise)) {
- var p = Promise.resolve();
- microTimerFunc = function () {
- p.then(flushCallbacks);
- // in problematic UIWebViews, Promise.then doesn't completely break, but
- // it can get stuck in a weird state where callbacks are pushed into the
- // microtask queue but the queue isn't being flushed, until the browser
- // needs to do some other work, e.g. handle a timer. Therefore we can
- // "force" the microtask queue to be flushed by adding an empty timer.
- if (isIOS) { setTimeout(noop); }
- };
- } else {
- // fallback to macro
- microTimerFunc = macroTimerFunc;
- }
- /**
- * Wrap a function so that if any code inside triggers state change,
- * the changes are queued using a Task instead of a MicroTask.
- */
- function withMacroTask (fn) {
- return fn._withTask || (fn._withTask = function () {
- useMacroTask = true;
- var res = fn.apply(null, arguments);
- useMacroTask = false;
- return res
- })
- }
- function nextTick (cb, ctx) {
- var _resolve;
- callbacks.push(function () {
- if (cb) {
- try {
- cb.call(ctx);
- } catch (e) {
- handleError(e, ctx, 'nextTick');
- }
- } else if (_resolve) {
- _resolve(ctx);
- }
- });
- if (!pending) {
- pending = true;
- if (useMacroTask) {
- macroTimerFunc();
- } else {
- microTimerFunc();
- }
- }
- // $flow-disable-line
- if (!cb && typeof Promise !== 'undefined') {
- return new Promise(function (resolve) {
- _resolve = resolve;
- })
- }
- }
- /* */
- var mark;
- var measure;
- if (false) {
- var perf = inBrowser && window.performance;
- /* istanbul ignore if */
- if (
- perf &&
- perf.mark &&
- perf.measure &&
- perf.clearMarks &&
- perf.clearMeasures
- ) {
- mark = function (tag) { return perf.mark(tag); };
- measure = function (name, startTag, endTag) {
- perf.measure(name, startTag, endTag);
- perf.clearMarks(startTag);
- perf.clearMarks(endTag);
- perf.clearMeasures(name);
- };
- }
- }
- /* not type checking this file because flow doesn't play well with Proxy */
- var initProxy;
- if (false) {
- var allowedGlobals = makeMap(
- 'Infinity,undefined,NaN,isFinite,isNaN,' +
- 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
- 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
- 'require' // for Webpack/Browserify
- );
- var warnNonPresent = function (target, key) {
- warn(
- "Property or method \"" + key + "\" is not defined on the instance but " +
- 'referenced during render. Make sure that this property is reactive, ' +
- 'either in the data option, or for class-based components, by ' +
- 'initializing the property. ' +
- 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
- target
- );
- };
- var hasProxy =
- typeof Proxy !== 'undefined' &&
- Proxy.toString().match(/native code/);
- if (hasProxy) {
- var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
- config.keyCodes = new Proxy(config.keyCodes, {
- set: function set (target, key, value) {
- if (isBuiltInModifier(key)) {
- warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
- return false
- } else {
- target[key] = value;
- return true
- }
- }
- });
- }
- var hasHandler = {
- has: function has (target, key) {
- var has = key in target;
- var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';
- if (!has && !isAllowed) {
- warnNonPresent(target, key);
- }
- return has || !isAllowed
- }
- };
- var getHandler = {
- get: function get (target, key) {
- if (typeof key === 'string' && !(key in target)) {
- warnNonPresent(target, key);
- }
- return target[key]
- }
- };
- initProxy = function initProxy (vm) {
- if (hasProxy) {
- // determine which proxy handler to use
- var options = vm.$options;
- var handlers = options.render && options.render._withStripped
- ? getHandler
- : hasHandler;
- vm._renderProxy = new Proxy(vm, handlers);
- } else {
- vm._renderProxy = vm;
- }
- };
- }
- /* */
- var seenObjects = new _Set();
- /**
- * Recursively traverse an object to evoke all converted
- * getters, so that every nested property inside the object
- * is collected as a "deep" dependency.
- */
- function traverse (val) {
- _traverse(val, seenObjects);
- seenObjects.clear();
- }
- function _traverse (val, seen) {
- var i, keys;
- var isA = Array.isArray(val);
- if ((!isA && !isObject(val)) || Object.isFrozen(val)) {
- return
- }
- if (val.__ob__) {
- var depId = val.__ob__.dep.id;
- if (seen.has(depId)) {
- return
- }
- seen.add(depId);
- }
- if (isA) {
- i = val.length;
- while (i--) { _traverse(val[i], seen); }
- } else {
- keys = Object.keys(val);
- i = keys.length;
- while (i--) { _traverse(val[keys[i]], seen); }
- }
- }
- /* */
- var normalizeEvent = cached(function (name) {
- var passive = name.charAt(0) === '&';
- name = passive ? name.slice(1) : name;
- var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
- name = once$$1 ? name.slice(1) : name;
- var capture = name.charAt(0) === '!';
- name = capture ? name.slice(1) : name;
- return {
- name: name,
- once: once$$1,
- capture: capture,
- passive: passive
- }
- });
- function createFnInvoker (fns) {
- function invoker () {
- var arguments$1 = arguments;
- var fns = invoker.fns;
- if (Array.isArray(fns)) {
- var cloned = fns.slice();
- for (var i = 0; i < cloned.length; i++) {
- cloned[i].apply(null, arguments$1);
- }
- } else {
- // return handler return value for single handlers
- return fns.apply(null, arguments)
- }
- }
- invoker.fns = fns;
- return invoker
- }
- function updateListeners (
- on,
- oldOn,
- add,
- remove$$1,
- vm
- ) {
- var name, def, cur, old, event;
- for (name in on) {
- def = cur = on[name];
- old = oldOn[name];
- event = normalizeEvent(name);
- /* istanbul ignore if */
- if (isUndef(cur)) {
- "production" !== 'production' && warn(
- "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
- vm
- );
- } else if (isUndef(old)) {
- if (isUndef(cur.fns)) {
- cur = on[name] = createFnInvoker(cur);
- }
- add(event.name, cur, event.once, event.capture, event.passive, event.params);
- } else if (cur !== old) {
- old.fns = cur;
- on[name] = old;
- }
- }
- for (name in oldOn) {
- if (isUndef(on[name])) {
- event = normalizeEvent(name);
- remove$$1(event.name, oldOn[name], event.capture);
- }
- }
- }
- /* */
- function mergeVNodeHook (def, hookKey, hook) {
- if (def instanceof VNode) {
- def = def.data.hook || (def.data.hook = {});
- }
- var invoker;
- var oldHook = def[hookKey];
- function wrappedHook () {
- hook.apply(this, arguments);
- // important: remove merged hook to ensure it's called only once
- // and prevent memory leak
- remove(invoker.fns, wrappedHook);
- }
- if (isUndef(oldHook)) {
- // no existing hook
- invoker = createFnInvoker([wrappedHook]);
- } else {
- /* istanbul ignore if */
- if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
- // already a merged invoker
- invoker = oldHook;
- invoker.fns.push(wrappedHook);
- } else {
- // existing plain hook
- invoker = createFnInvoker([oldHook, wrappedHook]);
- }
- }
- invoker.merged = true;
- def[hookKey] = invoker;
- }
- /* */
- function extractPropsFromVNodeData (
- data,
- Ctor,
- tag
- ) {
- // we are only extracting raw values here.
- // validation and default values are handled in the child
- // component itself.
- var propOptions = Ctor.options.props;
- if (isUndef(propOptions)) {
- return
- }
- var res = {};
- var attrs = data.attrs;
- var props = data.props;
- if (isDef(attrs) || isDef(props)) {
- for (var key in propOptions) {
- var altKey = hyphenate(key);
- if (false) {
- var keyInLowerCase = key.toLowerCase();
- if (
- key !== keyInLowerCase &&
- attrs && hasOwn(attrs, keyInLowerCase)
- ) {
- tip(
- "Prop \"" + keyInLowerCase + "\" is passed to component " +
- (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
- " \"" + key + "\". " +
- "Note that HTML attributes are case-insensitive and camelCased " +
- "props need to use their kebab-case equivalents when using in-DOM " +
- "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
- );
- }
- }
- checkProp(res, props, key, altKey, true) ||
- checkProp(res, attrs, key, altKey, false);
- }
- }
- return res
- }
- function checkProp (
- res,
- hash,
- key,
- altKey,
- preserve
- ) {
- if (isDef(hash)) {
- if (hasOwn(hash, key)) {
- res[key] = hash[key];
- if (!preserve) {
- delete hash[key];
- }
- return true
- } else if (hasOwn(hash, altKey)) {
- res[key] = hash[altKey];
- if (!preserve) {
- delete hash[altKey];
- }
- return true
- }
- }
- return false
- }
- /* */
- // The template compiler attempts to minimize the need for normalization by
- // statically analyzing the template at compile time.
- //
- // For plain HTML markup, normalization can be completely skipped because the
- // generated render function is guaranteed to return Array<VNode>. There are
- // two cases where extra normalization is needed:
- // 1. When the children contains components - because a functional component
- // may return an Array instead of a single root. In this case, just a simple
- // normalization is needed - if any child is an Array, we flatten the whole
- // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
- // because functional components already normalize their own children.
- function simpleNormalizeChildren (children) {
- for (var i = 0; i < children.length; i++) {
- if (Array.isArray(children[i])) {
- return Array.prototype.concat.apply([], children)
- }
- }
- return children
- }
- // 2. When the children contains constructs that always generated nested Arrays,
- // e.g. <template>, <slot>, v-for, or when the children is provided by user
- // with hand-written render functions / JSX. In such cases a full normalization
- // is needed to cater to all possible types of children values.
- function normalizeChildren (children) {
- return isPrimitive(children)
- ? [createTextVNode(children)]
- : Array.isArray(children)
- ? normalizeArrayChildren(children)
- : undefined
- }
- function isTextNode (node) {
- return isDef(node) && isDef(node.text) && isFalse(node.isComment)
- }
- function normalizeArrayChildren (children, nestedIndex) {
- var res = [];
- var i, c, lastIndex, last;
- for (i = 0; i < children.length; i++) {
- c = children[i];
- if (isUndef(c) || typeof c === 'boolean') { continue }
- lastIndex = res.length - 1;
- last = res[lastIndex];
- // nested
- if (Array.isArray(c)) {
- if (c.length > 0) {
- c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
- // merge adjacent text nodes
- if (isTextNode(c[0]) && isTextNode(last)) {
- res[lastIndex] = createTextVNode(last.text + (c[0]).text);
- c.shift();
- }
- res.push.apply(res, c);
- }
- } else if (isPrimitive(c)) {
- if (isTextNode(last)) {
- // merge adjacent text nodes
- // this is necessary for SSR hydration because text nodes are
- // essentially merged when rendered to HTML strings
- res[lastIndex] = createTextVNode(last.text + c);
- } else if (c !== '') {
- // convert primitive to vnode
- res.push(createTextVNode(c));
- }
- } else {
- if (isTextNode(c) && isTextNode(last)) {
- // merge adjacent text nodes
- res[lastIndex] = createTextVNode(last.text + c.text);
- } else {
- // default key for nested array children (likely generated by v-for)
- if (isTrue(children._isVList) &&
- isDef(c.tag) &&
- isUndef(c.key) &&
- isDef(nestedIndex)) {
- c.key = "__vlist" + nestedIndex + "_" + i + "__";
- }
- res.push(c);
- }
- }
- }
- return res
- }
- /* */
- function ensureCtor (comp, base) {
- if (
- comp.__esModule ||
- (hasSymbol && comp[Symbol.toStringTag] === 'Module')
- ) {
- comp = comp.default;
- }
- return isObject(comp)
- ? base.extend(comp)
- : comp
- }
- function createAsyncPlaceholder (
- factory,
- data,
- context,
- children,
- tag
- ) {
- var node = createEmptyVNode();
- node.asyncFactory = factory;
- node.asyncMeta = { data: data, context: context, children: children, tag: tag };
- return node
- }
- function resolveAsyncComponent (
- factory,
- baseCtor,
- context
- ) {
- if (isTrue(factory.error) && isDef(factory.errorComp)) {
- return factory.errorComp
- }
- if (isDef(factory.resolved)) {
- return factory.resolved
- }
- if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
- return factory.loadingComp
- }
- if (isDef(factory.contexts)) {
- // already pending
- factory.contexts.push(context);
- } else {
- var contexts = factory.contexts = [context];
- var sync = true;
- var forceRender = function () {
- for (var i = 0, l = contexts.length; i < l; i++) {
- contexts[i].$forceUpdate();
- }
- };
- var resolve = once(function (res) {
- // cache resolved
- factory.resolved = ensureCtor(res, baseCtor);
- // invoke callbacks only if this is not a synchronous resolve
- // (async resolves are shimmed as synchronous during SSR)
- if (!sync) {
- forceRender();
- }
- });
- var reject = once(function (reason) {
- "production" !== 'production' && warn(
- "Failed to resolve async component: " + (String(factory)) +
- (reason ? ("\nReason: " + reason) : '')
- );
- if (isDef(factory.errorComp)) {
- factory.error = true;
- forceRender();
- }
- });
- var res = factory(resolve, reject);
- if (isObject(res)) {
- if (typeof res.then === 'function') {
- // () => Promise
- if (isUndef(factory.resolved)) {
- res.then(resolve, reject);
- }
- } else if (isDef(res.component) && typeof res.component.then === 'function') {
- res.component.then(resolve, reject);
- if (isDef(res.error)) {
- factory.errorComp = ensureCtor(res.error, baseCtor);
- }
- if (isDef(res.loading)) {
- factory.loadingComp = ensureCtor(res.loading, baseCtor);
- if (res.delay === 0) {
- factory.loading = true;
- } else {
- setTimeout(function () {
- if (isUndef(factory.resolved) && isUndef(factory.error)) {
- factory.loading = true;
- forceRender();
- }
- }, res.delay || 200);
- }
- }
- if (isDef(res.timeout)) {
- setTimeout(function () {
- if (isUndef(factory.resolved)) {
- reject(
- false
- ? ("timeout (" + (res.timeout) + "ms)")
- : null
- );
- }
- }, res.timeout);
- }
- }
- }
- sync = false;
- // return in case resolved synchronously
- return factory.loading
- ? factory.loadingComp
- : factory.resolved
- }
- }
- /* */
- function isAsyncPlaceholder (node) {
- return node.isComment && node.asyncFactory
- }
- /* */
- function getFirstComponentChild (children) {
- if (Array.isArray(children)) {
- for (var i = 0; i < children.length; i++) {
- var c = children[i];
- if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
- return c
- }
- }
- }
- }
- /* */
- /* */
- function initEvents (vm) {
- vm._events = Object.create(null);
- vm._hasHookEvent = false;
- // init parent attached events
- var listeners = vm.$options._parentListeners;
- if (listeners) {
- updateComponentListeners(vm, listeners);
- }
- }
- var target;
- function add (event, fn, once) {
- if (once) {
- target.$once(event, fn);
- } else {
- target.$on(event, fn);
- }
- }
- function remove$1 (event, fn) {
- target.$off(event, fn);
- }
- function updateComponentListeners (
- vm,
- listeners,
- oldListeners
- ) {
- target = vm;
- updateListeners(listeners, oldListeners || {}, add, remove$1, vm);
- target = undefined;
- }
- function eventsMixin (Vue) {
- var hookRE = /^hook:/;
- Vue.prototype.$on = function (event, fn) {
- var this$1 = this;
- var vm = this;
- if (Array.isArray(event)) {
- for (var i = 0, l = event.length; i < l; i++) {
- this$1.$on(event[i], fn);
- }
- } else {
- (vm._events[event] || (vm._events[event] = [])).push(fn);
- // optimize hook:event cost by using a boolean flag marked at registration
- // instead of a hash lookup
- if (hookRE.test(event)) {
- vm._hasHookEvent = true;
- }
- }
- return vm
- };
- Vue.prototype.$once = function (event, fn) {
- var vm = this;
- function on () {
- vm.$off(event, on);
- fn.apply(vm, arguments);
- }
- on.fn = fn;
- vm.$on(event, on);
- return vm
- };
- Vue.prototype.$off = function (event, fn) {
- var this$1 = this;
- var vm = this;
- // all
- if (!arguments.length) {
- vm._events = Object.create(null);
- return vm
- }
- // array of events
- if (Array.isArray(event)) {
- for (var i = 0, l = event.length; i < l; i++) {
- this$1.$off(event[i], fn);
- }
- return vm
- }
- // specific event
- var cbs = vm._events[event];
- if (!cbs) {
- return vm
- }
- if (!fn) {
- vm._events[event] = null;
- return vm
- }
- if (fn) {
- // specific handler
- var cb;
- var i$1 = cbs.length;
- while (i$1--) {
- cb = cbs[i$1];
- if (cb === fn || cb.fn === fn) {
- cbs.splice(i$1, 1);
- break
- }
- }
- }
- return vm
- };
- Vue.prototype.$emit = function (event) {
- var vm = this;
- if (false) {
- var lowerCaseEvent = event.toLowerCase();
- if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
- tip(
- "Event \"" + lowerCaseEvent + "\" is emitted in component " +
- (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
- "Note that HTML attributes are case-insensitive and you cannot use " +
- "v-on to listen to camelCase events when using in-DOM templates. " +
- "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
- );
- }
- }
- var cbs = vm._events[event];
- if (cbs) {
- cbs = cbs.length > 1 ? toArray(cbs) : cbs;
- var args = toArray(arguments, 1);
- for (var i = 0, l = cbs.length; i < l; i++) {
- try {
- cbs[i].apply(vm, args);
- } catch (e) {
- handleError(e, vm, ("event handler for \"" + event + "\""));
- }
- }
- }
- return vm
- };
- }
- /* */
- /**
- * Runtime helper for resolving raw children VNodes into a slot object.
- */
- function resolveSlots (
- children,
- context
- ) {
- var slots = {};
- if (!children) {
- return slots
- }
- for (var i = 0, l = children.length; i < l; i++) {
- var child = children[i];
- var data = child.data;
- // remove slot attribute if the node is resolved as a Vue slot node
- if (data && data.attrs && data.attrs.slot) {
- delete data.attrs.slot;
- }
- // named slots should only be respected if the vnode was rendered in the
- // same context.
- if ((child.context === context || child.fnContext === context) &&
- data && data.slot != null
- ) {
- var name = data.slot;
- var slot = (slots[name] || (slots[name] = []));
- if (child.tag === 'template') {
- slot.push.apply(slot, child.children || []);
- } else {
- slot.push(child);
- }
- } else {
- (slots.default || (slots.default = [])).push(child);
- }
- }
- // ignore slots that contains only whitespace
- for (var name$1 in slots) {
- if (slots[name$1].every(isWhitespace)) {
- delete slots[name$1];
- }
- }
- return slots
- }
- function isWhitespace (node) {
- return (node.isComment && !node.asyncFactory) || node.text === ' '
- }
- function resolveScopedSlots (
- fns, // see flow/vnode
- res
- ) {
- res = res || {};
- for (var i = 0; i < fns.length; i++) {
- if (Array.isArray(fns[i])) {
- resolveScopedSlots(fns[i], res);
- } else {
- res[fns[i].key] = fns[i].fn;
- }
- }
- return res
- }
- /* */
- var activeInstance = null;
- var isUpdatingChildComponent = false;
- function initLifecycle (vm) {
- var options = vm.$options;
- // locate first non-abstract parent
- var parent = options.parent;
- if (parent && !options.abstract) {
- while (parent.$options.abstract && parent.$parent) {
- parent = parent.$parent;
- }
- parent.$children.push(vm);
- }
- vm.$parent = parent;
- vm.$root = parent ? parent.$root : vm;
- vm.$children = [];
- vm.$refs = {};
- vm._watcher = null;
- vm._inactive = null;
- vm._directInactive = false;
- vm._isMounted = false;
- vm._isDestroyed = false;
- vm._isBeingDestroyed = false;
- }
- function lifecycleMixin (Vue) {
- Vue.prototype._update = function (vnode, hydrating) {
- var vm = this;
- if (vm._isMounted) {
- callHook(vm, 'beforeUpdate');
- }
- var prevEl = vm.$el;
- var prevVnode = vm._vnode;
- var prevActiveInstance = activeInstance;
- activeInstance = vm;
- vm._vnode = vnode;
- // Vue.prototype.__patch__ is injected in entry points
- // based on the rendering backend used.
- if (!prevVnode) {
- // initial render
- vm.$el = vm.__patch__(
- vm.$el, vnode, hydrating, false /* removeOnly */,
- vm.$options._parentElm,
- vm.$options._refElm
- );
- // no need for the ref nodes after initial patch
- // this prevents keeping a detached DOM tree in memory (#5851)
- vm.$options._parentElm = vm.$options._refElm = null;
- } else {
- // updates
- vm.$el = vm.__patch__(prevVnode, vnode);
- }
- activeInstance = prevActiveInstance;
- // update __vue__ reference
- if (prevEl) {
- prevEl.__vue__ = null;
- }
- if (vm.$el) {
- vm.$el.__vue__ = vm;
- }
- // if parent is an HOC, update its $el as well
- if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
- vm.$parent.$el = vm.$el;
- }
- // updated hook is called by the scheduler to ensure that children are
- // updated in a parent's updated hook.
- };
- Vue.prototype.$forceUpdate = function () {
- var vm = this;
- if (vm._watcher) {
- vm._watcher.update();
- }
- };
- Vue.prototype.$destroy = function () {
- var vm = this;
- if (vm._isBeingDestroyed) {
- return
- }
- callHook(vm, 'beforeDestroy');
- vm._isBeingDestroyed = true;
- // remove self from parent
- var parent = vm.$parent;
- if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
- remove(parent.$children, vm);
- }
- // teardown watchers
- if (vm._watcher) {
- vm._watcher.teardown();
- }
- var i = vm._watchers.length;
- while (i--) {
- vm._watchers[i].teardown();
- }
- // remove reference from data ob
- // frozen object may not have observer.
- if (vm._data.__ob__) {
- vm._data.__ob__.vmCount--;
- }
- // call the last hook...
- vm._isDestroyed = true;
- // invoke destroy hooks on current rendered tree
- vm.__patch__(vm._vnode, null);
- // fire destroyed hook
- callHook(vm, 'destroyed');
- // turn off all instance listeners.
- vm.$off();
- // remove __vue__ reference
- if (vm.$el) {
- vm.$el.__vue__ = null;
- }
- // release circular reference (#6759)
- if (vm.$vnode) {
- vm.$vnode.parent = null;
- }
- };
- }
- function mountComponent (
- vm,
- el,
- hydrating
- ) {
- vm.$el = el;
- if (!vm.$options.render) {
- vm.$options.render = createEmptyVNode;
- if (false) {
- /* istanbul ignore if */
- if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
- vm.$options.el || el) {
- warn(
- 'You are using the runtime-only build of Vue where the template ' +
- 'compiler is not available. Either pre-compile the templates into ' +
- 'render functions, or use the compiler-included build.',
- vm
- );
- } else {
- warn(
- 'Failed to mount component: template or render function not defined.',
- vm
- );
- }
- }
- }
- callHook(vm, 'beforeMount');
- var updateComponent;
- /* istanbul ignore if */
- if (false) {
- updateComponent = function () {
- var name = vm._name;
- var id = vm._uid;
- var startTag = "vue-perf-start:" + id;
- var endTag = "vue-perf-end:" + id;
- mark(startTag);
- var vnode = vm._render();
- mark(endTag);
- measure(("vue " + name + " render"), startTag, endTag);
- mark(startTag);
- vm._update(vnode, hydrating);
- mark(endTag);
- measure(("vue " + name + " patch"), startTag, endTag);
- };
- } else {
- updateComponent = function () {
- vm._update(vm._render(), hydrating);
- };
- }
- // we set this to vm._watcher inside the watcher's constructor
- // since the watcher's initial patch may call $forceUpdate (e.g. inside child
- // component's mounted hook), which relies on vm._watcher being already defined
- new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);
- hydrating = false;
- // manually mounted instance, call mounted on self
- // mounted is called for render-created child components in its inserted hook
- if (vm.$vnode == null) {
- vm._isMounted = true;
- callHook(vm, 'mounted');
- }
- return vm
- }
- function updateChildComponent (
- vm,
- propsData,
- listeners,
- parentVnode,
- renderChildren
- ) {
- if (false) {
- isUpdatingChildComponent = true;
- }
- // determine whether component has slot children
- // we need to do this before overwriting $options._renderChildren
- var hasChildren = !!(
- renderChildren || // has new static slots
- vm.$options._renderChildren || // has old static slots
- parentVnode.data.scopedSlots || // has new scoped slots
- vm.$scopedSlots !== emptyObject // has old scoped slots
- );
- vm.$options._parentVnode = parentVnode;
- vm.$vnode = parentVnode; // update vm's placeholder node without re-render
- if (vm._vnode) { // update child tree's parent
- vm._vnode.parent = parentVnode;
- }
- vm.$options._renderChildren = renderChildren;
- // update $attrs and $listeners hash
- // these are also reactive so they may trigger child update if the child
- // used them during render
- vm.$attrs = (parentVnode.data && parentVnode.data.attrs) || emptyObject;
- vm.$listeners = listeners || emptyObject;
- // update props
- if (propsData && vm.$options.props) {
- observerState.shouldConvert = false;
- var props = vm._props;
- var propKeys = vm.$options._propKeys || [];
- for (var i = 0; i < propKeys.length; i++) {
- var key = propKeys[i];
- props[key] = validateProp(key, vm.$options.props, propsData, vm);
- }
- observerState.shouldConvert = true;
- // keep a copy of raw propsData
- vm.$options.propsData = propsData;
- }
- // update listeners
- if (listeners) {
- var oldListeners = vm.$options._parentListeners;
- vm.$options._parentListeners = listeners;
- updateComponentListeners(vm, listeners, oldListeners);
- }
- // resolve slots + force update if has children
- if (hasChildren) {
- vm.$slots = resolveSlots(renderChildren, parentVnode.context);
- vm.$forceUpdate();
- }
- if (false) {
- isUpdatingChildComponent = false;
- }
- }
- function isInInactiveTree (vm) {
- while (vm && (vm = vm.$parent)) {
- if (vm._inactive) { return true }
- }
- return false
- }
- function activateChildComponent (vm, direct) {
- if (direct) {
- vm._directInactive = false;
- if (isInInactiveTree(vm)) {
- return
- }
- } else if (vm._directInactive) {
- return
- }
- if (vm._inactive || vm._inactive === null) {
- vm._inactive = false;
- for (var i = 0; i < vm.$children.length; i++) {
- activateChildComponent(vm.$children[i]);
- }
- callHook(vm, 'activated');
- }
- }
- function deactivateChildComponent (vm, direct) {
- if (direct) {
- vm._directInactive = true;
- if (isInInactiveTree(vm)) {
- return
- }
- }
- if (!vm._inactive) {
- vm._inactive = true;
- for (var i = 0; i < vm.$children.length; i++) {
- deactivateChildComponent(vm.$children[i]);
- }
- callHook(vm, 'deactivated');
- }
- }
- function callHook (vm, hook) {
- var handlers = vm.$options[hook];
- if (handlers) {
- for (var i = 0, j = handlers.length; i < j; i++) {
- try {
- handlers[i].call(vm);
- } catch (e) {
- handleError(e, vm, (hook + " hook"));
- }
- }
- }
- if (vm._hasHookEvent) {
- vm.$emit('hook:' + hook);
- }
- }
- /* */
- var MAX_UPDATE_COUNT = 100;
- var queue = [];
- var activatedChildren = [];
- var has = {};
- var circular = {};
- var waiting = false;
- var flushing = false;
- var index = 0;
- /**
- * Reset the scheduler's state.
- */
- function resetSchedulerState () {
- index = queue.length = activatedChildren.length = 0;
- has = {};
- if (false) {
- circular = {};
- }
- waiting = flushing = false;
- }
- /**
- * Flush both queues and run the watchers.
- */
- function flushSchedulerQueue () {
- flushing = true;
- var watcher, id;
- // Sort queue before flush.
- // This ensures that:
- // 1. Components are updated from parent to child. (because parent is always
- // created before the child)
- // 2. A component's user watchers are run before its render watcher (because
- // user watchers are created before the render watcher)
- // 3. If a component is destroyed during a parent component's watcher run,
- // its watchers can be skipped.
- queue.sort(function (a, b) { return a.id - b.id; });
- // do not cache length because more watchers might be pushed
- // as we run existing watchers
- for (index = 0; index < queue.length; index++) {
- watcher = queue[index];
- id = watcher.id;
- has[id] = null;
- watcher.run();
- // in dev build, check and stop circular updates.
- if (false) {
- circular[id] = (circular[id] || 0) + 1;
- if (circular[id] > MAX_UPDATE_COUNT) {
- warn(
- 'You may have an infinite update loop ' + (
- watcher.user
- ? ("in watcher with expression \"" + (watcher.expression) + "\"")
- : "in a component render function."
- ),
- watcher.vm
- );
- break
- }
- }
- }
- // keep copies of post queues before resetting state
- var activatedQueue = activatedChildren.slice();
- var updatedQueue = queue.slice();
- resetSchedulerState();
- // call component updated and activated hooks
- callActivatedHooks(activatedQueue);
- callUpdatedHooks(updatedQueue);
- // devtool hook
- /* istanbul ignore if */
- if (devtools && config.devtools) {
- devtools.emit('flush');
- }
- }
- function callUpdatedHooks (queue) {
- var i = queue.length;
- while (i--) {
- var watcher = queue[i];
- var vm = watcher.vm;
- if (vm._watcher === watcher && vm._isMounted) {
- callHook(vm, 'updated');
- }
- }
- }
- /**
- * Queue a kept-alive component that was activated during patch.
- * The queue will be processed after the entire tree has been patched.
- */
- function queueActivatedComponent (vm) {
- // setting _inactive to false here so that a render function can
- // rely on checking whether it's in an inactive tree (e.g. router-view)
- vm._inactive = false;
- activatedChildren.push(vm);
- }
- function callActivatedHooks (queue) {
- for (var i = 0; i < queue.length; i++) {
- queue[i]._inactive = true;
- activateChildComponent(queue[i], true /* true */);
- }
- }
- /**
- * Push a watcher into the watcher queue.
- * Jobs with duplicate IDs will be skipped unless it's
- * pushed when the queue is being flushed.
- */
- function queueWatcher (watcher) {
- var id = watcher.id;
- if (has[id] == null) {
- has[id] = true;
- if (!flushing) {
- queue.push(watcher);
- } else {
- // if already flushing, splice the watcher based on its id
- // if already past its id, it will be run next immediately.
- var i = queue.length - 1;
- while (i > index && queue[i].id > watcher.id) {
- i--;
- }
- queue.splice(i + 1, 0, watcher);
- }
- // queue the flush
- if (!waiting) {
- waiting = true;
- nextTick(flushSchedulerQueue);
- }
- }
- }
- /* */
- var uid$2 = 0;
- /**
- * A watcher parses an expression, collects dependencies,
- * and fires callback when the expression value changes.
- * This is used for both the $watch() api and directives.
- */
- var Watcher = function Watcher (
- vm,
- expOrFn,
- cb,
- options,
- isRenderWatcher
- ) {
- this.vm = vm;
- if (isRenderWatcher) {
- vm._watcher = this;
- }
- vm._watchers.push(this);
- // options
- if (options) {
- this.deep = !!options.deep;
- this.user = !!options.user;
- this.lazy = !!options.lazy;
- this.sync = !!options.sync;
- } else {
- this.deep = this.user = this.lazy = this.sync = false;
- }
- this.cb = cb;
- this.id = ++uid$2; // uid for batching
- this.active = true;
- this.dirty = this.lazy; // for lazy watchers
- this.deps = [];
- this.newDeps = [];
- this.depIds = new _Set();
- this.newDepIds = new _Set();
- this.expression = false
- ? expOrFn.toString()
- : '';
- // parse expression for getter
- if (typeof expOrFn === 'function') {
- this.getter = expOrFn;
- } else {
- this.getter = parsePath(expOrFn);
- if (!this.getter) {
- this.getter = function () {};
- "production" !== 'production' && warn(
- "Failed watching path: \"" + expOrFn + "\" " +
- 'Watcher only accepts simple dot-delimited paths. ' +
- 'For full control, use a function instead.',
- vm
- );
- }
- }
- this.value = this.lazy
- ? undefined
- : this.get();
- };
- /**
- * Evaluate the getter, and re-collect dependencies.
- */
- Watcher.prototype.get = function get () {
- pushTarget(this);
- var value;
- var vm = this.vm;
- try {
- value = this.getter.call(vm, vm);
- } catch (e) {
- if (this.user) {
- handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
- } else {
- throw e
- }
- } finally {
- // "touch" every property so they are all tracked as
- // dependencies for deep watching
- if (this.deep) {
- traverse(value);
- }
- popTarget();
- this.cleanupDeps();
- }
- return value
- };
- /**
- * Add a dependency to this directive.
- */
- Watcher.prototype.addDep = function addDep (dep) {
- var id = dep.id;
- if (!this.newDepIds.has(id)) {
- this.newDepIds.add(id);
- this.newDeps.push(dep);
- if (!this.depIds.has(id)) {
- dep.addSub(this);
- }
- }
- };
- /**
- * Clean up for dependency collection.
- */
- Watcher.prototype.cleanupDeps = function cleanupDeps () {
- var this$1 = this;
- var i = this.deps.length;
- while (i--) {
- var dep = this$1.deps[i];
- if (!this$1.newDepIds.has(dep.id)) {
- dep.removeSub(this$1);
- }
- }
- var tmp = this.depIds;
- this.depIds = this.newDepIds;
- this.newDepIds = tmp;
- this.newDepIds.clear();
- tmp = this.deps;
- this.deps = this.newDeps;
- this.newDeps = tmp;
- this.newDeps.length = 0;
- };
- /**
- * Subscriber interface.
- * Will be called when a dependency changes.
- */
- Watcher.prototype.update = function update () {
- /* istanbul ignore else */
- if (this.lazy) {
- this.dirty = true;
- } else if (this.sync) {
- this.run();
- } else {
- queueWatcher(this);
- }
- };
- /**
- * Scheduler job interface.
- * Will be called by the scheduler.
- */
- Watcher.prototype.run = function run () {
- if (this.active) {
- var value = this.get();
- if (
- value !== this.value ||
- // Deep watchers and watchers on Object/Arrays should fire even
- // when the value is the same, because the value may
- // have mutated.
- isObject(value) ||
- this.deep
- ) {
- // set new value
- var oldValue = this.value;
- this.value = value;
- if (this.user) {
- try {
- this.cb.call(this.vm, value, oldValue);
- } catch (e) {
- handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
- }
- } else {
- this.cb.call(this.vm, value, oldValue);
- }
- }
- }
- };
- /**
- * Evaluate the value of the watcher.
- * This only gets called for lazy watchers.
- */
- Watcher.prototype.evaluate = function evaluate () {
- this.value = this.get();
- this.dirty = false;
- };
- /**
- * Depend on all deps collected by this watcher.
- */
- Watcher.prototype.depend = function depend () {
- var this$1 = this;
- var i = this.deps.length;
- while (i--) {
- this$1.deps[i].depend();
- }
- };
- /**
- * Remove self from all dependencies' subscriber list.
- */
- Watcher.prototype.teardown = function teardown () {
- var this$1 = this;
- if (this.active) {
- // remove self from vm's watcher list
- // this is a somewhat expensive operation so we skip it
- // if the vm is being destroyed.
- if (!this.vm._isBeingDestroyed) {
- remove(this.vm._watchers, this);
- }
- var i = this.deps.length;
- while (i--) {
- this$1.deps[i].removeSub(this$1);
- }
- this.active = false;
- }
- };
- /* */
- var sharedPropertyDefinition = {
- enumerable: true,
- configurable: true,
- get: noop,
- set: noop
- };
- function proxy (target, sourceKey, key) {
- sharedPropertyDefinition.get = function proxyGetter () {
- return this[sourceKey][key]
- };
- sharedPropertyDefinition.set = function proxySetter (val) {
- this[sourceKey][key] = val;
- };
- Object.defineProperty(target, key, sharedPropertyDefinition);
- }
- function initState (vm) {
- vm._watchers = [];
- var opts = vm.$options;
- if (opts.props) { initProps(vm, opts.props); }
- if (opts.methods) { initMethods(vm, opts.methods); }
- if (opts.data) {
- initData(vm);
- } else {
- observe(vm._data = {}, true /* asRootData */);
- }
- if (opts.computed) { initComputed(vm, opts.computed); }
- if (opts.watch && opts.watch !== nativeWatch) {
- initWatch(vm, opts.watch);
- }
- }
- function initProps (vm, propsOptions) {
- var propsData = vm.$options.propsData || {};
- var props = vm._props = {};
- // cache prop keys so that future props updates can iterate using Array
- // instead of dynamic object key enumeration.
- var keys = vm.$options._propKeys = [];
- var isRoot = !vm.$parent;
- // root instance props should be converted
- observerState.shouldConvert = isRoot;
- var loop = function ( key ) {
- keys.push(key);
- var value = validateProp(key, propsOptions, propsData, vm);
- /* istanbul ignore else */
- if (false) {
- var hyphenatedKey = hyphenate(key);
- if (isReservedAttribute(hyphenatedKey) ||
- config.isReservedAttr(hyphenatedKey)) {
- warn(
- ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
- vm
- );
- }
- defineReactive(props, key, value, function () {
- if (vm.$parent && !isUpdatingChildComponent) {
- warn(
- "Avoid mutating a prop directly since the value will be " +
- "overwritten whenever the parent component re-renders. " +
- "Instead, use a data or computed property based on the prop's " +
- "value. Prop being mutated: \"" + key + "\"",
- vm
- );
- }
- });
- } else {
- defineReactive(props, key, value);
- }
- // static props are already proxied on the component's prototype
- // during Vue.extend(). We only need to proxy props defined at
- // instantiation here.
- if (!(key in vm)) {
- proxy(vm, "_props", key);
- }
- };
- for (var key in propsOptions) loop( key );
- observerState.shouldConvert = true;
- }
- function initData (vm) {
- var data = vm.$options.data;
- data = vm._data = typeof data === 'function'
- ? getData(data, vm)
- : data || {};
- if (!isPlainObject(data)) {
- data = {};
- "production" !== 'production' && warn(
- 'data functions should return an object:\n' +
- 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
- vm
- );
- }
- // proxy data on instance
- var keys = Object.keys(data);
- var props = vm.$options.props;
- var methods = vm.$options.methods;
- var i = keys.length;
- while (i--) {
- var key = keys[i];
- if (false) {
- if (methods && hasOwn(methods, key)) {
- warn(
- ("Method \"" + key + "\" has already been defined as a data property."),
- vm
- );
- }
- }
- if (props && hasOwn(props, key)) {
- "production" !== 'production' && warn(
- "The data property \"" + key + "\" is already declared as a prop. " +
- "Use prop default value instead.",
- vm
- );
- } else if (!isReserved(key)) {
- proxy(vm, "_data", key);
- }
- }
- // observe data
- observe(data, true /* asRootData */);
- }
- function getData (data, vm) {
- try {
- return data.call(vm, vm)
- } catch (e) {
- handleError(e, vm, "data()");
- return {}
- }
- }
- var computedWatcherOptions = { lazy: true };
- function initComputed (vm, computed) {
- // $flow-disable-line
- var watchers = vm._computedWatchers = Object.create(null);
- // computed properties are just getters during SSR
- var isSSR = isServerRendering();
- for (var key in computed) {
- var userDef = computed[key];
- var getter = typeof userDef === 'function' ? userDef : userDef.get;
- if (false) {
- warn(
- ("Getter is missing for computed property \"" + key + "\"."),
- vm
- );
- }
- if (!isSSR) {
- // create internal watcher for the computed property.
- watchers[key] = new Watcher(
- vm,
- getter || noop,
- noop,
- computedWatcherOptions
- );
- }
- // component-defined computed properties are already defined on the
- // component prototype. We only need to define computed properties defined
- // at instantiation here.
- if (!(key in vm)) {
- defineComputed(vm, key, userDef);
- } else if (false) {
- if (key in vm.$data) {
- warn(("The computed property \"" + key + "\" is already defined in data."), vm);
- } else if (vm.$options.props && key in vm.$options.props) {
- warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
- }
- }
- }
- }
- function defineComputed (
- target,
- key,
- userDef
- ) {
- var shouldCache = !isServerRendering();
- if (typeof userDef === 'function') {
- sharedPropertyDefinition.get = shouldCache
- ? createComputedGetter(key)
- : userDef;
- sharedPropertyDefinition.set = noop;
- } else {
- sharedPropertyDefinition.get = userDef.get
- ? shouldCache && userDef.cache !== false
- ? createComputedGetter(key)
- : userDef.get
- : noop;
- sharedPropertyDefinition.set = userDef.set
- ? userDef.set
- : noop;
- }
- if (false) {
- sharedPropertyDefinition.set = function () {
- warn(
- ("Computed property \"" + key + "\" was assigned to but it has no setter."),
- this
- );
- };
- }
- Object.defineProperty(target, key, sharedPropertyDefinition);
- }
- function createComputedGetter (key) {
- return function computedGetter () {
- var watcher = this._computedWatchers && this._computedWatchers[key];
- if (watcher) {
- if (watcher.dirty) {
- watcher.evaluate();
- }
- if (Dep.target) {
- watcher.depend();
- }
- return watcher.value
- }
- }
- }
- function initMethods (vm, methods) {
- var props = vm.$options.props;
- for (var key in methods) {
- if (false) {
- if (methods[key] == null) {
- warn(
- "Method \"" + key + "\" has an undefined value in the component definition. " +
- "Did you reference the function correctly?",
- vm
- );
- }
- if (props && hasOwn(props, key)) {
- warn(
- ("Method \"" + key + "\" has already been defined as a prop."),
- vm
- );
- }
- if ((key in vm) && isReserved(key)) {
- warn(
- "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
- "Avoid defining component methods that start with _ or $."
- );
- }
- }
- vm[key] = methods[key] == null ? noop : bind(methods[key], vm);
- }
- }
- function initWatch (vm, watch) {
- for (var key in watch) {
- var handler = watch[key];
- if (Array.isArray(handler)) {
- for (var i = 0; i < handler.length; i++) {
- createWatcher(vm, key, handler[i]);
- }
- } else {
- createWatcher(vm, key, handler);
- }
- }
- }
- function createWatcher (
- vm,
- keyOrFn,
- handler,
- options
- ) {
- if (isPlainObject(handler)) {
- options = handler;
- handler = handler.handler;
- }
- if (typeof handler === 'string') {
- handler = vm[handler];
- }
- return vm.$watch(keyOrFn, handler, options)
- }
- function stateMixin (Vue) {
- // flow somehow has problems with directly declared definition object
- // when using Object.defineProperty, so we have to procedurally build up
- // the object here.
- var dataDef = {};
- dataDef.get = function () { return this._data };
- var propsDef = {};
- propsDef.get = function () { return this._props };
- if (false) {
- dataDef.set = function (newData) {
- warn(
- 'Avoid replacing instance root $data. ' +
- 'Use nested data properties instead.',
- this
- );
- };
- propsDef.set = function () {
- warn("$props is readonly.", this);
- };
- }
- Object.defineProperty(Vue.prototype, '$data', dataDef);
- Object.defineProperty(Vue.prototype, '$props', propsDef);
- Vue.prototype.$set = set;
- Vue.prototype.$delete = del;
- Vue.prototype.$watch = function (
- expOrFn,
- cb,
- options
- ) {
- var vm = this;
- if (isPlainObject(cb)) {
- return createWatcher(vm, expOrFn, cb, options)
- }
- options = options || {};
- options.user = true;
- var watcher = new Watcher(vm, expOrFn, cb, options);
- if (options.immediate) {
- cb.call(vm, watcher.value);
- }
- return function unwatchFn () {
- watcher.teardown();
- }
- };
- }
- /* */
- function initProvide (vm) {
- var provide = vm.$options.provide;
- if (provide) {
- vm._provided = typeof provide === 'function'
- ? provide.call(vm)
- : provide;
- }
- }
- function initInjections (vm) {
- var result = resolveInject(vm.$options.inject, vm);
- if (result) {
- observerState.shouldConvert = false;
- Object.keys(result).forEach(function (key) {
- /* istanbul ignore else */
- if (false) {
- defineReactive(vm, key, result[key], function () {
- warn(
- "Avoid mutating an injected value directly since the changes will be " +
- "overwritten whenever the provided component re-renders. " +
- "injection being mutated: \"" + key + "\"",
- vm
- );
- });
- } else {
- defineReactive(vm, key, result[key]);
- }
- });
- observerState.shouldConvert = true;
- }
- }
- function resolveInject (inject, vm) {
- if (inject) {
- // inject is :any because flow is not smart enough to figure out cached
- var result = Object.create(null);
- var keys = hasSymbol
- ? Reflect.ownKeys(inject).filter(function (key) {
- /* istanbul ignore next */
- return Object.getOwnPropertyDescriptor(inject, key).enumerable
- })
- : Object.keys(inject);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- var provideKey = inject[key].from;
- var source = vm;
- while (source) {
- if (source._provided && provideKey in source._provided) {
- result[key] = source._provided[provideKey];
- break
- }
- source = source.$parent;
- }
- if (!source) {
- if ('default' in inject[key]) {
- var provideDefault = inject[key].default;
- result[key] = typeof provideDefault === 'function'
- ? provideDefault.call(vm)
- : provideDefault;
- } else if (false) {
- warn(("Injection \"" + key + "\" not found"), vm);
- }
- }
- }
- return result
- }
- }
- /* */
- /**
- * Runtime helper for rendering v-for lists.
- */
- function renderList (
- val,
- render
- ) {
- var ret, i, l, keys, key;
- if (Array.isArray(val) || typeof val === 'string') {
- ret = new Array(val.length);
- for (i = 0, l = val.length; i < l; i++) {
- ret[i] = render(val[i], i);
- }
- } else if (typeof val === 'number') {
- ret = new Array(val);
- for (i = 0; i < val; i++) {
- ret[i] = render(i + 1, i);
- }
- } else if (isObject(val)) {
- keys = Object.keys(val);
- ret = new Array(keys.length);
- for (i = 0, l = keys.length; i < l; i++) {
- key = keys[i];
- ret[i] = render(val[key], key, i);
- }
- }
- if (isDef(ret)) {
- (ret)._isVList = true;
- }
- return ret
- }
- /* */
- /**
- * Runtime helper for rendering <slot>
- */
- function renderSlot (
- name,
- fallback,
- props,
- bindObject
- ) {
- var scopedSlotFn = this.$scopedSlots[name];
- var nodes;
- if (scopedSlotFn) { // scoped slot
- props = props || {};
- if (bindObject) {
- if (false) {
- warn(
- 'slot v-bind without argument expects an Object',
- this
- );
- }
- props = extend(extend({}, bindObject), props);
- }
- nodes = scopedSlotFn(props) || fallback;
- } else {
- var slotNodes = this.$slots[name];
- // warn duplicate slot usage
- if (slotNodes) {
- if (false) {
- warn(
- "Duplicate presence of slot \"" + name + "\" found in the same render tree " +
- "- this will likely cause render errors.",
- this
- );
- }
- slotNodes._rendered = true;
- }
- nodes = slotNodes || fallback;
- }
- var target = props && props.slot;
- if (target) {
- return this.$createElement('template', { slot: target }, nodes)
- } else {
- return nodes
- }
- }
- /* */
- /**
- * Runtime helper for resolving filters
- */
- function resolveFilter (id) {
- return resolveAsset(this.$options, 'filters', id, true) || identity
- }
- /* */
- /**
- * Runtime helper for checking keyCodes from config.
- * exposed as Vue.prototype._k
- * passing in eventKeyName as last argument separately for backwards compat
- */
- function checkKeyCodes (
- eventKeyCode,
- key,
- builtInAlias,
- eventKeyName
- ) {
- var keyCodes = config.keyCodes[key] || builtInAlias;
- if (keyCodes) {
- if (Array.isArray(keyCodes)) {
- return keyCodes.indexOf(eventKeyCode) === -1
- } else {
- return keyCodes !== eventKeyCode
- }
- } else if (eventKeyName) {
- return hyphenate(eventKeyName) !== key
- }
- }
- /* */
- /**
- * Runtime helper for merging v-bind="object" into a VNode's data.
- */
- function bindObjectProps (
- data,
- tag,
- value,
- asProp,
- isSync
- ) {
- if (value) {
- if (!isObject(value)) {
- "production" !== 'production' && warn(
- 'v-bind without argument expects an Object or Array value',
- this
- );
- } else {
- if (Array.isArray(value)) {
- value = toObject(value);
- }
- var hash;
- var loop = function ( key ) {
- if (
- key === 'class' ||
- key === 'style' ||
- isReservedAttribute(key)
- ) {
- hash = data;
- } else {
- var type = data.attrs && data.attrs.type;
- hash = asProp || config.mustUseProp(tag, type, key)
- ? data.domProps || (data.domProps = {})
- : data.attrs || (data.attrs = {});
- }
- if (!(key in hash)) {
- hash[key] = value[key];
- if (isSync) {
- var on = data.on || (data.on = {});
- on[("update:" + key)] = function ($event) {
- value[key] = $event;
- };
- }
- }
- };
- for (var key in value) loop( key );
- }
- }
- return data
- }
- /* */
- /**
- * Runtime helper for rendering static trees.
- */
- function renderStatic (
- index,
- isInFor
- ) {
- var cached = this._staticTrees || (this._staticTrees = []);
- var tree = cached[index];
- // if has already-rendered static tree and not inside v-for,
- // we can reuse the same tree by doing a shallow clone.
- if (tree && !isInFor) {
- return Array.isArray(tree)
- ? cloneVNodes(tree)
- : cloneVNode(tree)
- }
- // otherwise, render a fresh tree.
- tree = cached[index] = this.$options.staticRenderFns[index].call(
- this._renderProxy,
- null,
- this // for render fns generated for functional component templates
- );
- markStatic(tree, ("__static__" + index), false);
- return tree
- }
- /**
- * Runtime helper for v-once.
- * Effectively it means marking the node as static with a unique key.
- */
- function markOnce (
- tree,
- index,
- key
- ) {
- markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
- return tree
- }
- function markStatic (
- tree,
- key,
- isOnce
- ) {
- if (Array.isArray(tree)) {
- for (var i = 0; i < tree.length; i++) {
- if (tree[i] && typeof tree[i] !== 'string') {
- markStaticNode(tree[i], (key + "_" + i), isOnce);
- }
- }
- } else {
- markStaticNode(tree, key, isOnce);
- }
- }
- function markStaticNode (node, key, isOnce) {
- node.isStatic = true;
- node.key = key;
- node.isOnce = isOnce;
- }
- /* */
- function bindObjectListeners (data, value) {
- if (value) {
- if (!isPlainObject(value)) {
- "production" !== 'production' && warn(
- 'v-on without argument expects an Object value',
- this
- );
- } else {
- var on = data.on = data.on ? extend({}, data.on) : {};
- for (var key in value) {
- var existing = on[key];
- var ours = value[key];
- on[key] = existing ? [].concat(existing, ours) : ours;
- }
- }
- }
- return data
- }
- /* */
- function installRenderHelpers (target) {
- target._o = markOnce;
- target._n = toNumber;
- target._s = toString;
- target._l = renderList;
- target._t = renderSlot;
- target._q = looseEqual;
- target._i = looseIndexOf;
- target._m = renderStatic;
- target._f = resolveFilter;
- target._k = checkKeyCodes;
- target._b = bindObjectProps;
- target._v = createTextVNode;
- target._e = createEmptyVNode;
- target._u = resolveScopedSlots;
- target._g = bindObjectListeners;
- }
- /* */
- function FunctionalRenderContext (
- data,
- props,
- children,
- parent,
- Ctor
- ) {
- var options = Ctor.options;
- this.data = data;
- this.props = props;
- this.children = children;
- this.parent = parent;
- this.listeners = data.on || emptyObject;
- this.injections = resolveInject(options.inject, parent);
- this.slots = function () { return resolveSlots(children, parent); };
- // ensure the createElement function in functional components
- // gets a unique context - this is necessary for correct named slot check
- var contextVm = Object.create(parent);
- var isCompiled = isTrue(options._compiled);
- var needNormalization = !isCompiled;
- // support for compiled functional template
- if (isCompiled) {
- // exposing $options for renderStatic()
- this.$options = options;
- // pre-resolve slots for renderSlot()
- this.$slots = this.slots();
- this.$scopedSlots = data.scopedSlots || emptyObject;
- }
- if (options._scopeId) {
- this._c = function (a, b, c, d) {
- var vnode = createElement(contextVm, a, b, c, d, needNormalization);
- if (vnode) {
- vnode.fnScopeId = options._scopeId;
- vnode.fnContext = parent;
- }
- return vnode
- };
- } else {
- this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
- }
- }
- installRenderHelpers(FunctionalRenderContext.prototype);
- function createFunctionalComponent (
- Ctor,
- propsData,
- data,
- contextVm,
- children
- ) {
- var options = Ctor.options;
- var props = {};
- var propOptions = options.props;
- if (isDef(propOptions)) {
- for (var key in propOptions) {
- props[key] = validateProp(key, propOptions, propsData || emptyObject);
- }
- } else {
- if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
- if (isDef(data.props)) { mergeProps(props, data.props); }
- }
- var renderContext = new FunctionalRenderContext(
- data,
- props,
- children,
- contextVm,
- Ctor
- );
- var vnode = options.render.call(null, renderContext._c, renderContext);
- if (vnode instanceof VNode) {
- vnode.fnContext = contextVm;
- vnode.fnOptions = options;
- if (data.slot) {
- (vnode.data || (vnode.data = {})).slot = data.slot;
- }
- }
- return vnode
- }
- function mergeProps (to, from) {
- for (var key in from) {
- to[camelize(key)] = from[key];
- }
- }
- /* */
- // Register the component hook to weex native render engine.
- // The hook will be triggered by native, not javascript.
- // Updates the state of the component to weex native render engine.
- /* */
- // https://github.com/Hanks10100/weex-native-directive/tree/master/component
- // listening on native callback
- /* */
- /* */
- // hooks to be invoked on component VNodes during patch
- var componentVNodeHooks = {
- init: function init (
- vnode,
- hydrating,
- parentElm,
- refElm
- ) {
- if (!vnode.componentInstance || vnode.componentInstance._isDestroyed) {
- var child = vnode.componentInstance = createComponentInstanceForVnode(
- vnode,
- activeInstance,
- parentElm,
- refElm
- );
- child.$mount(hydrating ? vnode.elm : undefined, hydrating);
- } else if (vnode.data.keepAlive) {
- // kept-alive components, treat as a patch
- var mountedNode = vnode; // work around flow
- componentVNodeHooks.prepatch(mountedNode, mountedNode);
- }
- },
- prepatch: function prepatch (oldVnode, vnode) {
- var options = vnode.componentOptions;
- var child = vnode.componentInstance = oldVnode.componentInstance;
- updateChildComponent(
- child,
- options.propsData, // updated props
- options.listeners, // updated listeners
- vnode, // new parent vnode
- options.children // new children
- );
- },
- insert: function insert (vnode) {
- var context = vnode.context;
- var componentInstance = vnode.componentInstance;
- if (!componentInstance._isMounted) {
- componentInstance._isMounted = true;
- callHook(componentInstance, 'mounted');
- }
- if (vnode.data.keepAlive) {
- if (context._isMounted) {
- // vue-router#1212
- // During updates, a kept-alive component's child components may
- // change, so directly walking the tree here may call activated hooks
- // on incorrect children. Instead we push them into a queue which will
- // be processed after the whole patch process ended.
- queueActivatedComponent(componentInstance);
- } else {
- activateChildComponent(componentInstance, true /* direct */);
- }
- }
- },
- destroy: function destroy (vnode) {
- var componentInstance = vnode.componentInstance;
- if (!componentInstance._isDestroyed) {
- if (!vnode.data.keepAlive) {
- componentInstance.$destroy();
- } else {
- deactivateChildComponent(componentInstance, true /* direct */);
- }
- }
- }
- };
- var hooksToMerge = Object.keys(componentVNodeHooks);
- function createComponent (
- Ctor,
- data,
- context,
- children,
- tag
- ) {
- if (isUndef(Ctor)) {
- return
- }
- var baseCtor = context.$options._base;
- // plain options object: turn it into a constructor
- if (isObject(Ctor)) {
- Ctor = baseCtor.extend(Ctor);
- }
- // if at this stage it's not a constructor or an async component factory,
- // reject.
- if (typeof Ctor !== 'function') {
- if (false) {
- warn(("Invalid Component definition: " + (String(Ctor))), context);
- }
- return
- }
- // async component
- var asyncFactory;
- if (isUndef(Ctor.cid)) {
- asyncFactory = Ctor;
- Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);
- if (Ctor === undefined) {
- // return a placeholder node for async component, which is rendered
- // as a comment node but preserves all the raw information for the node.
- // the information will be used for async server-rendering and hydration.
- return createAsyncPlaceholder(
- asyncFactory,
- data,
- context,
- children,
- tag
- )
- }
- }
- data = data || {};
- // resolve constructor options in case global mixins are applied after
- // component constructor creation
- resolveConstructorOptions(Ctor);
- // transform component v-model data into props & events
- if (isDef(data.model)) {
- transformModel(Ctor.options, data);
- }
- // extract props
- var propsData = extractPropsFromVNodeData(data, Ctor, tag);
- // functional component
- if (isTrue(Ctor.options.functional)) {
- return createFunctionalComponent(Ctor, propsData, data, context, children)
- }
- // extract listeners, since these needs to be treated as
- // child component listeners instead of DOM listeners
- var listeners = data.on;
- // replace with listeners with .native modifier
- // so it gets processed during parent component patch.
- data.on = data.nativeOn;
- if (isTrue(Ctor.options.abstract)) {
- // abstract components do not keep anything
- // other than props & listeners & slot
- // work around flow
- var slot = data.slot;
- data = {};
- if (slot) {
- data.slot = slot;
- }
- }
- // merge component management hooks onto the placeholder node
- mergeHooks(data);
- // return a placeholder vnode
- var name = Ctor.options.name || tag;
- var vnode = new VNode(
- ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
- data, undefined, undefined, undefined, context,
- { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
- asyncFactory
- );
- // Weex specific: invoke recycle-list optimized @render function for
- // extracting cell-slot template.
- // https://github.com/Hanks10100/weex-native-directive/tree/master/component
- /* istanbul ignore if */
- return vnode
- }
- function createComponentInstanceForVnode (
- vnode, // we know it's MountedComponentVNode but flow doesn't
- parent, // activeInstance in lifecycle state
- parentElm,
- refElm
- ) {
- var options = {
- _isComponent: true,
- parent: parent,
- _parentVnode: vnode,
- _parentElm: parentElm || null,
- _refElm: refElm || null
- };
- // check inline-template render functions
- var inlineTemplate = vnode.data.inlineTemplate;
- if (isDef(inlineTemplate)) {
- options.render = inlineTemplate.render;
- options.staticRenderFns = inlineTemplate.staticRenderFns;
- }
- return new vnode.componentOptions.Ctor(options)
- }
- function mergeHooks (data) {
- if (!data.hook) {
- data.hook = {};
- }
- for (var i = 0; i < hooksToMerge.length; i++) {
- var key = hooksToMerge[i];
- var fromParent = data.hook[key];
- var ours = componentVNodeHooks[key];
- data.hook[key] = fromParent ? mergeHook$1(ours, fromParent) : ours;
- }
- }
- function mergeHook$1 (one, two) {
- return function (a, b, c, d) {
- one(a, b, c, d);
- two(a, b, c, d);
- }
- }
- // transform component v-model info (value and callback) into
- // prop and event handler respectively.
- function transformModel (options, data) {
- var prop = (options.model && options.model.prop) || 'value';
- var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;
- var on = data.on || (data.on = {});
- if (isDef(on[event])) {
- on[event] = [data.model.callback].concat(on[event]);
- } else {
- on[event] = data.model.callback;
- }
- }
- /* */
- var SIMPLE_NORMALIZE = 1;
- var ALWAYS_NORMALIZE = 2;
- // wrapper function for providing a more flexible interface
- // without getting yelled at by flow
- function createElement (
- context,
- tag,
- data,
- children,
- normalizationType,
- alwaysNormalize
- ) {
- if (Array.isArray(data) || isPrimitive(data)) {
- normalizationType = children;
- children = data;
- data = undefined;
- }
- if (isTrue(alwaysNormalize)) {
- normalizationType = ALWAYS_NORMALIZE;
- }
- return _createElement(context, tag, data, children, normalizationType)
- }
- function _createElement (
- context,
- tag,
- data,
- children,
- normalizationType
- ) {
- if (isDef(data) && isDef((data).__ob__)) {
- "production" !== 'production' && warn(
- "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
- 'Always create fresh vnode data objects in each render!',
- context
- );
- return createEmptyVNode()
- }
- // object syntax in v-bind
- if (isDef(data) && isDef(data.is)) {
- tag = data.is;
- }
- if (!tag) {
- // in case of component :is set to falsy value
- return createEmptyVNode()
- }
- // warn against non-primitive key
- if (false
- ) {
- {
- warn(
- 'Avoid using non-primitive value as key, ' +
- 'use string/number value instead.',
- context
- );
- }
- }
- // support single function children as default scoped slot
- if (Array.isArray(children) &&
- typeof children[0] === 'function'
- ) {
- data = data || {};
- data.scopedSlots = { default: children[0] };
- children.length = 0;
- }
- if (normalizationType === ALWAYS_NORMALIZE) {
- children = normalizeChildren(children);
- } else if (normalizationType === SIMPLE_NORMALIZE) {
- children = simpleNormalizeChildren(children);
- }
- var vnode, ns;
- if (typeof tag === 'string') {
- var Ctor;
- ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
- if (config.isReservedTag(tag)) {
- // platform built-in elements
- vnode = new VNode(
- config.parsePlatformTagName(tag), data, children,
- undefined, undefined, context
- );
- } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
- // component
- vnode = createComponent(Ctor, data, context, children, tag);
- } else {
- // unknown or unlisted namespaced elements
- // check at runtime because it may get assigned a namespace when its
- // parent normalizes children
- vnode = new VNode(
- tag, data, children,
- undefined, undefined, context
- );
- }
- } else {
- // direct component options / constructor
- vnode = createComponent(tag, data, context, children);
- }
- if (isDef(vnode)) {
- if (ns) { applyNS(vnode, ns); }
- return vnode
- } else {
- return createEmptyVNode()
- }
- }
- function applyNS (vnode, ns, force) {
- vnode.ns = ns;
- if (vnode.tag === 'foreignObject') {
- // use default namespace inside foreignObject
- ns = undefined;
- force = true;
- }
- if (isDef(vnode.children)) {
- for (var i = 0, l = vnode.children.length; i < l; i++) {
- var child = vnode.children[i];
- if (isDef(child.tag) && (isUndef(child.ns) || isTrue(force))) {
- applyNS(child, ns, force);
- }
- }
- }
- }
- /* */
- function initRender (vm) {
- vm._vnode = null; // the root of the child tree
- vm._staticTrees = null; // v-once cached trees
- var options = vm.$options;
- var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
- var renderContext = parentVnode && parentVnode.context;
- vm.$slots = resolveSlots(options._renderChildren, renderContext);
- vm.$scopedSlots = emptyObject;
- // bind the createElement fn to this instance
- // so that we get proper render context inside it.
- // args order: tag, data, children, normalizationType, alwaysNormalize
- // internal version is used by render functions compiled from templates
- vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
- // normalization is always applied for the public version, used in
- // user-written render functions.
- vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
- // $attrs & $listeners are exposed for easier HOC creation.
- // they need to be reactive so that HOCs using them are always updated
- var parentData = parentVnode && parentVnode.data;
- /* istanbul ignore else */
- if (false) {
- defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
- !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
- }, true);
- defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {
- !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
- }, true);
- } else {
- defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);
- defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);
- }
- }
- function renderMixin (Vue) {
- // install runtime convenience helpers
- installRenderHelpers(Vue.prototype);
- Vue.prototype.$nextTick = function (fn) {
- return nextTick(fn, this)
- };
- Vue.prototype._render = function () {
- var vm = this;
- var ref = vm.$options;
- var render = ref.render;
- var _parentVnode = ref._parentVnode;
- if (vm._isMounted) {
- // if the parent didn't update, the slot nodes will be the ones from
- // last render. They need to be cloned to ensure "freshness" for this render.
- for (var key in vm.$slots) {
- var slot = vm.$slots[key];
- // _rendered is a flag added by renderSlot, but may not be present
- // if the slot is passed from manually written render functions
- if (slot._rendered || (slot[0] && slot[0].elm)) {
- vm.$slots[key] = cloneVNodes(slot, true /* deep */);
- }
- }
- }
- vm.$scopedSlots = (_parentVnode && _parentVnode.data.scopedSlots) || emptyObject;
- // set parent vnode. this allows render functions to have access
- // to the data on the placeholder node.
- vm.$vnode = _parentVnode;
- // render self
- var vnode;
- try {
- vnode = render.call(vm._renderProxy, vm.$createElement);
- } catch (e) {
- handleError(e, vm, "render");
- // return error render result,
- // or previous vnode to prevent render error causing blank component
- /* istanbul ignore else */
- if (false) {
- if (vm.$options.renderError) {
- try {
- vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
- } catch (e) {
- handleError(e, vm, "renderError");
- vnode = vm._vnode;
- }
- } else {
- vnode = vm._vnode;
- }
- } else {
- vnode = vm._vnode;
- }
- }
- // return empty vnode in case the render function errored out
- if (!(vnode instanceof VNode)) {
- if (false) {
- warn(
- 'Multiple root nodes returned from render function. Render function ' +
- 'should return a single root node.',
- vm
- );
- }
- vnode = createEmptyVNode();
- }
- // set parent
- vnode.parent = _parentVnode;
- return vnode
- };
- }
- /* */
- var uid$1 = 0;
- function initMixin (Vue) {
- Vue.prototype._init = function (options) {
- var vm = this;
- // a uid
- vm._uid = uid$1++;
- var startTag, endTag;
- /* istanbul ignore if */
- if (false) {
- startTag = "vue-perf-start:" + (vm._uid);
- endTag = "vue-perf-end:" + (vm._uid);
- mark(startTag);
- }
- // a flag to avoid this being observed
- vm._isVue = true;
- // merge options
- if (options && options._isComponent) {
- // optimize internal component instantiation
- // since dynamic options merging is pretty slow, and none of the
- // internal component options needs special treatment.
- initInternalComponent(vm, options);
- } else {
- vm.$options = mergeOptions(
- resolveConstructorOptions(vm.constructor),
- options || {},
- vm
- );
- }
- /* istanbul ignore else */
- if (false) {
- initProxy(vm);
- } else {
- vm._renderProxy = vm;
- }
- // expose real self
- vm._self = vm;
- initLifecycle(vm);
- initEvents(vm);
- initRender(vm);
- callHook(vm, 'beforeCreate');
- initInjections(vm); // resolve injections before data/props
- initState(vm);
- initProvide(vm); // resolve provide after data/props
- callHook(vm, 'created');
- /* istanbul ignore if */
- if (false) {
- vm._name = formatComponentName(vm, false);
- mark(endTag);
- measure(("vue " + (vm._name) + " init"), startTag, endTag);
- }
- if (vm.$options.el) {
- vm.$mount(vm.$options.el);
- }
- };
- }
- function initInternalComponent (vm, options) {
- var opts = vm.$options = Object.create(vm.constructor.options);
- // doing this because it's faster than dynamic enumeration.
- var parentVnode = options._parentVnode;
- opts.parent = options.parent;
- opts._parentVnode = parentVnode;
- opts._parentElm = options._parentElm;
- opts._refElm = options._refElm;
- var vnodeComponentOptions = parentVnode.componentOptions;
- opts.propsData = vnodeComponentOptions.propsData;
- opts._parentListeners = vnodeComponentOptions.listeners;
- opts._renderChildren = vnodeComponentOptions.children;
- opts._componentTag = vnodeComponentOptions.tag;
- if (options.render) {
- opts.render = options.render;
- opts.staticRenderFns = options.staticRenderFns;
- }
- }
- function resolveConstructorOptions (Ctor) {
- var options = Ctor.options;
- if (Ctor.super) {
- var superOptions = resolveConstructorOptions(Ctor.super);
- var cachedSuperOptions = Ctor.superOptions;
- if (superOptions !== cachedSuperOptions) {
- // super option changed,
- // need to resolve new options.
- Ctor.superOptions = superOptions;
- // check if there are any late-modified/attached options (#4976)
- var modifiedOptions = resolveModifiedOptions(Ctor);
- // update base extend options
- if (modifiedOptions) {
- extend(Ctor.extendOptions, modifiedOptions);
- }
- options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
- if (options.name) {
- options.components[options.name] = Ctor;
- }
- }
- }
- return options
- }
- function resolveModifiedOptions (Ctor) {
- var modified;
- var latest = Ctor.options;
- var extended = Ctor.extendOptions;
- var sealed = Ctor.sealedOptions;
- for (var key in latest) {
- if (latest[key] !== sealed[key]) {
- if (!modified) { modified = {}; }
- modified[key] = dedupe(latest[key], extended[key], sealed[key]);
- }
- }
- return modified
- }
- function dedupe (latest, extended, sealed) {
- // compare latest and sealed to ensure lifecycle hooks won't be duplicated
- // between merges
- if (Array.isArray(latest)) {
- var res = [];
- sealed = Array.isArray(sealed) ? sealed : [sealed];
- extended = Array.isArray(extended) ? extended : [extended];
- for (var i = 0; i < latest.length; i++) {
- // push original options and not sealed options to exclude duplicated options
- if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {
- res.push(latest[i]);
- }
- }
- return res
- } else {
- return latest
- }
- }
- function Vue$3 (options) {
- if (false
- ) {
- warn('Vue is a constructor and should be called with the `new` keyword');
- }
- this._init(options);
- }
- initMixin(Vue$3);
- stateMixin(Vue$3);
- eventsMixin(Vue$3);
- lifecycleMixin(Vue$3);
- renderMixin(Vue$3);
- /* */
- function initUse (Vue) {
- Vue.use = function (plugin) {
- var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
- if (installedPlugins.indexOf(plugin) > -1) {
- return this
- }
- // additional parameters
- var args = toArray(arguments, 1);
- args.unshift(this);
- if (typeof plugin.install === 'function') {
- plugin.install.apply(plugin, args);
- } else if (typeof plugin === 'function') {
- plugin.apply(null, args);
- }
- installedPlugins.push(plugin);
- return this
- };
- }
- /* */
- function initMixin$1 (Vue) {
- Vue.mixin = function (mixin) {
- this.options = mergeOptions(this.options, mixin);
- return this
- };
- }
- /* */
- function initExtend (Vue) {
- /**
- * Each instance constructor, including Vue, has a unique
- * cid. This enables us to create wrapped "child
- * constructors" for prototypal inheritance and cache them.
- */
- Vue.cid = 0;
- var cid = 1;
- /**
- * Class inheritance
- */
- Vue.extend = function (extendOptions) {
- extendOptions = extendOptions || {};
- var Super = this;
- var SuperId = Super.cid;
- var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
- if (cachedCtors[SuperId]) {
- return cachedCtors[SuperId]
- }
- var name = extendOptions.name || Super.options.name;
- if (false) {
- validateComponentName(name);
- }
- var Sub = function VueComponent (options) {
- this._init(options);
- };
- Sub.prototype = Object.create(Super.prototype);
- Sub.prototype.constructor = Sub;
- Sub.cid = cid++;
- Sub.options = mergeOptions(
- Super.options,
- extendOptions
- );
- Sub['super'] = Super;
- // For props and computed properties, we define the proxy getters on
- // the Vue instances at extension time, on the extended prototype. This
- // avoids Object.defineProperty calls for each instance created.
- if (Sub.options.props) {
- initProps$1(Sub);
- }
- if (Sub.options.computed) {
- initComputed$1(Sub);
- }
- // allow further extension/mixin/plugin usage
- Sub.extend = Super.extend;
- Sub.mixin = Super.mixin;
- Sub.use = Super.use;
- // create asset registers, so extended classes
- // can have their private assets too.
- ASSET_TYPES.forEach(function (type) {
- Sub[type] = Super[type];
- });
- // enable recursive self-lookup
- if (name) {
- Sub.options.components[name] = Sub;
- }
- // keep a reference to the super options at extension time.
- // later at instantiation we can check if Super's options have
- // been updated.
- Sub.superOptions = Super.options;
- Sub.extendOptions = extendOptions;
- Sub.sealedOptions = extend({}, Sub.options);
- // cache constructor
- cachedCtors[SuperId] = Sub;
- return Sub
- };
- }
- function initProps$1 (Comp) {
- var props = Comp.options.props;
- for (var key in props) {
- proxy(Comp.prototype, "_props", key);
- }
- }
- function initComputed$1 (Comp) {
- var computed = Comp.options.computed;
- for (var key in computed) {
- defineComputed(Comp.prototype, key, computed[key]);
- }
- }
- /* */
- function initAssetRegisters (Vue) {
- /**
- * Create asset registration methods.
- */
- ASSET_TYPES.forEach(function (type) {
- Vue[type] = function (
- id,
- definition
- ) {
- if (!definition) {
- return this.options[type + 's'][id]
- } else {
- /* istanbul ignore if */
- if (false) {
- validateComponentName(id);
- }
- if (type === 'component' && isPlainObject(definition)) {
- definition.name = definition.name || id;
- definition = this.options._base.extend(definition);
- }
- if (type === 'directive' && typeof definition === 'function') {
- definition = { bind: definition, update: definition };
- }
- this.options[type + 's'][id] = definition;
- return definition
- }
- };
- });
- }
- /* */
- function getComponentName (opts) {
- return opts && (opts.Ctor.options.name || opts.tag)
- }
- function matches (pattern, name) {
- if (Array.isArray(pattern)) {
- return pattern.indexOf(name) > -1
- } else if (typeof pattern === 'string') {
- return pattern.split(',').indexOf(name) > -1
- } else if (isRegExp(pattern)) {
- return pattern.test(name)
- }
- /* istanbul ignore next */
- return false
- }
- function pruneCache (keepAliveInstance, filter) {
- var cache = keepAliveInstance.cache;
- var keys = keepAliveInstance.keys;
- var _vnode = keepAliveInstance._vnode;
- for (var key in cache) {
- var cachedNode = cache[key];
- if (cachedNode) {
- var name = getComponentName(cachedNode.componentOptions);
- if (name && !filter(name)) {
- pruneCacheEntry(cache, key, keys, _vnode);
- }
- }
- }
- }
- function pruneCacheEntry (
- cache,
- key,
- keys,
- current
- ) {
- var cached$$1 = cache[key];
- if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
- cached$$1.componentInstance.$destroy();
- }
- cache[key] = null;
- remove(keys, key);
- }
- var patternTypes = [String, RegExp, Array];
- var KeepAlive = {
- name: 'keep-alive',
- abstract: true,
- props: {
- include: patternTypes,
- exclude: patternTypes,
- max: [String, Number]
- },
- created: function created () {
- this.cache = Object.create(null);
- this.keys = [];
- },
- destroyed: function destroyed () {
- var this$1 = this;
- for (var key in this$1.cache) {
- pruneCacheEntry(this$1.cache, key, this$1.keys);
- }
- },
- watch: {
- include: function include (val) {
- pruneCache(this, function (name) { return matches(val, name); });
- },
- exclude: function exclude (val) {
- pruneCache(this, function (name) { return !matches(val, name); });
- }
- },
- render: function render () {
- var slot = this.$slots.default;
- var vnode = getFirstComponentChild(slot);
- var componentOptions = vnode && vnode.componentOptions;
- if (componentOptions) {
- // check pattern
- var name = getComponentName(componentOptions);
- var ref = this;
- var include = ref.include;
- var exclude = ref.exclude;
- if (
- // not included
- (include && (!name || !matches(include, name))) ||
- // excluded
- (exclude && name && matches(exclude, name))
- ) {
- return vnode
- }
- var ref$1 = this;
- var cache = ref$1.cache;
- var keys = ref$1.keys;
- var key = vnode.key == null
- // same constructor may get registered as different local components
- // so cid alone is not enough (#3269)
- ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
- : vnode.key;
- if (cache[key]) {
- vnode.componentInstance = cache[key].componentInstance;
- // make current key freshest
- remove(keys, key);
- keys.push(key);
- } else {
- cache[key] = vnode;
- keys.push(key);
- // prune oldest entry
- if (this.max && keys.length > parseInt(this.max)) {
- pruneCacheEntry(cache, keys[0], keys, this._vnode);
- }
- }
- vnode.data.keepAlive = true;
- }
- return vnode || (slot && slot[0])
- }
- };
- var builtInComponents = {
- KeepAlive: KeepAlive
- };
- /* */
- function initGlobalAPI (Vue) {
- // config
- var configDef = {};
- configDef.get = function () { return config; };
- if (false) {
- configDef.set = function () {
- warn(
- 'Do not replace the Vue.config object, set individual fields instead.'
- );
- };
- }
- Object.defineProperty(Vue, 'config', configDef);
- // exposed util methods.
- // NOTE: these are not considered part of the public API - avoid relying on
- // them unless you are aware of the risk.
- Vue.util = {
- warn: warn,
- extend: extend,
- mergeOptions: mergeOptions,
- defineReactive: defineReactive
- };
- Vue.set = set;
- Vue.delete = del;
- Vue.nextTick = nextTick;
- Vue.options = Object.create(null);
- ASSET_TYPES.forEach(function (type) {
- Vue.options[type + 's'] = Object.create(null);
- });
- // this is used to identify the "base" constructor to extend all plain-object
- // components with in Weex's multi-instance scenarios.
- Vue.options._base = Vue;
- extend(Vue.options.components, builtInComponents);
- initUse(Vue);
- initMixin$1(Vue);
- initExtend(Vue);
- initAssetRegisters(Vue);
- }
- initGlobalAPI(Vue$3);
- Object.defineProperty(Vue$3.prototype, '$isServer', {
- get: isServerRendering
- });
- Object.defineProperty(Vue$3.prototype, '$ssrContext', {
- get: function get () {
- /* istanbul ignore next */
- return this.$vnode && this.$vnode.ssrContext
- }
- });
- Vue$3.version = '2.5.13';
- /* */
- // these are reserved for web because they are directly compiled away
- // during template compilation
- var isReservedAttr = makeMap('style,class');
- // attributes that should be using props for binding
- var acceptValue = makeMap('input,textarea,option,select,progress');
- var mustUseProp = function (tag, type, attr) {
- return (
- (attr === 'value' && acceptValue(tag)) && type !== 'button' ||
- (attr === 'selected' && tag === 'option') ||
- (attr === 'checked' && tag === 'input') ||
- (attr === 'muted' && tag === 'video')
- )
- };
- var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
- var isBooleanAttr = makeMap(
- 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
- 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
- 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
- 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
- 'required,reversed,scoped,seamless,selected,sortable,translate,' +
- 'truespeed,typemustmatch,visible'
- );
- var xlinkNS = 'http://www.w3.org/1999/xlink';
- var isXlink = function (name) {
- return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'
- };
- var getXlinkProp = function (name) {
- return isXlink(name) ? name.slice(6, name.length) : ''
- };
- var isFalsyAttrValue = function (val) {
- return val == null || val === false
- };
- /* */
- function genClassForVnode (vnode) {
- var data = vnode.data;
- var parentNode = vnode;
- var childNode = vnode;
- while (isDef(childNode.componentInstance)) {
- childNode = childNode.componentInstance._vnode;
- if (childNode && childNode.data) {
- data = mergeClassData(childNode.data, data);
- }
- }
- while (isDef(parentNode = parentNode.parent)) {
- if (parentNode && parentNode.data) {
- data = mergeClassData(data, parentNode.data);
- }
- }
- return renderClass(data.staticClass, data.class)
- }
- function mergeClassData (child, parent) {
- return {
- staticClass: concat(child.staticClass, parent.staticClass),
- class: isDef(child.class)
- ? [child.class, parent.class]
- : parent.class
- }
- }
- function renderClass (
- staticClass,
- dynamicClass
- ) {
- if (isDef(staticClass) || isDef(dynamicClass)) {
- return concat(staticClass, stringifyClass(dynamicClass))
- }
- /* istanbul ignore next */
- return ''
- }
- function concat (a, b) {
- return a ? b ? (a + ' ' + b) : a : (b || '')
- }
- function stringifyClass (value) {
- if (Array.isArray(value)) {
- return stringifyArray(value)
- }
- if (isObject(value)) {
- return stringifyObject(value)
- }
- if (typeof value === 'string') {
- return value
- }
- /* istanbul ignore next */
- return ''
- }
- function stringifyArray (value) {
- var res = '';
- var stringified;
- for (var i = 0, l = value.length; i < l; i++) {
- if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
- if (res) { res += ' '; }
- res += stringified;
- }
- }
- return res
- }
- function stringifyObject (value) {
- var res = '';
- for (var key in value) {
- if (value[key]) {
- if (res) { res += ' '; }
- res += key;
- }
- }
- return res
- }
- /* */
- var namespaceMap = {
- svg: 'http://www.w3.org/2000/svg',
- math: 'http://www.w3.org/1998/Math/MathML'
- };
- var isHTMLTag = makeMap(
- 'html,body,base,head,link,meta,style,title,' +
- 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
- 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
- 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
- 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
- 'embed,object,param,source,canvas,script,noscript,del,ins,' +
- 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
- 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
- 'output,progress,select,textarea,' +
- 'details,dialog,menu,menuitem,summary,' +
- 'content,element,shadow,template,blockquote,iframe,tfoot'
- );
- // this map is intentionally selective, only covering SVG elements that may
- // contain child elements.
- var isSVG = makeMap(
- 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
- 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
- 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',
- true
- );
- var isPreTag = function (tag) { return tag === 'pre'; };
- var isReservedTag = function (tag) {
- return isHTMLTag(tag) || isSVG(tag)
- };
- function getTagNamespace (tag) {
- if (isSVG(tag)) {
- return 'svg'
- }
- // basic support for MathML
- // note it doesn't support other MathML elements being component roots
- if (tag === 'math') {
- return 'math'
- }
- }
- var unknownElementCache = Object.create(null);
- function isUnknownElement (tag) {
- /* istanbul ignore if */
- if (!inBrowser) {
- return true
- }
- if (isReservedTag(tag)) {
- return false
- }
- tag = tag.toLowerCase();
- /* istanbul ignore if */
- if (unknownElementCache[tag] != null) {
- return unknownElementCache[tag]
- }
- var el = document.createElement(tag);
- if (tag.indexOf('-') > -1) {
- // http://stackoverflow.com/a/28210364/1070244
- return (unknownElementCache[tag] = (
- el.constructor === window.HTMLUnknownElement ||
- el.constructor === window.HTMLElement
- ))
- } else {
- return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
- }
- }
- var isTextInputType = makeMap('text,number,password,search,email,tel,url');
- /* */
- /**
- * Query an element selector if it's not an element already.
- */
- function query (el) {
- if (typeof el === 'string') {
- var selected = document.querySelector(el);
- if (!selected) {
- "production" !== 'production' && warn(
- 'Cannot find element: ' + el
- );
- return document.createElement('div')
- }
- return selected
- } else {
- return el
- }
- }
- /* */
- function createElement$1 (tagName, vnode) {
- var elm = document.createElement(tagName);
- if (tagName !== 'select') {
- return elm
- }
- // false or null will remove the attribute but undefined will not
- if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
- elm.setAttribute('multiple', 'multiple');
- }
- return elm
- }
- function createElementNS (namespace, tagName) {
- return document.createElementNS(namespaceMap[namespace], tagName)
- }
- function createTextNode (text) {
- return document.createTextNode(text)
- }
- function createComment (text) {
- return document.createComment(text)
- }
- function insertBefore (parentNode, newNode, referenceNode) {
- parentNode.insertBefore(newNode, referenceNode);
- }
- function removeChild (node, child) {
- node.removeChild(child);
- }
- function appendChild (node, child) {
- node.appendChild(child);
- }
- function parentNode (node) {
- return node.parentNode
- }
- function nextSibling (node) {
- return node.nextSibling
- }
- function tagName (node) {
- return node.tagName
- }
- function setTextContent (node, text) {
- node.textContent = text;
- }
- function setAttribute (node, key, val) {
- node.setAttribute(key, val);
- }
- var nodeOps = Object.freeze({
- createElement: createElement$1,
- createElementNS: createElementNS,
- createTextNode: createTextNode,
- createComment: createComment,
- insertBefore: insertBefore,
- removeChild: removeChild,
- appendChild: appendChild,
- parentNode: parentNode,
- nextSibling: nextSibling,
- tagName: tagName,
- setTextContent: setTextContent,
- setAttribute: setAttribute
- });
- /* */
- var ref = {
- create: function create (_, vnode) {
- registerRef(vnode);
- },
- update: function update (oldVnode, vnode) {
- if (oldVnode.data.ref !== vnode.data.ref) {
- registerRef(oldVnode, true);
- registerRef(vnode);
- }
- },
- destroy: function destroy (vnode) {
- registerRef(vnode, true);
- }
- };
- function registerRef (vnode, isRemoval) {
- var key = vnode.data.ref;
- if (!key) { return }
- var vm = vnode.context;
- var ref = vnode.componentInstance || vnode.elm;
- var refs = vm.$refs;
- if (isRemoval) {
- if (Array.isArray(refs[key])) {
- remove(refs[key], ref);
- } else if (refs[key] === ref) {
- refs[key] = undefined;
- }
- } else {
- if (vnode.data.refInFor) {
- if (!Array.isArray(refs[key])) {
- refs[key] = [ref];
- } else if (refs[key].indexOf(ref) < 0) {
- // $flow-disable-line
- refs[key].push(ref);
- }
- } else {
- refs[key] = ref;
- }
- }
- }
- /**
- * Virtual DOM patching algorithm based on Snabbdom by
- * Simon Friis Vindum (@paldepind)
- * Licensed under the MIT License
- * https://github.com/paldepind/snabbdom/blob/master/LICENSE
- *
- * modified by Evan You (@yyx990803)
- *
- * Not type-checking this because this file is perf-critical and the cost
- * of making flow understand it is not worth it.
- */
- var emptyNode = new VNode('', {}, []);
- var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
- function sameVnode (a, b) {
- return (
- a.key === b.key && (
- (
- a.tag === b.tag &&
- a.isComment === b.isComment &&
- isDef(a.data) === isDef(b.data) &&
- sameInputType(a, b)
- ) || (
- isTrue(a.isAsyncPlaceholder) &&
- a.asyncFactory === b.asyncFactory &&
- isUndef(b.asyncFactory.error)
- )
- )
- )
- }
- function sameInputType (a, b) {
- if (a.tag !== 'input') { return true }
- var i;
- var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;
- var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;
- return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)
- }
- function createKeyToOldIdx (children, beginIdx, endIdx) {
- var i, key;
- var map = {};
- for (i = beginIdx; i <= endIdx; ++i) {
- key = children[i].key;
- if (isDef(key)) { map[key] = i; }
- }
- return map
- }
- function createPatchFunction (backend) {
- var i, j;
- var cbs = {};
- var modules = backend.modules;
- var nodeOps = backend.nodeOps;
- for (i = 0; i < hooks.length; ++i) {
- cbs[hooks[i]] = [];
- for (j = 0; j < modules.length; ++j) {
- if (isDef(modules[j][hooks[i]])) {
- cbs[hooks[i]].push(modules[j][hooks[i]]);
- }
- }
- }
- function emptyNodeAt (elm) {
- return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)
- }
- function createRmCb (childElm, listeners) {
- function remove () {
- if (--remove.listeners === 0) {
- removeNode(childElm);
- }
- }
- remove.listeners = listeners;
- return remove
- }
- function removeNode (el) {
- var parent = nodeOps.parentNode(el);
- // element may have already been removed due to v-html / v-text
- if (isDef(parent)) {
- nodeOps.removeChild(parent, el);
- }
- }
- function isUnknownElement$$1 (vnode, inVPre) {
- return (
- !inVPre &&
- !vnode.ns &&
- !(
- config.ignoredElements.length &&
- config.ignoredElements.some(function (ignore) {
- return isRegExp(ignore)
- ? ignore.test(vnode.tag)
- : ignore === vnode.tag
- })
- ) &&
- config.isUnknownElement(vnode.tag)
- )
- }
- var creatingElmInVPre = 0;
- function createElm (vnode, insertedVnodeQueue, parentElm, refElm, nested) {
- vnode.isRootInsert = !nested; // for transition enter check
- if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
- return
- }
- var data = vnode.data;
- var children = vnode.children;
- var tag = vnode.tag;
- if (isDef(tag)) {
- if (false) {
- if (data && data.pre) {
- creatingElmInVPre++;
- }
- if (isUnknownElement$$1(vnode, creatingElmInVPre)) {
- warn(
- 'Unknown custom element: <' + tag + '> - did you ' +
- 'register the component correctly? For recursive components, ' +
- 'make sure to provide the "name" option.',
- vnode.context
- );
- }
- }
- vnode.elm = vnode.ns
- ? nodeOps.createElementNS(vnode.ns, tag)
- : nodeOps.createElement(tag, vnode);
- setScope(vnode);
- /* istanbul ignore if */
- {
- createChildren(vnode, children, insertedVnodeQueue);
- if (isDef(data)) {
- invokeCreateHooks(vnode, insertedVnodeQueue);
- }
- insert(parentElm, vnode.elm, refElm);
- }
- if (false) {
- creatingElmInVPre--;
- }
- } else if (isTrue(vnode.isComment)) {
- vnode.elm = nodeOps.createComment(vnode.text);
- insert(parentElm, vnode.elm, refElm);
- } else {
- vnode.elm = nodeOps.createTextNode(vnode.text);
- insert(parentElm, vnode.elm, refElm);
- }
- }
- function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
- var i = vnode.data;
- if (isDef(i)) {
- var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
- if (isDef(i = i.hook) && isDef(i = i.init)) {
- i(vnode, false /* hydrating */, parentElm, refElm);
- }
- // after calling the init hook, if the vnode is a child component
- // it should've created a child instance and mounted it. the child
- // component also has set the placeholder vnode's elm.
- // in that case we can just return the element and be done.
- if (isDef(vnode.componentInstance)) {
- initComponent(vnode, insertedVnodeQueue);
- if (isTrue(isReactivated)) {
- reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
- }
- return true
- }
- }
- }
- function initComponent (vnode, insertedVnodeQueue) {
- if (isDef(vnode.data.pendingInsert)) {
- insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
- vnode.data.pendingInsert = null;
- }
- vnode.elm = vnode.componentInstance.$el;
- if (isPatchable(vnode)) {
- invokeCreateHooks(vnode, insertedVnodeQueue);
- setScope(vnode);
- } else {
- // empty component root.
- // skip all element-related modules except for ref (#3455)
- registerRef(vnode);
- // make sure to invoke the insert hook
- insertedVnodeQueue.push(vnode);
- }
- }
- function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
- var i;
- // hack for #4339: a reactivated component with inner transition
- // does not trigger because the inner node's created hooks are not called
- // again. It's not ideal to involve module-specific logic in here but
- // there doesn't seem to be a better way to do it.
- var innerNode = vnode;
- while (innerNode.componentInstance) {
- innerNode = innerNode.componentInstance._vnode;
- if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
- for (i = 0; i < cbs.activate.length; ++i) {
- cbs.activate[i](emptyNode, innerNode);
- }
- insertedVnodeQueue.push(innerNode);
- break
- }
- }
- // unlike a newly created component,
- // a reactivated keep-alive component doesn't insert itself
- insert(parentElm, vnode.elm, refElm);
- }
- function insert (parent, elm, ref$$1) {
- if (isDef(parent)) {
- if (isDef(ref$$1)) {
- if (ref$$1.parentNode === parent) {
- nodeOps.insertBefore(parent, elm, ref$$1);
- }
- } else {
- nodeOps.appendChild(parent, elm);
- }
- }
- }
- function createChildren (vnode, children, insertedVnodeQueue) {
- if (Array.isArray(children)) {
- if (false) {
- checkDuplicateKeys(children);
- }
- for (var i = 0; i < children.length; ++i) {
- createElm(children[i], insertedVnodeQueue, vnode.elm, null, true);
- }
- } else if (isPrimitive(vnode.text)) {
- nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
- }
- }
- function isPatchable (vnode) {
- while (vnode.componentInstance) {
- vnode = vnode.componentInstance._vnode;
- }
- return isDef(vnode.tag)
- }
- function invokeCreateHooks (vnode, insertedVnodeQueue) {
- for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
- cbs.create[i$1](emptyNode, vnode);
- }
- i = vnode.data.hook; // Reuse variable
- if (isDef(i)) {
- if (isDef(i.create)) { i.create(emptyNode, vnode); }
- if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }
- }
- }
- // set scope id attribute for scoped CSS.
- // this is implemented as a special case to avoid the overhead
- // of going through the normal attribute patching process.
- function setScope (vnode) {
- var i;
- if (isDef(i = vnode.fnScopeId)) {
- nodeOps.setAttribute(vnode.elm, i, '');
- } else {
- var ancestor = vnode;
- while (ancestor) {
- if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
- nodeOps.setAttribute(vnode.elm, i, '');
- }
- ancestor = ancestor.parent;
- }
- }
- // for slot content they should also get the scopeId from the host instance.
- if (isDef(i = activeInstance) &&
- i !== vnode.context &&
- i !== vnode.fnContext &&
- isDef(i = i.$options._scopeId)
- ) {
- nodeOps.setAttribute(vnode.elm, i, '');
- }
- }
- function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
- for (; startIdx <= endIdx; ++startIdx) {
- createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm);
- }
- }
- function invokeDestroyHook (vnode) {
- var i, j;
- var data = vnode.data;
- if (isDef(data)) {
- if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }
- for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }
- }
- if (isDef(i = vnode.children)) {
- for (j = 0; j < vnode.children.length; ++j) {
- invokeDestroyHook(vnode.children[j]);
- }
- }
- }
- function removeVnodes (parentElm, vnodes, startIdx, endIdx) {
- for (; startIdx <= endIdx; ++startIdx) {
- var ch = vnodes[startIdx];
- if (isDef(ch)) {
- if (isDef(ch.tag)) {
- removeAndInvokeRemoveHook(ch);
- invokeDestroyHook(ch);
- } else { // Text node
- removeNode(ch.elm);
- }
- }
- }
- }
- function removeAndInvokeRemoveHook (vnode, rm) {
- if (isDef(rm) || isDef(vnode.data)) {
- var i;
- var listeners = cbs.remove.length + 1;
- if (isDef(rm)) {
- // we have a recursively passed down rm callback
- // increase the listeners count
- rm.listeners += listeners;
- } else {
- // directly removing
- rm = createRmCb(vnode.elm, listeners);
- }
- // recursively invoke hooks on child component root node
- if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
- removeAndInvokeRemoveHook(i, rm);
- }
- for (i = 0; i < cbs.remove.length; ++i) {
- cbs.remove[i](vnode, rm);
- }
- if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
- i(vnode, rm);
- } else {
- rm();
- }
- } else {
- removeNode(vnode.elm);
- }
- }
- function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
- var oldStartIdx = 0;
- var newStartIdx = 0;
- var oldEndIdx = oldCh.length - 1;
- var oldStartVnode = oldCh[0];
- var oldEndVnode = oldCh[oldEndIdx];
- var newEndIdx = newCh.length - 1;
- var newStartVnode = newCh[0];
- var newEndVnode = newCh[newEndIdx];
- var oldKeyToIdx, idxInOld, vnodeToMove, refElm;
- // removeOnly is a special flag used only by <transition-group>
- // to ensure removed elements stay in correct relative positions
- // during leaving transitions
- var canMove = !removeOnly;
- if (false) {
- checkDuplicateKeys(newCh);
- }
- while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
- if (isUndef(oldStartVnode)) {
- oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
- } else if (isUndef(oldEndVnode)) {
- oldEndVnode = oldCh[--oldEndIdx];
- } else if (sameVnode(oldStartVnode, newStartVnode)) {
- patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);
- oldStartVnode = oldCh[++oldStartIdx];
- newStartVnode = newCh[++newStartIdx];
- } else if (sameVnode(oldEndVnode, newEndVnode)) {
- patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);
- oldEndVnode = oldCh[--oldEndIdx];
- newEndVnode = newCh[--newEndIdx];
- } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
- patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);
- canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
- oldStartVnode = oldCh[++oldStartIdx];
- newEndVnode = newCh[--newEndIdx];
- } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
- patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);
- canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
- oldEndVnode = oldCh[--oldEndIdx];
- newStartVnode = newCh[++newStartIdx];
- } else {
- if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }
- idxInOld = isDef(newStartVnode.key)
- ? oldKeyToIdx[newStartVnode.key]
- : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
- if (isUndef(idxInOld)) { // New element
- createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm);
- } else {
- vnodeToMove = oldCh[idxInOld];
- if (sameVnode(vnodeToMove, newStartVnode)) {
- patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);
- oldCh[idxInOld] = undefined;
- canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
- } else {
- // same key but different element. treat as new element
- createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm);
- }
- }
- newStartVnode = newCh[++newStartIdx];
- }
- }
- if (oldStartIdx > oldEndIdx) {
- refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
- addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
- } else if (newStartIdx > newEndIdx) {
- removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
- }
- }
- function checkDuplicateKeys (children) {
- var seenKeys = {};
- for (var i = 0; i < children.length; i++) {
- var vnode = children[i];
- var key = vnode.key;
- if (isDef(key)) {
- if (seenKeys[key]) {
- warn(
- ("Duplicate keys detected: '" + key + "'. This may cause an update error."),
- vnode.context
- );
- } else {
- seenKeys[key] = true;
- }
- }
- }
- }
- function findIdxInOld (node, oldCh, start, end) {
- for (var i = start; i < end; i++) {
- var c = oldCh[i];
- if (isDef(c) && sameVnode(node, c)) { return i }
- }
- }
- function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {
- if (oldVnode === vnode) {
- return
- }
- var elm = vnode.elm = oldVnode.elm;
- if (isTrue(oldVnode.isAsyncPlaceholder)) {
- if (isDef(vnode.asyncFactory.resolved)) {
- hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
- } else {
- vnode.isAsyncPlaceholder = true;
- }
- return
- }
- // reuse element for static trees.
- // note we only do this if the vnode is cloned -
- // if the new node is not cloned it means the render functions have been
- // reset by the hot-reload-api and we need to do a proper re-render.
- if (isTrue(vnode.isStatic) &&
- isTrue(oldVnode.isStatic) &&
- vnode.key === oldVnode.key &&
- (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))
- ) {
- vnode.componentInstance = oldVnode.componentInstance;
- return
- }
- var i;
- var data = vnode.data;
- if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
- i(oldVnode, vnode);
- }
- var oldCh = oldVnode.children;
- var ch = vnode.children;
- if (isDef(data) && isPatchable(vnode)) {
- for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }
- if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }
- }
- if (isUndef(vnode.text)) {
- if (isDef(oldCh) && isDef(ch)) {
- if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }
- } else if (isDef(ch)) {
- if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
- addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
- } else if (isDef(oldCh)) {
- removeVnodes(elm, oldCh, 0, oldCh.length - 1);
- } else if (isDef(oldVnode.text)) {
- nodeOps.setTextContent(elm, '');
- }
- } else if (oldVnode.text !== vnode.text) {
- nodeOps.setTextContent(elm, vnode.text);
- }
- if (isDef(data)) {
- if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }
- }
- }
- function invokeInsertHook (vnode, queue, initial) {
- // delay insert hooks for component root nodes, invoke them after the
- // element is really inserted
- if (isTrue(initial) && isDef(vnode.parent)) {
- vnode.parent.data.pendingInsert = queue;
- } else {
- for (var i = 0; i < queue.length; ++i) {
- queue[i].data.hook.insert(queue[i]);
- }
- }
- }
- var hydrationBailed = false;
- // list of modules that can skip create hook during hydration because they
- // are already rendered on the client or has no need for initialization
- // Note: style is excluded because it relies on initial clone for future
- // deep updates (#7063).
- var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');
- // Note: this is a browser-only function so we can assume elms are DOM nodes.
- function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {
- var i;
- var tag = vnode.tag;
- var data = vnode.data;
- var children = vnode.children;
- inVPre = inVPre || (data && data.pre);
- vnode.elm = elm;
- if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
- vnode.isAsyncPlaceholder = true;
- return true
- }
- // assert node match
- if (false) {
- if (!assertNodeMatch(elm, vnode, inVPre)) {
- return false
- }
- }
- if (isDef(data)) {
- if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
- if (isDef(i = vnode.componentInstance)) {
- // child component. it should have hydrated its own tree.
- initComponent(vnode, insertedVnodeQueue);
- return true
- }
- }
- if (isDef(tag)) {
- if (isDef(children)) {
- // empty element, allow client to pick up and populate children
- if (!elm.hasChildNodes()) {
- createChildren(vnode, children, insertedVnodeQueue);
- } else {
- // v-html and domProps: innerHTML
- if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {
- if (i !== elm.innerHTML) {
- /* istanbul ignore if */
- if (false
- ) {
- hydrationBailed = true;
- console.warn('Parent: ', elm);
- console.warn('server innerHTML: ', i);
- console.warn('client innerHTML: ', elm.innerHTML);
- }
- return false
- }
- } else {
- // iterate and compare children lists
- var childrenMatch = true;
- var childNode = elm.firstChild;
- for (var i$1 = 0; i$1 < children.length; i$1++) {
- if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {
- childrenMatch = false;
- break
- }
- childNode = childNode.nextSibling;
- }
- // if childNode is not null, it means the actual childNodes list is
- // longer than the virtual children list.
- if (!childrenMatch || childNode) {
- /* istanbul ignore if */
- if (false
- ) {
- hydrationBailed = true;
- console.warn('Parent: ', elm);
- console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
- }
- return false
- }
- }
- }
- }
- if (isDef(data)) {
- var fullInvoke = false;
- for (var key in data) {
- if (!isRenderedModule(key)) {
- fullInvoke = true;
- invokeCreateHooks(vnode, insertedVnodeQueue);
- break
- }
- }
- if (!fullInvoke && data['class']) {
- // ensure collecting deps for deep class bindings for future updates
- traverse(data['class']);
- }
- }
- } else if (elm.data !== vnode.text) {
- elm.data = vnode.text;
- }
- return true
- }
- function assertNodeMatch (node, vnode, inVPre) {
- if (isDef(vnode.tag)) {
- return vnode.tag.indexOf('vue-component') === 0 || (
- !isUnknownElement$$1(vnode, inVPre) &&
- vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())
- )
- } else {
- return node.nodeType === (vnode.isComment ? 8 : 3)
- }
- }
- return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {
- if (isUndef(vnode)) {
- if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }
- return
- }
- var isInitialPatch = false;
- var insertedVnodeQueue = [];
- if (isUndef(oldVnode)) {
- // empty mount (likely as component), create new root element
- isInitialPatch = true;
- createElm(vnode, insertedVnodeQueue, parentElm, refElm);
- } else {
- var isRealElement = isDef(oldVnode.nodeType);
- if (!isRealElement && sameVnode(oldVnode, vnode)) {
- // patch existing root node
- patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);
- } else {
- if (isRealElement) {
- // mounting to a real element
- // check if this is server-rendered content and if we can perform
- // a successful hydration.
- if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
- oldVnode.removeAttribute(SSR_ATTR);
- hydrating = true;
- }
- if (isTrue(hydrating)) {
- if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
- invokeInsertHook(vnode, insertedVnodeQueue, true);
- return oldVnode
- } else if (false) {
- warn(
- 'The client-side rendered virtual DOM tree is not matching ' +
- 'server-rendered content. This is likely caused by incorrect ' +
- 'HTML markup, for example nesting block-level elements inside ' +
- '<p>, or missing <tbody>. Bailing hydration and performing ' +
- 'full client-side render.'
- );
- }
- }
- // either not server-rendered, or hydration failed.
- // create an empty node and replace it
- oldVnode = emptyNodeAt(oldVnode);
- }
- // replacing existing element
- var oldElm = oldVnode.elm;
- var parentElm$1 = nodeOps.parentNode(oldElm);
- // create new node
- createElm(
- vnode,
- insertedVnodeQueue,
- // extremely rare edge case: do not insert if old element is in a
- // leaving transition. Only happens when combining transition +
- // keep-alive + HOCs. (#4590)
- oldElm._leaveCb ? null : parentElm$1,
- nodeOps.nextSibling(oldElm)
- );
- // update parent placeholder node element, recursively
- if (isDef(vnode.parent)) {
- var ancestor = vnode.parent;
- var patchable = isPatchable(vnode);
- while (ancestor) {
- for (var i = 0; i < cbs.destroy.length; ++i) {
- cbs.destroy[i](ancestor);
- }
- ancestor.elm = vnode.elm;
- if (patchable) {
- for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
- cbs.create[i$1](emptyNode, ancestor);
- }
- // #6513
- // invoke insert hooks that may have been merged by create hooks.
- // e.g. for directives that uses the "inserted" hook.
- var insert = ancestor.data.hook.insert;
- if (insert.merged) {
- // start at index 1 to avoid re-invoking component mounted hook
- for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {
- insert.fns[i$2]();
- }
- }
- } else {
- registerRef(ancestor);
- }
- ancestor = ancestor.parent;
- }
- }
- // destroy old node
- if (isDef(parentElm$1)) {
- removeVnodes(parentElm$1, [oldVnode], 0, 0);
- } else if (isDef(oldVnode.tag)) {
- invokeDestroyHook(oldVnode);
- }
- }
- }
- invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
- return vnode.elm
- }
- }
- /* */
- var directives = {
- create: updateDirectives,
- update: updateDirectives,
- destroy: function unbindDirectives (vnode) {
- updateDirectives(vnode, emptyNode);
- }
- };
- function updateDirectives (oldVnode, vnode) {
- if (oldVnode.data.directives || vnode.data.directives) {
- _update(oldVnode, vnode);
- }
- }
- function _update (oldVnode, vnode) {
- var isCreate = oldVnode === emptyNode;
- var isDestroy = vnode === emptyNode;
- var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
- var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);
- var dirsWithInsert = [];
- var dirsWithPostpatch = [];
- var key, oldDir, dir;
- for (key in newDirs) {
- oldDir = oldDirs[key];
- dir = newDirs[key];
- if (!oldDir) {
- // new directive, bind
- callHook$1(dir, 'bind', vnode, oldVnode);
- if (dir.def && dir.def.inserted) {
- dirsWithInsert.push(dir);
- }
- } else {
- // existing directive, update
- dir.oldValue = oldDir.value;
- callHook$1(dir, 'update', vnode, oldVnode);
- if (dir.def && dir.def.componentUpdated) {
- dirsWithPostpatch.push(dir);
- }
- }
- }
- if (dirsWithInsert.length) {
- var callInsert = function () {
- for (var i = 0; i < dirsWithInsert.length; i++) {
- callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
- }
- };
- if (isCreate) {
- mergeVNodeHook(vnode, 'insert', callInsert);
- } else {
- callInsert();
- }
- }
- if (dirsWithPostpatch.length) {
- mergeVNodeHook(vnode, 'postpatch', function () {
- for (var i = 0; i < dirsWithPostpatch.length; i++) {
- callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
- }
- });
- }
- if (!isCreate) {
- for (key in oldDirs) {
- if (!newDirs[key]) {
- // no longer present, unbind
- callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
- }
- }
- }
- }
- var emptyModifiers = Object.create(null);
- function normalizeDirectives$1 (
- dirs,
- vm
- ) {
- var res = Object.create(null);
- if (!dirs) {
- // $flow-disable-line
- return res
- }
- var i, dir;
- for (i = 0; i < dirs.length; i++) {
- dir = dirs[i];
- if (!dir.modifiers) {
- // $flow-disable-line
- dir.modifiers = emptyModifiers;
- }
- res[getRawDirName(dir)] = dir;
- dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
- }
- // $flow-disable-line
- return res
- }
- function getRawDirName (dir) {
- return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))
- }
- function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {
- var fn = dir.def && dir.def[hook];
- if (fn) {
- try {
- fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
- } catch (e) {
- handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));
- }
- }
- }
- var baseModules = [
- ref,
- directives
- ];
- /* */
- function updateAttrs (oldVnode, vnode) {
- var opts = vnode.componentOptions;
- if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
- return
- }
- if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
- return
- }
- var key, cur, old;
- var elm = vnode.elm;
- var oldAttrs = oldVnode.data.attrs || {};
- var attrs = vnode.data.attrs || {};
- // clone observed objects, as the user probably wants to mutate it
- if (isDef(attrs.__ob__)) {
- attrs = vnode.data.attrs = extend({}, attrs);
- }
- for (key in attrs) {
- cur = attrs[key];
- old = oldAttrs[key];
- if (old !== cur) {
- setAttr(elm, key, cur);
- }
- }
- // #4391: in IE9, setting type can reset value for input[type=radio]
- // #6666: IE/Edge forces progress value down to 1 before setting a max
- /* istanbul ignore if */
- if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
- setAttr(elm, 'value', attrs.value);
- }
- for (key in oldAttrs) {
- if (isUndef(attrs[key])) {
- if (isXlink(key)) {
- elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
- } else if (!isEnumeratedAttr(key)) {
- elm.removeAttribute(key);
- }
- }
- }
- }
- function setAttr (el, key, value) {
- if (isBooleanAttr(key)) {
- // set attribute for blank value
- // e.g. <option disabled>Select one</option>
- if (isFalsyAttrValue(value)) {
- el.removeAttribute(key);
- } else {
- // technically allowfullscreen is a boolean attribute for <iframe>,
- // but Flash expects a value of "true" when used on <embed> tag
- value = key === 'allowfullscreen' && el.tagName === 'EMBED'
- ? 'true'
- : key;
- el.setAttribute(key, value);
- }
- } else if (isEnumeratedAttr(key)) {
- el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');
- } else if (isXlink(key)) {
- if (isFalsyAttrValue(value)) {
- el.removeAttributeNS(xlinkNS, getXlinkProp(key));
- } else {
- el.setAttributeNS(xlinkNS, key, value);
- }
- } else {
- if (isFalsyAttrValue(value)) {
- el.removeAttribute(key);
- } else {
- // #7138: IE10 & 11 fires input event when setting placeholder on
- // <textarea>... block the first input event and remove the blocker
- // immediately.
- /* istanbul ignore if */
- if (
- isIE && !isIE9 &&
- el.tagName === 'TEXTAREA' &&
- key === 'placeholder' && !el.__ieph
- ) {
- var blocker = function (e) {
- e.stopImmediatePropagation();
- el.removeEventListener('input', blocker);
- };
- el.addEventListener('input', blocker);
- // $flow-disable-line
- el.__ieph = true; /* IE placeholder patched */
- }
- el.setAttribute(key, value);
- }
- }
- }
- var attrs = {
- create: updateAttrs,
- update: updateAttrs
- };
- /* */
- function updateClass (oldVnode, vnode) {
- var el = vnode.elm;
- var data = vnode.data;
- var oldData = oldVnode.data;
- if (
- isUndef(data.staticClass) &&
- isUndef(data.class) && (
- isUndef(oldData) || (
- isUndef(oldData.staticClass) &&
- isUndef(oldData.class)
- )
- )
- ) {
- return
- }
- var cls = genClassForVnode(vnode);
- // handle transition classes
- var transitionClass = el._transitionClasses;
- if (isDef(transitionClass)) {
- cls = concat(cls, stringifyClass(transitionClass));
- }
- // set the class
- if (cls !== el._prevClass) {
- el.setAttribute('class', cls);
- el._prevClass = cls;
- }
- }
- var klass = {
- create: updateClass,
- update: updateClass
- };
- /* */
- var validDivisionCharRE = /[\w).+\-_$\]]/;
- function parseFilters (exp) {
- var inSingle = false;
- var inDouble = false;
- var inTemplateString = false;
- var inRegex = false;
- var curly = 0;
- var square = 0;
- var paren = 0;
- var lastFilterIndex = 0;
- var c, prev, i, expression, filters;
- for (i = 0; i < exp.length; i++) {
- prev = c;
- c = exp.charCodeAt(i);
- if (inSingle) {
- if (c === 0x27 && prev !== 0x5C) { inSingle = false; }
- } else if (inDouble) {
- if (c === 0x22 && prev !== 0x5C) { inDouble = false; }
- } else if (inTemplateString) {
- if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }
- } else if (inRegex) {
- if (c === 0x2f && prev !== 0x5C) { inRegex = false; }
- } else if (
- c === 0x7C && // pipe
- exp.charCodeAt(i + 1) !== 0x7C &&
- exp.charCodeAt(i - 1) !== 0x7C &&
- !curly && !square && !paren
- ) {
- if (expression === undefined) {
- // first filter, end of expression
- lastFilterIndex = i + 1;
- expression = exp.slice(0, i).trim();
- } else {
- pushFilter();
- }
- } else {
- switch (c) {
- case 0x22: inDouble = true; break // "
- case 0x27: inSingle = true; break // '
- case 0x60: inTemplateString = true; break // `
- case 0x28: paren++; break // (
- case 0x29: paren--; break // )
- case 0x5B: square++; break // [
- case 0x5D: square--; break // ]
- case 0x7B: curly++; break // {
- case 0x7D: curly--; break // }
- }
- if (c === 0x2f) { // /
- var j = i - 1;
- var p = (void 0);
- // find first non-whitespace prev char
- for (; j >= 0; j--) {
- p = exp.charAt(j);
- if (p !== ' ') { break }
- }
- if (!p || !validDivisionCharRE.test(p)) {
- inRegex = true;
- }
- }
- }
- }
- if (expression === undefined) {
- expression = exp.slice(0, i).trim();
- } else if (lastFilterIndex !== 0) {
- pushFilter();
- }
- function pushFilter () {
- (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
- lastFilterIndex = i + 1;
- }
- if (filters) {
- for (i = 0; i < filters.length; i++) {
- expression = wrapFilter(expression, filters[i]);
- }
- }
- return expression
- }
- function wrapFilter (exp, filter) {
- var i = filter.indexOf('(');
- if (i < 0) {
- // _f: resolveFilter
- return ("_f(\"" + filter + "\")(" + exp + ")")
- } else {
- var name = filter.slice(0, i);
- var args = filter.slice(i + 1);
- return ("_f(\"" + name + "\")(" + exp + "," + args)
- }
- }
- /* */
- function baseWarn (msg) {
- console.error(("[Vue compiler]: " + msg));
- }
- function pluckModuleFunction (
- modules,
- key
- ) {
- return modules
- ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })
- : []
- }
- function addProp (el, name, value) {
- (el.props || (el.props = [])).push({ name: name, value: value });
- el.plain = false;
- }
- function addAttr (el, name, value) {
- (el.attrs || (el.attrs = [])).push({ name: name, value: value });
- el.plain = false;
- }
- // add a raw attr (use this in preTransforms)
- function addRawAttr (el, name, value) {
- el.attrsMap[name] = value;
- el.attrsList.push({ name: name, value: value });
- }
- function addDirective (
- el,
- name,
- rawName,
- value,
- arg,
- modifiers
- ) {
- (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });
- el.plain = false;
- }
- function addHandler (
- el,
- name,
- value,
- modifiers,
- important,
- warn
- ) {
- modifiers = modifiers || emptyObject;
- // warn prevent and passive modifier
- /* istanbul ignore if */
- if (
- false
- ) {
- warn(
- 'passive and prevent can\'t be used together. ' +
- 'Passive handler can\'t prevent default event.'
- );
- }
- // check capture modifier
- if (modifiers.capture) {
- delete modifiers.capture;
- name = '!' + name; // mark the event as captured
- }
- if (modifiers.once) {
- delete modifiers.once;
- name = '~' + name; // mark the event as once
- }
- /* istanbul ignore if */
- if (modifiers.passive) {
- delete modifiers.passive;
- name = '&' + name; // mark the event as passive
- }
- // normalize click.right and click.middle since they don't actually fire
- // this is technically browser-specific, but at least for now browsers are
- // the only target envs that have right/middle clicks.
- if (name === 'click') {
- if (modifiers.right) {
- name = 'contextmenu';
- delete modifiers.right;
- } else if (modifiers.middle) {
- name = 'mouseup';
- }
- }
- var events;
- if (modifiers.native) {
- delete modifiers.native;
- events = el.nativeEvents || (el.nativeEvents = {});
- } else {
- events = el.events || (el.events = {});
- }
- var newHandler = { value: value };
- if (modifiers !== emptyObject) {
- newHandler.modifiers = modifiers;
- }
- var handlers = events[name];
- /* istanbul ignore if */
- if (Array.isArray(handlers)) {
- important ? handlers.unshift(newHandler) : handlers.push(newHandler);
- } else if (handlers) {
- events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
- } else {
- events[name] = newHandler;
- }
- el.plain = false;
- }
- function getBindingAttr (
- el,
- name,
- getStatic
- ) {
- var dynamicValue =
- getAndRemoveAttr(el, ':' + name) ||
- getAndRemoveAttr(el, 'v-bind:' + name);
- if (dynamicValue != null) {
- return parseFilters(dynamicValue)
- } else if (getStatic !== false) {
- var staticValue = getAndRemoveAttr(el, name);
- if (staticValue != null) {
- return JSON.stringify(staticValue)
- }
- }
- }
- // note: this only removes the attr from the Array (attrsList) so that it
- // doesn't get processed by processAttrs.
- // By default it does NOT remove it from the map (attrsMap) because the map is
- // needed during codegen.
- function getAndRemoveAttr (
- el,
- name,
- removeFromMap
- ) {
- var val;
- if ((val = el.attrsMap[name]) != null) {
- var list = el.attrsList;
- for (var i = 0, l = list.length; i < l; i++) {
- if (list[i].name === name) {
- list.splice(i, 1);
- break
- }
- }
- }
- if (removeFromMap) {
- delete el.attrsMap[name];
- }
- return val
- }
- /* */
- /**
- * Cross-platform code generation for component v-model
- */
- function genComponentModel (
- el,
- value,
- modifiers
- ) {
- var ref = modifiers || {};
- var number = ref.number;
- var trim = ref.trim;
- var baseValueExpression = '$$v';
- var valueExpression = baseValueExpression;
- if (trim) {
- valueExpression =
- "(typeof " + baseValueExpression + " === 'string'" +
- "? " + baseValueExpression + ".trim()" +
- ": " + baseValueExpression + ")";
- }
- if (number) {
- valueExpression = "_n(" + valueExpression + ")";
- }
- var assignment = genAssignmentCode(value, valueExpression);
- el.model = {
- value: ("(" + value + ")"),
- expression: ("\"" + value + "\""),
- callback: ("function (" + baseValueExpression + ") {" + assignment + "}")
- };
- }
- /**
- * Cross-platform codegen helper for generating v-model value assignment code.
- */
- function genAssignmentCode (
- value,
- assignment
- ) {
- var res = parseModel(value);
- if (res.key === null) {
- return (value + "=" + assignment)
- } else {
- return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")")
- }
- }
- /**
- * Parse a v-model expression into a base path and a final key segment.
- * Handles both dot-path and possible square brackets.
- *
- * Possible cases:
- *
- * - test
- * - test[key]
- * - test[test1[key]]
- * - test["a"][key]
- * - xxx.test[a[a].test1[key]]
- * - test.xxx.a["asa"][test1[key]]
- *
- */
- var len;
- var str;
- var chr;
- var index$1;
- var expressionPos;
- var expressionEndPos;
- function parseModel (val) {
- len = val.length;
- if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
- index$1 = val.lastIndexOf('.');
- if (index$1 > -1) {
- return {
- exp: val.slice(0, index$1),
- key: '"' + val.slice(index$1 + 1) + '"'
- }
- } else {
- return {
- exp: val,
- key: null
- }
- }
- }
- str = val;
- index$1 = expressionPos = expressionEndPos = 0;
- while (!eof()) {
- chr = next();
- /* istanbul ignore if */
- if (isStringStart(chr)) {
- parseString(chr);
- } else if (chr === 0x5B) {
- parseBracket(chr);
- }
- }
- return {
- exp: val.slice(0, expressionPos),
- key: val.slice(expressionPos + 1, expressionEndPos)
- }
- }
- function next () {
- return str.charCodeAt(++index$1)
- }
- function eof () {
- return index$1 >= len
- }
- function isStringStart (chr) {
- return chr === 0x22 || chr === 0x27
- }
- function parseBracket (chr) {
- var inBracket = 1;
- expressionPos = index$1;
- while (!eof()) {
- chr = next();
- if (isStringStart(chr)) {
- parseString(chr);
- continue
- }
- if (chr === 0x5B) { inBracket++; }
- if (chr === 0x5D) { inBracket--; }
- if (inBracket === 0) {
- expressionEndPos = index$1;
- break
- }
- }
- }
- function parseString (chr) {
- var stringQuote = chr;
- while (!eof()) {
- chr = next();
- if (chr === stringQuote) {
- break
- }
- }
- }
- /* */
- var warn$1;
- // in some cases, the event used has to be determined at runtime
- // so we used some reserved tokens during compile.
- var RANGE_TOKEN = '__r';
- var CHECKBOX_RADIO_TOKEN = '__c';
- function model (
- el,
- dir,
- _warn
- ) {
- warn$1 = _warn;
- var value = dir.value;
- var modifiers = dir.modifiers;
- var tag = el.tag;
- var type = el.attrsMap.type;
- if (false) {
- // inputs with type="file" are read only and setting the input's
- // value will throw an error.
- if (tag === 'input' && type === 'file') {
- warn$1(
- "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" +
- "File inputs are read only. Use a v-on:change listener instead."
- );
- }
- }
- if (el.component) {
- genComponentModel(el, value, modifiers);
- // component v-model doesn't need extra runtime
- return false
- } else if (tag === 'select') {
- genSelect(el, value, modifiers);
- } else if (tag === 'input' && type === 'checkbox') {
- genCheckboxModel(el, value, modifiers);
- } else if (tag === 'input' && type === 'radio') {
- genRadioModel(el, value, modifiers);
- } else if (tag === 'input' || tag === 'textarea') {
- genDefaultModel(el, value, modifiers);
- } else if (!config.isReservedTag(tag)) {
- genComponentModel(el, value, modifiers);
- // component v-model doesn't need extra runtime
- return false
- } else if (false) {
- warn$1(
- "<" + (el.tag) + " v-model=\"" + value + "\">: " +
- "v-model is not supported on this element type. " +
- 'If you are working with contenteditable, it\'s recommended to ' +
- 'wrap a library dedicated for that purpose inside a custom component.'
- );
- }
- // ensure runtime directive metadata
- return true
- }
- function genCheckboxModel (
- el,
- value,
- modifiers
- ) {
- var number = modifiers && modifiers.number;
- var valueBinding = getBindingAttr(el, 'value') || 'null';
- var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
- var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
- addProp(el, 'checked',
- "Array.isArray(" + value + ")" +
- "?_i(" + value + "," + valueBinding + ")>-1" + (
- trueValueBinding === 'true'
- ? (":(" + value + ")")
- : (":_q(" + value + "," + trueValueBinding + ")")
- )
- );
- addHandler(el, 'change',
- "var $$a=" + value + "," +
- '$$el=$event.target,' +
- "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" +
- 'if(Array.isArray($$a)){' +
- "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," +
- '$$i=_i($$a,$$v);' +
- "if($$el.checked){$$i<0&&(" + value + "=$$a.concat([$$v]))}" +
- "else{$$i>-1&&(" + value + "=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}" +
- "}else{" + (genAssignmentCode(value, '$$c')) + "}",
- null, true
- );
- }
- function genRadioModel (
- el,
- value,
- modifiers
- ) {
- var number = modifiers && modifiers.number;
- var valueBinding = getBindingAttr(el, 'value') || 'null';
- valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;
- addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));
- addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
- }
- function genSelect (
- el,
- value,
- modifiers
- ) {
- var number = modifiers && modifiers.number;
- var selectedVal = "Array.prototype.filter" +
- ".call($event.target.options,function(o){return o.selected})" +
- ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" +
- "return " + (number ? '_n(val)' : 'val') + "})";
- var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
- var code = "var $$selectedVal = " + selectedVal + ";";
- code = code + " " + (genAssignmentCode(value, assignment));
- addHandler(el, 'change', code, null, true);
- }
- function genDefaultModel (
- el,
- value,
- modifiers
- ) {
- var type = el.attrsMap.type;
- // warn if v-bind:value conflicts with v-model
- if (false) {
- var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
- if (value$1) {
- var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
- warn$1(
- binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " +
- 'because the latter already expands to a value binding internally'
- );
- }
- }
- var ref = modifiers || {};
- var lazy = ref.lazy;
- var number = ref.number;
- var trim = ref.trim;
- var needCompositionGuard = !lazy && type !== 'range';
- var event = lazy
- ? 'change'
- : type === 'range'
- ? RANGE_TOKEN
- : 'input';
- var valueExpression = '$event.target.value';
- if (trim) {
- valueExpression = "$event.target.value.trim()";
- }
- if (number) {
- valueExpression = "_n(" + valueExpression + ")";
- }
- var code = genAssignmentCode(value, valueExpression);
- if (needCompositionGuard) {
- code = "if($event.target.composing)return;" + code;
- }
- addProp(el, 'value', ("(" + value + ")"));
- addHandler(el, event, code, null, true);
- if (trim || number) {
- addHandler(el, 'blur', '$forceUpdate()');
- }
- }
- /* */
- // normalize v-model event tokens that can only be determined at runtime.
- // it's important to place the event as the first in the array because
- // the whole point is ensuring the v-model callback gets called before
- // user-attached handlers.
- function normalizeEvents (on) {
- /* istanbul ignore if */
- if (isDef(on[RANGE_TOKEN])) {
- // IE input[type=range] only supports `change` event
- var event = isIE ? 'change' : 'input';
- on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
- delete on[RANGE_TOKEN];
- }
- // This was originally intended to fix #4521 but no longer necessary
- // after 2.5. Keeping it for backwards compat with generated code from < 2.4
- /* istanbul ignore if */
- if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
- on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
- delete on[CHECKBOX_RADIO_TOKEN];
- }
- }
- var target$1;
- function createOnceHandler (handler, event, capture) {
- var _target = target$1; // save current target element in closure
- return function onceHandler () {
- var res = handler.apply(null, arguments);
- if (res !== null) {
- remove$2(event, onceHandler, capture, _target);
- }
- }
- }
- function add$1 (
- event,
- handler,
- once$$1,
- capture,
- passive
- ) {
- handler = withMacroTask(handler);
- if (once$$1) { handler = createOnceHandler(handler, event, capture); }
- target$1.addEventListener(
- event,
- handler,
- supportsPassive
- ? { capture: capture, passive: passive }
- : capture
- );
- }
- function remove$2 (
- event,
- handler,
- capture,
- _target
- ) {
- (_target || target$1).removeEventListener(
- event,
- handler._withTask || handler,
- capture
- );
- }
- function updateDOMListeners (oldVnode, vnode) {
- if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
- return
- }
- var on = vnode.data.on || {};
- var oldOn = oldVnode.data.on || {};
- target$1 = vnode.elm;
- normalizeEvents(on);
- updateListeners(on, oldOn, add$1, remove$2, vnode.context);
- target$1 = undefined;
- }
- var events = {
- create: updateDOMListeners,
- update: updateDOMListeners
- };
- /* */
- function updateDOMProps (oldVnode, vnode) {
- if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
- return
- }
- var key, cur;
- var elm = vnode.elm;
- var oldProps = oldVnode.data.domProps || {};
- var props = vnode.data.domProps || {};
- // clone observed objects, as the user probably wants to mutate it
- if (isDef(props.__ob__)) {
- props = vnode.data.domProps = extend({}, props);
- }
- for (key in oldProps) {
- if (isUndef(props[key])) {
- elm[key] = '';
- }
- }
- for (key in props) {
- cur = props[key];
- // ignore children if the node has textContent or innerHTML,
- // as these will throw away existing DOM nodes and cause removal errors
- // on subsequent patches (#3360)
- if (key === 'textContent' || key === 'innerHTML') {
- if (vnode.children) { vnode.children.length = 0; }
- if (cur === oldProps[key]) { continue }
- // #6601 work around Chrome version <= 55 bug where single textNode
- // replaced by innerHTML/textContent retains its parentNode property
- if (elm.childNodes.length === 1) {
- elm.removeChild(elm.childNodes[0]);
- }
- }
- if (key === 'value') {
- // store value as _value as well since
- // non-string values will be stringified
- elm._value = cur;
- // avoid resetting cursor position when value is the same
- var strCur = isUndef(cur) ? '' : String(cur);
- if (shouldUpdateValue(elm, strCur)) {
- elm.value = strCur;
- }
- } else {
- elm[key] = cur;
- }
- }
- }
- // check platforms/web/util/attrs.js acceptValue
- function shouldUpdateValue (elm, checkVal) {
- return (!elm.composing && (
- elm.tagName === 'OPTION' ||
- isNotInFocusAndDirty(elm, checkVal) ||
- isDirtyWithModifiers(elm, checkVal)
- ))
- }
- function isNotInFocusAndDirty (elm, checkVal) {
- // return true when textbox (.number and .trim) loses focus and its value is
- // not equal to the updated value
- var notInFocus = true;
- // #6157
- // work around IE bug when accessing document.activeElement in an iframe
- try { notInFocus = document.activeElement !== elm; } catch (e) {}
- return notInFocus && elm.value !== checkVal
- }
- function isDirtyWithModifiers (elm, newVal) {
- var value = elm.value;
- var modifiers = elm._vModifiers; // injected by v-model runtime
- if (isDef(modifiers)) {
- if (modifiers.lazy) {
- // inputs with lazy should only be updated when not in focus
- return false
- }
- if (modifiers.number) {
- return toNumber(value) !== toNumber(newVal)
- }
- if (modifiers.trim) {
- return value.trim() !== newVal.trim()
- }
- }
- return value !== newVal
- }
- var domProps = {
- create: updateDOMProps,
- update: updateDOMProps
- };
- /* */
- var parseStyleText = cached(function (cssText) {
- var res = {};
- var listDelimiter = /;(?![^(]*\))/g;
- var propertyDelimiter = /:(.+)/;
- cssText.split(listDelimiter).forEach(function (item) {
- if (item) {
- var tmp = item.split(propertyDelimiter);
- tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
- }
- });
- return res
- });
- // merge static and dynamic style data on the same vnode
- function normalizeStyleData (data) {
- var style = normalizeStyleBinding(data.style);
- // static style is pre-processed into an object during compilation
- // and is always a fresh object, so it's safe to merge into it
- return data.staticStyle
- ? extend(data.staticStyle, style)
- : style
- }
- // normalize possible array / string values into Object
- function normalizeStyleBinding (bindingStyle) {
- if (Array.isArray(bindingStyle)) {
- return toObject(bindingStyle)
- }
- if (typeof bindingStyle === 'string') {
- return parseStyleText(bindingStyle)
- }
- return bindingStyle
- }
- /**
- * parent component style should be after child's
- * so that parent component's style could override it
- */
- function getStyle (vnode, checkChild) {
- var res = {};
- var styleData;
- if (checkChild) {
- var childNode = vnode;
- while (childNode.componentInstance) {
- childNode = childNode.componentInstance._vnode;
- if (
- childNode && childNode.data &&
- (styleData = normalizeStyleData(childNode.data))
- ) {
- extend(res, styleData);
- }
- }
- }
- if ((styleData = normalizeStyleData(vnode.data))) {
- extend(res, styleData);
- }
- var parentNode = vnode;
- while ((parentNode = parentNode.parent)) {
- if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
- extend(res, styleData);
- }
- }
- return res
- }
- /* */
- var cssVarRE = /^--/;
- var importantRE = /\s*!important$/;
- var setProp = function (el, name, val) {
- /* istanbul ignore if */
- if (cssVarRE.test(name)) {
- el.style.setProperty(name, val);
- } else if (importantRE.test(val)) {
- el.style.setProperty(name, val.replace(importantRE, ''), 'important');
- } else {
- var normalizedName = normalize(name);
- if (Array.isArray(val)) {
- // Support values array created by autoprefixer, e.g.
- // {display: ["-webkit-box", "-ms-flexbox", "flex"]}
- // Set them one by one, and the browser will only set those it can recognize
- for (var i = 0, len = val.length; i < len; i++) {
- el.style[normalizedName] = val[i];
- }
- } else {
- el.style[normalizedName] = val;
- }
- }
- };
- var vendorNames = ['Webkit', 'Moz', 'ms'];
- var emptyStyle;
- var normalize = cached(function (prop) {
- emptyStyle = emptyStyle || document.createElement('div').style;
- prop = camelize(prop);
- if (prop !== 'filter' && (prop in emptyStyle)) {
- return prop
- }
- var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
- for (var i = 0; i < vendorNames.length; i++) {
- var name = vendorNames[i] + capName;
- if (name in emptyStyle) {
- return name
- }
- }
- });
- function updateStyle (oldVnode, vnode) {
- var data = vnode.data;
- var oldData = oldVnode.data;
- if (isUndef(data.staticStyle) && isUndef(data.style) &&
- isUndef(oldData.staticStyle) && isUndef(oldData.style)
- ) {
- return
- }
- var cur, name;
- var el = vnode.elm;
- var oldStaticStyle = oldData.staticStyle;
- var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};
- // if static style exists, stylebinding already merged into it when doing normalizeStyleData
- var oldStyle = oldStaticStyle || oldStyleBinding;
- var style = normalizeStyleBinding(vnode.data.style) || {};
- // store normalized style under a different key for next diff
- // make sure to clone it if it's reactive, since the user likely wants
- // to mutate it.
- vnode.data.normalizedStyle = isDef(style.__ob__)
- ? extend({}, style)
- : style;
- var newStyle = getStyle(vnode, true);
- for (name in oldStyle) {
- if (isUndef(newStyle[name])) {
- setProp(el, name, '');
- }
- }
- for (name in newStyle) {
- cur = newStyle[name];
- if (cur !== oldStyle[name]) {
- // ie9 setting to null has no effect, must use empty string
- setProp(el, name, cur == null ? '' : cur);
- }
- }
- }
- var style = {
- create: updateStyle,
- update: updateStyle
- };
- /* */
- /**
- * Add class with compatibility for SVG since classList is not supported on
- * SVG elements in IE
- */
- function addClass (el, cls) {
- /* istanbul ignore if */
- if (!cls || !(cls = cls.trim())) {
- return
- }
- /* istanbul ignore else */
- if (el.classList) {
- if (cls.indexOf(' ') > -1) {
- cls.split(/\s+/).forEach(function (c) { return el.classList.add(c); });
- } else {
- el.classList.add(cls);
- }
- } else {
- var cur = " " + (el.getAttribute('class') || '') + " ";
- if (cur.indexOf(' ' + cls + ' ') < 0) {
- el.setAttribute('class', (cur + cls).trim());
- }
- }
- }
- /**
- * Remove class with compatibility for SVG since classList is not supported on
- * SVG elements in IE
- */
- function removeClass (el, cls) {
- /* istanbul ignore if */
- if (!cls || !(cls = cls.trim())) {
- return
- }
- /* istanbul ignore else */
- if (el.classList) {
- if (cls.indexOf(' ') > -1) {
- cls.split(/\s+/).forEach(function (c) { return el.classList.remove(c); });
- } else {
- el.classList.remove(cls);
- }
- if (!el.classList.length) {
- el.removeAttribute('class');
- }
- } else {
- var cur = " " + (el.getAttribute('class') || '') + " ";
- var tar = ' ' + cls + ' ';
- while (cur.indexOf(tar) >= 0) {
- cur = cur.replace(tar, ' ');
- }
- cur = cur.trim();
- if (cur) {
- el.setAttribute('class', cur);
- } else {
- el.removeAttribute('class');
- }
- }
- }
- /* */
- function resolveTransition (def) {
- if (!def) {
- return
- }
- /* istanbul ignore else */
- if (typeof def === 'object') {
- var res = {};
- if (def.css !== false) {
- extend(res, autoCssTransition(def.name || 'v'));
- }
- extend(res, def);
- return res
- } else if (typeof def === 'string') {
- return autoCssTransition(def)
- }
- }
- var autoCssTransition = cached(function (name) {
- return {
- enterClass: (name + "-enter"),
- enterToClass: (name + "-enter-to"),
- enterActiveClass: (name + "-enter-active"),
- leaveClass: (name + "-leave"),
- leaveToClass: (name + "-leave-to"),
- leaveActiveClass: (name + "-leave-active")
- }
- });
- var hasTransition = inBrowser && !isIE9;
- var TRANSITION = 'transition';
- var ANIMATION = 'animation';
- // Transition property/event sniffing
- var transitionProp = 'transition';
- var transitionEndEvent = 'transitionend';
- var animationProp = 'animation';
- var animationEndEvent = 'animationend';
- if (hasTransition) {
- /* istanbul ignore if */
- if (window.ontransitionend === undefined &&
- window.onwebkittransitionend !== undefined
- ) {
- transitionProp = 'WebkitTransition';
- transitionEndEvent = 'webkitTransitionEnd';
- }
- if (window.onanimationend === undefined &&
- window.onwebkitanimationend !== undefined
- ) {
- animationProp = 'WebkitAnimation';
- animationEndEvent = 'webkitAnimationEnd';
- }
- }
- // binding to window is necessary to make hot reload work in IE in strict mode
- var raf = inBrowser
- ? window.requestAnimationFrame
- ? window.requestAnimationFrame.bind(window)
- : setTimeout
- : /* istanbul ignore next */ function (fn) { return fn(); };
- function nextFrame (fn) {
- raf(function () {
- raf(fn);
- });
- }
- function addTransitionClass (el, cls) {
- var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
- if (transitionClasses.indexOf(cls) < 0) {
- transitionClasses.push(cls);
- addClass(el, cls);
- }
- }
- function removeTransitionClass (el, cls) {
- if (el._transitionClasses) {
- remove(el._transitionClasses, cls);
- }
- removeClass(el, cls);
- }
- function whenTransitionEnds (
- el,
- expectedType,
- cb
- ) {
- var ref = getTransitionInfo(el, expectedType);
- var type = ref.type;
- var timeout = ref.timeout;
- var propCount = ref.propCount;
- if (!type) { return cb() }
- var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
- var ended = 0;
- var end = function () {
- el.removeEventListener(event, onEnd);
- cb();
- };
- var onEnd = function (e) {
- if (e.target === el) {
- if (++ended >= propCount) {
- end();
- }
- }
- };
- setTimeout(function () {
- if (ended < propCount) {
- end();
- }
- }, timeout + 1);
- el.addEventListener(event, onEnd);
- }
- var transformRE = /\b(transform|all)(,|$)/;
- function getTransitionInfo (el, expectedType) {
- var styles = window.getComputedStyle(el);
- var transitionDelays = styles[transitionProp + 'Delay'].split(', ');
- var transitionDurations = styles[transitionProp + 'Duration'].split(', ');
- var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
- var animationDelays = styles[animationProp + 'Delay'].split(', ');
- var animationDurations = styles[animationProp + 'Duration'].split(', ');
- var animationTimeout = getTimeout(animationDelays, animationDurations);
- var type;
- var timeout = 0;
- var propCount = 0;
- /* istanbul ignore if */
- if (expectedType === TRANSITION) {
- if (transitionTimeout > 0) {
- type = TRANSITION;
- timeout = transitionTimeout;
- propCount = transitionDurations.length;
- }
- } else if (expectedType === ANIMATION) {
- if (animationTimeout > 0) {
- type = ANIMATION;
- timeout = animationTimeout;
- propCount = animationDurations.length;
- }
- } else {
- timeout = Math.max(transitionTimeout, animationTimeout);
- type = timeout > 0
- ? transitionTimeout > animationTimeout
- ? TRANSITION
- : ANIMATION
- : null;
- propCount = type
- ? type === TRANSITION
- ? transitionDurations.length
- : animationDurations.length
- : 0;
- }
- var hasTransform =
- type === TRANSITION &&
- transformRE.test(styles[transitionProp + 'Property']);
- return {
- type: type,
- timeout: timeout,
- propCount: propCount,
- hasTransform: hasTransform
- }
- }
- function getTimeout (delays, durations) {
- /* istanbul ignore next */
- while (delays.length < durations.length) {
- delays = delays.concat(delays);
- }
- return Math.max.apply(null, durations.map(function (d, i) {
- return toMs(d) + toMs(delays[i])
- }))
- }
- function toMs (s) {
- return Number(s.slice(0, -1)) * 1000
- }
- /* */
- function enter (vnode, toggleDisplay) {
- var el = vnode.elm;
- // call leave callback now
- if (isDef(el._leaveCb)) {
- el._leaveCb.cancelled = true;
- el._leaveCb();
- }
- var data = resolveTransition(vnode.data.transition);
- if (isUndef(data)) {
- return
- }
- /* istanbul ignore if */
- if (isDef(el._enterCb) || el.nodeType !== 1) {
- return
- }
- var css = data.css;
- var type = data.type;
- var enterClass = data.enterClass;
- var enterToClass = data.enterToClass;
- var enterActiveClass = data.enterActiveClass;
- var appearClass = data.appearClass;
- var appearToClass = data.appearToClass;
- var appearActiveClass = data.appearActiveClass;
- var beforeEnter = data.beforeEnter;
- var enter = data.enter;
- var afterEnter = data.afterEnter;
- var enterCancelled = data.enterCancelled;
- var beforeAppear = data.beforeAppear;
- var appear = data.appear;
- var afterAppear = data.afterAppear;
- var appearCancelled = data.appearCancelled;
- var duration = data.duration;
- // activeInstance will always be the <transition> component managing this
- // transition. One edge case to check is when the <transition> is placed
- // as the root node of a child component. In that case we need to check
- // <transition>'s parent for appear check.
- var context = activeInstance;
- var transitionNode = activeInstance.$vnode;
- while (transitionNode && transitionNode.parent) {
- transitionNode = transitionNode.parent;
- context = transitionNode.context;
- }
- var isAppear = !context._isMounted || !vnode.isRootInsert;
- if (isAppear && !appear && appear !== '') {
- return
- }
- var startClass = isAppear && appearClass
- ? appearClass
- : enterClass;
- var activeClass = isAppear && appearActiveClass
- ? appearActiveClass
- : enterActiveClass;
- var toClass = isAppear && appearToClass
- ? appearToClass
- : enterToClass;
- var beforeEnterHook = isAppear
- ? (beforeAppear || beforeEnter)
- : beforeEnter;
- var enterHook = isAppear
- ? (typeof appear === 'function' ? appear : enter)
- : enter;
- var afterEnterHook = isAppear
- ? (afterAppear || afterEnter)
- : afterEnter;
- var enterCancelledHook = isAppear
- ? (appearCancelled || enterCancelled)
- : enterCancelled;
- var explicitEnterDuration = toNumber(
- isObject(duration)
- ? duration.enter
- : duration
- );
- if (false) {
- checkDuration(explicitEnterDuration, 'enter', vnode);
- }
- var expectsCSS = css !== false && !isIE9;
- var userWantsControl = getHookArgumentsLength(enterHook);
- var cb = el._enterCb = once(function () {
- if (expectsCSS) {
- removeTransitionClass(el, toClass);
- removeTransitionClass(el, activeClass);
- }
- if (cb.cancelled) {
- if (expectsCSS) {
- removeTransitionClass(el, startClass);
- }
- enterCancelledHook && enterCancelledHook(el);
- } else {
- afterEnterHook && afterEnterHook(el);
- }
- el._enterCb = null;
- });
- if (!vnode.data.show) {
- // remove pending leave element on enter by injecting an insert hook
- mergeVNodeHook(vnode, 'insert', function () {
- var parent = el.parentNode;
- var pendingNode = parent && parent._pending && parent._pending[vnode.key];
- if (pendingNode &&
- pendingNode.tag === vnode.tag &&
- pendingNode.elm._leaveCb
- ) {
- pendingNode.elm._leaveCb();
- }
- enterHook && enterHook(el, cb);
- });
- }
- // start enter transition
- beforeEnterHook && beforeEnterHook(el);
- if (expectsCSS) {
- addTransitionClass(el, startClass);
- addTransitionClass(el, activeClass);
- nextFrame(function () {
- addTransitionClass(el, toClass);
- removeTransitionClass(el, startClass);
- if (!cb.cancelled && !userWantsControl) {
- if (isValidDuration(explicitEnterDuration)) {
- setTimeout(cb, explicitEnterDuration);
- } else {
- whenTransitionEnds(el, type, cb);
- }
- }
- });
- }
- if (vnode.data.show) {
- toggleDisplay && toggleDisplay();
- enterHook && enterHook(el, cb);
- }
- if (!expectsCSS && !userWantsControl) {
- cb();
- }
- }
- function leave (vnode, rm) {
- var el = vnode.elm;
- // call enter callback now
- if (isDef(el._enterCb)) {
- el._enterCb.cancelled = true;
- el._enterCb();
- }
- var data = resolveTransition(vnode.data.transition);
- if (isUndef(data) || el.nodeType !== 1) {
- return rm()
- }
- /* istanbul ignore if */
- if (isDef(el._leaveCb)) {
- return
- }
- var css = data.css;
- var type = data.type;
- var leaveClass = data.leaveClass;
- var leaveToClass = data.leaveToClass;
- var leaveActiveClass = data.leaveActiveClass;
- var beforeLeave = data.beforeLeave;
- var leave = data.leave;
- var afterLeave = data.afterLeave;
- var leaveCancelled = data.leaveCancelled;
- var delayLeave = data.delayLeave;
- var duration = data.duration;
- var expectsCSS = css !== false && !isIE9;
- var userWantsControl = getHookArgumentsLength(leave);
- var explicitLeaveDuration = toNumber(
- isObject(duration)
- ? duration.leave
- : duration
- );
- if (false) {
- checkDuration(explicitLeaveDuration, 'leave', vnode);
- }
- var cb = el._leaveCb = once(function () {
- if (el.parentNode && el.parentNode._pending) {
- el.parentNode._pending[vnode.key] = null;
- }
- if (expectsCSS) {
- removeTransitionClass(el, leaveToClass);
- removeTransitionClass(el, leaveActiveClass);
- }
- if (cb.cancelled) {
- if (expectsCSS) {
- removeTransitionClass(el, leaveClass);
- }
- leaveCancelled && leaveCancelled(el);
- } else {
- rm();
- afterLeave && afterLeave(el);
- }
- el._leaveCb = null;
- });
- if (delayLeave) {
- delayLeave(performLeave);
- } else {
- performLeave();
- }
- function performLeave () {
- // the delayed leave may have already been cancelled
- if (cb.cancelled) {
- return
- }
- // record leaving element
- if (!vnode.data.show) {
- (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;
- }
- beforeLeave && beforeLeave(el);
- if (expectsCSS) {
- addTransitionClass(el, leaveClass);
- addTransitionClass(el, leaveActiveClass);
- nextFrame(function () {
- addTransitionClass(el, leaveToClass);
- removeTransitionClass(el, leaveClass);
- if (!cb.cancelled && !userWantsControl) {
- if (isValidDuration(explicitLeaveDuration)) {
- setTimeout(cb, explicitLeaveDuration);
- } else {
- whenTransitionEnds(el, type, cb);
- }
- }
- });
- }
- leave && leave(el, cb);
- if (!expectsCSS && !userWantsControl) {
- cb();
- }
- }
- }
- // only used in dev mode
- function checkDuration (val, name, vnode) {
- if (typeof val !== 'number') {
- warn(
- "<transition> explicit " + name + " duration is not a valid number - " +
- "got " + (JSON.stringify(val)) + ".",
- vnode.context
- );
- } else if (isNaN(val)) {
- warn(
- "<transition> explicit " + name + " duration is NaN - " +
- 'the duration expression might be incorrect.',
- vnode.context
- );
- }
- }
- function isValidDuration (val) {
- return typeof val === 'number' && !isNaN(val)
- }
- /**
- * Normalize a transition hook's argument length. The hook may be:
- * - a merged hook (invoker) with the original in .fns
- * - a wrapped component method (check ._length)
- * - a plain function (.length)
- */
- function getHookArgumentsLength (fn) {
- if (isUndef(fn)) {
- return false
- }
- var invokerFns = fn.fns;
- if (isDef(invokerFns)) {
- // invoker
- return getHookArgumentsLength(
- Array.isArray(invokerFns)
- ? invokerFns[0]
- : invokerFns
- )
- } else {
- return (fn._length || fn.length) > 1
- }
- }
- function _enter (_, vnode) {
- if (vnode.data.show !== true) {
- enter(vnode);
- }
- }
- var transition = inBrowser ? {
- create: _enter,
- activate: _enter,
- remove: function remove$$1 (vnode, rm) {
- /* istanbul ignore else */
- if (vnode.data.show !== true) {
- leave(vnode, rm);
- } else {
- rm();
- }
- }
- } : {};
- var platformModules = [
- attrs,
- klass,
- events,
- domProps,
- style,
- transition
- ];
- /* */
- // the directive module should be applied last, after all
- // built-in modules have been applied.
- var modules = platformModules.concat(baseModules);
- var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });
- /**
- * Not type checking this file because flow doesn't like attaching
- * properties to Elements.
- */
- /* istanbul ignore if */
- if (isIE9) {
- // http://www.matts411.com/post/internet-explorer-9-oninput/
- document.addEventListener('selectionchange', function () {
- var el = document.activeElement;
- if (el && el.vmodel) {
- trigger(el, 'input');
- }
- });
- }
- var directive = {
- inserted: function inserted (el, binding, vnode, oldVnode) {
- if (vnode.tag === 'select') {
- // #6903
- if (oldVnode.elm && !oldVnode.elm._vOptions) {
- mergeVNodeHook(vnode, 'postpatch', function () {
- directive.componentUpdated(el, binding, vnode);
- });
- } else {
- setSelected(el, binding, vnode.context);
- }
- el._vOptions = [].map.call(el.options, getValue);
- } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
- el._vModifiers = binding.modifiers;
- if (!binding.modifiers.lazy) {
- // Safari < 10.2 & UIWebView doesn't fire compositionend when
- // switching focus before confirming composition choice
- // this also fixes the issue where some browsers e.g. iOS Chrome
- // fires "change" instead of "input" on autocomplete.
- el.addEventListener('change', onCompositionEnd);
- if (!isAndroid) {
- el.addEventListener('compositionstart', onCompositionStart);
- el.addEventListener('compositionend', onCompositionEnd);
- }
- /* istanbul ignore if */
- if (isIE9) {
- el.vmodel = true;
- }
- }
- }
- },
- componentUpdated: function componentUpdated (el, binding, vnode) {
- if (vnode.tag === 'select') {
- setSelected(el, binding, vnode.context);
- // in case the options rendered by v-for have changed,
- // it's possible that the value is out-of-sync with the rendered options.
- // detect such cases and filter out values that no longer has a matching
- // option in the DOM.
- var prevOptions = el._vOptions;
- var curOptions = el._vOptions = [].map.call(el.options, getValue);
- if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {
- // trigger change event if
- // no matching option found for at least one value
- var needReset = el.multiple
- ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })
- : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);
- if (needReset) {
- trigger(el, 'change');
- }
- }
- }
- }
- };
- function setSelected (el, binding, vm) {
- actuallySetSelected(el, binding, vm);
- /* istanbul ignore if */
- if (isIE || isEdge) {
- setTimeout(function () {
- actuallySetSelected(el, binding, vm);
- }, 0);
- }
- }
- function actuallySetSelected (el, binding, vm) {
- var value = binding.value;
- var isMultiple = el.multiple;
- if (isMultiple && !Array.isArray(value)) {
- "production" !== 'production' && warn(
- "<select multiple v-model=\"" + (binding.expression) + "\"> " +
- "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),
- vm
- );
- return
- }
- var selected, option;
- for (var i = 0, l = el.options.length; i < l; i++) {
- option = el.options[i];
- if (isMultiple) {
- selected = looseIndexOf(value, getValue(option)) > -1;
- if (option.selected !== selected) {
- option.selected = selected;
- }
- } else {
- if (looseEqual(getValue(option), value)) {
- if (el.selectedIndex !== i) {
- el.selectedIndex = i;
- }
- return
- }
- }
- }
- if (!isMultiple) {
- el.selectedIndex = -1;
- }
- }
- function hasNoMatchingOption (value, options) {
- return options.every(function (o) { return !looseEqual(o, value); })
- }
- function getValue (option) {
- return '_value' in option
- ? option._value
- : option.value
- }
- function onCompositionStart (e) {
- e.target.composing = true;
- }
- function onCompositionEnd (e) {
- // prevent triggering an input event for no reason
- if (!e.target.composing) { return }
- e.target.composing = false;
- trigger(e.target, 'input');
- }
- function trigger (el, type) {
- var e = document.createEvent('HTMLEvents');
- e.initEvent(type, true, true);
- el.dispatchEvent(e);
- }
- /* */
- // recursively search for possible transition defined inside the component root
- function locateNode (vnode) {
- return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
- ? locateNode(vnode.componentInstance._vnode)
- : vnode
- }
- var show = {
- bind: function bind (el, ref, vnode) {
- var value = ref.value;
- vnode = locateNode(vnode);
- var transition$$1 = vnode.data && vnode.data.transition;
- var originalDisplay = el.__vOriginalDisplay =
- el.style.display === 'none' ? '' : el.style.display;
- if (value && transition$$1) {
- vnode.data.show = true;
- enter(vnode, function () {
- el.style.display = originalDisplay;
- });
- } else {
- el.style.display = value ? originalDisplay : 'none';
- }
- },
- update: function update (el, ref, vnode) {
- var value = ref.value;
- var oldValue = ref.oldValue;
- /* istanbul ignore if */
- if (value === oldValue) { return }
- vnode = locateNode(vnode);
- var transition$$1 = vnode.data && vnode.data.transition;
- if (transition$$1) {
- vnode.data.show = true;
- if (value) {
- enter(vnode, function () {
- el.style.display = el.__vOriginalDisplay;
- });
- } else {
- leave(vnode, function () {
- el.style.display = 'none';
- });
- }
- } else {
- el.style.display = value ? el.__vOriginalDisplay : 'none';
- }
- },
- unbind: function unbind (
- el,
- binding,
- vnode,
- oldVnode,
- isDestroy
- ) {
- if (!isDestroy) {
- el.style.display = el.__vOriginalDisplay;
- }
- }
- };
- var platformDirectives = {
- model: directive,
- show: show
- };
- /* */
- // Provides transition support for a single element/component.
- // supports transition mode (out-in / in-out)
- var transitionProps = {
- name: String,
- appear: Boolean,
- css: Boolean,
- mode: String,
- type: String,
- enterClass: String,
- leaveClass: String,
- enterToClass: String,
- leaveToClass: String,
- enterActiveClass: String,
- leaveActiveClass: String,
- appearClass: String,
- appearActiveClass: String,
- appearToClass: String,
- duration: [Number, String, Object]
- };
- // in case the child is also an abstract component, e.g. <keep-alive>
- // we want to recursively retrieve the real component to be rendered
- function getRealChild (vnode) {
- var compOptions = vnode && vnode.componentOptions;
- if (compOptions && compOptions.Ctor.options.abstract) {
- return getRealChild(getFirstComponentChild(compOptions.children))
- } else {
- return vnode
- }
- }
- function extractTransitionData (comp) {
- var data = {};
- var options = comp.$options;
- // props
- for (var key in options.propsData) {
- data[key] = comp[key];
- }
- // events.
- // extract listeners and pass them directly to the transition methods
- var listeners = options._parentListeners;
- for (var key$1 in listeners) {
- data[camelize(key$1)] = listeners[key$1];
- }
- return data
- }
- function placeholder (h, rawChild) {
- if (/\d-keep-alive$/.test(rawChild.tag)) {
- return h('keep-alive', {
- props: rawChild.componentOptions.propsData
- })
- }
- }
- function hasParentTransition (vnode) {
- while ((vnode = vnode.parent)) {
- if (vnode.data.transition) {
- return true
- }
- }
- }
- function isSameChild (child, oldChild) {
- return oldChild.key === child.key && oldChild.tag === child.tag
- }
- var Transition = {
- name: 'transition',
- props: transitionProps,
- abstract: true,
- render: function render (h) {
- var this$1 = this;
- var children = this.$slots.default;
- if (!children) {
- return
- }
- // filter out text nodes (possible whitespaces)
- children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });
- /* istanbul ignore if */
- if (!children.length) {
- return
- }
- // warn multiple elements
- if (false) {
- warn(
- '<transition> can only be used on a single element. Use ' +
- '<transition-group> for lists.',
- this.$parent
- );
- }
- var mode = this.mode;
- // warn invalid mode
- if (false
- ) {
- warn(
- 'invalid <transition> mode: ' + mode,
- this.$parent
- );
- }
- var rawChild = children[0];
- // if this is a component root node and the component's
- // parent container node also has transition, skip.
- if (hasParentTransition(this.$vnode)) {
- return rawChild
- }
- // apply transition data to child
- // use getRealChild() to ignore abstract components e.g. keep-alive
- var child = getRealChild(rawChild);
- /* istanbul ignore if */
- if (!child) {
- return rawChild
- }
- if (this._leaving) {
- return placeholder(h, rawChild)
- }
- // ensure a key that is unique to the vnode type and to this transition
- // component instance. This key will be used to remove pending leaving nodes
- // during entering.
- var id = "__transition-" + (this._uid) + "-";
- child.key = child.key == null
- ? child.isComment
- ? id + 'comment'
- : id + child.tag
- : isPrimitive(child.key)
- ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
- : child.key;
- var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
- var oldRawChild = this._vnode;
- var oldChild = getRealChild(oldRawChild);
- // mark v-show
- // so that the transition module can hand over the control to the directive
- if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {
- child.data.show = true;
- }
- if (
- oldChild &&
- oldChild.data &&
- !isSameChild(child, oldChild) &&
- !isAsyncPlaceholder(oldChild) &&
- // #6687 component root is a comment node
- !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)
- ) {
- // replace old child transition data with fresh one
- // important for dynamic transitions!
- var oldData = oldChild.data.transition = extend({}, data);
- // handle transition mode
- if (mode === 'out-in') {
- // return placeholder node and queue update when leave finishes
- this._leaving = true;
- mergeVNodeHook(oldData, 'afterLeave', function () {
- this$1._leaving = false;
- this$1.$forceUpdate();
- });
- return placeholder(h, rawChild)
- } else if (mode === 'in-out') {
- if (isAsyncPlaceholder(child)) {
- return oldRawChild
- }
- var delayedLeave;
- var performLeave = function () { delayedLeave(); };
- mergeVNodeHook(data, 'afterEnter', performLeave);
- mergeVNodeHook(data, 'enterCancelled', performLeave);
- mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });
- }
- }
- return rawChild
- }
- };
- /* */
- // Provides transition support for list items.
- // supports move transitions using the FLIP technique.
- // Because the vdom's children update algorithm is "unstable" - i.e.
- // it doesn't guarantee the relative positioning of removed elements,
- // we force transition-group to update its children into two passes:
- // in the first pass, we remove all nodes that need to be removed,
- // triggering their leaving transition; in the second pass, we insert/move
- // into the final desired state. This way in the second pass removed
- // nodes will remain where they should be.
- var props = extend({
- tag: String,
- moveClass: String
- }, transitionProps);
- delete props.mode;
- var TransitionGroup = {
- props: props,
- render: function render (h) {
- var tag = this.tag || this.$vnode.data.tag || 'span';
- var map = Object.create(null);
- var prevChildren = this.prevChildren = this.children;
- var rawChildren = this.$slots.default || [];
- var children = this.children = [];
- var transitionData = extractTransitionData(this);
- for (var i = 0; i < rawChildren.length; i++) {
- var c = rawChildren[i];
- if (c.tag) {
- if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
- children.push(c);
- map[c.key] = c
- ;(c.data || (c.data = {})).transition = transitionData;
- } else if (false) {
- var opts = c.componentOptions;
- var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;
- warn(("<transition-group> children must be keyed: <" + name + ">"));
- }
- }
- }
- if (prevChildren) {
- var kept = [];
- var removed = [];
- for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
- var c$1 = prevChildren[i$1];
- c$1.data.transition = transitionData;
- c$1.data.pos = c$1.elm.getBoundingClientRect();
- if (map[c$1.key]) {
- kept.push(c$1);
- } else {
- removed.push(c$1);
- }
- }
- this.kept = h(tag, null, kept);
- this.removed = removed;
- }
- return h(tag, null, children)
- },
- beforeUpdate: function beforeUpdate () {
- // force removing pass
- this.__patch__(
- this._vnode,
- this.kept,
- false, // hydrating
- true // removeOnly (!important avoids unnecessary moves)
- );
- this._vnode = this.kept;
- },
- updated: function updated () {
- var children = this.prevChildren;
- var moveClass = this.moveClass || ((this.name || 'v') + '-move');
- if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
- return
- }
- // we divide the work into three loops to avoid mixing DOM reads and writes
- // in each iteration - which helps prevent layout thrashing.
- children.forEach(callPendingCbs);
- children.forEach(recordPosition);
- children.forEach(applyTranslation);
- // force reflow to put everything in position
- // assign to this to avoid being removed in tree-shaking
- // $flow-disable-line
- this._reflow = document.body.offsetHeight;
- children.forEach(function (c) {
- if (c.data.moved) {
- var el = c.elm;
- var s = el.style;
- addTransitionClass(el, moveClass);
- s.transform = s.WebkitTransform = s.transitionDuration = '';
- el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {
- if (!e || /transform$/.test(e.propertyName)) {
- el.removeEventListener(transitionEndEvent, cb);
- el._moveCb = null;
- removeTransitionClass(el, moveClass);
- }
- });
- }
- });
- },
- methods: {
- hasMove: function hasMove (el, moveClass) {
- /* istanbul ignore if */
- if (!hasTransition) {
- return false
- }
- /* istanbul ignore if */
- if (this._hasMove) {
- return this._hasMove
- }
- // Detect whether an element with the move class applied has
- // CSS transitions. Since the element may be inside an entering
- // transition at this very moment, we make a clone of it and remove
- // all other transition classes applied to ensure only the move class
- // is applied.
- var clone = el.cloneNode();
- if (el._transitionClasses) {
- el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });
- }
- addClass(clone, moveClass);
- clone.style.display = 'none';
- this.$el.appendChild(clone);
- var info = getTransitionInfo(clone);
- this.$el.removeChild(clone);
- return (this._hasMove = info.hasTransform)
- }
- }
- };
- function callPendingCbs (c) {
- /* istanbul ignore if */
- if (c.elm._moveCb) {
- c.elm._moveCb();
- }
- /* istanbul ignore if */
- if (c.elm._enterCb) {
- c.elm._enterCb();
- }
- }
- function recordPosition (c) {
- c.data.newPos = c.elm.getBoundingClientRect();
- }
- function applyTranslation (c) {
- var oldPos = c.data.pos;
- var newPos = c.data.newPos;
- var dx = oldPos.left - newPos.left;
- var dy = oldPos.top - newPos.top;
- if (dx || dy) {
- c.data.moved = true;
- var s = c.elm.style;
- s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
- s.transitionDuration = '0s';
- }
- }
- var platformComponents = {
- Transition: Transition,
- TransitionGroup: TransitionGroup
- };
- /* */
- // install platform specific utils
- Vue$3.config.mustUseProp = mustUseProp;
- Vue$3.config.isReservedTag = isReservedTag;
- Vue$3.config.isReservedAttr = isReservedAttr;
- Vue$3.config.getTagNamespace = getTagNamespace;
- Vue$3.config.isUnknownElement = isUnknownElement;
- // install platform runtime directives & components
- extend(Vue$3.options.directives, platformDirectives);
- extend(Vue$3.options.components, platformComponents);
- // install platform patch function
- Vue$3.prototype.__patch__ = inBrowser ? patch : noop;
- // public mount method
- Vue$3.prototype.$mount = function (
- el,
- hydrating
- ) {
- el = el && inBrowser ? query(el) : undefined;
- return mountComponent(this, el, hydrating)
- };
- // devtools global hook
- /* istanbul ignore next */
- Vue$3.nextTick(function () {
- if (config.devtools) {
- if (devtools) {
- devtools.emit('init', Vue$3);
- } else if (false) {
- console[console.info ? 'info' : 'log'](
- 'Download the Vue Devtools extension for a better development experience:\n' +
- 'https://github.com/vuejs/vue-devtools'
- );
- }
- }
- if (false
- ) {
- console[console.info ? 'info' : 'log'](
- "You are running Vue in development mode.\n" +
- "Make sure to turn on production mode when deploying for production.\n" +
- "See more tips at https://vuejs.org/guide/deployment.html"
- );
- }
- }, 0);
- /* */
- var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g;
- var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
- var buildRegex = cached(function (delimiters) {
- var open = delimiters[0].replace(regexEscapeRE, '\\$&');
- var close = delimiters[1].replace(regexEscapeRE, '\\$&');
- return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
- });
- function parseText (
- text,
- delimiters
- ) {
- var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
- if (!tagRE.test(text)) {
- return
- }
- var tokens = [];
- var rawTokens = [];
- var lastIndex = tagRE.lastIndex = 0;
- var match, index, tokenValue;
- while ((match = tagRE.exec(text))) {
- index = match.index;
- // push text token
- if (index > lastIndex) {
- rawTokens.push(tokenValue = text.slice(lastIndex, index));
- tokens.push(JSON.stringify(tokenValue));
- }
- // tag token
- var exp = parseFilters(match[1].trim());
- tokens.push(("_s(" + exp + ")"));
- rawTokens.push({ '@binding': exp });
- lastIndex = index + match[0].length;
- }
- if (lastIndex < text.length) {
- rawTokens.push(tokenValue = text.slice(lastIndex));
- tokens.push(JSON.stringify(tokenValue));
- }
- return {
- expression: tokens.join('+'),
- tokens: rawTokens
- }
- }
- /* */
- function transformNode (el, options) {
- var warn = options.warn || baseWarn;
- var staticClass = getAndRemoveAttr(el, 'class');
- if (false) {
- var res = parseText(staticClass, options.delimiters);
- if (res) {
- warn(
- "class=\"" + staticClass + "\": " +
- 'Interpolation inside attributes has been removed. ' +
- 'Use v-bind or the colon shorthand instead. For example, ' +
- 'instead of <div class="{{ val }}">, use <div :class="val">.'
- );
- }
- }
- if (staticClass) {
- el.staticClass = JSON.stringify(staticClass);
- }
- var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
- if (classBinding) {
- el.classBinding = classBinding;
- }
- }
- function genData (el) {
- var data = '';
- if (el.staticClass) {
- data += "staticClass:" + (el.staticClass) + ",";
- }
- if (el.classBinding) {
- data += "class:" + (el.classBinding) + ",";
- }
- return data
- }
- var klass$1 = {
- staticKeys: ['staticClass'],
- transformNode: transformNode,
- genData: genData
- };
- /* */
- function transformNode$1 (el, options) {
- var warn = options.warn || baseWarn;
- var staticStyle = getAndRemoveAttr(el, 'style');
- if (staticStyle) {
- /* istanbul ignore if */
- if (false) {
- var res = parseText(staticStyle, options.delimiters);
- if (res) {
- warn(
- "style=\"" + staticStyle + "\": " +
- 'Interpolation inside attributes has been removed. ' +
- 'Use v-bind or the colon shorthand instead. For example, ' +
- 'instead of <div style="{{ val }}">, use <div :style="val">.'
- );
- }
- }
- el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
- }
- var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
- if (styleBinding) {
- el.styleBinding = styleBinding;
- }
- }
- function genData$1 (el) {
- var data = '';
- if (el.staticStyle) {
- data += "staticStyle:" + (el.staticStyle) + ",";
- }
- if (el.styleBinding) {
- data += "style:(" + (el.styleBinding) + "),";
- }
- return data
- }
- var style$1 = {
- staticKeys: ['staticStyle'],
- transformNode: transformNode$1,
- genData: genData$1
- };
- /* */
- var decoder;
- var he = {
- decode: function decode (html) {
- decoder = decoder || document.createElement('div');
- decoder.innerHTML = html;
- return decoder.textContent
- }
- };
- /* */
- var isUnaryTag = makeMap(
- 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
- 'link,meta,param,source,track,wbr'
- );
- // Elements that you can, intentionally, leave open
- // (and which close themselves)
- var canBeLeftOpenTag = makeMap(
- 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'
- );
- // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
- // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
- var isNonPhrasingTag = makeMap(
- 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
- 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
- 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
- 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
- 'title,tr,track'
- );
- /**
- * Not type-checking this file because it's mostly vendor code.
- */
- /*!
- * HTML Parser By John Resig (ejohn.org)
- * Modified by Juriy "kangax" Zaytsev
- * Original code by Erik Arvidsson, Mozilla Public License
- * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js
- */
- // Regular Expressions for parsing tags and attributes
- var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
- // could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName
- // but for Vue templates we can enforce a simple charset
- var ncname = '[a-zA-Z_][\\w\\-\\.]*';
- var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";
- var startTagOpen = new RegExp(("^<" + qnameCapture));
- var startTagClose = /^\s*(\/?)>/;
- var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));
- var doctype = /^<!DOCTYPE [^>]+>/i;
- var comment = /^<!--/;
- var conditionalComment = /^<!\[/;
- var IS_REGEX_CAPTURING_BROKEN = false;
- 'x'.replace(/x(.)?/g, function (m, g) {
- IS_REGEX_CAPTURING_BROKEN = g === '';
- });
- // Special Elements (can contain anything)
- var isPlainTextElement = makeMap('script,style,textarea', true);
- var reCache = {};
- var decodingMap = {
- '<': '<',
- '>': '>',
- '"': '"',
- '&': '&',
- ' ': '\n',
- '	': '\t'
- };
- var encodedAttr = /&(?:lt|gt|quot|amp);/g;
- var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;
- // #5992
- var isIgnoreNewlineTag = makeMap('pre,textarea', true);
- var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };
- function decodeAttr (value, shouldDecodeNewlines) {
- var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
- return value.replace(re, function (match) { return decodingMap[match]; })
- }
- function parseHTML (html, options) {
- var stack = [];
- var expectHTML = options.expectHTML;
- var isUnaryTag$$1 = options.isUnaryTag || no;
- var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;
- var index = 0;
- var last, lastTag;
- while (html) {
- last = html;
- // Make sure we're not in a plaintext content element like script/style
- if (!lastTag || !isPlainTextElement(lastTag)) {
- var textEnd = html.indexOf('<');
- if (textEnd === 0) {
- // Comment:
- if (comment.test(html)) {
- var commentEnd = html.indexOf('-->');
- if (commentEnd >= 0) {
- if (options.shouldKeepComment) {
- options.comment(html.substring(4, commentEnd));
- }
- advance(commentEnd + 3);
- continue
- }
- }
- // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
- if (conditionalComment.test(html)) {
- var conditionalEnd = html.indexOf(']>');
- if (conditionalEnd >= 0) {
- advance(conditionalEnd + 2);
- continue
- }
- }
- // Doctype:
- var doctypeMatch = html.match(doctype);
- if (doctypeMatch) {
- advance(doctypeMatch[0].length);
- continue
- }
- // End tag:
- var endTagMatch = html.match(endTag);
- if (endTagMatch) {
- var curIndex = index;
- advance(endTagMatch[0].length);
- parseEndTag(endTagMatch[1], curIndex, index);
- continue
- }
- // Start tag:
- var startTagMatch = parseStartTag();
- if (startTagMatch) {
- handleStartTag(startTagMatch);
- if (shouldIgnoreFirstNewline(lastTag, html)) {
- advance(1);
- }
- continue
- }
- }
- var text = (void 0), rest = (void 0), next = (void 0);
- if (textEnd >= 0) {
- rest = html.slice(textEnd);
- while (
- !endTag.test(rest) &&
- !startTagOpen.test(rest) &&
- !comment.test(rest) &&
- !conditionalComment.test(rest)
- ) {
- // < in plain text, be forgiving and treat it as text
- next = rest.indexOf('<', 1);
- if (next < 0) { break }
- textEnd += next;
- rest = html.slice(textEnd);
- }
- text = html.substring(0, textEnd);
- advance(textEnd);
- }
- if (textEnd < 0) {
- text = html;
- html = '';
- }
- if (options.chars && text) {
- options.chars(text);
- }
- } else {
- var endTagLength = 0;
- var stackedTag = lastTag.toLowerCase();
- var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
- var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {
- endTagLength = endTag.length;
- if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
- text = text
- .replace(/<!--([\s\S]*?)-->/g, '$1')
- .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
- }
- if (shouldIgnoreFirstNewline(stackedTag, text)) {
- text = text.slice(1);
- }
- if (options.chars) {
- options.chars(text);
- }
- return ''
- });
- index += html.length - rest$1.length;
- html = rest$1;
- parseEndTag(stackedTag, index - endTagLength, index);
- }
- if (html === last) {
- options.chars && options.chars(html);
- if (false) {
- options.warn(("Mal-formatted tag at end of template: \"" + html + "\""));
- }
- break
- }
- }
- // Clean up any remaining tags
- parseEndTag();
- function advance (n) {
- index += n;
- html = html.substring(n);
- }
- function parseStartTag () {
- var start = html.match(startTagOpen);
- if (start) {
- var match = {
- tagName: start[1],
- attrs: [],
- start: index
- };
- advance(start[0].length);
- var end, attr;
- while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {
- advance(attr[0].length);
- match.attrs.push(attr);
- }
- if (end) {
- match.unarySlash = end[1];
- advance(end[0].length);
- match.end = index;
- return match
- }
- }
- }
- function handleStartTag (match) {
- var tagName = match.tagName;
- var unarySlash = match.unarySlash;
- if (expectHTML) {
- if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
- parseEndTag(lastTag);
- }
- if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {
- parseEndTag(tagName);
- }
- }
- var unary = isUnaryTag$$1(tagName) || !!unarySlash;
- var l = match.attrs.length;
- var attrs = new Array(l);
- for (var i = 0; i < l; i++) {
- var args = match.attrs[i];
- // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778
- if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('""') === -1) {
- if (args[3] === '') { delete args[3]; }
- if (args[4] === '') { delete args[4]; }
- if (args[5] === '') { delete args[5]; }
- }
- var value = args[3] || args[4] || args[5] || '';
- var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'
- ? options.shouldDecodeNewlinesForHref
- : options.shouldDecodeNewlines;
- attrs[i] = {
- name: args[1],
- value: decodeAttr(value, shouldDecodeNewlines)
- };
- }
- if (!unary) {
- stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });
- lastTag = tagName;
- }
- if (options.start) {
- options.start(tagName, attrs, unary, match.start, match.end);
- }
- }
- function parseEndTag (tagName, start, end) {
- var pos, lowerCasedTagName;
- if (start == null) { start = index; }
- if (end == null) { end = index; }
- if (tagName) {
- lowerCasedTagName = tagName.toLowerCase();
- }
- // Find the closest opened tag of the same type
- if (tagName) {
- for (pos = stack.length - 1; pos >= 0; pos--) {
- if (stack[pos].lowerCasedTag === lowerCasedTagName) {
- break
- }
- }
- } else {
- // If no tag name is provided, clean shop
- pos = 0;
- }
- if (pos >= 0) {
- // Close all the open elements, up the stack
- for (var i = stack.length - 1; i >= pos; i--) {
- if (false
- ) {
- options.warn(
- ("tag <" + (stack[i].tag) + "> has no matching end tag.")
- );
- }
- if (options.end) {
- options.end(stack[i].tag, start, end);
- }
- }
- // Remove the open elements from the stack
- stack.length = pos;
- lastTag = pos && stack[pos - 1].tag;
- } else if (lowerCasedTagName === 'br') {
- if (options.start) {
- options.start(tagName, [], true, start, end);
- }
- } else if (lowerCasedTagName === 'p') {
- if (options.start) {
- options.start(tagName, [], false, start, end);
- }
- if (options.end) {
- options.end(tagName, start, end);
- }
- }
- }
- }
- /* */
- var onRE = /^@|^v-on:/;
- var dirRE = /^v-|^@|^:/;
- var forAliasRE = /(.*?)\s+(?:in|of)\s+(.*)/;
- var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
- var stripParensRE = /^\(|\)$/g;
- var argRE = /:(.*)$/;
- var bindRE = /^:|^v-bind:/;
- var modifierRE = /\.[^.]+/g;
- var decodeHTMLCached = cached(he.decode);
- // configurable state
- var warn$2;
- var delimiters;
- var transforms;
- var preTransforms;
- var postTransforms;
- var platformIsPreTag;
- var platformMustUseProp;
- var platformGetTagNamespace;
- function createASTElement (
- tag,
- attrs,
- parent
- ) {
- return {
- type: 1,
- tag: tag,
- attrsList: attrs,
- attrsMap: makeAttrsMap(attrs),
- parent: parent,
- children: []
- }
- }
- /**
- * Convert HTML string to AST.
- */
- function parse (
- template,
- options
- ) {
- warn$2 = options.warn || baseWarn;
- platformIsPreTag = options.isPreTag || no;
- platformMustUseProp = options.mustUseProp || no;
- platformGetTagNamespace = options.getTagNamespace || no;
- transforms = pluckModuleFunction(options.modules, 'transformNode');
- preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
- postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
- delimiters = options.delimiters;
- var stack = [];
- var preserveWhitespace = options.preserveWhitespace !== false;
- var root;
- var currentParent;
- var inVPre = false;
- var inPre = false;
- var warned = false;
- function warnOnce (msg) {
- if (!warned) {
- warned = true;
- warn$2(msg);
- }
- }
- function closeElement (element) {
- // check pre state
- if (element.pre) {
- inVPre = false;
- }
- if (platformIsPreTag(element.tag)) {
- inPre = false;
- }
- // apply post-transforms
- for (var i = 0; i < postTransforms.length; i++) {
- postTransforms[i](element, options);
- }
- }
- parseHTML(template, {
- warn: warn$2,
- expectHTML: options.expectHTML,
- isUnaryTag: options.isUnaryTag,
- canBeLeftOpenTag: options.canBeLeftOpenTag,
- shouldDecodeNewlines: options.shouldDecodeNewlines,
- shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
- shouldKeepComment: options.comments,
- start: function start (tag, attrs, unary) {
- // check namespace.
- // inherit parent ns if there is one
- var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);
- // handle IE svg bug
- /* istanbul ignore if */
- if (isIE && ns === 'svg') {
- attrs = guardIESVGBug(attrs);
- }
- var element = createASTElement(tag, attrs, currentParent);
- if (ns) {
- element.ns = ns;
- }
- if (isForbiddenTag(element) && !isServerRendering()) {
- element.forbidden = true;
- "production" !== 'production' && warn$2(
- 'Templates should only be responsible for mapping the state to the ' +
- 'UI. Avoid placing tags with side-effects in your templates, such as ' +
- "<" + tag + ">" + ', as they will not be parsed.'
- );
- }
- // apply pre-transforms
- for (var i = 0; i < preTransforms.length; i++) {
- element = preTransforms[i](element, options) || element;
- }
- if (!inVPre) {
- processPre(element);
- if (element.pre) {
- inVPre = true;
- }
- }
- if (platformIsPreTag(element.tag)) {
- inPre = true;
- }
- if (inVPre) {
- processRawAttrs(element);
- } else if (!element.processed) {
- // structural directives
- processFor(element);
- processIf(element);
- processOnce(element);
- // element-scope stuff
- processElement(element, options);
- }
- function checkRootConstraints (el) {
- if (false) {
- if (el.tag === 'slot' || el.tag === 'template') {
- warnOnce(
- "Cannot use <" + (el.tag) + "> as component root element because it may " +
- 'contain multiple nodes.'
- );
- }
- if (el.attrsMap.hasOwnProperty('v-for')) {
- warnOnce(
- 'Cannot use v-for on stateful component root element because ' +
- 'it renders multiple elements.'
- );
- }
- }
- }
- // tree management
- if (!root) {
- root = element;
- checkRootConstraints(root);
- } else if (!stack.length) {
- // allow root elements with v-if, v-else-if and v-else
- if (root.if && (element.elseif || element.else)) {
- checkRootConstraints(element);
- addIfCondition(root, {
- exp: element.elseif,
- block: element
- });
- } else if (false) {
- warnOnce(
- "Component template should contain exactly one root element. " +
- "If you are using v-if on multiple elements, " +
- "use v-else-if to chain them instead."
- );
- }
- }
- if (currentParent && !element.forbidden) {
- if (element.elseif || element.else) {
- processIfConditions(element, currentParent);
- } else if (element.slotScope) { // scoped slot
- currentParent.plain = false;
- var name = element.slotTarget || '"default"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
- } else {
- currentParent.children.push(element);
- element.parent = currentParent;
- }
- }
- if (!unary) {
- currentParent = element;
- stack.push(element);
- } else {
- closeElement(element);
- }
- },
- end: function end () {
- // remove trailing whitespace
- var element = stack[stack.length - 1];
- var lastNode = element.children[element.children.length - 1];
- if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {
- element.children.pop();
- }
- // pop stack
- stack.length -= 1;
- currentParent = stack[stack.length - 1];
- closeElement(element);
- },
- chars: function chars (text) {
- if (!currentParent) {
- if (false) {
- if (text === template) {
- warnOnce(
- 'Component template requires a root element, rather than just text.'
- );
- } else if ((text = text.trim())) {
- warnOnce(
- ("text \"" + text + "\" outside root element will be ignored.")
- );
- }
- }
- return
- }
- // IE textarea placeholder bug
- /* istanbul ignore if */
- if (isIE &&
- currentParent.tag === 'textarea' &&
- currentParent.attrsMap.placeholder === text
- ) {
- return
- }
- var children = currentParent.children;
- text = inPre || text.trim()
- ? isTextTag(currentParent) ? text : decodeHTMLCached(text)
- // only preserve whitespace if its not right after a starting tag
- : preserveWhitespace && children.length ? ' ' : '';
- if (text) {
- var res;
- if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
- children.push({
- type: 2,
- expression: res.expression,
- tokens: res.tokens,
- text: text
- });
- } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {
- children.push({
- type: 3,
- text: text
- });
- }
- }
- },
- comment: function comment (text) {
- currentParent.children.push({
- type: 3,
- text: text,
- isComment: true
- });
- }
- });
- return root
- }
- function processPre (el) {
- if (getAndRemoveAttr(el, 'v-pre') != null) {
- el.pre = true;
- }
- }
- function processRawAttrs (el) {
- var l = el.attrsList.length;
- if (l) {
- var attrs = el.attrs = new Array(l);
- for (var i = 0; i < l; i++) {
- attrs[i] = {
- name: el.attrsList[i].name,
- value: JSON.stringify(el.attrsList[i].value)
- };
- }
- } else if (!el.pre) {
- // non root node in pre blocks with no attributes
- el.plain = true;
- }
- }
- function processElement (element, options) {
- processKey(element);
- // determine whether this is a plain element after
- // removing structural attributes
- element.plain = !element.key && !element.attrsList.length;
- processRef(element);
- processSlot(element);
- processComponent(element);
- for (var i = 0; i < transforms.length; i++) {
- element = transforms[i](element, options) || element;
- }
- processAttrs(element);
- }
- function processKey (el) {
- var exp = getBindingAttr(el, 'key');
- if (exp) {
- if (false) {
- warn$2("<template> cannot be keyed. Place the key on real elements instead.");
- }
- el.key = exp;
- }
- }
- function processRef (el) {
- var ref = getBindingAttr(el, 'ref');
- if (ref) {
- el.ref = ref;
- el.refInFor = checkInFor(el);
- }
- }
- function processFor (el) {
- var exp;
- if ((exp = getAndRemoveAttr(el, 'v-for'))) {
- var res = parseFor(exp);
- if (res) {
- extend(el, res);
- } else if (false) {
- warn$2(
- ("Invalid v-for expression: " + exp)
- );
- }
- }
- }
- function parseFor (exp) {
- var inMatch = exp.match(forAliasRE);
- if (!inMatch) { return }
- var res = {};
- res.for = inMatch[2].trim();
- var alias = inMatch[1].trim().replace(stripParensRE, '');
- var iteratorMatch = alias.match(forIteratorRE);
- if (iteratorMatch) {
- res.alias = alias.replace(forIteratorRE, '');
- res.iterator1 = iteratorMatch[1].trim();
- if (iteratorMatch[2]) {
- res.iterator2 = iteratorMatch[2].trim();
- }
- } else {
- res.alias = alias;
- }
- return res
- }
- function processIf (el) {
- var exp = getAndRemoveAttr(el, 'v-if');
- if (exp) {
- el.if = exp;
- addIfCondition(el, {
- exp: exp,
- block: el
- });
- } else {
- if (getAndRemoveAttr(el, 'v-else') != null) {
- el.else = true;
- }
- var elseif = getAndRemoveAttr(el, 'v-else-if');
- if (elseif) {
- el.elseif = elseif;
- }
- }
- }
- function processIfConditions (el, parent) {
- var prev = findPrevElement(parent.children);
- if (prev && prev.if) {
- addIfCondition(prev, {
- exp: el.elseif,
- block: el
- });
- } else if (false) {
- warn$2(
- "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " +
- "used on element <" + (el.tag) + "> without corresponding v-if."
- );
- }
- }
- function findPrevElement (children) {
- var i = children.length;
- while (i--) {
- if (children[i].type === 1) {
- return children[i]
- } else {
- if (false) {
- warn$2(
- "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " +
- "will be ignored."
- );
- }
- children.pop();
- }
- }
- }
- function addIfCondition (el, condition) {
- if (!el.ifConditions) {
- el.ifConditions = [];
- }
- el.ifConditions.push(condition);
- }
- function processOnce (el) {
- var once$$1 = getAndRemoveAttr(el, 'v-once');
- if (once$$1 != null) {
- el.once = true;
- }
- }
- function processSlot (el) {
- if (el.tag === 'slot') {
- el.slotName = getBindingAttr(el, 'name');
- if (false) {
- warn$2(
- "`key` does not work on <slot> because slots are abstract outlets " +
- "and can possibly expand into multiple elements. " +
- "Use the key on a wrapping element instead."
- );
- }
- } else {
- var slotScope;
- if (el.tag === 'template') {
- slotScope = getAndRemoveAttr(el, 'scope');
- /* istanbul ignore if */
- if (false) {
- warn$2(
- "the \"scope\" attribute for scoped slots have been deprecated and " +
- "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " +
- "can also be used on plain elements in addition to <template> to " +
- "denote scoped slots.",
- true
- );
- }
- el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
- } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {
- /* istanbul ignore if */
- if (false) {
- warn$2(
- "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " +
- "(v-for takes higher priority). Use a wrapper <template> for the " +
- "scoped slot to make it clearer.",
- true
- );
- }
- el.slotScope = slotScope;
- }
- var slotTarget = getBindingAttr(el, 'slot');
- if (slotTarget) {
- el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
- // preserve slot as an attribute for native shadow DOM compat
- // only for non-scoped slots.
- if (el.tag !== 'template' && !el.slotScope) {
- addAttr(el, 'slot', slotTarget);
- }
- }
- }
- }
- function processComponent (el) {
- var binding;
- if ((binding = getBindingAttr(el, 'is'))) {
- el.component = binding;
- }
- if (getAndRemoveAttr(el, 'inline-template') != null) {
- el.inlineTemplate = true;
- }
- }
- function processAttrs (el) {
- var list = el.attrsList;
- var i, l, name, rawName, value, modifiers, isProp;
- for (i = 0, l = list.length; i < l; i++) {
- name = rawName = list[i].name;
- value = list[i].value;
- if (dirRE.test(name)) {
- // mark element as dynamic
- el.hasBindings = true;
- // modifiers
- modifiers = parseModifiers(name);
- if (modifiers) {
- name = name.replace(modifierRE, '');
- }
- if (bindRE.test(name)) { // v-bind
- name = name.replace(bindRE, '');
- value = parseFilters(value);
- isProp = false;
- if (modifiers) {
- if (modifiers.prop) {
- isProp = true;
- name = camelize(name);
- if (name === 'innerHtml') { name = 'innerHTML'; }
- }
- if (modifiers.camel) {
- name = camelize(name);
- }
- if (modifiers.sync) {
- addHandler(
- el,
- ("update:" + (camelize(name))),
- genAssignmentCode(value, "$event")
- );
- }
- }
- if (isProp || (
- !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)
- )) {
- addProp(el, name, value);
- } else {
- addAttr(el, name, value);
- }
- } else if (onRE.test(name)) { // v-on
- name = name.replace(onRE, '');
- addHandler(el, name, value, modifiers, false, warn$2);
- } else { // normal directives
- name = name.replace(dirRE, '');
- // parse arg
- var argMatch = name.match(argRE);
- var arg = argMatch && argMatch[1];
- if (arg) {
- name = name.slice(0, -(arg.length + 1));
- }
- addDirective(el, name, rawName, value, arg, modifiers);
- if (false) {
- checkForAliasModel(el, value);
- }
- }
- } else {
- // literal attribute
- if (false) {
- var res = parseText(value, delimiters);
- if (res) {
- warn$2(
- name + "=\"" + value + "\": " +
- 'Interpolation inside attributes has been removed. ' +
- 'Use v-bind or the colon shorthand instead. For example, ' +
- 'instead of <div id="{{ val }}">, use <div :id="val">.'
- );
- }
- }
- addAttr(el, name, JSON.stringify(value));
- // #6887 firefox doesn't update muted state if set via attribute
- // even immediately after element creation
- if (!el.component &&
- name === 'muted' &&
- platformMustUseProp(el.tag, el.attrsMap.type, name)) {
- addProp(el, name, 'true');
- }
- }
- }
- }
- function checkInFor (el) {
- var parent = el;
- while (parent) {
- if (parent.for !== undefined) {
- return true
- }
- parent = parent.parent;
- }
- return false
- }
- function parseModifiers (name) {
- var match = name.match(modifierRE);
- if (match) {
- var ret = {};
- match.forEach(function (m) { ret[m.slice(1)] = true; });
- return ret
- }
- }
- function makeAttrsMap (attrs) {
- var map = {};
- for (var i = 0, l = attrs.length; i < l; i++) {
- if (
- false
- ) {
- warn$2('duplicate attribute: ' + attrs[i].name);
- }
- map[attrs[i].name] = attrs[i].value;
- }
- return map
- }
- // for script (e.g. type="x/template") or style, do not decode content
- function isTextTag (el) {
- return el.tag === 'script' || el.tag === 'style'
- }
- function isForbiddenTag (el) {
- return (
- el.tag === 'style' ||
- (el.tag === 'script' && (
- !el.attrsMap.type ||
- el.attrsMap.type === 'text/javascript'
- ))
- )
- }
- var ieNSBug = /^xmlns:NS\d+/;
- var ieNSPrefix = /^NS\d+:/;
- /* istanbul ignore next */
- function guardIESVGBug (attrs) {
- var res = [];
- for (var i = 0; i < attrs.length; i++) {
- var attr = attrs[i];
- if (!ieNSBug.test(attr.name)) {
- attr.name = attr.name.replace(ieNSPrefix, '');
- res.push(attr);
- }
- }
- return res
- }
- function checkForAliasModel (el, value) {
- var _el = el;
- while (_el) {
- if (_el.for && _el.alias === value) {
- warn$2(
- "<" + (el.tag) + " v-model=\"" + value + "\">: " +
- "You are binding v-model directly to a v-for iteration alias. " +
- "This will not be able to modify the v-for source array because " +
- "writing to the alias is like modifying a function local variable. " +
- "Consider using an array of objects and use v-model on an object property instead."
- );
- }
- _el = _el.parent;
- }
- }
- /* */
- /**
- * Expand input[v-model] with dyanmic type bindings into v-if-else chains
- * Turn this:
- * <input v-model="data[type]" :type="type">
- * into this:
- * <input v-if="type === 'checkbox'" type="checkbox" v-model="data[type]">
- * <input v-else-if="type === 'radio'" type="radio" v-model="data[type]">
- * <input v-else :type="type" v-model="data[type]">
- */
- function preTransformNode (el, options) {
- if (el.tag === 'input') {
- var map = el.attrsMap;
- if (map['v-model'] && (map['v-bind:type'] || map[':type'])) {
- var typeBinding = getBindingAttr(el, 'type');
- var ifCondition = getAndRemoveAttr(el, 'v-if', true);
- var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : "";
- var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
- var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);
- // 1. checkbox
- var branch0 = cloneASTElement(el);
- // process for on the main node
- processFor(branch0);
- addRawAttr(branch0, 'type', 'checkbox');
- processElement(branch0, options);
- branch0.processed = true; // prevent it from double-processed
- branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;
- addIfCondition(branch0, {
- exp: branch0.if,
- block: branch0
- });
- // 2. add radio else-if condition
- var branch1 = cloneASTElement(el);
- getAndRemoveAttr(branch1, 'v-for', true);
- addRawAttr(branch1, 'type', 'radio');
- processElement(branch1, options);
- addIfCondition(branch0, {
- exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,
- block: branch1
- });
- // 3. other
- var branch2 = cloneASTElement(el);
- getAndRemoveAttr(branch2, 'v-for', true);
- addRawAttr(branch2, ':type', typeBinding);
- processElement(branch2, options);
- addIfCondition(branch0, {
- exp: ifCondition,
- block: branch2
- });
- if (hasElse) {
- branch0.else = true;
- } else if (elseIfCondition) {
- branch0.elseif = elseIfCondition;
- }
- return branch0
- }
- }
- }
- function cloneASTElement (el) {
- return createASTElement(el.tag, el.attrsList.slice(), el.parent)
- }
- var model$2 = {
- preTransformNode: preTransformNode
- };
- var modules$1 = [
- klass$1,
- style$1,
- model$2
- ];
- /* */
- function text (el, dir) {
- if (dir.value) {
- addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));
- }
- }
- /* */
- function html (el, dir) {
- if (dir.value) {
- addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"));
- }
- }
- var directives$1 = {
- model: model,
- text: text,
- html: html
- };
- /* */
- var baseOptions = {
- expectHTML: true,
- modules: modules$1,
- directives: directives$1,
- isPreTag: isPreTag,
- isUnaryTag: isUnaryTag,
- mustUseProp: mustUseProp,
- canBeLeftOpenTag: canBeLeftOpenTag,
- isReservedTag: isReservedTag,
- getTagNamespace: getTagNamespace,
- staticKeys: genStaticKeys(modules$1)
- };
- /* */
- var isStaticKey;
- var isPlatformReservedTag;
- var genStaticKeysCached = cached(genStaticKeys$1);
- /**
- * Goal of the optimizer: walk the generated template AST tree
- * and detect sub-trees that are purely static, i.e. parts of
- * the DOM that never needs to change.
- *
- * Once we detect these sub-trees, we can:
- *
- * 1. Hoist them into constants, so that we no longer need to
- * create fresh nodes for them on each re-render;
- * 2. Completely skip them in the patching process.
- */
- function optimize (root, options) {
- if (!root) { return }
- isStaticKey = genStaticKeysCached(options.staticKeys || '');
- isPlatformReservedTag = options.isReservedTag || no;
- // first pass: mark all non-static nodes.
- markStatic$1(root);
- // second pass: mark static roots.
- markStaticRoots(root, false);
- }
- function genStaticKeys$1 (keys) {
- return makeMap(
- 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +
- (keys ? ',' + keys : '')
- )
- }
- function markStatic$1 (node) {
- node.static = isStatic(node);
- if (node.type === 1) {
- // do not make component slot content static. this avoids
- // 1. components not able to mutate slot nodes
- // 2. static slot content fails for hot-reloading
- if (
- !isPlatformReservedTag(node.tag) &&
- node.tag !== 'slot' &&
- node.attrsMap['inline-template'] == null
- ) {
- return
- }
- for (var i = 0, l = node.children.length; i < l; i++) {
- var child = node.children[i];
- markStatic$1(child);
- if (!child.static) {
- node.static = false;
- }
- }
- if (node.ifConditions) {
- for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
- var block = node.ifConditions[i$1].block;
- markStatic$1(block);
- if (!block.static) {
- node.static = false;
- }
- }
- }
- }
- }
- function markStaticRoots (node, isInFor) {
- if (node.type === 1) {
- if (node.static || node.once) {
- node.staticInFor = isInFor;
- }
- // For a node to qualify as a static root, it should have children that
- // are not just static text. Otherwise the cost of hoisting out will
- // outweigh the benefits and it's better off to just always render it fresh.
- if (node.static && node.children.length && !(
- node.children.length === 1 &&
- node.children[0].type === 3
- )) {
- node.staticRoot = true;
- return
- } else {
- node.staticRoot = false;
- }
- if (node.children) {
- for (var i = 0, l = node.children.length; i < l; i++) {
- markStaticRoots(node.children[i], isInFor || !!node.for);
- }
- }
- if (node.ifConditions) {
- for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
- markStaticRoots(node.ifConditions[i$1].block, isInFor);
- }
- }
- }
- }
- function isStatic (node) {
- if (node.type === 2) { // expression
- return false
- }
- if (node.type === 3) { // text
- return true
- }
- return !!(node.pre || (
- !node.hasBindings && // no dynamic bindings
- !node.if && !node.for && // not v-if or v-for or v-else
- !isBuiltInTag(node.tag) && // not a built-in
- isPlatformReservedTag(node.tag) && // not a component
- !isDirectChildOfTemplateFor(node) &&
- Object.keys(node).every(isStaticKey)
- ))
- }
- function isDirectChildOfTemplateFor (node) {
- while (node.parent) {
- node = node.parent;
- if (node.tag !== 'template') {
- return false
- }
- if (node.for) {
- return true
- }
- }
- return false
- }
- /* */
- var fnExpRE = /^\s*([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;
- var simplePathRE = /^\s*[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?']|\[".*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*\s*$/;
- // keyCode aliases
- var keyCodes = {
- esc: 27,
- tab: 9,
- enter: 13,
- space: 32,
- up: 38,
- left: 37,
- right: 39,
- down: 40,
- 'delete': [8, 46]
- };
- // #4868: modifiers that prevent the execution of the listener
- // need to explicitly return null so that we can determine whether to remove
- // the listener for .once
- var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };
- var modifierCode = {
- stop: '$event.stopPropagation();',
- prevent: '$event.preventDefault();',
- self: genGuard("$event.target !== $event.currentTarget"),
- ctrl: genGuard("!$event.ctrlKey"),
- shift: genGuard("!$event.shiftKey"),
- alt: genGuard("!$event.altKey"),
- meta: genGuard("!$event.metaKey"),
- left: genGuard("'button' in $event && $event.button !== 0"),
- middle: genGuard("'button' in $event && $event.button !== 1"),
- right: genGuard("'button' in $event && $event.button !== 2")
- };
- function genHandlers (
- events,
- isNative,
- warn
- ) {
- var res = isNative ? 'nativeOn:{' : 'on:{';
- for (var name in events) {
- res += "\"" + name + "\":" + (genHandler(name, events[name])) + ",";
- }
- return res.slice(0, -1) + '}'
- }
- function genHandler (
- name,
- handler
- ) {
- if (!handler) {
- return 'function(){}'
- }
- if (Array.isArray(handler)) {
- return ("[" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + "]")
- }
- var isMethodPath = simplePathRE.test(handler.value);
- var isFunctionExpression = fnExpRE.test(handler.value);
- if (!handler.modifiers) {
- if (isMethodPath || isFunctionExpression) {
- return handler.value
- }
- /* istanbul ignore if */
- return ("function($event){" + (handler.value) + "}") // inline statement
- } else {
- var code = '';
- var genModifierCode = '';
- var keys = [];
- for (var key in handler.modifiers) {
- if (modifierCode[key]) {
- genModifierCode += modifierCode[key];
- // left/right
- if (keyCodes[key]) {
- keys.push(key);
- }
- } else if (key === 'exact') {
- var modifiers = (handler.modifiers);
- genModifierCode += genGuard(
- ['ctrl', 'shift', 'alt', 'meta']
- .filter(function (keyModifier) { return !modifiers[keyModifier]; })
- .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); })
- .join('||')
- );
- } else {
- keys.push(key);
- }
- }
- if (keys.length) {
- code += genKeyFilter(keys);
- }
- // Make sure modifiers like prevent and stop get executed after key filtering
- if (genModifierCode) {
- code += genModifierCode;
- }
- var handlerCode = isMethodPath
- ? handler.value + '($event)'
- : isFunctionExpression
- ? ("(" + (handler.value) + ")($event)")
- : handler.value;
- /* istanbul ignore if */
- return ("function($event){" + code + handlerCode + "}")
- }
- }
- function genKeyFilter (keys) {
- return ("if(!('button' in $event)&&" + (keys.map(genFilterCode).join('&&')) + ")return null;")
- }
- function genFilterCode (key) {
- var keyVal = parseInt(key, 10);
- if (keyVal) {
- return ("$event.keyCode!==" + keyVal)
- }
- var code = keyCodes[key];
- return (
- "_k($event.keyCode," +
- (JSON.stringify(key)) + "," +
- (JSON.stringify(code)) + "," +
- "$event.key)"
- )
- }
- /* */
- function on (el, dir) {
- if (false) {
- warn("v-on without argument does not support modifiers.");
- }
- el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };
- }
- /* */
- function bind$1 (el, dir) {
- el.wrapData = function (code) {
- return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")
- };
- }
- /* */
- var baseDirectives = {
- on: on,
- bind: bind$1,
- cloak: noop
- };
- /* */
- var CodegenState = function CodegenState (options) {
- this.options = options;
- this.warn = options.warn || baseWarn;
- this.transforms = pluckModuleFunction(options.modules, 'transformCode');
- this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
- this.directives = extend(extend({}, baseDirectives), options.directives);
- var isReservedTag = options.isReservedTag || no;
- this.maybeComponent = function (el) { return !isReservedTag(el.tag); };
- this.onceId = 0;
- this.staticRenderFns = [];
- };
- function generate (
- ast,
- options
- ) {
- var state = new CodegenState(options);
- var code = ast ? genElement(ast, state) : '_c("div")';
- return {
- render: ("with(this){return " + code + "}"),
- staticRenderFns: state.staticRenderFns
- }
- }
- function genElement (el, state) {
- if (el.staticRoot && !el.staticProcessed) {
- return genStatic(el, state)
- } else if (el.once && !el.onceProcessed) {
- return genOnce(el, state)
- } else if (el.for && !el.forProcessed) {
- return genFor(el, state)
- } else if (el.if && !el.ifProcessed) {
- return genIf(el, state)
- } else if (el.tag === 'template' && !el.slotTarget) {
- return genChildren(el, state) || 'void 0'
- } else if (el.tag === 'slot') {
- return genSlot(el, state)
- } else {
- // component or element
- var code;
- if (el.component) {
- code = genComponent(el.component, el, state);
- } else {
- var data = el.plain ? undefined : genData$2(el, state);
- var children = el.inlineTemplate ? null : genChildren(el, state, true);
- code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";
- }
- // module transforms
- for (var i = 0; i < state.transforms.length; i++) {
- code = state.transforms[i](el, code);
- }
- return code
- }
- }
- // hoist static sub-trees out
- function genStatic (el, state) {
- el.staticProcessed = true;
- state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));
- return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
- }
- // v-once
- function genOnce (el, state) {
- el.onceProcessed = true;
- if (el.if && !el.ifProcessed) {
- return genIf(el, state)
- } else if (el.staticInFor) {
- var key = '';
- var parent = el.parent;
- while (parent) {
- if (parent.for) {
- key = parent.key;
- break
- }
- parent = parent.parent;
- }
- if (!key) {
- "production" !== 'production' && state.warn(
- "v-once can only be used inside v-for that is keyed. "
- );
- return genElement(el, state)
- }
- return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")")
- } else {
- return genStatic(el, state)
- }
- }
- function genIf (
- el,
- state,
- altGen,
- altEmpty
- ) {
- el.ifProcessed = true; // avoid recursion
- return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)
- }
- function genIfConditions (
- conditions,
- state,
- altGen,
- altEmpty
- ) {
- if (!conditions.length) {
- return altEmpty || '_e()'
- }
- var condition = conditions.shift();
- if (condition.exp) {
- return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))
- } else {
- return ("" + (genTernaryExp(condition.block)))
- }
- // v-if with v-once should generate code like (a)?_m(0):_m(1)
- function genTernaryExp (el) {
- return altGen
- ? altGen(el, state)
- : el.once
- ? genOnce(el, state)
- : genElement(el, state)
- }
- }
- function genFor (
- el,
- state,
- altGen,
- altHelper
- ) {
- var exp = el.for;
- var alias = el.alias;
- var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
- var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
- if (false
- ) {
- state.warn(
- "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " +
- "v-for should have explicit keys. " +
- "See https://vuejs.org/guide/list.html#key for more info.",
- true /* tip */
- );
- }
- el.forProcessed = true; // avoid recursion
- return (altHelper || '_l') + "((" + exp + ")," +
- "function(" + alias + iterator1 + iterator2 + "){" +
- "return " + ((altGen || genElement)(el, state)) +
- '})'
- }
- function genData$2 (el, state) {
- var data = '{';
- // directives first.
- // directives may mutate the el's other properties before they are generated.
- var dirs = genDirectives(el, state);
- if (dirs) { data += dirs + ','; }
- // key
- if (el.key) {
- data += "key:" + (el.key) + ",";
- }
- // ref
- if (el.ref) {
- data += "ref:" + (el.ref) + ",";
- }
- if (el.refInFor) {
- data += "refInFor:true,";
- }
- // pre
- if (el.pre) {
- data += "pre:true,";
- }
- // record original tag name for components using "is" attribute
- if (el.component) {
- data += "tag:\"" + (el.tag) + "\",";
- }
- // module data generation functions
- for (var i = 0; i < state.dataGenFns.length; i++) {
- data += state.dataGenFns[i](el);
- }
- // attributes
- if (el.attrs) {
- data += "attrs:{" + (genProps(el.attrs)) + "},";
- }
- // DOM props
- if (el.props) {
- data += "domProps:{" + (genProps(el.props)) + "},";
- }
- // event handlers
- if (el.events) {
- data += (genHandlers(el.events, false, state.warn)) + ",";
- }
- if (el.nativeEvents) {
- data += (genHandlers(el.nativeEvents, true, state.warn)) + ",";
- }
- // slot target
- // only for non-scoped slots
- if (el.slotTarget && !el.slotScope) {
- data += "slot:" + (el.slotTarget) + ",";
- }
- // scoped slots
- if (el.scopedSlots) {
- data += (genScopedSlots(el.scopedSlots, state)) + ",";
- }
- // component v-model
- if (el.model) {
- data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},";
- }
- // inline-template
- if (el.inlineTemplate) {
- var inlineTemplate = genInlineTemplate(el, state);
- if (inlineTemplate) {
- data += inlineTemplate + ",";
- }
- }
- data = data.replace(/,$/, '') + '}';
- // v-bind data wrap
- if (el.wrapData) {
- data = el.wrapData(data);
- }
- // v-on data wrap
- if (el.wrapListeners) {
- data = el.wrapListeners(data);
- }
- return data
- }
- function genDirectives (el, state) {
- var dirs = el.directives;
- if (!dirs) { return }
- var res = 'directives:[';
- var hasRuntime = false;
- var i, l, dir, needRuntime;
- for (i = 0, l = dirs.length; i < l; i++) {
- dir = dirs[i];
- needRuntime = true;
- var gen = state.directives[dir.name];
- if (gen) {
- // compile-time directive that manipulates AST.
- // returns true if it also needs a runtime counterpart.
- needRuntime = !!gen(el, dir, state.warn);
- }
- if (needRuntime) {
- hasRuntime = true;
- res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:\"" + (dir.arg) + "\"") : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";
- }
- }
- if (hasRuntime) {
- return res.slice(0, -1) + ']'
- }
- }
- function genInlineTemplate (el, state) {
- var ast = el.children[0];
- if (false) {
- state.warn('Inline-template components must have exactly one child element.');
- }
- if (ast.type === 1) {
- var inlineRenderFns = generate(ast, state.options);
- return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")
- }
- }
- function genScopedSlots (
- slots,
- state
- ) {
- return ("scopedSlots:_u([" + (Object.keys(slots).map(function (key) {
- return genScopedSlot(key, slots[key], state)
- }).join(',')) + "])")
- }
- function genScopedSlot (
- key,
- el,
- state
- ) {
- if (el.for && !el.forProcessed) {
- return genForScopedSlot(key, el, state)
- }
- var fn = "function(" + (String(el.slotScope)) + "){" +
- "return " + (el.tag === 'template'
- ? el.if
- ? ((el.if) + "?" + (genChildren(el, state) || 'undefined') + ":undefined")
- : genChildren(el, state) || 'undefined'
- : genElement(el, state)) + "}";
- return ("{key:" + key + ",fn:" + fn + "}")
- }
- function genForScopedSlot (
- key,
- el,
- state
- ) {
- var exp = el.for;
- var alias = el.alias;
- var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
- var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
- el.forProcessed = true; // avoid recursion
- return "_l((" + exp + ")," +
- "function(" + alias + iterator1 + iterator2 + "){" +
- "return " + (genScopedSlot(key, el, state)) +
- '})'
- }
- function genChildren (
- el,
- state,
- checkSkip,
- altGenElement,
- altGenNode
- ) {
- var children = el.children;
- if (children.length) {
- var el$1 = children[0];
- // optimize single v-for
- if (children.length === 1 &&
- el$1.for &&
- el$1.tag !== 'template' &&
- el$1.tag !== 'slot'
- ) {
- return (altGenElement || genElement)(el$1, state)
- }
- var normalizationType = checkSkip
- ? getNormalizationType(children, state.maybeComponent)
- : 0;
- var gen = altGenNode || genNode;
- return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType ? ("," + normalizationType) : ''))
- }
- }
- // determine the normalization needed for the children array.
- // 0: no normalization needed
- // 1: simple normalization needed (possible 1-level deep nested array)
- // 2: full normalization needed
- function getNormalizationType (
- children,
- maybeComponent
- ) {
- var res = 0;
- for (var i = 0; i < children.length; i++) {
- var el = children[i];
- if (el.type !== 1) {
- continue
- }
- if (needsNormalization(el) ||
- (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
- res = 2;
- break
- }
- if (maybeComponent(el) ||
- (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
- res = 1;
- }
- }
- return res
- }
- function needsNormalization (el) {
- return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
- }
- function genNode (node, state) {
- if (node.type === 1) {
- return genElement(node, state)
- } if (node.type === 3 && node.isComment) {
- return genComment(node)
- } else {
- return genText(node)
- }
- }
- function genText (text) {
- return ("_v(" + (text.type === 2
- ? text.expression // no need for () because already wrapped in _s()
- : transformSpecialNewlines(JSON.stringify(text.text))) + ")")
- }
- function genComment (comment) {
- return ("_e(" + (JSON.stringify(comment.text)) + ")")
- }
- function genSlot (el, state) {
- var slotName = el.slotName || '"default"';
- var children = genChildren(el, state);
- var res = "_t(" + slotName + (children ? ("," + children) : '');
- var attrs = el.attrs && ("{" + (el.attrs.map(function (a) { return ((camelize(a.name)) + ":" + (a.value)); }).join(',')) + "}");
- var bind$$1 = el.attrsMap['v-bind'];
- if ((attrs || bind$$1) && !children) {
- res += ",null";
- }
- if (attrs) {
- res += "," + attrs;
- }
- if (bind$$1) {
- res += (attrs ? '' : ',null') + "," + bind$$1;
- }
- return res + ')'
- }
- // componentName is el.component, take it as argument to shun flow's pessimistic refinement
- function genComponent (
- componentName,
- el,
- state
- ) {
- var children = el.inlineTemplate ? null : genChildren(el, state, true);
- return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")
- }
- function genProps (props) {
- var res = '';
- for (var i = 0; i < props.length; i++) {
- var prop = props[i];
- /* istanbul ignore if */
- {
- res += "\"" + (prop.name) + "\":" + (transformSpecialNewlines(prop.value)) + ",";
- }
- }
- return res.slice(0, -1)
- }
- // #3895, #4268
- function transformSpecialNewlines (text) {
- return text
- .replace(/\u2028/g, '\\u2028')
- .replace(/\u2029/g, '\\u2029')
- }
- /* */
- // these keywords should not appear inside expressions, but operators like
- // typeof, instanceof and in are allowed
- var prohibitedKeywordRE = new RegExp('\\b' + (
- 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
- 'super,throw,while,yield,delete,export,import,return,switch,default,' +
- 'extends,finally,continue,debugger,function,arguments'
- ).split(',').join('\\b|\\b') + '\\b');
- // these unary operators should not be used as property/method names
- var unaryOperatorsRE = new RegExp('\\b' + (
- 'delete,typeof,void'
- ).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)');
- // strip strings in expressions
- var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
- // detect problematic expressions in a template
- function detectErrors (ast) {
- var errors = [];
- if (ast) {
- checkNode(ast, errors);
- }
- return errors
- }
- function checkNode (node, errors) {
- if (node.type === 1) {
- for (var name in node.attrsMap) {
- if (dirRE.test(name)) {
- var value = node.attrsMap[name];
- if (value) {
- if (name === 'v-for') {
- checkFor(node, ("v-for=\"" + value + "\""), errors);
- } else if (onRE.test(name)) {
- checkEvent(value, (name + "=\"" + value + "\""), errors);
- } else {
- checkExpression(value, (name + "=\"" + value + "\""), errors);
- }
- }
- }
- }
- if (node.children) {
- for (var i = 0; i < node.children.length; i++) {
- checkNode(node.children[i], errors);
- }
- }
- } else if (node.type === 2) {
- checkExpression(node.expression, node.text, errors);
- }
- }
- function checkEvent (exp, text, errors) {
- var stipped = exp.replace(stripStringRE, '');
- var keywordMatch = stipped.match(unaryOperatorsRE);
- if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {
- errors.push(
- "avoid using JavaScript unary operator as property name: " +
- "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim())
- );
- }
- checkExpression(exp, text, errors);
- }
- function checkFor (node, text, errors) {
- checkExpression(node.for || '', text, errors);
- checkIdentifier(node.alias, 'v-for alias', text, errors);
- checkIdentifier(node.iterator1, 'v-for iterator', text, errors);
- checkIdentifier(node.iterator2, 'v-for iterator', text, errors);
- }
- function checkIdentifier (
- ident,
- type,
- text,
- errors
- ) {
- if (typeof ident === 'string') {
- try {
- new Function(("var " + ident + "=_"));
- } catch (e) {
- errors.push(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())));
- }
- }
- }
- function checkExpression (exp, text, errors) {
- try {
- new Function(("return " + exp));
- } catch (e) {
- var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);
- if (keywordMatch) {
- errors.push(
- "avoid using JavaScript keyword as property name: " +
- "\"" + (keywordMatch[0]) + "\"\n Raw expression: " + (text.trim())
- );
- } else {
- errors.push(
- "invalid expression: " + (e.message) + " in\n\n" +
- " " + exp + "\n\n" +
- " Raw expression: " + (text.trim()) + "\n"
- );
- }
- }
- }
- /* */
- function createFunction (code, errors) {
- try {
- return new Function(code)
- } catch (err) {
- errors.push({ err: err, code: code });
- return noop
- }
- }
- function createCompileToFunctionFn (compile) {
- var cache = Object.create(null);
- return function compileToFunctions (
- template,
- options,
- vm
- ) {
- options = extend({}, options);
- var warn$$1 = options.warn || warn;
- delete options.warn;
- /* istanbul ignore if */
- if (false) {
- // detect possible CSP restriction
- try {
- new Function('return 1');
- } catch (e) {
- if (e.toString().match(/unsafe-eval|CSP/)) {
- warn$$1(
- 'It seems you are using the standalone build of Vue.js in an ' +
- 'environment with Content Security Policy that prohibits unsafe-eval. ' +
- 'The template compiler cannot work in this environment. Consider ' +
- 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
- 'templates into render functions.'
- );
- }
- }
- }
- // check cache
- var key = options.delimiters
- ? String(options.delimiters) + template
- : template;
- if (cache[key]) {
- return cache[key]
- }
- // compile
- var compiled = compile(template, options);
- // check compilation errors/tips
- if (false) {
- if (compiled.errors && compiled.errors.length) {
- warn$$1(
- "Error compiling template:\n\n" + template + "\n\n" +
- compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',
- vm
- );
- }
- if (compiled.tips && compiled.tips.length) {
- compiled.tips.forEach(function (msg) { return tip(msg, vm); });
- }
- }
- // turn code into functions
- var res = {};
- var fnGenErrors = [];
- res.render = createFunction(compiled.render, fnGenErrors);
- res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
- return createFunction(code, fnGenErrors)
- });
- // check function generation errors.
- // this should only happen if there is a bug in the compiler itself.
- // mostly for codegen development use
- /* istanbul ignore if */
- if (false) {
- if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
- warn$$1(
- "Failed to generate render function:\n\n" +
- fnGenErrors.map(function (ref) {
- var err = ref.err;
- var code = ref.code;
- return ((err.toString()) + " in\n\n" + code + "\n");
- }).join('\n'),
- vm
- );
- }
- }
- return (cache[key] = res)
- }
- }
- /* */
- function createCompilerCreator (baseCompile) {
- return function createCompiler (baseOptions) {
- function compile (
- template,
- options
- ) {
- var finalOptions = Object.create(baseOptions);
- var errors = [];
- var tips = [];
- finalOptions.warn = function (msg, tip) {
- (tip ? tips : errors).push(msg);
- };
- if (options) {
- // merge custom modules
- if (options.modules) {
- finalOptions.modules =
- (baseOptions.modules || []).concat(options.modules);
- }
- // merge custom directives
- if (options.directives) {
- finalOptions.directives = extend(
- Object.create(baseOptions.directives || null),
- options.directives
- );
- }
- // copy other options
- for (var key in options) {
- if (key !== 'modules' && key !== 'directives') {
- finalOptions[key] = options[key];
- }
- }
- }
- var compiled = baseCompile(template, finalOptions);
- if (false) {
- errors.push.apply(errors, detectErrors(compiled.ast));
- }
- compiled.errors = errors;
- compiled.tips = tips;
- return compiled
- }
- return {
- compile: compile,
- compileToFunctions: createCompileToFunctionFn(compile)
- }
- }
- }
- /* */
- // `createCompilerCreator` allows creating compilers that use alternative
- // parser/optimizer/codegen, e.g the SSR optimizing compiler.
- // Here we just export a default compiler using the default parts.
- var createCompiler = createCompilerCreator(function baseCompile (
- template,
- options
- ) {
- var ast = parse(template.trim(), options);
- if (options.optimize !== false) {
- optimize(ast, options);
- }
- var code = generate(ast, options);
- return {
- ast: ast,
- render: code.render,
- staticRenderFns: code.staticRenderFns
- }
- });
- /* */
- var ref$1 = createCompiler(baseOptions);
- var compileToFunctions = ref$1.compileToFunctions;
- /* */
- // check whether current browser encodes a char inside attribute values
- var div;
- function getShouldDecode (href) {
- div = div || document.createElement('div');
- div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";
- return div.innerHTML.indexOf(' ') > 0
- }
- // #3663: IE encodes newlines inside attribute values while other browsers don't
- var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;
- // #6828: chrome encodes content in a[href]
- var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;
- /* */
- var idToTemplate = cached(function (id) {
- var el = query(id);
- return el && el.innerHTML
- });
- var mount = Vue$3.prototype.$mount;
- Vue$3.prototype.$mount = function (
- el,
- hydrating
- ) {
- el = el && query(el);
- /* istanbul ignore if */
- if (el === document.body || el === document.documentElement) {
- "production" !== 'production' && warn(
- "Do not mount Vue to <html> or <body> - mount to normal elements instead."
- );
- return this
- }
- var options = this.$options;
- // resolve template/el and convert to render function
- if (!options.render) {
- var template = options.template;
- if (template) {
- if (typeof template === 'string') {
- if (template.charAt(0) === '#') {
- template = idToTemplate(template);
- /* istanbul ignore if */
- if (false) {
- warn(
- ("Template element not found or is empty: " + (options.template)),
- this
- );
- }
- }
- } else if (template.nodeType) {
- template = template.innerHTML;
- } else {
- if (false) {
- warn('invalid template option:' + template, this);
- }
- return this
- }
- } else if (el) {
- template = getOuterHTML(el);
- }
- if (template) {
- /* istanbul ignore if */
- if (false) {
- mark('compile');
- }
- var ref = compileToFunctions(template, {
- shouldDecodeNewlines: shouldDecodeNewlines,
- shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,
- delimiters: options.delimiters,
- comments: options.comments
- }, this);
- var render = ref.render;
- var staticRenderFns = ref.staticRenderFns;
- options.render = render;
- options.staticRenderFns = staticRenderFns;
- /* istanbul ignore if */
- if (false) {
- mark('compile end');
- measure(("vue " + (this._name) + " compile"), 'compile', 'compile end');
- }
- }
- }
- return mount.call(this, el, hydrating)
- };
- /**
- * Get outerHTML of elements, taking care
- * of SVG elements in IE as well.
- */
- function getOuterHTML (el) {
- if (el.outerHTML) {
- return el.outerHTML
- } else {
- var container = document.createElement('div');
- container.appendChild(el.cloneNode(true));
- return container.innerHTML
- }
- }
- Vue$3.compile = compileToFunctions;
- module.exports = Vue$3;
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("162o").setImmediate))
- /***/ }),
- /***/ "IRek":
- /***/ (function(module, exports, __webpack_require__) {
- var CipherBase = __webpack_require__("z+8S")
- var des = __webpack_require__("BO8W")
- var inherits = __webpack_require__("LC74")
- var Buffer = __webpack_require__("X3l8").Buffer
- var modes = {
- 'des-ede3-cbc': des.CBC.instantiate(des.EDE),
- 'des-ede3': des.EDE,
- 'des-ede-cbc': des.CBC.instantiate(des.EDE),
- 'des-ede': des.EDE,
- 'des-cbc': des.CBC.instantiate(des.DES),
- 'des-ecb': des.DES
- }
- modes.des = modes['des-cbc']
- modes.des3 = modes['des-ede3-cbc']
- module.exports = DES
- inherits(DES, CipherBase)
- function DES (opts) {
- CipherBase.call(this)
- var modeName = opts.mode.toLowerCase()
- var mode = modes[modeName]
- var type
- if (opts.decrypt) {
- type = 'decrypt'
- } else {
- type = 'encrypt'
- }
- var key = opts.key
- if (!Buffer.isBuffer(key)) {
- key = Buffer.from(key)
- }
- if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {
- key = Buffer.concat([key, key.slice(0, 8)])
- }
- var iv = opts.iv
- if (!Buffer.isBuffer(iv)) {
- iv = Buffer.from(iv)
- }
- this._des = mode.create({
- key: key,
- iv: iv,
- type: type
- })
- }
- DES.prototype._update = function (data) {
- return Buffer.from(this._des.update(data))
- }
- DES.prototype._final = function () {
- return Buffer.from(this._des.final())
- }
- /***/ }),
- /***/ "Icsf":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var assert = __webpack_require__("08Lv");
- var inherits = __webpack_require__("LC74");
- var utils = __webpack_require__("iNQt");
- var Cipher = __webpack_require__("AWjC");
- function DESState() {
- this.tmp = new Array(2);
- this.keys = null;
- }
- function DES(options) {
- Cipher.call(this, options);
- var state = new DESState();
- this._desState = state;
- this.deriveKeys(state, options.key);
- }
- inherits(DES, Cipher);
- module.exports = DES;
- DES.create = function create(options) {
- return new DES(options);
- };
- var shiftTable = [
- 1, 1, 2, 2, 2, 2, 2, 2,
- 1, 2, 2, 2, 2, 2, 2, 1
- ];
- DES.prototype.deriveKeys = function deriveKeys(state, key) {
- state.keys = new Array(16 * 2);
- assert.equal(key.length, this.blockSize, 'Invalid key length');
- var kL = utils.readUInt32BE(key, 0);
- var kR = utils.readUInt32BE(key, 4);
- utils.pc1(kL, kR, state.tmp, 0);
- kL = state.tmp[0];
- kR = state.tmp[1];
- for (var i = 0; i < state.keys.length; i += 2) {
- var shift = shiftTable[i >>> 1];
- kL = utils.r28shl(kL, shift);
- kR = utils.r28shl(kR, shift);
- utils.pc2(kL, kR, state.keys, i);
- }
- };
- DES.prototype._update = function _update(inp, inOff, out, outOff) {
- var state = this._desState;
- var l = utils.readUInt32BE(inp, inOff);
- var r = utils.readUInt32BE(inp, inOff + 4);
- // Initial Permutation
- utils.ip(l, r, state.tmp, 0);
- l = state.tmp[0];
- r = state.tmp[1];
- if (this.type === 'encrypt')
- this._encrypt(state, l, r, state.tmp, 0);
- else
- this._decrypt(state, l, r, state.tmp, 0);
- l = state.tmp[0];
- r = state.tmp[1];
- utils.writeUInt32BE(out, l, outOff);
- utils.writeUInt32BE(out, r, outOff + 4);
- };
- DES.prototype._pad = function _pad(buffer, off) {
- if (this.padding === false) {
- return false;
- }
- var value = buffer.length - off;
- for (var i = off; i < buffer.length; i++)
- buffer[i] = value;
- return true;
- };
- DES.prototype._unpad = function _unpad(buffer) {
- if (this.padding === false) {
- return buffer;
- }
- var pad = buffer[buffer.length - 1];
- for (var i = buffer.length - pad; i < buffer.length; i++)
- assert.equal(buffer[i], pad);
- return buffer.slice(0, buffer.length - pad);
- };
- DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {
- var l = lStart;
- var r = rStart;
- // Apply f() x16 times
- for (var i = 0; i < state.keys.length; i += 2) {
- var keyL = state.keys[i];
- var keyR = state.keys[i + 1];
- // f(r, k)
- utils.expand(r, state.tmp, 0);
- keyL ^= state.tmp[0];
- keyR ^= state.tmp[1];
- var s = utils.substitute(keyL, keyR);
- var f = utils.permute(s);
- var t = r;
- r = (l ^ f) >>> 0;
- l = t;
- }
- // Reverse Initial Permutation
- utils.rip(r, l, out, off);
- };
- DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {
- var l = rStart;
- var r = lStart;
- // Apply f() x16 times
- for (var i = state.keys.length - 2; i >= 0; i -= 2) {
- var keyL = state.keys[i];
- var keyR = state.keys[i + 1];
- // f(r, k)
- utils.expand(l, state.tmp, 0);
- keyL ^= state.tmp[0];
- keyR ^= state.tmp[1];
- var s = utils.substitute(keyL, keyR);
- var f = utils.permute(s);
- var t = l;
- l = (r ^ f) >>> 0;
- r = t;
- }
- // Reverse Initial Permutation
- utils.rip(l, r, out, off);
- };
- /***/ }),
- /***/ "JaR3":
- /***/ (function(module, exports, __webpack_require__) {
- var exports = module.exports = function SHA (algorithm) {
- algorithm = algorithm.toLowerCase()
- var Algorithm = exports[algorithm]
- if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
- return new Algorithm()
- }
- exports.sha = __webpack_require__("N1es")
- exports.sha1 = __webpack_require__("KQ4j")
- exports.sha224 = __webpack_require__("lXn8")
- exports.sha256 = __webpack_require__("zvjZ")
- exports.sha384 = __webpack_require__("aY2F")
- exports.sha512 = __webpack_require__("C015")
- /***/ }),
- /***/ "JgjT":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(process, __dirname, module, Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EasyPlayerWasmModule; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common__ = __webpack_require__("MsX9");
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
- var fullURL = location.origin + '/';
- var Module = typeof Module !== "undefined" ? Module : {};
- var noExitRuntime;
- function LoadWasmModule(remoteHost) {
- var moduleOverrides = {};
- var key;
- for (key in Module) {
- if (Module.hasOwnProperty(key)) {
- moduleOverrides[key] = Module[key];
- }
- }
- var arguments_ = [];
- var thisProgram = "./this.program";
- var quit_ = function quit_(status, toThrow) {
- throw toThrow;
- };
- var ENVIRONMENT_IS_WEB = false;
- var ENVIRONMENT_IS_WORKER = false;
- var ENVIRONMENT_IS_NODE = false;
- var ENVIRONMENT_HAS_NODE = false;
- var ENVIRONMENT_IS_SHELL = false;
- ENVIRONMENT_IS_WEB = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === "object";
- ENVIRONMENT_IS_WORKER = typeof importScripts === "function";
- ENVIRONMENT_HAS_NODE = (typeof process === 'undefined' ? 'undefined' : _typeof(process)) === "object" && _typeof(process.versions) === "object" && typeof process.versions.node === "string";
- ENVIRONMENT_IS_NODE = ENVIRONMENT_HAS_NODE && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;
- ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
- if (Module["ENVIRONMENT"]) {
- throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");
- }
- var scriptDirectory = "";
- function locateFile(path) {
- if (path.startsWith("app://./")) {
- return remoteHost + '/EasyPlayer.wasm';
- }
- if (path.startsWith("http")) return path;
- if (Module["locateFile"]) {
- return Module["locateFile"](path, scriptDirectory);
- }
- return scriptDirectory + path;
- }
- var read_, readAsync, readBinary, setWindowTitle;
- if (ENVIRONMENT_IS_NODE) {
- scriptDirectory = __dirname + "/";
- var nodeFS;
- var nodePath;
- read_ = function shell_read(filename, binary) {
- var ret;
- if (!nodeFS) nodeFS = __webpack_require__("Ya8g");
- if (!nodePath) nodePath = __webpack_require__("o/zv");
- filename = nodePath["normalize"](filename);
- ret = nodeFS["readFileSync"](filename);
- return binary ? ret : ret.toString();
- };
- readBinary = function readBinary(filename) {
- var ret = read_(filename, true);
- if (!ret.buffer) {
- ret = new Uint8Array(ret);
- }
- assert(ret.buffer);
- return ret;
- };
- if (process["argv"].length > 1) {
- thisProgram = process["argv"][1].replace(/\\/g, "/");
- }
- arguments_ = process["argv"].slice(2);
- if (true) {
- module["exports"] = Module;
- }
- process["on"]("uncaughtException", function (ex) {
- if (!(ex instanceof ExitStatus)) {
- throw ex;
- }
- });
- process["on"]("unhandledRejection", abort);
- quit_ = function quit_(status) {
- process["exit"](status);
- };
- Module["inspect"] = function () {
- return "[Emscripten Module object]";
- };
- } else if (ENVIRONMENT_IS_SHELL) {
- if (typeof read != "undefined") {
- read_ = function shell_read(f) {
- return read(f);
- };
- }
- readBinary = function readBinary(f) {
- var data;
- if (typeof readbuffer === "function") {
- return new Uint8Array(readbuffer(f));
- }
- data = read(f, "binary");
- assert((typeof data === 'undefined' ? 'undefined' : _typeof(data)) === "object");
- return data;
- };
- if (typeof scriptArgs != "undefined") {
- arguments_ = scriptArgs;
- } else if (typeof arguments != "undefined") {
- arguments_ = arguments;
- }
- if (typeof quit === "function") {
- quit_ = function quit_(status) {
- quit(status);
- };
- }
- if (typeof print !== "undefined") {
- if (typeof console === "undefined") console = {};
- console.log = print;
- console.warn = console.error = typeof printErr !== "undefined" ? printErr : print;
- }
- } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
- if (ENVIRONMENT_IS_WORKER) {
- scriptDirectory = self.location.href;
- } else if (document.currentScript) {
- scriptDirectory = document.currentScript.src;
- }
- if (scriptDirectory.indexOf("blob:") !== 0) {
- scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf("/") + 1);
- } else {
- scriptDirectory = "";
- }
- read_ = function shell_read(url) {
- var xhr = new XMLHttpRequest();
- xhr.open("GET", url, false);
- xhr.send(null);
- return xhr.responseText;
- };
- if (ENVIRONMENT_IS_WORKER) {
- readBinary = function readBinary(url) {
- var xhr = new XMLHttpRequest();
- xhr.open("GET", url, false);
- xhr.responseType = "arraybuffer";
- xhr.send(null);
- return new Uint8Array(xhr.response);
- };
- }
- readAsync = function readAsync(url, onload, onerror) {
- var xhr = new XMLHttpRequest();
- xhr.open("GET", url, true);
- xhr.responseType = "arraybuffer";
- xhr.onload = function xhr_onload() {
- if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
- onload(xhr.response);
- return;
- }
- onerror();
- };
- xhr.onerror = onerror;
- xhr.send(null);
- };
- setWindowTitle = function setWindowTitle(title) {
- document.title = title;
- };
- } else {
- throw new Error("environment detection error");
- }
- var out = Module["print"] || console.log.bind(console);
- var err = Module["printErr"] || console.warn.bind(console);
- for (key in moduleOverrides) {
- if (moduleOverrides.hasOwnProperty(key)) {
- Module[key] = moduleOverrides[key];
- }
- }
- moduleOverrides = null;
- if (Module["arguments"]) arguments_ = Module["arguments"];
- if (!Object.getOwnPropertyDescriptor(Module, "arguments")) Object.defineProperty(Module, "arguments", {
- configurable: true,
- get: function get() {
- abort("Module.arguments has been replaced with plain arguments_");
- }
- });
- if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
- if (!Object.getOwnPropertyDescriptor(Module, "thisProgram")) Object.defineProperty(Module, "thisProgram", {
- configurable: true,
- get: function get() {
- abort("Module.thisProgram has been replaced with plain thisProgram");
- }
- });
- if (Module["quit"]) quit_ = Module["quit"];
- if (!Object.getOwnPropertyDescriptor(Module, "quit")) Object.defineProperty(Module, "quit", {
- configurable: true,
- get: function get() {
- abort("Module.quit has been replaced with plain quit_");
- }
- });
- assert(typeof Module["memoryInitializerPrefixURL"] === "undefined", "Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");
- assert(typeof Module["pthreadMainPrefixURL"] === "undefined", "Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");
- assert(typeof Module["cdInitializerPrefixURL"] === "undefined", "Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");
- assert(typeof Module["filePackagePrefixURL"] === "undefined", "Module.filePackagePrefixURL option was removed, use Module.locateFile instead");
- assert(typeof Module["read"] === "undefined", "Module.read option was removed (modify read_ in JS)");
- assert(typeof Module["readAsync"] === "undefined", "Module.readAsync option was removed (modify readAsync in JS)");
- assert(typeof Module["readBinary"] === "undefined", "Module.readBinary option was removed (modify readBinary in JS)");
- assert(typeof Module["setWindowTitle"] === "undefined", "Module.setWindowTitle option was removed (modify setWindowTitle in JS)");
- if (!Object.getOwnPropertyDescriptor(Module, "read")) Object.defineProperty(Module, "read", {
- configurable: true,
- get: function get() {
- abort("Module.read has been replaced with plain read_");
- }
- });
- if (!Object.getOwnPropertyDescriptor(Module, "readAsync")) Object.defineProperty(Module, "readAsync", {
- configurable: true,
- get: function get() {
- abort("Module.readAsync has been replaced with plain readAsync");
- }
- });
- if (!Object.getOwnPropertyDescriptor(Module, "readBinary")) Object.defineProperty(Module, "readBinary", {
- configurable: true,
- get: function get() {
- abort("Module.readBinary has been replaced with plain readBinary");
- }
- });
- stackSave = stackRestore = stackAlloc = function stackAlloc() {
- abort("cannot use the stack before compiled code is ready to run, and has provided stack access");
- };
- function dynamicAlloc(size) {
- assert(DYNAMICTOP_PTR);
- var ret = HEAP32[DYNAMICTOP_PTR >> 2];
- var end = ret + size + 15 & -16;
- if (end > _emscripten_get_heap_size()) {
- abort("failure to dynamicAlloc - memory growth etc. is not supported there, call malloc/sbrk directly");
- }
- HEAP32[DYNAMICTOP_PTR >> 2] = end;
- return ret;
- }
- function getNativeTypeSize(type) {
- switch (type) {
- case "i1":
- case "i8":
- return 1;
- case "i16":
- return 2;
- case "i32":
- return 4;
- case "i64":
- return 8;
- case "float":
- return 4;
- case "double":
- return 8;
- default:
- {
- if (type[type.length - 1] === "*") {
- return 4;
- } else if (type[0] === "i") {
- var bits = parseInt(type.substr(1));
- assert(bits % 8 === 0, "getNativeTypeSize invalid bits " + bits + ", type " + type);
- return bits / 8;
- } else {
- return 0;
- }
- }
- }
- }
- function warnOnce(text) {
- if (!warnOnce.shown) warnOnce.shown = {};
- if (!warnOnce.shown[text]) {
- warnOnce.shown[text] = 1;
- err(text);
- }
- }
- function convertJsFunctionToWasm(func, sig) {
- var typeSection = [1, 0, 1, 96];
- var sigRet = sig.slice(0, 1);
- var sigParam = sig.slice(1);
- var typeCodes = { "i": 127, "j": 126, "f": 125, "d": 124 };
- typeSection.push(sigParam.length);
- for (var i = 0; i < sigParam.length; ++i) {
- typeSection.push(typeCodes[sigParam[i]]);
- }
- if (sigRet == "v") {
- typeSection.push(0);
- } else {
- typeSection = typeSection.concat([1, typeCodes[sigRet]]);
- }
- typeSection[1] = typeSection.length - 2;
- var bytes = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0].concat(typeSection, [2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0]));
- var module = new WebAssembly.Module(bytes);
- var instance = new WebAssembly.Instance(module, { e: { f: func } });
- var wrappedFunc = instance.exports.f;
- return wrappedFunc;
- }
- function addFunctionWasm(func, sig) {
- var table = wasmTable;
- var ret = table.length;
- try {
- table.grow(1);
- } catch (err) {
- if (!err instanceof RangeError) {
- throw err;
- }
- throw "Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.";
- }
- try {
- table.set(ret, func);
- } catch (err) {
- if (!err instanceof TypeError) {
- throw err;
- }
- assert(typeof sig !== "undefined", "Missing signature argument to addFunction");
- var wrapped = convertJsFunctionToWasm(func, sig);
- table.set(ret, wrapped);
- }
- return ret;
- }
- function addFunction(func, sig) {
- assert(typeof func !== "undefined");
- return addFunctionWasm(func, sig);
- }
- var tempRet0 = 0;
- var setTempRet0 = function setTempRet0(value) {
- tempRet0 = value;
- };
- var wasmBinary;
- if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
- if (!Object.getOwnPropertyDescriptor(Module, "wasmBinary")) Object.defineProperty(Module, "wasmBinary", {
- configurable: true,
- get: function get() {
- abort("Module.wasmBinary has been replaced with plain wasmBinary");
- }
- });
- if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
- if (!Object.getOwnPropertyDescriptor(Module, "noExitRuntime")) Object.defineProperty(Module, "noExitRuntime", {
- configurable: true,
- get: function get() {
- abort("Module.noExitRuntime has been replaced with plain noExitRuntime");
- }
- });
- if ((typeof WebAssembly === 'undefined' ? 'undefined' : _typeof(WebAssembly)) !== "object") {
- abort("No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.");
- }
- function setValue(ptr, value, type, noSafe) {
- type = type || "i8";
- if (type.charAt(type.length - 1) === "*") type = "i32";
- switch (type) {
- case "i1":
- HEAP8[ptr >> 0] = value;
- break;
- case "i8":
- HEAP8[ptr >> 0] = value;
- break;
- case "i16":
- HEAP16[ptr >> 1] = value;
- break;
- case "i32":
- HEAP32[ptr >> 2] = value;
- break;
- case "i64":
- tempI64 = [value >>> 0, (tempDouble = value, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1];
- break;
- case "float":
- HEAPF32[ptr >> 2] = value;
- break;
- case "double":
- HEAPF64[ptr >> 3] = value;
- break;
- default:
- abort("invalid type for setValue: " + type);
- }
- }
- var wasmMemory;
- var wasmTable = new WebAssembly.Table({ "initial": 2542, "maximum": 2542 + 10, "element": "anyfunc" });
- var ABORT = false;
- var EXITSTATUS = 0;
- function assert(condition, text) {
- if (!condition) {
- abort("Assertion failed: " + text);
- }
- }
- function getCFunc(ident) {
- var func = Module["_" + ident];
- assert(func, "Cannot call unknown function " + ident + ", make sure it is exported");
- return func;
- }
- function ccall(ident, returnType, argTypes, args, opts) {
- var toC = {
- "string": function string(str) {
- var ret = 0;
- if (str !== null && str !== undefined && str !== 0) {
- var len = (str.length << 2) + 1;
- ret = stackAlloc(len);
- stringToUTF8(str, ret, len);
- }
- return ret;
- }, "array": function array(arr) {
- var ret = stackAlloc(arr.length);
- writeArrayToMemory(arr, ret);
- return ret;
- }
- };
- function convertReturnValue(ret) {
- if (returnType === "string") return UTF8ToString(ret);
- if (returnType === "boolean") return Boolean(ret);
- return ret;
- }
- var func = getCFunc(ident);
- var cArgs = [];
- var stack = 0;
- assert(returnType !== "array", 'Return type should not be "array".');
- if (args) {
- for (var i = 0; i < args.length; i++) {
- var converter = toC[argTypes[i]];
- if (converter) {
- if (stack === 0) stack = stackSave();
- cArgs[i] = converter(args[i]);
- } else {
- cArgs[i] = args[i];
- }
- }
- }
- var ret = func.apply(null, cArgs);
- ret = convertReturnValue(ret);
- if (stack !== 0) stackRestore(stack);
- return ret;
- }
- function cwrap(ident, returnType, argTypes, opts) {
- return function () {
- return ccall(ident, returnType, argTypes, arguments, opts);
- };
- }
- var ALLOC_NONE = 3;
- function allocate(slab, types, allocator, ptr) {
- var zeroinit, size;
- if (typeof slab === "number") {
- zeroinit = true;
- size = slab;
- } else {
- zeroinit = false;
- size = slab.length;
- }
- var singleType = typeof types === "string" ? types : null;
- var ret;
- if (allocator == ALLOC_NONE) {
- ret = ptr;
- } else {
- ret = [_malloc, stackAlloc, dynamicAlloc][allocator](Math.max(size, singleType ? 1 : types.length));
- }
- if (zeroinit) {
- var stop;
- ptr = ret;
- assert((ret & 3) == 0);
- stop = ret + (size & ~3);
- for (; ptr < stop; ptr += 4) {
- HEAP32[ptr >> 2] = 0;
- }
- stop = ret + size;
- while (ptr < stop) {
- HEAP8[ptr++ >> 0] = 0;
- }
- return ret;
- }
- if (singleType === "i8") {
- if (slab.subarray || slab.slice) {
- HEAPU8.set(slab, ret);
- } else {
- HEAPU8.set(new Uint8Array(slab), ret);
- }
- return ret;
- }
- var i = 0,
- type,
- typeSize,
- previousType;
- while (i < size) {
- var curr = slab[i];
- type = singleType || types[i];
- if (type === 0) {
- i++;
- continue;
- }
- assert(type, "Must know what type to store in allocate!");
- if (type == "i64") type = "i32";
- setValue(ret + i, curr, type);
- if (previousType !== type) {
- typeSize = getNativeTypeSize(type);
- previousType = type;
- }
- i += typeSize;
- }
- return ret;
- }
- var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined;
- function UTF8ArrayToString(u8Array, idx, maxBytesToRead) {
- var endIdx = idx + maxBytesToRead;
- var endPtr = idx;
- while (u8Array[endPtr] && !(endPtr >= endIdx)) {
- ++endPtr;
- }if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {
- return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));
- } else {
- var str = "";
- while (idx < endPtr) {
- var u0 = u8Array[idx++];
- if (!(u0 & 128)) {
- str += String.fromCharCode(u0);
- continue;
- }
- var u1 = u8Array[idx++] & 63;
- if ((u0 & 224) == 192) {
- str += String.fromCharCode((u0 & 31) << 6 | u1);
- continue;
- }
- var u2 = u8Array[idx++] & 63;
- if ((u0 & 240) == 224) {
- u0 = (u0 & 15) << 12 | u1 << 6 | u2;
- } else {
- if ((u0 & 248) != 240) warnOnce("Invalid UTF-8 leading byte 0x" + u0.toString(16) + " encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!");
- u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u8Array[idx++] & 63;
- }
- if (u0 < 65536) {
- str += String.fromCharCode(u0);
- } else {
- var ch = u0 - 65536;
- str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
- }
- }
- }
- return str;
- }
- function UTF8ToString(ptr, maxBytesToRead) {
- return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
- }
- function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
- if (!(maxBytesToWrite > 0)) return 0;
- var startIdx = outIdx;
- var endIdx = outIdx + maxBytesToWrite - 1;
- for (var i = 0; i < str.length; ++i) {
- var u = str.charCodeAt(i);
- if (u >= 55296 && u <= 57343) {
- var u1 = str.charCodeAt(++i);
- u = 65536 + ((u & 1023) << 10) | u1 & 1023;
- }
- if (u <= 127) {
- if (outIdx >= endIdx) break;
- outU8Array[outIdx++] = u;
- } else if (u <= 2047) {
- if (outIdx + 1 >= endIdx) break;
- outU8Array[outIdx++] = 192 | u >> 6;
- outU8Array[outIdx++] = 128 | u & 63;
- } else if (u <= 65535) {
- if (outIdx + 2 >= endIdx) break;
- outU8Array[outIdx++] = 224 | u >> 12;
- outU8Array[outIdx++] = 128 | u >> 6 & 63;
- outU8Array[outIdx++] = 128 | u & 63;
- } else {
- if (outIdx + 3 >= endIdx) break;
- if (u >= 2097152) warnOnce("Invalid Unicode code point 0x" + u.toString(16) + " encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF).");
- outU8Array[outIdx++] = 240 | u >> 18;
- outU8Array[outIdx++] = 128 | u >> 12 & 63;
- outU8Array[outIdx++] = 128 | u >> 6 & 63;
- outU8Array[outIdx++] = 128 | u & 63;
- }
- }
- outU8Array[outIdx] = 0;
- return outIdx - startIdx;
- }
- function stringToUTF8(str, outPtr, maxBytesToWrite) {
- assert(typeof maxBytesToWrite == "number", "stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");
- return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
- }
- function lengthBytesUTF8(str) {
- var len = 0;
- for (var i = 0; i < str.length; ++i) {
- var u = str.charCodeAt(i);
- if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;
- if (u <= 127) ++len;else if (u <= 2047) len += 2;else if (u <= 65535) len += 3;else len += 4;
- }
- return len;
- }
- var UTF16Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : undefined;
- function writeArrayToMemory(array, buffer) {
- assert(array.length >= 0, "writeArrayToMemory array must have a length (should be an array or typed array)");
- HEAP8.set(array, buffer);
- }
- function writeAsciiToMemory(str, buffer, dontAddNull) {
- for (var i = 0; i < str.length; ++i) {
- assert(str.charCodeAt(i) === str.charCodeAt(i) & 255);
- HEAP8[buffer++ >> 0] = str.charCodeAt(i);
- }
- if (!dontAddNull) HEAP8[buffer >> 0] = 0;
- }
- var WASM_PAGE_SIZE = 65536;
- function alignUp(x, multiple) {
- if (x % multiple > 0) {
- x += multiple - x % multiple;
- }
- return x;
- }
- var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
- function updateGlobalBufferAndViews(buf) {
- buffer = buf;
- Module["HEAP8"] = HEAP8 = new Int8Array(buf);
- Module["HEAP16"] = HEAP16 = new Int16Array(buf);
- Module["HEAP32"] = HEAP32 = new Int32Array(buf);
- Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
- Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf);
- Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf);
- Module["HEAPF32"] = HEAPF32 = new Float32Array(buf);
- Module["HEAPF64"] = HEAPF64 = new Float64Array(buf);
- }
- var STACK_BASE = 6584208,
- STACK_MAX = 1341328,
- DYNAMIC_BASE = 6584208,
- DYNAMICTOP_PTR = 1341168;
- assert(STACK_BASE % 16 === 0, "stack must start aligned");
- assert(DYNAMIC_BASE % 16 === 0, "heap must start aligned");
- var TOTAL_STACK = 5242880;
- if (Module["TOTAL_STACK"]) assert(TOTAL_STACK === Module["TOTAL_STACK"], "the stack size can no longer be determined at runtime");
- var INITIAL_TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 67108864;
- if (!Object.getOwnPropertyDescriptor(Module, "TOTAL_MEMORY")) Object.defineProperty(Module, "TOTAL_MEMORY", {
- configurable: true,
- get: function get() {
- abort("Module.TOTAL_MEMORY has been replaced with plain INITIAL_TOTAL_MEMORY");
- }
- });
- assert(INITIAL_TOTAL_MEMORY >= TOTAL_STACK, "TOTAL_MEMORY should be larger than TOTAL_STACK, was " + INITIAL_TOTAL_MEMORY + "! (TOTAL_STACK=" + TOTAL_STACK + ")");
- assert(typeof Int32Array !== "undefined" && typeof Float64Array !== "undefined" && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, "JS engine does not provide full typed array support");
- if (Module["wasmMemory"]) {
- wasmMemory = Module["wasmMemory"];
- } else {
- wasmMemory = new WebAssembly.Memory({ "initial": INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE });
- }
- if (wasmMemory) {
- buffer = wasmMemory.buffer;
- }
- INITIAL_TOTAL_MEMORY = buffer.byteLength;
- assert(INITIAL_TOTAL_MEMORY % WASM_PAGE_SIZE === 0);
- updateGlobalBufferAndViews(buffer);
- HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;
- function writeStackCookie() {
- assert((STACK_MAX & 3) == 0);
- HEAPU32[(STACK_MAX >> 2) + 1] = 34821223;
- HEAPU32[(STACK_MAX >> 2) + 2] = 2310721022;
- HEAP32[0] = 1668509029;
- }
- function checkStackCookie() {
- var cookie1 = HEAPU32[(STACK_MAX >> 2) + 1];
- var cookie2 = HEAPU32[(STACK_MAX >> 2) + 2];
- if (cookie1 != 34821223 || cookie2 != 2310721022) {
- abort("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x" + cookie2.toString(16) + " " + cookie1.toString(16));
- }
- if (HEAP32[0] !== 1668509029) abort("Runtime error: The application has corrupted its heap memory area (address zero)!");
- }
- function abortStackOverflow(allocSize) {
- abort("Stack overflow! Attempted to allocate " + allocSize + " bytes on the stack, but stack has only " + (STACK_MAX - stackSave() + allocSize) + " bytes available!");
- }
- (function () {
- var h16 = new Int16Array(1);
- var h8 = new Int8Array(h16.buffer);
- h16[0] = 25459;
- if (h8[0] !== 115 || h8[1] !== 99) throw "Runtime error: expected the system to be little-endian!";
- })();
- function callRuntimeCallbacks(callbacks) {
- while (callbacks.length > 0) {
- var callback = callbacks.shift();
- if (typeof callback == "function") {
- callback();
- continue;
- }
- var func = callback.func;
- if (typeof func === "number") {
- if (callback.arg === undefined) {
- Module["dynCall_v"](func);
- } else {
- Module["dynCall_vi"](func, callback.arg);
- }
- } else {
- func(callback.arg === undefined ? null : callback.arg);
- }
- }
- }
- var __ATPRERUN__ = [];
- var __ATINIT__ = [];
- var __ATMAIN__ = [];
- var __ATPOSTRUN__ = [];
- var runtimeInitialized = false;
- var runtimeExited = false;
- function preRun() {
- if (Module["preRun"]) {
- if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]];
- while (Module["preRun"].length) {
- addOnPreRun(Module["preRun"].shift());
- }
- }
- callRuntimeCallbacks(__ATPRERUN__);
- }
- function initRuntime() {
- checkStackCookie();
- assert(!runtimeInitialized);
- runtimeInitialized = true;
- if (!Module["noFSInit"] && !FS.init.initialized) FS.init();
- TTY.init();
- callRuntimeCallbacks(__ATINIT__);
- }
- function preMain() {
- checkStackCookie();
- FS.ignorePermissions = false;
- callRuntimeCallbacks(__ATMAIN__);
- }
- function exitRuntime() {
- checkStackCookie();
- runtimeExited = true;
- }
- function postRun() {
- checkStackCookie();
- if (Module["postRun"]) {
- if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]];
- while (Module["postRun"].length) {
- addOnPostRun(Module["postRun"].shift());
- }
- }
- callRuntimeCallbacks(__ATPOSTRUN__);
- }
- function addOnPreRun(cb) {
- __ATPRERUN__.unshift(cb);
- }
- function addOnPostRun(cb) {
- __ATPOSTRUN__.unshift(cb);
- }
- assert(Math.imul, "This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");
- assert(Math.fround, "This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");
- assert(Math.clz32, "This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");
- assert(Math.trunc, "This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");
- var Math_abs = Math.abs;
- var Math_ceil = Math.ceil;
- var Math_floor = Math.floor;
- var Math_min = Math.min;
- var runDependencies = 0;
- var runDependencyWatcher = null;
- var dependenciesFulfilled = null;
- var runDependencyTracking = {};
- function getUniqueRunDependency(id) {
- var orig = id;
- while (1) {
- if (!runDependencyTracking[id]) return id;
- id = orig + Math.random();
- }
- return id;
- }
- function addRunDependency(id) {
- runDependencies++;
- if (Module["monitorRunDependencies"]) {
- Module["monitorRunDependencies"](runDependencies);
- }
- if (id) {
- assert(!runDependencyTracking[id]);
- runDependencyTracking[id] = 1;
- if (runDependencyWatcher === null && typeof setInterval !== "undefined") {
- runDependencyWatcher = setInterval(function () {
- if (ABORT) {
- clearInterval(runDependencyWatcher);
- runDependencyWatcher = null;
- return;
- }
- var shown = false;
- for (var dep in runDependencyTracking) {
- if (!shown) {
- shown = true;
- err("still waiting on run dependencies:");
- }
- err("dependency: " + dep);
- }
- if (shown) {
- err("(end of list)");
- }
- }, 1e4);
- }
- } else {
- err("warning: run dependency added without ID");
- }
- }
- function removeRunDependency(id) {
- runDependencies--;
- if (Module["monitorRunDependencies"]) {
- Module["monitorRunDependencies"](runDependencies);
- }
- if (id) {
- assert(runDependencyTracking[id]);
- delete runDependencyTracking[id];
- } else {
- err("warning: run dependency removed without ID");
- }
- if (runDependencies == 0) {
- if (runDependencyWatcher !== null) {
- clearInterval(runDependencyWatcher);
- runDependencyWatcher = null;
- }
- if (dependenciesFulfilled) {
- var callback = dependenciesFulfilled;
- dependenciesFulfilled = null;
- callback();
- }
- }
- }
- Module["preloadedImages"] = {};
- Module["preloadedAudios"] = {};
- function abort(what) {
- if (Module["onAbort"]) {
- Module["onAbort"](what);
- }
- what += "";
- out(what);
- err(what);
- ABORT = true;
- EXITSTATUS = 1;
- var output = "abort(" + what + ") at " + stackTrace();
- what = output;
- throw new WebAssembly.RuntimeError(what);
- }
- var dataURIPrefix = "data:application/octet-stream;base64,";
- function isDataURI(filename) {
- return String.prototype.startsWith ? filename.startsWith(dataURIPrefix) : filename.indexOf(dataURIPrefix) === 0;
- }
- var wasmBinaryFile = fullURL + "EasyPlayer.wasm";
- if (!isDataURI(wasmBinaryFile)) {
- wasmBinaryFile = locateFile(wasmBinaryFile);
- }
- function getBinary() {
- try {
- if (wasmBinary) {
- return new Uint8Array(wasmBinary);
- }
- if (readBinary) {
- return readBinary(wasmBinaryFile);
- } else {
- throw "both async and sync fetching of the wasm failed";
- }
- } catch (err) {
- abort(err);
- }
- }
- function getBinaryPromise() {
- if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === "function") {
- return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function (response) {
- if (!response["ok"]) {
- throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
- }
- return response["arrayBuffer"]();
- }).catch(function () {
- return getBinary();
- });
- }
- return new Promise(function (resolve, reject) {
- resolve(getBinary());
- });
- }
- function createWasm() {
- var info = { "env": asmLibraryArg, "wasi_unstable": asmLibraryArg };
- function receiveInstance(instance, module) {
- var exports = instance.exports;
- Module["asm"] = exports;
- removeRunDependency("wasm-instantiate");
- }
- addRunDependency("wasm-instantiate");
- var trueModule = Module;
- function receiveInstantiatedSource(output) {
- assert(Module === trueModule, "the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");
- trueModule = null;
- receiveInstance(output["instance"]);
- }
- function instantiateArrayBuffer(receiver) {
- return getBinaryPromise().then(function (binary) {
- return WebAssembly.instantiate(binary, info);
- }).then(receiver, function (reason) {
- err("failed to asynchronously prepare wasm: " + reason);
- abort(reason);
- });
- }
- function instantiateAsync() {
- if (!wasmBinary && typeof WebAssembly.instantiateStreaming === "function" && !isDataURI(wasmBinaryFile) && typeof fetch === "function") {
- fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function (response) {
- var result = WebAssembly.instantiateStreaming(response, info);
- return result.then(receiveInstantiatedSource, function (reason) {
- err("wasm streaming compile failed: " + reason);
- err("falling back to ArrayBuffer instantiation");
- instantiateArrayBuffer(receiveInstantiatedSource);
- });
- });
- } else {
- return instantiateArrayBuffer(receiveInstantiatedSource);
- }
- }
- if (Module["instantiateWasm"]) {
- try {
- var exports = Module["instantiateWasm"](info, receiveInstance);
- return exports;
- } catch (e) {
- err("Module.instantiateWasm callback failed with error: " + e);
- return false;
- }
- }
- instantiateAsync();
- return {};
- }
- var tempDouble;
- var tempI64;
- __ATINIT__.push({
- func: function func() {
- ___wasm_call_ctors();
- }
- });
- function demangle(func) {
- warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");
- return func;
- }
- function demangleAll(text) {
- var regex = /\b_Z[\w\d_]+/g;
- return text.replace(regex, function (x) {
- var y = demangle(x);
- return x === y ? x : y + " [" + x + "]";
- });
- }
- function jsStackTrace() {
- var err = new Error();
- if (!err.stack) {
- try {
- throw new Error(0);
- } catch (e) {
- err = e;
- }
- if (!err.stack) {
- return "(no stack trace available)";
- }
- }
- return err.stack.toString();
- }
- function stackTrace() {
- var js = jsStackTrace();
- if (Module["extraStackTrace"]) js += "\n" + Module["extraStackTrace"]();
- return demangleAll(js);
- }
- function ___cxa_allocate_exception(size) {
- return _malloc(size);
- }
- var ___exception_infos = {};
- var ___exception_last = 0;
- function ___cxa_throw(ptr, type, destructor) {
- ___exception_infos[ptr] = {
- ptr: ptr,
- adjusted: [ptr],
- type: type,
- destructor: destructor,
- refcount: 0,
- caught: false,
- rethrown: false
- };
- ___exception_last = ptr;
- if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) {
- __ZSt18uncaught_exceptionv.uncaught_exceptions = 1;
- } else {
- __ZSt18uncaught_exceptionv.uncaught_exceptions++;
- }
- throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";
- }
- function ___lock() {}
- function ___setErrNo(value) {
- if (Module["___errno_location"]) HEAP32[Module["___errno_location"]() >> 2] = value;else err("failed to set errno from JS");
- return value;
- }
- var PATH = {
- splitPath: function splitPath(filename) {
- var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
- return splitPathRe.exec(filename).slice(1);
- }, normalizeArray: function normalizeArray(parts, allowAboveRoot) {
- var up = 0;
- for (var i = parts.length - 1; i >= 0; i--) {
- var last = parts[i];
- if (last === ".") {
- parts.splice(i, 1);
- } else if (last === "..") {
- parts.splice(i, 1);
- up++;
- } else if (up) {
- parts.splice(i, 1);
- up--;
- }
- }
- if (allowAboveRoot) {
- for (; up; up--) {
- parts.unshift("..");
- }
- }
- return parts;
- }, normalize: function normalize(path) {
- var isAbsolute = path.charAt(0) === "/",
- trailingSlash = path.substr(-1) === "/";
- path = PATH.normalizeArray(path.split("/").filter(function (p) {
- return !!p;
- }), !isAbsolute).join("/");
- if (!path && !isAbsolute) {
- path = ".";
- }
- if (path && trailingSlash) {
- path += "/";
- }
- return (isAbsolute ? "/" : "") + path;
- }, dirname: function dirname(path) {
- var result = PATH.splitPath(path),
- root = result[0],
- dir = result[1];
- if (!root && !dir) {
- return ".";
- }
- if (dir) {
- dir = dir.substr(0, dir.length - 1);
- }
- return root + dir;
- }, basename: function basename(path) {
- if (path === "/") return "/";
- var lastSlash = path.lastIndexOf("/");
- if (lastSlash === -1) return path;
- return path.substr(lastSlash + 1);
- }, extname: function extname(path) {
- return PATH.splitPath(path)[3];
- }, join: function join() {
- var paths = Array.prototype.slice.call(arguments, 0);
- return PATH.normalize(paths.join("/"));
- }, join2: function join2(l, r) {
- return PATH.normalize(l + "/" + r);
- }
- };
- var PATH_FS = {
- resolve: function resolve() {
- var resolvedPath = "",
- resolvedAbsolute = false;
- for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
- var path = i >= 0 ? arguments[i] : FS.cwd();
- if (typeof path !== "string") {
- throw new TypeError("Arguments to path.resolve must be strings");
- } else if (!path) {
- return "";
- }
- resolvedPath = path + "/" + resolvedPath;
- resolvedAbsolute = path.charAt(0) === "/";
- }
- resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter(function (p) {
- return !!p;
- }), !resolvedAbsolute).join("/");
- return (resolvedAbsolute ? "/" : "") + resolvedPath || ".";
- }, relative: function relative(from, to) {
- from = PATH_FS.resolve(from).substr(1);
- to = PATH_FS.resolve(to).substr(1);
- function trim(arr) {
- var start = 0;
- for (; start < arr.length; start++) {
- if (arr[start] !== "") break;
- }
- var end = arr.length - 1;
- for (; end >= 0; end--) {
- if (arr[end] !== "") break;
- }
- if (start > end) return [];
- return arr.slice(start, end - start + 1);
- }
- var fromParts = trim(from.split("/"));
- var toParts = trim(to.split("/"));
- var length = Math.min(fromParts.length, toParts.length);
- var samePartsLength = length;
- for (var i = 0; i < length; i++) {
- if (fromParts[i] !== toParts[i]) {
- samePartsLength = i;
- break;
- }
- }
- var outputParts = [];
- for (var i = samePartsLength; i < fromParts.length; i++) {
- outputParts.push("..");
- }
- outputParts = outputParts.concat(toParts.slice(samePartsLength));
- return outputParts.join("/");
- }
- };
- var TTY = {
- ttys: [], init: function init() {}, shutdown: function shutdown() {}, register: function register(dev, ops) {
- TTY.ttys[dev] = { input: [], output: [], ops: ops };
- FS.registerDevice(dev, TTY.stream_ops);
- }, stream_ops: {
- open: function open(stream) {
- var tty = TTY.ttys[stream.node.rdev];
- if (!tty) {
- throw new FS.ErrnoError(43);
- }
- stream.tty = tty;
- stream.seekable = false;
- }, close: function close(stream) {
- stream.tty.ops.flush(stream.tty);
- }, flush: function flush(stream) {
- stream.tty.ops.flush(stream.tty);
- }, read: function read(stream, buffer, offset, length, pos) {
- if (!stream.tty || !stream.tty.ops.get_char) {
- throw new FS.ErrnoError(60);
- }
- var bytesRead = 0;
- for (var i = 0; i < length; i++) {
- var result;
- try {
- result = stream.tty.ops.get_char(stream.tty);
- } catch (e) {
- throw new FS.ErrnoError(29);
- }
- if (result === undefined && bytesRead === 0) {
- throw new FS.ErrnoError(6);
- }
- if (result === null || result === undefined) break;
- bytesRead++;
- buffer[offset + i] = result;
- }
- if (bytesRead) {
- stream.node.timestamp = Date.now();
- }
- return bytesRead;
- }, write: function write(stream, buffer, offset, length, pos) {
- if (!stream.tty || !stream.tty.ops.put_char) {
- throw new FS.ErrnoError(60);
- }
- try {
- for (var i = 0; i < length; i++) {
- stream.tty.ops.put_char(stream.tty, buffer[offset + i]);
- }
- } catch (e) {
- throw new FS.ErrnoError(29);
- }
- if (length) {
- stream.node.timestamp = Date.now();
- }
- return i;
- }
- }, default_tty_ops: {
- get_char: function get_char(tty) {
- if (!tty.input.length) {
- var result = null;
- if (ENVIRONMENT_IS_NODE) {
- var BUFSIZE = 256;
- var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE);
- var bytesRead = 0;
- try {
- bytesRead = nodeFS.readSync(process.stdin.fd, buf, 0, BUFSIZE, null);
- } catch (e) {
- if (e.toString().indexOf("EOF") != -1) bytesRead = 0;else throw e;
- }
- if (bytesRead > 0) {
- result = buf.slice(0, bytesRead).toString("utf-8");
- } else {
- result = null;
- }
- } else if (typeof window != "undefined" && typeof window.prompt == "function") {
- result = window.prompt("Input: ");
- if (result !== null) {
- result += "\n";
- }
- } else if (typeof readline == "function") {
- result = readline();
- if (result !== null) {
- result += "\n";
- }
- }
- if (!result) {
- return null;
- }
- tty.input = intArrayFromString(result, true);
- }
- return tty.input.shift();
- }, put_char: function put_char(tty, val) {
- if (val === null || val === 10) {
- out(UTF8ArrayToString(tty.output, 0));
- tty.output = [];
- } else {
- if (val != 0) tty.output.push(val);
- }
- }, flush: function flush(tty) {
- if (tty.output && tty.output.length > 0) {
- out(UTF8ArrayToString(tty.output, 0));
- tty.output = [];
- }
- }
- }, default_tty1_ops: {
- put_char: function put_char(tty, val) {
- if (val === null || val === 10) {
- err(UTF8ArrayToString(tty.output, 0));
- tty.output = [];
- } else {
- if (val != 0) tty.output.push(val);
- }
- }, flush: function flush(tty) {
- if (tty.output && tty.output.length > 0) {
- err(UTF8ArrayToString(tty.output, 0));
- tty.output = [];
- }
- }
- }
- };
- var MEMFS = {
- ops_table: null, mount: function mount(_mount) {
- return MEMFS.createNode(null, "/", 16384 | 511, 0);
- }, createNode: function createNode(parent, name, mode, dev) {
- if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
- throw new FS.ErrnoError(63);
- }
- if (!MEMFS.ops_table) {
- MEMFS.ops_table = {
- dir: {
- node: {
- getattr: MEMFS.node_ops.getattr,
- setattr: MEMFS.node_ops.setattr,
- lookup: MEMFS.node_ops.lookup,
- mknod: MEMFS.node_ops.mknod,
- rename: MEMFS.node_ops.rename,
- unlink: MEMFS.node_ops.unlink,
- rmdir: MEMFS.node_ops.rmdir,
- readdir: MEMFS.node_ops.readdir,
- symlink: MEMFS.node_ops.symlink
- }, stream: { llseek: MEMFS.stream_ops.llseek }
- },
- file: {
- node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr },
- stream: {
- llseek: MEMFS.stream_ops.llseek,
- read: MEMFS.stream_ops.read,
- write: MEMFS.stream_ops.write,
- allocate: MEMFS.stream_ops.allocate,
- mmap: MEMFS.stream_ops.mmap,
- msync: MEMFS.stream_ops.msync
- }
- },
- link: {
- node: {
- getattr: MEMFS.node_ops.getattr,
- setattr: MEMFS.node_ops.setattr,
- readlink: MEMFS.node_ops.readlink
- }, stream: {}
- },
- chrdev: {
- node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr },
- stream: FS.chrdev_stream_ops
- }
- };
- }
- var node = FS.createNode(parent, name, mode, dev);
- if (FS.isDir(node.mode)) {
- node.node_ops = MEMFS.ops_table.dir.node;
- node.stream_ops = MEMFS.ops_table.dir.stream;
- node.contents = {};
- } else if (FS.isFile(node.mode)) {
- node.node_ops = MEMFS.ops_table.file.node;
- node.stream_ops = MEMFS.ops_table.file.stream;
- node.usedBytes = 0;
- node.contents = null;
- } else if (FS.isLink(node.mode)) {
- node.node_ops = MEMFS.ops_table.link.node;
- node.stream_ops = MEMFS.ops_table.link.stream;
- } else if (FS.isChrdev(node.mode)) {
- node.node_ops = MEMFS.ops_table.chrdev.node;
- node.stream_ops = MEMFS.ops_table.chrdev.stream;
- }
- node.timestamp = Date.now();
- if (parent) {
- parent.contents[name] = node;
- }
- return node;
- }, getFileDataAsRegularArray: function getFileDataAsRegularArray(node) {
- if (node.contents && node.contents.subarray) {
- var arr = [];
- for (var i = 0; i < node.usedBytes; ++i) {
- arr.push(node.contents[i]);
- }return arr;
- }
- return node.contents;
- }, getFileDataAsTypedArray: function getFileDataAsTypedArray(node) {
- if (!node.contents) return new Uint8Array();
- if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes);
- return new Uint8Array(node.contents);
- }, expandFileStorage: function expandFileStorage(node, newCapacity) {
- var prevCapacity = node.contents ? node.contents.length : 0;
- if (prevCapacity >= newCapacity) return;
- var CAPACITY_DOUBLING_MAX = 1024 * 1024;
- newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) | 0);
- if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256);
- var oldContents = node.contents;
- node.contents = new Uint8Array(newCapacity);
- if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0);
- return;
- }, resizeFileStorage: function resizeFileStorage(node, newSize) {
- if (node.usedBytes == newSize) return;
- if (newSize == 0) {
- node.contents = null;
- node.usedBytes = 0;
- return;
- }
- if (!node.contents || node.contents.subarray) {
- var oldContents = node.contents;
- node.contents = new Uint8Array(new ArrayBuffer(newSize));
- if (oldContents) {
- node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));
- }
- node.usedBytes = newSize;
- return;
- }
- if (!node.contents) node.contents = [];
- if (node.contents.length > newSize) node.contents.length = newSize;else while (node.contents.length < newSize) {
- node.contents.push(0);
- }node.usedBytes = newSize;
- }, node_ops: {
- getattr: function getattr(node) {
- var attr = {};
- attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
- attr.ino = node.id;
- attr.mode = node.mode;
- attr.nlink = 1;
- attr.uid = 0;
- attr.gid = 0;
- attr.rdev = node.rdev;
- if (FS.isDir(node.mode)) {
- attr.size = 4096;
- } else if (FS.isFile(node.mode)) {
- attr.size = node.usedBytes;
- } else if (FS.isLink(node.mode)) {
- attr.size = node.link.length;
- } else {
- attr.size = 0;
- }
- attr.atime = new Date(node.timestamp);
- attr.mtime = new Date(node.timestamp);
- attr.ctime = new Date(node.timestamp);
- attr.blksize = 4096;
- attr.blocks = Math.ceil(attr.size / attr.blksize);
- return attr;
- }, setattr: function setattr(node, attr) {
- if (attr.mode !== undefined) {
- node.mode = attr.mode;
- }
- if (attr.timestamp !== undefined) {
- node.timestamp = attr.timestamp;
- }
- if (attr.size !== undefined) {
- MEMFS.resizeFileStorage(node, attr.size);
- }
- }, lookup: function lookup(parent, name) {
- throw FS.genericErrors[44];
- }, mknod: function mknod(parent, name, mode, dev) {
- return MEMFS.createNode(parent, name, mode, dev);
- }, rename: function rename(old_node, new_dir, new_name) {
- if (FS.isDir(old_node.mode)) {
- var new_node;
- try {
- new_node = FS.lookupNode(new_dir, new_name);
- } catch (e) {}
- if (new_node) {
- for (var i in new_node.contents) {
- throw new FS.ErrnoError(55);
- }
- }
- }
- delete old_node.parent.contents[old_node.name];
- old_node.name = new_name;
- new_dir.contents[new_name] = old_node;
- old_node.parent = new_dir;
- }, unlink: function unlink(parent, name) {
- delete parent.contents[name];
- }, rmdir: function rmdir(parent, name) {
- var node = FS.lookupNode(parent, name);
- for (var i in node.contents) {
- throw new FS.ErrnoError(55);
- }
- delete parent.contents[name];
- }, readdir: function readdir(node) {
- var entries = [".", ".."];
- for (var key in node.contents) {
- if (!node.contents.hasOwnProperty(key)) {
- continue;
- }
- entries.push(key);
- }
- return entries;
- }, symlink: function symlink(parent, newname, oldpath) {
- var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
- node.link = oldpath;
- return node;
- }, readlink: function readlink(node) {
- if (!FS.isLink(node.mode)) {
- throw new FS.ErrnoError(28);
- }
- return node.link;
- }
- }, stream_ops: {
- read: function read(stream, buffer, offset, length, position) {
- var contents = stream.node.contents;
- if (position >= stream.node.usedBytes) return 0;
- var size = Math.min(stream.node.usedBytes - position, length);
- assert(size >= 0);
- if (size > 8 && contents.subarray) {
- buffer.set(contents.subarray(position, position + size), offset);
- } else {
- for (var i = 0; i < size; i++) {
- buffer[offset + i] = contents[position + i];
- }
- }
- return size;
- }, write: function write(stream, buffer, offset, length, position, canOwn) {
- if (canOwn) {
- warnOnce("file packager has copied file data into memory, but in memory growth we are forced to copy it again (see --no-heap-copy)");
- }
- canOwn = false;
- if (!length) return 0;
- var node = stream.node;
- node.timestamp = Date.now();
- if (buffer.subarray && (!node.contents || node.contents.subarray)) {
- if (canOwn) {
- assert(position === 0, "canOwn must imply no weird position inside the file");
- node.contents = buffer.subarray(offset, offset + length);
- node.usedBytes = length;
- return length;
- } else if (node.usedBytes === 0 && position === 0) {
- node.contents = new Uint8Array(buffer.subarray(offset, offset + length));
- node.usedBytes = length;
- return length;
- } else if (position + length <= node.usedBytes) {
- node.contents.set(buffer.subarray(offset, offset + length), position);
- return length;
- }
- }
- MEMFS.expandFileStorage(node, position + length);
- if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position);else {
- for (var i = 0; i < length; i++) {
- node.contents[position + i] = buffer[offset + i];
- }
- }
- node.usedBytes = Math.max(node.usedBytes, position + length);
- return length;
- }, llseek: function llseek(stream, offset, whence) {
- var position = offset;
- if (whence === 1) {
- position += stream.position;
- } else if (whence === 2) {
- if (FS.isFile(stream.node.mode)) {
- position += stream.node.usedBytes;
- }
- }
- if (position < 0) {
- throw new FS.ErrnoError(28);
- }
- return position;
- }, allocate: function allocate(stream, offset, length) {
- MEMFS.expandFileStorage(stream.node, offset + length);
- stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
- }, mmap: function mmap(stream, buffer, offset, length, position, prot, flags) {
- if (!FS.isFile(stream.node.mode)) {
- throw new FS.ErrnoError(43);
- }
- var ptr;
- var allocated;
- var contents = stream.node.contents;
- if (!(flags & 2) && (contents.buffer === buffer || contents.buffer === buffer.buffer)) {
- allocated = false;
- ptr = contents.byteOffset;
- } else {
- if (position > 0 || position + length < stream.node.usedBytes) {
- if (contents.subarray) {
- contents = contents.subarray(position, position + length);
- } else {
- contents = Array.prototype.slice.call(contents, position, position + length);
- }
- }
- allocated = true;
- var fromHeap = buffer.buffer == HEAP8.buffer;
- ptr = _malloc(length);
- if (!ptr) {
- throw new FS.ErrnoError(48);
- }
- (fromHeap ? HEAP8 : buffer).set(contents, ptr);
- }
- return { ptr: ptr, allocated: allocated };
- }, msync: function msync(stream, buffer, offset, length, mmapFlags) {
- if (!FS.isFile(stream.node.mode)) {
- throw new FS.ErrnoError(43);
- }
- if (mmapFlags & 2) {
- return 0;
- }
- var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
- return 0;
- }
- }
- };
- var ERRNO_MESSAGES = {
- 0: "Success",
- 1: "Arg list too long",
- 2: "Permission denied",
- 3: "Address already in use",
- 4: "Address not available",
- 5: "Address family not supported by protocol family",
- 6: "No more processes",
- 7: "Socket already connected",
- 8: "Bad file number",
- 9: "Trying to read unreadable message",
- 10: "Mount device busy",
- 11: "Operation canceled",
- 12: "No children",
- 13: "Connection aborted",
- 14: "Connection refused",
- 15: "Connection reset by peer",
- 16: "File locking deadlock error",
- 17: "Destination address required",
- 18: "Math arg out of domain of func",
- 19: "Quota exceeded",
- 20: "File exists",
- 21: "Bad address",
- 22: "File too large",
- 23: "Host is unreachable",
- 24: "Identifier removed",
- 25: "Illegal byte sequence",
- 26: "Connection already in progress",
- 27: "Interrupted system call",
- 28: "Invalid argument",
- 29: "I/O error",
- 30: "Socket is already connected",
- 31: "Is a directory",
- 32: "Too many symbolic links",
- 33: "Too many open files",
- 34: "Too many links",
- 35: "Message too long",
- 36: "Multihop attempted",
- 37: "File or path name too long",
- 38: "Network interface is not configured",
- 39: "Connection reset by network",
- 40: "Network is unreachable",
- 41: "Too many open files in system",
- 42: "No buffer space available",
- 43: "No such device",
- 44: "No such file or directory",
- 45: "Exec format error",
- 46: "No record locks available",
- 47: "The link has been severed",
- 48: "Not enough core",
- 49: "No message of desired type",
- 50: "Protocol not available",
- 51: "No space left on device",
- 52: "Function not implemented",
- 53: "Socket is not connected",
- 54: "Not a directory",
- 55: "Directory not empty",
- 56: "State not recoverable",
- 57: "Socket operation on non-socket",
- 59: "Not a typewriter",
- 60: "No such device or address",
- 61: "Value too large for defined data type",
- 62: "Previous owner died",
- 63: "Not super-user",
- 64: "Broken pipe",
- 65: "Protocol error",
- 66: "Unknown protocol",
- 67: "Protocol wrong type for socket",
- 68: "Math result not representable",
- 69: "Read only file system",
- 70: "Illegal seek",
- 71: "No such process",
- 72: "Stale file handle",
- 73: "Connection timed out",
- 74: "Text file busy",
- 75: "Cross-device link",
- 100: "Device not a stream",
- 101: "Bad font file fmt",
- 102: "Invalid slot",
- 103: "Invalid request code",
- 104: "No anode",
- 105: "Block device required",
- 106: "Channel number out of range",
- 107: "Level 3 halted",
- 108: "Level 3 reset",
- 109: "Link number out of range",
- 110: "Protocol driver not attached",
- 111: "No CSI structure available",
- 112: "Level 2 halted",
- 113: "Invalid exchange",
- 114: "Invalid request descriptor",
- 115: "Exchange full",
- 116: "No data (for no delay io)",
- 117: "Timer expired",
- 118: "Out of streams resources",
- 119: "Machine is not on the network",
- 120: "Package not installed",
- 121: "The object is remote",
- 122: "Advertise error",
- 123: "Srmount error",
- 124: "Communication error on send",
- 125: "Cross mount point (not really error)",
- 126: "Given log. name not unique",
- 127: "f.d. invalid for this operation",
- 128: "Remote address changed",
- 129: "Can access a needed shared lib",
- 130: "Accessing a corrupted shared lib",
- 131: ".lib section in a.out corrupted",
- 132: "Attempting to link in too many libs",
- 133: "Attempting to exec a shared library",
- 135: "Streams pipe error",
- 136: "Too many users",
- 137: "Socket type not supported",
- 138: "Not supported",
- 139: "Protocol family not supported",
- 140: "Can't send after socket shutdown",
- 141: "Too many references",
- 142: "Host is down",
- 148: "No medium (in tape drive)",
- 156: "Level 2 not synchronized"
- };
- var ERRNO_CODES = {
- EPERM: 63,
- ENOENT: 44,
- ESRCH: 71,
- EINTR: 27,
- EIO: 29,
- ENXIO: 60,
- E2BIG: 1,
- ENOEXEC: 45,
- EBADF: 8,
- ECHILD: 12,
- EAGAIN: 6,
- EWOULDBLOCK: 6,
- ENOMEM: 48,
- EACCES: 2,
- EFAULT: 21,
- ENOTBLK: 105,
- EBUSY: 10,
- EEXIST: 20,
- EXDEV: 75,
- ENODEV: 43,
- ENOTDIR: 54,
- EISDIR: 31,
- EINVAL: 28,
- ENFILE: 41,
- EMFILE: 33,
- ENOTTY: 59,
- ETXTBSY: 74,
- EFBIG: 22,
- ENOSPC: 51,
- ESPIPE: 70,
- EROFS: 69,
- EMLINK: 34,
- EPIPE: 64,
- EDOM: 18,
- ERANGE: 68,
- ENOMSG: 49,
- EIDRM: 24,
- ECHRNG: 106,
- EL2NSYNC: 156,
- EL3HLT: 107,
- EL3RST: 108,
- ELNRNG: 109,
- EUNATCH: 110,
- ENOCSI: 111,
- EL2HLT: 112,
- EDEADLK: 16,
- ENOLCK: 46,
- EBADE: 113,
- EBADR: 114,
- EXFULL: 115,
- ENOANO: 104,
- EBADRQC: 103,
- EBADSLT: 102,
- EDEADLOCK: 16,
- EBFONT: 101,
- ENOSTR: 100,
- ENODATA: 116,
- ETIME: 117,
- ENOSR: 118,
- ENONET: 119,
- ENOPKG: 120,
- EREMOTE: 121,
- ENOLINK: 47,
- EADV: 122,
- ESRMNT: 123,
- ECOMM: 124,
- EPROTO: 65,
- EMULTIHOP: 36,
- EDOTDOT: 125,
- EBADMSG: 9,
- ENOTUNIQ: 126,
- EBADFD: 127,
- EREMCHG: 128,
- ELIBACC: 129,
- ELIBBAD: 130,
- ELIBSCN: 131,
- ELIBMAX: 132,
- ELIBEXEC: 133,
- ENOSYS: 52,
- ENOTEMPTY: 55,
- ENAMETOOLONG: 37,
- ELOOP: 32,
- EOPNOTSUPP: 138,
- EPFNOSUPPORT: 139,
- ECONNRESET: 15,
- ENOBUFS: 42,
- EAFNOSUPPORT: 5,
- EPROTOTYPE: 67,
- ENOTSOCK: 57,
- ENOPROTOOPT: 50,
- ESHUTDOWN: 140,
- ECONNREFUSED: 14,
- EADDRINUSE: 3,
- ECONNABORTED: 13,
- ENETUNREACH: 40,
- ENETDOWN: 38,
- ETIMEDOUT: 73,
- EHOSTDOWN: 142,
- EHOSTUNREACH: 23,
- EINPROGRESS: 26,
- EALREADY: 7,
- EDESTADDRREQ: 17,
- EMSGSIZE: 35,
- EPROTONOSUPPORT: 66,
- ESOCKTNOSUPPORT: 137,
- EADDRNOTAVAIL: 4,
- ENETRESET: 39,
- EISCONN: 30,
- ENOTCONN: 53,
- ETOOMANYREFS: 141,
- EUSERS: 136,
- EDQUOT: 19,
- ESTALE: 72,
- ENOTSUP: 138,
- ENOMEDIUM: 148,
- EILSEQ: 25,
- EOVERFLOW: 61,
- ECANCELED: 11,
- ENOTRECOVERABLE: 56,
- EOWNERDEAD: 62,
- ESTRPIPE: 135
- };
- var FS = {
- root: null,
- mounts: [],
- devices: {},
- streams: [],
- nextInode: 1,
- nameTable: null,
- currentPath: "/",
- initialized: false,
- ignorePermissions: true,
- trackingDelegate: {},
- tracking: { openFlags: { READ: 1, WRITE: 2 } },
- ErrnoError: null,
- genericErrors: {},
- filesystems: null,
- syncFSRequests: 0,
- handleFSError: function handleFSError(e) {
- if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace();
- return ___setErrNo(e.errno);
- },
- lookupPath: function lookupPath(path, opts) {
- path = PATH_FS.resolve(FS.cwd(), path);
- opts = opts || {};
- if (!path) return { path: "", node: null };
- var defaults = { follow_mount: true, recurse_count: 0 };
- for (var key in defaults) {
- if (opts[key] === undefined) {
- opts[key] = defaults[key];
- }
- }
- if (opts.recurse_count > 8) {
- throw new FS.ErrnoError(32);
- }
- var parts = PATH.normalizeArray(path.split("/").filter(function (p) {
- return !!p;
- }), false);
- var current = FS.root;
- var current_path = "/";
- for (var i = 0; i < parts.length; i++) {
- var islast = i === parts.length - 1;
- if (islast && opts.parent) {
- break;
- }
- current = FS.lookupNode(current, parts[i]);
- current_path = PATH.join2(current_path, parts[i]);
- if (FS.isMountpoint(current)) {
- if (!islast || islast && opts.follow_mount) {
- current = current.mounted.root;
- }
- }
- if (!islast || opts.follow) {
- var count = 0;
- while (FS.isLink(current.mode)) {
- var link = FS.readlink(current_path);
- current_path = PATH_FS.resolve(PATH.dirname(current_path), link);
- var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });
- current = lookup.node;
- if (count++ > 40) {
- throw new FS.ErrnoError(32);
- }
- }
- }
- }
- return { path: current_path, node: current };
- },
- getPath: function getPath(node) {
- var path;
- while (true) {
- if (FS.isRoot(node)) {
- var mount = node.mount.mountpoint;
- if (!path) return mount;
- return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path;
- }
- path = path ? node.name + "/" + path : node.name;
- node = node.parent;
- }
- },
- hashName: function hashName(parentid, name) {
- var hash = 0;
- for (var i = 0; i < name.length; i++) {
- hash = (hash << 5) - hash + name.charCodeAt(i) | 0;
- }
- return (parentid + hash >>> 0) % FS.nameTable.length;
- },
- hashAddNode: function hashAddNode(node) {
- var hash = FS.hashName(node.parent.id, node.name);
- node.name_next = FS.nameTable[hash];
- FS.nameTable[hash] = node;
- },
- hashRemoveNode: function hashRemoveNode(node) {
- var hash = FS.hashName(node.parent.id, node.name);
- if (FS.nameTable[hash] === node) {
- FS.nameTable[hash] = node.name_next;
- } else {
- var current = FS.nameTable[hash];
- while (current) {
- if (current.name_next === node) {
- current.name_next = node.name_next;
- break;
- }
- current = current.name_next;
- }
- }
- },
- lookupNode: function lookupNode(parent, name) {
- var err = FS.mayLookup(parent);
- if (err) {
- throw new FS.ErrnoError(err, parent);
- }
- var hash = FS.hashName(parent.id, name);
- for (var node = FS.nameTable[hash]; node; node = node.name_next) {
- var nodeName = node.name;
- if (node.parent.id === parent.id && nodeName === name) {
- return node;
- }
- }
- return FS.lookup(parent, name);
- },
- createNode: function createNode(parent, name, mode, rdev) {
- if (!FS.FSNode) {
- FS.FSNode = function (parent, name, mode, rdev) {
- if (!parent) {
- parent = this;
- }
- this.parent = parent;
- this.mount = parent.mount;
- this.mounted = null;
- this.id = FS.nextInode++;
- this.name = name;
- this.mode = mode;
- this.node_ops = {};
- this.stream_ops = {};
- this.rdev = rdev;
- };
- FS.FSNode.prototype = {};
- var readMode = 292 | 73;
- var writeMode = 146;
- Object.defineProperties(FS.FSNode.prototype, {
- read: {
- get: function get() {
- return (this.mode & readMode) === readMode;
- }, set: function set(val) {
- val ? this.mode |= readMode : this.mode &= ~readMode;
- }
- }, write: {
- get: function get() {
- return (this.mode & writeMode) === writeMode;
- }, set: function set(val) {
- val ? this.mode |= writeMode : this.mode &= ~writeMode;
- }
- }, isFolder: {
- get: function get() {
- return FS.isDir(this.mode);
- }
- }, isDevice: {
- get: function get() {
- return FS.isChrdev(this.mode);
- }
- }
- });
- }
- var node = new FS.FSNode(parent, name, mode, rdev);
- FS.hashAddNode(node);
- return node;
- },
- destroyNode: function destroyNode(node) {
- FS.hashRemoveNode(node);
- },
- isRoot: function isRoot(node) {
- return node === node.parent;
- },
- isMountpoint: function isMountpoint(node) {
- return !!node.mounted;
- },
- isFile: function isFile(mode) {
- return (mode & 61440) === 32768;
- },
- isDir: function isDir(mode) {
- return (mode & 61440) === 16384;
- },
- isLink: function isLink(mode) {
- return (mode & 61440) === 40960;
- },
- isChrdev: function isChrdev(mode) {
- return (mode & 61440) === 8192;
- },
- isBlkdev: function isBlkdev(mode) {
- return (mode & 61440) === 24576;
- },
- isFIFO: function isFIFO(mode) {
- return (mode & 61440) === 4096;
- },
- isSocket: function isSocket(mode) {
- return (mode & 49152) === 49152;
- },
- flagModes: {
- "r": 0,
- "rs": 1052672,
- "r+": 2,
- "w": 577,
- "wx": 705,
- "xw": 705,
- "w+": 578,
- "wx+": 706,
- "xw+": 706,
- "a": 1089,
- "ax": 1217,
- "xa": 1217,
- "a+": 1090,
- "ax+": 1218,
- "xa+": 1218
- },
- modeStringToFlags: function modeStringToFlags(str) {
- var flags = FS.flagModes[str];
- if (typeof flags === "undefined") {
- throw new Error("Unknown file open mode: " + str);
- }
- return flags;
- },
- flagsToPermissionString: function flagsToPermissionString(flag) {
- var perms = ["r", "w", "rw"][flag & 3];
- if (flag & 512) {
- perms += "w";
- }
- return perms;
- },
- nodePermissions: function nodePermissions(node, perms) {
- if (FS.ignorePermissions) {
- return 0;
- }
- if (perms.indexOf("r") !== -1 && !(node.mode & 292)) {
- return 2;
- } else if (perms.indexOf("w") !== -1 && !(node.mode & 146)) {
- return 2;
- } else if (perms.indexOf("x") !== -1 && !(node.mode & 73)) {
- return 2;
- }
- return 0;
- },
- mayLookup: function mayLookup(dir) {
- var err = FS.nodePermissions(dir, "x");
- if (err) return err;
- if (!dir.node_ops.lookup) return 2;
- return 0;
- },
- mayCreate: function mayCreate(dir, name) {
- try {
- var node = FS.lookupNode(dir, name);
- return 20;
- } catch (e) {}
- return FS.nodePermissions(dir, "wx");
- },
- mayDelete: function mayDelete(dir, name, isdir) {
- var node;
- try {
- node = FS.lookupNode(dir, name);
- } catch (e) {
- return e.errno;
- }
- var err = FS.nodePermissions(dir, "wx");
- if (err) {
- return err;
- }
- if (isdir) {
- if (!FS.isDir(node.mode)) {
- return 54;
- }
- if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
- return 10;
- }
- } else {
- if (FS.isDir(node.mode)) {
- return 31;
- }
- }
- return 0;
- },
- mayOpen: function mayOpen(node, flags) {
- if (!node) {
- return 44;
- }
- if (FS.isLink(node.mode)) {
- return 32;
- } else if (FS.isDir(node.mode)) {
- if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) {
- return 31;
- }
- }
- return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
- },
- MAX_OPEN_FDS: 4096,
- nextfd: function nextfd(fd_start, fd_end) {
- fd_start = fd_start || 0;
- fd_end = fd_end || FS.MAX_OPEN_FDS;
- for (var fd = fd_start; fd <= fd_end; fd++) {
- if (!FS.streams[fd]) {
- return fd;
- }
- }
- throw new FS.ErrnoError(33);
- },
- getStream: function getStream(fd) {
- return FS.streams[fd];
- },
- createStream: function createStream(stream, fd_start, fd_end) {
- if (!FS.FSStream) {
- FS.FSStream = function () {};
- FS.FSStream.prototype = {};
- Object.defineProperties(FS.FSStream.prototype, {
- object: {
- get: function get() {
- return this.node;
- }, set: function set(val) {
- this.node = val;
- }
- }, isRead: {
- get: function get() {
- return (this.flags & 2097155) !== 1;
- }
- }, isWrite: {
- get: function get() {
- return (this.flags & 2097155) !== 0;
- }
- }, isAppend: {
- get: function get() {
- return this.flags & 1024;
- }
- }
- });
- }
- var newStream = new FS.FSStream();
- for (var p in stream) {
- newStream[p] = stream[p];
- }
- stream = newStream;
- var fd = FS.nextfd(fd_start, fd_end);
- stream.fd = fd;
- FS.streams[fd] = stream;
- return stream;
- },
- closeStream: function closeStream(fd) {
- FS.streams[fd] = null;
- },
- chrdev_stream_ops: {
- open: function open(stream) {
- var device = FS.getDevice(stream.node.rdev);
- stream.stream_ops = device.stream_ops;
- if (stream.stream_ops.open) {
- stream.stream_ops.open(stream);
- }
- }, llseek: function llseek() {
- throw new FS.ErrnoError(70);
- }
- },
- major: function major(dev) {
- return dev >> 8;
- },
- minor: function minor(dev) {
- return dev & 255;
- },
- makedev: function makedev(ma, mi) {
- return ma << 8 | mi;
- },
- registerDevice: function registerDevice(dev, ops) {
- FS.devices[dev] = { stream_ops: ops };
- },
- getDevice: function getDevice(dev) {
- return FS.devices[dev];
- },
- getMounts: function getMounts(mount) {
- var mounts = [];
- var check = [mount];
- while (check.length) {
- var m = check.pop();
- mounts.push(m);
- check.push.apply(check, m.mounts);
- }
- return mounts;
- },
- syncfs: function syncfs(populate, callback) {
- if (typeof populate === "function") {
- callback = populate;
- populate = false;
- }
- FS.syncFSRequests++;
- if (FS.syncFSRequests > 1) {
- console.log("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work");
- }
- var mounts = FS.getMounts(FS.root.mount);
- var completed = 0;
- function doCallback(err) {
- assert(FS.syncFSRequests > 0);
- FS.syncFSRequests--;
- return callback(err);
- }
- function done(err) {
- if (err) {
- if (!done.errored) {
- done.errored = true;
- return doCallback(err);
- }
- return;
- }
- if (++completed >= mounts.length) {
- doCallback(null);
- }
- }
- mounts.forEach(function (mount) {
- if (!mount.type.syncfs) {
- return done(null);
- }
- mount.type.syncfs(mount, populate, done);
- });
- },
- mount: function mount(type, opts, mountpoint) {
- if (typeof type === "string") {
- throw type;
- }
- var root = mountpoint === "/";
- var pseudo = !mountpoint;
- var node;
- if (root && FS.root) {
- throw new FS.ErrnoError(10);
- } else if (!root && !pseudo) {
- var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
- mountpoint = lookup.path;
- node = lookup.node;
- if (FS.isMountpoint(node)) {
- throw new FS.ErrnoError(10);
- }
- if (!FS.isDir(node.mode)) {
- throw new FS.ErrnoError(54);
- }
- }
- var mount = { type: type, opts: opts, mountpoint: mountpoint, mounts: [] };
- var mountRoot = type.mount(mount);
- mountRoot.mount = mount;
- mount.root = mountRoot;
- if (root) {
- FS.root = mountRoot;
- } else if (node) {
- node.mounted = mount;
- if (node.mount) {
- node.mount.mounts.push(mount);
- }
- }
- return mountRoot;
- },
- unmount: function unmount(mountpoint) {
- var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
- if (!FS.isMountpoint(lookup.node)) {
- throw new FS.ErrnoError(28);
- }
- var node = lookup.node;
- var mount = node.mounted;
- var mounts = FS.getMounts(mount);
- Object.keys(FS.nameTable).forEach(function (hash) {
- var current = FS.nameTable[hash];
- while (current) {
- var next = current.name_next;
- if (mounts.indexOf(current.mount) !== -1) {
- FS.destroyNode(current);
- }
- current = next;
- }
- });
- node.mounted = null;
- var idx = node.mount.mounts.indexOf(mount);
- assert(idx !== -1);
- node.mount.mounts.splice(idx, 1);
- },
- lookup: function lookup(parent, name) {
- return parent.node_ops.lookup(parent, name);
- },
- mknod: function mknod(path, mode, dev) {
- var lookup = FS.lookupPath(path, { parent: true });
- var parent = lookup.node;
- var name = PATH.basename(path);
- if (!name || name === "." || name === "..") {
- throw new FS.ErrnoError(28);
- }
- var err = FS.mayCreate(parent, name);
- if (err) {
- throw new FS.ErrnoError(err);
- }
- if (!parent.node_ops.mknod) {
- throw new FS.ErrnoError(63);
- }
- return parent.node_ops.mknod(parent, name, mode, dev);
- },
- create: function create(path, mode) {
- mode = mode !== undefined ? mode : 438;
- mode &= 4095;
- mode |= 32768;
- return FS.mknod(path, mode, 0);
- },
- mkdir: function mkdir(path, mode) {
- mode = mode !== undefined ? mode : 511;
- mode &= 511 | 512;
- mode |= 16384;
- return FS.mknod(path, mode, 0);
- },
- mkdirTree: function mkdirTree(path, mode) {
- var dirs = path.split("/");
- var d = "";
- for (var i = 0; i < dirs.length; ++i) {
- if (!dirs[i]) continue;
- d += "/" + dirs[i];
- try {
- FS.mkdir(d, mode);
- } catch (e) {
- if (e.errno != 20) throw e;
- }
- }
- },
- mkdev: function mkdev(path, mode, dev) {
- if (typeof dev === "undefined") {
- dev = mode;
- mode = 438;
- }
- mode |= 8192;
- return FS.mknod(path, mode, dev);
- },
- symlink: function symlink(oldpath, newpath) {
- if (!PATH_FS.resolve(oldpath)) {
- throw new FS.ErrnoError(44);
- }
- var lookup = FS.lookupPath(newpath, { parent: true });
- var parent = lookup.node;
- if (!parent) {
- throw new FS.ErrnoError(44);
- }
- var newname = PATH.basename(newpath);
- var err = FS.mayCreate(parent, newname);
- if (err) {
- throw new FS.ErrnoError(err);
- }
- if (!parent.node_ops.symlink) {
- throw new FS.ErrnoError(63);
- }
- return parent.node_ops.symlink(parent, newname, oldpath);
- },
- rename: function rename(old_path, new_path) {
- var old_dirname = PATH.dirname(old_path);
- var new_dirname = PATH.dirname(new_path);
- var old_name = PATH.basename(old_path);
- var new_name = PATH.basename(new_path);
- var lookup, old_dir, new_dir;
- try {
- lookup = FS.lookupPath(old_path, { parent: true });
- old_dir = lookup.node;
- lookup = FS.lookupPath(new_path, { parent: true });
- new_dir = lookup.node;
- } catch (e) {
- throw new FS.ErrnoError(10);
- }
- if (!old_dir || !new_dir) throw new FS.ErrnoError(44);
- if (old_dir.mount !== new_dir.mount) {
- throw new FS.ErrnoError(75);
- }
- var old_node = FS.lookupNode(old_dir, old_name);
- var relative = PATH_FS.relative(old_path, new_dirname);
- if (relative.charAt(0) !== ".") {
- throw new FS.ErrnoError(28);
- }
- relative = PATH_FS.relative(new_path, old_dirname);
- if (relative.charAt(0) !== ".") {
- throw new FS.ErrnoError(55);
- }
- var new_node;
- try {
- new_node = FS.lookupNode(new_dir, new_name);
- } catch (e) {}
- if (old_node === new_node) {
- return;
- }
- var isdir = FS.isDir(old_node.mode);
- var err = FS.mayDelete(old_dir, old_name, isdir);
- if (err) {
- throw new FS.ErrnoError(err);
- }
- err = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);
- if (err) {
- throw new FS.ErrnoError(err);
- }
- if (!old_dir.node_ops.rename) {
- throw new FS.ErrnoError(63);
- }
- if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {
- throw new FS.ErrnoError(10);
- }
- if (new_dir !== old_dir) {
- err = FS.nodePermissions(old_dir, "w");
- if (err) {
- throw new FS.ErrnoError(err);
- }
- }
- try {
- if (FS.trackingDelegate["willMovePath"]) {
- FS.trackingDelegate["willMovePath"](old_path, new_path);
- }
- } catch (e) {
- console.log("FS.trackingDelegate['willMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message);
- }
- FS.hashRemoveNode(old_node);
- try {
- old_dir.node_ops.rename(old_node, new_dir, new_name);
- } catch (e) {
- throw e;
- } finally {
- FS.hashAddNode(old_node);
- }
- try {
- if (FS.trackingDelegate["onMovePath"]) FS.trackingDelegate["onMovePath"](old_path, new_path);
- } catch (e) {
- console.log("FS.trackingDelegate['onMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message);
- }
- },
- rmdir: function rmdir(path) {
- var lookup = FS.lookupPath(path, { parent: true });
- var parent = lookup.node;
- var name = PATH.basename(path);
- var node = FS.lookupNode(parent, name);
- var err = FS.mayDelete(parent, name, true);
- if (err) {
- throw new FS.ErrnoError(err);
- }
- if (!parent.node_ops.rmdir) {
- throw new FS.ErrnoError(63);
- }
- if (FS.isMountpoint(node)) {
- throw new FS.ErrnoError(10);
- }
- try {
- if (FS.trackingDelegate["willDeletePath"]) {
- FS.trackingDelegate["willDeletePath"](path);
- }
- } catch (e) {
- console.log("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message);
- }
- parent.node_ops.rmdir(parent, name);
- FS.destroyNode(node);
- try {
- if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path);
- } catch (e) {
- console.log("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message);
- }
- },
- readdir: function readdir(path) {
- var lookup = FS.lookupPath(path, { follow: true });
- var node = lookup.node;
- if (!node.node_ops.readdir) {
- throw new FS.ErrnoError(54);
- }
- return node.node_ops.readdir(node);
- },
- unlink: function unlink(path) {
- var lookup = FS.lookupPath(path, { parent: true });
- var parent = lookup.node;
- var name = PATH.basename(path);
- var node = FS.lookupNode(parent, name);
- var err = FS.mayDelete(parent, name, false);
- if (err) {
- throw new FS.ErrnoError(err);
- }
- if (!parent.node_ops.unlink) {
- throw new FS.ErrnoError(63);
- }
- if (FS.isMountpoint(node)) {
- throw new FS.ErrnoError(10);
- }
- try {
- if (FS.trackingDelegate["willDeletePath"]) {
- FS.trackingDelegate["willDeletePath"](path);
- }
- } catch (e) {
- console.log("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message);
- }
- parent.node_ops.unlink(parent, name);
- FS.destroyNode(node);
- try {
- if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path);
- } catch (e) {
- console.log("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message);
- }
- },
- readlink: function readlink(path) {
- var lookup = FS.lookupPath(path);
- var link = lookup.node;
- if (!link) {
- throw new FS.ErrnoError(44);
- }
- if (!link.node_ops.readlink) {
- throw new FS.ErrnoError(28);
- }
- return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));
- },
- stat: function stat(path, dontFollow) {
- var lookup = FS.lookupPath(path, { follow: !dontFollow });
- var node = lookup.node;
- if (!node) {
- throw new FS.ErrnoError(44);
- }
- if (!node.node_ops.getattr) {
- throw new FS.ErrnoError(63);
- }
- return node.node_ops.getattr(node);
- },
- lstat: function lstat(path) {
- return FS.stat(path, true);
- },
- chmod: function chmod(path, mode, dontFollow) {
- var node;
- if (typeof path === "string") {
- var lookup = FS.lookupPath(path, { follow: !dontFollow });
- node = lookup.node;
- } else {
- node = path;
- }
- if (!node.node_ops.setattr) {
- throw new FS.ErrnoError(63);
- }
- node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() });
- },
- lchmod: function lchmod(path, mode) {
- FS.chmod(path, mode, true);
- },
- fchmod: function fchmod(fd, mode) {
- var stream = FS.getStream(fd);
- if (!stream) {
- throw new FS.ErrnoError(8);
- }
- FS.chmod(stream.node, mode);
- },
- chown: function chown(path, uid, gid, dontFollow) {
- var node;
- if (typeof path === "string") {
- var lookup = FS.lookupPath(path, { follow: !dontFollow });
- node = lookup.node;
- } else {
- node = path;
- }
- if (!node.node_ops.setattr) {
- throw new FS.ErrnoError(63);
- }
- node.node_ops.setattr(node, { timestamp: Date.now() });
- },
- lchown: function lchown(path, uid, gid) {
- FS.chown(path, uid, gid, true);
- },
- fchown: function fchown(fd, uid, gid) {
- var stream = FS.getStream(fd);
- if (!stream) {
- throw new FS.ErrnoError(8);
- }
- FS.chown(stream.node, uid, gid);
- },
- truncate: function truncate(path, len) {
- if (len < 0) {
- throw new FS.ErrnoError(28);
- }
- var node;
- if (typeof path === "string") {
- var lookup = FS.lookupPath(path, { follow: true });
- node = lookup.node;
- } else {
- node = path;
- }
- if (!node.node_ops.setattr) {
- throw new FS.ErrnoError(63);
- }
- if (FS.isDir(node.mode)) {
- throw new FS.ErrnoError(31);
- }
- if (!FS.isFile(node.mode)) {
- throw new FS.ErrnoError(28);
- }
- var err = FS.nodePermissions(node, "w");
- if (err) {
- throw new FS.ErrnoError(err);
- }
- node.node_ops.setattr(node, { size: len, timestamp: Date.now() });
- },
- ftruncate: function ftruncate(fd, len) {
- var stream = FS.getStream(fd);
- if (!stream) {
- throw new FS.ErrnoError(8);
- }
- if ((stream.flags & 2097155) === 0) {
- throw new FS.ErrnoError(28);
- }
- FS.truncate(stream.node, len);
- },
- utime: function utime(path, atime, mtime) {
- var lookup = FS.lookupPath(path, { follow: true });
- var node = lookup.node;
- node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });
- },
- open: function open(path, flags, mode, fd_start, fd_end) {
- if (path === "") {
- throw new FS.ErrnoError(44);
- }
- flags = typeof flags === "string" ? FS.modeStringToFlags(flags) : flags;
- mode = typeof mode === "undefined" ? 438 : mode;
- if (flags & 64) {
- mode = mode & 4095 | 32768;
- } else {
- mode = 0;
- }
- var node;
- if ((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === "object") {
- node = path;
- } else {
- path = PATH.normalize(path);
- try {
- var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });
- node = lookup.node;
- } catch (e) {}
- }
- var created = false;
- if (flags & 64) {
- if (node) {
- if (flags & 128) {
- throw new FS.ErrnoError(20);
- }
- } else {
- node = FS.mknod(path, mode, 0);
- created = true;
- }
- }
- if (!node) {
- throw new FS.ErrnoError(44);
- }
- if (FS.isChrdev(node.mode)) {
- flags &= ~512;
- }
- if (flags & 65536 && !FS.isDir(node.mode)) {
- throw new FS.ErrnoError(54);
- }
- if (!created) {
- var err = FS.mayOpen(node, flags);
- if (err) {
- throw new FS.ErrnoError(err);
- }
- }
- if (flags & 512) {
- FS.truncate(node, 0);
- }
- flags &= ~(128 | 512);
- var stream = FS.createStream({
- node: node,
- path: FS.getPath(node),
- flags: flags,
- seekable: true,
- position: 0,
- stream_ops: node.stream_ops,
- ungotten: [],
- error: false
- }, fd_start, fd_end);
- if (stream.stream_ops.open) {
- stream.stream_ops.open(stream);
- }
- if (Module["logReadFiles"] && !(flags & 1)) {
- if (!FS.readFiles) FS.readFiles = {};
- if (!(path in FS.readFiles)) {
- FS.readFiles[path] = 1;
- console.log("FS.trackingDelegate error on read file: " + path);
- }
- }
- try {
- if (FS.trackingDelegate["onOpenFile"]) {
- var trackingFlags = 0;
- if ((flags & 2097155) !== 1) {
- trackingFlags |= FS.tracking.openFlags.READ;
- }
- if ((flags & 2097155) !== 0) {
- trackingFlags |= FS.tracking.openFlags.WRITE;
- }
- FS.trackingDelegate["onOpenFile"](path, trackingFlags);
- }
- } catch (e) {
- console.log("FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e.message);
- }
- return stream;
- },
- close: function close(stream) {
- if (FS.isClosed(stream)) {
- throw new FS.ErrnoError(8);
- }
- if (stream.getdents) stream.getdents = null;
- try {
- if (stream.stream_ops.close) {
- stream.stream_ops.close(stream);
- }
- } catch (e) {
- throw e;
- } finally {
- FS.closeStream(stream.fd);
- }
- stream.fd = null;
- },
- isClosed: function isClosed(stream) {
- return stream.fd === null;
- },
- llseek: function llseek(stream, offset, whence) {
- if (FS.isClosed(stream)) {
- throw new FS.ErrnoError(8);
- }
- if (!stream.seekable || !stream.stream_ops.llseek) {
- throw new FS.ErrnoError(70);
- }
- if (whence != 0 && whence != 1 && whence != 2) {
- throw new FS.ErrnoError(28);
- }
- stream.position = stream.stream_ops.llseek(stream, offset, whence);
- stream.ungotten = [];
- return stream.position;
- },
- read: function read(stream, buffer, offset, length, position) {
- if (length < 0 || position < 0) {
- throw new FS.ErrnoError(28);
- }
- if (FS.isClosed(stream)) {
- throw new FS.ErrnoError(8);
- }
- if ((stream.flags & 2097155) === 1) {
- throw new FS.ErrnoError(8);
- }
- if (FS.isDir(stream.node.mode)) {
- throw new FS.ErrnoError(31);
- }
- if (!stream.stream_ops.read) {
- throw new FS.ErrnoError(28);
- }
- var seeking = typeof position !== "undefined";
- if (!seeking) {
- position = stream.position;
- } else if (!stream.seekable) {
- throw new FS.ErrnoError(70);
- }
- var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
- if (!seeking) stream.position += bytesRead;
- return bytesRead;
- },
- write: function write(stream, buffer, offset, length, position, canOwn) {
- if (length < 0 || position < 0) {
- throw new FS.ErrnoError(28);
- }
- if (FS.isClosed(stream)) {
- throw new FS.ErrnoError(8);
- }
- if ((stream.flags & 2097155) === 0) {
- throw new FS.ErrnoError(8);
- }
- if (FS.isDir(stream.node.mode)) {
- throw new FS.ErrnoError(31);
- }
- if (!stream.stream_ops.write) {
- throw new FS.ErrnoError(28);
- }
- if (stream.flags & 1024) {
- FS.llseek(stream, 0, 2);
- }
- var seeking = typeof position !== "undefined";
- if (!seeking) {
- position = stream.position;
- } else if (!stream.seekable) {
- throw new FS.ErrnoError(70);
- }
- var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
- if (!seeking) stream.position += bytesWritten;
- try {
- if (stream.path && FS.trackingDelegate["onWriteToFile"]) FS.trackingDelegate["onWriteToFile"](stream.path);
- } catch (e) {
- console.log("FS.trackingDelegate['onWriteToFile']('" + stream.path + "') threw an exception: " + e.message);
- }
- return bytesWritten;
- },
- allocate: function allocate(stream, offset, length) {
- if (FS.isClosed(stream)) {
- throw new FS.ErrnoError(8);
- }
- if (offset < 0 || length <= 0) {
- throw new FS.ErrnoError(28);
- }
- if ((stream.flags & 2097155) === 0) {
- throw new FS.ErrnoError(8);
- }
- if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {
- throw new FS.ErrnoError(43);
- }
- if (!stream.stream_ops.allocate) {
- throw new FS.ErrnoError(138);
- }
- stream.stream_ops.allocate(stream, offset, length);
- },
- mmap: function mmap(stream, buffer, offset, length, position, prot, flags) {
- if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {
- throw new FS.ErrnoError(2);
- }
- if ((stream.flags & 2097155) === 1) {
- throw new FS.ErrnoError(2);
- }
- if (!stream.stream_ops.mmap) {
- throw new FS.ErrnoError(43);
- }
- return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);
- },
- msync: function msync(stream, buffer, offset, length, mmapFlags) {
- if (!stream || !stream.stream_ops.msync) {
- return 0;
- }
- return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);
- },
- munmap: function munmap(stream) {
- return 0;
- },
- ioctl: function ioctl(stream, cmd, arg) {
- if (!stream.stream_ops.ioctl) {
- throw new FS.ErrnoError(59);
- }
- return stream.stream_ops.ioctl(stream, cmd, arg);
- },
- readFile: function readFile(path, opts) {
- opts = opts || {};
- opts.flags = opts.flags || "r";
- opts.encoding = opts.encoding || "binary";
- if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
- throw new Error('Invalid encoding type "' + opts.encoding + '"');
- }
- var ret;
- var stream = FS.open(path, opts.flags);
- var stat = FS.stat(path);
- var length = stat.size;
- var buf = new Uint8Array(length);
- FS.read(stream, buf, 0, length, 0);
- if (opts.encoding === "utf8") {
- ret = UTF8ArrayToString(buf, 0);
- } else if (opts.encoding === "binary") {
- ret = buf;
- }
- FS.close(stream);
- return ret;
- },
- writeFile: function writeFile(path, data, opts) {
- opts = opts || {};
- opts.flags = opts.flags || "w";
- var stream = FS.open(path, opts.flags, opts.mode);
- if (typeof data === "string") {
- var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
- var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
- FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);
- } else if (ArrayBuffer.isView(data)) {
- FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);
- } else {
- throw new Error("Unsupported data type");
- }
- FS.close(stream);
- },
- cwd: function cwd() {
- return FS.currentPath;
- },
- chdir: function chdir(path) {
- var lookup = FS.lookupPath(path, { follow: true });
- if (lookup.node === null) {
- throw new FS.ErrnoError(44);
- }
- if (!FS.isDir(lookup.node.mode)) {
- throw new FS.ErrnoError(54);
- }
- var err = FS.nodePermissions(lookup.node, "x");
- if (err) {
- throw new FS.ErrnoError(err);
- }
- FS.currentPath = lookup.path;
- },
- createDefaultDirectories: function createDefaultDirectories() {
- FS.mkdir("/tmp");
- FS.mkdir("/home");
- FS.mkdir("/home/web_user");
- },
- createDefaultDevices: function createDefaultDevices() {
- FS.mkdir("/dev");
- FS.registerDevice(FS.makedev(1, 3), {
- read: function read() {
- return 0;
- }, write: function write(stream, buffer, offset, length, pos) {
- return length;
- }
- });
- FS.mkdev("/dev/null", FS.makedev(1, 3));
- TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
- TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
- FS.mkdev("/dev/tty", FS.makedev(5, 0));
- FS.mkdev("/dev/tty1", FS.makedev(6, 0));
- var random_device;
- if ((typeof crypto === 'undefined' ? 'undefined' : _typeof(crypto)) === "object" && typeof crypto["getRandomValues"] === "function") {
- var randomBuffer = new Uint8Array(1);
- random_device = function random_device() {
- crypto.getRandomValues(randomBuffer);
- return randomBuffer[0];
- };
- } else if (ENVIRONMENT_IS_NODE) {
- try {
- var crypto_module = __webpack_require__("VI/i");
- random_device = function random_device() {
- return crypto_module["randomBytes"](1)[0];
- };
- } catch (e) {}
- } else {}
- if (!random_device) {
- random_device = function random_device() {
- abort("no cryptographic support found for random_device. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };");
- };
- }
- FS.createDevice("/dev", "random", random_device);
- FS.createDevice("/dev", "urandom", random_device);
- FS.mkdir("/dev/shm");
- FS.mkdir("/dev/shm/tmp");
- },
- createSpecialDirectories: function createSpecialDirectories() {
- FS.mkdir("/proc");
- FS.mkdir("/proc/self");
- FS.mkdir("/proc/self/fd");
- FS.mount({
- mount: function mount() {
- var node = FS.createNode("/proc/self", "fd", 16384 | 511, 73);
- node.node_ops = {
- lookup: function lookup(parent, name) {
- var fd = +name;
- var stream = FS.getStream(fd);
- if (!stream) throw new FS.ErrnoError(8);
- var ret = {
- parent: null, mount: { mountpoint: "fake" }, node_ops: {
- readlink: function readlink() {
- return stream.path;
- }
- }
- };
- ret.parent = ret;
- return ret;
- }
- };
- return node;
- }
- }, {}, "/proc/self/fd");
- },
- createStandardStreams: function createStandardStreams() {
- if (Module["stdin"]) {
- FS.createDevice("/dev", "stdin", Module["stdin"]);
- } else {
- FS.symlink("/dev/tty", "/dev/stdin");
- }
- if (Module["stdout"]) {
- FS.createDevice("/dev", "stdout", null, Module["stdout"]);
- } else {
- FS.symlink("/dev/tty", "/dev/stdout");
- }
- if (Module["stderr"]) {
- FS.createDevice("/dev", "stderr", null, Module["stderr"]);
- } else {
- FS.symlink("/dev/tty1", "/dev/stderr");
- }
- var stdin = FS.open("/dev/stdin", "r");
- var stdout = FS.open("/dev/stdout", "w");
- var stderr = FS.open("/dev/stderr", "w");
- assert(stdin.fd === 0, "invalid handle for stdin (" + stdin.fd + ")");
- assert(stdout.fd === 1, "invalid handle for stdout (" + stdout.fd + ")");
- assert(stderr.fd === 2, "invalid handle for stderr (" + stderr.fd + ")");
- },
- ensureErrnoError: function ensureErrnoError() {
- if (FS.ErrnoError) return;
- FS.ErrnoError = function ErrnoError(errno, node) {
- this.node = node;
- this.setErrno = function (errno) {
- this.errno = errno;
- for (var key in ERRNO_CODES) {
- if (ERRNO_CODES[key] === errno) {
- this.code = key;
- break;
- }
- }
- };
- this.setErrno(errno);
- this.message = ERRNO_MESSAGES[errno];
- if (this.stack) {
- Object.defineProperty(this, "stack", { value: new Error().stack, writable: true });
- this.stack = demangleAll(this.stack);
- }
- };
- FS.ErrnoError.prototype = new Error();
- FS.ErrnoError.prototype.constructor = FS.ErrnoError;
- [44].forEach(function (code) {
- FS.genericErrors[code] = new FS.ErrnoError(code);
- FS.genericErrors[code].stack = "<generic error, no stack>";
- });
- },
- staticInit: function staticInit() {
- FS.ensureErrnoError();
- FS.nameTable = new Array(4096);
- FS.mount(MEMFS, {}, "/");
- FS.createDefaultDirectories();
- FS.createDefaultDevices();
- FS.createSpecialDirectories();
- FS.filesystems = { "MEMFS": MEMFS };
- },
- init: function init(input, output, error) {
- assert(!FS.init.initialized, "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");
- FS.init.initialized = true;
- FS.ensureErrnoError();
- Module["stdin"] = input || Module["stdin"];
- Module["stdout"] = output || Module["stdout"];
- Module["stderr"] = error || Module["stderr"];
- FS.createStandardStreams();
- },
- quit: function quit() {
- FS.init.initialized = false;
- var fflush = Module["_fflush"];
- if (fflush) fflush(0);
- for (var i = 0; i < FS.streams.length; i++) {
- var stream = FS.streams[i];
- if (!stream) {
- continue;
- }
- FS.close(stream);
- }
- },
- getMode: function getMode(canRead, canWrite) {
- var mode = 0;
- if (canRead) mode |= 292 | 73;
- if (canWrite) mode |= 146;
- return mode;
- },
- joinPath: function joinPath(parts, forceRelative) {
- var path = PATH.join.apply(null, parts);
- if (forceRelative && path[0] == "/") path = path.substr(1);
- return path;
- },
- absolutePath: function absolutePath(relative, base) {
- return PATH_FS.resolve(base, relative);
- },
- standardizePath: function standardizePath(path) {
- return PATH.normalize(path);
- },
- findObject: function findObject(path, dontResolveLastLink) {
- var ret = FS.analyzePath(path, dontResolveLastLink);
- if (ret.exists) {
- return ret.object;
- } else {
- ___setErrNo(ret.error);
- return null;
- }
- },
- analyzePath: function analyzePath(path, dontResolveLastLink) {
- try {
- var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
- path = lookup.path;
- } catch (e) {}
- var ret = {
- isRoot: false,
- exists: false,
- error: 0,
- name: null,
- path: null,
- object: null,
- parentExists: false,
- parentPath: null,
- parentObject: null
- };
- try {
- var lookup = FS.lookupPath(path, { parent: true });
- ret.parentExists = true;
- ret.parentPath = lookup.path;
- ret.parentObject = lookup.node;
- ret.name = PATH.basename(path);
- lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
- ret.exists = true;
- ret.path = lookup.path;
- ret.object = lookup.node;
- ret.name = lookup.node.name;
- ret.isRoot = lookup.path === "/";
- } catch (e) {
- ret.error = e.errno;
- }
- return ret;
- },
- createFolder: function createFolder(parent, name, canRead, canWrite) {
- var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
- var mode = FS.getMode(canRead, canWrite);
- return FS.mkdir(path, mode);
- },
- createPath: function createPath(parent, path, canRead, canWrite) {
- parent = typeof parent === "string" ? parent : FS.getPath(parent);
- var parts = path.split("/").reverse();
- while (parts.length) {
- var part = parts.pop();
- if (!part) continue;
- var current = PATH.join2(parent, part);
- try {
- FS.mkdir(current);
- } catch (e) {}
- parent = current;
- }
- return current;
- },
- createFile: function createFile(parent, name, properties, canRead, canWrite) {
- var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
- var mode = FS.getMode(canRead, canWrite);
- return FS.create(path, mode);
- },
- createDataFile: function createDataFile(parent, name, data, canRead, canWrite, canOwn) {
- var path = name ? PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name) : parent;
- var mode = FS.getMode(canRead, canWrite);
- var node = FS.create(path, mode);
- if (data) {
- if (typeof data === "string") {
- var arr = new Array(data.length);
- for (var i = 0, len = data.length; i < len; ++i) {
- arr[i] = data.charCodeAt(i);
- }data = arr;
- }
- FS.chmod(node, mode | 146);
- var stream = FS.open(node, "w");
- FS.write(stream, data, 0, data.length, 0, canOwn);
- FS.close(stream);
- FS.chmod(node, mode);
- }
- return node;
- },
- createDevice: function createDevice(parent, name, input, output) {
- var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
- var mode = FS.getMode(!!input, !!output);
- if (!FS.createDevice.major) FS.createDevice.major = 64;
- var dev = FS.makedev(FS.createDevice.major++, 0);
- FS.registerDevice(dev, {
- open: function open(stream) {
- stream.seekable = false;
- }, close: function close(stream) {
- if (output && output.buffer && output.buffer.length) {
- output(10);
- }
- }, read: function read(stream, buffer, offset, length, pos) {
- var bytesRead = 0;
- for (var i = 0; i < length; i++) {
- var result;
- try {
- result = input();
- } catch (e) {
- throw new FS.ErrnoError(29);
- }
- if (result === undefined && bytesRead === 0) {
- throw new FS.ErrnoError(6);
- }
- if (result === null || result === undefined) break;
- bytesRead++;
- buffer[offset + i] = result;
- }
- if (bytesRead) {
- stream.node.timestamp = Date.now();
- }
- return bytesRead;
- }, write: function write(stream, buffer, offset, length, pos) {
- for (var i = 0; i < length; i++) {
- try {
- output(buffer[offset + i]);
- } catch (e) {
- throw new FS.ErrnoError(29);
- }
- }
- if (length) {
- stream.node.timestamp = Date.now();
- }
- return i;
- }
- });
- return FS.mkdev(path, mode, dev);
- },
- createLink: function createLink(parent, name, target, canRead, canWrite) {
- var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
- return FS.symlink(target, path);
- },
- forceLoadFile: function forceLoadFile(obj) {
- if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
- var success = true;
- if (typeof XMLHttpRequest !== "undefined") {
- throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
- } else if (read_) {
- try {
- obj.contents = intArrayFromString(read_(obj.url), true);
- obj.usedBytes = obj.contents.length;
- } catch (e) {
- success = false;
- }
- } else {
- throw new Error("Cannot load without read() or XMLHttpRequest.");
- }
- if (!success) ___setErrNo(29);
- return success;
- },
- createLazyFile: function createLazyFile(parent, name, url, canRead, canWrite) {
- function LazyUint8Array() {
- this.lengthKnown = false;
- this.chunks = [];
- }
- LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
- if (idx > this.length - 1 || idx < 0) {
- return undefined;
- }
- var chunkOffset = idx % this.chunkSize;
- var chunkNum = idx / this.chunkSize | 0;
- return this.getter(chunkNum)[chunkOffset];
- };
- LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
- this.getter = getter;
- };
- LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
- var xhr = new XMLHttpRequest();
- xhr.open("HEAD", url, false);
- xhr.send(null);
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
- var datalength = Number(xhr.getResponseHeader("Content-length"));
- var header;
- var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
- var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";
- var chunkSize = 1024 * 1024;
- if (!hasByteServing) chunkSize = datalength;
- var doXHR = function doXHR(from, to) {
- if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
- if (to > datalength - 1) throw new Error("only " + datalength + " bytes available! programmer error!");
- var xhr = new XMLHttpRequest();
- xhr.open("GET", url, false);
- if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
- if (typeof Uint8Array != "undefined") xhr.responseType = "arraybuffer";
- if (xhr.overrideMimeType) {
- xhr.overrideMimeType("text/plain; charset=x-user-defined");
- }
- xhr.send(null);
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
- if (xhr.response !== undefined) {
- return new Uint8Array(xhr.response || []);
- } else {
- return intArrayFromString(xhr.responseText || "", true);
- }
- };
- var lazyArray = this;
- lazyArray.setDataGetter(function (chunkNum) {
- var start = chunkNum * chunkSize;
- var end = (chunkNum + 1) * chunkSize - 1;
- end = Math.min(end, datalength - 1);
- if (typeof lazyArray.chunks[chunkNum] === "undefined") {
- lazyArray.chunks[chunkNum] = doXHR(start, end);
- }
- if (typeof lazyArray.chunks[chunkNum] === "undefined") throw new Error("doXHR failed!");
- return lazyArray.chunks[chunkNum];
- });
- if (usesGzip || !datalength) {
- chunkSize = datalength = 1;
- datalength = this.getter(0).length;
- chunkSize = datalength;
- console.log("LazyFiles on gzip forces download of the whole file when length is accessed");
- }
- this._length = datalength;
- this._chunkSize = chunkSize;
- this.lengthKnown = true;
- };
- if (typeof XMLHttpRequest !== "undefined") {
- if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
- var lazyArray = new LazyUint8Array();
- Object.defineProperties(lazyArray, {
- length: {
- get: function get() {
- if (!this.lengthKnown) {
- this.cacheLength();
- }
- return this._length;
- }
- }, chunkSize: {
- get: function get() {
- if (!this.lengthKnown) {
- this.cacheLength();
- }
- return this._chunkSize;
- }
- }
- });
- var properties = { isDevice: false, contents: lazyArray };
- } else {
- var properties = { isDevice: false, url: url };
- }
- var node = FS.createFile(parent, name, properties, canRead, canWrite);
- if (properties.contents) {
- node.contents = properties.contents;
- } else if (properties.url) {
- node.contents = null;
- node.url = properties.url;
- }
- Object.defineProperties(node, {
- usedBytes: {
- get: function get() {
- return this.contents.length;
- }
- }
- });
- var stream_ops = {};
- var keys = Object.keys(node.stream_ops);
- keys.forEach(function (key) {
- var fn = node.stream_ops[key];
- stream_ops[key] = function forceLoadLazyFile() {
- if (!FS.forceLoadFile(node)) {
- throw new FS.ErrnoError(29);
- }
- return fn.apply(null, arguments);
- };
- });
- stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {
- if (!FS.forceLoadFile(node)) {
- throw new FS.ErrnoError(29);
- }
- var contents = stream.node.contents;
- if (position >= contents.length) return 0;
- var size = Math.min(contents.length - position, length);
- assert(size >= 0);
- if (contents.slice) {
- for (var i = 0; i < size; i++) {
- buffer[offset + i] = contents[position + i];
- }
- } else {
- for (var i = 0; i < size; i++) {
- buffer[offset + i] = contents.get(position + i);
- }
- }
- return size;
- };
- node.stream_ops = stream_ops;
- return node;
- },
- createPreloadedFile: function createPreloadedFile(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {
- Browser.init();
- var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;
- var dep = getUniqueRunDependency("cp " + fullname);
- function processData(byteArray) {
- function finish(byteArray) {
- if (preFinish) preFinish();
- if (!dontCreateFile) {
- FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
- }
- if (onload) onload();
- removeRunDependency(dep);
- }
- var handled = false;
- Module["preloadPlugins"].forEach(function (plugin) {
- if (handled) return;
- if (plugin["canHandle"](fullname)) {
- plugin["handle"](byteArray, fullname, finish, function () {
- if (onerror) onerror();
- removeRunDependency(dep);
- });
- handled = true;
- }
- });
- if (!handled) finish(byteArray);
- }
- addRunDependency(dep);
- if (typeof url == "string") {
- Browser.asyncLoad(url, function (byteArray) {
- processData(byteArray);
- }, onerror);
- } else {
- processData(url);
- }
- },
- indexedDB: function indexedDB() {
- return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
- },
- DB_NAME: function DB_NAME() {
- return "EM_FS_" + window.location.pathname;
- },
- DB_VERSION: 20,
- DB_STORE_NAME: "FILE_DATA",
- saveFilesToDB: function saveFilesToDB(paths, onload, onerror) {
- onload = onload || function () {};
- onerror = onerror || function () {};
- var indexedDB = FS.indexedDB();
- try {
- var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
- } catch (e) {
- return onerror(e);
- }
- openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
- console.log("creating db");
- var db = openRequest.result;
- db.createObjectStore(FS.DB_STORE_NAME);
- };
- openRequest.onsuccess = function openRequest_onsuccess() {
- var db = openRequest.result;
- var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite");
- var files = transaction.objectStore(FS.DB_STORE_NAME);
- var ok = 0,
- fail = 0,
- total = paths.length;
- function finish() {
- if (fail == 0) onload();else onerror();
- }
- paths.forEach(function (path) {
- var putRequest = files.put(FS.analyzePath(path).object.contents, path);
- putRequest.onsuccess = function putRequest_onsuccess() {
- ok++;
- if (ok + fail == total) finish();
- };
- putRequest.onerror = function putRequest_onerror() {
- fail++;
- if (ok + fail == total) finish();
- };
- });
- transaction.onerror = onerror;
- };
- openRequest.onerror = onerror;
- },
- loadFilesFromDB: function loadFilesFromDB(paths, onload, onerror) {
- onload = onload || function () {};
- onerror = onerror || function () {};
- var indexedDB = FS.indexedDB();
- try {
- var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
- } catch (e) {
- return onerror(e);
- }
- openRequest.onupgradeneeded = onerror;
- openRequest.onsuccess = function openRequest_onsuccess() {
- var db = openRequest.result;
- try {
- var transaction = db.transaction([FS.DB_STORE_NAME], "readonly");
- } catch (e) {
- onerror(e);
- return;
- }
- var files = transaction.objectStore(FS.DB_STORE_NAME);
- var ok = 0,
- fail = 0,
- total = paths.length;
- function finish() {
- if (fail == 0) onload();else onerror();
- }
- paths.forEach(function (path) {
- var getRequest = files.get(path);
- getRequest.onsuccess = function getRequest_onsuccess() {
- if (FS.analyzePath(path).exists) {
- FS.unlink(path);
- }
- FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
- ok++;
- if (ok + fail == total) finish();
- };
- getRequest.onerror = function getRequest_onerror() {
- fail++;
- if (ok + fail == total) finish();
- };
- });
- transaction.onerror = onerror;
- };
- openRequest.onerror = onerror;
- }
- };
- var SYSCALLS = {
- DEFAULT_POLLMASK: 5, mappings: {}, umask: 511, calculateAt: function calculateAt(dirfd, path) {
- if (path[0] !== "/") {
- var dir;
- if (dirfd === -100) {
- dir = FS.cwd();
- } else {
- var dirstream = FS.getStream(dirfd);
- if (!dirstream) throw new FS.ErrnoError(8);
- dir = dirstream.path;
- }
- path = PATH.join2(dir, path);
- }
- return path;
- }, doStat: function doStat(func, path, buf) {
- try {
- var stat = func(path);
- } catch (e) {
- if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {
- return -54;
- }
- throw e;
- }
- HEAP32[buf >> 2] = stat.dev;
- HEAP32[buf + 4 >> 2] = 0;
- HEAP32[buf + 8 >> 2] = stat.ino;
- HEAP32[buf + 12 >> 2] = stat.mode;
- HEAP32[buf + 16 >> 2] = stat.nlink;
- HEAP32[buf + 20 >> 2] = stat.uid;
- HEAP32[buf + 24 >> 2] = stat.gid;
- HEAP32[buf + 28 >> 2] = stat.rdev;
- HEAP32[buf + 32 >> 2] = 0;
- tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1];
- HEAP32[buf + 48 >> 2] = 4096;
- HEAP32[buf + 52 >> 2] = stat.blocks;
- HEAP32[buf + 56 >> 2] = stat.atime.getTime() / 1e3 | 0;
- HEAP32[buf + 60 >> 2] = 0;
- HEAP32[buf + 64 >> 2] = stat.mtime.getTime() / 1e3 | 0;
- HEAP32[buf + 68 >> 2] = 0;
- HEAP32[buf + 72 >> 2] = stat.ctime.getTime() / 1e3 | 0;
- HEAP32[buf + 76 >> 2] = 0;
- tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 80 >> 2] = tempI64[0], HEAP32[buf + 84 >> 2] = tempI64[1];
- return 0;
- }, doMsync: function doMsync(addr, stream, len, flags) {
- var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len));
- FS.msync(stream, buffer, 0, len, flags);
- }, doMkdir: function doMkdir(path, mode) {
- path = PATH.normalize(path);
- if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1);
- FS.mkdir(path, mode, 0);
- return 0;
- }, doMknod: function doMknod(path, mode, dev) {
- switch (mode & 61440) {
- case 32768:
- case 8192:
- case 24576:
- case 4096:
- case 49152:
- break;
- default:
- return -28;
- }
- FS.mknod(path, mode, dev);
- return 0;
- }, doReadlink: function doReadlink(path, buf, bufsize) {
- if (bufsize <= 0) return -28;
- var ret = FS.readlink(path);
- var len = Math.min(bufsize, lengthBytesUTF8(ret));
- var endChar = HEAP8[buf + len];
- stringToUTF8(ret, buf, bufsize + 1);
- HEAP8[buf + len] = endChar;
- return len;
- }, doAccess: function doAccess(path, amode) {
- if (amode & ~7) {
- return -28;
- }
- var node;
- var lookup = FS.lookupPath(path, { follow: true });
- node = lookup.node;
- if (!node) {
- return -44;
- }
- var perms = "";
- if (amode & 4) perms += "r";
- if (amode & 2) perms += "w";
- if (amode & 1) perms += "x";
- if (perms && FS.nodePermissions(node, perms)) {
- return -2;
- }
- return 0;
- }, doDup: function doDup(path, flags, suggestFD) {
- var suggest = FS.getStream(suggestFD);
- if (suggest) FS.close(suggest);
- return FS.open(path, flags, 0, suggestFD, suggestFD).fd;
- }, doReadv: function doReadv(stream, iov, iovcnt, offset) {
- var ret = 0;
- for (var i = 0; i < iovcnt; i++) {
- var ptr = HEAP32[iov + i * 8 >> 2];
- var len = HEAP32[iov + (i * 8 + 4) >> 2];
- var curr = FS.read(stream, HEAP8, ptr, len, offset);
- if (curr < 0) return -1;
- ret += curr;
- if (curr < len) break;
- }
- return ret;
- }, doWritev: function doWritev(stream, iov, iovcnt, offset) {
- var ret = 0;
- for (var i = 0; i < iovcnt; i++) {
- var ptr = HEAP32[iov + i * 8 >> 2];
- var len = HEAP32[iov + (i * 8 + 4) >> 2];
- var curr = FS.write(stream, HEAP8, ptr, len, offset);
- if (curr < 0) return -1;
- ret += curr;
- }
- return ret;
- }, varargs: 0, get: function get(varargs) {
- SYSCALLS.varargs += 4;
- var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];
- return ret;
- }, getStr: function getStr() {
- var ret = UTF8ToString(SYSCALLS.get());
- return ret;
- }, getStreamFromFD: function getStreamFromFD(fd) {
- if (fd === undefined) fd = SYSCALLS.get();
- var stream = FS.getStream(fd);
- if (!stream) throw new FS.ErrnoError(8);
- return stream;
- }, get64: function get64() {
- var low = SYSCALLS.get(),
- high = SYSCALLS.get();
- if (low >= 0) assert(high === 0);else assert(high === -1);
- return low;
- }, getZero: function getZero() {
- assert(SYSCALLS.get() === 0);
- }
- };
- function ___syscall221(which, varargs) {
- SYSCALLS.varargs = varargs;
- try {
- var stream = SYSCALLS.getStreamFromFD(),
- cmd = SYSCALLS.get();
- switch (cmd) {
- case 0:
- {
- var arg = SYSCALLS.get();
- if (arg < 0) {
- return -28;
- }
- var newStream;
- newStream = FS.open(stream.path, stream.flags, 0, arg);
- return newStream.fd;
- }
- case 1:
- case 2:
- return 0;
- case 3:
- return stream.flags;
- case 4:
- {
- var arg = SYSCALLS.get();
- stream.flags |= arg;
- return 0;
- }
- case 12:
- {
- var arg = SYSCALLS.get();
- var offset = 0;
- HEAP16[arg + offset >> 1] = 2;
- return 0;
- }
- case 13:
- case 14:
- return 0;
- case 16:
- case 8:
- return -28;
- case 9:
- ___setErrNo(28);
- return -1;
- default:
- {
- return -28;
- }
- }
- } catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
- return -e.errno;
- }
- }
- function ___syscall3(which, varargs) {
- SYSCALLS.varargs = varargs;
- try {
- var stream = SYSCALLS.getStreamFromFD(),
- buf = SYSCALLS.get(),
- count = SYSCALLS.get();
- return FS.read(stream, HEAP8, buf, count);
- } catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
- return -e.errno;
- }
- }
- function ___syscall5(which, varargs) {
- SYSCALLS.varargs = varargs;
- try {
- var pathname = SYSCALLS.getStr(),
- flags = SYSCALLS.get(),
- mode = SYSCALLS.get();
- var stream = FS.open(pathname, flags, mode);
- return stream.fd;
- } catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
- return -e.errno;
- }
- }
- function ___unlock() {}
- function _abort() {
- abort();
- }
- function _clock() {
- if (_clock.start === undefined) _clock.start = Date.now();
- return (Date.now() - _clock.start) * (1e6 / 1e3) | 0;
- }
- function _emscripten_get_heap_size() {
- return HEAP8.length;
- }
- function _emscripten_memcpy_big(dest, src, num) {
- HEAPU8.set(HEAPU8.subarray(src, src + num), dest);
- }
- function emscripten_realloc_buffer(size) {
- try {
- wasmMemory.grow(size - buffer.byteLength + 65535 >> 16);
- updateGlobalBufferAndViews(wasmMemory.buffer);
- return 1;
- } catch (e) {
- console.error("emscripten_realloc_buffer: Attempted to grow heap from " + buffer.byteLength + " bytes to " + size + " bytes, but got error: " + e);
- }
- }
- function _emscripten_resize_heap(requestedSize) {
- var oldSize = _emscripten_get_heap_size();
- assert(requestedSize > oldSize);
- var PAGE_MULTIPLE = 65536;
- var LIMIT = 2147483648 - PAGE_MULTIPLE;
- if (requestedSize > LIMIT) {
- err("Cannot enlarge memory, asked to go up to " + requestedSize + " bytes, but the limit is " + LIMIT + " bytes!");
- return false;
- }
- var MIN_TOTAL_MEMORY = 16777216;
- var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY);
- while (newSize < requestedSize) {
- if (newSize <= 536870912) {
- newSize = alignUp(2 * newSize, PAGE_MULTIPLE);
- } else {
- newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);
- }
- if (newSize === oldSize) {
- warnOnce("Cannot ask for more memory since we reached the practical limit in browsers (which is just below 2GB), so the request would have failed. Requesting only " + HEAP8.length);
- }
- }
- var replacement = emscripten_realloc_buffer(newSize);
- if (!replacement) {
- err("Failed to grow the heap from " + oldSize + " bytes to " + newSize + " bytes, not enough memory!");
- return false;
- }
- return true;
- }
- var ENV = {};
- function _emscripten_get_environ() {
- if (!_emscripten_get_environ.strings) {
- var env = {
- "USER": "web_user",
- "LOGNAME": "web_user",
- "PATH": "/",
- "PWD": "/",
- "HOME": "/home/web_user",
- "LANG": ((typeof navigator === 'undefined' ? 'undefined' : _typeof(navigator)) === "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8",
- "_": thisProgram
- };
- for (var x in ENV) {
- env[x] = ENV[x];
- }
- var strings = [];
- for (var x in env) {
- strings.push(x + "=" + env[x]);
- }
- _emscripten_get_environ.strings = strings;
- }
- return _emscripten_get_environ.strings;
- }
- function _environ_get(__environ, environ_buf) {
- var strings = _emscripten_get_environ();
- var bufSize = 0;
- strings.forEach(function (string, i) {
- var ptr = environ_buf + bufSize;
- HEAP32[__environ + i * 4 >> 2] = ptr;
- writeAsciiToMemory(string, ptr);
- bufSize += string.length + 1;
- });
- return 0;
- }
- function _environ_sizes_get(penviron_count, penviron_buf_size) {
- var strings = _emscripten_get_environ();
- HEAP32[penviron_count >> 2] = strings.length;
- var bufSize = 0;
- strings.forEach(function (string) {
- bufSize += string.length + 1;
- });
- HEAP32[penviron_buf_size >> 2] = bufSize;
- return 0;
- }
- function _fd_close(fd) {
- try {
- var stream = SYSCALLS.getStreamFromFD(fd);
- FS.close(stream);
- return 0;
- } catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
- return e.errno;
- }
- }
- function _fd_fdstat_get(fd, pbuf) {
- try {
- var stream = SYSCALLS.getStreamFromFD(fd);
- var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4;
- HEAP8[pbuf >> 0] = type;
- return 0;
- } catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
- return e.errno;
- }
- }
- function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
- try {
- var stream = SYSCALLS.getStreamFromFD(fd);
- var HIGH_OFFSET = 4294967296;
- var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0);
- var DOUBLE_LIMIT = 9007199254740992;
- if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) {
- return -61;
- }
- FS.llseek(stream, offset, whence);
- tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >> 2] = tempI64[0], HEAP32[newOffset + 4 >> 2] = tempI64[1];
- if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null;
- return 0;
- } catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
- return e.errno;
- }
- }
- function _fd_write(fd, iov, iovcnt, pnum) {
- try {
- var stream = SYSCALLS.getStreamFromFD(fd);
- var num = SYSCALLS.doWritev(stream, iov, iovcnt);
- HEAP32[pnum >> 2] = num;
- return 0;
- } catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
- return e.errno;
- }
- }
- function _gettimeofday(ptr) {
- var now = Date.now();
- HEAP32[ptr >> 2] = now / 1e3 | 0;
- HEAP32[ptr + 4 >> 2] = now % 1e3 * 1e3 | 0;
- return 0;
- }
- var ___tm_timezone = (stringToUTF8("GMT", 1341232, 4), 1341232);
- function _round(d) {
- d = +d;
- return d >= +0 ? +Math_floor(d + +.5) : +Math_ceil(d - +.5);
- }
- function _setTempRet0($i) {
- setTempRet0($i | 0);
- }
- function _time(ptr) {
- var ret = Date.now() / 1e3 | 0;
- if (ptr) {
- HEAP32[ptr >> 2] = ret;
- }
- return ret;
- }
- FS.staticInit();
- function intArrayFromString(stringy, dontAddNull, length) {
- var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
- var u8array = new Array(len);
- var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
- if (dontAddNull) u8array.length = numBytesWritten;
- return u8array;
- }
- var asmLibraryArg = {
- "__cxa_allocate_exception": ___cxa_allocate_exception,
- "__cxa_throw": ___cxa_throw,
- "__lock": ___lock,
- "__syscall221": ___syscall221,
- "__syscall3": ___syscall3,
- "__syscall5": ___syscall5,
- "__unlock": ___unlock,
- "abort": _abort,
- "clock": _clock,
- "emscripten_memcpy_big": _emscripten_memcpy_big,
- "emscripten_resize_heap": _emscripten_resize_heap,
- "environ_get": _environ_get,
- "environ_sizes_get": _environ_sizes_get,
- "fd_close": _fd_close,
- "fd_fdstat_get": _fd_fdstat_get,
- "fd_seek": _fd_seek,
- "fd_write": _fd_write,
- "gettimeofday": _gettimeofday,
- "memory": wasmMemory,
- "round": _round,
- "setTempRet0": _setTempRet0,
- "table": wasmTable,
- "time": _time
- };
- var asm = createWasm();
- var real____wasm_call_ctors = asm["__wasm_call_ctors"];
- asm["__wasm_call_ctors"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real____wasm_call_ctors.apply(null, arguments);
- };
- var real__WasmDecoder_Check = asm["WasmDecoder_Check"];
- asm["WasmDecoder_Check"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_Check.apply(null, arguments);
- };
- var real__WasmDecoder_Init = asm["WasmDecoder_Init"];
- asm["WasmDecoder_Init"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_Init.apply(null, arguments);
- };
- var real__WasmDecoder_Deinit = asm["WasmDecoder_Deinit"];
- asm["WasmDecoder_Deinit"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_Deinit.apply(null, arguments);
- };
- var real__WasmDecoder_OpenChannel = asm["WasmDecoder_OpenChannel"];
- asm["WasmDecoder_OpenChannel"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_OpenChannel.apply(null, arguments);
- };
- var real__WasmDecoder_InputFlvStream = asm["WasmDecoder_InputFlvStream"];
- asm["WasmDecoder_InputFlvStream"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_InputFlvStream.apply(null, arguments);
- };
- var real__WasmDecoder_GetFlvDecodeData = asm["WasmDecoder_GetFlvDecodeData"];
- asm["WasmDecoder_GetFlvDecodeData"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_GetFlvDecodeData.apply(null, arguments);
- };
- var real__WasmDecoder_InputFlvStreamAndDecode = asm["WasmDecoder_InputFlvStreamAndDecode"];
- asm["WasmDecoder_InputFlvStreamAndDecode"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_InputFlvStreamAndDecode.apply(null, arguments);
- };
- var real__WasmDecoder_OpenVideoDecoder = asm["WasmDecoder_OpenVideoDecoder"];
- asm["WasmDecoder_OpenVideoDecoder"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_OpenVideoDecoder.apply(null, arguments);
- };
- var real__WasmDecoder_OpenAudioDecoder = asm["WasmDecoder_OpenAudioDecoder"];
- asm["WasmDecoder_OpenAudioDecoder"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_OpenAudioDecoder.apply(null, arguments);
- };
- var real__WasmDecoder_DecodeVideoFrame = asm["WasmDecoder_DecodeVideoFrame"];
- asm["WasmDecoder_DecodeVideoFrame"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_DecodeVideoFrame.apply(null, arguments);
- };
- var real__WasmDecoder_DecodeAudioFrame = asm["WasmDecoder_DecodeAudioFrame"];
- asm["WasmDecoder_DecodeAudioFrame"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_DecodeAudioFrame.apply(null, arguments);
- };
- var real__WasmDecoder_CloseChannel = asm["WasmDecoder_CloseChannel"];
- asm["WasmDecoder_CloseChannel"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_CloseChannel.apply(null, arguments);
- };
- var real__WasmDecoder_ConvertFrame2Image = asm["WasmDecoder_ConvertFrame2Image"];
- asm["WasmDecoder_ConvertFrame2Image"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_ConvertFrame2Image.apply(null, arguments);
- };
- var real__WasmDecoder_ReleaseImageData = asm["WasmDecoder_ReleaseImageData"];
- asm["WasmDecoder_ReleaseImageData"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_ReleaseImageData.apply(null, arguments);
- };
- var real__WasmDecoder_CreateMP4File = asm["WasmDecoder_CreateMP4File"];
- asm["WasmDecoder_CreateMP4File"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_CreateMP4File.apply(null, arguments);
- };
- var real__WasmDecoder_WriteData = asm["WasmDecoder_WriteData"];
- asm["WasmDecoder_WriteData"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_WriteData.apply(null, arguments);
- };
- var real__WasmDecoder_ReleaseMP4File = asm["WasmDecoder_ReleaseMP4File"];
- asm["WasmDecoder_ReleaseMP4File"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__WasmDecoder_ReleaseMP4File.apply(null, arguments);
- };
- var real__main = asm["main"];
- asm["main"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__main.apply(null, arguments);
- };
- var real__free = asm["free"];
- asm["free"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__free.apply(null, arguments);
- };
- var real__malloc = asm["malloc"];
- asm["malloc"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__malloc.apply(null, arguments);
- };
- var real____errno_location = asm["__errno_location"];
- asm["__errno_location"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real____errno_location.apply(null, arguments);
- };
- var real__fflush = asm["fflush"];
- asm["fflush"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__fflush.apply(null, arguments);
- };
- var real___get_tzname = asm["_get_tzname"];
- asm["_get_tzname"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real___get_tzname.apply(null, arguments);
- };
- var real___get_daylight = asm["_get_daylight"];
- asm["_get_daylight"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real___get_daylight.apply(null, arguments);
- };
- var real___get_timezone = asm["_get_timezone"];
- asm["_get_timezone"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real___get_timezone.apply(null, arguments);
- };
- var real__setThrew = asm["setThrew"];
- asm["setThrew"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real__setThrew.apply(null, arguments);
- };
- var real___ZSt18uncaught_exceptionv = asm["_ZSt18uncaught_exceptionv"];
- asm["_ZSt18uncaught_exceptionv"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real___ZSt18uncaught_exceptionv.apply(null, arguments);
- };
- var real_stackSave = asm["stackSave"];
- asm["stackSave"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_stackSave.apply(null, arguments);
- };
- var real_stackAlloc = asm["stackAlloc"];
- asm["stackAlloc"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_stackAlloc.apply(null, arguments);
- };
- var real_stackRestore = asm["stackRestore"];
- asm["stackRestore"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_stackRestore.apply(null, arguments);
- };
- var real___growWasmMemory = asm["__growWasmMemory"];
- asm["__growWasmMemory"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real___growWasmMemory.apply(null, arguments);
- };
- var real_dynCall_ii = asm["dynCall_ii"];
- asm["dynCall_ii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_ii.apply(null, arguments);
- };
- var real_dynCall_viiiii = asm["dynCall_viiiii"];
- asm["dynCall_viiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiii.apply(null, arguments);
- };
- var real_dynCall_viiiiiifi = asm["dynCall_viiiiiifi"];
- asm["dynCall_viiiiiifi"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiiiifi.apply(null, arguments);
- };
- var real_dynCall_viiii = asm["dynCall_viiii"];
- asm["dynCall_viiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiii.apply(null, arguments);
- };
- var real_dynCall_viii = asm["dynCall_viii"];
- asm["dynCall_viii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viii.apply(null, arguments);
- };
- var real_dynCall_iiiiiii = asm["dynCall_iiiiiii"];
- asm["dynCall_iiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_iiiiiii.apply(null, arguments);
- };
- var real_dynCall_iiiiii = asm["dynCall_iiiiii"];
- asm["dynCall_iiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_iiiiii.apply(null, arguments);
- };
- var real_dynCall_vii = asm["dynCall_vii"];
- asm["dynCall_vii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_vii.apply(null, arguments);
- };
- var real_dynCall_iii = asm["dynCall_iii"];
- asm["dynCall_iii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_iii.apply(null, arguments);
- };
- var real_dynCall_iiii = asm["dynCall_iiii"];
- asm["dynCall_iiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_iiii.apply(null, arguments);
- };
- var real_dynCall_viiiiii = asm["dynCall_viiiiii"];
- asm["dynCall_viiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiiii.apply(null, arguments);
- };
- var real_dynCall_viiiiiiiii = asm["dynCall_viiiiiiiii"];
- asm["dynCall_viiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiiiiiii.apply(null, arguments);
- };
- var real_dynCall_viiiiiiii = asm["dynCall_viiiiiiii"];
- asm["dynCall_viiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiiiiii.apply(null, arguments);
- };
- var real_dynCall_iiiii = asm["dynCall_iiiii"];
- asm["dynCall_iiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_iiiii.apply(null, arguments);
- };
- var real_dynCall_viiiiiiiiiiiiii = asm["dynCall_viiiiiiiiiiiiii"];
- asm["dynCall_viiiiiiiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiiiiiiiiiiii.apply(null, arguments);
- };
- var real_dynCall_viiiiiiiiiii = asm["dynCall_viiiiiiiiiii"];
- asm["dynCall_viiiiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiiiiiiiii.apply(null, arguments);
- };
- var real_dynCall_viiiiiii = asm["dynCall_viiiiiii"];
- asm["dynCall_viiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiiiii.apply(null, arguments);
- };
- var real_dynCall_viiiiiiiiiiii = asm["dynCall_viiiiiiiiiiii"];
- asm["dynCall_viiiiiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiiiiiiiiii.apply(null, arguments);
- };
- var real_dynCall_vi = asm["dynCall_vi"];
- asm["dynCall_vi"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_vi.apply(null, arguments);
- };
- var real_dynCall_iiiiiiiii = asm["dynCall_iiiiiiiii"];
- asm["dynCall_iiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_iiiiiiiii.apply(null, arguments);
- };
- var real_dynCall_viiiifii = asm["dynCall_viiiifii"];
- asm["dynCall_viiiifii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiifii.apply(null, arguments);
- };
- var real_dynCall_fii = asm["dynCall_fii"];
- asm["dynCall_fii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_fii.apply(null, arguments);
- };
- var real_dynCall_viiiiiiiiii = asm["dynCall_viiiiiiiiii"];
- asm["dynCall_viiiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiiiiiiiii.apply(null, arguments);
- };
- var real_dynCall_dd = asm["dynCall_dd"];
- asm["dynCall_dd"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_dd.apply(null, arguments);
- };
- var real_dynCall_viifi = asm["dynCall_viifi"];
- asm["dynCall_viifi"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viifi.apply(null, arguments);
- };
- var real_dynCall_fiii = asm["dynCall_fiii"];
- asm["dynCall_fiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_fiii.apply(null, arguments);
- };
- var real_dynCall_viidi = asm["dynCall_viidi"];
- asm["dynCall_viidi"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viidi.apply(null, arguments);
- };
- var real_dynCall_iiiiiiii = asm["dynCall_iiiiiiii"];
- asm["dynCall_iiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_iiiiiiii.apply(null, arguments);
- };
- var real_dynCall_did = asm["dynCall_did"];
- asm["dynCall_did"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_did.apply(null, arguments);
- };
- var real_dynCall_v = asm["dynCall_v"];
- asm["dynCall_v"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_v.apply(null, arguments);
- };
- var real_dynCall_viiijj = asm["dynCall_viiijj"];
- asm["dynCall_viiijj"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_viiijj.apply(null, arguments);
- };
- var real_dynCall_iiiiiiidiiddii = asm["dynCall_iiiiiiidiiddii"];
- asm["dynCall_iiiiiiidiiddii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_iiiiiiidiiddii.apply(null, arguments);
- };
- var real_dynCall_jij = asm["dynCall_jij"];
- asm["dynCall_jij"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_jij.apply(null, arguments);
- };
- var real_dynCall_jii = asm["dynCall_jii"];
- asm["dynCall_jii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_jii.apply(null, arguments);
- };
- var real_dynCall_jiji = asm["dynCall_jiji"];
- asm["dynCall_jiji"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_jiji.apply(null, arguments);
- };
- var real_dynCall_iidiiii = asm["dynCall_iidiiii"];
- asm["dynCall_iidiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return real_dynCall_iidiiii.apply(null, arguments);
- };
- Module["asm"] = asm;
- var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["__wasm_call_ctors"].apply(null, arguments);
- };
- var _WasmDecoder_Check = Module["_WasmDecoder_Check"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_Check"].apply(null, arguments);
- };
- var _WasmDecoder_Init = Module["_WasmDecoder_Init"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_Init"].apply(null, arguments);
- };
- var _WasmDecoder_Deinit = Module["_WasmDecoder_Deinit"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_Deinit"].apply(null, arguments);
- };
- var _WasmDecoder_OpenChannel = Module["_WasmDecoder_OpenChannel"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_OpenChannel"].apply(null, arguments);
- };
- var _WasmDecoder_InputFlvStream = Module["_WasmDecoder_InputFlvStream"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_InputFlvStream"].apply(null, arguments);
- };
- var _WasmDecoder_GetFlvDecodeData = Module["_WasmDecoder_GetFlvDecodeData"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_GetFlvDecodeData"].apply(null, arguments);
- };
- var _WasmDecoder_InputFlvStreamAndDecode = Module["_WasmDecoder_InputFlvStreamAndDecode"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_InputFlvStreamAndDecode"].apply(null, arguments);
- };
- var _WasmDecoder_OpenVideoDecoder = Module["_WasmDecoder_OpenVideoDecoder"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_OpenVideoDecoder"].apply(null, arguments);
- };
- var _WasmDecoder_OpenAudioDecoder = Module["_WasmDecoder_OpenAudioDecoder"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_OpenAudioDecoder"].apply(null, arguments);
- };
- var _WasmDecoder_DecodeVideoFrame = Module["_WasmDecoder_DecodeVideoFrame"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_DecodeVideoFrame"].apply(null, arguments);
- };
- var _WasmDecoder_DecodeAudioFrame = Module["_WasmDecoder_DecodeAudioFrame"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_DecodeAudioFrame"].apply(null, arguments);
- };
- var _WasmDecoder_CloseChannel = Module["_WasmDecoder_CloseChannel"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_CloseChannel"].apply(null, arguments);
- };
- var _WasmDecoder_ConvertFrame2Image = Module["_WasmDecoder_ConvertFrame2Image"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_ConvertFrame2Image"].apply(null, arguments);
- };
- var _WasmDecoder_ReleaseImageData = Module["_WasmDecoder_ReleaseImageData"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_ReleaseImageData"].apply(null, arguments);
- };
- var _WasmDecoder_CreateMP4File = Module["_WasmDecoder_CreateMP4File"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_CreateMP4File"].apply(null, arguments);
- };
- var _WasmDecoder_WriteData = Module["_WasmDecoder_WriteData"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_WriteData"].apply(null, arguments);
- };
- var _WasmDecoder_ReleaseMP4File = Module["_WasmDecoder_ReleaseMP4File"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["WasmDecoder_ReleaseMP4File"].apply(null, arguments);
- };
- var _main = Module["_main"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["main"].apply(null, arguments);
- };
- var _free = Module["_free"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["free"].apply(null, arguments);
- };
- var _malloc = Module["_malloc"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["malloc"].apply(null, arguments);
- };
- var ___errno_location = Module["___errno_location"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["__errno_location"].apply(null, arguments);
- };
- var _fflush = Module["_fflush"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["fflush"].apply(null, arguments);
- };
- var __get_tzname = Module["__get_tzname"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["_get_tzname"].apply(null, arguments);
- };
- var __get_daylight = Module["__get_daylight"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["_get_daylight"].apply(null, arguments);
- };
- var __get_timezone = Module["__get_timezone"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["_get_timezone"].apply(null, arguments);
- };
- var _setThrew = Module["_setThrew"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["setThrew"].apply(null, arguments);
- };
- var __ZSt18uncaught_exceptionv = Module["__ZSt18uncaught_exceptionv"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["_ZSt18uncaught_exceptionv"].apply(null, arguments);
- };
- var stackSave = Module["stackSave"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["stackSave"].apply(null, arguments);
- };
- var stackAlloc = Module["stackAlloc"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["stackAlloc"].apply(null, arguments);
- };
- var stackRestore = Module["stackRestore"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["stackRestore"].apply(null, arguments);
- };
- var __growWasmMemory = Module["__growWasmMemory"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["__growWasmMemory"].apply(null, arguments);
- };
- var dynCall_ii = Module["dynCall_ii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_ii"].apply(null, arguments);
- };
- var dynCall_viiiii = Module["dynCall_viiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiii"].apply(null, arguments);
- };
- var dynCall_viiiiiifi = Module["dynCall_viiiiiifi"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiiiifi"].apply(null, arguments);
- };
- var dynCall_viiii = Module["dynCall_viiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiii"].apply(null, arguments);
- };
- var dynCall_viii = Module["dynCall_viii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viii"].apply(null, arguments);
- };
- var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_iiiiiii"].apply(null, arguments);
- };
- var dynCall_iiiiii = Module["dynCall_iiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_iiiiii"].apply(null, arguments);
- };
- var dynCall_vii = Module["dynCall_vii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_vii"].apply(null, arguments);
- };
- var dynCall_iii = Module["dynCall_iii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_iii"].apply(null, arguments);
- };
- var dynCall_iiii = Module["dynCall_iiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_iiii"].apply(null, arguments);
- };
- var dynCall_viiiiii = Module["dynCall_viiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiiii"].apply(null, arguments);
- };
- var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiiiiiii"].apply(null, arguments);
- };
- var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiiiiii"].apply(null, arguments);
- };
- var dynCall_iiiii = Module["dynCall_iiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_iiiii"].apply(null, arguments);
- };
- var dynCall_viiiiiiiiiiiiii = Module["dynCall_viiiiiiiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiiiiiiiiiiii"].apply(null, arguments);
- };
- var dynCall_viiiiiiiiiii = Module["dynCall_viiiiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiiiiiiiii"].apply(null, arguments);
- };
- var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiiiii"].apply(null, arguments);
- };
- var dynCall_viiiiiiiiiiii = Module["dynCall_viiiiiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiiiiiiiiii"].apply(null, arguments);
- };
- var dynCall_vi = Module["dynCall_vi"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_vi"].apply(null, arguments);
- };
- var dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_iiiiiiiii"].apply(null, arguments);
- };
- var dynCall_viiiifii = Module["dynCall_viiiifii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiifii"].apply(null, arguments);
- };
- var dynCall_fii = Module["dynCall_fii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_fii"].apply(null, arguments);
- };
- var dynCall_viiiiiiiiii = Module["dynCall_viiiiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiiiiiiiii"].apply(null, arguments);
- };
- var dynCall_dd = Module["dynCall_dd"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_dd"].apply(null, arguments);
- };
- var dynCall_viifi = Module["dynCall_viifi"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viifi"].apply(null, arguments);
- };
- var dynCall_fiii = Module["dynCall_fiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_fiii"].apply(null, arguments);
- };
- var dynCall_viidi = Module["dynCall_viidi"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viidi"].apply(null, arguments);
- };
- var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_iiiiiiii"].apply(null, arguments);
- };
- var dynCall_did = Module["dynCall_did"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_did"].apply(null, arguments);
- };
- var dynCall_v = Module["dynCall_v"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_v"].apply(null, arguments);
- };
- var dynCall_viiijj = Module["dynCall_viiijj"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_viiijj"].apply(null, arguments);
- };
- var dynCall_iiiiiiidiiddii = Module["dynCall_iiiiiiidiiddii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_iiiiiiidiiddii"].apply(null, arguments);
- };
- var dynCall_jij = Module["dynCall_jij"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_jij"].apply(null, arguments);
- };
- var dynCall_jii = Module["dynCall_jii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_jii"].apply(null, arguments);
- };
- var dynCall_jiji = Module["dynCall_jiji"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_jiji"].apply(null, arguments);
- };
- var dynCall_iidiiii = Module["dynCall_iidiiii"] = function () {
- assert(runtimeInitialized, "you need to wait for the runtime to be ready (e.g. wait for main() to be called)");
- assert(!runtimeExited, "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");
- return Module["asm"]["dynCall_iidiiii"].apply(null, arguments);
- };
- Module["asm"] = asm;
- if (!Object.getOwnPropertyDescriptor(Module, "intArrayFromString")) Module["intArrayFromString"] = function () {
- abort("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "intArrayToString")) Module["intArrayToString"] = function () {
- abort("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- Module["ccall"] = ccall;
- Module["cwrap"] = cwrap;
- if (!Object.getOwnPropertyDescriptor(Module, "setValue")) Module["setValue"] = function () {
- abort("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "getValue")) Module["getValue"] = function () {
- abort("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "allocate")) Module["allocate"] = function () {
- abort("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "getMemory")) Module["getMemory"] = function () {
- abort("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "AsciiToString")) Module["AsciiToString"] = function () {
- abort("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "stringToAscii")) Module["stringToAscii"] = function () {
- abort("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "UTF8ArrayToString")) Module["UTF8ArrayToString"] = function () {
- abort("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "UTF8ToString")) Module["UTF8ToString"] = function () {
- abort("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF8Array")) Module["stringToUTF8Array"] = function () {
- abort("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF8")) Module["stringToUTF8"] = function () {
- abort("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF8")) Module["lengthBytesUTF8"] = function () {
- abort("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "UTF16ToString")) Module["UTF16ToString"] = function () {
- abort("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF16")) Module["stringToUTF16"] = function () {
- abort("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF16")) Module["lengthBytesUTF16"] = function () {
- abort("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "UTF32ToString")) Module["UTF32ToString"] = function () {
- abort("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF32")) Module["stringToUTF32"] = function () {
- abort("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF32")) Module["lengthBytesUTF32"] = function () {
- abort("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "allocateUTF8")) Module["allocateUTF8"] = function () {
- abort("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "stackTrace")) Module["stackTrace"] = function () {
- abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "addOnPreRun")) Module["addOnPreRun"] = function () {
- abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "addOnInit")) Module["addOnInit"] = function () {
- abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "addOnPreMain")) Module["addOnPreMain"] = function () {
- abort("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "addOnExit")) Module["addOnExit"] = function () {
- abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "addOnPostRun")) Module["addOnPostRun"] = function () {
- abort("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "writeStringToMemory")) Module["writeStringToMemory"] = function () {
- abort("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "writeArrayToMemory")) Module["writeArrayToMemory"] = function () {
- abort("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "writeAsciiToMemory")) Module["writeAsciiToMemory"] = function () {
- abort("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "addRunDependency")) Module["addRunDependency"] = function () {
- abort("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "removeRunDependency")) Module["removeRunDependency"] = function () {
- abort("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "ENV")) Module["ENV"] = function () {
- abort("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "FS")) Module["FS"] = function () {
- abort("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "FS_createFolder")) Module["FS_createFolder"] = function () {
- abort("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "FS_createPath")) Module["FS_createPath"] = function () {
- abort("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "FS_createDataFile")) Module["FS_createDataFile"] = function () {
- abort("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "FS_createPreloadedFile")) Module["FS_createPreloadedFile"] = function () {
- abort("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "FS_createLazyFile")) Module["FS_createLazyFile"] = function () {
- abort("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "FS_createLink")) Module["FS_createLink"] = function () {
- abort("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "FS_createDevice")) Module["FS_createDevice"] = function () {
- abort("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "FS_unlink")) Module["FS_unlink"] = function () {
- abort("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "GL")) Module["GL"] = function () {
- abort("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "dynamicAlloc")) Module["dynamicAlloc"] = function () {
- abort("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "loadDynamicLibrary")) Module["loadDynamicLibrary"] = function () {
- abort("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "loadWebAssemblyModule")) Module["loadWebAssemblyModule"] = function () {
- abort("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "getLEB")) Module["getLEB"] = function () {
- abort("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "getFunctionTables")) Module["getFunctionTables"] = function () {
- abort("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "alignFunctionTables")) Module["alignFunctionTables"] = function () {
- abort("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "registerFunctions")) Module["registerFunctions"] = function () {
- abort("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- Module["addFunction"] = addFunction;
- if (!Object.getOwnPropertyDescriptor(Module, "removeFunction")) Module["removeFunction"] = function () {
- abort("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "getFuncWrapper")) Module["getFuncWrapper"] = function () {
- abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "prettyPrint")) Module["prettyPrint"] = function () {
- abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "makeBigInt")) Module["makeBigInt"] = function () {
- abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "dynCall")) Module["dynCall"] = function () {
- abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "getCompilerSetting")) Module["getCompilerSetting"] = function () {
- abort("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "stackSave")) Module["stackSave"] = function () {
- abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "stackRestore")) Module["stackRestore"] = function () {
- abort("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "stackAlloc")) Module["stackAlloc"] = function () {
- abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "establishStackSpace")) Module["establishStackSpace"] = function () {
- abort("'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "print")) Module["print"] = function () {
- abort("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "printErr")) Module["printErr"] = function () {
- abort("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "getTempRet0")) Module["getTempRet0"] = function () {
- abort("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "setTempRet0")) Module["setTempRet0"] = function () {
- abort("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- Module["callMain"] = callMain;
- if (!Object.getOwnPropertyDescriptor(Module, "abort")) Module["abort"] = function () {
- abort("'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "Pointer_stringify")) Module["Pointer_stringify"] = function () {
- abort("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- if (!Object.getOwnPropertyDescriptor(Module, "warnOnce")) Module["warnOnce"] = function () {
- abort("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- };
- Module["writeStackCookie"] = writeStackCookie;
- Module["checkStackCookie"] = checkStackCookie;
- Module["abortStackOverflow"] = abortStackOverflow;
- if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_NORMAL")) Object.defineProperty(Module, "ALLOC_NORMAL", {
- configurable: true,
- get: function get() {
- abort("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- }
- });
- if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_STACK")) Object.defineProperty(Module, "ALLOC_STACK", {
- configurable: true,
- get: function get() {
- abort("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- }
- });
- if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_DYNAMIC")) Object.defineProperty(Module, "ALLOC_DYNAMIC", {
- configurable: true,
- get: function get() {
- abort("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- }
- });
- if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_NONE")) Object.defineProperty(Module, "ALLOC_NONE", {
- configurable: true,
- get: function get() {
- abort("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)");
- }
- });
- if (!Object.getOwnPropertyDescriptor(Module, "calledRun")) Object.defineProperty(Module, "calledRun", {
- configurable: true,
- get: function get() {
- abort("'calledRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you");
- }
- });
- var calledRun;
- function ExitStatus(status) {
- this.name = "ExitStatus";
- this.message = "Program terminated with exit(" + status + ")";
- this.status = status;
- }
- var calledMain = false;
- dependenciesFulfilled = function runCaller() {
- if (!calledRun) run();
- if (!calledRun) dependenciesFulfilled = runCaller;
- };
- function callMain(args) {
- assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])');
- assert(__ATPRERUN__.length == 0, "cannot call main when preRun functions remain to be called");
- var entryFunction = Module["_main"];
- var argc = 0;
- var argv = 0;
- try {
- var ret = entryFunction(argc, argv);
- exit(ret, true);
- } catch (e) {
- if (e instanceof ExitStatus) {
- return;
- } else if (e == "SimulateInfiniteLoop") {
- noExitRuntime = true;
- return;
- } else {
- var toLog = e;
- if (e && (typeof e === 'undefined' ? 'undefined' : _typeof(e)) === "object" && e.stack) {
- toLog = [e, e.stack];
- }
- err("exception thrown: " + toLog);
- quit_(1, e);
- }
- } finally {
- calledMain = true;
- }
- }
- function run(args) {
- args = args || arguments_;
- if (runDependencies > 0) {
- return;
- }
- writeStackCookie();
- preRun();
- if (runDependencies > 0) return;
- function doRun() {
- if (calledRun) return;
- calledRun = true;
- if (ABORT) return;
- initRuntime();
- preMain();
- if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"]();
- if (shouldRunNow) callMain(args);
- postRun();
- }
- if (Module["setStatus"]) {
- Module["setStatus"]("Running...");
- setTimeout(function () {
- setTimeout(function () {
- Module["setStatus"]("");
- }, 1);
- doRun();
- }, 1);
- } else {
- doRun();
- }
- checkStackCookie();
- }
- Module["run"] = run;
- function checkUnflushedContent() {
- var print = out;
- var printErr = err;
- var has = false;
- out = err = function err(x) {
- has = true;
- };
- try {
- var flush = Module["_fflush"];
- if (flush) flush(0);
- ["stdout", "stderr"].forEach(function (name) {
- var info = FS.analyzePath("/dev/" + name);
- if (!info) return;
- var stream = info.object;
- var rdev = stream.rdev;
- var tty = TTY.ttys[rdev];
- if (tty && tty.output && tty.output.length) {
- has = true;
- }
- });
- } catch (e) {}
- out = print;
- err = printErr;
- if (has) {
- warnOnce("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.");
- }
- }
- function exit(status, implicit) {
- checkUnflushedContent();
- if (implicit && noExitRuntime && status === 0) {
- return;
- }
- if (noExitRuntime) {
- if (!implicit) {
- err("program exited (with status: " + status + "), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)");
- }
- } else {
- ABORT = true;
- EXITSTATUS = status;
- exitRuntime();
- if (Module["onExit"]) Module["onExit"](status);
- }
- quit_(status, new ExitStatus(status));
- }
- if (Module["preInit"]) {
- if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];
- while (Module["preInit"].length > 0) {
- Module["preInit"].pop()();
- }
- }
- var shouldRunNow = true;
- if (Module["noInitialRun"]) shouldRunNow = false;
- noExitRuntime = true;
- run();
- }
- var ModuleInitialized = false;
- var VideoWorker = function VideoWorker(self) {
- //console.log("new VideoWorker.js");
- self.isFlvStream = true;
- self.enableAudio = false;
- self.pause = false; //HLS���õ���ͣ,��Ϊ���������DecodeWorker��
- self.exitFlag = false;
- self.needMoreData = false;
- self.wasmDecoderId = -1;
- self.wasmInitVideoDecoder = false;
- self.wasmInitAudioDecoder = false;
- self.videoQueue = [];
- self.audioQueue = [];
- self.videoFrameNum = 0;
- self.videoRawData = null;
- self.audioRawData = null;
- self.videoPacketData = null;
- self.audioPacketData = null;
- self.findKeyFrame = true;
- self.videoIntervalHandle = -1;
- self.videoIntervalValue = 40;
- self.audioIntervalHandle = -1;
- self.audioIntervalValue = 80;
- self.lastPTS = 0;
- self.ptsCount = 0;
- self.maxCacheFrameNum = 0;
- self.calcDelayFlag = true;
- self.procVideoFlag = false;
- self.procAudioFlag = false;
- var createBuf = function createBuf() {
- if (self.videoRawData == null) {
- self.videoRawData = Module._malloc(1920 * 1080 * 4);
- //self.videoRawData = Module._malloc(4000 * 3000 * 2);
- }
- if (self.audioRawData == null) {
- self.audioRawData = Module._malloc(1024 * 16);
- }
- if (self.videoPacketData == null) {
- self.videoPacketData = Module._malloc(1024 * 1024);
- }
- if (self.audioPacketData == null) {
- self.audioPacketData = Module._malloc(1024 * 2);
- }
- if (self.wasmDecoderId < 0) {
- self.wasmDecoderId = Module._WasmDecoder_OpenChannel();
- //console.log("openChannel: " + self.wasmDecoderId);
- }
- };
- var deleteBuf = function deleteBuf() {
- if (self.wasmDecoderId > 0) {
- //console.log("closeChannel: " + self.wasmDecoderId);
- Module._WasmDecoder_CloseChannel(self.wasmDecoderId);
- self.wasmDecoderId = -1;
- }
- if (self.videoRawData != null) {
- Module._free(self.videoRawData);
- self.videoRawData = null;
- }
- if (self.audioRawData != null) {
- Module._free(self.audioRawData);
- self.audioRawData = null;
- }
- if (self.videoPacketData != null) {
- Module._free(self.videoPacketData);
- self.videoPacketData = null;
- }
- if (self.audioPacketData != null) {
- Module._free(self.audioPacketData);
- self.audioPacketData = null;
- }
- };
- var onProcStreamData = function onProcStreamData(mediaType, codecId, frameType, playTimeSecs, samplerate, channelNum, bitPerSample, pbuf, bufsize) {
- //console.log("DecodeWorker: onProcStreamData:" + bufsize);
- //console.log("frame data: " + pbuf);
- if (self.procVideoFlag) return -1;
- self.procVideoFlag = true;
- Module.HEAPU8.set(pbuf, self.videoPacketData);
- var videoRenderFormat = __WEBPACK_IMPORTED_MODULE_0__common__["n" /* tVideoRenderYV12 */];
- var outputFormat = 0;
- if (videoRenderFormat == __WEBPACK_IMPORTED_MODULE_0__common__["n" /* tVideoRenderYV12 */]) outputFormat = 0;else if (videoRenderFormat == __WEBPACK_IMPORTED_MODULE_0__common__["l" /* tVideoRenderRGB */]) outputFormat = 2;else if (videoRenderFormat == __WEBPACK_IMPORTED_MODULE_0__common__["m" /* tVideoRenderRGBA */]) outputFormat = 26;
- //if (self.isFlvStream) {
- if (0) {
- var first = 1;
- while (1) {
- var outputDataSize = 0;
- var decodeMediaType = 1;
- if (self.enableAudio) decodeMediaType = 3;
- var ptr = Module._WasmDecoder_InputFlvStreamAndDecode(self.wasmDecoderId, first == 1 ? self.videoPacketData : 0, first == 1 ? bufsize : 0, self.videoRawData, outputFormat, decodeMediaType);
- first = 0;
- if (ptr != 0 && ptr != null) {
- var _mediaType = Module.HEAPU32[ptr / 4],
- mediaCodec = Module.HEAPU32[ptr / 4 + 1],
- frameLength = Module.HEAPU32[ptr / 4 + 2],
- vidFrameType = Module.HEAPU32[ptr / 4 + 3],
- vidWidth = Module.HEAPU32[ptr / 4 + 4],
- vidHeight = Module.HEAPU32[ptr / 4 + 5],
- vidBitrate = Module.HEAPU32[ptr / 4 + 6],
- vidFps = Module.HEAPU32[ptr / 4 + 7],
- vidInterval = Module.HEAPU32[ptr / 4 + 8],
- audChannel = Module.HEAPU32[ptr / 4 + 9],
- audSampleRate = Module.HEAPU32[ptr / 4 + 10],
- audBitPerSample = Module.HEAPU32[ptr / 4 + 11],
- audBitrate = Module.HEAPU32[ptr / 4 + 12],
- timestamp = Module.HEAPU32[ptr / 4 + 13];
- if (frameLength < 1) break;
- //console.log("decode ok....");
- if (_mediaType == 1) //Video
- {
- //console.log("VIDEO");
- //procVideoFrame++;
- /*
- if (frameLength > this.totalMaxVideoFrameSize) {
- this.totalMaxVideoFrameSize = frameLength;
- }
- if (vidFrameType == 1 && this.printKeyframe) {
- MediaWorkerLog("VIDEO MaxFrameSize: " + this.totalMaxVideoFrameSize + " framesize[" + frameLength + "]");
- }
- */
- /*
- if (this.printStatInfo) {
- var now = new Date();
- var currentTime = now.getSeconds();
- if (currentTime == this.tmpTime) {
- this.tmpFps++;
- this.tmpBitrate += frameLength;
- }
- else {
- this.tmpTime = currentTime;
- this.fps = this.tmpFps;
- this.bitrate = this.tmpBitrate;
- var codecStr = "";
- if (mediaCodec == 0xAE) codecStr = "H265";
- else if (mediaCodec == 0x1B) codecStr = "H264";
- var bps = this.tmpBitrate / 1024 / 1024 * 8;
- bps = bps.toFixed(2);
- if (this.fps === undefined) this.fps = 1;
- if (bps === 'NaN') {
- bps = frameLength * 8 / 1024 / 1024;
- bps = bps.toFixed(2);
- }
- common.MediaWorkerLog("CH[" + this.wasmDecoderId + "] " + codecStr + " [" + vidWidth + " x " + vidHeight + "] FPS[" + this.fps + "] Bitrate[" + bps + "Mbps]");
- //common.MediaWorkerLog(codecStr + " [" + vidWidth + " x " + vidHeight + "] FPS[" + this.fps + "] Bitrate[" + bps + "Mbps]");
- this.tmpFps = 1;
- this.tmpBitrate = frameLength;
- }
- }
- */
- if (outputFormat == 0) outputDataSize = vidWidth * vidHeight * 3 / 2;else if (outputFormat == 2) outputDataSize = vidWidth * vidHeight * 3;else if (outputFormat == 25) outputDataSize = vidWidth * vidHeight * 4;else if (outputFormat == 26) outputDataSize = vidWidth * vidHeight * 4;
- var outArray = Module.HEAPU8.subarray(self.videoRawData, self.videoRawData + outputDataSize);
- var data = new Uint8Array(outArray);
- var objData = {
- cmd: common.tFrameData,
- workerId: common.DECODE_WORKER_ID,
- mediaType: 1,
- ts: timestamp,
- width: vidWidth,
- height: vidHeight,
- framesize: frameLength,
- rawsize: outputDataSize,
- fps: vidFps,
- interval: vidInterval,
- dat: data
- };
- self.postMessage(objData, [objData.dat.buffer]);
- } else if (_mediaType == 2) //Audio
- {
- if (self.enableAudio) {
- var outArray = Module.HEAPU8.subarray(self.videoRawData, self.videoRawData + frameLength);
- var data = new Uint8Array(outArray);
- var sampleFmt = 0; //default: 8bits
- if (audBitPerSample == 8) sampleFmt = 0;else if (audBitPerSample == 16) sampleFmt = 1;else if (audBitPerSample == 32) sampleFmt = 2;
- var objData = {
- cmd: common.tFrameData,
- workerId: common.DECODE_WORKER_ID,
- mediaType: 2,
- fmt: sampleFmt,
- ch: audChannel,
- samplerate: audSampleRate,
- ts: timestamp,
- framesize: frameLength,
- dat: data
- };
- self.postMessage(objData, [objData.dat.buffer]);
- }
- }
- } else {
- break;
- }
- }
- } else {
- //Decoder
- //mediaType, codecId, samplerate, channelNum, bitPerSample, pbuf, bufsize
- if (mediaType == 1) {
- if (self.videoFrameNum > 0) self.videoFrameNum -= 1;
- }
- if (mediaType == 1 && !self.wasmInitVideoDecoder && frameType) {
- //open video decoder..
- var ret = Module._WasmDecoder_OpenVideoDecoder(self.wasmDecoderId, codecId, 0, 0, outputFormat);
- if (ret == 0) self.wasmInitVideoDecoder = true;
- } else if (mediaType == 2 && !self.wasmInitAudioDecoder) {
- //open audio decoder
- var ret = Module._WasmDecoder_OpenAudioDecoder(self.wasmDecoderId, codecId, samplerate, bitPerSample, channelNum);
- if (ret == 0) self.wasmInitAudioDecoder = true;
- }
- var _ptr = null;
- if (mediaType == 1 && self.wasmInitVideoDecoder) {
- _ptr = Module._WasmDecoder_DecodeVideoFrame(self.wasmDecoderId, self.videoPacketData, bufsize, 0, 0, self.videoRawData, 0);
- } else if (mediaType == 2 && self.wasmInitAudioDecoder && self.enableAudio) {
- _ptr = Module._WasmDecoder_DecodeAudioFrame(self.wasmDecoderId, self.videoPacketData, bufsize, self.audioRawData, 0);
- }
- if (_ptr != 0 && _ptr != null) {
- var _mediaType2 = Module.HEAPU32[_ptr / 4],
- _mediaCodec = Module.HEAPU32[_ptr / 4 + 1],
- _frameLength = Module.HEAPU32[_ptr / 4 + 2],
- _vidFrameType = Module.HEAPU32[_ptr / 4 + 3],
- _vidWidth = Module.HEAPU32[_ptr / 4 + 4],
- _vidHeight = Module.HEAPU32[_ptr / 4 + 5],
- _vidBitrate = Module.HEAPU32[_ptr / 4 + 6],
- _vidFps = Module.HEAPU32[_ptr / 4 + 7],
- _vidInterval = Module.HEAPU32[_ptr / 4 + 8],
- _audChannel = Module.HEAPU32[_ptr / 4 + 9],
- _audSampleRate = Module.HEAPU32[_ptr / 4 + 10],
- _audBitPerSample = Module.HEAPU32[_ptr / 4 + 11],
- _audBitrate = Module.HEAPU32[_ptr / 4 + 12],
- _timestamp = Module.HEAPU32[_ptr / 4 + 13];
- if (_frameLength < 1) {
- //console.log("framelength<1: " + frameLength);
- self.procVideoFlag = false;
- return;
- }
- if (_mediaType2 == 1) {
- //Video
- //procVideoFrame++;
- if (outputFormat == 0) outputDataSize = _vidWidth * _vidHeight * 3 / 2;else if (outputFormat == 2) outputDataSize = _vidWidth * _vidHeight * 3;else if (outputFormat == 25) outputDataSize = _vidWidth * _vidHeight * 4;else if (outputFormat == 26) outputDataSize = _vidWidth * _vidHeight * 4;
- var outArray = Module.HEAPU8.subarray(self.videoRawData, self.videoRawData + outputDataSize);
- var data = new Uint8Array(outArray);
- var objData = {
- cmd: __WEBPACK_IMPORTED_MODULE_0__common__["e" /* tFrameData */],
- workerId: __WEBPACK_IMPORTED_MODULE_0__common__["a" /* DECODE_WORKER_ID */],
- mediaType: 1,
- ts: _timestamp,
- width: _vidWidth,
- height: _vidHeight,
- framesize: bufsize,
- rawsize: outputDataSize,
- fps: _vidFps,
- interval: _vidInterval,
- playTimeSec: playTimeSecs,
- frameNum: self.videoFrameNum,
- dat: data
- };
- self.postMessage(objData, [objData.dat.buffer]);
- if (_vidWidth >= 1920 && _vidHeight >= 720) {
- self.procVideoFlag = false;
- return 1;
- }
- } else if (_mediaType2 == 2) {
- var outArray = Module.HEAPU8.subarray(self.audioRawData, self.audioRawData + _frameLength);
- var data = new Uint8Array(outArray);
- var sampleFmt = 0; //default: 8bits
- if (_audBitPerSample == 8) sampleFmt = 0;else if (_audBitPerSample == 16) sampleFmt = 1;else if (_audBitPerSample == 32) sampleFmt = 2;
- var objData = {
- cmd: __WEBPACK_IMPORTED_MODULE_0__common__["e" /* tFrameData */],
- workerId: __WEBPACK_IMPORTED_MODULE_0__common__["a" /* DECODE_WORKER_ID */],
- mediaType: 2,
- fmt: sampleFmt,
- ch: _audChannel,
- samplerate: _audSampleRate,
- ts: _timestamp,
- framesize: _frameLength,
- dat: data
- };
- self.postMessage(objData, [objData.dat.buffer]);
- }
- }
- }
- self.procVideoFlag = false;
- return 0;
- };
- var onProcAudioStreamData = function onProcAudioStreamData(codecId, samplerate, channelNum, bitPerSample, pbuf, bufsize) {
- Module.HEAPU8.set(pbuf, self.audioPacketData);
- {
- //Decoder
- if (!self.wasmInitAudioDecoder) {
- //channelNum = 2;
- //console.log("Audio samplerate[" + samplerate + "] bitPerSample[" + bitPerSample + "] ChannelNum: " + channelNum);
- var ret = Module._WasmDecoder_OpenAudioDecoder(self.wasmDecoderId, codecId, samplerate, bitPerSample, channelNum);
- if (ret == 0) self.wasmInitAudioDecoder = true;
- }
- var ptr = null;
- if (self.wasmInitAudioDecoder && self.enableAudio) {
- ptr = Module._WasmDecoder_DecodeAudioFrame(self.wasmDecoderId, self.audioPacketData, bufsize, self.audioRawData, 0);
- }
- if (ptr != 0 && ptr != null) {
- var mediaType = Module.HEAPU32[ptr / 4],
- mediaCodec = Module.HEAPU32[ptr / 4 + 1],
- frameLength = Module.HEAPU32[ptr / 4 + 2],
- vidFrameType = Module.HEAPU32[ptr / 4 + 3],
- vidWidth = Module.HEAPU32[ptr / 4 + 4],
- vidHeight = Module.HEAPU32[ptr / 4 + 5],
- vidBitrate = Module.HEAPU32[ptr / 4 + 6],
- vidFps = Module.HEAPU32[ptr / 4 + 7],
- vidInterval = Module.HEAPU32[ptr / 4 + 8],
- audChannel = Module.HEAPU32[ptr / 4 + 9],
- audSampleRate = Module.HEAPU32[ptr / 4 + 10],
- audBitPerSample = Module.HEAPU32[ptr / 4 + 11],
- audBitrate = Module.HEAPU32[ptr / 4 + 12],
- timestamp = Module.HEAPU32[ptr / 4 + 13];
- if (frameLength < 1) {
- //console.log("framelength<1: " + frameLength);
- return;
- }
- var outArray = Module.HEAPU8.subarray(self.audioRawData, self.audioRawData + frameLength);
- var data = new Uint8Array(outArray);
- var sampleFmt = 0; //default: 8bits
- if (audBitPerSample == 8) sampleFmt = 0;else if (audBitPerSample == 16) sampleFmt = 1;else if (audBitPerSample == 32) sampleFmt = 2;
- //audChannel = 2;
- //console.log("Audio: sampleFmt[" + sampleFmt + "] + ch[" + audChannel + "]");
- var objData = {
- cmd: __WEBPACK_IMPORTED_MODULE_0__common__["e" /* tFrameData */],
- workerId: __WEBPACK_IMPORTED_MODULE_0__common__["a" /* DECODE_WORKER_ID */],
- mediaType: 2,
- fmt: sampleFmt,
- ch: audChannel,
- samplerate: audSampleRate,
- ts: timestamp,
- framesize: frameLength,
- dat: data
- };
- self.postMessage(objData, [objData.dat.buffer]);
- }
- }
- };
- var VideoDecodeLoop = function VideoDecodeLoop() {
- if (self.wasmDecoderId < 0) {
- createBuf(); //����buf
- //console.log("wasm already loaded... Create buff...");
- }
- if (self.wasmDecoderId > 0) {
- if (self.videoQueue.length > 0) {
- //console.log("videoQueue.length: " + self.videoQueue.length);
- //if (self.calcDelayFlag && self.maxCacheFrameNum < self.videoQueue.length) {
- // self.maxCacheFrameNum = self.videoQueue.length;
- //}
- //else if (self.calcDelayFlag){
- // self.calcDelayFlag = false;
- // console.log("videoQueue.length: " + self.maxCacheFrameNum + " interval:" + self.videoIntervalValue);
- //}
- //����ͣ״̬
- if (!self.pause) {
- var frame = null;
- var ret = -1;
- if (self.isFlvStream) {
- //FLV ����֡��̫��������ǰGOP
- //���ҹؼ�֡
- if (self.findKeyFrame) {
- while (self.videoQueue.length > 0) {
- frame = self.videoQueue[0];
- //console.log("frameCount" + self.videoQueue.length + " drop frame: " + frame.dat.length);
- if (frame.frameType && self.videoQueue.length < 60) {
- self.findKeyFrame = false;
- break;
- }
- self.videoQueue.shift();
- }
- } else {
- if (self.videoQueue.length > 60) {
- self.findKeyFrame = true;
- }
- }
- if (self.videoQueue.length > 0) {
- if (frame == null) {
- frame = self.videoQueue[0];
- }
- //if (frame.frameType) {
- // console.log("videoQueue.length: " + self.videoQueue.length);
- //}
- ret = onProcStreamData(frame.mediaType, frame.codecId, frame.frameType, frame.playTimeSec, frame.samplerate, frame.channelNum, frame.bitPerSample, frame.dat, frame.dat.length);
- }
- } else {
- frame = self.videoQueue[0];
- ret = onProcStreamData(frame.mediaType, frame.codecId, frame.frameType, frame.playTimeSec, frame.samplerate, frame.channelNum, frame.bitPerSample, frame.dat, frame.dat.length);
- }
- if (ret >= 0) {
- self.videoQueue.shift();
- }
- //if (ret === 1 && self.videoQueue.length > self.maxCacheFrameNum && (self.videoQueue.length % 10 == 0)) {
- if (self.videoQueue.length > self.maxCacheFrameNum && self.videoQueue.length % 20 == 0) {
- //console.log("videoQueue.length: " + self.videoQueue.length + " maxCacheFrameNum:" + self.maxCacheFrameNum);
- //if (self.videoIntervalValue > 5) {
- //updateIntervalTime(self.videoIntervalValue - 5);
- //}
- //updateIntervalTime(20);
- }
- }
- }
- }
- return;
- };
- var HlsAudioDecodeLoop = function HlsAudioDecodeLoop() {
- if (self.wasmDecoderId < 0) {
- return;
- }
- if (self.wasmDecoderId > 0) {
- while (self.audioQueue.length > 0 && !self.pause) {
- //if (self.audioQueue.length > 0) {
- //console.log("audioQueue.length: " + self.audioQueue.length);
- //����ͣ״̬
- if (!self.pause) {
- var frame = self.audioQueue[0];
- if (self.enableAudio) {
- onProcAudioStreamData(frame.codecId, frame.samplerate, frame.channelNum, frame.bitPerSample, frame.dat, frame.dat.length);
- }
- self.audioQueue.shift();
- }
- }
- }
- return;
- };
- //�����
- Module.onRuntimeInitialized = function () {
- //console.log('WASM initialized done!');
- //������Ƶ����
- if (self.videoIntervalHandle < 0) {
- self.videoIntervalHandle = setInterval(VideoDecodeLoop, self.videoIntervalValue);
- }
- //if (self.isFlvStream) {
- //������Ƶ����
- if (self.audioIntervalHandle < 0) {}
- //self.audioIntervalHandle = setInterval(HlsAudioDecodeLoop, self.audioIntervalValue);
- //}
- var objData = {
- cmd: __WEBPACK_IMPORTED_MODULE_0__common__["d" /* tDecoderWorkerStartup */]
- };
- self.postMessage(objData);
- ModuleInitialized = true;
- };
- Module.onExit = function () {
- //console.log("Module exit...");
- };
- var updateIntervalTime = function updateIntervalTime(interval) {
- if (ModuleInitialized) {
- var iVal = interval;
- if (iVal < 5 || iVal > 500) {
- iVal = 40;
- }
- if (iVal != self.videoIntervalValue) {
- if (self.videoIntervalHandle >= 0) {
- clearInterval(self.videoIntervalHandle);
- self.videoIntervalHandle = -1;
- }
- self.videoIntervalValue = Math.floor(iVal);
- //self.videoIntervalHandle = setInterval(VideoDecodeLoop, iVal > 15 ? iVal - 15 : self.videoIntervalValue);
- self.videoIntervalHandle = setInterval(VideoDecodeLoop, self.videoIntervalValue);
- //console.log("SetInterval: " + self.videoIntervalValue);
- }
- }
- };
- var calcIntervalTime = function calcIntervalTime(pts) {
- if (pts > self.lastPTS) {
- if (self.lastPTS > 0) {
- if (self.videoQueue.length % 5 == 0) {
- var interval = self.ptsCount / 5;
- if (self.videoQueue.length <= self.maxCacheFrameNum) {
- updateIntervalTime(interval);
- //console.log("Update interval: " + interval);
- }
- self.ptsCount = pts - self.lastPTS;
- } else {
- self.ptsCount += pts - self.lastPTS;
- }
- self.lastPTS = pts;
- } else {
- self.lastPTS = pts;
- self.ptsCount = 40;
- }
- } else {
- self.lastPTS = pts;
- self.ptsCount = 40;
- }
- };
- self.addEventListener('message', function (ev) {
- var data = ev.data;
- //console.log("videoWorker: recv data.");
- //console.log('render-worker.js demuxer cmd:' + data.cmd);
- switch (data.cmd) {
- case __WEBPACK_IMPORTED_MODULE_0__common__["g" /* tOpenStream */]:
- //console.log("init decoder worker...");
- fullURL = data.url;
- self.isFlvStream = data.isFlv;
- //console.log("wasm path: " + data.url);
- //����wasm module
- if (!ModuleInitialized) {
- LoadWasmModule();
- }
- break;
- case __WEBPACK_IMPORTED_MODULE_0__common__["c" /* tCloseStream */]:
- self.exitFlag = true;
- //HLS������Ὺ����ʱִ�к���, �˴���ر�
- if (self.videoIntervalHandle >= 0) {
- clearInterval(self.videoIntervalHandle);
- self.videoIntervalHandle = -1;
- }
- if (self.audioIntervalHandle >= 0) {
- clearInterval(self.audioIntervalHandle);
- self.audioIntervalHandle = -1;
- }
- deleteBuf(); //�ͷ�buf
- self.videoQueue.clear;
- self.videoQueue = [];
- self.videoQueue.length = 0;
- self.videoFrameNum = 0;
- self.audioQueue.clear;
- self.audioQueue = [];
- self.audioQueue.length = 0;
- delete Module.HEAP8;
- delete Module.HEAP16;
- delete Module.HEAP32;
- delete Module.HEAPF32;
- delete Module.HEAPF64;
- delete Module.HEAPU8;
- delete Module.HEAPU16;
- delete Module.HEAPU32;
- delete Module.buffer;
- Module.HEAP8 = null;
- Module.HEAP16 = null;
- Module.HEAP32 = null;
- Module.HEAPF32 = null;
- Module.HEAPF64 = null;
- Module.HEAPU8 = null;
- Module.HEAPU16 = null;
- Module.HEAPU32 = null;
- Module.buffer = null;
- noExitRuntime = false;
- Module.callMain("exit");
- Module = null;
- var objData = {
- cmd: __WEBPACK_IMPORTED_MODULE_0__common__["c" /* tCloseStream */],
- workerId: __WEBPACK_IMPORTED_MODULE_0__common__["a" /* DECODE_WORKER_ID */]
- };
- self.postMessage(objData);
- close();
- break;
- case __WEBPACK_IMPORTED_MODULE_0__common__["f" /* tOpenAudio */]:
- self.enableAudio = true;
- break;
- case __WEBPACK_IMPORTED_MODULE_0__common__["b" /* tCloseAudio */]:
- self.enableAudio = false;
- break;
- case __WEBPACK_IMPORTED_MODULE_0__common__["h" /* tPauseStream */]:
- //��ͣ
- self.pause = true;
- break;
- case __WEBPACK_IMPORTED_MODULE_0__common__["i" /* tResumeStream */]:
- //�ָ�
- self.pause = false;
- break;
- case __WEBPACK_IMPORTED_MODULE_0__common__["j" /* tSeekStream */]:
- self.videoQueue.clear;
- self.videoQueue.length = 0;
- self.videoFrameNum = 0;
- self.audioQueue.clear;
- self.audioQueue.length = 0;
- break;
- case __WEBPACK_IMPORTED_MODULE_0__common__["k" /* tVidInterval */]:
- //�������ý�����ʱ��
- self.updateIntervalTime(data.interval);
- break;
- case __WEBPACK_IMPORTED_MODULE_0__common__["e" /* tFrameData */]:
- //�Ѽ������
- if (self.exitFlag) {
- //console.log("exit...");
- break;
- }
- if (ModuleInitialized) {
- if (self.isFlvStream) {
- //FLV Stream
- if (self.wasmDecoderId < 0) {
- createBuf(); //����buf
- //console.log("wasm already loaded... Create buff...");
- }
- if (self.wasmDecoderId > 0) {
- if (data.mediaType == 1) {
- if (self.videoIntervalHandle >= 0) {
- self.videoQueue.push(data); //�������ƽ�����
- //let p = new Uint8Array(data);
- //console.log("push data to queue: " + p);
- self.maxCacheFrameNum = 5;
- //calcIntervalTime(data.samplerate); //mediaTypeΪ1ʱ, �˴���samplerateʵ������pts
- }
- } else if (data.mediaType == 2) {
- //������Ƶ����Ž������Ƶ�����
- if (self.audioIntervalHandle >= 0 && !self.findKeyFrame) {
- self.audioQueue.push(data);
- }
- }
- /*
- onProcStreamData(data.mediaType, data.codecId, data.frameType,
- data.playTimeSec,
- data.samplerate, data.channelNum, data.bitPerSample,
- data.dat, data.dat.length);
- */
- } else if (self.videoQueue.length < 100) {
- //���Wasm��ʼ�����, ����������δ��, ��ؼ�֡
- if (data.mediaType == 1 && data.frameType) {
- if (self.videoIntervalHandle >= 0) {
- self.videoQueue.push(data);
- if (self.videoQueue.length >= 5) {
- self.videoQueue.shift();
- }
- }
- }
- }
- } else {
- //HLS stream, ֱ����ӵ�����
- //console.log("HLS Stream... add to queue... queueLength: " + self.videoQueue.length);
- if (data.mediaType == 1) {
- if (self.videoIntervalHandle >= 0) {
- self.videoQueue.push(data);
- calcIntervalTime(data.samplerate); //mediaTypeΪ1ʱ, �˴���samplerateʵ������pts
- //console.log("decode pts2:" + data.playTimeSec);
- self.videoFrameNum += 1;
- if (self.calcDelayFlag && self.maxCacheFrameNum < self.videoQueue.length) {
- self.maxCacheFrameNum = self.videoQueue.length;
- } else if (self.calcDelayFlag) {
- self.calcDelayFlag = false;
- //console.log("videoQueue.length2: " + self.maxCacheFrameNum + " interval:" + self.videoIntervalValue);
- }
- }
- } else if (data.mediaType == 2) {
- //������Ƶ����Ž������Ƶ�����
- if (self.audioIntervalHandle >= 0) {
- self.audioQueue.push(data);
- }
- }
- self.needMoreData = false;
- }
- } else {
- //������
- //Flv: ������ؼ�֡
- if (self.isFlvStream && self.videoQueue.length < 5) {
- if (data.mediaType == 1 && data.frameType) {
- if (self.videoIntervalHandle >= 0) {
- self.videoQueue.push(data);
- if (self.videoQueue.length >= 5) {
- self.videoQueue.shift();
- }
- }
- }
- } else if (!self.isFlvStream && self.videoQueue.length < 1000) {
- if (data.mediaType == 1) {
- if (self.videoIntervalHandle >= 0) {
- self.videoQueue.push(data);
- calcIntervalTime(data.samplerate); //mediaTypeΪ1ʱ, �˴���samplerateʵ������pts
- self.videoFrameNum += 1;
- if (self.calcDelayFlag && self.maxCacheFrameNum < self.videoQueue.length) {
- self.maxCacheFrameNum = self.videoQueue.length;
- } else if (self.calcDelayFlag) {
- self.calcDelayFlag = false;
- //console.log("videoQueue.length: " + self.maxCacheFrameNum + " interval:" + self.videoIntervalValue);
- }
- }
- //console.log("decode pts:" + data.playTimeSec);
- } else if (data.mediaType == 2) {
- if (self.audioIntervalHandle >= 0) {
- self.audioQueue.push(data);
- }
- }
- //console.log("HLS Stream[wasm loading...]... add to queue... queueLength: " + self.videoQueue.length);
- }
- //console.log("wasm not load... videoQueue.length: " + self.videoQueue.length);
- }
- break;
- default:
- break;
- }
- });
- };
- /* unused harmony default export */ var _unused_webpack_default_export = (VideoWorker);
- var EasyPlayerWasmModule = { loadWasmModule: LoadWasmModule, module: Module };
- /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("W2nU"), "/", __webpack_require__("f1Eh")(module), __webpack_require__("EuP9").Buffer))
- /***/ }),
- /***/ "KCUl":
- /***/ (function(module, exports, __webpack_require__) {
- // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js
- var Buffer = __webpack_require__("X3l8").Buffer
- var BN = __webpack_require__("wuSB")
- var EC = __webpack_require__("lZ6o").ec
- var parseKeys = __webpack_require__("jkjm")
- var curves = __webpack_require__("QDfD")
- function verify (sig, hash, key, signType, tag) {
- var pub = parseKeys(key)
- if (pub.type === 'ec') {
- // rsa keys can be interpreted as ecdsa ones in openssl
- if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')
- return ecVerify(sig, hash, pub)
- } else if (pub.type === 'dsa') {
- if (signType !== 'dsa') throw new Error('wrong public key type')
- return dsaVerify(sig, hash, pub)
- } else {
- if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')
- }
- hash = Buffer.concat([tag, hash])
- var len = pub.modulus.byteLength()
- var pad = [1]
- var padNum = 0
- while (hash.length + pad.length + 2 < len) {
- pad.push(0xff)
- padNum++
- }
- pad.push(0x00)
- var i = -1
- while (++i < hash.length) {
- pad.push(hash[i])
- }
- pad = Buffer.from(pad)
- var red = BN.mont(pub.modulus)
- sig = new BN(sig).toRed(red)
- sig = sig.redPow(new BN(pub.publicExponent))
- sig = Buffer.from(sig.fromRed().toArray())
- var out = padNum < 8 ? 1 : 0
- len = Math.min(sig.length, pad.length)
- if (sig.length !== pad.length) out = 1
- i = -1
- while (++i < len) out |= sig[i] ^ pad[i]
- return out === 0
- }
- function ecVerify (sig, hash, pub) {
- var curveId = curves[pub.data.algorithm.curve.join('.')]
- if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))
- var curve = new EC(curveId)
- var pubkey = pub.data.subjectPrivateKey.data
- return curve.verify(hash, sig, pubkey)
- }
- function dsaVerify (sig, hash, pub) {
- var p = pub.data.p
- var q = pub.data.q
- var g = pub.data.g
- var y = pub.data.pub_key
- var unpacked = parseKeys.signature.decode(sig, 'der')
- var s = unpacked.s
- var r = unpacked.r
- checkValue(s, q)
- checkValue(r, q)
- var montp = BN.mont(p)
- var w = s.invm(q)
- var v = g.toRed(montp)
- .redPow(new BN(hash).mul(w).mod(q))
- .fromRed()
- .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())
- .mod(p)
- .mod(q)
- return v.cmp(r) === 0
- }
- function checkValue (b, q) {
- if (b.cmpn(0) <= 0) throw new Error('invalid sig')
- if (b.cmp(q) >= q) throw new Error('invalid sig')
- }
- module.exports = verify
- /***/ }),
- /***/ "KDHK":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const asn1 = exports;
- asn1.bignum = __webpack_require__("geuY");
- asn1.define = __webpack_require__("kJAH").define;
- asn1.base = __webpack_require__("3UtB");
- asn1.constants = __webpack_require__("TnCn");
- asn1.decoders = __webpack_require__("iLJX");
- asn1.encoders = __webpack_require__("SAez");
- /***/ }),
- /***/ "KQ4j":
- /***/ (function(module, exports, __webpack_require__) {
- /*
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
- * in FIPS PUB 180-1
- * Version 2.1a Copyright Paul Johnston 2000 - 2002.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for details.
- */
- var inherits = __webpack_require__("LC74")
- var Hash = __webpack_require__("CzQx")
- var Buffer = __webpack_require__("X3l8").Buffer
- var K = [
- 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0
- ]
- var W = new Array(80)
- function Sha1 () {
- this.init()
- this._w = W
- Hash.call(this, 64, 56)
- }
- inherits(Sha1, Hash)
- Sha1.prototype.init = function () {
- this._a = 0x67452301
- this._b = 0xefcdab89
- this._c = 0x98badcfe
- this._d = 0x10325476
- this._e = 0xc3d2e1f0
- return this
- }
- function rotl1 (num) {
- return (num << 1) | (num >>> 31)
- }
- function rotl5 (num) {
- return (num << 5) | (num >>> 27)
- }
- function rotl30 (num) {
- return (num << 30) | (num >>> 2)
- }
- function ft (s, b, c, d) {
- if (s === 0) return (b & c) | ((~b) & d)
- if (s === 2) return (b & c) | (b & d) | (c & d)
- return b ^ c ^ d
- }
- Sha1.prototype._update = function (M) {
- var W = this._w
- var a = this._a | 0
- var b = this._b | 0
- var c = this._c | 0
- var d = this._d | 0
- var e = this._e | 0
- for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
- for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])
- for (var j = 0; j < 80; ++j) {
- var s = ~~(j / 20)
- var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0
- e = d
- d = c
- c = rotl30(b)
- b = a
- a = t
- }
- this._a = (a + this._a) | 0
- this._b = (b + this._b) | 0
- this._c = (c + this._c) | 0
- this._d = (d + this._d) | 0
- this._e = (e + this._e) | 0
- }
- Sha1.prototype._hash = function () {
- var H = Buffer.allocUnsafe(20)
- H.writeInt32BE(this._a | 0, 0)
- H.writeInt32BE(this._b | 0, 4)
- H.writeInt32BE(this._c | 0, 8)
- H.writeInt32BE(this._d | 0, 12)
- H.writeInt32BE(this._e | 0, 16)
- return H
- }
- module.exports = Sha1
- /***/ }),
- /***/ "KYqO":
- /***/ (function(module, exports) {
- module.exports = {"name":"elliptic","version":"6.5.4","description":"EC cryptography","main":"lib/elliptic.js","files":["lib"],"scripts":{"lint":"eslint lib test","lint:fix":"npm run lint -- --fix","unit":"istanbul test _mocha --reporter=spec test/index.js","test":"npm run lint && npm run unit","version":"grunt dist && git add dist/"},"repository":{"type":"git","url":"git@github.com:indutny/elliptic"},"keywords":["EC","Elliptic","curve","Cryptography"],"author":"Fedor Indutny <fedor@indutny.com>","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^2.0.2","coveralls":"^3.1.0","eslint":"^7.6.0","grunt":"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.5","mocha":"^8.0.1"},"dependencies":{"bn.js":"^4.11.9","brorand":"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1","inherits":"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}
- /***/ }),
- /***/ "KeN/":
- /***/ (function(module, exports, __webpack_require__) {
- var Buffer = __webpack_require__("X3l8").Buffer
- var createHash = __webpack_require__("BVsN")
- var stream = __webpack_require__("bfTY")
- var inherits = __webpack_require__("LC74")
- var sign = __webpack_require__("pn+s")
- var verify = __webpack_require__("KCUl")
- var algorithms = __webpack_require__("ejIc")
- Object.keys(algorithms).forEach(function (key) {
- algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')
- algorithms[key.toLowerCase()] = algorithms[key]
- })
- function Sign (algorithm) {
- stream.Writable.call(this)
- var data = algorithms[algorithm]
- if (!data) throw new Error('Unknown message digest')
- this._hashType = data.hash
- this._hash = createHash(data.hash)
- this._tag = data.id
- this._signType = data.sign
- }
- inherits(Sign, stream.Writable)
- Sign.prototype._write = function _write (data, _, done) {
- this._hash.update(data)
- done()
- }
- Sign.prototype.update = function update (data, enc) {
- if (typeof data === 'string') data = Buffer.from(data, enc)
- this._hash.update(data)
- return this
- }
- Sign.prototype.sign = function signMethod (key, enc) {
- this.end()
- var hash = this._hash.digest()
- var sig = sign(hash, key, this._hashType, this._signType, this._tag)
- return enc ? sig.toString(enc) : sig
- }
- function Verify (algorithm) {
- stream.Writable.call(this)
- var data = algorithms[algorithm]
- if (!data) throw new Error('Unknown message digest')
- this._hash = createHash(data.hash)
- this._tag = data.id
- this._signType = data.sign
- }
- inherits(Verify, stream.Writable)
- Verify.prototype._write = function _write (data, _, done) {
- this._hash.update(data)
- done()
- }
- Verify.prototype.update = function update (data, enc) {
- if (typeof data === 'string') data = Buffer.from(data, enc)
- this._hash.update(data)
- return this
- }
- Verify.prototype.verify = function verifyMethod (key, sig, enc) {
- if (typeof sig === 'string') sig = Buffer.from(sig, enc)
- this.end()
- var hash = this._hash.digest()
- return verify(sig, hash, key, this._signType, this._tag)
- }
- function createSign (algorithm) {
- return new Sign(algorithm)
- }
- function createVerify (algorithm) {
- return new Verify(algorithm)
- }
- module.exports = {
- Sign: createSign,
- Verify: createVerify,
- createSign: createSign,
- createVerify: createVerify
- }
- /***/ }),
- /***/ "LC74":
- /***/ (function(module, exports) {
- if (typeof Object.create === 'function') {
- // implementation from standard node.js 'util' module
- module.exports = function inherits(ctor, superCtor) {
- if (superCtor) {
- ctor.super_ = superCtor
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- })
- }
- };
- } else {
- // old school shim for old browsers
- module.exports = function inherits(ctor, superCtor) {
- if (superCtor) {
- ctor.super_ = superCtor
- var TempCtor = function () {}
- TempCtor.prototype = superCtor.prototype
- ctor.prototype = new TempCtor()
- ctor.prototype.constructor = ctor
- }
- }
- }
- /***/ }),
- /***/ "LYGd":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var Buffer = __webpack_require__("EuP9").Buffer
- var inherits = __webpack_require__("LC74")
- var HashBase = __webpack_require__("yDvu")
- var ARRAY16 = new Array(16)
- var zl = [
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
- 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
- 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
- 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
- ]
- var zr = [
- 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
- 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
- 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
- 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
- 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
- ]
- var sl = [
- 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
- 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
- 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
- 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
- 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
- ]
- var sr = [
- 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
- 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
- 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
- 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
- 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
- ]
- var hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]
- var hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]
- function RIPEMD160 () {
- HashBase.call(this, 64)
- // state
- this._a = 0x67452301
- this._b = 0xefcdab89
- this._c = 0x98badcfe
- this._d = 0x10325476
- this._e = 0xc3d2e1f0
- }
- inherits(RIPEMD160, HashBase)
- RIPEMD160.prototype._update = function () {
- var words = ARRAY16
- for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)
- var al = this._a | 0
- var bl = this._b | 0
- var cl = this._c | 0
- var dl = this._d | 0
- var el = this._e | 0
- var ar = this._a | 0
- var br = this._b | 0
- var cr = this._c | 0
- var dr = this._d | 0
- var er = this._e | 0
- // computation
- for (var i = 0; i < 80; i += 1) {
- var tl
- var tr
- if (i < 16) {
- tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])
- tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])
- } else if (i < 32) {
- tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])
- tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])
- } else if (i < 48) {
- tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])
- tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])
- } else if (i < 64) {
- tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])
- tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])
- } else { // if (i<80) {
- tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])
- tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])
- }
- al = el
- el = dl
- dl = rotl(cl, 10)
- cl = bl
- bl = tl
- ar = er
- er = dr
- dr = rotl(cr, 10)
- cr = br
- br = tr
- }
- // update state
- var t = (this._b + cl + dr) | 0
- this._b = (this._c + dl + er) | 0
- this._c = (this._d + el + ar) | 0
- this._d = (this._e + al + br) | 0
- this._e = (this._a + bl + cr) | 0
- this._a = t
- }
- RIPEMD160.prototype._digest = function () {
- // create padding and handle blocks
- this._block[this._blockOffset++] = 0x80
- if (this._blockOffset > 56) {
- this._block.fill(0, this._blockOffset, 64)
- this._update()
- this._blockOffset = 0
- }
- this._block.fill(0, this._blockOffset, 56)
- this._block.writeUInt32LE(this._length[0], 56)
- this._block.writeUInt32LE(this._length[1], 60)
- this._update()
- // produce result
- var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)
- buffer.writeInt32LE(this._a, 0)
- buffer.writeInt32LE(this._b, 4)
- buffer.writeInt32LE(this._c, 8)
- buffer.writeInt32LE(this._d, 12)
- buffer.writeInt32LE(this._e, 16)
- return buffer
- }
- function rotl (x, n) {
- return (x << n) | (x >>> (32 - n))
- }
- function fn1 (a, b, c, d, e, m, k, s) {
- return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0
- }
- function fn2 (a, b, c, d, e, m, k, s) {
- return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0
- }
- function fn3 (a, b, c, d, e, m, k, s) {
- return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0
- }
- function fn4 (a, b, c, d, e, m, k, s) {
- return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0
- }
- function fn5 (a, b, c, d, e, m, k, s) {
- return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0
- }
- module.exports = RIPEMD160
- /***/ }),
- /***/ "MTIv":
- /***/ (function(module, exports, __webpack_require__) {
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- var stylesInDom = {};
- var memoize = function (fn) {
- var memo;
- return function () {
- if (typeof memo === "undefined") memo = fn.apply(this, arguments);
- return memo;
- };
- };
- var isOldIE = memoize(function () {
- // Test for IE <= 9 as proposed by Browserhacks
- // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
- // Tests for existence of standard globals is to allow style-loader
- // to operate correctly into non-standard environments
- // @see https://github.com/webpack-contrib/style-loader/issues/177
- return window && document && document.all && !window.atob;
- });
- var getElement = (function (fn) {
- var memo = {};
- return function(selector) {
- if (typeof memo[selector] === "undefined") {
- var styleTarget = fn.call(this, selector);
- // Special case to return head of iframe instead of iframe itself
- if (styleTarget instanceof window.HTMLIFrameElement) {
- try {
- // This will throw an exception if access to iframe is blocked
- // due to cross-origin restrictions
- styleTarget = styleTarget.contentDocument.head;
- } catch(e) {
- styleTarget = null;
- }
- }
- memo[selector] = styleTarget;
- }
- return memo[selector]
- };
- })(function (target) {
- return document.querySelector(target)
- });
- var singleton = null;
- var singletonCounter = 0;
- var stylesInsertedAtTop = [];
- var fixUrls = __webpack_require__("mJPh");
- module.exports = function(list, options) {
- if (typeof DEBUG !== "undefined" && DEBUG) {
- if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
- }
- options = options || {};
- options.attrs = typeof options.attrs === "object" ? options.attrs : {};
- // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
- // tags it will allow on a page
- if (!options.singleton) options.singleton = isOldIE();
- // By default, add <style> tags to the <head> element
- if (!options.insertInto) options.insertInto = "head";
- // By default, add <style> tags to the bottom of the target
- if (!options.insertAt) options.insertAt = "bottom";
- var styles = listToStyles(list, options);
- addStylesToDom(styles, options);
- return function update (newList) {
- var mayRemove = [];
- for (var i = 0; i < styles.length; i++) {
- var item = styles[i];
- var domStyle = stylesInDom[item.id];
- domStyle.refs--;
- mayRemove.push(domStyle);
- }
- if(newList) {
- var newStyles = listToStyles(newList, options);
- addStylesToDom(newStyles, options);
- }
- for (var i = 0; i < mayRemove.length; i++) {
- var domStyle = mayRemove[i];
- if(domStyle.refs === 0) {
- for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();
- delete stylesInDom[domStyle.id];
- }
- }
- };
- };
- function addStylesToDom (styles, options) {
- for (var i = 0; i < styles.length; i++) {
- var item = styles[i];
- var domStyle = stylesInDom[item.id];
- if(domStyle) {
- domStyle.refs++;
- for(var j = 0; j < domStyle.parts.length; j++) {
- domStyle.parts[j](item.parts[j]);
- }
- for(; j < item.parts.length; j++) {
- domStyle.parts.push(addStyle(item.parts[j], options));
- }
- } else {
- var parts = [];
- for(var j = 0; j < item.parts.length; j++) {
- parts.push(addStyle(item.parts[j], options));
- }
- stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
- }
- }
- }
- function listToStyles (list, options) {
- var styles = [];
- var newStyles = {};
- for (var i = 0; i < list.length; i++) {
- var item = list[i];
- var id = options.base ? item[0] + options.base : item[0];
- var css = item[1];
- var media = item[2];
- var sourceMap = item[3];
- var part = {css: css, media: media, sourceMap: sourceMap};
- if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});
- else newStyles[id].parts.push(part);
- }
- return styles;
- }
- function insertStyleElement (options, style) {
- var target = getElement(options.insertInto)
- if (!target) {
- throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
- }
- var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
- if (options.insertAt === "top") {
- if (!lastStyleElementInsertedAtTop) {
- target.insertBefore(style, target.firstChild);
- } else if (lastStyleElementInsertedAtTop.nextSibling) {
- target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
- } else {
- target.appendChild(style);
- }
- stylesInsertedAtTop.push(style);
- } else if (options.insertAt === "bottom") {
- target.appendChild(style);
- } else if (typeof options.insertAt === "object" && options.insertAt.before) {
- var nextSibling = getElement(options.insertInto + " " + options.insertAt.before);
- target.insertBefore(style, nextSibling);
- } else {
- throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
- }
- }
- function removeStyleElement (style) {
- if (style.parentNode === null) return false;
- style.parentNode.removeChild(style);
- var idx = stylesInsertedAtTop.indexOf(style);
- if(idx >= 0) {
- stylesInsertedAtTop.splice(idx, 1);
- }
- }
- function createStyleElement (options) {
- var style = document.createElement("style");
- options.attrs.type = "text/css";
- addAttrs(style, options.attrs);
- insertStyleElement(options, style);
- return style;
- }
- function createLinkElement (options) {
- var link = document.createElement("link");
- options.attrs.type = "text/css";
- options.attrs.rel = "stylesheet";
- addAttrs(link, options.attrs);
- insertStyleElement(options, link);
- return link;
- }
- function addAttrs (el, attrs) {
- Object.keys(attrs).forEach(function (key) {
- el.setAttribute(key, attrs[key]);
- });
- }
- function addStyle (obj, options) {
- var style, update, remove, result;
- // If a transform function was defined, run it on the css
- if (options.transform && obj.css) {
- result = options.transform(obj.css);
- if (result) {
- // If transform returns a value, use that instead of the original css.
- // This allows running runtime transformations on the css.
- obj.css = result;
- } else {
- // If the transform function returns a falsy value, don't add this css.
- // This allows conditional loading of css
- return function() {
- // noop
- };
- }
- }
- if (options.singleton) {
- var styleIndex = singletonCounter++;
- style = singleton || (singleton = createStyleElement(options));
- update = applyToSingletonTag.bind(null, style, styleIndex, false);
- remove = applyToSingletonTag.bind(null, style, styleIndex, true);
- } else if (
- obj.sourceMap &&
- typeof URL === "function" &&
- typeof URL.createObjectURL === "function" &&
- typeof URL.revokeObjectURL === "function" &&
- typeof Blob === "function" &&
- typeof btoa === "function"
- ) {
- style = createLinkElement(options);
- update = updateLink.bind(null, style, options);
- remove = function () {
- removeStyleElement(style);
- if(style.href) URL.revokeObjectURL(style.href);
- };
- } else {
- style = createStyleElement(options);
- update = applyToTag.bind(null, style);
- remove = function () {
- removeStyleElement(style);
- };
- }
- update(obj);
- return function updateStyle (newObj) {
- if (newObj) {
- if (
- newObj.css === obj.css &&
- newObj.media === obj.media &&
- newObj.sourceMap === obj.sourceMap
- ) {
- return;
- }
- update(obj = newObj);
- } else {
- remove();
- }
- };
- }
- var replaceText = (function () {
- var textStore = [];
- return function (index, replacement) {
- textStore[index] = replacement;
- return textStore.filter(Boolean).join('\n');
- };
- })();
- function applyToSingletonTag (style, index, remove, obj) {
- var css = remove ? "" : obj.css;
- if (style.styleSheet) {
- style.styleSheet.cssText = replaceText(index, css);
- } else {
- var cssNode = document.createTextNode(css);
- var childNodes = style.childNodes;
- if (childNodes[index]) style.removeChild(childNodes[index]);
- if (childNodes.length) {
- style.insertBefore(cssNode, childNodes[index]);
- } else {
- style.appendChild(cssNode);
- }
- }
- }
- function applyToTag (style, obj) {
- var css = obj.css;
- var media = obj.media;
- if(media) {
- style.setAttribute("media", media)
- }
- if(style.styleSheet) {
- style.styleSheet.cssText = css;
- } else {
- while(style.firstChild) {
- style.removeChild(style.firstChild);
- }
- style.appendChild(document.createTextNode(css));
- }
- }
- function updateLink (link, options, obj) {
- var css = obj.css;
- var sourceMap = obj.sourceMap;
- /*
- If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
- and there is no publicPath defined then lets turn convertToAbsoluteUrls
- on by default. Otherwise default to the convertToAbsoluteUrls option
- directly
- */
- var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;
- if (options.convertToAbsoluteUrls || autoFixUrls) {
- css = fixUrls(css);
- }
- if (sourceMap) {
- // http://stackoverflow.com/a/26603875
- css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
- }
- var blob = new Blob([css], { type: "text/css" });
- var oldSrc = link.href;
- link.href = URL.createObjectURL(blob);
- if(oldSrc) URL.revokeObjectURL(oldSrc);
- }
- /***/ }),
- /***/ "Ml+W":
- /***/ (function(module, exports, __webpack_require__) {
- var Buffer = __webpack_require__("X3l8").Buffer
- module.exports = function (thing, encoding, name) {
- if (Buffer.isBuffer(thing)) {
- return thing
- } else if (typeof thing === 'string') {
- return Buffer.from(thing, encoding)
- } else if (ArrayBuffer.isView(thing)) {
- return Buffer.from(thing.buffer)
- } else {
- throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')
- }
- }
- /***/ }),
- /***/ "MsX9":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return tVideoRenderYV12; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return tVideoRenderRGB; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return tVideoRenderRGBA; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return tOpenStream; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return tCloseStream; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return tFrameData; });
- /* unused harmony export tReOpenStream */
- /* unused harmony export tConnecting */
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return tOpenAudio; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return tCloseAudio; });
- /* unused harmony export tOutputStatInfo */
- /* unused harmony export tGetTsStream */
- /* unused harmony export tGetTsStreamRsp */
- /* unused harmony export tDecode */
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return tVidInterval; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return tPauseStream; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return tResumeStream; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return tSeekStream; });
- /* unused harmony export tMediaInfo */
- /* unused harmony export tGetTsComplete */
- /* unused harmony export tError */
- /* unused harmony export tExcept */
- /* unused harmony export tDisconnect */
- /* unused harmony export tResetMSE */
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return tDecoderWorkerStartup; });
- /* unused harmony export DOWNLOAD_WORKER_ID */
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DECODE_WORKER_ID; });
- /* unused harmony export RENDER_WORKER_ID */
- /* unused harmony export setLiveStreamType */
- /* unused harmony export GetLiveStreamType */
- /* unused harmony export setCodecTypeStr */
- /* unused harmony export setVideoWidth */
- /* unused harmony export setVideoHeight */
- /* unused harmony export setVideoBitrate */
- /* unused harmony export GetCodecTypeStr */
- /* unused harmony export GetVideoWidth */
- /* unused harmony export GetVideoHeight */
- /* unused harmony export GetVideoBitrate */
- /* unused harmony export SetEnableAudio */
- /* unused harmony export GetEnableAudio */
- /* unused harmony export ClearAppendBufferError */
- /* unused harmony export SetAppendBufferError */
- /* unused harmony export GetAppendBufferError */
- /* unused harmony export sleep */
- /* unused harmony export MediaWorkerLog */
- /* unused harmony export getFullURL */
- //显示格式
- var tVideoRenderYV12 = 1;
- var tVideoRenderRGB = 2;
- var tVideoRenderRGBA = 3;
- var tOpenStream = 1;
- var tCloseStream = 2;
- var tFrameData = 3;
- var tReOpenStream = 4;
- var tConnecting = 5;
- var tOpenAudio = 6;
- var tCloseAudio = 7;
- var tOutputStatInfo = 8;
- var tGetTsStream = 10;
- var tGetTsStreamRsp = 11;
- var tDecode = 12;
- var tVidInterval = 13;
- var tPauseStream = 14;
- var tResumeStream = 15;
- var tSeekStream = 16;
- var tMediaInfo = 20;
- var tGetTsComplete = 21;
- var tError = 100;
- var tExcept = 101;
- var tDisconnect = 102;
- var tResetMSE = 103;
- var tDecoderWorkerStartup = 200;
- var DOWNLOAD_WORKER_ID = 1;
- var DECODE_WORKER_ID = 2;
- var RENDER_WORKER_ID = 3;
- var playerIsLiveStream = true;
- var playerVideoCodecStr = "H264";
- var playerVideoWidth = 1920;
- var playerVideoHeight = 1080;
- var playerVideoBitrate = 0;
- var playerEnableAudio = true;
- var appendBufferError = { audio: false, video: false };
- function setLiveStreamType(isLiveStream) {
- playerIsLiveStream = isLiveStream;
- }
- function GetLiveStreamType() {
- return playerIsLiveStream;
- }
- function setCodecTypeStr(str) {
- playerVideoCodecStr = str;
- }
- function setVideoWidth(w) {
- playerVideoWidth = w;
- }
- function setVideoHeight(h) {
- playerVideoHeight = h;
- }
- function setVideoBitrate(b) {
- playerVideoBitrate = b;
- }
- function GetCodecTypeStr() {
- return playerVideoCodecStr;
- }
- function GetVideoWidth() {
- return playerVideoWidth;
- }
- function GetVideoHeight() {
- return playerVideoHeight;
- }
- function GetVideoBitrate() {
- return playerVideoBitrate;
- }
- function SetEnableAudio(b) {
- playerEnableAudio = b;
- }
- function GetEnableAudio() {
- return playerEnableAudio;
- }
- function ClearAppendBufferError() {
- appendBufferError.video = false;
- appendBufferError.audio = false;
- }
- function SetAppendBufferError(type) {
- if (type === 'video') {
- appendBufferError.video = true;
- } else if (type === 'audio') {
- appendBufferError.audio = true;
- }
- }
- function GetAppendBufferError() {
- return appendBufferError;
- }
- function sleep(ms) {
- return new Promise(function (resolve) {
- return setTimeout(resolve, ms);
- });
- }
- function MediaWorkerLog(str) {
- var now = new Date();
- var year = now.getFullYear();
- var month = now.getMonth() + 1;
- var date = now.getDate();
- var day = now.getDay(); //得到周几
- var hour = now.getHours(); //得到小时
- var minu = now.getMinutes(); //得到分钟
- var sec = now.getSeconds(); //得到秒
- var _time = "";
- _time = year + "-" + month + "-" + date + " " + hour + ":" + minu + ":" + sec;
- console.log("[" + _time + "]: " + str);
- }
- function getFullURL() {
- var query = window.location.href;
- var param_arr = query.split("/");
- var path = "";
- //for (var i = 0; i < param_arr.length - 1; i++) {
- for (var i = 0; i < 3; i++) {
- path += param_arr[i];
- path += "/";
- }
- return path;
- }
- /***/ }),
- /***/ "N1es":
- /***/ (function(module, exports, __webpack_require__) {
- /*
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined
- * in FIPS PUB 180-1
- * This source code is derived from sha1.js of the same repository.
- * The difference between SHA-0 and SHA-1 is just a bitwise rotate left
- * operation was added.
- */
- var inherits = __webpack_require__("LC74")
- var Hash = __webpack_require__("CzQx")
- var Buffer = __webpack_require__("X3l8").Buffer
- var K = [
- 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0
- ]
- var W = new Array(80)
- function Sha () {
- this.init()
- this._w = W
- Hash.call(this, 64, 56)
- }
- inherits(Sha, Hash)
- Sha.prototype.init = function () {
- this._a = 0x67452301
- this._b = 0xefcdab89
- this._c = 0x98badcfe
- this._d = 0x10325476
- this._e = 0xc3d2e1f0
- return this
- }
- function rotl5 (num) {
- return (num << 5) | (num >>> 27)
- }
- function rotl30 (num) {
- return (num << 30) | (num >>> 2)
- }
- function ft (s, b, c, d) {
- if (s === 0) return (b & c) | ((~b) & d)
- if (s === 2) return (b & c) | (b & d) | (c & d)
- return b ^ c ^ d
- }
- Sha.prototype._update = function (M) {
- var W = this._w
- var a = this._a | 0
- var b = this._b | 0
- var c = this._c | 0
- var d = this._d | 0
- var e = this._e | 0
- for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
- for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]
- for (var j = 0; j < 80; ++j) {
- var s = ~~(j / 20)
- var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0
- e = d
- d = c
- c = rotl30(b)
- b = a
- a = t
- }
- this._a = (a + this._a) | 0
- this._b = (b + this._b) | 0
- this._c = (c + this._c) | 0
- this._d = (d + this._d) | 0
- this._e = (e + this._e) | 0
- }
- Sha.prototype._hash = function () {
- var H = Buffer.allocUnsafe(20)
- H.writeInt32BE(this._a | 0, 0)
- H.writeInt32BE(this._b | 0, 4)
- H.writeInt32BE(this._c | 0, 8)
- H.writeInt32BE(this._d | 0, 12)
- H.writeInt32BE(this._e | 0, 16)
- return H
- }
- module.exports = Sha
- /***/ }),
- /***/ "N85c":
- /***/ (function(module, exports) {
- module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiA+DQo8IS0tDQoyMDEzLTktMzA6IENyZWF0ZWQuDQotLT4NCjxzdmc+DQo8bWV0YWRhdGE+DQpDcmVhdGVkIGJ5IGljb25mb250DQo8L21ldGFkYXRhPg0KPGRlZnM+DQoNCjxmb250IGlkPSJpY29uZm9udCIgaG9yaXotYWR2LXg9IjEwMjQiID4NCiAgPGZvbnQtZmFjZQ0KICAgIGZvbnQtZmFtaWx5PSJpY29uZm9udCINCiAgICBmb250LXdlaWdodD0iNTAwIg0KICAgIGZvbnQtc3RyZXRjaD0ibm9ybWFsIg0KICAgIHVuaXRzLXBlci1lbT0iMTAyNCINCiAgICBhc2NlbnQ9Ijg5NiINCiAgICBkZXNjZW50PSItMTI4Ig0KICAvPg0KICAgIDxtaXNzaW5nLWdseXBoIC8+DQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InBpY3R1cmUiIHVuaWNvZGU9IiYjNTkwNTU7IiBkPSJNMTE5MC4wMjE1NjUgNzc3Ljc5NDc4M2gtMTU5LjYxMDQzNUw5NDMuODE2MzQ4IDg2Ny45NTEzMDRhMzMuNjEzOTEzIDMzLjYxMzkxMyAwIDAgMS0yNC4wODYyNjEgMTAuMjRINDE2LjcyMzQ3OGEzMy40ODAzNDggMzMuNDgwMzQ4IDAgMCAxLTIzLjk5NzIxNy0xMC4xOTU0NzhMMzA1LjM3NDYwOSA3NzcuNzk0NzgzaC0xNTkuODMzMDQ0QzgzLjM0NDY5NiA3NzcuNzk0NzgzIDMzLjM5MTMwNCA3MjYuOTUwOTU3IDMzLjM5MTMwNCA2NjQuMzUzMzkxdi02NjEuMTQ3ODI2YzAtNjIuMzMwNDM1IDUwLjE3Ni0xMTMuMzk2ODcgMTEyLjIzOTMwNS0xMTMuMzk2ODY5SDExOTAuMDY2MDg3YzYyLjAxODc4MyAwIDExMi4yMzkzMDQgNTAuOTMyODcgMTEyLjIzOTMwNCAxMTMuMzk2ODY5VjY2NC4zNTMzOTFjLTAuMDQ0NTIyIDYyLjM3NDk1Ny01MC4yMjA1MjIgMTEzLjQ0MTM5MS0xMTIuMjgzODI2IDExMy40NDEzOTJ6IG00NS40NTY2OTYtNzc0LjU4OTIxOGMwLTI1LjgyMjYwOS0yMC41MjQ1MjItNDYuNjE0MjYxLTQ1LjQ1NjY5Ni00Ni42MTQyNjFIMTQ1LjYzMDYwOWMtMjQuODg3NjUyIDAtNDUuNDU2Njk2IDIwLjg4MDY5Ni00NS40NTY2OTYgNDYuNjE0MjYxVjY2NC4zNTMzOTFjMCAyNS45NTYxNzQgMjAuMzQ2NDM1IDQ2LjY1ODc4MyA0NS4zNjc2NTIgNDYuNjU4NzgzaDE3My45OTA5NTdhMzMuNDgwMzQ4IDMzLjQ4MDM0OCAwIDAgMSAyMy45OTcyMTcgMTAuMTk1NDc4TDQzMC44ODEzOTEgODExLjQwODY5Nmg0NzQuNjAxNzM5bDg2LjYzOTMwNS05MC4xNTY1MjJjNi4zMjIwODctNi41NDQ2OTYgMTUuMDAzODI2LTEwLjI0IDI0LjA4NjI2MS0xMC4yNGgxNzMuODEyODY5YzI0LjkzMjE3NCAwIDQ1LjQ1NjY5Ni0yMC45MjUyMTcgNDUuNDU2Njk2LTQ2LjY1ODc4M3YtNjYxLjE0NzgyNnpNNjY3LjgyNjA4NyA1NzMuMjE3MzkxYTIzMy43MzkxMyAyMzMuNzM5MTMgMCAxIDEgMC4wNDQ1MjItNDY3LjUyMjc4MkEyMzMuNzM5MTMgMjMzLjczOTEzIDAgMCAxIDY2Ny44MjYwODcgNTczLjIxNzM5MXogbTAtNDAwLjY5NTY1MmExNjYuOTU2NTIyIDE2Ni45NTY1MjIgMCAxIDAgMCAzMzMuOTEzMDQ0IDE2Ni45NTY1MjIgMTY2Ljk1NjUyMiAwIDAgMCAwLTMzMy45MTMwNDR6TTExMTkuODk5ODI2IDYxNy43MzkxM2gtNjYuNzgyNjA5YTMzLjM5MTMwNCAzMy4zOTEzMDQgMCAwIDEgMC02Ni43ODI2MDhoNjYuNzgyNjA5YTMzLjM5MTMwNCAzMy4zOTEzMDQgMCAwIDEgMCA2Ni43ODI2MDh6IiAgaG9yaXotYWR2LXg9IjEzMzUiIC8+DQoNCiAgICANCg0KDQogIDwvZm9udD4NCjwvZGVmcz48L3N2Zz4NCg=="
- /***/ }),
- /***/ "NBqP":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
- /*!
- * vConsole v3.14.6 (https://github.com/Tencent/vConsole)
- *
- * Tencent is pleased to support the open source community by making vConsole available.
- * Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
- * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
- * http://opensource.org/licenses/MIT
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
- */
- !function (t, n) {
- "object" == ( false ? "undefined" : _typeof(exports)) && "object" == ( false ? "undefined" : _typeof(module)) ? module.exports = n() : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (n),
- __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
- (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : "object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) ? exports.VConsole = n() : t.VConsole = n();
- }(this || self, function () {
- return function () {
- var __webpack_modules__ = { 4264: function _(t, n, e) {
- t.exports = e(7588);
- }, 5036: function _(t, n, e) {
- e(1719), e(5677), e(6394), e(5334), e(6969), e(2021), e(8328), e(2129);var r = e(1287);t.exports = r.Promise;
- }, 2582: function _(t, n, e) {
- e(1646), e(6394), e(2004), e(462), e(8407), e(2429), e(1172), e(8288), e(1274), e(8201), e(6626), e(3211), e(9952), e(15), e(9831), e(7521), e(2972), e(6956), e(5222), e(2257);var r = e(1287);t.exports = r.Symbol;
- }, 8257: function _(t, n, e) {
- var r = e(7583),
- o = e(9212),
- i = e(5637),
- a = r.TypeError;t.exports = function (t) {
- if (o(t)) return t;throw a(i(t) + " is not a function");
- };
- }, 1186: function _(t, n, e) {
- var r = e(7583),
- o = e(2097),
- i = e(5637),
- a = r.TypeError;t.exports = function (t) {
- if (o(t)) return t;throw a(i(t) + " is not a constructor");
- };
- }, 9882: function _(t, n, e) {
- var r = e(7583),
- o = e(9212),
- i = r.String,
- a = r.TypeError;t.exports = function (t) {
- if ("object" == (typeof t === "undefined" ? "undefined" : _typeof(t)) || o(t)) return t;throw a("Can't set " + i(t) + " as a prototype");
- };
- }, 6288: function _(t, n, e) {
- var r = e(3649),
- o = e(3590),
- i = e(4615),
- a = r("unscopables"),
- c = Array.prototype;null == c[a] && i.f(c, a, { configurable: !0, value: o(null) }), t.exports = function (t) {
- c[a][t] = !0;
- };
- }, 4761: function _(t, n, e) {
- var r = e(7583),
- o = e(2447),
- i = r.TypeError;t.exports = function (t, n) {
- if (o(n, t)) return t;throw i("Incorrect invocation");
- };
- }, 2569: function _(t, n, e) {
- var r = e(7583),
- o = e(794),
- i = r.String,
- a = r.TypeError;t.exports = function (t) {
- if (o(t)) return t;throw a(i(t) + " is not an object");
- };
- }, 5766: function _(t, n, e) {
- var r = e(2977),
- o = e(6782),
- i = e(1825),
- a = function a(t) {
- return function (n, e, a) {
- var c,
- u = r(n),
- s = i(u),
- l = o(a, s);if (t && e != e) {
- for (; s > l;) {
- if ((c = u[l++]) != c) return !0;
- }
- } else for (; s > l; l++) {
- if ((t || l in u) && u[l] === e) return t || l || 0;
- }return !t && -1;
- };
- };t.exports = { includes: a(!0), indexOf: a(!1) };
- }, 4805: function _(t, n, e) {
- var r = e(2938),
- o = e(7386),
- i = e(5044),
- a = e(1324),
- c = e(1825),
- u = e(4822),
- s = o([].push),
- l = function l(t) {
- var n = 1 == t,
- e = 2 == t,
- o = 3 == t,
- l = 4 == t,
- f = 6 == t,
- d = 7 == t,
- v = 5 == t || f;return function (p, h, g, m) {
- for (var _, b, y = a(p), w = i(y), E = r(h, g), L = c(w), T = 0, O = m || u, C = n ? O(p, L) : e || d ? O(p, 0) : void 0; L > T; T++) {
- if ((v || T in w) && (b = E(_ = w[T], T, y), t)) if (n) C[T] = b;else if (b) switch (t) {case 3:
- return !0;case 5:
- return _;case 6:
- return T;case 2:
- s(C, _);} else switch (t) {case 4:
- return !1;case 7:
- s(C, _);}
- }return f ? -1 : o || l ? l : C;
- };
- };t.exports = { forEach: l(0), map: l(1), filter: l(2), some: l(3), every: l(4), find: l(5), findIndex: l(6), filterReject: l(7) };
- }, 9269: function _(t, n, e) {
- var r = e(6544),
- o = e(3649),
- i = e(4061),
- a = o("species");t.exports = function (t) {
- return i >= 51 || !r(function () {
- var n = [];return (n.constructor = {})[a] = function () {
- return { foo: 1 };
- }, 1 !== n[t](Boolean).foo;
- });
- };
- }, 4546: function _(t, n, e) {
- var r = e(7583),
- o = e(6782),
- i = e(1825),
- a = e(5999),
- c = r.Array,
- u = Math.max;t.exports = function (t, n, e) {
- for (var r = i(t), s = o(n, r), l = o(void 0 === e ? r : e, r), f = c(u(l - s, 0)), d = 0; s < l; s++, d++) {
- a(f, d, t[s]);
- }return f.length = d, f;
- };
- }, 6917: function _(t, n, e) {
- var r = e(7386);t.exports = r([].slice);
- }, 5289: function _(t, n, e) {
- var r = e(7583),
- o = e(4521),
- i = e(2097),
- a = e(794),
- c = e(3649)("species"),
- u = r.Array;t.exports = function (t) {
- var n;return o(t) && (n = t.constructor, (i(n) && (n === u || o(n.prototype)) || a(n) && null === (n = n[c])) && (n = void 0)), void 0 === n ? u : n;
- };
- }, 4822: function _(t, n, e) {
- var r = e(5289);t.exports = function (t, n) {
- return new (r(t))(0 === n ? 0 : n);
- };
- }, 3616: function _(t, n, e) {
- var r = e(3649)("iterator"),
- o = !1;try {
- var i = 0,
- a = { next: function next() {
- return { done: !!i++ };
- }, return: function _return() {
- o = !0;
- } };a[r] = function () {
- return this;
- }, Array.from(a, function () {
- throw 2;
- });
- } catch (t) {}t.exports = function (t, n) {
- if (!n && !o) return !1;var e = !1;try {
- var i = {};i[r] = function () {
- return { next: function next() {
- return { done: e = !0 };
- } };
- }, t(i);
- } catch (t) {}return e;
- };
- }, 9624: function _(t, n, e) {
- var r = e(7386),
- o = r({}.toString),
- i = r("".slice);t.exports = function (t) {
- return i(o(t), 8, -1);
- };
- }, 3058: function _(t, n, e) {
- var r = e(7583),
- o = e(8191),
- i = e(9212),
- a = e(9624),
- c = e(3649)("toStringTag"),
- u = r.Object,
- s = "Arguments" == a(function () {
- return arguments;
- }());t.exports = o ? a : function (t) {
- var n, e, r;return void 0 === t ? "Undefined" : null === t ? "Null" : "string" == typeof (e = function (t, n) {
- try {
- return t[n];
- } catch (t) {}
- }(n = u(t), c)) ? e : s ? a(n) : "Object" == (r = a(n)) && i(n.callee) ? "Arguments" : r;
- };
- }, 1509: function _(t, n, e) {
- var r = e(7386)("".replace),
- o = String(Error("zxcasd").stack),
- i = /\n\s*at [^:]*:[^\n]*/,
- a = i.test(o);t.exports = function (t, n) {
- if (a && "string" == typeof t) for (; n--;) {
- t = r(t, i, "");
- }return t;
- };
- }, 3478: function _(t, n, e) {
- var r = e(2870),
- o = e(929),
- i = e(6683),
- a = e(4615);t.exports = function (t, n, e) {
- for (var c = o(n), u = a.f, s = i.f, l = 0; l < c.length; l++) {
- var f = c[l];r(t, f) || e && r(e, f) || u(t, f, s(n, f));
- }
- };
- }, 926: function _(t, n, e) {
- var r = e(6544);t.exports = !r(function () {
- function t() {}return t.prototype.constructor = null, Object.getPrototypeOf(new t()) !== t.prototype;
- });
- }, 4683: function _(t, n, e) {
- "use strict";
- var r = e(2365).IteratorPrototype,
- o = e(3590),
- i = e(4677),
- a = e(8821),
- c = e(339),
- u = function u() {
- return this;
- };t.exports = function (t, n, e, s) {
- var l = n + " Iterator";return t.prototype = o(r, { next: i(+!s, e) }), a(t, l, !1, !0), c[l] = u, t;
- };
- }, 57: function _(t, n, e) {
- var r = e(8494),
- o = e(4615),
- i = e(4677);t.exports = r ? function (t, n, e) {
- return o.f(t, n, i(1, e));
- } : function (t, n, e) {
- return t[n] = e, t;
- };
- }, 4677: function _(t) {
- t.exports = function (t, n) {
- return { enumerable: !(1 & t), configurable: !(2 & t), writable: !(4 & t), value: n };
- };
- }, 5999: function _(t, n, e) {
- "use strict";
- var r = e(8734),
- o = e(4615),
- i = e(4677);t.exports = function (t, n, e) {
- var a = r(n);a in t ? o.f(t, a, i(0, e)) : t[a] = e;
- };
- }, 9012: function _(t, n, e) {
- "use strict";
- var r = e(7263),
- o = e(8262),
- i = e(6268),
- a = e(4340),
- c = e(9212),
- u = e(4683),
- s = e(729),
- l = e(7496),
- f = e(8821),
- d = e(57),
- v = e(1270),
- p = e(3649),
- h = e(339),
- g = e(2365),
- m = a.PROPER,
- _ = a.CONFIGURABLE,
- b = g.IteratorPrototype,
- y = g.BUGGY_SAFARI_ITERATORS,
- w = p("iterator"),
- E = "keys",
- L = "values",
- T = "entries",
- O = function O() {
- return this;
- };t.exports = function (t, n, e, a, p, g, C) {
- u(e, n, a);var x,
- I,
- D,
- R = function R(t) {
- if (t === p && S) return S;if (!y && t in M) return M[t];switch (t) {case E:case L:case T:
- return function () {
- return new e(this, t);
- };}return function () {
- return new e(this);
- };
- },
- k = n + " Iterator",
- P = !1,
- M = t.prototype,
- $ = M[w] || M["@@iterator"] || p && M[p],
- S = !y && $ || R(p),
- j = "Array" == n && M.entries || $;if (j && (x = s(j.call(new t()))) !== Object.prototype && x.next && (i || s(x) === b || (l ? l(x, b) : c(x[w]) || v(x, w, O)), f(x, k, !0, !0), i && (h[k] = O)), m && p == L && $ && $.name !== L && (!i && _ ? d(M, "name", L) : (P = !0, S = function S() {
- return o($, this);
- })), p) if (I = { values: R(L), keys: g ? S : R(E), entries: R(T) }, C) for (D in I) {
- (y || P || !(D in M)) && v(M, D, I[D]);
- } else r({ target: n, proto: !0, forced: y || P }, I);return i && !C || M[w] === S || v(M, w, S, { name: p }), h[n] = S, I;
- };
- }, 2219: function _(t, n, e) {
- var r = e(1287),
- o = e(2870),
- i = e(491),
- a = e(4615).f;t.exports = function (t) {
- var n = r.Symbol || (r.Symbol = {});o(n, t) || a(n, t, { value: i.f(t) });
- };
- }, 8494: function _(t, n, e) {
- var r = e(6544);t.exports = !r(function () {
- return 7 != Object.defineProperty({}, 1, { get: function get() {
- return 7;
- } })[1];
- });
- }, 6668: function _(t, n, e) {
- var r = e(7583),
- o = e(794),
- i = r.document,
- a = o(i) && o(i.createElement);t.exports = function (t) {
- return a ? i.createElement(t) : {};
- };
- }, 6778: function _(t) {
- t.exports = { CSSRuleList: 0, CSSStyleDeclaration: 0, CSSValueList: 0, ClientRectList: 0, DOMRectList: 0, DOMStringList: 0, DOMTokenList: 1, DataTransferItemList: 0, FileList: 0, HTMLAllCollection: 0, HTMLCollection: 0, HTMLFormElement: 0, HTMLSelectElement: 0, MediaList: 0, MimeTypeArray: 0, NamedNodeMap: 0, NodeList: 1, PaintRequestList: 0, Plugin: 0, PluginArray: 0, SVGLengthList: 0, SVGNumberList: 0, SVGPathSegList: 0, SVGPointList: 0, SVGStringList: 0, SVGTransformList: 0, SourceBufferList: 0, StyleSheetList: 0, TextTrackCueList: 0, TextTrackList: 0, TouchList: 0 };
- }, 9307: function _(t, n, e) {
- var r = e(6668)("span").classList,
- o = r && r.constructor && r.constructor.prototype;t.exports = o === Object.prototype ? void 0 : o;
- }, 2274: function _(t) {
- t.exports = "object" == (typeof window === "undefined" ? "undefined" : _typeof(window));
- }, 3256: function _(t, n, e) {
- var r = e(6918),
- o = e(7583);t.exports = /ipad|iphone|ipod/i.test(r) && void 0 !== o.Pebble;
- }, 7020: function _(t, n, e) {
- var r = e(6918);t.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(r);
- }, 5354: function _(t, n, e) {
- var r = e(9624),
- o = e(7583);t.exports = "process" == r(o.process);
- }, 6846: function _(t, n, e) {
- var r = e(6918);t.exports = /web0s(?!.*chrome)/i.test(r);
- }, 6918: function _(t, n, e) {
- var r = e(5897);t.exports = r("navigator", "userAgent") || "";
- }, 4061: function _(t, n, e) {
- var r,
- o,
- i = e(7583),
- a = e(6918),
- c = i.process,
- u = i.Deno,
- s = c && c.versions || u && u.version,
- l = s && s.v8;l && (o = (r = l.split("."))[0] > 0 && r[0] < 4 ? 1 : +(r[0] + r[1])), !o && a && (!(r = a.match(/Edge\/(\d+)/)) || r[1] >= 74) && (r = a.match(/Chrome\/(\d+)/)) && (o = +r[1]), t.exports = o;
- }, 5690: function _(t) {
- t.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"];
- }, 1178: function _(t, n, e) {
- var r = e(6544),
- o = e(4677);t.exports = !r(function () {
- var t = Error("a");return !("stack" in t) || (Object.defineProperty(t, "stack", o(1, 7)), 7 !== t.stack);
- });
- }, 7263: function _(t, n, e) {
- var r = e(7583),
- o = e(6683).f,
- i = e(57),
- a = e(1270),
- c = e(460),
- u = e(3478),
- s = e(4451);t.exports = function (t, n) {
- var e,
- l,
- f,
- d,
- v,
- p = t.target,
- h = t.global,
- g = t.stat;if (e = h ? r : g ? r[p] || c(p, {}) : (r[p] || {}).prototype) for (l in n) {
- if (d = n[l], f = t.noTargetGet ? (v = o(e, l)) && v.value : e[l], !s(h ? l : p + (g ? "." : "#") + l, t.forced) && void 0 !== f) {
- if ((typeof d === "undefined" ? "undefined" : _typeof(d)) == (typeof f === "undefined" ? "undefined" : _typeof(f))) continue;u(d, f);
- }(t.sham || f && f.sham) && i(d, "sham", !0), a(e, l, d, t);
- }
- };
- }, 6544: function _(t) {
- t.exports = function (t) {
- try {
- return !!t();
- } catch (t) {
- return !0;
- }
- };
- }, 1611: function _(t, n, e) {
- var r = e(8987),
- o = Function.prototype,
- i = o.apply,
- a = o.call;t.exports = "object" == (typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) && Reflect.apply || (r ? a.bind(i) : function () {
- return a.apply(i, arguments);
- });
- }, 2938: function _(t, n, e) {
- var r = e(7386),
- o = e(8257),
- i = e(8987),
- a = r(r.bind);t.exports = function (t, n) {
- return o(t), void 0 === n ? t : i ? a(t, n) : function () {
- return t.apply(n, arguments);
- };
- };
- }, 8987: function _(t, n, e) {
- var r = e(6544);t.exports = !r(function () {
- var t = function () {}.bind();return "function" != typeof t || t.hasOwnProperty("prototype");
- });
- }, 8262: function _(t, n, e) {
- var r = e(8987),
- o = Function.prototype.call;t.exports = r ? o.bind(o) : function () {
- return o.apply(o, arguments);
- };
- }, 4340: function _(t, n, e) {
- var r = e(8494),
- o = e(2870),
- i = Function.prototype,
- a = r && Object.getOwnPropertyDescriptor,
- c = o(i, "name"),
- u = c && "something" === function () {}.name,
- s = c && (!r || r && a(i, "name").configurable);t.exports = { EXISTS: c, PROPER: u, CONFIGURABLE: s };
- }, 7386: function _(t, n, e) {
- var r = e(8987),
- o = Function.prototype,
- i = o.bind,
- a = o.call,
- c = r && i.bind(a, a);t.exports = r ? function (t) {
- return t && c(t);
- } : function (t) {
- return t && function () {
- return a.apply(t, arguments);
- };
- };
- }, 5897: function _(t, n, e) {
- var r = e(7583),
- o = e(9212),
- i = function i(t) {
- return o(t) ? t : void 0;
- };t.exports = function (t, n) {
- return arguments.length < 2 ? i(r[t]) : r[t] && r[t][n];
- };
- }, 8272: function _(t, n, e) {
- var r = e(3058),
- o = e(911),
- i = e(339),
- a = e(3649)("iterator");t.exports = function (t) {
- if (null != t) return o(t, a) || o(t, "@@iterator") || i[r(t)];
- };
- }, 6307: function _(t, n, e) {
- var r = e(7583),
- o = e(8262),
- i = e(8257),
- a = e(2569),
- c = e(5637),
- u = e(8272),
- s = r.TypeError;t.exports = function (t, n) {
- var e = arguments.length < 2 ? u(t) : n;if (i(e)) return a(o(e, t));throw s(c(t) + " is not iterable");
- };
- }, 911: function _(t, n, e) {
- var r = e(8257);t.exports = function (t, n) {
- var e = t[n];return null == e ? void 0 : r(e);
- };
- }, 7583: function _(t, n, e) {
- var r = function r(t) {
- return t && t.Math == Math && t;
- };t.exports = r("object" == (typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) && globalThis) || r("object" == (typeof window === "undefined" ? "undefined" : _typeof(window)) && window) || r("object" == (typeof self === "undefined" ? "undefined" : _typeof(self)) && self) || r("object" == _typeof(e.g) && e.g) || function () {
- return this;
- }() || Function("return this")();
- }, 2870: function _(t, n, e) {
- var r = e(7386),
- o = e(1324),
- i = r({}.hasOwnProperty);t.exports = Object.hasOwn || function (t, n) {
- return i(o(t), n);
- };
- }, 4639: function _(t) {
- t.exports = {};
- }, 2716: function _(t, n, e) {
- var r = e(7583);t.exports = function (t, n) {
- var e = r.console;e && e.error && (1 == arguments.length ? e.error(t) : e.error(t, n));
- };
- }, 482: function _(t, n, e) {
- var r = e(5897);t.exports = r("document", "documentElement");
- }, 275: function _(t, n, e) {
- var r = e(8494),
- o = e(6544),
- i = e(6668);t.exports = !r && !o(function () {
- return 7 != Object.defineProperty(i("div"), "a", { get: function get() {
- return 7;
- } }).a;
- });
- }, 5044: function _(t, n, e) {
- var r = e(7583),
- o = e(7386),
- i = e(6544),
- a = e(9624),
- c = r.Object,
- u = o("".split);t.exports = i(function () {
- return !c("z").propertyIsEnumerable(0);
- }) ? function (t) {
- return "String" == a(t) ? u(t, "") : c(t);
- } : c;
- }, 9734: function _(t, n, e) {
- var r = e(7386),
- o = e(9212),
- i = e(1314),
- a = r(Function.toString);o(i.inspectSource) || (i.inspectSource = function (t) {
- return a(t);
- }), t.exports = i.inspectSource;
- }, 4402: function _(t, n, e) {
- var r = e(794),
- o = e(57);t.exports = function (t, n) {
- r(n) && "cause" in n && o(t, "cause", n.cause);
- };
- }, 2743: function _(t, n, e) {
- var r,
- o,
- i,
- a = e(9491),
- c = e(7583),
- u = e(7386),
- s = e(794),
- l = e(57),
- f = e(2870),
- d = e(1314),
- v = e(9137),
- p = e(4639),
- h = "Object already initialized",
- g = c.TypeError,
- m = c.WeakMap;if (a || d.state) {
- var _ = d.state || (d.state = new m()),
- b = u(_.get),
- y = u(_.has),
- w = u(_.set);r = function r(t, n) {
- if (y(_, t)) throw new g(h);return n.facade = t, w(_, t, n), n;
- }, o = function o(t) {
- return b(_, t) || {};
- }, i = function i(t) {
- return y(_, t);
- };
- } else {
- var E = v("state");p[E] = !0, r = function r(t, n) {
- if (f(t, E)) throw new g(h);return n.facade = t, l(t, E, n), n;
- }, o = function o(t) {
- return f(t, E) ? t[E] : {};
- }, i = function i(t) {
- return f(t, E);
- };
- }t.exports = { set: r, get: o, has: i, enforce: function enforce(t) {
- return i(t) ? o(t) : r(t, {});
- }, getterFor: function getterFor(t) {
- return function (n) {
- var e;if (!s(n) || (e = o(n)).type !== t) throw g("Incompatible receiver, " + t + " required");return e;
- };
- } };
- }, 114: function _(t, n, e) {
- var r = e(3649),
- o = e(339),
- i = r("iterator"),
- a = Array.prototype;t.exports = function (t) {
- return void 0 !== t && (o.Array === t || a[i] === t);
- };
- }, 4521: function _(t, n, e) {
- var r = e(9624);t.exports = Array.isArray || function (t) {
- return "Array" == r(t);
- };
- }, 9212: function _(t) {
- t.exports = function (t) {
- return "function" == typeof t;
- };
- }, 2097: function _(t, n, e) {
- var r = e(7386),
- o = e(6544),
- i = e(9212),
- a = e(3058),
- c = e(5897),
- u = e(9734),
- s = function s() {},
- l = [],
- f = c("Reflect", "construct"),
- d = /^\s*(?:class|function)\b/,
- v = r(d.exec),
- p = !d.exec(s),
- h = function h(t) {
- if (!i(t)) return !1;try {
- return f(s, l, t), !0;
- } catch (t) {
- return !1;
- }
- },
- g = function g(t) {
- if (!i(t)) return !1;switch (a(t)) {case "AsyncFunction":case "GeneratorFunction":case "AsyncGeneratorFunction":
- return !1;}try {
- return p || !!v(d, u(t));
- } catch (t) {
- return !0;
- }
- };g.sham = !0, t.exports = !f || o(function () {
- var t;return h(h.call) || !h(Object) || !h(function () {
- t = !0;
- }) || t;
- }) ? g : h;
- }, 4451: function _(t, n, e) {
- var r = e(6544),
- o = e(9212),
- i = /#|\.prototype\./,
- a = function a(t, n) {
- var e = u[c(t)];return e == l || e != s && (o(n) ? r(n) : !!n);
- },
- c = a.normalize = function (t) {
- return String(t).replace(i, ".").toLowerCase();
- },
- u = a.data = {},
- s = a.NATIVE = "N",
- l = a.POLYFILL = "P";t.exports = a;
- }, 794: function _(t, n, e) {
- var r = e(9212);t.exports = function (t) {
- return "object" == (typeof t === "undefined" ? "undefined" : _typeof(t)) ? null !== t : r(t);
- };
- }, 6268: function _(t) {
- t.exports = !1;
- }, 5871: function _(t, n, e) {
- var r = e(7583),
- o = e(5897),
- i = e(9212),
- a = e(2447),
- c = e(7786),
- u = r.Object;t.exports = c ? function (t) {
- return "symbol" == (typeof t === "undefined" ? "undefined" : _typeof(t));
- } : function (t) {
- var n = o("Symbol");return i(n) && a(n.prototype, u(t));
- };
- }, 4026: function _(t, n, e) {
- var r = e(7583),
- o = e(2938),
- i = e(8262),
- a = e(2569),
- c = e(5637),
- u = e(114),
- s = e(1825),
- l = e(2447),
- f = e(6307),
- d = e(8272),
- v = e(7093),
- p = r.TypeError,
- h = function h(t, n) {
- this.stopped = t, this.result = n;
- },
- g = h.prototype;t.exports = function (t, n, e) {
- var r,
- m,
- _,
- b,
- y,
- w,
- E,
- L = e && e.that,
- T = !(!e || !e.AS_ENTRIES),
- O = !(!e || !e.IS_ITERATOR),
- C = !(!e || !e.INTERRUPTED),
- x = o(n, L),
- I = function I(t) {
- return r && v(r, "normal", t), new h(!0, t);
- },
- D = function D(t) {
- return T ? (a(t), C ? x(t[0], t[1], I) : x(t[0], t[1])) : C ? x(t, I) : x(t);
- };if (O) r = t;else {
- if (!(m = d(t))) throw p(c(t) + " is not iterable");if (u(m)) {
- for (_ = 0, b = s(t); b > _; _++) {
- if ((y = D(t[_])) && l(g, y)) return y;
- }return new h(!1);
- }r = f(t, m);
- }for (w = r.next; !(E = i(w, r)).done;) {
- try {
- y = D(E.value);
- } catch (t) {
- v(r, "throw", t);
- }if ("object" == (typeof y === "undefined" ? "undefined" : _typeof(y)) && y && l(g, y)) return y;
- }return new h(!1);
- };
- }, 7093: function _(t, n, e) {
- var r = e(8262),
- o = e(2569),
- i = e(911);t.exports = function (t, n, e) {
- var a, c;o(t);try {
- if (!(a = i(t, "return"))) {
- if ("throw" === n) throw e;return e;
- }a = r(a, t);
- } catch (t) {
- c = !0, a = t;
- }if ("throw" === n) throw e;if (c) throw a;return o(a), e;
- };
- }, 2365: function _(t, n, e) {
- "use strict";
- var r,
- o,
- i,
- a = e(6544),
- c = e(9212),
- u = e(3590),
- s = e(729),
- l = e(1270),
- f = e(3649),
- d = e(6268),
- v = f("iterator"),
- p = !1;[].keys && ("next" in (i = [].keys()) ? (o = s(s(i))) !== Object.prototype && (r = o) : p = !0), null == r || a(function () {
- var t = {};return r[v].call(t) !== t;
- }) ? r = {} : d && (r = u(r)), c(r[v]) || l(r, v, function () {
- return this;
- }), t.exports = { IteratorPrototype: r, BUGGY_SAFARI_ITERATORS: p };
- }, 339: function _(t) {
- t.exports = {};
- }, 1825: function _(t, n, e) {
- var r = e(97);t.exports = function (t) {
- return r(t.length);
- };
- }, 2095: function _(t, n, e) {
- var r,
- o,
- i,
- a,
- c,
- u,
- s,
- l,
- f = e(7583),
- d = e(2938),
- v = e(6683).f,
- p = e(8117).set,
- h = e(7020),
- g = e(3256),
- m = e(6846),
- _ = e(5354),
- b = f.MutationObserver || f.WebKitMutationObserver,
- y = f.document,
- w = f.process,
- E = f.Promise,
- L = v(f, "queueMicrotask"),
- T = L && L.value;T || (r = function r() {
- var t, n;for (_ && (t = w.domain) && t.exit(); o;) {
- n = o.fn, o = o.next;try {
- n();
- } catch (t) {
- throw o ? a() : i = void 0, t;
- }
- }i = void 0, t && t.enter();
- }, h || _ || m || !b || !y ? !g && E && E.resolve ? ((s = E.resolve(void 0)).constructor = E, l = d(s.then, s), a = function a() {
- l(r);
- }) : _ ? a = function a() {
- w.nextTick(r);
- } : (p = d(p, f), a = function a() {
- p(r);
- }) : (c = !0, u = y.createTextNode(""), new b(r).observe(u, { characterData: !0 }), a = function a() {
- u.data = c = !c;
- })), t.exports = T || function (t) {
- var n = { fn: t, next: void 0 };i && (i.next = n), o || (o = n, a()), i = n;
- };
- }, 783: function _(t, n, e) {
- var r = e(7583);t.exports = r.Promise;
- }, 8640: function _(t, n, e) {
- var r = e(4061),
- o = e(6544);t.exports = !!Object.getOwnPropertySymbols && !o(function () {
- var t = Symbol();return !String(t) || !(Object(t) instanceof Symbol) || !Symbol.sham && r && r < 41;
- });
- }, 9491: function _(t, n, e) {
- var r = e(7583),
- o = e(9212),
- i = e(9734),
- a = r.WeakMap;t.exports = o(a) && /native code/.test(i(a));
- }, 5084: function _(t, n, e) {
- "use strict";
- var r = e(8257),
- o = function o(t) {
- var n, e;this.promise = new t(function (t, r) {
- if (void 0 !== n || void 0 !== e) throw TypeError("Bad Promise constructor");n = t, e = r;
- }), this.resolve = r(n), this.reject = r(e);
- };t.exports.f = function (t) {
- return new o(t);
- };
- }, 2764: function _(t, n, e) {
- var r = e(8320);t.exports = function (t, n) {
- return void 0 === t ? arguments.length < 2 ? "" : n : r(t);
- };
- }, 3590: function _(t, n, e) {
- var r,
- o = e(2569),
- i = e(8728),
- a = e(5690),
- c = e(4639),
- u = e(482),
- s = e(6668),
- l = e(9137),
- f = l("IE_PROTO"),
- d = function d() {},
- v = function v(t) {
- return "<script>" + t + "</" + "script>";
- },
- p = function p(t) {
- t.write(v("")), t.close();var n = t.parentWindow.Object;return t = null, n;
- },
- _h = function h() {
- try {
- r = new ActiveXObject("htmlfile");
- } catch (t) {}var t, n;_h = "undefined" != typeof document ? document.domain && r ? p(r) : ((n = s("iframe")).style.display = "none", u.appendChild(n), n.src = String("javascript:"), (t = n.contentWindow.document).open(), t.write(v("document.F=Object")), t.close(), t.F) : p(r);for (var e = a.length; e--;) {
- delete _h.prototype[a[e]];
- }return _h();
- };c[f] = !0, t.exports = Object.create || function (t, n) {
- var e;return null !== t ? (d.prototype = o(t), e = new d(), d.prototype = null, e[f] = t) : e = _h(), void 0 === n ? e : i.f(e, n);
- };
- }, 8728: function _(t, n, e) {
- var r = e(8494),
- o = e(7670),
- i = e(4615),
- a = e(2569),
- c = e(2977),
- u = e(5432);n.f = r && !o ? Object.defineProperties : function (t, n) {
- a(t);for (var e, r = c(n), o = u(n), s = o.length, l = 0; s > l;) {
- i.f(t, e = o[l++], r[e]);
- }return t;
- };
- }, 4615: function _(t, n, e) {
- var r = e(7583),
- o = e(8494),
- i = e(275),
- a = e(7670),
- c = e(2569),
- u = e(8734),
- s = r.TypeError,
- l = Object.defineProperty,
- f = Object.getOwnPropertyDescriptor,
- d = "enumerable",
- v = "configurable",
- p = "writable";n.f = o ? a ? function (t, n, e) {
- if (c(t), n = u(n), c(e), "function" == typeof t && "prototype" === n && "value" in e && p in e && !e.writable) {
- var r = f(t, n);r && r.writable && (t[n] = e.value, e = { configurable: v in e ? e.configurable : r.configurable, enumerable: d in e ? e.enumerable : r.enumerable, writable: !1 });
- }return l(t, n, e);
- } : l : function (t, n, e) {
- if (c(t), n = u(n), c(e), i) try {
- return l(t, n, e);
- } catch (t) {}if ("get" in e || "set" in e) throw s("Accessors not supported");return "value" in e && (t[n] = e.value), t;
- };
- }, 6683: function _(t, n, e) {
- var r = e(8494),
- o = e(8262),
- i = e(112),
- a = e(4677),
- c = e(2977),
- u = e(8734),
- s = e(2870),
- l = e(275),
- f = Object.getOwnPropertyDescriptor;n.f = r ? f : function (t, n) {
- if (t = c(t), n = u(n), l) try {
- return f(t, n);
- } catch (t) {}if (s(t, n)) return a(!o(i.f, t, n), t[n]);
- };
- }, 3130: function _(t, n, e) {
- var r = e(9624),
- o = e(2977),
- i = e(9275).f,
- a = e(4546),
- c = "object" == (typeof window === "undefined" ? "undefined" : _typeof(window)) && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];t.exports.f = function (t) {
- return c && "Window" == r(t) ? function (t) {
- try {
- return i(t);
- } catch (t) {
- return a(c);
- }
- }(t) : i(o(t));
- };
- }, 9275: function _(t, n, e) {
- var r = e(8356),
- o = e(5690).concat("length", "prototype");n.f = Object.getOwnPropertyNames || function (t) {
- return r(t, o);
- };
- }, 4012: function _(t, n) {
- n.f = Object.getOwnPropertySymbols;
- }, 729: function _(t, n, e) {
- var r = e(7583),
- o = e(2870),
- i = e(9212),
- a = e(1324),
- c = e(9137),
- u = e(926),
- s = c("IE_PROTO"),
- l = r.Object,
- f = l.prototype;t.exports = u ? l.getPrototypeOf : function (t) {
- var n = a(t);if (o(n, s)) return n[s];var e = n.constructor;return i(e) && n instanceof e ? e.prototype : n instanceof l ? f : null;
- };
- }, 2447: function _(t, n, e) {
- var r = e(7386);t.exports = r({}.isPrototypeOf);
- }, 8356: function _(t, n, e) {
- var r = e(7386),
- o = e(2870),
- i = e(2977),
- a = e(5766).indexOf,
- c = e(4639),
- u = r([].push);t.exports = function (t, n) {
- var e,
- r = i(t),
- s = 0,
- l = [];for (e in r) {
- !o(c, e) && o(r, e) && u(l, e);
- }for (; n.length > s;) {
- o(r, e = n[s++]) && (~a(l, e) || u(l, e));
- }return l;
- };
- }, 5432: function _(t, n, e) {
- var r = e(8356),
- o = e(5690);t.exports = Object.keys || function (t) {
- return r(t, o);
- };
- }, 112: function _(t, n) {
- "use strict";
- var e = {}.propertyIsEnumerable,
- r = Object.getOwnPropertyDescriptor,
- o = r && !e.call({ 1: 2 }, 1);n.f = o ? function (t) {
- var n = r(this, t);return !!n && n.enumerable;
- } : e;
- }, 7496: function _(t, n, e) {
- var r = e(7386),
- o = e(2569),
- i = e(9882);t.exports = Object.setPrototypeOf || ("__proto__" in {} ? function () {
- var t,
- n = !1,
- e = {};try {
- (t = r(Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set))(e, []), n = e instanceof Array;
- } catch (t) {}return function (e, r) {
- return o(e), i(r), n ? t(e, r) : e.__proto__ = r, e;
- };
- }() : void 0);
- }, 3060: function _(t, n, e) {
- "use strict";
- var r = e(8191),
- o = e(3058);t.exports = r ? {}.toString : function () {
- return "[object " + o(this) + "]";
- };
- }, 6252: function _(t, n, e) {
- var r = e(7583),
- o = e(8262),
- i = e(9212),
- a = e(794),
- c = r.TypeError;t.exports = function (t, n) {
- var e, r;if ("string" === n && i(e = t.toString) && !a(r = o(e, t))) return r;if (i(e = t.valueOf) && !a(r = o(e, t))) return r;if ("string" !== n && i(e = t.toString) && !a(r = o(e, t))) return r;throw c("Can't convert object to primitive value");
- };
- }, 929: function _(t, n, e) {
- var r = e(5897),
- o = e(7386),
- i = e(9275),
- a = e(4012),
- c = e(2569),
- u = o([].concat);t.exports = r("Reflect", "ownKeys") || function (t) {
- var n = i.f(c(t)),
- e = a.f;return e ? u(n, e(t)) : n;
- };
- }, 1287: function _(t, n, e) {
- var r = e(7583);t.exports = r;
- }, 544: function _(t) {
- t.exports = function (t) {
- try {
- return { error: !1, value: t() };
- } catch (t) {
- return { error: !0, value: t };
- }
- };
- }, 5732: function _(t, n, e) {
- var r = e(2569),
- o = e(794),
- i = e(5084);t.exports = function (t, n) {
- if (r(t), o(n) && n.constructor === t) return n;var e = i.f(t);return (0, e.resolve)(n), e.promise;
- };
- }, 2723: function _(t) {
- var n = function n() {
- this.head = null, this.tail = null;
- };n.prototype = { add: function add(t) {
- var n = { item: t, next: null };this.head ? this.tail.next = n : this.head = n, this.tail = n;
- }, get: function get() {
- var t = this.head;if (t) return this.head = t.next, this.tail === t && (this.tail = null), t.item;
- } }, t.exports = n;
- }, 6893: function _(t, n, e) {
- var r = e(1270);t.exports = function (t, n, e) {
- for (var o in n) {
- r(t, o, n[o], e);
- }return t;
- };
- }, 1270: function _(t, n, e) {
- var r = e(7583),
- o = e(9212),
- i = e(2870),
- a = e(57),
- c = e(460),
- u = e(9734),
- s = e(2743),
- l = e(4340).CONFIGURABLE,
- f = s.get,
- d = s.enforce,
- v = String(String).split("String");(t.exports = function (t, n, e, u) {
- var s,
- f = !!u && !!u.unsafe,
- p = !!u && !!u.enumerable,
- h = !!u && !!u.noTargetGet,
- g = u && void 0 !== u.name ? u.name : n;o(e) && ("Symbol(" === String(g).slice(0, 7) && (g = "[" + String(g).replace(/^Symbol\(([^)]*)\)/, "$1") + "]"), (!i(e, "name") || l && e.name !== g) && a(e, "name", g), (s = d(e)).source || (s.source = v.join("string" == typeof g ? g : ""))), t !== r ? (f ? !h && t[n] && (p = !0) : delete t[n], p ? t[n] = e : a(t, n, e)) : p ? t[n] = e : c(n, e);
- })(Function.prototype, "toString", function () {
- return o(this) && f(this).source || u(this);
- });
- }, 3955: function _(t, n, e) {
- var r = e(7583).TypeError;t.exports = function (t) {
- if (null == t) throw r("Can't call method on " + t);return t;
- };
- }, 460: function _(t, n, e) {
- var r = e(7583),
- o = Object.defineProperty;t.exports = function (t, n) {
- try {
- o(r, t, { value: n, configurable: !0, writable: !0 });
- } catch (e) {
- r[t] = n;
- }return n;
- };
- }, 7730: function _(t, n, e) {
- "use strict";
- var r = e(5897),
- o = e(4615),
- i = e(3649),
- a = e(8494),
- c = i("species");t.exports = function (t) {
- var n = r(t),
- e = o.f;a && n && !n[c] && e(n, c, { configurable: !0, get: function get() {
- return this;
- } });
- };
- }, 8821: function _(t, n, e) {
- var r = e(4615).f,
- o = e(2870),
- i = e(3649)("toStringTag");t.exports = function (t, n, e) {
- t && !e && (t = t.prototype), t && !o(t, i) && r(t, i, { configurable: !0, value: n });
- };
- }, 9137: function _(t, n, e) {
- var r = e(7836),
- o = e(8284),
- i = r("keys");t.exports = function (t) {
- return i[t] || (i[t] = o(t));
- };
- }, 1314: function _(t, n, e) {
- var r = e(7583),
- o = e(460),
- i = "__core-js_shared__",
- a = r[i] || o(i, {});t.exports = a;
- }, 7836: function _(t, n, e) {
- var r = e(6268),
- o = e(1314);(t.exports = function (t, n) {
- return o[t] || (o[t] = void 0 !== n ? n : {});
- })("versions", []).push({ version: "3.21.1", mode: r ? "pure" : "global", copyright: "© 2014-2022 Denis Pushkarev (zloirock.ru)", license: "https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE", source: "https://github.com/zloirock/core-js" });
- }, 564: function _(t, n, e) {
- var r = e(2569),
- o = e(1186),
- i = e(3649)("species");t.exports = function (t, n) {
- var e,
- a = r(t).constructor;return void 0 === a || null == (e = r(a)[i]) ? n : o(e);
- };
- }, 6389: function _(t, n, e) {
- var r = e(7386),
- o = e(7486),
- i = e(8320),
- a = e(3955),
- c = r("".charAt),
- u = r("".charCodeAt),
- s = r("".slice),
- l = function l(t) {
- return function (n, e) {
- var r,
- l,
- f = i(a(n)),
- d = o(e),
- v = f.length;return d < 0 || d >= v ? t ? "" : void 0 : (r = u(f, d)) < 55296 || r > 56319 || d + 1 === v || (l = u(f, d + 1)) < 56320 || l > 57343 ? t ? c(f, d) : r : t ? s(f, d, d + 2) : l - 56320 + (r - 55296 << 10) + 65536;
- };
- };t.exports = { codeAt: l(!1), charAt: l(!0) };
- }, 8117: function _(t, n, e) {
- var r,
- o,
- i,
- a,
- c = e(7583),
- u = e(1611),
- s = e(2938),
- l = e(9212),
- f = e(2870),
- d = e(6544),
- v = e(482),
- p = e(6917),
- h = e(6668),
- g = e(7520),
- m = e(7020),
- _ = e(5354),
- b = c.setImmediate,
- y = c.clearImmediate,
- w = c.process,
- E = c.Dispatch,
- L = c.Function,
- T = c.MessageChannel,
- O = c.String,
- C = 0,
- x = {},
- I = "onreadystatechange";try {
- r = c.location;
- } catch (t) {}var D = function D(t) {
- if (f(x, t)) {
- var n = x[t];delete x[t], n();
- }
- },
- R = function R(t) {
- return function () {
- D(t);
- };
- },
- k = function k(t) {
- D(t.data);
- },
- P = function P(t) {
- c.postMessage(O(t), r.protocol + "//" + r.host);
- };b && y || (b = function b(t) {
- g(arguments.length, 1);var n = l(t) ? t : L(t),
- e = p(arguments, 1);return x[++C] = function () {
- u(n, void 0, e);
- }, o(C), C;
- }, y = function y(t) {
- delete x[t];
- }, _ ? o = function o(t) {
- w.nextTick(R(t));
- } : E && E.now ? o = function o(t) {
- E.now(R(t));
- } : T && !m ? (a = (i = new T()).port2, i.port1.onmessage = k, o = s(a.postMessage, a)) : c.addEventListener && l(c.postMessage) && !c.importScripts && r && "file:" !== r.protocol && !d(P) ? (o = P, c.addEventListener("message", k, !1)) : o = I in h("script") ? function (t) {
- v.appendChild(h("script")).onreadystatechange = function () {
- v.removeChild(this), D(t);
- };
- } : function (t) {
- setTimeout(R(t), 0);
- }), t.exports = { set: b, clear: y };
- }, 6782: function _(t, n, e) {
- var r = e(7486),
- o = Math.max,
- i = Math.min;t.exports = function (t, n) {
- var e = r(t);return e < 0 ? o(e + n, 0) : i(e, n);
- };
- }, 2977: function _(t, n, e) {
- var r = e(5044),
- o = e(3955);t.exports = function (t) {
- return r(o(t));
- };
- }, 7486: function _(t) {
- var n = Math.ceil,
- e = Math.floor;t.exports = function (t) {
- var r = +t;return r != r || 0 === r ? 0 : (r > 0 ? e : n)(r);
- };
- }, 97: function _(t, n, e) {
- var r = e(7486),
- o = Math.min;t.exports = function (t) {
- return t > 0 ? o(r(t), 9007199254740991) : 0;
- };
- }, 1324: function _(t, n, e) {
- var r = e(7583),
- o = e(3955),
- i = r.Object;t.exports = function (t) {
- return i(o(t));
- };
- }, 2670: function _(t, n, e) {
- var r = e(7583),
- o = e(8262),
- i = e(794),
- a = e(5871),
- c = e(911),
- u = e(6252),
- s = e(3649),
- l = r.TypeError,
- f = s("toPrimitive");t.exports = function (t, n) {
- if (!i(t) || a(t)) return t;var e,
- r = c(t, f);if (r) {
- if (void 0 === n && (n = "default"), e = o(r, t, n), !i(e) || a(e)) return e;throw l("Can't convert object to primitive value");
- }return void 0 === n && (n = "number"), u(t, n);
- };
- }, 8734: function _(t, n, e) {
- var r = e(2670),
- o = e(5871);t.exports = function (t) {
- var n = r(t, "string");return o(n) ? n : n + "";
- };
- }, 8191: function _(t, n, e) {
- var r = {};r[e(3649)("toStringTag")] = "z", t.exports = "[object z]" === String(r);
- }, 8320: function _(t, n, e) {
- var r = e(7583),
- o = e(3058),
- i = r.String;t.exports = function (t) {
- if ("Symbol" === o(t)) throw TypeError("Cannot convert a Symbol value to a string");return i(t);
- };
- }, 5637: function _(t, n, e) {
- var r = e(7583).String;t.exports = function (t) {
- try {
- return r(t);
- } catch (t) {
- return "Object";
- }
- };
- }, 8284: function _(t, n, e) {
- var r = e(7386),
- o = 0,
- i = Math.random(),
- a = r(1..toString);t.exports = function (t) {
- return "Symbol(" + (void 0 === t ? "" : t) + ")_" + a(++o + i, 36);
- };
- }, 7786: function _(t, n, e) {
- var r = e(8640);t.exports = r && !Symbol.sham && "symbol" == _typeof(Symbol.iterator);
- }, 7670: function _(t, n, e) {
- var r = e(8494),
- o = e(6544);t.exports = r && o(function () {
- return 42 != Object.defineProperty(function () {}, "prototype", { value: 42, writable: !1 }).prototype;
- });
- }, 7520: function _(t, n, e) {
- var r = e(7583).TypeError;t.exports = function (t, n) {
- if (t < n) throw r("Not enough arguments");return t;
- };
- }, 491: function _(t, n, e) {
- var r = e(3649);n.f = r;
- }, 3649: function _(t, n, e) {
- var r = e(7583),
- o = e(7836),
- i = e(2870),
- a = e(8284),
- c = e(8640),
- u = e(7786),
- s = o("wks"),
- l = r.Symbol,
- f = l && l.for,
- d = u ? l : l && l.withoutSetter || a;t.exports = function (t) {
- if (!i(s, t) || !c && "string" != typeof s[t]) {
- var n = "Symbol." + t;c && i(l, t) ? s[t] = l[t] : s[t] = u && f ? f(n) : d(n);
- }return s[t];
- };
- }, 1719: function _(t, n, e) {
- "use strict";
- var r = e(7263),
- o = e(7583),
- i = e(2447),
- a = e(729),
- c = e(7496),
- u = e(3478),
- s = e(3590),
- l = e(57),
- f = e(4677),
- d = e(1509),
- v = e(4402),
- p = e(4026),
- h = e(2764),
- g = e(3649),
- m = e(1178),
- _ = g("toStringTag"),
- b = o.Error,
- y = [].push,
- w = function w(t, n) {
- var e,
- r = arguments.length > 2 ? arguments[2] : void 0,
- o = i(E, this);c ? e = c(new b(), o ? a(this) : E) : (e = o ? this : s(E), l(e, _, "Error")), void 0 !== n && l(e, "message", h(n)), m && l(e, "stack", d(e.stack, 1)), v(e, r);var u = [];return p(t, y, { that: u }), l(e, "errors", u), e;
- };c ? c(w, b) : u(w, b, { name: !0 });var E = w.prototype = s(b.prototype, { constructor: f(1, w), message: f(1, ""), name: f(1, "AggregateError") });r({ global: !0 }, { AggregateError: w });
- }, 1646: function _(t, n, e) {
- "use strict";
- var r = e(7263),
- o = e(7583),
- i = e(6544),
- a = e(4521),
- c = e(794),
- u = e(1324),
- s = e(1825),
- l = e(5999),
- f = e(4822),
- d = e(9269),
- v = e(3649),
- p = e(4061),
- h = v("isConcatSpreadable"),
- g = 9007199254740991,
- m = "Maximum allowed index exceeded",
- _ = o.TypeError,
- b = p >= 51 || !i(function () {
- var t = [];return t[h] = !1, t.concat()[0] !== t;
- }),
- y = d("concat"),
- w = function w(t) {
- if (!c(t)) return !1;var n = t[h];return void 0 !== n ? !!n : a(t);
- };r({ target: "Array", proto: !0, forced: !b || !y }, { concat: function concat(t) {
- var n,
- e,
- r,
- o,
- i,
- a = u(this),
- c = f(a, 0),
- d = 0;for (n = -1, r = arguments.length; n < r; n++) {
- if (w(i = -1 === n ? a : arguments[n])) {
- if (d + (o = s(i)) > g) throw _(m);for (e = 0; e < o; e++, d++) {
- e in i && l(c, d, i[e]);
- }
- } else {
- if (d >= g) throw _(m);l(c, d++, i);
- }
- }return c.length = d, c;
- } });
- }, 5677: function _(t, n, e) {
- "use strict";
- var r = e(2977),
- o = e(6288),
- i = e(339),
- a = e(2743),
- c = e(4615).f,
- u = e(9012),
- s = e(6268),
- l = e(8494),
- f = "Array Iterator",
- d = a.set,
- v = a.getterFor(f);t.exports = u(Array, "Array", function (t, n) {
- d(this, { type: f, target: r(t), index: 0, kind: n });
- }, function () {
- var t = v(this),
- n = t.target,
- e = t.kind,
- r = t.index++;return !n || r >= n.length ? (t.target = void 0, { value: void 0, done: !0 }) : "keys" == e ? { value: r, done: !1 } : "values" == e ? { value: n[r], done: !1 } : { value: [r, n[r]], done: !1 };
- }, "values");var p = i.Arguments = i.Array;if (o("keys"), o("values"), o("entries"), !s && l && "values" !== p.name) try {
- c(p, "name", { value: "values" });
- } catch (t) {}
- }, 6956: function _(t, n, e) {
- var r = e(7583);e(8821)(r.JSON, "JSON", !0);
- }, 5222: function _(t, n, e) {
- e(8821)(Math, "Math", !0);
- }, 6394: function _(t, n, e) {
- var r = e(8191),
- o = e(1270),
- i = e(3060);r || o(Object.prototype, "toString", i, { unsafe: !0 });
- }, 6969: function _(t, n, e) {
- "use strict";
- var r = e(7263),
- o = e(8262),
- i = e(8257),
- a = e(5084),
- c = e(544),
- u = e(4026);r({ target: "Promise", stat: !0 }, { allSettled: function allSettled(t) {
- var n = this,
- e = a.f(n),
- r = e.resolve,
- s = e.reject,
- l = c(function () {
- var e = i(n.resolve),
- a = [],
- c = 0,
- s = 1;u(t, function (t) {
- var i = c++,
- u = !1;s++, o(e, n, t).then(function (t) {
- u || (u = !0, a[i] = { status: "fulfilled", value: t }, --s || r(a));
- }, function (t) {
- u || (u = !0, a[i] = { status: "rejected", reason: t }, --s || r(a));
- });
- }), --s || r(a);
- });return l.error && s(l.value), e.promise;
- } });
- }, 2021: function _(t, n, e) {
- "use strict";
- var r = e(7263),
- o = e(8257),
- i = e(5897),
- a = e(8262),
- c = e(5084),
- u = e(544),
- s = e(4026),
- l = "No one promise resolved";r({ target: "Promise", stat: !0 }, { any: function any(t) {
- var n = this,
- e = i("AggregateError"),
- r = c.f(n),
- f = r.resolve,
- d = r.reject,
- v = u(function () {
- var r = o(n.resolve),
- i = [],
- c = 0,
- u = 1,
- v = !1;s(t, function (t) {
- var o = c++,
- s = !1;u++, a(r, n, t).then(function (t) {
- s || v || (v = !0, f(t));
- }, function (t) {
- s || v || (s = !0, i[o] = t, --u || d(new e(i, l)));
- });
- }), --u || d(new e(i, l));
- });return v.error && d(v.value), r.promise;
- } });
- }, 8328: function _(t, n, e) {
- "use strict";
- var r = e(7263),
- o = e(6268),
- i = e(783),
- a = e(6544),
- c = e(5897),
- u = e(9212),
- s = e(564),
- l = e(5732),
- f = e(1270);if (r({ target: "Promise", proto: !0, real: !0, forced: !!i && a(function () {
- i.prototype.finally.call({ then: function then() {} }, function () {});
- }) }, { finally: function _finally(t) {
- var n = s(this, c("Promise")),
- e = u(t);return this.then(e ? function (e) {
- return l(n, t()).then(function () {
- return e;
- });
- } : t, e ? function (e) {
- return l(n, t()).then(function () {
- throw e;
- });
- } : t);
- } }), !o && u(i)) {
- var d = c("Promise").prototype.finally;i.prototype.finally !== d && f(i.prototype, "finally", d, { unsafe: !0 });
- }
- }, 5334: function _(t, n, e) {
- "use strict";
- var r,
- o,
- i,
- a,
- c = e(7263),
- u = e(6268),
- s = e(7583),
- l = e(5897),
- f = e(8262),
- d = e(783),
- v = e(1270),
- p = e(6893),
- h = e(7496),
- g = e(8821),
- m = e(7730),
- _ = e(8257),
- b = e(9212),
- y = e(794),
- w = e(4761),
- E = e(9734),
- L = e(4026),
- T = e(3616),
- O = e(564),
- C = e(8117).set,
- x = e(2095),
- I = e(5732),
- D = e(2716),
- R = e(5084),
- k = e(544),
- P = e(2723),
- M = e(2743),
- $ = e(4451),
- S = e(3649),
- j = e(2274),
- B = e(5354),
- A = e(4061),
- U = S("species"),
- N = "Promise",
- V = M.getterFor(N),
- G = M.set,
- W = M.getterFor(N),
- K = d && d.prototype,
- F = d,
- H = K,
- q = s.TypeError,
- Z = s.document,
- X = s.process,
- z = R.f,
- Y = z,
- J = !!(Z && Z.createEvent && s.dispatchEvent),
- Q = b(s.PromiseRejectionEvent),
- tt = "unhandledrejection",
- nt = !1,
- et = $(N, function () {
- var t = E(F),
- n = t !== String(F);if (!n && 66 === A) return !0;if (u && !H.finally) return !0;if (A >= 51 && /native code/.test(t)) return !1;var e = new F(function (t) {
- t(1);
- }),
- r = function r(t) {
- t(function () {}, function () {});
- };return (e.constructor = {})[U] = r, !(nt = e.then(function () {}) instanceof r) || !n && j && !Q;
- }),
- rt = et || !T(function (t) {
- F.all(t).catch(function () {});
- }),
- ot = function ot(t) {
- var n;return !(!y(t) || !b(n = t.then)) && n;
- },
- it = function it(t, n) {
- var e,
- r,
- o,
- i = n.value,
- a = 1 == n.state,
- c = a ? t.ok : t.fail,
- u = t.resolve,
- s = t.reject,
- l = t.domain;try {
- c ? (a || (2 === n.rejection && lt(n), n.rejection = 1), !0 === c ? e = i : (l && l.enter(), e = c(i), l && (l.exit(), o = !0)), e === t.promise ? s(q("Promise-chain cycle")) : (r = ot(e)) ? f(r, e, u, s) : u(e)) : s(i);
- } catch (t) {
- l && !o && l.exit(), s(t);
- }
- },
- at = function at(t, n) {
- t.notified || (t.notified = !0, x(function () {
- for (var e, r = t.reactions; e = r.get();) {
- it(e, t);
- }t.notified = !1, n && !t.rejection && ut(t);
- }));
- },
- ct = function ct(t, n, e) {
- var r, o;J ? ((r = Z.createEvent("Event")).promise = n, r.reason = e, r.initEvent(t, !1, !0), s.dispatchEvent(r)) : r = { promise: n, reason: e }, !Q && (o = s["on" + t]) ? o(r) : t === tt && D("Unhandled promise rejection", e);
- },
- ut = function ut(t) {
- f(C, s, function () {
- var n,
- e = t.facade,
- r = t.value;if (st(t) && (n = k(function () {
- B ? X.emit("unhandledRejection", r, e) : ct(tt, e, r);
- }), t.rejection = B || st(t) ? 2 : 1, n.error)) throw n.value;
- });
- },
- st = function st(t) {
- return 1 !== t.rejection && !t.parent;
- },
- lt = function lt(t) {
- f(C, s, function () {
- var n = t.facade;B ? X.emit("rejectionHandled", n) : ct("rejectionhandled", n, t.value);
- });
- },
- ft = function ft(t, n, e) {
- return function (r) {
- t(n, r, e);
- };
- },
- dt = function dt(t, n, e) {
- t.done || (t.done = !0, e && (t = e), t.value = n, t.state = 2, at(t, !0));
- },
- vt = function t(n, e, r) {
- if (!n.done) {
- n.done = !0, r && (n = r);try {
- if (n.facade === e) throw q("Promise can't be resolved itself");var o = ot(e);o ? x(function () {
- var r = { done: !1 };try {
- f(o, e, ft(t, r, n), ft(dt, r, n));
- } catch (t) {
- dt(r, t, n);
- }
- }) : (n.value = e, n.state = 1, at(n, !1));
- } catch (t) {
- dt({ done: !1 }, t, n);
- }
- }
- };if (et && (H = (F = function F(t) {
- w(this, H), _(t), f(r, this);var n = V(this);try {
- t(ft(vt, n), ft(dt, n));
- } catch (t) {
- dt(n, t);
- }
- }).prototype, (r = function r(t) {
- G(this, { type: N, done: !1, notified: !1, parent: !1, reactions: new P(), rejection: !1, state: 0, value: void 0 });
- }).prototype = p(H, { then: function then(t, n) {
- var e = W(this),
- r = z(O(this, F));return e.parent = !0, r.ok = !b(t) || t, r.fail = b(n) && n, r.domain = B ? X.domain : void 0, 0 == e.state ? e.reactions.add(r) : x(function () {
- it(r, e);
- }), r.promise;
- }, catch: function _catch(t) {
- return this.then(void 0, t);
- } }), o = function o() {
- var t = new r(),
- n = V(t);this.promise = t, this.resolve = ft(vt, n), this.reject = ft(dt, n);
- }, R.f = z = function z(t) {
- return t === F || t === i ? new o(t) : Y(t);
- }, !u && b(d) && K !== Object.prototype)) {
- a = K.then, nt || (v(K, "then", function (t, n) {
- var e = this;return new F(function (t, n) {
- f(a, e, t, n);
- }).then(t, n);
- }, { unsafe: !0 }), v(K, "catch", H.catch, { unsafe: !0 }));try {
- delete K.constructor;
- } catch (t) {}h && h(K, H);
- }c({ global: !0, wrap: !0, forced: et }, { Promise: F }), g(F, N, !1, !0), m(N), i = l(N), c({ target: N, stat: !0, forced: et }, { reject: function reject(t) {
- var n = z(this);return f(n.reject, void 0, t), n.promise;
- } }), c({ target: N, stat: !0, forced: u || et }, { resolve: function resolve(t) {
- return I(u && this === i ? F : this, t);
- } }), c({ target: N, stat: !0, forced: rt }, { all: function all(t) {
- var n = this,
- e = z(n),
- r = e.resolve,
- o = e.reject,
- i = k(function () {
- var e = _(n.resolve),
- i = [],
- a = 0,
- c = 1;L(t, function (t) {
- var u = a++,
- s = !1;c++, f(e, n, t).then(function (t) {
- s || (s = !0, i[u] = t, --c || r(i));
- }, o);
- }), --c || r(i);
- });return i.error && o(i.value), e.promise;
- }, race: function race(t) {
- var n = this,
- e = z(n),
- r = e.reject,
- o = k(function () {
- var o = _(n.resolve);L(t, function (t) {
- f(o, n, t).then(e.resolve, r);
- });
- });return o.error && r(o.value), e.promise;
- } });
- }, 2257: function _(t, n, e) {
- var r = e(7263),
- o = e(7583),
- i = e(8821);r({ global: !0 }, { Reflect: {} }), i(o.Reflect, "Reflect", !0);
- }, 2129: function _(t, n, e) {
- "use strict";
- var r = e(6389).charAt,
- o = e(8320),
- i = e(2743),
- a = e(9012),
- c = "String Iterator",
- u = i.set,
- s = i.getterFor(c);a(String, "String", function (t) {
- u(this, { type: c, string: o(t), index: 0 });
- }, function () {
- var t,
- n = s(this),
- e = n.string,
- o = n.index;return o >= e.length ? { value: void 0, done: !0 } : (t = r(e, o), n.index += t.length, { value: t, done: !1 });
- });
- }, 462: function _(t, n, e) {
- e(2219)("asyncIterator");
- }, 8407: function _(t, n, e) {
- "use strict";
- var r = e(7263),
- o = e(8494),
- i = e(7583),
- a = e(7386),
- c = e(2870),
- u = e(9212),
- s = e(2447),
- l = e(8320),
- f = e(4615).f,
- d = e(3478),
- v = i.Symbol,
- p = v && v.prototype;if (o && u(v) && (!("description" in p) || void 0 !== v().description)) {
- var h = {},
- g = function g() {
- var t = arguments.length < 1 || void 0 === arguments[0] ? void 0 : l(arguments[0]),
- n = s(p, this) ? new v(t) : void 0 === t ? v() : v(t);return "" === t && (h[n] = !0), n;
- };d(g, v), g.prototype = p, p.constructor = g;var m = "Symbol(test)" == String(v("test")),
- _ = a(p.toString),
- b = a(p.valueOf),
- y = /^Symbol\((.*)\)[^)]+$/,
- w = a("".replace),
- E = a("".slice);f(p, "description", { configurable: !0, get: function get() {
- var t = b(this),
- n = _(t);if (c(h, t)) return "";var e = m ? E(n, 7, -1) : w(n, y, "$1");return "" === e ? void 0 : e;
- } }), r({ global: !0, forced: !0 }, { Symbol: g });
- }
- }, 2429: function _(t, n, e) {
- e(2219)("hasInstance");
- }, 1172: function _(t, n, e) {
- e(2219)("isConcatSpreadable");
- }, 8288: function _(t, n, e) {
- e(2219)("iterator");
- }, 2004: function _(t, n, e) {
- "use strict";
- var r = e(7263),
- o = e(7583),
- i = e(5897),
- a = e(1611),
- c = e(8262),
- u = e(7386),
- s = e(6268),
- l = e(8494),
- f = e(8640),
- d = e(6544),
- v = e(2870),
- p = e(4521),
- h = e(9212),
- g = e(794),
- m = e(2447),
- _ = e(5871),
- b = e(2569),
- y = e(1324),
- w = e(2977),
- E = e(8734),
- L = e(8320),
- T = e(4677),
- O = e(3590),
- C = e(5432),
- x = e(9275),
- I = e(3130),
- D = e(4012),
- R = e(6683),
- k = e(4615),
- P = e(8728),
- M = e(112),
- $ = e(6917),
- S = e(1270),
- j = e(7836),
- B = e(9137),
- A = e(4639),
- U = e(8284),
- N = e(3649),
- V = e(491),
- G = e(2219),
- W = e(8821),
- K = e(2743),
- F = e(4805).forEach,
- H = B("hidden"),
- q = "Symbol",
- Z = N("toPrimitive"),
- X = K.set,
- z = K.getterFor(q),
- Y = Object.prototype,
- J = o.Symbol,
- Q = J && J.prototype,
- tt = o.TypeError,
- nt = o.QObject,
- et = i("JSON", "stringify"),
- rt = R.f,
- ot = k.f,
- it = I.f,
- at = M.f,
- ct = u([].push),
- ut = j("symbols"),
- st = j("op-symbols"),
- lt = j("string-to-symbol-registry"),
- ft = j("symbol-to-string-registry"),
- dt = j("wks"),
- vt = !nt || !nt.prototype || !nt.prototype.findChild,
- pt = l && d(function () {
- return 7 != O(ot({}, "a", { get: function get() {
- return ot(this, "a", { value: 7 }).a;
- } })).a;
- }) ? function (t, n, e) {
- var r = rt(Y, n);r && delete Y[n], ot(t, n, e), r && t !== Y && ot(Y, n, r);
- } : ot,
- ht = function ht(t, n) {
- var e = ut[t] = O(Q);return X(e, { type: q, tag: t, description: n }), l || (e.description = n), e;
- },
- gt = function gt(t, n, e) {
- t === Y && gt(st, n, e), b(t);var r = E(n);return b(e), v(ut, r) ? (e.enumerable ? (v(t, H) && t[H][r] && (t[H][r] = !1), e = O(e, { enumerable: T(0, !1) })) : (v(t, H) || ot(t, H, T(1, {})), t[H][r] = !0), pt(t, r, e)) : ot(t, r, e);
- },
- mt = function mt(t, n) {
- b(t);var e = w(n),
- r = C(e).concat(wt(e));return F(r, function (n) {
- l && !c(_t, e, n) || gt(t, n, e[n]);
- }), t;
- },
- _t = function _t(t) {
- var n = E(t),
- e = c(at, this, n);return !(this === Y && v(ut, n) && !v(st, n)) && (!(e || !v(this, n) || !v(ut, n) || v(this, H) && this[H][n]) || e);
- },
- bt = function bt(t, n) {
- var e = w(t),
- r = E(n);if (e !== Y || !v(ut, r) || v(st, r)) {
- var o = rt(e, r);return !o || !v(ut, r) || v(e, H) && e[H][r] || (o.enumerable = !0), o;
- }
- },
- yt = function yt(t) {
- var n = it(w(t)),
- e = [];return F(n, function (t) {
- v(ut, t) || v(A, t) || ct(e, t);
- }), e;
- },
- wt = function wt(t) {
- var n = t === Y,
- e = it(n ? st : w(t)),
- r = [];return F(e, function (t) {
- !v(ut, t) || n && !v(Y, t) || ct(r, ut[t]);
- }), r;
- };(f || (J = function J() {
- if (m(Q, this)) throw tt("Symbol is not a constructor");var t = arguments.length && void 0 !== arguments[0] ? L(arguments[0]) : void 0,
- n = U(t),
- e = function t(e) {
- this === Y && c(t, st, e), v(this, H) && v(this[H], n) && (this[H][n] = !1), pt(this, n, T(1, e));
- };return l && vt && pt(Y, n, { configurable: !0, set: e }), ht(n, t);
- }, S(Q = J.prototype, "toString", function () {
- return z(this).tag;
- }), S(J, "withoutSetter", function (t) {
- return ht(U(t), t);
- }), M.f = _t, k.f = gt, P.f = mt, R.f = bt, x.f = I.f = yt, D.f = wt, V.f = function (t) {
- return ht(N(t), t);
- }, l && (ot(Q, "description", { configurable: !0, get: function get() {
- return z(this).description;
- } }), s || S(Y, "propertyIsEnumerable", _t, { unsafe: !0 }))), r({ global: !0, wrap: !0, forced: !f, sham: !f }, { Symbol: J }), F(C(dt), function (t) {
- G(t);
- }), r({ target: q, stat: !0, forced: !f }, { for: function _for(t) {
- var n = L(t);if (v(lt, n)) return lt[n];var e = J(n);return lt[n] = e, ft[e] = n, e;
- }, keyFor: function keyFor(t) {
- if (!_(t)) throw tt(t + " is not a symbol");if (v(ft, t)) return ft[t];
- }, useSetter: function useSetter() {
- vt = !0;
- }, useSimple: function useSimple() {
- vt = !1;
- } }), r({ target: "Object", stat: !0, forced: !f, sham: !l }, { create: function create(t, n) {
- return void 0 === n ? O(t) : mt(O(t), n);
- }, defineProperty: gt, defineProperties: mt, getOwnPropertyDescriptor: bt }), r({ target: "Object", stat: !0, forced: !f }, { getOwnPropertyNames: yt, getOwnPropertySymbols: wt }), r({ target: "Object", stat: !0, forced: d(function () {
- D.f(1);
- }) }, { getOwnPropertySymbols: function getOwnPropertySymbols(t) {
- return D.f(y(t));
- } }), et) && r({ target: "JSON", stat: !0, forced: !f || d(function () {
- var t = J();return "[null]" != et([t]) || "{}" != et({ a: t }) || "{}" != et(Object(t));
- }) }, { stringify: function stringify(t, n, e) {
- var r = $(arguments),
- o = n;if ((g(n) || void 0 !== t) && !_(t)) return p(n) || (n = function n(t, _n2) {
- if (h(o) && (_n2 = c(o, this, t, _n2)), !_(_n2)) return _n2;
- }), r[1] = n, a(et, null, r);
- } });if (!Q[Z]) {
- var Et = Q.valueOf;S(Q, Z, function (t) {
- return c(Et, this);
- });
- }W(J, q), A[H] = !0;
- }, 8201: function _(t, n, e) {
- e(2219)("matchAll");
- }, 1274: function _(t, n, e) {
- e(2219)("match");
- }, 6626: function _(t, n, e) {
- e(2219)("replace");
- }, 3211: function _(t, n, e) {
- e(2219)("search");
- }, 9952: function _(t, n, e) {
- e(2219)("species");
- }, 15: function _(t, n, e) {
- e(2219)("split");
- }, 9831: function _(t, n, e) {
- e(2219)("toPrimitive");
- }, 7521: function _(t, n, e) {
- e(2219)("toStringTag");
- }, 2972: function _(t, n, e) {
- e(2219)("unscopables");
- }, 4655: function _(t, n, e) {
- var r = e(7583),
- o = e(6778),
- i = e(9307),
- a = e(5677),
- c = e(57),
- u = e(3649),
- s = u("iterator"),
- l = u("toStringTag"),
- f = a.values,
- d = function d(t, n) {
- if (t) {
- if (t[s] !== f) try {
- c(t, s, f);
- } catch (n) {
- t[s] = f;
- }if (t[l] || c(t, l, n), o[n]) for (var e in a) {
- if (t[e] !== a[e]) try {
- c(t, e, a[e]);
- } catch (n) {
- t[e] = a[e];
- }
- }
- }
- };for (var v in o) {
- d(r[v] && r[v].prototype, v);
- }d(i, "DOMTokenList");
- }, 8765: function _(t, n, e) {
- var r = e(5036);e(4655), t.exports = r;
- }, 5441: function _(t, n, e) {
- var r = e(2582);e(4655), t.exports = r;
- }, 7705: function _(t) {
- "use strict";
- t.exports = function (t) {
- var n = [];return n.toString = function () {
- return this.map(function (n) {
- var e = "",
- r = void 0 !== n[5];return n[4] && (e += "@supports (".concat(n[4], ") {")), n[2] && (e += "@media ".concat(n[2], " {")), r && (e += "@layer".concat(n[5].length > 0 ? " ".concat(n[5]) : "", " {")), e += t(n), r && (e += "}"), n[2] && (e += "}"), n[4] && (e += "}"), e;
- }).join("");
- }, n.i = function (t, e, r, o, i) {
- "string" == typeof t && (t = [[null, t, void 0]]);var a = {};if (r) for (var c = 0; c < this.length; c++) {
- var u = this[c][0];null != u && (a[u] = !0);
- }for (var s = 0; s < t.length; s++) {
- var l = [].concat(t[s]);r && a[l[0]] || (void 0 !== i && (void 0 === l[5] || (l[1] = "@layer".concat(l[5].length > 0 ? " ".concat(l[5]) : "", " {").concat(l[1], "}")), l[5] = i), e && (l[2] ? (l[1] = "@media ".concat(l[2], " {").concat(l[1], "}"), l[2] = e) : l[2] = e), o && (l[4] ? (l[1] = "@supports (".concat(l[4], ") {").concat(l[1], "}"), l[4] = o) : l[4] = "".concat(o)), n.push(l));
- }
- }, n;
- };
- }, 6738: function _(t) {
- "use strict";
- t.exports = function (t) {
- return t[1];
- };
- }, 8679: function _(t) {
- var n = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
- e = window.WeakMap;if (void 0 === e) {
- var r = Object.defineProperty,
- o = Date.now() % 1e9;(e = function e() {
- this.name = "__st" + (1e9 * Math.random() >>> 0) + o++ + "__";
- }).prototype = { set: function set(t, n) {
- var e = t[this.name];return e && e[0] === t ? e[1] = n : r(t, this.name, { value: [t, n], writable: !0 }), this;
- }, get: function get(t) {
- var n;return (n = t[this.name]) && n[0] === t ? n[1] : void 0;
- }, delete: function _delete(t) {
- var n = t[this.name];if (!n) return !1;var e = n[0] === t;return n[0] = n[1] = void 0, e;
- }, has: function has(t) {
- var n = t[this.name];return !!n && n[0] === t;
- } };
- }var i = new e(),
- a = window.msSetImmediate;if (!a) {
- var c = [],
- u = String(Math.random());window.addEventListener("message", function (t) {
- if (t.data === u) {
- var n = c;c = [], n.forEach(function (t) {
- t();
- });
- }
- }), a = function a(t) {
- c.push(t), window.postMessage(u, "*");
- };
- }var s = !1,
- l = [];function f() {
- s = !1;var t = l;l = [], t.sort(function (t, n) {
- return t.uid_ - n.uid_;
- });var n = !1;t.forEach(function (t) {
- var e = t.takeRecords();!function (t) {
- t.nodes_.forEach(function (n) {
- var e = i.get(n);e && e.forEach(function (n) {
- n.observer === t && n.removeTransientObservers();
- });
- });
- }(t), e.length && (t.callback_(e, t), n = !0);
- }), n && f();
- }function d(t, n) {
- for (var e = t; e; e = e.parentNode) {
- var r = i.get(e);if (r) for (var o = 0; o < r.length; o++) {
- var a = r[o],
- c = a.options;if (e === t || c.subtree) {
- var u = n(c);u && a.enqueue(u);
- }
- }
- }
- }var v,
- p,
- h = 0;function g(t) {
- this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++h;
- }function m(t, n) {
- this.type = t, this.target = n, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;
- }function _(t, n) {
- return v = new m(t, n);
- }function b(t) {
- return p || ((e = new m((n = v).type, n.target)).addedNodes = n.addedNodes.slice(), e.removedNodes = n.removedNodes.slice(), e.previousSibling = n.previousSibling, e.nextSibling = n.nextSibling, e.attributeName = n.attributeName, e.attributeNamespace = n.attributeNamespace, e.oldValue = n.oldValue, (p = e).oldValue = t, p);var n, e;
- }function y(t, n) {
- return t === n ? t : p && ((e = t) === p || e === v) ? p : null;var e;
- }function w(t, n, e) {
- this.observer = t, this.target = n, this.options = e, this.transientObservedNodes = [];
- }g.prototype = { observe: function observe(t, n) {
- var e;if (e = t, t = window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(e) || e, !n.childList && !n.attributes && !n.characterData || n.attributeOldValue && !n.attributes || n.attributeFilter && n.attributeFilter.length && !n.attributes || n.characterDataOldValue && !n.characterData) throw new SyntaxError();var r,
- o = i.get(t);o || i.set(t, o = []);for (var a = 0; a < o.length; a++) {
- if (o[a].observer === this) {
- (r = o[a]).removeListeners(), r.options = n;break;
- }
- }r || (r = new w(this, t, n), o.push(r), this.nodes_.push(t)), r.addListeners();
- }, disconnect: function disconnect() {
- this.nodes_.forEach(function (t) {
- for (var n = i.get(t), e = 0; e < n.length; e++) {
- var r = n[e];if (r.observer === this) {
- r.removeListeners(), n.splice(e, 1);break;
- }
- }
- }, this), this.records_ = [];
- }, takeRecords: function takeRecords() {
- var t = this.records_;return this.records_ = [], t;
- } }, w.prototype = { enqueue: function enqueue(t) {
- var n,
- e = this.observer.records_,
- r = e.length;if (e.length > 0) {
- var o = y(e[r - 1], t);if (o) return void (e[r - 1] = o);
- } else n = this.observer, l.push(n), s || (s = !0, a(f));e[r] = t;
- }, addListeners: function addListeners() {
- this.addListeners_(this.target);
- }, addListeners_: function addListeners_(t) {
- var n = this.options;n.attributes && t.addEventListener("DOMAttrModified", this, !0), n.characterData && t.addEventListener("DOMCharacterDataModified", this, !0), n.childList && t.addEventListener("DOMNodeInserted", this, !0), (n.childList || n.subtree) && t.addEventListener("DOMNodeRemoved", this, !0);
- }, removeListeners: function removeListeners() {
- this.removeListeners_(this.target);
- }, removeListeners_: function removeListeners_(t) {
- var n = this.options;n.attributes && t.removeEventListener("DOMAttrModified", this, !0), n.characterData && t.removeEventListener("DOMCharacterDataModified", this, !0), n.childList && t.removeEventListener("DOMNodeInserted", this, !0), (n.childList || n.subtree) && t.removeEventListener("DOMNodeRemoved", this, !0);
- }, addTransientObserver: function addTransientObserver(t) {
- if (t !== this.target) {
- this.addListeners_(t), this.transientObservedNodes.push(t);var n = i.get(t);n || i.set(t, n = []), n.push(this);
- }
- }, removeTransientObservers: function removeTransientObservers() {
- var t = this.transientObservedNodes;this.transientObservedNodes = [], t.forEach(function (t) {
- this.removeListeners_(t);for (var n = i.get(t), e = 0; e < n.length; e++) {
- if (n[e] === this) {
- n.splice(e, 1);break;
- }
- }
- }, this);
- }, handleEvent: function handleEvent(t) {
- switch (t.stopImmediatePropagation(), t.type) {case "DOMAttrModified":
- var n = t.attrName,
- e = t.relatedNode.namespaceURI,
- r = t.target;(i = new _("attributes", r)).attributeName = n, i.attributeNamespace = e;var o = null;"undefined" != typeof MutationEvent && t.attrChange === MutationEvent.ADDITION || (o = t.prevValue), d(r, function (t) {
- if (t.attributes && (!t.attributeFilter || !t.attributeFilter.length || -1 !== t.attributeFilter.indexOf(n) || -1 !== t.attributeFilter.indexOf(e))) return t.attributeOldValue ? b(o) : i;
- });break;case "DOMCharacterDataModified":
- var i = _("characterData", r = t.target);o = t.prevValue;d(r, function (t) {
- if (t.characterData) return t.characterDataOldValue ? b(o) : i;
- });break;case "DOMNodeRemoved":
- this.addTransientObserver(t.target);case "DOMNodeInserted":
- r = t.relatedNode;var a,
- c,
- u = t.target;"DOMNodeInserted" === t.type ? (a = [u], c = []) : (a = [], c = [u]);var s = u.previousSibling,
- l = u.nextSibling;(i = _("childList", r)).addedNodes = a, i.removedNodes = c, i.previousSibling = s, i.nextSibling = l, d(r, function (t) {
- if (t.childList) return i;
- });}v = p = void 0;
- } }, n || (n = g), t.exports = n;
- }, 7588: function _(t) {
- var n = function (t) {
- "use strict";
- var n,
- e = Object.prototype,
- r = e.hasOwnProperty,
- o = "function" == typeof Symbol ? Symbol : {},
- i = o.iterator || "@@iterator",
- a = o.asyncIterator || "@@asyncIterator",
- c = o.toStringTag || "@@toStringTag";function u(t, n, e) {
- return Object.defineProperty(t, n, { value: e, enumerable: !0, configurable: !0, writable: !0 }), t[n];
- }try {
- u({}, "");
- } catch (t) {
- u = function u(t, n, e) {
- return t[n] = e;
- };
- }function s(t, n, e, r) {
- var o = n && n.prototype instanceof g ? n : g,
- i = Object.create(o.prototype),
- a = new I(r || []);return i._invoke = function (t, n, e) {
- var r = f;return function (o, i) {
- if (r === v) throw new Error("Generator is already running");if (r === p) {
- if ("throw" === o) throw i;return R();
- }for (e.method = o, e.arg = i;;) {
- var a = e.delegate;if (a) {
- var c = O(a, e);if (c) {
- if (c === h) continue;return c;
- }
- }if ("next" === e.method) e.sent = e._sent = e.arg;else if ("throw" === e.method) {
- if (r === f) throw r = p, e.arg;e.dispatchException(e.arg);
- } else "return" === e.method && e.abrupt("return", e.arg);r = v;var u = l(t, n, e);if ("normal" === u.type) {
- if (r = e.done ? p : d, u.arg === h) continue;return { value: u.arg, done: e.done };
- }"throw" === u.type && (r = p, e.method = "throw", e.arg = u.arg);
- }
- };
- }(t, e, a), i;
- }function l(t, n, e) {
- try {
- return { type: "normal", arg: t.call(n, e) };
- } catch (t) {
- return { type: "throw", arg: t };
- }
- }t.wrap = s;var f = "suspendedStart",
- d = "suspendedYield",
- v = "executing",
- p = "completed",
- h = {};function g() {}function m() {}function _() {}var b = {};u(b, i, function () {
- return this;
- });var y = Object.getPrototypeOf,
- w = y && y(y(D([])));w && w !== e && r.call(w, i) && (b = w);var E = _.prototype = g.prototype = Object.create(b);function L(t) {
- ["next", "throw", "return"].forEach(function (n) {
- u(t, n, function (t) {
- return this._invoke(n, t);
- });
- });
- }function T(t, n) {
- function e(o, i, a, c) {
- var u = l(t[o], t, i);if ("throw" !== u.type) {
- var s = u.arg,
- f = s.value;return f && "object" == (typeof f === "undefined" ? "undefined" : _typeof(f)) && r.call(f, "__await") ? n.resolve(f.__await).then(function (t) {
- e("next", t, a, c);
- }, function (t) {
- e("throw", t, a, c);
- }) : n.resolve(f).then(function (t) {
- s.value = t, a(s);
- }, function (t) {
- return e("throw", t, a, c);
- });
- }c(u.arg);
- }var o;this._invoke = function (t, r) {
- function i() {
- return new n(function (n, o) {
- e(t, r, n, o);
- });
- }return o = o ? o.then(i, i) : i();
- };
- }function O(t, e) {
- var r = t.iterator[e.method];if (r === n) {
- if (e.delegate = null, "throw" === e.method) {
- if (t.iterator.return && (e.method = "return", e.arg = n, O(t, e), "throw" === e.method)) return h;e.method = "throw", e.arg = new TypeError("The iterator does not provide a 'throw' method");
- }return h;
- }var o = l(r, t.iterator, e.arg);if ("throw" === o.type) return e.method = "throw", e.arg = o.arg, e.delegate = null, h;var i = o.arg;return i ? i.done ? (e[t.resultName] = i.value, e.next = t.nextLoc, "return" !== e.method && (e.method = "next", e.arg = n), e.delegate = null, h) : i : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, h);
- }function C(t) {
- var n = { tryLoc: t[0] };1 in t && (n.catchLoc = t[1]), 2 in t && (n.finallyLoc = t[2], n.afterLoc = t[3]), this.tryEntries.push(n);
- }function x(t) {
- var n = t.completion || {};n.type = "normal", delete n.arg, t.completion = n;
- }function I(t) {
- this.tryEntries = [{ tryLoc: "root" }], t.forEach(C, this), this.reset(!0);
- }function D(t) {
- if (t) {
- var e = t[i];if (e) return e.call(t);if ("function" == typeof t.next) return t;if (!isNaN(t.length)) {
- var o = -1,
- a = function e() {
- for (; ++o < t.length;) {
- if (r.call(t, o)) return e.value = t[o], e.done = !1, e;
- }return e.value = n, e.done = !0, e;
- };return a.next = a;
- }
- }return { next: R };
- }function R() {
- return { value: n, done: !0 };
- }return m.prototype = _, u(E, "constructor", _), u(_, "constructor", m), m.displayName = u(_, c, "GeneratorFunction"), t.isGeneratorFunction = function (t) {
- var n = "function" == typeof t && t.constructor;return !!n && (n === m || "GeneratorFunction" === (n.displayName || n.name));
- }, t.mark = function (t) {
- return Object.setPrototypeOf ? Object.setPrototypeOf(t, _) : (t.__proto__ = _, u(t, c, "GeneratorFunction")), t.prototype = Object.create(E), t;
- }, t.awrap = function (t) {
- return { __await: t };
- }, L(T.prototype), u(T.prototype, a, function () {
- return this;
- }), t.AsyncIterator = T, t.async = function (n, e, r, o, i) {
- void 0 === i && (i = Promise);var a = new T(s(n, e, r, o), i);return t.isGeneratorFunction(e) ? a : a.next().then(function (t) {
- return t.done ? t.value : a.next();
- });
- }, L(E), u(E, c, "Generator"), u(E, i, function () {
- return this;
- }), u(E, "toString", function () {
- return "[object Generator]";
- }), t.keys = function (t) {
- var n = [];for (var e in t) {
- n.push(e);
- }return n.reverse(), function e() {
- for (; n.length;) {
- var r = n.pop();if (r in t) return e.value = r, e.done = !1, e;
- }return e.done = !0, e;
- };
- }, t.values = D, I.prototype = { constructor: I, reset: function reset(t) {
- if (this.prev = 0, this.next = 0, this.sent = this._sent = n, this.done = !1, this.delegate = null, this.method = "next", this.arg = n, this.tryEntries.forEach(x), !t) for (var e in this) {
- "t" === e.charAt(0) && r.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = n);
- }
- }, stop: function stop() {
- this.done = !0;var t = this.tryEntries[0].completion;if ("throw" === t.type) throw t.arg;return this.rval;
- }, dispatchException: function dispatchException(t) {
- if (this.done) throw t;var e = this;function o(r, o) {
- return c.type = "throw", c.arg = t, e.next = r, o && (e.method = "next", e.arg = n), !!o;
- }for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var a = this.tryEntries[i],
- c = a.completion;if ("root" === a.tryLoc) return o("end");if (a.tryLoc <= this.prev) {
- var u = r.call(a, "catchLoc"),
- s = r.call(a, "finallyLoc");if (u && s) {
- if (this.prev < a.catchLoc) return o(a.catchLoc, !0);if (this.prev < a.finallyLoc) return o(a.finallyLoc);
- } else if (u) {
- if (this.prev < a.catchLoc) return o(a.catchLoc, !0);
- } else {
- if (!s) throw new Error("try statement without catch or finally");if (this.prev < a.finallyLoc) return o(a.finallyLoc);
- }
- }
- }
- }, abrupt: function abrupt(t, n) {
- for (var e = this.tryEntries.length - 1; e >= 0; --e) {
- var o = this.tryEntries[e];if (o.tryLoc <= this.prev && r.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
- var i = o;break;
- }
- }i && ("break" === t || "continue" === t) && i.tryLoc <= n && n <= i.finallyLoc && (i = null);var a = i ? i.completion : {};return a.type = t, a.arg = n, i ? (this.method = "next", this.next = i.finallyLoc, h) : this.complete(a);
- }, complete: function complete(t, n) {
- if ("throw" === t.type) throw t.arg;return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && n && (this.next = n), h;
- }, finish: function finish(t) {
- for (var n = this.tryEntries.length - 1; n >= 0; --n) {
- var e = this.tryEntries[n];if (e.finallyLoc === t) return this.complete(e.completion, e.afterLoc), x(e), h;
- }
- }, catch: function _catch(t) {
- for (var n = this.tryEntries.length - 1; n >= 0; --n) {
- var e = this.tryEntries[n];if (e.tryLoc === t) {
- var r = e.completion;if ("throw" === r.type) {
- var o = r.arg;x(e);
- }return o;
- }
- }throw new Error("illegal catch attempt");
- }, delegateYield: function delegateYield(t, e, r) {
- return this.delegate = { iterator: D(t), resultName: e, nextLoc: r }, "next" === this.method && (this.arg = n), h;
- } }, t;
- }(t.exports);try {
- regeneratorRuntime = n;
- } catch (t) {
- "object" == (typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) ? globalThis.regeneratorRuntime = n : Function("r", "regeneratorRuntime = r")(n);
- }
- }, 6958: function _(t, n, e) {
- "use strict";
- e.d(n, { Z: function Z() {
- return j;
- } });var r = e(4296),
- o = e(6464),
- i = e(6881),
- a = e(2942),
- c = e(7003),
- u = e(3379),
- s = e.n(u),
- l = e(7795),
- f = e.n(l),
- d = e(569),
- v = e.n(d),
- p = e(3565),
- h = e.n(p),
- g = e(9216),
- m = e.n(g),
- _ = e(4589),
- b = e.n(_),
- y = e(9746),
- w = {};y.Z && y.Z.locals && (w.locals = y.Z.locals);var E,
- L = 0,
- T = {};T.styleTagTransform = b(), T.setAttributes = h(), T.insert = v().bind(null, "head"), T.domAPI = f(), T.insertStyleElement = m(), w.use = function (t) {
- return T.options = t || {}, L++ || (E = s()(y.Z, T)), w;
- }, w.unuse = function () {
- L > 0 && ! --L && (E(), E = null);
- };var O = w;function C(t) {
- var n, e;return { c: function c() {
- n = (0, a.bi5)("svg"), e = (0, a.bi5)("path"), (0, a.Ljt)(e, "d", "M599.99999 832.000004h47.999999a24 24 0 0 0 23.999999-24V376.000013a24 24 0 0 0-23.999999-24h-47.999999a24 24 0 0 0-24 24v431.999991a24 24 0 0 0 24 24zM927.999983 160.000017h-164.819997l-67.999998-113.399998A95.999998 95.999998 0 0 0 612.819989 0.00002H411.179993a95.999998 95.999998 0 0 0-82.319998 46.599999L260.819996 160.000017H95.999999A31.999999 31.999999 0 0 0 64 192.000016v32a31.999999 31.999999 0 0 0 31.999999 31.999999h32v671.999987a95.999998 95.999998 0 0 0 95.999998 95.999998h575.999989a95.999998 95.999998 0 0 0 95.999998-95.999998V256.000015h31.999999a31.999999 31.999999 0 0 0 32-31.999999V192.000016a31.999999 31.999999 0 0 0-32-31.999999zM407.679993 101.820018A12 12 0 0 1 417.999993 96.000018h187.999996a12 12 0 0 1 10.3 5.82L651.219989 160.000017H372.779994zM799.999986 928.000002H223.999997V256.000015h575.999989z m-423.999992-95.999998h47.999999a24 24 0 0 0 24-24V376.000013a24 24 0 0 0-24-24h-47.999999a24 24 0 0 0-24 24v431.999991a24 24 0 0 0 24 24z"), (0, a.Ljt)(n, "class", "vc-icon-delete"), (0, a.Ljt)(n, "viewBox", "0 0 1024 1024"), (0, a.Ljt)(n, "width", "200"), (0, a.Ljt)(n, "height", "200");
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), (0, a.R3I)(n, e);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function x(t) {
- var n, e, r;return { c: function c() {
- n = (0, a.bi5)("svg"), e = (0, a.bi5)("path"), r = (0, a.bi5)("path"), (0, a.Ljt)(e, "d", "M874.154197 150.116875A511.970373 511.970373 0 1 0 1023.993986 511.991687a511.927744 511.927744 0 0 0-149.839789-361.874812z m-75.324866 648.382129A405.398688 405.398688 0 1 1 917.422301 511.991687a405.313431 405.313431 0 0 1-118.59297 286.507317z"), (0, a.Ljt)(r, "d", "M725.039096 299.274605a54.351559 54.351559 0 0 0-76.731613 0l-135.431297 135.431297L377.274375 299.274605a54.436817 54.436817 0 0 0-76.944756 76.987385l135.388668 135.431297-135.388668 135.473925a54.436817 54.436817 0 0 0 76.944756 76.987385l135.388668-135.431297 135.431297 135.473926a54.436817 54.436817 0 0 0 76.731613-76.987385l-135.388668-135.473926 135.388668-135.431296a54.479445 54.479445 0 0 0 0.213143-77.030014z"), (0, a.Ljt)(n, "viewBox", "0 0 1024 1024"), (0, a.Ljt)(n, "width", "200"), (0, a.Ljt)(n, "height", "200");
- }, m: function m(t, o) {
- (0, a.$Tr)(t, n, o), (0, a.R3I)(n, e), (0, a.R3I)(n, r);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function I(t) {
- var n, e;return { c: function c() {
- n = (0, a.bi5)("svg"), e = (0, a.bi5)("path"), (0, a.Ljt)(e, "fill-rule", "evenodd"), (0, a.Ljt)(e, "d", "M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"), (0, a.Ljt)(n, "class", "vc-icon-copy"), (0, a.Ljt)(n, "viewBox", "0 0 16 16");
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), (0, a.R3I)(n, e);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function D(t) {
- var n, e;return { c: function c() {
- n = (0, a.bi5)("svg"), e = (0, a.bi5)("path"), (0, a.Ljt)(e, "fill-rule", "evenodd"), (0, a.Ljt)(e, "d", "M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"), (0, a.Ljt)(n, "class", "vc-icon-suc"), (0, a.Ljt)(n, "viewBox", "0 0 16 16");
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), (0, a.R3I)(n, e);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function R(t) {
- var n, e, r;return { c: function c() {
- n = (0, a.bi5)("svg"), e = (0, a.bi5)("path"), r = (0, a.bi5)("path"), (0, a.Ljt)(e, "d", "M776.533333 1024 162.133333 1024C72.533333 1024 0 951.466667 0 861.866667L0 247.466667C0 157.866667 72.533333 85.333333 162.133333 85.333333L469.333333 85.333333c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667L162.133333 170.666667C119.466667 170.666667 85.333333 204.8 85.333333 247.466667l0 610.133333c0 42.666667 34.133333 76.8 76.8 76.8l610.133333 0c42.666667 0 76.8-34.133333 76.8-76.8L849.066667 554.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 307.2C938.666667 951.466667 866.133333 1024 776.533333 1024z"), (0, a.Ljt)(r, "d", "M256 810.666667c-12.8 0-21.333333-4.266667-29.866667-12.8C217.6 789.333333 213.333333 772.266667 213.333333 759.466667l42.666667-213.333333c0-8.533333 4.266667-17.066667 12.8-21.333333l512-512c17.066667-17.066667 42.666667-17.066667 59.733333 0l170.666667 170.666667c17.066667 17.066667 17.066667 42.666667 0 59.733333l-512 512c-4.266667 4.266667-12.8 8.533333-21.333333 12.8l-213.333333 42.666667C260.266667 810.666667 260.266667 810.666667 256 810.666667zM337.066667 576l-25.6 136.533333 136.533333-25.6L921.6 213.333333 810.666667 102.4 337.066667 576z"), (0, a.Ljt)(n, "class", "vc-icon-edit"), (0, a.Ljt)(n, "viewBox", "0 0 1024 1024"), (0, a.Ljt)(n, "width", "200"), (0, a.Ljt)(n, "height", "200");
- }, m: function m(t, o) {
- (0, a.$Tr)(t, n, o), (0, a.R3I)(n, e), (0, a.R3I)(n, r);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function k(t) {
- var n, e;return { c: function c() {
- n = (0, a.bi5)("svg"), e = (0, a.bi5)("path"), (0, a.Ljt)(e, "d", "M581.338005 987.646578c-2.867097 4.095853-4.573702 8.669555-8.191705 12.287558a83.214071 83.214071 0 0 1-60.959939 24.029001 83.214071 83.214071 0 0 1-61.028203-24.029001c-3.618003-3.618003-5.324608-8.191705-8.123441-12.15103L24.370323 569.050448a83.418864 83.418864 0 0 1 117.892289-117.89229l369.923749 369.92375L1308.829682 24.438587A83.418864 83.418864 0 0 1 1426.721971 142.194348L581.338005 987.646578z"), (0, a.Ljt)(n, "class", "vc-icon-don"), (0, a.Ljt)(n, "viewBox", "0 0 1501 1024"), (0, a.Ljt)(n, "width", "200"), (0, a.Ljt)(n, "height", "200");
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), (0, a.R3I)(n, e);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function P(t) {
- var n, e;return { c: function c() {
- n = (0, a.bi5)("svg"), e = (0, a.bi5)("path"), (0, a.Ljt)(e, "d", "M894.976 574.464q0 78.848-29.696 148.48t-81.408 123.392-121.856 88.064-151.04 41.472q-5.12 1.024-9.216 1.536t-9.216 0.512l-177.152 0q-17.408 0-34.304-6.144t-30.208-16.896-22.016-25.088-8.704-29.696 8.192-29.696 21.504-24.576 29.696-16.384 33.792-6.144l158.72 1.024q54.272 0 102.4-19.968t83.968-53.76 56.32-79.36 20.48-97.792q0-49.152-18.432-92.16t-50.688-76.8-75.264-54.784-93.184-26.112q-2.048 0-2.56 0.512t-2.56 0.512l-162.816 0 0 80.896q0 17.408-13.824 25.6t-44.544-10.24q-8.192-5.12-26.112-17.92t-41.984-30.208-50.688-36.864l-51.2-38.912q-15.36-12.288-26.624-22.016t-11.264-24.064q0-12.288 12.8-25.6t29.184-26.624q18.432-15.36 44.032-35.84t50.688-39.936 45.056-35.328 28.16-22.016q24.576-17.408 39.936-7.168t16.384 30.72l0 81.92 162.816 0q5.12 0 10.752 1.024t10.752 2.048q79.872 8.192 149.504 41.984t121.344 87.552 80.896 123.392 29.184 147.456z"), (0, a.Ljt)(n, "class", "vc-icon-cancel"), (0, a.Ljt)(n, "viewBox", "0 0 1024 1024"), (0, a.Ljt)(n, "width", "200"), (0, a.Ljt)(n, "height", "200");
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), (0, a.R3I)(n, e);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function M(t) {
- var n,
- e,
- r,
- o,
- i,
- _c,
- u,
- s,
- l,
- f = "delete" === t[0] && C(),
- _d = "clear" === t[0] && x(),
- v = "copy" === t[0] && I(),
- _p = "success" === t[0] && D(),
- h = "edit" === t[0] && R(),
- g = "done" === t[0] && k(),
- _m = "cancel" === t[0] && P();return { c: function c() {
- n = (0, a.bGB)("i"), f && f.c(), e = (0, a.DhX)(), _d && _d.c(), r = (0, a.DhX)(), v && v.c(), o = (0, a.DhX)(), _p && _p.c(), i = (0, a.DhX)(), h && h.c(), _c = (0, a.DhX)(), g && g.c(), u = (0, a.DhX)(), _m && _m.c(), (0, a.Ljt)(n, "class", "vc-icon");
- }, m: function m(_, b) {
- (0, a.$Tr)(_, n, b), f && f.m(n, null), (0, a.R3I)(n, e), _d && _d.m(n, null), (0, a.R3I)(n, r), v && v.m(n, null), (0, a.R3I)(n, o), _p && _p.m(n, null), (0, a.R3I)(n, i), h && h.m(n, null), (0, a.R3I)(n, _c), g && g.m(n, null), (0, a.R3I)(n, u), _m && _m.m(n, null), s || (l = (0, a.oLt)(n, "click", t[1]), s = !0);
- }, p: function p(t, a) {
- a[0];"delete" === t[0] ? f || ((f = C()).c(), f.m(n, e)) : f && (f.d(1), f = null), "clear" === t[0] ? _d || ((_d = x()).c(), _d.m(n, r)) : _d && (_d.d(1), _d = null), "copy" === t[0] ? v || ((v = I()).c(), v.m(n, o)) : v && (v.d(1), v = null), "success" === t[0] ? _p || ((_p = D()).c(), _p.m(n, i)) : _p && (_p.d(1), _p = null), "edit" === t[0] ? h || ((h = R()).c(), h.m(n, _c)) : h && (h.d(1), h = null), "done" === t[0] ? g || ((g = k()).c(), g.m(n, u)) : g && (g.d(1), g = null), "cancel" === t[0] ? _m || ((_m = P()).c(), _m.m(n, null)) : _m && (_m.d(1), _m = null);
- }, i: a.ZTd, o: a.ZTd, d: function d(t) {
- t && (0, a.ogt)(n), f && f.d(), _d && _d.d(), v && v.d(), _p && _p.d(), h && h.d(), g && g.d(), _m && _m.d(), s = !1, l();
- } };
- }function $(t, n, e) {
- var r = n.name;return (0, c.H3)(function () {
- O.use();
- }), (0, c.ev)(function () {
- O.unuse();
- }), t.$$set = function (t) {
- "name" in t && e(0, r = t.name);
- }, [r, function (n) {
- a.cKT.call(this, t, n);
- }];
- }var S = function (t) {
- function n(n) {
- var e;return e = t.call(this) || this, (0, a.S1n)((0, o.Z)(e), n, $, M, a.N8, { name: 0 }), e;
- }return (0, i.Z)(n, t), (0, r.Z)(n, [{ key: "name", get: function get() {
- return this.$$.ctx[0];
- }, set: function set(t) {
- this.$$set({ name: t }), (0, a.yl1)();
- } }]), n;
- }(a.f_C),
- j = S;
- }, 3903: function _(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
- "use strict";
- var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6464),
- _babel_runtime_helpers_inheritsLoose__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6881),
- svelte_internal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2942),
- svelte__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7003),
- _component_icon_svelte__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6958),
- _logTool__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(8665),
- _log_model__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5629),
- _logCommand_less__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3411);function get_each_context(t, n, e) {
- var r = t.slice();return r[28] = n[e], r;
- }function create_if_block_2(t) {
- var n, e, r;return { c: function c() {
- (n = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("li")).textContent = "Close", (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n, "class", "vc-cmd-prompted-hide");
- }, m: function m(o, i) {
- (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(o, n, i), e || (r = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n, "click", t[5]), e = !0);
- }, p: svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd, d: function d(t) {
- t && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n), e = !1, r();
- } };
- }function create_else_block(t) {
- var n;return { c: function c() {
- (n = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("li")).textContent = "No Prompted";
- }, m: function m(t, e) {
- (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(t, n, e);
- }, p: svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd, d: function d(t) {
- t && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n);
- } };
- }function create_each_block(t) {
- var n,
- e,
- r,
- o,
- i = t[28].text + "";function a() {
- return t[14](t[28]);
- }return { c: function c() {
- n = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("li"), e = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.fLW)(i);
- }, m: function m(t, i) {
- (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(t, n, i), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n, e), r || (o = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n, "click", a), r = !0);
- }, p: function p(n, r) {
- t = n, 8 & r && i !== (i = t[28].text + "") && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.rTO)(e, i);
- }, d: function d(t) {
- t && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n), r = !1, o();
- } };
- }function create_if_block_1(t) {
- var n, e, r, o, i;return e = new _component_icon_svelte__WEBPACK_IMPORTED_MODULE_2__.Z({ props: { name: "clear" } }), { c: function c() {
- n = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.YCL)(e.$$.fragment), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n, "class", "vc-cmd-clear-btn");
- }, m: function m(a, c) {
- (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(a, n, c), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.yef)(e, n, null), r = !0, o || (i = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n, "click", (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[15])), o = !0);
- }, p: svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd, i: function i(t) {
- r || ((0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(e.$$.fragment, t), r = !0);
- }, o: function o(t) {
- (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(e.$$.fragment, t), r = !1;
- }, d: function d(t) {
- t && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.vpE)(e), o = !1, i();
- } };
- }function create_if_block(t) {
- var n, e, r, o, i;return e = new _component_icon_svelte__WEBPACK_IMPORTED_MODULE_2__.Z({ props: { name: "clear" } }), { c: function c() {
- n = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.YCL)(e.$$.fragment), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n, "class", "vc-cmd-clear-btn");
- }, m: function m(a, c) {
- (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(a, n, c), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.yef)(e, n, null), r = !0, o || (i = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n, "click", (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[18])), o = !0);
- }, p: svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd, i: function i(t) {
- r || ((0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(e.$$.fragment, t), r = !0);
- }, o: function o(t) {
- (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(e.$$.fragment, t), r = !1;
- }, d: function d(t) {
- t && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.vpE)(e), o = !1, i();
- } };
- }function create_fragment(t) {
- for (var n, e, r, o, i, a, _c2, u, s, l, f, d, v, p, h, g, _m2, _, b, y, w, E = t[3].length > 0 && create_if_block_2(t), L = t[3], T = [], O = 0; O < L.length; O += 1) {
- T[O] = create_each_block(get_each_context(t, L, O));
- }var C = null;L.length || (C = create_else_block(t));var x = t[1].length > 0 && create_if_block_1(t),
- I = t[4].length > 0 && create_if_block(t);return { c: function c() {
- n = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("form"), (e = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("button")).textContent = "OK", r = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(), o = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("ul"), E && E.c(), i = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)();for (var b = 0; b < T.length; b += 1) {
- T[b].c();
- }C && C.c(), a = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(), _c2 = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"), x && x.c(), u = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(), s = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("textarea"), l = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(), f = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("form"), (d = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("button")).textContent = "Filter", v = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(), p = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("ul"), h = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(), g = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"), I && I.c(), _m2 = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(), _ = (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("textarea"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(e, "class", "vc-cmd-btn"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(e, "type", "submit"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(o, "class", "vc-cmd-prompted"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(o, "style", t[2]), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(s, "class", "vc-cmd-input"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(s, "placeholder", "command..."), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(_c2, "class", "vc-cmd-input-wrap"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n, "class", "vc-cmd"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(d, "class", "vc-cmd-btn"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(d, "type", "submit"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(p, "class", "vc-cmd-prompted"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(_, "class", "vc-cmd-input"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(_, "placeholder", "filter..."), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(g, "class", "vc-cmd-input-wrap"), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(f, "class", "vc-cmd vc-filter");
- }, m: function m(L, O) {
- (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(L, n, O), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n, e), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n, r), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n, o), E && E.m(o, null), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(o, i);for (var D = 0; D < T.length; D += 1) {
- T[D].m(o, null);
- }C && C.m(o, null), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n, a), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n, _c2), x && x.m(_c2, null), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(_c2, u), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(_c2, s), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(s, t[1]), t[17](s), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(L, l, O), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(L, f, O), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f, d), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f, v), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f, p), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f, h), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f, g), I && I.m(g, null), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(g, _m2), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(g, _), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(_, t[4]), b = !0, y || (w = [(0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(s, "input", t[16]), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(s, "keydown", t[10]), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(s, "keyup", t[11]), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(s, "focus", t[8]), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(s, "blur", t[9]), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n, "submit", (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[12])), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(_, "input", t[19]), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(f, "submit", (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[13]))], y = !0);
- }, p: function p(t, n) {
- var e = n[0];if (t[3].length > 0 ? E ? E.p(t, e) : ((E = create_if_block_2(t)).c(), E.m(o, i)) : E && (E.d(1), E = null), 136 & e) {
- var r;for (L = t[3], r = 0; r < L.length; r += 1) {
- var a = get_each_context(t, L, r);T[r] ? T[r].p(a, e) : (T[r] = create_each_block(a), T[r].c(), T[r].m(o, null));
- }for (; r < T.length; r += 1) {
- T[r].d(1);
- }T.length = L.length, !L.length && C ? C.p(t, e) : L.length ? C && (C.d(1), C = null) : ((C = create_else_block(t)).c(), C.m(o, null));
- }(!b || 4 & e) && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(o, "style", t[2]), t[1].length > 0 ? x ? (x.p(t, e), 2 & e && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(x, 1)) : ((x = create_if_block_1(t)).c(), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(x, 1), x.m(_c2, u)) : x && ((0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.dvw)(), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(x, 1, 1, function () {
- x = null;
- }), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.gbL)()), 2 & e && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(s, t[1]), t[4].length > 0 ? I ? (I.p(t, e), 16 & e && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(I, 1)) : ((I = create_if_block(t)).c(), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(I, 1), I.m(g, _m2)) : I && ((0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.dvw)(), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(I, 1, 1, function () {
- I = null;
- }), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.gbL)()), 16 & e && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(_, t[4]);
- }, i: function i(t) {
- b || ((0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(x), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(I), b = !0);
- }, o: function o(t) {
- (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(x), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(I), b = !1;
- }, d: function d(e) {
- e && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n), E && E.d(), (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.RMB)(T, e), C && C.d(), x && x.d(), t[17](null), e && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(l), e && (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(f), I && I.d(), y = !1, (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.j7q)(w);
- } };
- }function instance($$self, $$props, $$invalidate) {
- var module = _log_model__WEBPACK_IMPORTED_MODULE_3__.W.getSingleton(_log_model__WEBPACK_IMPORTED_MODULE_3__.W, "VConsoleLogModel"),
- cachedObjKeys = {},
- dispatch = (0, svelte__WEBPACK_IMPORTED_MODULE_1__.x)(),
- cmdElement,
- cmdValue = "",
- promptedStyle = "",
- promptedList = [],
- filterValue = "";(0, svelte__WEBPACK_IMPORTED_MODULE_1__.H3)(function () {
- _logCommand_less__WEBPACK_IMPORTED_MODULE_4__.Z.use();
- }), (0, svelte__WEBPACK_IMPORTED_MODULE_1__.ev)(function () {
- _logCommand_less__WEBPACK_IMPORTED_MODULE_4__.Z.unuse();
- });var evalCommand = function evalCommand(t) {
- module.evalCommand(t);
- },
- moveCursorToPos = function moveCursorToPos(t, n) {
- t.setSelectionRange && setTimeout(function () {
- t.setSelectionRange(n, n);
- }, 1);
- },
- clearPromptedList = function clearPromptedList() {
- $$invalidate(2, promptedStyle = "display: none;"), $$invalidate(3, promptedList = []);
- },
- updatePromptedList = function updatePromptedList(identifier) {
- if ("" !== cmdValue) {
- identifier || (identifier = (0, _logTool__WEBPACK_IMPORTED_MODULE_5__.oj)(cmdValue));var objName = "window",
- keyName = cmdValue;if ("." !== identifier.front.text && "[" !== identifier.front.text || (objName = identifier.front.before, keyName = "" !== identifier.back.text ? identifier.back.before : identifier.front.after), keyName = keyName.replace(/(^['"]+)|(['"']+$)/g, ""), !cachedObjKeys[objName]) try {
- cachedObjKeys[objName] = Object.getOwnPropertyNames(eval("(" + objName + ")")).sort();
- } catch (t) {}try {
- if (cachedObjKeys[objName]) for (var i = 0; i < cachedObjKeys[objName].length && !(promptedList.length >= 100); i++) {
- var key = String(cachedObjKeys[objName][i]),
- keyPattern = new RegExp("^" + keyName, "i");if (keyPattern.test(key)) {
- var completeCmd = objName;"." === identifier.front.text || "" === identifier.front.text ? completeCmd += "." + key : "[" === identifier.front.text && (completeCmd += "['" + key + "']"), promptedList.push({ text: key, value: completeCmd });
- }
- }
- } catch (t) {}if (promptedList.length > 0) {
- var m = Math.min(200, 31 * (promptedList.length + 1));$$invalidate(2, promptedStyle = "display: block; height: " + m + "px; margin-top: " + (-m - 2) + "px;"), $$invalidate(3, promptedList);
- } else clearPromptedList();
- } else clearPromptedList();
- },
- autoCompleteBrackets = function autoCompleteBrackets(t, n) {
- if (!(8 === n || 46 === n) && "" === t.front.after) switch (t.front.text) {case "[":
- return $$invalidate(1, cmdValue += "]"), void moveCursorToPos(cmdElement, cmdValue.length - 1);case "(":
- return $$invalidate(1, cmdValue += ")"), void moveCursorToPos(cmdElement, cmdValue.length - 1);case "{":
- return $$invalidate(1, cmdValue += "}"), void moveCursorToPos(cmdElement, cmdValue.length - 1);}
- },
- dispatchFilterEvent = function dispatchFilterEvent() {
- dispatch("filterText", { filterText: filterValue });
- },
- onTapClearText = function onTapClearText(t) {
- "cmd" === t ? ($$invalidate(1, cmdValue = ""), clearPromptedList()) : "filter" === t && ($$invalidate(4, filterValue = ""), dispatchFilterEvent());
- },
- onTapPromptedItem = function onTapPromptedItem(item) {
- var type = "";try {
- type = eval("typeof " + item.value);
- } catch (t) {}$$invalidate(1, cmdValue = item.value + ("function" === type ? "()" : "")), clearPromptedList();
- },
- onCmdFocus = function onCmdFocus() {
- updatePromptedList();
- },
- onCmdBlur = function onCmdBlur() {},
- onCmdKeyDown = function onCmdKeyDown(t) {
- 13 === t.keyCode && (t.preventDefault(), onCmdSubmit());
- },
- onCmdKeyUp = function onCmdKeyUp(t) {
- $$invalidate(3, promptedList = []);var n = (0, _logTool__WEBPACK_IMPORTED_MODULE_5__.oj)(t.target.value);autoCompleteBrackets(n, t.keyCode), updatePromptedList(n);
- },
- onCmdSubmit = function onCmdSubmit() {
- "" !== cmdValue && evalCommand(cmdValue), clearPromptedList();
- },
- onFilterSubmit = function onFilterSubmit(t) {
- dispatchFilterEvent();
- },
- click_handler = function click_handler(t) {
- return onTapPromptedItem(t);
- },
- click_handler_1 = function click_handler_1() {
- return onTapClearText("cmd");
- };function textarea0_input_handler() {
- cmdValue = this.value, $$invalidate(1, cmdValue);
- }function textarea0_binding(t) {
- svelte_internal__WEBPACK_IMPORTED_MODULE_0__.VnY[t ? "unshift" : "push"](function () {
- $$invalidate(0, cmdElement = t);
- });
- }var click_handler_2 = function click_handler_2() {
- return onTapClearText("filter");
- };function textarea1_input_handler() {
- filterValue = this.value, $$invalidate(4, filterValue);
- }return [cmdElement, cmdValue, promptedStyle, promptedList, filterValue, clearPromptedList, onTapClearText, onTapPromptedItem, onCmdFocus, onCmdBlur, onCmdKeyDown, onCmdKeyUp, onCmdSubmit, onFilterSubmit, click_handler, click_handler_1, textarea0_input_handler, textarea0_binding, click_handler_2, textarea1_input_handler];
- }var LogCommand = function (t) {
- function n(n) {
- var e;return e = t.call(this) || this, (0, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.S1n)((0, _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__.Z)(e), n, instance, create_fragment, svelte_internal__WEBPACK_IMPORTED_MODULE_0__.N8, {}), e;
- }return (0, _babel_runtime_helpers_inheritsLoose__WEBPACK_IMPORTED_MODULE_6__.Z)(n, t), n;
- }(svelte_internal__WEBPACK_IMPORTED_MODULE_0__.f_C);__webpack_exports__.Z = LogCommand;
- }, 4687: function _(t, n, e) {
- "use strict";
- e.d(n, { x: function x() {
- return o;
- } });var r = e(3313),
- o = function () {
- var t = (0, r.fZ)({ updateTime: 0 }),
- n = t.subscribe,
- e = t.set,
- o = t.update;return { subscribe: n, set: e, update: o, updateTime: function updateTime() {
- o(function (t) {
- return t.updateTime = Date.now(), t;
- });
- } };
- }();
- }, 643: function _(t, n, e) {
- "use strict";
- e.d(n, { N: function N() {
- return r;
- } });var r = function () {
- function t() {
- this._onDataUpdateCallbacks = [];
- }return t.getSingleton = function (n, e) {
- return e || (e = n.toString()), t.singleton[e] || (t.singleton[e] = new n()), t.singleton[e];
- }, t;
- }();r.singleton = {};
- }, 5103: function _(t, n, e) {
- "use strict";
- function r(t) {
- return "[object Number]" === Object.prototype.toString.call(t);
- }function o(t) {
- return "bigint" == typeof t;
- }function i(t) {
- return "string" == typeof t;
- }function a(t) {
- return "[object Array]" === Object.prototype.toString.call(t);
- }function c(t) {
- return "boolean" == typeof t;
- }function u(t) {
- return void 0 === t;
- }function s(t) {
- return null === t;
- }function l(t) {
- return "symbol" == (typeof t === "undefined" ? "undefined" : _typeof(t));
- }function f(t) {
- return !("[object Object]" !== Object.prototype.toString.call(t) && (r(t) || o(t) || i(t) || c(t) || a(t) || s(t) || d(t) || u(t) || l(t)));
- }function d(t) {
- return "function" == typeof t;
- }function v(t) {
- return "object" == (typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement)) ? t instanceof HTMLElement : t && "object" == (typeof t === "undefined" ? "undefined" : _typeof(t)) && null !== t && 1 === t.nodeType && "string" == typeof t.nodeName;
- }function p(t) {
- var n = Object.prototype.toString.call(t);return "[object Window]" === n || "[object DOMWindow]" === n || "[object global]" === n;
- }function h(t) {
- return null != t && "string" != typeof t && "boolean" != typeof t && "number" != typeof t && "function" != typeof t && "symbol" != (typeof t === "undefined" ? "undefined" : _typeof(t)) && "bigint" != typeof t && "undefined" != typeof Symbol && "function" == typeof t[Symbol.iterator];
- }function g(t) {
- return Object.prototype.toString.call(t).replace(/\[object (.*)\]/, "$1");
- }e.d(n, { Ak: function Ak() {
- return E;
- }, C4: function C4() {
- return o;
- }, DV: function DV() {
- return _;
- }, FJ: function FJ() {
- return p;
- }, Ft: function Ft() {
- return s;
- }, HD: function HD() {
- return i;
- }, H_: function H_() {
- return U;
- }, KL: function KL() {
- return D;
- }, Kn: function Kn() {
- return f;
- }, MH: function MH() {
- return M;
- }, PO: function PO() {
- return b;
- }, QI: function QI() {
- return A;
- }, QK: function QK() {
- return $;
- }, TW: function TW() {
- return h;
- }, _D: function _D() {
- return S;
- }, cF: function cF() {
- return B;
- }, hZ: function hZ() {
- return I;
- }, hj: function hj() {
- return r;
- }, id: function id() {
- return R;
- }, jn: function jn() {
- return c;
- }, kJ: function kJ() {
- return a;
- }, kK: function kK() {
- return v;
- }, mf: function mf() {
- return d;
- }, o8: function o8() {
- return u;
- }, po: function po() {
- return j;
- }, qr: function qr() {
- return P;
- }, qt: function qt() {
- return N;
- }, rE: function rE() {
- return O;
- }, yk: function yk() {
- return l;
- }, zl: function zl() {
- return g;
- } });var m = /(function|class) ([^ \{\()}]{1,})[\(| ]/;function _(t) {
- var n;if (null == t) return "";var e = m.exec((null == t || null == (n = t.constructor) ? void 0 : n.toString()) || "");return e && e.length > 1 ? e[2] : "";
- }function b(t) {
- var n,
- e = Object.prototype.hasOwnProperty;if (!t || "object" != (typeof t === "undefined" ? "undefined" : _typeof(t)) || t.nodeType || p(t)) return !1;try {
- if (t.constructor && !e.call(t, "constructor") && !e.call(t.constructor.prototype, "isPrototypeOf")) return !1;
- } catch (t) {
- return !1;
- }for (n in t) {}return void 0 === n || e.call(t, n);
- }var y = /[<>&" ]/g,
- w = function w(t) {
- return { "<": "<", ">": ">", "&": "&", '"': """, " ": " " }[t];
- };function E(t) {
- return "string" != typeof t && "number" != typeof t ? t : String(t).replace(y, w);
- }var L = /[\n\t]/g,
- T = function T(t) {
- return { "\n": "\\n", "\t": "\\t" }[t];
- };function O(t) {
- return "string" != typeof t ? t : String(t).replace(L, T);
- }var C = function C(t, n) {
- void 0 === n && (n = 0);var e = "";return i(t) ? (n > 0 && (t = R(t, n)), e += '"' + O(t) + '"') : l(t) ? e += String(t).replace(/^Symbol\((.*)\)$/i, 'Symbol("$1")') : d(t) ? e += (t.name || "function") + "()" : o(t) ? e += String(t) + "n" : e += String(t), e;
- },
- x = function t(n, e, r) {
- if (void 0 === r && (r = 0), f(n) || a(n)) {
- if (e.circularFinder(n)) {
- if (a(n)) e.ret += "(Circular Array)";else if (f) {
- var o;e.ret += "(Circular " + ((null == (o = n.constructor) ? void 0 : o.name) || "Object") + ")";
- }
- } else {
- var i = "",
- c = "";if (e.pretty) {
- for (var u = 0; u <= r; u++) {
- i += " ";
- }c = "\n";
- }var s = "{",
- d = "}";a(n) && (s = "[", d = "]"), e.ret += s + c;for (var v = M(n), p = 0; p < v.length; p++) {
- var h = v[p];e.ret += i;try {
- a(n) || (f(h) || a(h) || l(h) ? e.ret += Object.prototype.toString.call(h) : e.ret += h, e.ret += ": ");
- } catch (t) {
- continue;
- }try {
- var g = n[h];if (a(g)) e.maxDepth > -1 && r >= e.maxDepth ? e.ret += "Array(" + g.length + ")" : t(g, e, r + 1);else if (f(g)) {
- var m;if (e.maxDepth > -1 && r >= e.maxDepth) e.ret += ((null == (m = g.constructor) ? void 0 : m.name) || "Object") + " {}";else t(g, e, r + 1);
- } else e.ret += C(g, e.keyMaxLen);
- } catch (t) {
- e.ret += "(...)";
- }if (e.keyMaxLen > 0 && e.ret.length >= 10 * e.keyMaxLen) {
- e.ret += ", (...)";break;
- }p < v.length - 1 && (e.ret += ", "), e.ret += c;
- }e.ret += i.substring(0, i.length - 2) + d;
- }
- } else e.ret += C(n, e.keyMaxLen);
- };function I(t, n) {
- void 0 === n && (n = { maxDepth: -1, keyMaxLen: -1, pretty: !1 });var e,
- r = Object.assign({ ret: "", maxDepth: -1, keyMaxLen: -1, pretty: !1, circularFinder: (e = new WeakSet(), function (t) {
- if ("object" == (typeof t === "undefined" ? "undefined" : _typeof(t)) && null !== t) {
- if (e.has(t)) return !0;e.add(t);
- }return !1;
- }) }, n);return x(t, r), r.ret;
- }function D(t) {
- return t <= 0 ? "" : t >= 1e6 ? (t / 1e3 / 1e3).toFixed(1) + " MB" : t >= 1e3 ? (t / 1e3).toFixed(1) + " KB" : t + " B";
- }function R(t, n) {
- return t.length > n && (t = t.substring(0, n) + "...(" + D(function (t) {
- try {
- return encodeURI(t).split(/%(?:u[0-9A-F]{2})?[0-9A-F]{2}|./).length - 1;
- } catch (t) {
- return 0;
- }
- }(t)) + ")"), t;
- }var k = function k(t, n) {
- return String(t).localeCompare(String(n), void 0, { numeric: !0, sensitivity: "base" });
- };function P(t) {
- return t.sort(k);
- }function M(t) {
- return f(t) || a(t) ? Object.keys(t) : [];
- }function $(t) {
- var n = M(t),
- e = function (t) {
- return f(t) || a(t) ? Object.getOwnPropertyNames(t) : [];
- }(t);return e.filter(function (t) {
- return -1 === n.indexOf(t);
- });
- }function S(t) {
- return f(t) || a(t) ? Object.getOwnPropertySymbols(t) : [];
- }function j(t, n) {
- window.localStorage && (t = "vConsole_" + t, localStorage.setItem(t, n));
- }function B(t) {
- if (window.localStorage) return t = "vConsole_" + t, localStorage.getItem(t);
- }function A(t) {
- return void 0 === t && (t = ""), "__vc_" + t + Math.random().toString(36).substring(2, 8);
- }function U() {
- return "undefined" != typeof window && !!window.__wxConfig && !!window.wx && !!window.__virtualDOM__;
- }function N(t) {
- if (U() && "function" == typeof window.wx[t]) try {
- for (var n, e = arguments.length, r = new Array(e > 1 ? e - 1 : 0), o = 1; o < e; o++) {
- r[o - 1] = arguments[o];
- }var i = (n = window.wx[t]).call.apply(n, [window.wx].concat(r));return i;
- } catch (n) {
- return void console.debug("[vConsole] Fail to call wx." + t + "():", n);
- }
- }
- }, 5629: function _(t, n, e) {
- "use strict";
- e.d(n, { W: function W() {
- return s;
- } });var r = e(6881),
- o = e(5103),
- i = e(643),
- a = e(4687),
- c = e(8665),
- u = e(9923),
- s = function (t) {
- function n() {
- for (var n, e = arguments.length, r = new Array(e), o = 0; o < e; o++) {
- r[o] = arguments[o];
- }return (n = t.call.apply(t, [this].concat(r)) || this).LOG_METHODS = ["log", "info", "warn", "debug", "error"], n.ADDED_LOG_PLUGIN_ID = [], n.maxLogNumber = 1e3, n.logCounter = 0, n.pluginPattern = void 0, n.origConsole = {}, n;
- }(0, r.Z)(n, t);var e = n.prototype;return e.bindPlugin = function (t) {
- return !(this.ADDED_LOG_PLUGIN_ID.indexOf(t) > -1) && (0 === this.ADDED_LOG_PLUGIN_ID.length && this.mockConsole(), u.O.create(t), this.ADDED_LOG_PLUGIN_ID.push(t), this.pluginPattern = new RegExp("^\\[(" + this.ADDED_LOG_PLUGIN_ID.join("|") + ")\\]$", "i"), !0);
- }, e.unbindPlugin = function (t) {
- var n = this.ADDED_LOG_PLUGIN_ID.indexOf(t);return -1 !== n && (this.ADDED_LOG_PLUGIN_ID.splice(n, 1), u.O.delete(t), 0 === this.ADDED_LOG_PLUGIN_ID.length && this.unmockConsole(), !0);
- }, e.mockConsole = function () {
- var t = this;if ("function" != typeof this.origConsole.log) {
- var n = this.LOG_METHODS;window.console ? (n.map(function (n) {
- t.origConsole[n] = window.console[n];
- }), this.origConsole.time = window.console.time, this.origConsole.timeEnd = window.console.timeEnd, this.origConsole.clear = window.console.clear) : window.console = {}, n.map(function (n) {
- window.console[n] = function () {
- for (var e = arguments.length, r = new Array(e), o = 0; o < e; o++) {
- r[o] = arguments[o];
- }t.addLog({ type: n, origData: r || [] });
- }.bind(window.console);
- });var e = {};window.console.time = function (t) {
- void 0 === t && (t = ""), e[t] = Date.now();
- }.bind(window.console), window.console.timeEnd = function (n) {
- void 0 === n && (n = "");var r = e[n];r ? (t.addLog({ type: "log", origData: [n + ":", Date.now() - r + "ms"] }), delete e[n]) : t.addLog({ type: "log", origData: [n + ": 0ms"] });
- }.bind(window.console), window.console.clear = function () {
- t.clearLog();for (var n = arguments.length, e = new Array(n), r = 0; r < n; r++) {
- e[r] = arguments[r];
- }t.callOriginalConsole.apply(t, ["clear"].concat(e));
- }.bind(window.console), window._vcOrigConsole = this.origConsole;
- }
- }, e.unmockConsole = function () {
- for (var t in this.origConsole) {
- window.console[t] = this.origConsole[t], delete this.origConsole[t];
- }window._vcOrigConsole && delete window._vcOrigConsole;
- }, e.callOriginalConsole = function (t) {
- if ("function" == typeof this.origConsole[t]) {
- for (var n = arguments.length, e = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++) {
- e[r - 1] = arguments[r];
- }this.origConsole[t].apply(window.console, e);
- }
- }, e.clearLog = function () {
- var t = u.O.getAll();for (var n in t) {
- t[n].update(function (t) {
- return t.logList = [], t;
- });
- }
- }, e.clearPluginLog = function (t) {
- u.O.get(t).update(function (t) {
- return t.logList = [], t;
- });
- }, e.addLog = function (t, n) {
- void 0 === t && (t = { type: "log", origData: [] });var e = { _id: o.QI(), type: t.type, cmdType: null == n ? void 0 : n.cmdType, date: Date.now(), data: (0, c.b1)(t.origData || []) },
- r = this._extractPluginIdByLog(e);this._isRepeatedLog(r, e) ? this._updateLastLogRepeated(r) : (this._pushLogList(r, e), this._limitLogListLength()), null != n && n.noOrig || this.callOriginalConsole.apply(this, [t.type].concat(t.origData));
- }, e.evalCommand = function (t) {
- this.addLog({ type: "log", origData: [t] }, { cmdType: "input" });var n = void 0;try {
- n = eval.call(window, "(" + t + ")");
- } catch (e) {
- try {
- n = eval.call(window, t);
- } catch (t) {}
- }this.addLog({ type: "log", origData: [n] }, { cmdType: "output" });
- }, e._extractPluginIdByLog = function (t) {
- var n,
- e = "default",
- r = null == (n = t.data[0]) ? void 0 : n.origData;if (o.HD(r)) {
- var i = r.match(this.pluginPattern);if (null !== i && i.length > 1) {
- var a = i[1].toLowerCase();this.ADDED_LOG_PLUGIN_ID.indexOf(a) > -1 && (e = a, t.data.shift());
- }
- }return e;
- }, e._isRepeatedLog = function (t, n) {
- var e = u.O.getRaw(t),
- r = e.logList[e.logList.length - 1];if (!r) return !1;var o = !1;if (n.type === r.type && n.cmdType === r.cmdType && n.data.length === r.data.length) {
- o = !0;for (var i = 0; i < n.data.length; i++) {
- if (n.data[i].origData !== r.data[i].origData) {
- o = !1;break;
- }
- }
- }return o;
- }, e._updateLastLogRepeated = function (t) {
- u.O.get(t).update(function (t) {
- var n = t.logList,
- e = n[n.length - 1];return e.repeated = e.repeated ? e.repeated + 1 : 2, t;
- });
- }, e._pushLogList = function (t, n) {
- u.O.get(t).update(function (t) {
- return t.logList.push(n), t;
- }), a.x.updateTime();
- }, e._limitLogListLength = function () {
- var t = this;if (this.logCounter++, this.logCounter % 10 == 0) {
- this.logCounter = 0;var n = u.O.getAll();for (var e in n) {
- n[e].update(function (n) {
- return n.logList.length > t.maxLogNumber - 10 && n.logList.splice(0, n.logList.length - t.maxLogNumber + 10), n;
- });
- }
- }
- }, n;
- }(i.N);
- }, 9923: function _(t, n, e) {
- "use strict";
- e.d(n, { O: function O() {
- return o;
- } });var r = e(3313),
- o = function () {
- function t() {}return t.create = function (t) {
- return this.storeMap[t] || (this.storeMap[t] = (0, r.fZ)({ logList: [] })), this.storeMap[t];
- }, t.delete = function (t) {
- this.storeMap[t] && delete this.storeMap[t];
- }, t.get = function (t) {
- return this.storeMap[t];
- }, t.getRaw = function (t) {
- return (0, r.U2)(this.storeMap[t]);
- }, t.getAll = function () {
- return this.storeMap;
- }, t;
- }();o.storeMap = {};
- }, 8665: function _(t, n, e) {
- "use strict";
- e.d(n, { HX: function HX() {
- return l;
- }, LH: function LH() {
- return i;
- }, Tg: function Tg() {
- return v;
- }, b1: function b1() {
- return d;
- }, oj: function oj() {
- return s;
- } });var r = e(5103),
- o = function o(t) {
- var n = r.hZ(t, { maxDepth: 0 }),
- e = n.substring(0, 36),
- o = r.DV(t);return n.length > 36 && (e += "..."), o = r.rE(o + " " + e);
- },
- i = function i(t, n) {
- void 0 === n && (n = !0);var e = "undefined",
- i = t;return t instanceof v ? (e = "uninvocatable", i = "(...)") : r.kJ(t) ? (e = "array", i = o(t)) : r.Kn(t) ? (e = "object", i = o(t)) : r.HD(t) ? (e = "string", i = r.rE(t), n && (i = '"' + i + '"')) : r.hj(t) ? (e = "number", i = String(t)) : r.C4(t) ? (e = "bigint", i = String(t) + "n") : r.jn(t) ? (e = "boolean", i = String(t)) : r.Ft(t) ? (e = "null", i = "null") : r.o8(t) ? (e = "undefined", i = "undefined") : r.mf(t) ? (e = "function", i = (t.name || "function") + "()") : r.yk(t) && (e = "symbol", i = String(t)), { text: i, valueType: e };
- },
- a = [".", "[", "(", "{", "}"],
- c = ["]", ")", "}"],
- u = function u(t, n, e) {
- void 0 === e && (e = 0);for (var r = { text: "", pos: -1, before: "", after: "" }, o = t.length - 1; o >= e; o--) {
- var i = n.indexOf(t[o]);if (i > -1) {
- r.text = n[i], r.pos = o, r.before = t.substring(e, o), r.after = t.substring(o + 1, t.length);break;
- }
- }return r;
- },
- s = function s(t) {
- var n = u(t, a, 0);return { front: n, back: u(t, c, n.pos + 1) };
- },
- l = function l(t, n) {
- if ("" === n) return !0;for (var e = 0; e < t.data.length; e++) {
- if ("string" === typeof t.data[e].origData && t.data[e].origData.indexOf(n) > -1) return !0;
- }return !1;
- },
- f = /(\%[csdo] )|( \%[csdo])/g,
- d = function d(t) {
- if (f.lastIndex = 0, r.HD(t[0]) && f.test(t[0])) {
- for (var n, e = [].concat(t), o = e.shift().split(f).filter(function (t) {
- return void 0 !== t && "" !== t;
- }), i = e, a = [], c = !1, u = ""; o.length > 0;) {
- var s = o.shift();if (/ ?\%c ?/.test(s) ? i.length > 0 ? "string" != typeof (u = i.shift()) && (u = "") : (n = s, u = "", c = !0) : / ?\%[sd] ?/.test(s) ? (n = i.length > 0 ? r.Kn(i[0]) ? r.DV(i.shift()) : String(i.shift()) : s, c = !0) : / ?\%o ?/.test(s) ? (n = i.length > 0 ? i.shift() : s, c = !0) : (n = s, c = !0), c) {
- var l = { origData: n };u && (l.style = u), a.push(l), c = !1, n = void 0, u = "";
- }
- }for (var d = 0; d < i.length; d++) {
- a.push({ origData: i[d] });
- }return a;
- }for (var v = [], p = 0; p < t.length; p++) {
- v.push({ origData: t[p] });
- }return v;
- },
- v = function v() {};
- }, 9746: function _(t, n, e) {
- "use strict";
- var r = e(6738),
- o = e.n(r),
- i = e(7705),
- a = e.n(i)()(o());a.push([t.id, ".vc-icon {\n word-break: normal;\n white-space: normal;\n overflow: visible;\n}\n.vc-icon svg {\n fill: var(--VC-FG-2);\n height: 1em;\n width: 1em;\n vertical-align: -0.11em;\n}\n.vc-icon .vc-icon-delete {\n vertical-align: -0.11em;\n}\n.vc-icon .vc-icon-copy {\n height: 1.1em;\n width: 1.1em;\n vertical-align: -0.16em;\n}\n.vc-icon .vc-icon-suc {\n fill: var(--VC-TEXTGREEN);\n height: 1.1em;\n width: 1.1em;\n vertical-align: -0.16em;\n}\n", ""]), n.Z = a;
- }, 3283: function _(t, n, e) {
- "use strict";
- var r = e(6738),
- o = e.n(r),
- i = e(7705),
- a = e.n(i)()(o());a.push([t.id, '#__vconsole {\n --VC-BG-0: #ededed;\n --VC-BG-1: #f7f7f7;\n --VC-BG-2: #fff;\n --VC-BG-3: #f7f7f7;\n --VC-BG-4: #4c4c4c;\n --VC-BG-5: #fff;\n --VC-BG-6: rgba(0, 0, 0, 0.1);\n --VC-FG-0: rgba(0, 0, 0, 0.9);\n --VC-FG-HALF: rgba(0, 0, 0, 0.9);\n --VC-FG-1: rgba(0, 0, 0, 0.5);\n --VC-FG-2: rgba(0, 0, 0, 0.3);\n --VC-FG-3: rgba(0, 0, 0, 0.1);\n --VC-RED: #fa5151;\n --VC-ORANGE: #fa9d3b;\n --VC-YELLOW: #ffc300;\n --VC-GREEN: #91d300;\n --VC-LIGHTGREEN: #95ec69;\n --VC-BRAND: #07c160;\n --VC-BLUE: #10aeff;\n --VC-INDIGO: #1485ee;\n --VC-PURPLE: #6467f0;\n --VC-LINK: #576b95;\n --VC-TEXTGREEN: #06ae56;\n --VC-FG: black;\n --VC-BG: white;\n --VC-BG-COLOR-ACTIVE: #ececec;\n --VC-WARN-BG: #fff3cc;\n --VC-WARN-BORDER: #ffe799;\n --VC-ERROR-BG: #fedcdc;\n --VC-ERROR-BORDER: #fdb9b9;\n --VC-DOM-TAG-NAME-COLOR: #881280;\n --VC-DOM-ATTRIBUTE-NAME-COLOR: #994500;\n --VC-DOM-ATTRIBUTE-VALUE-COLOR: #1a1aa6;\n --VC-CODE-KEY-FG: #881391;\n --VC-CODE-PRIVATE-KEY-FG: #cfa1d3;\n --VC-CODE-FUNC-FG: #0d22aa;\n --VC-CODE-NUMBER-FG: #1c00cf;\n --VC-CODE-STR-FG: #c41a16;\n --VC-CODE-NULL-FG: #808080;\n color: var(--VC-FG-0);\n font-size: 13px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n -webkit-user-select: auto;\n /* global */\n}\n#__vconsole .vc-max-height {\n max-height: 19.23076923em;\n}\n#__vconsole .vc-max-height-line {\n max-height: 6.30769231em;\n}\n#__vconsole .vc-min-height {\n min-height: 3.07692308em;\n}\n#__vconsole dd,\n#__vconsole dl,\n#__vconsole pre {\n margin: 0;\n}\n#__vconsole pre {\n white-space: pre-wrap;\n}\n#__vconsole i {\n font-style: normal;\n}\n.vc-table .vc-table-row {\n line-height: 1.5;\n display: -webkit-box;\n display: -webkit-flex;\n display: -moz-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -webkit-flex-direction: row;\n -moz-box-orient: horizontal;\n -moz-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-flex-wrap: wrap;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n overflow: hidden;\n border-bottom: 1px solid var(--VC-FG-3);\n}\n.vc-table .vc-table-row.vc-left-border {\n border-left: 1px solid var(--VC-FG-3);\n}\n.vc-table .vc-table-row-icon {\n margin-left: 4px;\n}\n.vc-table .vc-table-col {\n -webkit-box-flex: 1;\n -webkit-flex: 1;\n -moz-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n padding: 0.23076923em 0.30769231em;\n border-left: 1px solid var(--VC-FG-3);\n overflow: auto;\n}\n.vc-table .vc-table-col:first-child {\n border: none;\n}\n.vc-table .vc-table-col-value {\n white-space: pre-wrap;\n word-break: break-word;\n /*white-space: nowrap;\n text-overflow: ellipsis;*/\n -webkit-overflow-scrolling: touch;\n}\n.vc-table .vc-small .vc-table-col {\n padding: 0 0.30769231em;\n font-size: 0.92307692em;\n}\n.vc-table .vc-table-col-2 {\n -webkit-box-flex: 2;\n -webkit-flex: 2;\n -moz-box-flex: 2;\n -ms-flex: 2;\n flex: 2;\n}\n.vc-table .vc-table-col-3 {\n -webkit-box-flex: 3;\n -webkit-flex: 3;\n -moz-box-flex: 3;\n -ms-flex: 3;\n flex: 3;\n}\n.vc-table .vc-table-col-4 {\n -webkit-box-flex: 4;\n -webkit-flex: 4;\n -moz-box-flex: 4;\n -ms-flex: 4;\n flex: 4;\n}\n.vc-table .vc-table-col-5 {\n -webkit-box-flex: 5;\n -webkit-flex: 5;\n -moz-box-flex: 5;\n -ms-flex: 5;\n flex: 5;\n}\n.vc-table .vc-table-col-6 {\n -webkit-box-flex: 6;\n -webkit-flex: 6;\n -moz-box-flex: 6;\n -ms-flex: 6;\n flex: 6;\n}\n.vc-table .vc-table-row-error {\n border-color: var(--VC-ERROR-BORDER);\n background-color: var(--VC-ERROR-BG);\n}\n.vc-table .vc-table-row-error .vc-table-col {\n color: var(--VC-RED);\n border-color: var(--VC-ERROR-BORDER);\n}\n.vc-table .vc-table-col-title {\n font-weight: bold;\n}\n.vc-table .vc-table-action {\n display: flex;\n justify-content: space-evenly;\n}\n.vc-table .vc-table-action .vc-icon {\n flex: 1;\n text-align: center;\n display: block;\n}\n.vc-table .vc-table-action .vc-icon:hover {\n background: var(--VC-BG-3);\n}\n.vc-table .vc-table-action .vc-icon:active {\n background: var(--VC-BG-1);\n}\n.vc-table .vc-table-input {\n width: 100%;\n border: none;\n color: var(--VC-FG-0);\n background-color: var(--VC-BG-6);\n height: 3.53846154em;\n}\n.vc-table .vc-table-input:focus {\n background-color: var(--VC-FG-2);\n}\n@media (prefers-color-scheme: dark) {\n #__vconsole:not([data-theme="light"]) {\n --VC-BG-0: #191919;\n --VC-BG-1: #1f1f1f;\n --VC-BG-2: #232323;\n --VC-BG-3: #2f2f2f;\n --VC-BG-4: #606060;\n --VC-BG-5: #2c2c2c;\n --VC-BG-6: rgba(255, 255, 255, 0.2);\n --VC-FG-0: rgba(255, 255, 255, 0.8);\n --VC-FG-HALF: rgba(255, 255, 255, 0.6);\n --VC-FG-1: rgba(255, 255, 255, 0.5);\n --VC-FG-2: rgba(255, 255, 255, 0.3);\n --VC-FG-3: rgba(255, 255, 255, 0.05);\n --VC-RED: #fa5151;\n --VC-ORANGE: #c87d2f;\n --VC-YELLOW: #cc9c00;\n --VC-GREEN: #74a800;\n --VC-LIGHTGREEN: #28b561;\n --VC-BRAND: #07c160;\n --VC-BLUE: #10aeff;\n --VC-INDIGO: #1196ff;\n --VC-PURPLE: #8183ff;\n --VC-LINK: #7d90a9;\n --VC-TEXTGREEN: #259c5c;\n --VC-FG: white;\n --VC-BG: black;\n --VC-BG-COLOR-ACTIVE: #282828;\n --VC-WARN-BG: #332700;\n --VC-WARN-BORDER: #664e00;\n --VC-ERROR-BG: #321010;\n --VC-ERROR-BORDER: #642020;\n --VC-DOM-TAG-NAME-COLOR: #5DB0D7;\n --VC-DOM-ATTRIBUTE-NAME-COLOR: #9BBBDC;\n --VC-DOM-ATTRIBUTE-VALUE-COLOR: #f29766;\n --VC-CODE-KEY-FG: #e36eec;\n --VC-CODE-PRIVATE-KEY-FG: #f4c5f7;\n --VC-CODE-FUNC-FG: #556af2;\n --VC-CODE-NUMBER-FG: #9980ff;\n --VC-CODE-STR-FG: #e93f3b;\n --VC-CODE-NULL-FG: #808080;\n }\n}\n#__vconsole[data-theme="dark"] {\n --VC-BG-0: #191919;\n --VC-BG-1: #1f1f1f;\n --VC-BG-2: #232323;\n --VC-BG-3: #2f2f2f;\n --VC-BG-4: #606060;\n --VC-BG-5: #2c2c2c;\n --VC-BG-6: rgba(255, 255, 255, 0.2);\n --VC-FG-0: rgba(255, 255, 255, 0.8);\n --VC-FG-HALF: rgba(255, 255, 255, 0.6);\n --VC-FG-1: rgba(255, 255, 255, 0.5);\n --VC-FG-2: rgba(255, 255, 255, 0.3);\n --VC-FG-3: rgba(255, 255, 255, 0.05);\n --VC-RED: #fa5151;\n --VC-ORANGE: #c87d2f;\n --VC-YELLOW: #cc9c00;\n --VC-GREEN: #74a800;\n --VC-LIGHTGREEN: #28b561;\n --VC-BRAND: #07c160;\n --VC-BLUE: #10aeff;\n --VC-INDIGO: #1196ff;\n --VC-PURPLE: #8183ff;\n --VC-LINK: #7d90a9;\n --VC-TEXTGREEN: #259c5c;\n --VC-FG: white;\n --VC-BG: black;\n --VC-BG-COLOR-ACTIVE: #282828;\n --VC-WARN-BG: #332700;\n --VC-WARN-BORDER: #664e00;\n --VC-ERROR-BG: #321010;\n --VC-ERROR-BORDER: #642020;\n --VC-DOM-TAG-NAME-COLOR: #5DB0D7;\n --VC-DOM-ATTRIBUTE-NAME-COLOR: #9BBBDC;\n --VC-DOM-ATTRIBUTE-VALUE-COLOR: #f29766;\n --VC-CODE-KEY-FG: #e36eec;\n --VC-CODE-PRIVATE-KEY-FG: #f4c5f7;\n --VC-CODE-FUNC-FG: #556af2;\n --VC-CODE-NUMBER-FG: #9980ff;\n --VC-CODE-STR-FG: #e93f3b;\n --VC-CODE-NULL-FG: #808080;\n}\n.vc-tabbar {\n border-bottom: 1px solid var(--VC-FG-3);\n overflow-x: auto;\n height: 3em;\n width: auto;\n white-space: nowrap;\n}\n.vc-tabbar .vc-tab {\n display: inline-block;\n line-height: 3em;\n padding: 0 1.15384615em;\n border-right: 1px solid var(--VC-FG-3);\n text-decoration: none;\n color: var(--VC-FG-0);\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n.vc-tabbar .vc-tab:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n.vc-tabbar .vc-tab.vc-actived {\n background-color: var(--VC-BG-1);\n}\n.vc-toolbar {\n border-top: 1px solid var(--VC-FG-3);\n line-height: 3em;\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n display: -webkit-box;\n display: -webkit-flex;\n display: -moz-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -webkit-flex-direction: row;\n -moz-box-orient: horizontal;\n -moz-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.vc-toolbar .vc-tool {\n display: none;\n font-style: normal;\n text-decoration: none;\n color: var(--VC-FG-0);\n width: 50%;\n -webkit-box-flex: 1;\n -webkit-flex: 1;\n -moz-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n text-align: center;\n position: relative;\n -webkit-touch-callout: none;\n}\n.vc-toolbar .vc-tool.vc-toggle,\n.vc-toolbar .vc-tool.vc-global-tool {\n display: block;\n}\n.vc-toolbar .vc-tool:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n.vc-toolbar .vc-tool:after {\n content: " ";\n position: absolute;\n top: 0.53846154em;\n bottom: 0.53846154em;\n right: 0;\n border-left: 1px solid var(--VC-FG-3);\n}\n.vc-toolbar .vc-tool-last:after {\n border: none;\n}\n.vc-topbar {\n background-color: var(--VC-BG-1);\n display: -webkit-box;\n display: -webkit-flex;\n display: -moz-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -webkit-flex-direction: row;\n -moz-box-orient: horizontal;\n -moz-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-flex-wrap: wrap;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n width: 100%;\n}\n.vc-topbar .vc-toptab {\n display: none;\n -webkit-box-flex: 1;\n -webkit-flex: 1;\n -moz-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n line-height: 2.30769231em;\n padding: 0 1.15384615em;\n border-bottom: 1px solid var(--VC-FG-3);\n text-decoration: none;\n text-align: center;\n color: var(--VC-FG-0);\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n.vc-topbar .vc-toptab.vc-toggle {\n display: block;\n}\n.vc-topbar .vc-toptab:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n.vc-topbar .vc-toptab.vc-actived {\n border-bottom: 1px solid var(--VC-INDIGO);\n}\n.vc-mask {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0);\n z-index: 10001;\n -webkit-transition: background 0.3s;\n transition: background 0.3s;\n -webkit-tap-highlight-color: transparent;\n overflow-y: scroll;\n}\n.vc-panel {\n display: none;\n position: fixed;\n min-height: 85%;\n left: 0;\n right: 0;\n bottom: -100%;\n z-index: 10002;\n background-color: var(--VC-BG-0);\n transition: bottom 0.3s;\n}\n.vc-toggle .vc-switch {\n display: none;\n}\n.vc-toggle .vc-mask {\n background: rgba(0, 0, 0, 0.6);\n display: block;\n}\n.vc-toggle .vc-panel {\n bottom: 0;\n}\n.vc-content {\n background-color: var(--VC-BG-2);\n overflow-x: hidden;\n overflow-y: auto;\n position: absolute;\n top: 3.07692308em;\n left: 0;\n right: 0;\n bottom: 3.07692308em;\n -webkit-overflow-scrolling: touch;\n margin-bottom: constant(safe-area-inset-bottom);\n margin-bottom: env(safe-area-inset-bottom);\n}\n.vc-content.vc-has-topbar {\n top: 5.46153846em;\n}\n.vc-plugin-box {\n display: none;\n position: relative;\n min-height: 100%;\n}\n.vc-plugin-box.vc-actived {\n display: block;\n}\n.vc-plugin-content {\n padding-bottom: 6em;\n -webkit-tap-highlight-color: transparent;\n}\n.vc-plugin-empty:before,\n.vc-plugin-content:empty:before {\n content: "Empty";\n color: var(--VC-FG-1);\n position: absolute;\n top: 45%;\n left: 0;\n right: 0;\n bottom: 0;\n font-size: 1.15384615em;\n text-align: center;\n}\n@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) {\n .vc-toolbar,\n .vc-switch {\n bottom: constant(safe-area-inset-bottom);\n bottom: env(safe-area-inset-bottom);\n }\n}\n', ""]), n.Z = a;
- }, 7558: function _(t, n, e) {
- "use strict";
- var r = e(6738),
- o = e.n(r),
- i = e(7705),
- a = e.n(i)()(o());a.push([t.id, ".vc-switch {\n display: block;\n position: fixed;\n right: 0.76923077em;\n bottom: 0.76923077em;\n color: #FFF;\n background-color: var(--VC-BRAND);\n line-height: 1;\n font-size: 1.07692308em;\n padding: 0.61538462em 1.23076923em;\n z-index: 10000;\n border-radius: 0.30769231em;\n box-shadow: 0 0 0.61538462em rgba(0, 0, 0, 0.4);\n}\n", ""]), n.Z = a;
- }, 5670: function _(t, n, e) {
- "use strict";
- var r = e(6738),
- o = e.n(r),
- i = e(7705),
- a = e.n(i)()(o());a.push([t.id, '/* color */\n.vcelm-node {\n color: var(--VC-DOM-TAG-NAME-COLOR);\n}\n.vcelm-k {\n color: var(--VC-DOM-ATTRIBUTE-NAME-COLOR);\n}\n.vcelm-v {\n color: var(--VC-DOM-ATTRIBUTE-VALUE-COLOR);\n}\n.vcelm-l.vc-actived > .vcelm-node {\n background-color: var(--VC-FG-3);\n}\n/* layout */\n.vcelm-l {\n padding-left: 8px;\n position: relative;\n word-wrap: break-word;\n line-height: 1.2;\n}\n/*.vcelm-l.vcelm-noc {\n padding-left: 0;\n}*/\n.vcelm-l .vcelm-node:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vcelm-l.vcelm-noc .vcelm-node:active {\n background-color: transparent;\n}\n.vcelm-t {\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n/* level */\n/* arrow */\n.vcelm-l:before {\n content: "";\n display: block;\n position: absolute;\n top: 6px;\n left: 3px;\n width: 0;\n height: 0;\n border: transparent solid 3px;\n border-left-color: var(--VC-FG-1);\n}\n.vcelm-l.vc-toggle:before {\n display: block;\n top: 6px;\n left: 0;\n border-top-color: var(--VC-FG-1);\n border-left-color: transparent;\n}\n.vcelm-l.vcelm-noc:before {\n display: none;\n}\n', ""]), n.Z = a;
- }, 3327: function _(t, n, e) {
- "use strict";
- var r = e(6738),
- o = e.n(r),
- i = e(7705),
- a = e.n(i)()(o());a.push([t.id, ".vc-logs-has-cmd {\n padding-bottom: 6.15384615em;\n}\n", ""]), n.Z = a;
- }, 1130: function _(t, n, e) {
- "use strict";
- var r = e(6738),
- o = e.n(r),
- i = e(7705),
- a = e.n(i)()(o());a.push([t.id, ".vc-cmd {\n position: absolute;\n height: 3.07692308em;\n left: 0;\n right: 0;\n bottom: 3.07692308em;\n border-top: 1px solid var(--VC-FG-3);\n display: block !important;\n}\n.vc-cmd.vc-filter {\n bottom: 0;\n}\n.vc-cmd-input-wrap {\n display: block;\n position: relative;\n height: 2.15384615em;\n margin-right: 3.07692308em;\n padding: 0.46153846em 0.61538462em;\n}\n.vc-cmd-input {\n width: 100%;\n border: none;\n resize: none;\n outline: none;\n padding: 0;\n font-size: 0.92307692em;\n background-color: transparent;\n color: var(--VC-FG-0);\n}\n.vc-cmd-input::-webkit-input-placeholder {\n line-height: 2.15384615em;\n}\n.vc-cmd-btn {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 3.07692308em;\n border: none;\n background-color: var(--VC-BG-0);\n color: var(--VC-FG-0);\n outline: none;\n -webkit-touch-callout: none;\n font-size: 1em;\n}\n.vc-cmd-clear-btn {\n position: absolute;\n text-align: center;\n top: 0;\n right: 0;\n bottom: 0;\n width: 3.07692308em;\n line-height: 3.07692308em;\n}\n.vc-cmd-btn:active,\n.vc-cmd-clear-btn:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-cmd-prompted {\n position: absolute;\n left: 0.46153846em;\n right: 0.46153846em;\n background-color: var(--VC-BG-3);\n border: 1px solid var(--VC-FG-3);\n overflow-x: scroll;\n display: none;\n}\n.vc-cmd-prompted li {\n list-style: none;\n line-height: 30px;\n padding: 0 0.46153846em;\n border-bottom: 1px solid var(--VC-FG-3);\n}\n.vc-cmd-prompted li:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-cmd-prompted-hide {\n text-align: center;\n}\n", ""]), n.Z = a;
- }, 7147: function _(t, n, e) {
- "use strict";
- var r = e(6738),
- o = e.n(r),
- i = e(7705),
- a = e.n(i)()(o());a.push([t.id, '.vc-log-row {\n margin: 0;\n padding: 0.46153846em 0.61538462em;\n overflow: hidden;\n line-height: 1.3;\n border-bottom: 1px solid var(--VC-FG-3);\n word-break: break-word;\n position: relative;\n display: flex;\n}\n.vc-log-info {\n color: var(--VC-PURPLE);\n}\n.vc-log-debug {\n color: var(--VC-YELLOW);\n}\n.vc-log-warn {\n color: var(--VC-ORANGE);\n border-color: var(--VC-WARN-BORDER);\n background-color: var(--VC-WARN-BG);\n}\n.vc-log-error {\n color: var(--VC-RED);\n border-color: var(--VC-ERROR-BORDER);\n background-color: var(--VC-ERROR-BG);\n}\n.vc-logrow-icon {\n margin-left: auto;\n}\n.vc-log-time {\n width: 6.15384615em;\n color: #777;\n}\n.vc-log-repeat i {\n margin-right: 0.30769231em;\n padding: 0 6.5px;\n color: #D7E0EF;\n background-color: #42597F;\n border-radius: 8.66666667px;\n}\n.vc-log-error .vc-log-repeat i {\n color: #901818;\n background-color: var(--VC-RED);\n}\n.vc-log-warn .vc-log-repeat i {\n color: #987D20;\n background-color: #F4BD02;\n}\n.vc-log-content {\n flex: 1;\n}\n.vc-log-input,\n.vc-log-output {\n padding-left: 0.92307692em;\n}\n.vc-log-input:before,\n.vc-log-output:before {\n content: "›";\n position: absolute;\n top: 0.15384615em;\n left: 0;\n font-size: 1.23076923em;\n color: #6A5ACD;\n}\n.vc-log-output:before {\n content: "‹";\n}\n', ""]), n.Z = a;
- }, 1237: function _(t, n, e) {
- "use strict";
- var r = e(6738),
- o = e.n(r),
- i = e(7705),
- a = e.n(i)()(o());a.push([t.id, '.vc-log-tree {\n display: block;\n overflow: auto;\n position: relative;\n -webkit-overflow-scrolling: touch;\n}\n.vc-log-tree-node {\n display: block;\n font-style: italic;\n padding-left: 0.76923077em;\n position: relative;\n}\n.vc-log-tree.vc-is-tree > .vc-log-tree-node:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-log-tree.vc-is-tree > .vc-log-tree-node::before {\n content: "";\n position: absolute;\n top: 0.30769231em;\n left: 0.15384615em;\n width: 0;\n height: 0;\n border: transparent solid 0.30769231em;\n border-left-color: var(--VC-FG-1);\n}\n.vc-log-tree.vc-is-tree.vc-toggle > .vc-log-tree-node::before {\n top: 0.46153846em;\n left: 0;\n border-top-color: var(--VC-FG-1);\n border-left-color: transparent;\n}\n.vc-log-tree-child {\n margin-left: 0.76923077em;\n}\n.vc-log-tree-loadmore {\n text-decoration: underline;\n padding-left: 1.84615385em;\n position: relative;\n color: var(--VC-CODE-FUNC-FG);\n}\n.vc-log-tree-loadmore::before {\n content: "››";\n position: absolute;\n top: -0.15384615em;\n left: 0.76923077em;\n font-size: 1.23076923em;\n color: var(--VC-CODE-FUNC-FG);\n}\n.vc-log-tree-loadmore:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n', ""]), n.Z = a;
- }, 845: function _(t, n, e) {
- "use strict";
- var r = e(6738),
- o = e.n(r),
- i = e(7705),
- a = e.n(i)()(o());a.push([t.id, ".vc-log-key {\n color: var(--VC-CODE-KEY-FG);\n}\n.vc-log-key-private {\n color: var(--VC-CODE-PRIVATE-KEY-FG);\n}\n.vc-log-val {\n white-space: pre-line;\n}\n.vc-log-val-function {\n color: var(--VC-CODE-FUNC-FG);\n font-style: italic !important;\n}\n.vc-log-val-bigint {\n color: var(--VC-CODE-FUNC-FG);\n}\n.vc-log-val-number,\n.vc-log-val-boolean {\n color: var(--VC-CODE-NUMBER-FG);\n}\n.vc-log-val-string.vc-log-val-haskey {\n color: var(--VC-CODE-STR-FG);\n white-space: normal;\n}\n.vc-log-val-null,\n.vc-log-val-undefined,\n.vc-log-val-uninvocatable {\n color: var(--VC-CODE-NULL-FG);\n}\n.vc-log-val-symbol {\n color: var(--VC-CODE-STR-FG);\n}\n", ""]), n.Z = a;
- }, 8747: function _(t, n, e) {
- "use strict";
- var r = e(6738),
- o = e.n(r),
- i = e(7705),
- a = e.n(i)()(o());a.push([t.id, ".vc-group .vc-group-preview {\n -webkit-touch-callout: none;\n}\n.vc-group .vc-group-preview:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-group .vc-group-detail {\n display: none;\n padding: 0 0 0.76923077em 1.53846154em;\n border-bottom: 1px solid var(--VC-FG-3);\n}\n.vc-group.vc-actived .vc-group-detail {\n display: block;\n background-color: var(--VC-BG-1);\n}\n.vc-group.vc-actived .vc-table-row {\n background-color: var(--VC-BG-2);\n}\n.vc-group.vc-actived .vc-group-preview {\n background-color: var(--VC-BG-1);\n}\n", ""]), n.Z = a;
- }, 3411: function _(t, n, e) {
- "use strict";
- var r = e(3379),
- o = e.n(r),
- i = e(7795),
- a = e.n(i),
- c = e(569),
- u = e.n(c),
- s = e(3565),
- l = e.n(s),
- f = e(9216),
- d = e.n(f),
- v = e(4589),
- p = e.n(v),
- h = e(1130),
- g = {};h.Z && h.Z.locals && (g.locals = h.Z.locals);var m,
- _ = 0,
- b = {};b.styleTagTransform = p(), b.setAttributes = l(), b.insert = u().bind(null, "head"), b.domAPI = a(), b.insertStyleElement = d(), g.use = function (t) {
- return b.options = t || {}, _++ || (m = o()(h.Z, b)), g;
- }, g.unuse = function () {
- _ > 0 && ! --_ && (m(), m = null);
- }, n.Z = g;
- }, 3379: function _(t) {
- "use strict";
- var n = [];function e(t) {
- for (var e = -1, r = 0; r < n.length; r++) {
- if (n[r].identifier === t) {
- e = r;break;
- }
- }return e;
- }function r(t, r) {
- for (var i = {}, a = [], c = 0; c < t.length; c++) {
- var u = t[c],
- s = r.base ? u[0] + r.base : u[0],
- l = i[s] || 0,
- f = "".concat(s, " ").concat(l);i[s] = l + 1;var d = e(f),
- v = { css: u[1], media: u[2], sourceMap: u[3], supports: u[4], layer: u[5] };if (-1 !== d) n[d].references++, n[d].updater(v);else {
- var p = o(v, r);r.byIndex = c, n.splice(c, 0, { identifier: f, updater: p, references: 1 });
- }a.push(f);
- }return a;
- }function o(t, n) {
- var e = n.domAPI(n);e.update(t);return function (n) {
- if (n) {
- if (n.css === t.css && n.media === t.media && n.sourceMap === t.sourceMap && n.supports === t.supports && n.layer === t.layer) return;e.update(t = n);
- } else e.remove();
- };
- }t.exports = function (t, o) {
- var i = r(t = t || [], o = o || {});return function (t) {
- t = t || [];for (var a = 0; a < i.length; a++) {
- var c = e(i[a]);n[c].references--;
- }for (var u = r(t, o), s = 0; s < i.length; s++) {
- var l = e(i[s]);0 === n[l].references && (n[l].updater(), n.splice(l, 1));
- }i = u;
- };
- };
- }, 569: function _(t) {
- "use strict";
- var n = {};t.exports = function (t, e) {
- var r = function (t) {
- if (void 0 === n[t]) {
- var e = document.querySelector(t);if (window.HTMLIFrameElement && e instanceof window.HTMLIFrameElement) try {
- e = e.contentDocument.head;
- } catch (t) {
- e = null;
- }n[t] = e;
- }return n[t];
- }(t);if (!r) throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(e);
- };
- }, 9216: function _(t) {
- "use strict";
- t.exports = function (t) {
- var n = document.createElement("style");return t.setAttributes(n, t.attributes), t.insert(n, t.options), n;
- };
- }, 3565: function _(t, n, e) {
- "use strict";
- t.exports = function (t) {
- var n = e.nc;n && t.setAttribute("nonce", n);
- };
- }, 7795: function _(t) {
- "use strict";
- t.exports = function (t) {
- var n = t.insertStyleElement(t);return { update: function update(e) {
- !function (t, n, e) {
- var r = "";e.supports && (r += "@supports (".concat(e.supports, ") {")), e.media && (r += "@media ".concat(e.media, " {"));var o = void 0 !== e.layer;o && (r += "@layer".concat(e.layer.length > 0 ? " ".concat(e.layer) : "", " {")), r += e.css, o && (r += "}"), e.media && (r += "}"), e.supports && (r += "}");var i = e.sourceMap;i && "undefined" != typeof btoa && (r += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i)))), " */")), n.styleTagTransform(r, t, n.options);
- }(n, t, e);
- }, remove: function remove() {
- !function (t) {
- if (null === t.parentNode) return !1;t.parentNode.removeChild(t);
- }(n);
- } };
- };
- }, 4589: function _(t) {
- "use strict";
- t.exports = function (t, n) {
- if (n.styleSheet) n.styleSheet.cssText = t;else {
- for (; n.firstChild;) {
- n.removeChild(n.firstChild);
- }n.appendChild(document.createTextNode(t));
- }
- };
- }, 6464: function _(t, n, e) {
- "use strict";
- function r(t) {
- if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t;
- }e.d(n, { Z: function Z() {
- return r;
- } });
- }, 4296: function _(t, n, e) {
- "use strict";
- function r(t, n) {
- for (var e = 0; e < n.length; e++) {
- var r = n[e];r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r);
- }
- }function o(t, n, e) {
- return n && r(t.prototype, n), e && r(t, e), Object.defineProperty(t, "prototype", { writable: !1 }), t;
- }e.d(n, { Z: function Z() {
- return o;
- } });
- }, 6881: function _(t, n, e) {
- "use strict";
- e.d(n, { Z: function Z() {
- return o;
- } });var r = e(2717);function o(t, n) {
- t.prototype = Object.create(n.prototype), t.prototype.constructor = t, (0, r.Z)(t, n);
- }
- }, 2717: function _(t, n, e) {
- "use strict";
- function r(t, n) {
- return r = Object.setPrototypeOf || function (t, n) {
- return t.__proto__ = n, t;
- }, r(t, n);
- }e.d(n, { Z: function Z() {
- return r;
- } });
- }, 7003: function _(t, n, e) {
- "use strict";
- e.d(n, { H3: function H3() {
- return r.H3E;
- }, ev: function ev() {
- return r.evW;
- }, x: function x() {
- return r.xa3;
- } });var r = e(2942);
- }, 2942: function _(t, n, e) {
- "use strict";
- function r(t) {
- return r = Object.setPrototypeOf ? Object.getPrototypeOf : function (t) {
- return t.__proto__ || Object.getPrototypeOf(t);
- }, r(t);
- }e.d(n, { FWw: function FWw() {
- return B;
- }, f_C: function f_C() {
- return _t;
- }, hjT: function hjT() {
- return Q;
- }, R3I: function R3I() {
- return y;
- }, Ljt: function Ljt() {
- return k;
- }, akz: function akz() {
- return dt;
- }, VnY: function VnY() {
- return H;
- }, cKT: function cKT() {
- return K;
- }, gbL: function gbL() {
- return ct;
- }, FIv: function FIv() {
- return _;
- }, xa3: function xa3() {
- return W;
- }, YCL: function YCL() {
- return vt;
- }, vpE: function vpE() {
- return ht;
- }, RMB: function RMB() {
- return L;
- }, ogt: function ogt() {
- return E;
- }, bGB: function bGB() {
- return T;
- }, cSb: function cSb() {
- return I;
- }, yl1: function yl1() {
- return et;
- }, $XI: function $XI() {
- return m;
- }, dvw: function dvw() {
- return at;
- }, S1n: function S1n() {
- return mt;
- }, $Tr: function $Tr() {
- return w;
- }, oLt: function oLt() {
- return D;
- }, yef: function yef() {
- return pt;
- }, ZTd: function ZTd() {
- return s;
- }, evW: function evW() {
- return G;
- }, H3E: function H3E() {
- return V;
- }, cly: function cly() {
- return lt;
- }, AT7: function AT7() {
- return R;
- }, j7q: function j7q() {
- return d;
- }, N8: function N8() {
- return p;
- }, rTO: function rTO() {
- return P;
- }, BmG: function BmG() {
- return M;
- }, fxP: function fxP() {
- return b;
- }, czc: function czc() {
- return $;
- }, DhX: function DhX() {
- return x;
- }, LdU: function LdU() {
- return g;
- }, bi5: function bi5() {
- return O;
- }, fLW: function fLW() {
- return C;
- }, VHj: function VHj() {
- return S;
- }, Ui: function Ui() {
- return ut;
- }, etI: function etI() {
- return st;
- }, GQg: function GQg() {
- return ft;
- } });var o = e(2717);function i() {
- if ("undefined" == typeof Reflect || !Reflect.construct) return !1;if (Reflect.construct.sham) return !1;if ("function" == typeof Proxy) return !0;try {
- return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;
- } catch (t) {
- return !1;
- }
- }function a(t, n, e) {
- return a = i() ? Reflect.construct : function (t, n, e) {
- var r = [null];r.push.apply(r, n);var i = new (Function.bind.apply(t, r))();return e && (0, o.Z)(i, e.prototype), i;
- }, a.apply(null, arguments);
- }function c(t) {
- var n = "function" == typeof Map ? new Map() : void 0;return c = function c(t) {
- if (null === t || (e = t, -1 === Function.toString.call(e).indexOf("[native code]"))) return t;var e;if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");if (void 0 !== n) {
- if (n.has(t)) return n.get(t);n.set(t, i);
- }function i() {
- return a(t, arguments, r(this).constructor);
- }return i.prototype = Object.create(t.prototype, { constructor: { value: i, enumerable: !1, writable: !0, configurable: !0 } }), (0, o.Z)(i, t);
- }, c(t);
- }var u = e(6881);function s() {}function l(t) {
- return t();
- }function f() {
- return Object.create(null);
- }function d(t) {
- t.forEach(l);
- }function v(t) {
- return "function" == typeof t;
- }function p(t, n) {
- return t != t ? n == n : t !== n || t && "object" == (typeof t === "undefined" ? "undefined" : _typeof(t)) || "function" == typeof t;
- }function h(t) {
- return 0 === Object.keys(t).length;
- }function g(t) {
- if (null == t) return s;for (var n = arguments.length, e = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++) {
- e[r - 1] = arguments[r];
- }var o = t.subscribe.apply(t, e);return o.unsubscribe ? function () {
- return o.unsubscribe();
- } : o;
- }function m(t) {
- var n;return g(t, function (t) {
- return n = t;
- })(), n;
- }function _(t, n, e) {
- t.$$.on_destroy.push(g(n, e));
- }function b(t, n, e) {
- return t.set(e), n;
- }new Set();function y(t, n) {
- t.appendChild(n);
- }function w(t, n, e) {
- t.insertBefore(n, e || null);
- }function E(t) {
- t.parentNode.removeChild(t);
- }function L(t, n) {
- for (var e = 0; e < t.length; e += 1) {
- t[e] && t[e].d(n);
- }
- }function T(t) {
- return document.createElement(t);
- }function O(t) {
- return document.createElementNS("http://www.w3.org/2000/svg", t);
- }function C(t) {
- return document.createTextNode(t);
- }function x() {
- return C(" ");
- }function I() {
- return C("");
- }function D(t, n, e, r) {
- return t.addEventListener(n, e, r), function () {
- return t.removeEventListener(n, e, r);
- };
- }function R(t) {
- return function (n) {
- return n.preventDefault(), t.call(this, n);
- };
- }function k(t, n, e) {
- null == e ? t.removeAttribute(n) : t.getAttribute(n) !== e && t.setAttribute(n, e);
- }function P(t, n) {
- n = "" + n, t.wholeText !== n && (t.data = n);
- }function M(t, n) {
- t.value = null == n ? "" : n;
- }function $(t, n, e, r) {
- null === e ? t.style.removeProperty(n) : t.style.setProperty(n, e, r ? "important" : "");
- }function S(t, n, e) {
- t.classList[e ? "add" : "remove"](n);
- }function j(t, n, e) {
- void 0 === e && (e = !1);var r = document.createEvent("CustomEvent");return r.initCustomEvent(t, e, !1, n), r;
- }var B = function () {
- function t() {
- this.e = this.n = null;
- }var n = t.prototype;return n.c = function (t) {
- this.h(t);
- }, n.m = function (t, n, e) {
- void 0 === e && (e = null), this.e || (this.e = T(n.nodeName), this.t = n, this.c(t)), this.i(e);
- }, n.h = function (t) {
- this.e.innerHTML = t, this.n = Array.from(this.e.childNodes);
- }, n.i = function (t) {
- for (var n = 0; n < this.n.length; n += 1) {
- w(this.t, this.n[n], t);
- }
- }, n.p = function (t) {
- this.d(), this.h(t), this.i(this.a);
- }, n.d = function () {
- this.n.forEach(E);
- }, t;
- }();var A;new Map();function U(t) {
- A = t;
- }function N() {
- if (!A) throw new Error("Function called outside component initialization");return A;
- }function V(t) {
- N().$$.on_mount.push(t);
- }function G(t) {
- N().$$.on_destroy.push(t);
- }function W() {
- var t = N();return function (n, e) {
- var r = t.$$.callbacks[n];if (r) {
- var o = j(n, e);r.slice().forEach(function (n) {
- n.call(t, o);
- });
- }
- };
- }function K(t, n) {
- var e = this,
- r = t.$$.callbacks[n.type];r && r.slice().forEach(function (t) {
- return t.call(e, n);
- });
- }var F = [],
- H = [],
- q = [],
- Z = [],
- X = Promise.resolve(),
- z = !1;function Y() {
- z || (z = !0, X.then(et));
- }function J(t) {
- q.push(t);
- }function Q(t) {
- Z.push(t);
- }var tt = new Set(),
- nt = 0;function et() {
- var t = A;do {
- for (; nt < F.length;) {
- var n = F[nt];nt++, U(n), rt(n.$$);
- }for (U(null), F.length = 0, nt = 0; H.length;) {
- H.pop()();
- }for (var e = 0; e < q.length; e += 1) {
- var r = q[e];tt.has(r) || (tt.add(r), r());
- }q.length = 0;
- } while (F.length);for (; Z.length;) {
- Z.pop()();
- }z = !1, tt.clear(), U(t);
- }function rt(t) {
- if (null !== t.fragment) {
- t.update(), d(t.before_update);var n = t.dirty;t.dirty = [-1], t.fragment && t.fragment.p(t.ctx, n), t.after_update.forEach(J);
- }
- }var ot,
- it = new Set();function at() {
- ot = { r: 0, c: [], p: ot };
- }function ct() {
- ot.r || d(ot.c), ot = ot.p;
- }function ut(t, n) {
- t && t.i && (it.delete(t), t.i(n));
- }function st(t, n, e, r) {
- if (t && t.o) {
- if (it.has(t)) return;it.add(t), ot.c.push(function () {
- it.delete(t), r && (e && t.d(1), r());
- }), t.o(n);
- }
- }"undefined" != typeof window ? window : "undefined" != typeof globalThis ? globalThis : global;function lt(t, n) {
- st(t, 1, 1, function () {
- n.delete(t.key);
- });
- }function ft(t, n, e, r, o, i, a, c, u, s, l, f) {
- for (var d = t.length, v = i.length, p = d, h = {}; p--;) {
- h[t[p].key] = p;
- }var g = [],
- m = new Map(),
- _ = new Map();for (p = v; p--;) {
- var b = f(o, i, p),
- y = e(b),
- w = a.get(y);w ? r && w.p(b, n) : (w = s(y, b)).c(), m.set(y, g[p] = w), y in h && _.set(y, Math.abs(p - h[y]));
- }var E = new Set(),
- L = new Set();function T(t) {
- ut(t, 1), t.m(c, l), a.set(t.key, t), l = t.first, v--;
- }for (; d && v;) {
- var O = g[v - 1],
- C = t[d - 1],
- x = O.key,
- I = C.key;O === C ? (l = O.first, d--, v--) : m.has(I) ? !a.has(x) || E.has(x) ? T(O) : L.has(I) ? d-- : _.get(x) > _.get(I) ? (L.add(x), T(O)) : (E.add(I), d--) : (u(C, a), d--);
- }for (; d--;) {
- var D = t[d];m.has(D.key) || u(D, a);
- }for (; v;) {
- T(g[v - 1]);
- }return g;
- }new Set(["allowfullscreen", "allowpaymentrequest", "async", "autofocus", "autoplay", "checked", "controls", "default", "defer", "disabled", "formnovalidate", "hidden", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "selected"]);function dt(t, n, e) {
- var r = t.$$.props[n];void 0 !== r && (t.$$.bound[r] = e, e(t.$$.ctx[r]));
- }function vt(t) {
- t && t.c();
- }function pt(t, n, e, r) {
- var o = t.$$,
- i = o.fragment,
- a = o.on_mount,
- c = o.on_destroy,
- u = o.after_update;i && i.m(n, e), r || J(function () {
- var n = a.map(l).filter(v);c ? c.push.apply(c, n) : d(n), t.$$.on_mount = [];
- }), u.forEach(J);
- }function ht(t, n) {
- var e = t.$$;null !== e.fragment && (d(e.on_destroy), e.fragment && e.fragment.d(n), e.on_destroy = e.fragment = null, e.ctx = []);
- }function gt(t, n) {
- -1 === t.$$.dirty[0] && (F.push(t), Y(), t.$$.dirty.fill(0)), t.$$.dirty[n / 31 | 0] |= 1 << n % 31;
- }function mt(t, n, e, r, o, i, a, c) {
- void 0 === c && (c = [-1]);var u = A;U(t);var l = t.$$ = { fragment: null, ctx: null, props: i, update: s, not_equal: o, bound: f(), on_mount: [], on_destroy: [], on_disconnect: [], before_update: [], after_update: [], context: new Map(n.context || (u ? u.$$.context : [])), callbacks: f(), dirty: c, skip_bound: !1, root: n.target || u.$$.root };a && a(l.root);var v,
- p = !1;if (l.ctx = e ? e(t, n.props || {}, function (n, e) {
- var r = !(arguments.length <= 2) && arguments.length - 2 ? arguments.length <= 2 ? void 0 : arguments[2] : e;return l.ctx && o(l.ctx[n], l.ctx[n] = r) && (!l.skip_bound && l.bound[n] && l.bound[n](r), p && gt(t, n)), e;
- }) : [], l.update(), p = !0, d(l.before_update), l.fragment = !!r && r(l.ctx), n.target) {
- if (n.hydrate) {
- !0;var h = (v = n.target, Array.from(v.childNodes));l.fragment && l.fragment.l(h), h.forEach(E);
- } else l.fragment && l.fragment.c();n.intro && ut(t.$$.fragment), pt(t, n.target, n.anchor, n.customElement), !1, et();
- }U(u);
- }"function" == typeof HTMLElement && HTMLElement;var _t = function () {
- function t() {}var n = t.prototype;return n.$destroy = function () {
- ht(this, 1), this.$destroy = s;
- }, n.$on = function (t, n) {
- var e = this.$$.callbacks[t] || (this.$$.callbacks[t] = []);return e.push(n), function () {
- var t = e.indexOf(n);-1 !== t && e.splice(t, 1);
- };
- }, n.$set = function (t) {
- this.$$set && !h(t) && (this.$$.skip_bound = !0, this.$$set(t), this.$$.skip_bound = !1);
- }, t;
- }();
- }, 3313: function _(t, n, e) {
- "use strict";
- e.d(n, { U2: function U2() {
- return r.$XI;
- }, fZ: function fZ() {
- return c;
- } });var r = e(2942);function o(t, n) {
- var e = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];if (e) return (e = e.call(t)).next.bind(e);if (Array.isArray(t) || (e = function (t, n) {
- if (!t) return;if ("string" == typeof t) return i(t, n);var e = Object.prototype.toString.call(t).slice(8, -1);"Object" === e && t.constructor && (e = t.constructor.name);if ("Map" === e || "Set" === e) return Array.from(t);if ("Arguments" === e || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)) return i(t, n);
- }(t)) || n && t && "number" == typeof t.length) {
- e && (t = e);var r = 0;return function () {
- return r >= t.length ? { done: !0 } : { done: !1, value: t[r++] };
- };
- }throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }function i(t, n) {
- (null == n || n > t.length) && (n = t.length);for (var e = 0, r = new Array(n); e < n; e++) {
- r[e] = t[e];
- }return r;
- }var a = [];function c(t, n) {
- var e;void 0 === n && (n = r.ZTd);var i = new Set();function c(n) {
- if ((0, r.N8)(t, n) && (t = n, e)) {
- for (var c, u = !a.length, s = o(i); !(c = s()).done;) {
- var l = c.value;l[1](), a.push(l, t);
- }if (u) {
- for (var f = 0; f < a.length; f += 2) {
- a[f][0](a[f + 1]);
- }a.length = 0;
- }
- }
- }return { set: c, update: function update(n) {
- c(n(t));
- }, subscribe: function subscribe(o, a) {
- void 0 === a && (a = r.ZTd);var u = [o, a];return i.add(u), 1 === i.size && (e = n(c) || r.ZTd), o(t), function () {
- i.delete(u), 0 === i.size && (e(), e = null);
- };
- } };
- }
- } },
- __webpack_module_cache__ = {};function __webpack_require__(t) {
- var n = __webpack_module_cache__[t];if (void 0 !== n) return n.exports;var e = __webpack_module_cache__[t] = { id: t, exports: {} };return __webpack_modules__[t](e, e.exports, __webpack_require__), e.exports;
- }__webpack_require__.n = function (t) {
- var n = t && t.__esModule ? function () {
- return t.default;
- } : function () {
- return t;
- };return __webpack_require__.d(n, { a: n }), n;
- }, __webpack_require__.d = function (t, n) {
- for (var e in n) {
- __webpack_require__.o(n, e) && !__webpack_require__.o(t, e) && Object.defineProperty(t, e, { enumerable: !0, get: n[e] });
- }
- }, __webpack_require__.g = function () {
- if ("object" == (typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis))) return globalThis;try {
- return this || new Function("return this")();
- } catch (t) {
- if ("object" == (typeof window === "undefined" ? "undefined" : _typeof(window))) return window;
- }
- }(), __webpack_require__.o = function (t, n) {
- return Object.prototype.hasOwnProperty.call(t, n);
- };var __webpack_exports__ = {};return function () {
- "use strict";
- __webpack_require__.d(__webpack_exports__, { default: function _default() {
- return Ar;
- } });__webpack_require__(5441), __webpack_require__(8765);var t = __webpack_require__(4296),
- n = __webpack_require__(5103),
- e = { one: function one(t, n) {
- void 0 === n && (n = document);try {
- return n.querySelector(t) || void 0;
- } catch (t) {
- return;
- }
- }, all: function all(t, n) {
- void 0 === n && (n = document);try {
- var e = n.querySelectorAll(t);return [].slice.call(e);
- } catch (t) {
- return [];
- }
- }, addClass: function addClass(t, e) {
- if (t) for (var r = (0, n.kJ)(t) ? t : [t], o = 0; o < r.length; o++) {
- var i = (r[o].className || "").split(" ");i.indexOf(e) > -1 || (i.push(e), r[o].className = i.join(" "));
- }
- }, removeClass: function removeClass(t, e) {
- if (t) for (var r = (0, n.kJ)(t) ? t : [t], o = 0; o < r.length; o++) {
- for (var i = r[o].className.split(" "), a = 0; a < i.length; a++) {
- i[a] == e && (i[a] = "");
- }r[o].className = i.join(" ").trim();
- }
- }, hasClass: function hasClass(t, n) {
- return !(!t || !t.classList) && t.classList.contains(n);
- }, bind: function bind(t, e, r, o) {
- (void 0 === o && (o = !1), t) && ((0, n.kJ)(t) ? t : [t]).forEach(function (t) {
- t.addEventListener(e, r, !!o);
- });
- }, delegate: function delegate(t, n, r, o) {
- t && t.addEventListener(n, function (n) {
- var i = e.all(r, t);if (i) t: for (var a = 0; a < i.length; a++) {
- for (var c = n.target; c;) {
- if (c == i[a]) {
- o.call(c, n, c);break t;
- }if ((c = c.parentNode) == t) break;
- }
- }
- }, !1);
- }, removeChildren: function removeChildren(t) {
- for (; t.firstChild;) {
- t.removeChild(t.lastChild);
- }return t;
- } },
- r = e,
- o = __webpack_require__(6464),
- i = __webpack_require__(6881),
- a = __webpack_require__(2942),
- c = __webpack_require__(7003),
- u = __webpack_require__(3379),
- s = __webpack_require__.n(u),
- l = __webpack_require__(7795),
- f = __webpack_require__.n(l),
- d = __webpack_require__(569),
- v = __webpack_require__.n(d),
- p = __webpack_require__(3565),
- h = __webpack_require__.n(p),
- g = __webpack_require__(9216),
- m = __webpack_require__.n(g),
- _ = __webpack_require__(4589),
- b = __webpack_require__.n(_),
- y = __webpack_require__(7558),
- w = {};y.Z && y.Z.locals && (w.locals = y.Z.locals);var E,
- L = 0,
- T = {};T.styleTagTransform = b(), T.setAttributes = h(), T.insert = v().bind(null, "head"), T.domAPI = f(), T.insertStyleElement = m(), w.use = function (t) {
- return T.options = t || {}, L++ || (E = s()(y.Z, T)), w;
- }, w.unuse = function () {
- L > 0 && ! --L && (E(), E = null);
- };var O = w;function C(t) {
- var n, e, r, o;return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.fLW)("vConsole"), (0, a.Ljt)(n, "class", "vc-switch"), (0, a.czc)(n, "right", t[2].x + "px"), (0, a.czc)(n, "bottom", t[2].y + "px"), (0, a.czc)(n, "display", t[0] ? "block" : "none");
- }, m: function m(i, c) {
- (0, a.$Tr)(i, n, c), (0, a.R3I)(n, e), t[8](n), r || (o = [(0, a.oLt)(n, "touchstart", t[3]), (0, a.oLt)(n, "touchend", t[4]), (0, a.oLt)(n, "touchmove", t[5]), (0, a.oLt)(n, "click", t[7])], r = !0);
- }, p: function p(t, e) {
- var r = e[0];4 & r && (0, a.czc)(n, "right", t[2].x + "px"), 4 & r && (0, a.czc)(n, "bottom", t[2].y + "px"), 1 & r && (0, a.czc)(n, "display", t[0] ? "block" : "none");
- }, i: a.ZTd, o: a.ZTd, d: function d(e) {
- e && (0, a.ogt)(n), t[8](null), r = !1, (0, a.j7q)(o);
- } };
- }function x(t, e, r) {
- var o,
- i = e.show,
- u = void 0 === i || i,
- s = e.position,
- l = void 0 === s ? { x: 0, y: 0 } : s,
- f = { hasMoved: !1, x: 0, y: 0, startX: 0, startY: 0, endX: 0, endY: 0 },
- d = { x: 0, y: 0 };(0, c.H3)(function () {
- O.use();
- }), (0, c.ev)(function () {
- O.unuse();
- });var v = function v(t, e) {
- var o = p(t, e);t = o[0], e = o[1], f.x = t, f.y = e, r(2, d.x = t, d), r(2, d.y = e, d), n.po("switch_x", t + ""), n.po("switch_y", e + "");
- },
- p = function p(t, n) {
- var e = Math.max(document.documentElement.offsetWidth, window.innerWidth),
- r = Math.max(document.documentElement.offsetHeight, window.innerHeight);return t + o.offsetWidth > e && (t = e - o.offsetWidth), n + o.offsetHeight > r && (n = r - o.offsetHeight), t < 0 && (t = 0), n < 20 && (n = 20), [t, n];
- };return t.$$set = function (t) {
- "show" in t && r(0, u = t.show), "position" in t && r(6, l = t.position);
- }, t.$$.update = function () {
- 66 & t.$$.dirty && o && v(l.x, l.y);
- }, [u, o, d, function (t) {
- f.startX = t.touches[0].pageX, f.startY = t.touches[0].pageY, f.hasMoved = !1;
- }, function (t) {
- f.hasMoved && (f.startX = 0, f.startY = 0, f.hasMoved = !1, v(f.endX, f.endY));
- }, function (t) {
- if (!(t.touches.length <= 0)) {
- var n = t.touches[0].pageX - f.startX,
- e = t.touches[0].pageY - f.startY,
- o = Math.floor(f.x - n),
- i = Math.floor(f.y - e),
- a = p(o, i);o = a[0], i = a[1], r(2, d.x = o, d), r(2, d.y = i, d), f.endX = o, f.endY = i, f.hasMoved = !0, t.preventDefault();
- }
- }, l, function (n) {
- a.cKT.call(this, t, n);
- }, function (t) {
- a.VnY[t ? "unshift" : "push"](function () {
- r(1, o = t);
- });
- }];
- }var I = function (n) {
- function e(t) {
- var e;return e = n.call(this) || this, (0, a.S1n)((0, o.Z)(e), t, x, C, a.N8, { show: 0, position: 6 }), e;
- }return (0, i.Z)(e, n), (0, t.Z)(e, [{ key: "show", get: function get() {
- return this.$$.ctx[0];
- }, set: function set(t) {
- this.$$set({ show: t }), (0, a.yl1)();
- } }, { key: "position", get: function get() {
- return this.$$.ctx[6];
- }, set: function set(t) {
- this.$$set({ position: t }), (0, a.yl1)();
- } }]), e;
- }(a.f_C),
- D = I,
- R = __webpack_require__(4687),
- k = __webpack_require__(3283),
- P = {};k.Z && k.Z.locals && (P.locals = k.Z.locals);var M,
- $ = 0,
- S = {};S.styleTagTransform = b(), S.setAttributes = h(), S.insert = v().bind(null, "head"), S.domAPI = f(), S.insertStyleElement = m(), P.use = function (t) {
- return S.options = t || {}, $++ || (M = s()(k.Z, S)), P;
- }, P.unuse = function () {
- $ > 0 && ! --$ && (M(), M = null);
- };var j = P;function B(t, n, e) {
- var r = t.slice();return r[41] = n[e][0], r[42] = n[e][1], r;
- }function A(t, n, e) {
- var r = t.slice();return r[45] = n[e], r[47] = e, r;
- }function U(t, n, e) {
- var r = t.slice();return r[41] = n[e][0], r[42] = n[e][1], r;
- }function N(t, n, e) {
- var r = t.slice();return r[41] = n[e][0], r[42] = n[e][1], r;
- }function V(t, n, e) {
- var r = t.slice();return r[45] = n[e], r[47] = e, r;
- }function G(t, n, e) {
- var r = t.slice();return r[41] = n[e][0], r[42] = n[e][1], r;
- }function W(t) {
- var n,
- e,
- r,
- o,
- i,
- _c3 = t[42].name + "";function u() {
- return t[26](t[42]);
- }return { c: function c() {
- n = (0, a.bGB)("a"), e = (0, a.fLW)(_c3), (0, a.Ljt)(n, "class", "vc-tab"), (0, a.Ljt)(n, "id", r = "__vc_tab_" + t[42].id), (0, a.VHj)(n, "vc-actived", t[42].id === t[2]);
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), (0, a.R3I)(n, e), o || (i = (0, a.oLt)(n, "click", u), o = !0);
- }, p: function p(o, i) {
- t = o, 8 & i[0] && _c3 !== (_c3 = t[42].name + "") && (0, a.rTO)(e, _c3), 8 & i[0] && r !== (r = "__vc_tab_" + t[42].id) && (0, a.Ljt)(n, "id", r), 12 & i[0] && (0, a.VHj)(n, "vc-actived", t[42].id === t[2]);
- }, d: function d(t) {
- t && (0, a.ogt)(n), o = !1, i();
- } };
- }function K(t) {
- var n,
- e = t[42].hasTabPanel && W(t);return { c: function c() {
- e && e.c(), n = (0, a.cSb)();
- }, m: function m(t, r) {
- e && e.m(t, r), (0, a.$Tr)(t, n, r);
- }, p: function p(t, r) {
- t[42].hasTabPanel ? e ? e.p(t, r) : ((e = W(t)).c(), e.m(n.parentNode, n)) : e && (e.d(1), e = null);
- }, d: function d(t) {
- e && e.d(t), t && (0, a.ogt)(n);
- } };
- }function F(t) {
- var n,
- e,
- r,
- o,
- i,
- _c4 = t[45].name + "";function u() {
- for (var n, e = arguments.length, r = new Array(e), o = 0; o < e; o++) {
- r[o] = arguments[o];
- }return (n = t)[27].apply(n, [t[42], t[47]].concat(r));
- }return { c: function c() {
- n = (0, a.bGB)("i"), e = (0, a.fLW)(_c4), (0, a.Ljt)(n, "class", r = "vc-toptab vc-topbar-" + t[42].id + " " + t[45].className), (0, a.VHj)(n, "vc-toggle", t[42].id === t[2]), (0, a.VHj)(n, "vc-actived", t[45].actived);
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), (0, a.R3I)(n, e), o || (i = (0, a.oLt)(n, "click", u), o = !0);
- }, p: function p(o, i) {
- t = o, 8 & i[0] && _c4 !== (_c4 = t[45].name + "") && (0, a.rTO)(e, _c4), 8 & i[0] && r !== (r = "vc-toptab vc-topbar-" + t[42].id + " " + t[45].className) && (0, a.Ljt)(n, "class", r), 12 & i[0] && (0, a.VHj)(n, "vc-toggle", t[42].id === t[2]), 8 & i[0] && (0, a.VHj)(n, "vc-actived", t[45].actived);
- }, d: function d(t) {
- t && (0, a.ogt)(n), o = !1, i();
- } };
- }function H(t) {
- for (var n, e = t[42].topbarList, r = [], o = 0; o < e.length; o += 1) {
- r[o] = F(V(t, e, o));
- }return { c: function c() {
- for (var t = 0; t < r.length; t += 1) {
- r[t].c();
- }n = (0, a.cSb)();
- }, m: function m(t, e) {
- for (var o = 0; o < r.length; o += 1) {
- r[o].m(t, e);
- }(0, a.$Tr)(t, n, e);
- }, p: function p(t, o) {
- if (16396 & o[0]) {
- var i;for (e = t[42].topbarList, i = 0; i < e.length; i += 1) {
- var a = V(t, e, i);r[i] ? r[i].p(a, o) : (r[i] = F(a), r[i].c(), r[i].m(n.parentNode, n));
- }for (; i < r.length; i += 1) {
- r[i].d(1);
- }r.length = e.length;
- }
- }, d: function d(t) {
- (0, a.RMB)(r, t), t && (0, a.ogt)(n);
- } };
- }function q(t) {
- var n, e;return { c: function c() {
- n = (0, a.bGB)("div"), (0, a.Ljt)(n, "id", e = "__vc_plug_" + t[42].id), (0, a.Ljt)(n, "class", "vc-plugin-box"), (0, a.VHj)(n, "vc-actived", t[42].id === t[2]);
- }, m: function m(e, r) {
- (0, a.$Tr)(e, n, r), t[28](n);
- }, p: function p(t, r) {
- 8 & r[0] && e !== (e = "__vc_plug_" + t[42].id) && (0, a.Ljt)(n, "id", e), 12 & r[0] && (0, a.VHj)(n, "vc-actived", t[42].id === t[2]);
- }, d: function d(e) {
- e && (0, a.ogt)(n), t[28](null);
- } };
- }function Z(t) {
- var n,
- e,
- r,
- o,
- i,
- _c5 = t[45].name + "";function u() {
- for (var n, e = arguments.length, r = new Array(e), o = 0; o < e; o++) {
- r[o] = arguments[o];
- }return (n = t)[30].apply(n, [t[42], t[47]].concat(r));
- }return { c: function c() {
- n = (0, a.bGB)("i"), e = (0, a.fLW)(_c5), (0, a.Ljt)(n, "class", r = "vc-tool vc-tool-" + t[42].id), (0, a.VHj)(n, "vc-global-tool", t[45].global), (0, a.VHj)(n, "vc-toggle", t[42].id === t[2]);
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), (0, a.R3I)(n, e), o || (i = (0, a.oLt)(n, "click", u), o = !0);
- }, p: function p(o, i) {
- t = o, 8 & i[0] && _c5 !== (_c5 = t[45].name + "") && (0, a.rTO)(e, _c5), 8 & i[0] && r !== (r = "vc-tool vc-tool-" + t[42].id) && (0, a.Ljt)(n, "class", r), 8 & i[0] && (0, a.VHj)(n, "vc-global-tool", t[45].global), 12 & i[0] && (0, a.VHj)(n, "vc-toggle", t[42].id === t[2]);
- }, d: function d(t) {
- t && (0, a.ogt)(n), o = !1, i();
- } };
- }function X(t) {
- for (var n, e = t[42].toolbarList, r = [], o = 0; o < e.length; o += 1) {
- r[o] = Z(A(t, e, o));
- }return { c: function c() {
- for (var t = 0; t < r.length; t += 1) {
- r[t].c();
- }n = (0, a.cSb)();
- }, m: function m(t, e) {
- for (var o = 0; o < r.length; o += 1) {
- r[o].m(t, e);
- }(0, a.$Tr)(t, n, e);
- }, p: function p(t, o) {
- if (32780 & o[0]) {
- var i;for (e = t[42].toolbarList, i = 0; i < e.length; i += 1) {
- var a = A(t, e, i);r[i] ? r[i].p(a, o) : (r[i] = Z(a), r[i].c(), r[i].m(n.parentNode, n));
- }for (; i < r.length; i += 1) {
- r[i].d(1);
- }r.length = e.length;
- }
- }, d: function d(t) {
- (0, a.RMB)(r, t), t && (0, a.ogt)(n);
- } };
- }function z(t) {
- var n, e, r, o, i, _c6, u, s, l, f, d, v, _p2, h, g, _m3, _, b, y, w, E;function L(n) {
- t[24](n);
- }function T(n) {
- t[25](n);
- }var O = {};void 0 !== t[0] && (O.show = t[0]), void 0 !== t[1] && (O.position = t[1]), e = new D({ props: O }), a.VnY.push(function () {
- return (0, a.akz)(e, "show", L);
- }), a.VnY.push(function () {
- return (0, a.akz)(e, "position", T);
- }), e.$on("click", t[11]);for (var C = Object.entries(t[3]), x = [], I = 0; I < C.length; I += 1) {
- x[I] = K(G(t, C, I));
- }for (var R = Object.entries(t[3]), k = [], P = 0; P < R.length; P += 1) {
- k[P] = H(N(t, R, P));
- }for (var M = Object.entries(t[3]), $ = [], S = 0; S < M.length; S += 1) {
- $[S] = q(U(t, M, S));
- }for (var j = Object.entries(t[3]), A = [], V = 0; V < j.length; V += 1) {
- A[V] = X(B(t, j, V));
- }return { c: function c() {
- var r, o;n = (0, a.bGB)("div"), (0, a.YCL)(e.$$.fragment), i = (0, a.DhX)(), _c6 = (0, a.bGB)("div"), u = (0, a.DhX)(), s = (0, a.bGB)("div"), l = (0, a.bGB)("div");for (var y = 0; y < x.length; y += 1) {
- x[y].c();
- }f = (0, a.DhX)(), d = (0, a.bGB)("div");for (var w = 0; w < k.length; w += 1) {
- k[w].c();
- }v = (0, a.DhX)(), _p2 = (0, a.bGB)("div");for (var E = 0; E < $.length; E += 1) {
- $[E].c();
- }h = (0, a.DhX)(), g = (0, a.bGB)("div");for (var L = 0; L < A.length; L += 1) {
- A[L].c();
- }_m3 = (0, a.DhX)(), (_ = (0, a.bGB)("i")).textContent = "Hide", (0, a.Ljt)(_c6, "class", "vc-mask"), (0, a.czc)(_c6, "display", t[10] ? "block" : "none"), (0, a.Ljt)(l, "class", "vc-tabbar"), (0, a.Ljt)(d, "class", "vc-topbar"), (0, a.Ljt)(_p2, "class", "vc-content"), (0, a.VHj)(_p2, "vc-has-topbar", (null == (r = t[3][t[2]]) || null == (o = r.topbarList) ? void 0 : o.length) > 0), (0, a.Ljt)(_, "class", "vc-tool vc-global-tool vc-tool-last vc-hide"), (0, a.Ljt)(g, "class", "vc-toolbar"), (0, a.Ljt)(s, "class", "vc-panel"), (0, a.czc)(s, "display", t[9] ? "block" : "none"), (0, a.Ljt)(n, "id", "__vconsole"), (0, a.Ljt)(n, "style", b = t[7] ? "font-size:" + t[7] + ";" : ""), (0, a.Ljt)(n, "data-theme", t[5]), (0, a.VHj)(n, "vc-toggle", t[8]);
- }, m: function m(r, o) {
- (0, a.$Tr)(r, n, o), (0, a.yef)(e, n, null), (0, a.R3I)(n, i), (0, a.R3I)(n, _c6), (0, a.R3I)(n, u), (0, a.R3I)(n, s), (0, a.R3I)(s, l);for (var b = 0; b < x.length; b += 1) {
- x[b].m(l, null);
- }(0, a.R3I)(s, f), (0, a.R3I)(s, d);for (var L = 0; L < k.length; L += 1) {
- k[L].m(d, null);
- }(0, a.R3I)(s, v), (0, a.R3I)(s, _p2);for (var T = 0; T < $.length; T += 1) {
- $[T].m(_p2, null);
- }t[29](_p2), (0, a.R3I)(s, h), (0, a.R3I)(s, g);for (var O = 0; O < A.length; O += 1) {
- A[O].m(g, null);
- }(0, a.R3I)(g, _m3), (0, a.R3I)(g, _), y = !0, w || (E = [(0, a.oLt)(_c6, "click", t[12]), (0, a.oLt)(_p2, "touchstart", t[16]), (0, a.oLt)(_p2, "touchmove", t[17]), (0, a.oLt)(_p2, "touchend", t[18]), (0, a.oLt)(_p2, "scroll", t[19]), (0, a.oLt)(_, "click", t[12]), (0, a.oLt)(n, "touchstart", t[20].touchStart, !0), (0, a.oLt)(n, "touchmove", t[20].touchMove, !0), (0, a.oLt)(n, "touchend", t[20].touchEnd, !0)], w = !0);
- }, p: function p(t, i) {
- var u,
- f,
- v = {};if (!r && 1 & i[0] && (r = !0, v.show = t[0], (0, a.hjT)(function () {
- return r = !1;
- })), !o && 2 & i[0] && (o = !0, v.position = t[1], (0, a.hjT)(function () {
- return o = !1;
- })), e.$set(v), (!y || 1024 & i[0]) && (0, a.czc)(_c6, "display", t[10] ? "block" : "none"), 8204 & i[0]) {
- var h;for (C = Object.entries(t[3]), h = 0; h < C.length; h += 1) {
- var _ = G(t, C, h);x[h] ? x[h].p(_, i) : (x[h] = K(_), x[h].c(), x[h].m(l, null));
- }for (; h < x.length; h += 1) {
- x[h].d(1);
- }x.length = C.length;
- }if (16396 & i[0]) {
- var w;for (R = Object.entries(t[3]), w = 0; w < R.length; w += 1) {
- var E = N(t, R, w);k[w] ? k[w].p(E, i) : (k[w] = H(E), k[w].c(), k[w].m(d, null));
- }for (; w < k.length; w += 1) {
- k[w].d(1);
- }k.length = R.length;
- }if (28 & i[0]) {
- var L;for (M = Object.entries(t[3]), L = 0; L < M.length; L += 1) {
- var T = U(t, M, L);$[L] ? $[L].p(T, i) : ($[L] = q(T), $[L].c(), $[L].m(_p2, null));
- }for (; L < $.length; L += 1) {
- $[L].d(1);
- }$.length = M.length;
- }12 & i[0] && (0, a.VHj)(_p2, "vc-has-topbar", (null == (u = t[3][t[2]]) || null == (f = u.topbarList) ? void 0 : f.length) > 0);if (32780 & i[0]) {
- var O;for (j = Object.entries(t[3]), O = 0; O < j.length; O += 1) {
- var I = B(t, j, O);A[O] ? A[O].p(I, i) : (A[O] = X(I), A[O].c(), A[O].m(g, _m3));
- }for (; O < A.length; O += 1) {
- A[O].d(1);
- }A.length = j.length;
- }(!y || 512 & i[0]) && (0, a.czc)(s, "display", t[9] ? "block" : "none"), (!y || 128 & i[0] && b !== (b = t[7] ? "font-size:" + t[7] + ";" : "")) && (0, a.Ljt)(n, "style", b), (!y || 32 & i[0]) && (0, a.Ljt)(n, "data-theme", t[5]), 256 & i[0] && (0, a.VHj)(n, "vc-toggle", t[8]);
- }, i: function i(t) {
- y || ((0, a.Ui)(e.$$.fragment, t), y = !0);
- }, o: function o(t) {
- (0, a.etI)(e.$$.fragment, t), y = !1;
- }, d: function d(r) {
- r && (0, a.ogt)(n), (0, a.vpE)(e), (0, a.RMB)(x, r), (0, a.RMB)(k, r), (0, a.RMB)($, r), t[29](null), (0, a.RMB)(A, r), w = !1, (0, a.j7q)(E);
- } };
- }function Y(t, e, r) {
- var o,
- i,
- u = e.theme,
- s = void 0 === u ? "" : u,
- l = e.disableScrolling,
- f = void 0 !== l && l,
- d = e.show,
- v = void 0 !== d && d,
- p = e.showSwitchButton,
- h = void 0 === p || p,
- g = e.switchButtonPosition,
- m = void 0 === g ? { x: 0, y: 0 } : g,
- _ = e.activedPluginId,
- b = void 0 === _ ? "" : _,
- y = e.pluginList,
- w = void 0 === y ? {} : y,
- E = e.divContentInner,
- L = void 0 === E ? void 0 : E,
- T = (0, c.x)(),
- O = !1,
- C = "",
- x = !1,
- I = !1,
- D = !1,
- k = !0,
- P = 0,
- M = null,
- $ = {};(0, c.H3)(function () {
- var t = document.querySelectorAll('[name="viewport"]');if (t && t[0]) {
- var n = (t[t.length - 1].getAttribute("content") || "").match(/initial\-scale\=\d+(\.\d+)?/),
- e = n ? parseFloat(n[0].split("=")[1]) : 1;1 !== e && r(7, C = Math.floor(1 / e * 13) + "px");
- }j.use && j.use(), i = R.x.subscribe(function (t) {
- v && P !== t.updateTime && (P = t.updateTime, S());
- });
- }), (0, c.ev)(function () {
- j.unuse && j.unuse(), i && i();
- });var S = function S() {
- !f && k && o && r(6, o.scrollTop = o.scrollHeight - o.offsetHeight, o);
- },
- B = function B(t) {
- t !== b && (r(2, b = t), T("changePanel", { pluginId: t }), setTimeout(function () {
- o && r(6, o.scrollTop = $[b] || 0, o);
- }, 0));
- },
- A = function A(t, e, o) {
- var i = w[e].topbarList[o],
- a = !0;if (n.mf(i.onClick) && (a = i.onClick.call(t.target, t, i.data)), !1 === a) ;else {
- for (var c = 0; c < w[e].topbarList.length; c++) {
- r(3, w[e].topbarList[c].actived = o === c, w);
- }r(3, w);
- }
- },
- U = function U(t, e, r) {
- var o = w[e].toolbarList[r];n.mf(o.onClick) && o.onClick.call(t.target, t, o.data);
- },
- N = { tapTime: 700, tapBoundary: 10, lastTouchStartTime: 0, touchstartX: 0, touchstartY: 0, touchHasMoved: !1, targetElem: null },
- V = { touchStart: function touchStart(t) {
- if (0 === N.lastTouchStartTime) {
- var n = t.targetTouches[0];N.touchstartX = n.pageX, N.touchstartY = n.pageY, N.lastTouchStartTime = t.timeStamp, N.targetElem = t.target.nodeType === Node.TEXT_NODE ? t.target.parentNode : t.target;
- }
- }, touchMove: function touchMove(t) {
- var n = t.changedTouches[0];(Math.abs(n.pageX - N.touchstartX) > N.tapBoundary || Math.abs(n.pageY - N.touchstartY) > N.tapBoundary) && (N.touchHasMoved = !0);
- }, touchEnd: function touchEnd(t) {
- if (!1 === N.touchHasMoved && t.timeStamp - N.lastTouchStartTime < N.tapTime && null != N.targetElem) {
- var n = !1;switch (N.targetElem.tagName.toLowerCase()) {case "textarea":
- n = !0;break;case "input":
- switch (N.targetElem.type) {case "button":case "checkbox":case "file":case "image":case "radio":case "submit":
- n = !1;break;default:
- n = !N.targetElem.disabled && !N.targetElem.readOnly;}}n ? N.targetElem.focus() : t.preventDefault();var e = t.changedTouches[0],
- r = new MouseEvent("click", { bubbles: !0, cancelable: !0, view: window, screenX: e.screenX, screenY: e.screenY, clientX: e.clientX, clientY: e.clientY });N.targetElem.dispatchEvent(r);
- }N.lastTouchStartTime = 0, N.touchHasMoved = !1, N.targetElem = null;
- } };return t.$$set = function (t) {
- "theme" in t && r(5, s = t.theme), "disableScrolling" in t && r(21, f = t.disableScrolling), "show" in t && r(22, v = t.show), "showSwitchButton" in t && r(0, h = t.showSwitchButton), "switchButtonPosition" in t && r(1, m = t.switchButtonPosition), "activedPluginId" in t && r(2, b = t.activedPluginId), "pluginList" in t && r(3, w = t.pluginList), "divContentInner" in t && r(4, L = t.divContentInner);
- }, t.$$.update = function () {
- 12582912 & t.$$.dirty[0] && (!0 === v ? (r(9, I = !0), r(10, D = !0), M && clearTimeout(M), r(23, M = setTimeout(function () {
- r(8, x = !0), S();
- }, 10))) : (r(8, x = !1), M && clearTimeout(M), r(23, M = setTimeout(function () {
- r(9, I = !1), r(10, D = !1);
- }, 330))));
- }, [h, m, b, w, L, s, o, C, x, I, D, function (t) {
- T("show", { show: !0 });
- }, function (t) {
- T("show", { show: !1 });
- }, B, A, U, function (t) {
- var n = o.scrollTop,
- e = o.scrollHeight,
- i = n + o.offsetHeight;0 === n ? (r(6, o.scrollTop = 1, o), 0 === o.scrollTop && t.target.classList && !t.target.classList.contains("vc-cmd-input") && (O = !0)) : i === e && (r(6, o.scrollTop = n - 1, o), o.scrollTop === n && t.target.classList && !t.target.classList.contains("vc-cmd-input") && (O = !0));
- }, function (t) {
- O && t.preventDefault();
- }, function (t) {
- O = !1;
- }, function (t) {
- v && (k = o.scrollTop + o.offsetHeight >= o.scrollHeight - 50, $[b] = o.scrollTop);
- }, V, f, v, M, function (t) {
- r(0, h = t);
- }, function (t) {
- r(1, m = t);
- }, function (t) {
- return B(t.id);
- }, function (t, n, e) {
- return A(e, t.id, n);
- }, function (t) {
- a.VnY[t ? "unshift" : "push"](function () {
- r(4, L = t);
- });
- }, function (t) {
- a.VnY[t ? "unshift" : "push"](function () {
- r(6, o = t);
- });
- }, function (t, n, e) {
- return U(e, t.id, n);
- }];
- }var J = function (n) {
- function e(t) {
- var e;return e = n.call(this) || this, (0, a.S1n)((0, o.Z)(e), t, Y, z, a.N8, { theme: 5, disableScrolling: 21, show: 22, showSwitchButton: 0, switchButtonPosition: 1, activedPluginId: 2, pluginList: 3, divContentInner: 4 }, null, [-1, -1]), e;
- }return (0, i.Z)(e, n), (0, t.Z)(e, [{ key: "theme", get: function get() {
- return this.$$.ctx[5];
- }, set: function set(t) {
- this.$$set({ theme: t }), (0, a.yl1)();
- } }, { key: "disableScrolling", get: function get() {
- return this.$$.ctx[21];
- }, set: function set(t) {
- this.$$set({ disableScrolling: t }), (0, a.yl1)();
- } }, { key: "show", get: function get() {
- return this.$$.ctx[22];
- }, set: function set(t) {
- this.$$set({ show: t }), (0, a.yl1)();
- } }, { key: "showSwitchButton", get: function get() {
- return this.$$.ctx[0];
- }, set: function set(t) {
- this.$$set({ showSwitchButton: t }), (0, a.yl1)();
- } }, { key: "switchButtonPosition", get: function get() {
- return this.$$.ctx[1];
- }, set: function set(t) {
- this.$$set({ switchButtonPosition: t }), (0, a.yl1)();
- } }, { key: "activedPluginId", get: function get() {
- return this.$$.ctx[2];
- }, set: function set(t) {
- this.$$set({ activedPluginId: t }), (0, a.yl1)();
- } }, { key: "pluginList", get: function get() {
- return this.$$.ctx[3];
- }, set: function set(t) {
- this.$$set({ pluginList: t }), (0, a.yl1)();
- } }, { key: "divContentInner", get: function get() {
- return this.$$.ctx[4];
- }, set: function set(t) {
- this.$$set({ divContentInner: t }), (0, a.yl1)();
- } }]), e;
- }(a.f_C),
- Q = J,
- tt = function () {
- function e(t, n) {
- void 0 === n && (n = "newPlugin"), this.isReady = !1, this.eventMap = new Map(), this.exporter = void 0, this._id = void 0, this._name = void 0, this._vConsole = void 0, this.id = t, this.name = n, this.isReady = !1;
- }var r = e.prototype;return r.on = function (t, n) {
- return this.eventMap.set(t, n), this;
- }, r.onRemove = function () {
- this.unbindExporter();
- }, r.trigger = function (t, n) {
- var e = this.eventMap.get(t);if ("function" == typeof e) e.call(this, n);else {
- var r = "on" + t.charAt(0).toUpperCase() + t.slice(1);"function" == typeof this[r] && this[r].call(this, n);
- }return this;
- }, r.bindExporter = function () {
- if (this._vConsole && this.exporter) {
- var t = "default" === this.id ? "log" : this.id;this._vConsole[t] = this.exporter;
- }
- }, r.unbindExporter = function () {
- var t = "default" === this.id ? "log" : this.id;this._vConsole && this._vConsole[t] && (this._vConsole[t] = void 0);
- }, r.getUniqueID = function (t) {
- return void 0 === t && (t = ""), (0, n.QI)(t);
- }, (0, t.Z)(e, [{ key: "id", get: function get() {
- return this._id;
- }, set: function set(t) {
- if ("string" != typeof t) throw "[vConsole] Plugin ID must be a string.";if (!t) throw "[vConsole] Plugin ID cannot be empty.";this._id = t.toLowerCase();
- } }, { key: "name", get: function get() {
- return this._name;
- }, set: function set(t) {
- if ("string" != typeof t) throw "[vConsole] Plugin name must be a string.";if (!t) throw "[vConsole] Plugin name cannot be empty.";this._name = t;
- } }, { key: "vConsole", get: function get() {
- return this._vConsole || void 0;
- }, set: function set(t) {
- if (!t) throw "[vConsole] vConsole cannot be empty";this._vConsole = t, this.bindExporter();
- } }]), e;
- }(),
- nt = function (t) {
- function n(n, e, r, o) {
- var i;return (i = t.call(this, n, e) || this).CompClass = void 0, i.compInstance = void 0, i.initialProps = void 0, i.CompClass = r, i.initialProps = o, i;
- }(0, i.Z)(n, t);var e = n.prototype;return e.onReady = function () {
- this.isReady = !0;
- }, e.onRenderTab = function (t) {
- var n = document.createElement("div");this.compInstance = new this.CompClass({ target: n, props: this.initialProps }), t(n.firstElementChild);
- }, e.onRemove = function () {
- t.prototype.onRemove && t.prototype.onRemove.call(this), this.compInstance && this.compInstance.$destroy();
- }, n;
- }(tt),
- et = __webpack_require__(8665),
- rt = __webpack_require__(9923);var ot = __webpack_require__(6958);function it(t) {
- var n, e;return (n = new ot.Z({ props: { name: t[0] ? "success" : "copy" } })).$on("click", t[1]), { c: function c() {
- (0, a.YCL)(n.$$.fragment);
- }, m: function m(t, r) {
- (0, a.yef)(n, t, r), e = !0;
- }, p: function p(t, e) {
- var r = {};1 & e[0] && (r.name = t[0] ? "success" : "copy"), n.$set(r);
- }, i: function i(t) {
- e || ((0, a.Ui)(n.$$.fragment, t), e = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), e = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t);
- } };
- }function at(t, e, r) {
- var o = e.content,
- i = void 0 === o ? "" : o,
- a = e.handler,
- c = void 0 === a ? void 0 : a,
- u = { target: document.documentElement },
- s = !1;return t.$$set = function (t) {
- "content" in t && r(2, i = t.content), "handler" in t && r(3, c = t.handler);
- }, [s, function (t) {
- (function (t, n) {
- var e = (void 0 === n ? {} : n).target,
- r = void 0 === e ? document.body : e,
- o = document.createElement("textarea"),
- i = document.activeElement;o.value = t, o.setAttribute("readonly", ""), o.style.contain = "strict", o.style.position = "absolute", o.style.left = "-9999px", o.style.fontSize = "12pt";var a = document.getSelection(),
- c = !1;a.rangeCount > 0 && (c = a.getRangeAt(0)), r.append(o), o.select(), o.selectionStart = 0, o.selectionEnd = t.length;var u = !1;try {
- u = document.execCommand("copy");
- } catch (t) {}o.remove(), c && (a.removeAllRanges(), a.addRange(c)), i && i.focus();
- })(n.mf(c) ? c(i) || "" : n.Kn(i) || n.kJ(i) ? n.hZ(i) : i, u), r(0, s = !0), setTimeout(function () {
- r(0, s = !1);
- }, 600);
- }, i, c];
- }var ct = function (n) {
- function e(t) {
- var e;return e = n.call(this) || this, (0, a.S1n)((0, o.Z)(e), t, at, it, a.N8, { content: 2, handler: 3 }), e;
- }return (0, i.Z)(e, n), (0, t.Z)(e, [{ key: "content", get: function get() {
- return this.$$.ctx[2];
- }, set: function set(t) {
- this.$$set({ content: t }), (0, a.yl1)();
- } }, { key: "handler", get: function get() {
- return this.$$.ctx[3];
- }, set: function set(t) {
- this.$$set({ handler: t }), (0, a.yl1)();
- } }]), e;
- }(a.f_C),
- ut = ct,
- st = __webpack_require__(845),
- lt = {};st.Z && st.Z.locals && (lt.locals = st.Z.locals);var ft,
- dt = 0,
- vt = {};vt.styleTagTransform = b(), vt.setAttributes = h(), vt.insert = v().bind(null, "head"), vt.domAPI = f(), vt.insertStyleElement = m(), lt.use = function (t) {
- return vt.options = t || {}, dt++ || (ft = s()(st.Z, vt)), lt;
- }, lt.unuse = function () {
- dt > 0 && ! --dt && (ft(), ft = null);
- };var pt = lt;function ht(t) {
- var e,
- r,
- o,
- i = n.rE(t[1]) + "";return { c: function c() {
- e = (0, a.bGB)("i"), r = (0, a.fLW)(i), o = (0, a.fLW)(":"), (0, a.Ljt)(e, "class", "vc-log-key"), (0, a.VHj)(e, "vc-log-key-symbol", "symbol" === t[2]), (0, a.VHj)(e, "vc-log-key-private", "private" === t[2]);
- }, m: function m(t, n) {
- (0, a.$Tr)(t, e, n), (0, a.R3I)(e, r), (0, a.$Tr)(t, o, n);
- }, p: function p(t, o) {
- 2 & o && i !== (i = n.rE(t[1]) + "") && (0, a.rTO)(r, i), 4 & o && (0, a.VHj)(e, "vc-log-key-symbol", "symbol" === t[2]), 4 & o && (0, a.VHj)(e, "vc-log-key-private", "private" === t[2]);
- }, d: function d(t) {
- t && (0, a.ogt)(e), t && (0, a.ogt)(o);
- } };
- }function gt(t) {
- var n;return { c: function c() {
- n = (0, a.fLW)(t[3]);
- }, m: function m(t, e) {
- (0, a.$Tr)(t, n, e);
- }, p: function p(t, e) {
- 8 & e && (0, a.rTO)(n, t[3]);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function mt(t) {
- var n, e;return { c: function c() {
- n = new a.FWw(), e = (0, a.cSb)(), n.a = e;
- }, m: function m(r, o) {
- n.m(t[3], r, o), (0, a.$Tr)(r, e, o);
- }, p: function p(t, e) {
- 8 & e && n.p(t[3]);
- }, d: function d(t) {
- t && (0, a.ogt)(e), t && n.d();
- } };
- }function _t(t) {
- var n,
- e,
- r,
- o = void 0 !== t[1] && ht(t);function i(t, n) {
- return t[5] || "string" !== t[4] ? gt : mt;
- }var c = i(t),
- u = c(t);return { c: function c() {
- o && o.c(), n = (0, a.DhX)(), e = (0, a.bGB)("i"), u.c(), (0, a.Ljt)(e, "class", r = "vc-log-val vc-log-val-" + t[4]), (0, a.Ljt)(e, "style", t[0]), (0, a.VHj)(e, "vc-log-val-haskey", void 0 !== t[1]);
- }, m: function m(t, r) {
- o && o.m(t, r), (0, a.$Tr)(t, n, r), (0, a.$Tr)(t, e, r), u.m(e, null);
- }, p: function p(t, s) {
- var l = s[0];void 0 !== t[1] ? o ? o.p(t, l) : ((o = ht(t)).c(), o.m(n.parentNode, n)) : o && (o.d(1), o = null), c === (c = i(t)) && u ? u.p(t, l) : (u.d(1), (u = c(t)) && (u.c(), u.m(e, null))), 16 & l && r !== (r = "vc-log-val vc-log-val-" + t[4]) && (0, a.Ljt)(e, "class", r), 1 & l && (0, a.Ljt)(e, "style", t[0]), 18 & l && (0, a.VHj)(e, "vc-log-val-haskey", void 0 !== t[1]);
- }, i: a.ZTd, o: a.ZTd, d: function d(t) {
- o && o.d(t), t && (0, a.ogt)(n), t && (0, a.ogt)(e), u.d();
- } };
- }function bt(t, e, r) {
- var o = e.origData,
- i = e.style,
- a = void 0 === i ? "" : i,
- u = e.dataKey,
- s = void 0 === u ? void 0 : u,
- l = e.keyType,
- f = void 0 === l ? "" : l,
- d = "",
- v = "",
- p = !1,
- h = !1;return (0, c.H3)(function () {
- pt.use();
- }), (0, c.ev)(function () {
- pt.unuse();
- }), t.$$set = function (t) {
- "origData" in t && r(6, o = t.origData), "style" in t && r(0, a = t.style), "dataKey" in t && r(1, s = t.dataKey), "keyType" in t && r(2, f = t.keyType);
- }, t.$$.update = function () {
- if (250 & t.$$.dirty && !p) {
- r(5, h = void 0 !== s);var e = (0, et.LH)(o, h);r(4, v = e.valueType), r(3, d = e.text), h || "string" !== v || r(3, d = n.Ak(d.replace("\\n", "\n").replace("\\t", "\t"))), r(7, p = !0);
- }
- }, [a, s, f, d, v, h, o, p];
- }var yt = function (n) {
- function e(t) {
- var e;return e = n.call(this) || this, (0, a.S1n)((0, o.Z)(e), t, bt, _t, a.N8, { origData: 6, style: 0, dataKey: 1, keyType: 2 }), e;
- }return (0, i.Z)(e, n), (0, t.Z)(e, [{ key: "origData", get: function get() {
- return this.$$.ctx[6];
- }, set: function set(t) {
- this.$$set({ origData: t }), (0, a.yl1)();
- } }, { key: "style", get: function get() {
- return this.$$.ctx[0];
- }, set: function set(t) {
- this.$$set({ style: t }), (0, a.yl1)();
- } }, { key: "dataKey", get: function get() {
- return this.$$.ctx[1];
- }, set: function set(t) {
- this.$$set({ dataKey: t }), (0, a.yl1)();
- } }, { key: "keyType", get: function get() {
- return this.$$.ctx[2];
- }, set: function set(t) {
- this.$$set({ keyType: t }), (0, a.yl1)();
- } }]), e;
- }(a.f_C),
- wt = yt,
- Et = __webpack_require__(1237),
- Lt = {};Et.Z && Et.Z.locals && (Lt.locals = Et.Z.locals);var Tt,
- Ot = 0,
- Ct = {};Ct.styleTagTransform = b(), Ct.setAttributes = h(), Ct.insert = v().bind(null, "head"), Ct.domAPI = f(), Ct.insertStyleElement = m(), Lt.use = function (t) {
- return Ct.options = t || {}, Ot++ || (Tt = s()(Et.Z, Ct)), Lt;
- }, Lt.unuse = function () {
- Ot > 0 && ! --Ot && (Tt(), Tt = null);
- };var xt = Lt;function It(t, n, e) {
- var r = t.slice();return r[18] = n[e], r[20] = e, r;
- }function Dt(t, n, e) {
- var r = t.slice();return r[18] = n[e], r;
- }function Rt(t, n, e) {
- var r = t.slice();return r[18] = n[e], r[20] = e, r;
- }function kt(t) {
- for (var n, e, r, o, i, _c7, u, s = [], l = new Map(), f = [], d = new Map(), v = [], _p3 = new Map(), h = t[5], g = function g(t) {
- return t[18];
- }, m = 0; m < h.length; m += 1) {
- var _ = Rt(t, h, m),
- b = g(_);l.set(b, s[m] = Mt(b, _));
- }for (var y = t[9] < t[5].length && $t(t), w = t[7], E = function E(t) {
- return t[18];
- }, L = 0; L < w.length; L += 1) {
- var T = Dt(t, w, L),
- O = E(T);d.set(O, f[L] = St(O, T));
- }for (var C = t[6], x = function x(t) {
- return t[18];
- }, I = 0; I < C.length; I += 1) {
- var D = It(t, C, I),
- R = x(D);_p3.set(R, v[I] = Bt(R, D));
- }var k = t[10] < t[6].length && At(t),
- P = t[8] && Ut(t);return { c: function c() {
- n = (0, a.bGB)("div");for (var t = 0; t < s.length; t += 1) {
- s[t].c();
- }e = (0, a.DhX)(), y && y.c(), r = (0, a.DhX)();for (var u = 0; u < f.length; u += 1) {
- f[u].c();
- }o = (0, a.DhX)();for (var l = 0; l < v.length; l += 1) {
- v[l].c();
- }i = (0, a.DhX)(), k && k.c(), _c7 = (0, a.DhX)(), P && P.c(), (0, a.Ljt)(n, "class", "vc-log-tree-child");
- }, m: function m(t, l) {
- (0, a.$Tr)(t, n, l);for (var d = 0; d < s.length; d += 1) {
- s[d].m(n, null);
- }(0, a.R3I)(n, e), y && y.m(n, null), (0, a.R3I)(n, r);for (var p = 0; p < f.length; p += 1) {
- f[p].m(n, null);
- }(0, a.R3I)(n, o);for (var h = 0; h < v.length; h += 1) {
- v[h].m(n, null);
- }(0, a.R3I)(n, i), k && k.m(n, null), (0, a.R3I)(n, _c7), P && P.m(n, null), u = !0;
- }, p: function p(t, u) {
- 16928 & u && (h = t[5], (0, a.dvw)(), s = (0, a.GQg)(s, u, g, 1, t, h, l, n, a.cly, Mt, e, Rt), (0, a.gbL)()), t[9] < t[5].length ? y ? y.p(t, u) : ((y = $t(t)).c(), y.m(n, r)) : y && (y.d(1), y = null), 16512 & u && (w = t[7], (0, a.dvw)(), f = (0, a.GQg)(f, u, E, 1, t, w, d, n, a.cly, St, o, Dt), (0, a.gbL)()), 17472 & u && (C = t[6], (0, a.dvw)(), v = (0, a.GQg)(v, u, x, 1, t, C, _p3, n, a.cly, Bt, i, It), (0, a.gbL)()), t[10] < t[6].length ? k ? k.p(t, u) : ((k = At(t)).c(), k.m(n, _c7)) : k && (k.d(1), k = null), t[8] ? P ? (P.p(t, u), 256 & u && (0, a.Ui)(P, 1)) : ((P = Ut(t)).c(), (0, a.Ui)(P, 1), P.m(n, null)) : P && ((0, a.dvw)(), (0, a.etI)(P, 1, 1, function () {
- P = null;
- }), (0, a.gbL)());
- }, i: function i(t) {
- if (!u) {
- for (var n = 0; n < h.length; n += 1) {
- (0, a.Ui)(s[n]);
- }for (var e = 0; e < w.length; e += 1) {
- (0, a.Ui)(f[e]);
- }for (var r = 0; r < C.length; r += 1) {
- (0, a.Ui)(v[r]);
- }(0, a.Ui)(P), u = !0;
- }
- }, o: function o(t) {
- for (var n = 0; n < s.length; n += 1) {
- (0, a.etI)(s[n]);
- }for (var e = 0; e < f.length; e += 1) {
- (0, a.etI)(f[e]);
- }for (var r = 0; r < v.length; r += 1) {
- (0, a.etI)(v[r]);
- }(0, a.etI)(P), u = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n);for (var e = 0; e < s.length; e += 1) {
- s[e].d();
- }y && y.d();for (var r = 0; r < f.length; r += 1) {
- f[r].d();
- }for (var o = 0; o < v.length; o += 1) {
- v[o].d();
- }k && k.d(), P && P.d();
- } };
- }function Pt(t) {
- var n, e;return n = new Gt({ props: { origData: t[14](t[18]), dataKey: t[18] } }), { c: function c() {
- (0, a.YCL)(n.$$.fragment);
- }, m: function m(t, r) {
- (0, a.yef)(n, t, r), e = !0;
- }, p: function p(t, e) {
- var r = {};32 & e && (r.origData = t[14](t[18])), 32 & e && (r.dataKey = t[18]), n.$set(r);
- }, i: function i(t) {
- e || ((0, a.Ui)(n.$$.fragment, t), e = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), e = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t);
- } };
- }function Mt(t, n) {
- var e,
- r,
- _o,
- _i = n[20] < n[9] && Pt(n);return { key: t, first: null, c: function c() {
- e = (0, a.cSb)(), _i && _i.c(), r = (0, a.cSb)(), this.first = e;
- }, m: function m(t, n) {
- (0, a.$Tr)(t, e, n), _i && _i.m(t, n), (0, a.$Tr)(t, r, n), _o = !0;
- }, p: function p(t, e) {
- (n = t)[20] < n[9] ? _i ? (_i.p(n, e), 544 & e && (0, a.Ui)(_i, 1)) : ((_i = Pt(n)).c(), (0, a.Ui)(_i, 1), _i.m(r.parentNode, r)) : _i && ((0, a.dvw)(), (0, a.etI)(_i, 1, 1, function () {
- _i = null;
- }), (0, a.gbL)());
- }, i: function i(t) {
- _o || ((0, a.Ui)(_i), _o = !0);
- }, o: function o(t) {
- (0, a.etI)(_i), _o = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(e), _i && _i.d(t), t && (0, a.ogt)(r);
- } };
- }function $t(t) {
- var n,
- e,
- r,
- o,
- i = t[12](t[5].length - t[9]) + "";return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.fLW)(i), (0, a.Ljt)(n, "class", "vc-log-tree-loadmore");
- }, m: function m(i, c) {
- (0, a.$Tr)(i, n, c), (0, a.R3I)(n, e), r || (o = (0, a.oLt)(n, "click", t[16]), r = !0);
- }, p: function p(t, n) {
- 544 & n && i !== (i = t[12](t[5].length - t[9]) + "") && (0, a.rTO)(e, i);
- }, d: function d(t) {
- t && (0, a.ogt)(n), r = !1, o();
- } };
- }function St(t, n) {
- var e, r, _o2;return r = new Gt({ props: { origData: n[14](n[18]), dataKey: String(n[18]), keyType: "symbol" } }), { key: t, first: null, c: function c() {
- e = (0, a.cSb)(), (0, a.YCL)(r.$$.fragment), this.first = e;
- }, m: function m(t, n) {
- (0, a.$Tr)(t, e, n), (0, a.yef)(r, t, n), _o2 = !0;
- }, p: function p(t, e) {
- n = t;var o = {};128 & e && (o.origData = n[14](n[18])), 128 & e && (o.dataKey = String(n[18])), r.$set(o);
- }, i: function i(t) {
- _o2 || ((0, a.Ui)(r.$$.fragment, t), _o2 = !0);
- }, o: function o(t) {
- (0, a.etI)(r.$$.fragment, t), _o2 = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(e), (0, a.vpE)(r, t);
- } };
- }function jt(t) {
- var n, e;return n = new Gt({ props: { origData: t[14](t[18]), dataKey: t[18], keyType: "private" } }), { c: function c() {
- (0, a.YCL)(n.$$.fragment);
- }, m: function m(t, r) {
- (0, a.yef)(n, t, r), e = !0;
- }, p: function p(t, e) {
- var r = {};64 & e && (r.origData = t[14](t[18])), 64 & e && (r.dataKey = t[18]), n.$set(r);
- }, i: function i(t) {
- e || ((0, a.Ui)(n.$$.fragment, t), e = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), e = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t);
- } };
- }function Bt(t, n) {
- var e,
- r,
- _o3,
- _i2 = n[20] < n[10] && jt(n);return { key: t, first: null, c: function c() {
- e = (0, a.cSb)(), _i2 && _i2.c(), r = (0, a.cSb)(), this.first = e;
- }, m: function m(t, n) {
- (0, a.$Tr)(t, e, n), _i2 && _i2.m(t, n), (0, a.$Tr)(t, r, n), _o3 = !0;
- }, p: function p(t, e) {
- (n = t)[20] < n[10] ? _i2 ? (_i2.p(n, e), 1088 & e && (0, a.Ui)(_i2, 1)) : ((_i2 = jt(n)).c(), (0, a.Ui)(_i2, 1), _i2.m(r.parentNode, r)) : _i2 && ((0, a.dvw)(), (0, a.etI)(_i2, 1, 1, function () {
- _i2 = null;
- }), (0, a.gbL)());
- }, i: function i(t) {
- _o3 || ((0, a.Ui)(_i2), _o3 = !0);
- }, o: function o(t) {
- (0, a.etI)(_i2), _o3 = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(e), _i2 && _i2.d(t), t && (0, a.ogt)(r);
- } };
- }function At(t) {
- var n,
- e,
- r,
- o,
- i = t[12](t[6].length - t[10]) + "";return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.fLW)(i), (0, a.Ljt)(n, "class", "vc-log-tree-loadmore");
- }, m: function m(i, c) {
- (0, a.$Tr)(i, n, c), (0, a.R3I)(n, e), r || (o = (0, a.oLt)(n, "click", t[17]), r = !0);
- }, p: function p(t, n) {
- 1088 & n && i !== (i = t[12](t[6].length - t[10]) + "") && (0, a.rTO)(e, i);
- }, d: function d(t) {
- t && (0, a.ogt)(n), r = !1, o();
- } };
- }function Ut(t) {
- var n, e;return n = new Gt({ props: { origData: t[14]("__proto__"), dataKey: "__proto__", keyType: "private" } }), { c: function c() {
- (0, a.YCL)(n.$$.fragment);
- }, m: function m(t, r) {
- (0, a.yef)(n, t, r), e = !0;
- }, p: a.ZTd, i: function i(t) {
- e || ((0, a.Ui)(n.$$.fragment, t), e = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), e = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t);
- } };
- }function Nt(t) {
- var n, e, r, o, _i3, c, u;r = new wt({ props: { origData: t[0], dataKey: t[1], keyType: t[2] } });var s = t[4] && t[3] && kt(t);return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("div"), (0, a.YCL)(r.$$.fragment), o = (0, a.DhX)(), s && s.c(), (0, a.Ljt)(e, "class", "vc-log-tree-node"), (0, a.Ljt)(n, "class", "vc-log-tree"), (0, a.VHj)(n, "vc-toggle", t[3]), (0, a.VHj)(n, "vc-is-tree", t[4]);
- }, m: function m(l, f) {
- (0, a.$Tr)(l, n, f), (0, a.R3I)(n, e), (0, a.yef)(r, e, null), (0, a.R3I)(n, o), s && s.m(n, null), _i3 = !0, c || (u = (0, a.oLt)(e, "click", t[13]), c = !0);
- }, p: function p(t, e) {
- var o = e[0],
- i = {};1 & o && (i.origData = t[0]), 2 & o && (i.dataKey = t[1]), 4 & o && (i.keyType = t[2]), r.$set(i), t[4] && t[3] ? s ? (s.p(t, o), 24 & o && (0, a.Ui)(s, 1)) : ((s = kt(t)).c(), (0, a.Ui)(s, 1), s.m(n, null)) : s && ((0, a.dvw)(), (0, a.etI)(s, 1, 1, function () {
- s = null;
- }), (0, a.gbL)()), 8 & o && (0, a.VHj)(n, "vc-toggle", t[3]), 16 & o && (0, a.VHj)(n, "vc-is-tree", t[4]);
- }, i: function i(t) {
- _i3 || ((0, a.Ui)(r.$$.fragment, t), (0, a.Ui)(s), _i3 = !0);
- }, o: function o(t) {
- (0, a.etI)(r.$$.fragment, t), (0, a.etI)(s), _i3 = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), (0, a.vpE)(r), s && s.d(), c = !1, u();
- } };
- }function Vt(t, e, r) {
- var o,
- i,
- a,
- u = e.origData,
- s = e.dataKey,
- l = void 0 === s ? void 0 : s,
- f = e.keyType,
- d = void 0 === f ? "" : f,
- v = !1,
- p = !1,
- h = !1,
- g = !1,
- m = 50,
- _ = 50;(0, c.H3)(function () {
- xt.use();
- }), (0, c.ev)(function () {
- xt.unuse();
- });var b = function b(t) {
- "enum" === t ? r(9, m += 50) : "nonEnum" === t && r(10, _ += 50);
- };return t.$$set = function (t) {
- "origData" in t && r(0, u = t.origData), "dataKey" in t && r(1, l = t.dataKey), "keyType" in t && r(2, d = t.keyType);
- }, t.$$.update = function () {
- 33017 & t.$$.dirty && (v || (r(4, h = !(u instanceof et.Tg) && (n.kJ(u) || n.Kn(u))), r(15, v = !0)), h && p && (r(5, o = o || n.qr(n.MH(u))), r(6, i = i || n.qr(n.QK(u))), r(7, a = a || n._D(u)), r(8, g = n.Kn(u) && -1 === i.indexOf("__proto__"))));
- }, [u, l, d, p, h, o, i, a, g, m, _, b, function (t) {
- return "(..." + t + " Key" + (t > 1 ? "s" : "") + " Left)";
- }, function () {
- r(3, p = !p);
- }, function (t) {
- try {
- return u[t];
- } catch (t) {
- return new et.Tg();
- }
- }, v, function () {
- return b("enum");
- }, function () {
- return b("nonEnum");
- }];
- }var Gt = function (n) {
- function e(t) {
- var e;return e = n.call(this) || this, (0, a.S1n)((0, o.Z)(e), t, Vt, Nt, a.N8, { origData: 0, dataKey: 1, keyType: 2 }), e;
- }return (0, i.Z)(e, n), (0, t.Z)(e, [{ key: "origData", get: function get() {
- return this.$$.ctx[0];
- }, set: function set(t) {
- this.$$set({ origData: t }), (0, a.yl1)();
- } }, { key: "dataKey", get: function get() {
- return this.$$.ctx[1];
- }, set: function set(t) {
- this.$$set({ dataKey: t }), (0, a.yl1)();
- } }, { key: "keyType", get: function get() {
- return this.$$.ctx[2];
- }, set: function set(t) {
- this.$$set({ keyType: t }), (0, a.yl1)();
- } }]), e;
- }(a.f_C),
- Wt = Gt,
- Kt = __webpack_require__(7147),
- Ft = {};Kt.Z && Kt.Z.locals && (Ft.locals = Kt.Z.locals);var Ht,
- qt = 0,
- Zt = {};Zt.styleTagTransform = b(), Zt.setAttributes = h(), Zt.insert = v().bind(null, "head"), Zt.domAPI = f(), Zt.insertStyleElement = m(), Ft.use = function (t) {
- return Zt.options = t || {}, qt++ || (Ht = s()(Kt.Z, Zt)), Ft;
- }, Ft.unuse = function () {
- qt > 0 && ! --qt && (Ht(), Ht = null);
- };var Xt = Ft;function zt(t, n, e) {
- var r = t.slice();return r[7] = n[e], r[9] = e, r;
- }function Yt(t) {
- for (var n, e, r, o, i, _c8, u, s, l, f = [], d = new Map(), v = t[1] && Jt(t), _p4 = t[0].repeated && Qt(t), h = t[0].data, g = function g(t) {
- return t[9];
- }, m = 0; m < h.length; m += 1) {
- var _ = zt(t, h, m),
- b = g(_);d.set(b, f[m] = en(b, _));
- }return u = new ut({ props: { handler: t[4] } }), { c: function c() {
- n = (0, a.bGB)("div"), v && v.c(), e = (0, a.DhX)(), _p4 && _p4.c(), r = (0, a.DhX)(), o = (0, a.bGB)("div");for (var l = 0; l < f.length; l += 1) {
- f[l].c();
- }i = (0, a.DhX)(), _c8 = (0, a.bGB)("div"), (0, a.YCL)(u.$$.fragment), (0, a.Ljt)(o, "class", "vc-log-content"), (0, a.Ljt)(_c8, "class", "vc-logrow-icon"), (0, a.Ljt)(n, "class", s = "vc-log-row vc-log-" + t[0].type), (0, a.VHj)(n, "vc-log-input", "input" === t[0].cmdType), (0, a.VHj)(n, "vc-log-output", "output" === t[0].cmdType);
- }, m: function m(t, s) {
- (0, a.$Tr)(t, n, s), v && v.m(n, null), (0, a.R3I)(n, e), _p4 && _p4.m(n, null), (0, a.R3I)(n, r), (0, a.R3I)(n, o);for (var d = 0; d < f.length; d += 1) {
- f[d].m(o, null);
- }(0, a.R3I)(n, i), (0, a.R3I)(n, _c8), (0, a.yef)(u, _c8, null), l = !0;
- }, p: function p(t, i) {
- t[1] ? v ? v.p(t, i) : ((v = Jt(t)).c(), v.m(n, e)) : v && (v.d(1), v = null), t[0].repeated ? _p4 ? _p4.p(t, i) : ((_p4 = Qt(t)).c(), _p4.m(n, r)) : _p4 && (_p4.d(1), _p4 = null), 9 & i && (h = t[0].data, (0, a.dvw)(), f = (0, a.GQg)(f, i, g, 1, t, h, d, o, a.cly, en, null, zt), (0, a.gbL)()), (!l || 1 & i && s !== (s = "vc-log-row vc-log-" + t[0].type)) && (0, a.Ljt)(n, "class", s), 1 & i && (0, a.VHj)(n, "vc-log-input", "input" === t[0].cmdType), 1 & i && (0, a.VHj)(n, "vc-log-output", "output" === t[0].cmdType);
- }, i: function i(t) {
- if (!l) {
- for (var n = 0; n < h.length; n += 1) {
- (0, a.Ui)(f[n]);
- }(0, a.Ui)(u.$$.fragment, t), l = !0;
- }
- }, o: function o(t) {
- for (var n = 0; n < f.length; n += 1) {
- (0, a.etI)(f[n]);
- }(0, a.etI)(u.$$.fragment, t), l = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), v && v.d(), _p4 && _p4.d();for (var e = 0; e < f.length; e += 1) {
- f[e].d();
- }(0, a.vpE)(u);
- } };
- }function Jt(t) {
- var n, e;return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.fLW)(t[2]), (0, a.Ljt)(n, "class", "vc-log-time");
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), (0, a.R3I)(n, e);
- }, p: function p(t, n) {
- 4 & n && (0, a.rTO)(e, t[2]);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function Qt(t) {
- var n,
- e,
- r,
- o = t[0].repeated + "";return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("i"), r = (0, a.fLW)(o), (0, a.Ljt)(n, "class", "vc-log-repeat");
- }, m: function m(t, o) {
- (0, a.$Tr)(t, n, o), (0, a.R3I)(n, e), (0, a.R3I)(e, r);
- }, p: function p(t, n) {
- 1 & n && o !== (o = t[0].repeated + "") && (0, a.rTO)(r, o);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function tn(t) {
- var n, e;return n = new wt({ props: { origData: t[7].origData, style: t[7].style } }), { c: function c() {
- (0, a.YCL)(n.$$.fragment);
- }, m: function m(t, r) {
- (0, a.yef)(n, t, r), e = !0;
- }, p: function p(t, e) {
- var r = {};1 & e && (r.origData = t[7].origData), 1 & e && (r.style = t[7].style), n.$set(r);
- }, i: function i(t) {
- e || ((0, a.Ui)(n.$$.fragment, t), e = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), e = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t);
- } };
- }function nn(t) {
- var n, e;return n = new Wt({ props: { origData: t[7].origData } }), { c: function c() {
- (0, a.YCL)(n.$$.fragment);
- }, m: function m(t, r) {
- (0, a.yef)(n, t, r), e = !0;
- }, p: function p(t, e) {
- var r = {};1 & e && (r.origData = t[7].origData), n.$set(r);
- }, i: function i(t) {
- e || ((0, a.Ui)(n.$$.fragment, t), e = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), e = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t);
- } };
- }function en(t, n) {
- var e,
- r,
- o,
- _i4,
- _c9,
- u,
- s = [nn, tn],
- l = [];function f(t, n) {
- return 1 & n && (r = null), null == r && (r = !!t[3](t[7].origData)), r ? 0 : 1;
- }return o = f(n, -1), _i4 = l[o] = s[o](n), { key: t, first: null, c: function c() {
- e = (0, a.cSb)(), _i4.c(), _c9 = (0, a.cSb)(), this.first = e;
- }, m: function m(t, n) {
- (0, a.$Tr)(t, e, n), l[o].m(t, n), (0, a.$Tr)(t, _c9, n), u = !0;
- }, p: function p(t, e) {
- var r = o;(o = f(n = t, e)) === r ? l[o].p(n, e) : ((0, a.dvw)(), (0, a.etI)(l[r], 1, 1, function () {
- l[r] = null;
- }), (0, a.gbL)(), (_i4 = l[o]) ? _i4.p(n, e) : (_i4 = l[o] = s[o](n)).c(), (0, a.Ui)(_i4, 1), _i4.m(_c9.parentNode, _c9));
- }, i: function i(t) {
- u || ((0, a.Ui)(_i4), u = !0);
- }, o: function o(t) {
- (0, a.etI)(_i4), u = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(e), l[o].d(t), t && (0, a.ogt)(_c9);
- } };
- }function rn(t) {
- var n,
- e,
- r = t[0] && Yt(t);return { c: function c() {
- r && r.c(), n = (0, a.cSb)();
- }, m: function m(t, o) {
- r && r.m(t, o), (0, a.$Tr)(t, n, o), e = !0;
- }, p: function p(t, e) {
- var o = e[0];t[0] ? r ? (r.p(t, o), 1 & o && (0, a.Ui)(r, 1)) : ((r = Yt(t)).c(), (0, a.Ui)(r, 1), r.m(n.parentNode, n)) : r && ((0, a.dvw)(), (0, a.etI)(r, 1, 1, function () {
- r = null;
- }), (0, a.gbL)());
- }, i: function i(t) {
- e || ((0, a.Ui)(r), e = !0);
- }, o: function o(t) {
- (0, a.etI)(r), e = !1;
- }, d: function d(t) {
- r && r.d(t), t && (0, a.ogt)(n);
- } };
- }function on(t, e, r) {
- var o = e.log,
- i = e.showTimestamps,
- a = void 0 !== i && i,
- u = !1,
- s = "",
- l = function l(t, n) {
- var e = "000" + t;return e.substring(e.length - n);
- };(0, c.H3)(function () {
- Xt.use();
- }), (0, c.ev)(function () {
- Xt.unuse();
- });return t.$$set = function (t) {
- "log" in t && r(0, o = t.log), "showTimestamps" in t && r(1, a = t.showTimestamps);
- }, t.$$.update = function () {
- if (39 & t.$$.dirty && (u || r(5, u = !0), a && "" === s)) {
- var n = new Date(o.date);r(2, s = l(n.getHours(), 2) + ":" + l(n.getMinutes(), 2) + ":" + l(n.getSeconds(), 2) + ":" + l(n.getMilliseconds(), 3));
- }
- }, [o, a, s, function (t) {
- return !(t instanceof et.Tg) && (n.kJ(t) || n.Kn(t));
- }, function () {
- var t = [];try {
- for (var e = 0; e < o.data.length; e++) {
- t.push(n.hZ(o.data[e].origData, { maxDepth: 10, keyMaxLen: 1e4, pretty: !1 }));
- }
- } catch (t) {}return t.join(" ");
- }, u];
- }var an = function (n) {
- function e(t) {
- var e;return e = n.call(this) || this, (0, a.S1n)((0, o.Z)(e), t, on, rn, a.N8, { log: 0, showTimestamps: 1 }), e;
- }return (0, i.Z)(e, n), (0, t.Z)(e, [{ key: "log", get: function get() {
- return this.$$.ctx[0];
- }, set: function set(t) {
- this.$$set({ log: t }), (0, a.yl1)();
- } }, { key: "showTimestamps", get: function get() {
- return this.$$.ctx[1];
- }, set: function set(t) {
- this.$$set({ showTimestamps: t }), (0, a.yl1)();
- } }]), e;
- }(a.f_C),
- cn = an,
- un = __webpack_require__(3903),
- sn = __webpack_require__(3327),
- ln = {};sn.Z && sn.Z.locals && (ln.locals = sn.Z.locals);var fn,
- dn = 0,
- vn = {};vn.styleTagTransform = b(), vn.setAttributes = h(), vn.insert = v().bind(null, "head"), vn.domAPI = f(), vn.insertStyleElement = m(), ln.use = function (t) {
- return vn.options = t || {}, dn++ || (fn = s()(sn.Z, vn)), ln;
- }, ln.unuse = function () {
- dn > 0 && ! --dn && (fn(), fn = null);
- };var pn = ln;function hn(t, n, e) {
- var r = t.slice();return r[9] = n[e], r;
- }function gn(t) {
- var n;return { c: function c() {
- n = (0, a.bGB)("div"), (0, a.Ljt)(n, "class", "vc-plugin-empty");
- }, m: function m(t, e) {
- (0, a.$Tr)(t, n, e);
- }, p: a.ZTd, i: a.ZTd, o: a.ZTd, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function mn(t) {
- for (var n, e, r = [], o = new Map(), _i5 = t[5].logList, c = function c(t) {
- return t[9]._id;
- }, u = 0; u < _i5.length; u += 1) {
- var s = hn(t, _i5, u),
- l = c(s);o.set(l, r[u] = bn(l, s));
- }return { c: function c() {
- for (var t = 0; t < r.length; t += 1) {
- r[t].c();
- }n = (0, a.cSb)();
- }, m: function m(t, o) {
- for (var i = 0; i < r.length; i += 1) {
- r[i].m(t, o);
- }(0, a.$Tr)(t, n, o), e = !0;
- }, p: function p(t, e) {
- 46 & e && (_i5 = t[5].logList, (0, a.dvw)(), r = (0, a.GQg)(r, e, c, 1, t, _i5, o, n.parentNode, a.cly, bn, n, hn), (0, a.gbL)());
- }, i: function i(t) {
- if (!e) {
- for (var n = 0; n < _i5.length; n += 1) {
- (0, a.Ui)(r[n]);
- }e = !0;
- }
- }, o: function o(t) {
- for (var n = 0; n < r.length; n += 1) {
- (0, a.etI)(r[n]);
- }e = !1;
- }, d: function d(t) {
- for (var e = 0; e < r.length; e += 1) {
- r[e].d(t);
- }t && (0, a.ogt)(n);
- } };
- }function _n(t) {
- var n, e;return n = new cn({ props: { log: t[9], showTimestamps: t[2] } }), { c: function c() {
- (0, a.YCL)(n.$$.fragment);
- }, m: function m(t, r) {
- (0, a.yef)(n, t, r), e = !0;
- }, p: function p(t, e) {
- var r = {};32 & e && (r.log = t[9]), 4 & e && (r.showTimestamps = t[2]), n.$set(r);
- }, i: function i(t) {
- e || ((0, a.Ui)(n.$$.fragment, t), e = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), e = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t);
- } };
- }function bn(t, n) {
- var e,
- r,
- _o4,
- i = ("all" === n[1] || n[1] === n[9].type) && ("" === n[3] || (0, et.HX)(n[9], n[3])),
- _c10 = i && _n(n);return { key: t, first: null, c: function c() {
- e = (0, a.cSb)(), _c10 && _c10.c(), r = (0, a.cSb)(), this.first = e;
- }, m: function m(t, n) {
- (0, a.$Tr)(t, e, n), _c10 && _c10.m(t, n), (0, a.$Tr)(t, r, n), _o4 = !0;
- }, p: function p(t, e) {
- n = t, 42 & e && (i = ("all" === n[1] || n[1] === n[9].type) && ("" === n[3] || (0, et.HX)(n[9], n[3]))), i ? _c10 ? (_c10.p(n, e), 42 & e && (0, a.Ui)(_c10, 1)) : ((_c10 = _n(n)).c(), (0, a.Ui)(_c10, 1), _c10.m(r.parentNode, r)) : _c10 && ((0, a.dvw)(), (0, a.etI)(_c10, 1, 1, function () {
- _c10 = null;
- }), (0, a.gbL)());
- }, i: function i(t) {
- _o4 || ((0, a.Ui)(_c10), _o4 = !0);
- }, o: function o(t) {
- (0, a.etI)(_c10), _o4 = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(e), _c10 && _c10.d(t), t && (0, a.ogt)(r);
- } };
- }function yn(t) {
- var n, e;return (n = new un.Z({})).$on("filterText", t[6]), { c: function c() {
- (0, a.YCL)(n.$$.fragment);
- }, m: function m(t, r) {
- (0, a.yef)(n, t, r), e = !0;
- }, p: a.ZTd, i: function i(t) {
- e || ((0, a.Ui)(n.$$.fragment, t), e = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), e = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t);
- } };
- }function wn(t) {
- var n,
- e,
- r,
- o,
- _i6,
- c = [mn, gn],
- u = [];function s(t, n) {
- return t[5] && t[5].logList.length > 0 ? 0 : 1;
- }e = s(t), r = u[e] = c[e](t);var l = t[0] && yn(t);return { c: function c() {
- n = (0, a.bGB)("div"), r.c(), o = (0, a.DhX)(), l && l.c(), (0, a.Ljt)(n, "class", "vc-plugin-content"), (0, a.VHj)(n, "vc-logs-has-cmd", t[0]);
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), u[e].m(n, null), (0, a.R3I)(n, o), l && l.m(n, null), _i6 = !0;
- }, p: function p(t, i) {
- var f = i[0],
- d = e;(e = s(t)) === d ? u[e].p(t, f) : ((0, a.dvw)(), (0, a.etI)(u[d], 1, 1, function () {
- u[d] = null;
- }), (0, a.gbL)(), (r = u[e]) ? r.p(t, f) : (r = u[e] = c[e](t)).c(), (0, a.Ui)(r, 1), r.m(n, o)), t[0] ? l ? (l.p(t, f), 1 & f && (0, a.Ui)(l, 1)) : ((l = yn(t)).c(), (0, a.Ui)(l, 1), l.m(n, null)) : l && ((0, a.dvw)(), (0, a.etI)(l, 1, 1, function () {
- l = null;
- }), (0, a.gbL)()), 1 & f && (0, a.VHj)(n, "vc-logs-has-cmd", t[0]);
- }, i: function i(t) {
- _i6 || ((0, a.Ui)(r), (0, a.Ui)(l), _i6 = !0);
- }, o: function o(t) {
- (0, a.etI)(r), (0, a.etI)(l), _i6 = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), u[e].d(), l && l.d();
- } };
- }function En(t, n, e) {
- var r,
- o = a.ZTd;t.$$.on_destroy.push(function () {
- return o();
- });var i,
- u = n.pluginId,
- s = void 0 === u ? "default" : u,
- l = n.showCmd,
- f = void 0 !== l && l,
- d = n.filterType,
- v = void 0 === d ? "all" : d,
- p = n.showTimestamps,
- h = void 0 !== p && p,
- g = !1,
- m = "";(0, c.H3)(function () {
- pn.use();
- }), (0, c.ev)(function () {
- pn.unuse();
- });return t.$$set = function (t) {
- "pluginId" in t && e(7, s = t.pluginId), "showCmd" in t && e(0, f = t.showCmd), "filterType" in t && e(1, v = t.filterType), "showTimestamps" in t && e(2, h = t.showTimestamps);
- }, t.$$.update = function () {
- 384 & t.$$.dirty && (g || (e(4, i = rt.O.get(s)), o(), o = (0, a.LdU)(i, function (t) {
- return e(5, r = t);
- }), e(8, g = !0)));
- }, [f, v, h, m, i, r, function (t) {
- e(3, m = t.detail.filterText || "");
- }, s, g];
- }var Ln = function (n) {
- function e(t) {
- var e;return e = n.call(this) || this, (0, a.S1n)((0, o.Z)(e), t, En, wn, a.N8, { pluginId: 7, showCmd: 0, filterType: 1, showTimestamps: 2 }), e;
- }return (0, i.Z)(e, n), (0, t.Z)(e, [{ key: "pluginId", get: function get() {
- return this.$$.ctx[7];
- }, set: function set(t) {
- this.$$set({ pluginId: t }), (0, a.yl1)();
- } }, { key: "showCmd", get: function get() {
- return this.$$.ctx[0];
- }, set: function set(t) {
- this.$$set({ showCmd: t }), (0, a.yl1)();
- } }, { key: "filterType", get: function get() {
- return this.$$.ctx[1];
- }, set: function set(t) {
- this.$$set({ filterType: t }), (0, a.yl1)();
- } }, { key: "showTimestamps", get: function get() {
- return this.$$.ctx[2];
- }, set: function set(t) {
- this.$$set({ showTimestamps: t }), (0, a.yl1)();
- } }]), e;
- }(a.f_C),
- Tn = Ln,
- On = __webpack_require__(5629),
- Cn = function () {
- function t(t) {
- this.model = void 0, this.pluginId = void 0, this.pluginId = t;
- }return t.prototype.destroy = function () {
- this.model = void 0;
- }, t;
- }(),
- xn = function (t) {
- function n() {
- for (var n, e = arguments.length, r = new Array(e), o = 0; o < e; o++) {
- r[o] = arguments[o];
- }return (n = t.call.apply(t, [this].concat(r)) || this).model = On.W.getSingleton(On.W, "VConsoleLogModel"), n;
- }(0, i.Z)(n, t);var e = n.prototype;return e.log = function () {
- for (var t = arguments.length, n = new Array(t), e = 0; e < t; e++) {
- n[e] = arguments[e];
- }this.addLog.apply(this, ["log"].concat(n));
- }, e.info = function () {
- for (var t = arguments.length, n = new Array(t), e = 0; e < t; e++) {
- n[e] = arguments[e];
- }this.addLog.apply(this, ["info"].concat(n));
- }, e.debug = function () {
- for (var t = arguments.length, n = new Array(t), e = 0; e < t; e++) {
- n[e] = arguments[e];
- }this.addLog.apply(this, ["debug"].concat(n));
- }, e.warn = function () {
- for (var t = arguments.length, n = new Array(t), e = 0; e < t; e++) {
- n[e] = arguments[e];
- }this.addLog.apply(this, ["warn"].concat(n));
- }, e.error = function () {
- for (var t = arguments.length, n = new Array(t), e = 0; e < t; e++) {
- n[e] = arguments[e];
- }this.addLog.apply(this, ["error"].concat(n));
- }, e.clear = function () {
- this.model && this.model.clearPluginLog(this.pluginId);
- }, e.addLog = function (t) {
- if (this.model) {
- for (var n = arguments.length, e = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++) {
- e[r - 1] = arguments[r];
- }e.unshift("[" + this.pluginId + "]"), this.model.addLog({ type: t, origData: e }, { noOrig: !0 });
- }
- }, n;
- }(Cn),
- In = function (t) {
- function n(n, e) {
- var r;return (r = t.call(this, n, e, Tn, { pluginId: n, filterType: "all" }) || this).model = On.W.getSingleton(On.W, "VConsoleLogModel"), r.isReady = !1, r.isShow = !1, r.isInBottom = !0, r.model.bindPlugin(n), r.exporter = new xn(n), r;
- }(0, i.Z)(n, t);var e = n.prototype;return e.onReady = function () {
- var n, e;t.prototype.onReady.call(this), this.model.maxLogNumber = Number(null == (n = this.vConsole.option.log) ? void 0 : n.maxLogNumber) || 1e3, this.compInstance.showTimestamps = !(null == (e = this.vConsole.option.log) || !e.showTimestamps);
- }, e.onRemove = function () {
- t.prototype.onRemove.call(this), this.model.unbindPlugin(this.id);
- }, e.onAddTopBar = function (t) {
- for (var n = this, e = ["All", "Log", "Info", "Warn", "Error"], r = [], o = 0; o < e.length; o++) {
- r.push({ name: e[o], data: { type: e[o].toLowerCase() }, actived: 0 === o, className: "", onClick: function onClick(t, e) {
- if (e.type === n.compInstance.filterType) return !1;n.compInstance.filterType = e.type;
- } });
- }r[0].className = "vc-actived", t(r);
- }, e.onAddTool = function (t) {
- var n = this;t([{ name: "Clear", global: !1, onClick: function onClick(t) {
- n.model.clearPluginLog(n.id), n.vConsole.triggerEvent("clearLog");
- } }]);
- }, e.onUpdateOption = function () {
- var t, n, e, r;(null == (t = this.vConsole.option.log) ? void 0 : t.maxLogNumber) !== this.model.maxLogNumber && (this.model.maxLogNumber = Number(null == (e = this.vConsole.option.log) ? void 0 : e.maxLogNumber) || 1e3);!(null == (n = this.vConsole.option.log) || !n.showTimestamps) !== this.compInstance.showTimestamps && (this.compInstance.showTimestamps = !(null == (r = this.vConsole.option.log) || !r.showTimestamps));
- }, n;
- }(nt),
- Dn = function (t) {
- function e() {
- for (var n, e = arguments.length, r = new Array(e), o = 0; o < e; o++) {
- r[o] = arguments[o];
- }return (n = t.call.apply(t, [this].concat(r)) || this).onErrorHandler = void 0, n.resourceErrorHandler = void 0, n.rejectionHandler = void 0, n;
- }(0, i.Z)(e, t);var r = e.prototype;return r.onReady = function () {
- t.prototype.onReady.call(this), this.bindErrors(), this.compInstance.showCmd = !0;
- }, r.onRemove = function () {
- t.prototype.onRemove.call(this), this.unbindErrors();
- }, r.bindErrors = function () {
- n.FJ(window) && n.mf(window.addEventListener) && (this.catchWindowOnError(), this.catchResourceError(), this.catchUnhandledRejection());
- }, r.unbindErrors = function () {
- n.FJ(window) && n.mf(window.addEventListener) && (window.removeEventListener("error", this.onErrorHandler), window.removeEventListener("error", this.resourceErrorHandler), window.removeEventListener("unhandledrejection", this.rejectionHandler));
- }, r.catchWindowOnError = function () {
- var t = this;this.onErrorHandler = this.onErrorHandler ? this.onErrorHandler : function (n) {
- var e = n.message;n.filename && (e += "\n" + n.filename.replace(location.origin, "")), (n.lineno || n.colno) && (e += ":" + n.lineno + ":" + n.colno);var r = !!n.error && !!n.error.stack && n.error.stack.toString() || "";t.model.addLog({ type: "error", origData: [e, r] }, { noOrig: !0 });
- }, window.removeEventListener("error", this.onErrorHandler), window.addEventListener("error", this.onErrorHandler);
- }, r.catchResourceError = function () {
- var t = this;this.resourceErrorHandler = this.resourceErrorHandler ? this.resourceErrorHandler : function (n) {
- var e = n.target;if (["link", "video", "script", "img", "audio"].indexOf(e.localName) > -1) {
- var r = e.href || e.src || e.currentSrc;t.model.addLog({ type: "error", origData: ["GET <" + e.localName + "> error: " + r] }, { noOrig: !0 });
- }
- }, window.removeEventListener("error", this.resourceErrorHandler), window.addEventListener("error", this.resourceErrorHandler, !0);
- }, r.catchUnhandledRejection = function () {
- var t = this;this.rejectionHandler = this.rejectionHandler ? this.rejectionHandler : function (n) {
- var e = n && n.reason,
- r = "Uncaught (in promise) ",
- o = [r, e];e instanceof Error && (o = [r, { name: e.name, message: e.message, stack: e.stack }]), t.model.addLog({ type: "error", origData: o }, { noOrig: !0 });
- }, window.removeEventListener("unhandledrejection", this.rejectionHandler), window.addEventListener("unhandledrejection", this.rejectionHandler);
- }, e;
- }(In),
- Rn = function (t) {
- function n() {
- return t.apply(this, arguments) || this;
- }(0, i.Z)(n, t);var e = n.prototype;return e.onReady = function () {
- t.prototype.onReady.call(this), this.printSystemInfo();
- }, e.printSystemInfo = function () {
- var t = navigator.userAgent,
- n = [],
- e = t.match(/MicroMessenger\/([\d\.]+)/i),
- r = e && e[1] ? e[1] : null;"servicewechat.com" === location.host || console.info("[system]", "Location:", location.href);var o = t.match(/(ipod).*\s([\d_]+)/i),
- i = t.match(/(ipad).*\s([\d_]+)/i),
- a = t.match(/(iphone)\sos\s([\d_]+)/i),
- c = t.match(/(android)\s([\d\.]+)/i),
- u = t.match(/(Mac OS X)\s([\d_]+)/i);n = [], c ? n.push("Android " + c[2]) : a ? n.push("iPhone, iOS " + a[2].replace(/_/g, ".")) : i ? n.push("iPad, iOS " + i[2].replace(/_/g, ".")) : o ? n.push("iPod, iOS " + o[2].replace(/_/g, ".")) : u && n.push("Mac, MacOS " + u[2].replace(/_/g, ".")), r && n.push("WeChat " + r), console.info("[system]", "Client:", n.length ? n.join(", ") : "Unknown");var s = t.toLowerCase().match(/ nettype\/([^ ]+)/g);s && s[0] && (n = [(s = s[0].split("/"))[1]], console.info("[system]", "Network:", n.length ? n.join(", ") : "Unknown")), console.info("[system]", "UA:", t), setTimeout(function () {
- var t = window.performance || window.msPerformance || window.webkitPerformance;if (t && t.timing) {
- var n = t.timing;n.navigationStart && console.info("[system]", "navigationStart:", n.navigationStart), n.navigationStart && n.domainLookupStart && console.info("[system]", "navigation:", n.domainLookupStart - n.navigationStart + "ms"), n.domainLookupEnd && n.domainLookupStart && console.info("[system]", "dns:", n.domainLookupEnd - n.domainLookupStart + "ms"), n.connectEnd && n.connectStart && (n.connectEnd && n.secureConnectionStart ? console.info("[system]", "tcp (ssl):", n.connectEnd - n.connectStart + "ms (" + (n.connectEnd - n.secureConnectionStart) + "ms)") : console.info("[system]", "tcp:", n.connectEnd - n.connectStart + "ms")), n.responseStart && n.requestStart && console.info("[system]", "request:", n.responseStart - n.requestStart + "ms"), n.responseEnd && n.responseStart && console.info("[system]", "response:", n.responseEnd - n.responseStart + "ms"), n.domComplete && n.domLoading && (n.domContentLoadedEventStart && n.domLoading ? console.info("[system]", "domComplete (domLoaded):", n.domComplete - n.domLoading + "ms (" + (n.domContentLoadedEventStart - n.domLoading) + "ms)") : console.info("[system]", "domComplete:", n.domComplete - n.domLoading + "ms")), n.loadEventEnd && n.loadEventStart && console.info("[system]", "loadEvent:", n.loadEventEnd - n.loadEventStart + "ms"), n.navigationStart && n.loadEventEnd && console.info("[system]", "total (DOM):", n.loadEventEnd - n.navigationStart + "ms (" + (n.domComplete - n.navigationStart) + "ms)");
- }
- }, 0);
- }, n;
- }(In),
- kn = __webpack_require__(3313),
- Pn = __webpack_require__(643);function Mn(t, n) {
- var e = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];if (e) return (e = e.call(t)).next.bind(e);if (Array.isArray(t) || (e = function (t, n) {
- if (!t) return;if ("string" == typeof t) return $n(t, n);var e = Object.prototype.toString.call(t).slice(8, -1);"Object" === e && t.constructor && (e = t.constructor.name);if ("Map" === e || "Set" === e) return Array.from(t);if ("Arguments" === e || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)) return $n(t, n);
- }(t)) || n && t && "number" == typeof t.length) {
- e && (t = e);var r = 0;return function () {
- return r >= t.length ? { done: !0 } : { done: !1, value: t[r++] };
- };
- }throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }function $n(t, n) {
- (null == n || n > t.length) && (n = t.length);for (var e = 0, r = new Array(n); e < n; e++) {
- r[e] = t[e];
- }return r;
- }var Sn = function Sn(t, e) {
- void 0 === e && (e = {}), n.Kn(e) || (e = {});var r = t ? t.split("?") : [];if (r.shift(), r.length > 0) for (var o, i = Mn(r = r.join("?").split("&")); !(o = i()).done;) {
- var a = o.value.split("=");try {
- e[a[0]] = decodeURIComponent(a[1]);
- } catch (t) {
- e[a[0]] = a[1];
- }
- }return e;
- },
- jn = function jn(t, e) {
- var r = "";switch (t) {case "":case "text":case "json":
- if (n.HD(e)) try {
- r = JSON.parse(e), r = n.hZ(r, { maxDepth: 10, keyMaxLen: 1e4, pretty: !0 });
- } catch (t) {
- r = n.id(String(e), 1e4);
- } else n.Kn(e) || n.kJ(e) ? r = n.hZ(e, { maxDepth: 10, keyMaxLen: 1e4, pretty: !0 }) : void 0 !== e && (r = Object.prototype.toString.call(e));break;default:
- void 0 !== e && (r = Object.prototype.toString.call(e));}return r;
- },
- Bn = function Bn(t) {
- if (!t) return null;var e = null;if ("string" == typeof t) try {
- e = JSON.parse(t);
- } catch (n) {
- var r = t.split("&");if (1 === r.length) e = t;else {
- e = {};for (var o, i = Mn(r); !(o = i()).done;) {
- var a = o.value.split("=");e[a[0]] = void 0 === a[1] ? "undefined" : a[1];
- }
- }
- } else if (n.TW(t)) {
- e = {};for (var c, u = Mn(t); !(c = u()).done;) {
- var s = c.value,
- l = s[0],
- f = s[1];e[l] = "string" == typeof f ? f : "[object Object]";
- }
- } else if (n.PO(t)) e = t;else {
- e = "[object " + n.zl(t) + "]";
- }return e;
- },
- An = function An(t) {
- (void 0 === t && (t = ""), t.startsWith("//")) && (t = "" + new URL(window.location.href).protocol + t);return t.startsWith("http") ? new URL(t) : new URL(t, window.location.href);
- },
- Un = function Un() {
- this.id = "", this.name = "", this.method = "", this.url = "", this.status = 0, this.statusText = "", this.cancelState = 0, this.readyState = 0, this.header = null, this.responseType = "", this.requestType = void 0, this.requestHeader = null, this.response = void 0, this.responseSize = 0, this.responseSizeText = "", this.startTime = 0, this.endTime = 0, this.costTime = 0, this.getData = null, this.postData = null, this.actived = !1, this.noVConsole = !1, this.id = (0, n.QI)();
- },
- Nn = function (t) {
- function n(e) {
- var r;return (r = t.call(this) || this)._response = void 0, new Proxy(e, n.Handler) || (0, o.Z)(r);
- }return (0, i.Z)(n, t), n;
- }(Un);Nn.Handler = { get: function get(t, n) {
- return "response" === n ? t._response : Reflect.get(t, n);
- }, set: function set(t, n, e) {
- var r;switch (n) {case "response":
- return t._response = jn(t.responseType, e), !0;case "url":
- var o = (null == (r = e = String(e)) ? void 0 : r.replace(new RegExp("[/]*$"), "").split("/").pop()) || "Unknown";Reflect.set(t, "name", o);var i = Sn(e, t.getData);Reflect.set(t, "getData", i);break;case "status":
- var a = String(e) || "Unknown";Reflect.set(t, "statusText", a);break;case "startTime":
- if (e && t.endTime) {
- var c = t.endTime - e;Reflect.set(t, "costTime", c);
- }break;case "endTime":
- if (e && t.startTime) {
- var u = e - t.startTime;Reflect.set(t, "costTime", u);
- }}return Reflect.set(t, n, e);
- } };var Vn = function () {
- function t(t, n) {
- var e = this;this.XMLReq = void 0, this.item = void 0, this.onUpdateCallback = void 0, this.XMLReq = t, this.XMLReq.onreadystatechange = function () {
- e.onReadyStateChange();
- }, this.XMLReq.onabort = function () {
- e.onAbort();
- }, this.XMLReq.ontimeout = function () {
- e.onTimeout();
- }, this.item = new Un(), this.item.requestType = "xhr", this.onUpdateCallback = n;
- }var e = t.prototype;return e.get = function (t, n) {
- switch (n) {case "_noVConsole":
- return this.item.noVConsole;case "open":
- return this.getOpen(t);case "send":
- return this.getSend(t);case "setRequestHeader":
- return this.getSetRequestHeader(t);default:
- var e = Reflect.get(t, n);return "function" == typeof e ? e.bind(t) : e;}
- }, e.set = function (t, n, e) {
- switch (n) {case "_noVConsole":
- return void (this.item.noVConsole = !!e);case "onreadystatechange":
- return this.setOnReadyStateChange(t, n, e);case "onabort":
- return this.setOnAbort(t, n, e);case "ontimeout":
- return this.setOnTimeout(t, n, e);}return Reflect.set(t, n, e);
- }, e.onReadyStateChange = function () {
- this.item.readyState = this.XMLReq.readyState, this.item.responseType = this.XMLReq.responseType, this.item.endTime = Date.now(), this.item.costTime = this.item.endTime - this.item.startTime, this.updateItemByReadyState(), this.item.response = jn(this.item.responseType, this.item.response), this.triggerUpdate();
- }, e.onAbort = function () {
- this.item.cancelState = 1, this.item.statusText = "Abort", this.triggerUpdate();
- }, e.onTimeout = function () {
- this.item.cancelState = 3, this.item.statusText = "Timeout", this.triggerUpdate();
- }, e.triggerUpdate = function () {
- this.item.noVConsole || this.onUpdateCallback(this.item);
- }, e.getOpen = function (t) {
- var n = this,
- e = Reflect.get(t, "open");return function () {
- for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {
- o[i] = arguments[i];
- }var a = o[0],
- c = o[1];return n.item.method = a ? a.toUpperCase() : "GET", n.item.url = c || "", n.item.name = n.item.url.replace(new RegExp("[/]*$"), "").split("/").pop() || "", n.item.getData = Sn(n.item.url, {}), n.triggerUpdate(), e.apply(t, o);
- };
- }, e.getSend = function (t) {
- var n = this,
- e = Reflect.get(t, "send");return function () {
- for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {
- o[i] = arguments[i];
- }var a = o[0];return n.item.postData = Bn(a), n.triggerUpdate(), e.apply(t, o);
- };
- }, e.getSetRequestHeader = function (t) {
- var n = this,
- e = Reflect.get(t, "setRequestHeader");return function () {
- n.item.requestHeader || (n.item.requestHeader = {});for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {
- o[i] = arguments[i];
- }return n.item.requestHeader[o[0]] = o[1], n.triggerUpdate(), e.apply(t, o);
- };
- }, e.setOnReadyStateChange = function (t, n, e) {
- var r = this;return Reflect.set(t, n, function () {
- r.onReadyStateChange();for (var n = arguments.length, o = new Array(n), i = 0; i < n; i++) {
- o[i] = arguments[i];
- }e.apply(t, o);
- });
- }, e.setOnAbort = function (t, n, e) {
- var r = this;return Reflect.set(t, n, function () {
- r.onAbort();for (var n = arguments.length, o = new Array(n), i = 0; i < n; i++) {
- o[i] = arguments[i];
- }e.apply(t, o);
- });
- }, e.setOnTimeout = function (t, n, e) {
- var r = this;return Reflect.set(t, n, function () {
- r.onTimeout();for (var n = arguments.length, o = new Array(n), i = 0; i < n; i++) {
- o[i] = arguments[i];
- }e.apply(t, o);
- });
- }, e.updateItemByReadyState = function () {
- switch (this.XMLReq.readyState) {case 0:case 1:
- this.item.status = 0, this.item.statusText = "Pending", this.item.startTime || (this.item.startTime = Date.now());break;case 2:
- this.item.status = this.XMLReq.status, this.item.statusText = "Loading", this.item.header = {};for (var t = (this.XMLReq.getAllResponseHeaders() || "").split("\n"), e = 0; e < t.length; e++) {
- var r = t[e];if (r) {
- var o = r.split(": "),
- i = o[0],
- a = o.slice(1).join(": ");this.item.header[i] = a;
- }
- }break;case 3:
- this.item.status = this.XMLReq.status, this.item.statusText = "Loading", this.XMLReq.response && this.XMLReq.response.length && (this.item.responseSize = this.XMLReq.response.length, this.item.responseSizeText = (0, n.KL)(this.item.responseSize));break;case 4:
- this.item.status = this.XMLReq.status || this.item.status || 0, this.item.statusText = String(this.item.status), this.item.endTime = Date.now(), this.item.costTime = this.item.endTime - (this.item.startTime || this.item.endTime), this.item.response = this.XMLReq.response, this.XMLReq.response && this.XMLReq.response.length && (this.item.responseSize = this.XMLReq.response.length, this.item.responseSizeText = (0, n.KL)(this.item.responseSize));break;default:
- this.item.status = this.XMLReq.status, this.item.statusText = "Unknown";}
- }, t;
- }(),
- Gn = function () {
- function t() {}return t.create = function (t) {
- return new Proxy(XMLHttpRequest, { construct: function construct(n) {
- var e = new n();return new Proxy(e, new Vn(e, t));
- } });
- }, t;
- }();function Wn(t, n) {
- var e = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];if (e) return (e = e.call(t)).next.bind(e);if (Array.isArray(t) || (e = function (t, n) {
- if (!t) return;if ("string" == typeof t) return Kn(t, n);var e = Object.prototype.toString.call(t).slice(8, -1);"Object" === e && t.constructor && (e = t.constructor.name);if ("Map" === e || "Set" === e) return Array.from(t);if ("Arguments" === e || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)) return Kn(t, n);
- }(t)) || n && t && "number" == typeof t.length) {
- e && (t = e);var r = 0;return function () {
- return r >= t.length ? { done: !0 } : { done: !1, value: t[r++] };
- };
- }throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }function Kn(t, n) {
- (null == n || n > t.length) && (n = t.length);for (var e = 0, r = new Array(n); e < n; e++) {
- r[e] = t[e];
- }return r;
- }Gn.origXMLHttpRequest = XMLHttpRequest;var Fn = function () {
- function t(t, n, e) {
- this.resp = void 0, this.item = void 0, this.onUpdateCallback = void 0, this.resp = t, this.item = n, this.onUpdateCallback = e, this.mockReader();
- }var e = t.prototype;return e.set = function (t, n, e) {
- return Reflect.set(t, n, e);
- }, e.get = function (t, n) {
- var e = this,
- r = Reflect.get(t, n);switch (n) {case "arrayBuffer":case "blob":case "formData":case "json":case "text":
- return function () {
- return e.item.responseType = n.toLowerCase(), r.apply(t).then(function (t) {
- return e.item.response = jn(e.item.responseType, t), e.onUpdateCallback(e.item), t;
- });
- };}return "function" == typeof r ? r.bind(t) : r;
- }, e.mockReader = function () {
- var t,
- e = this;if (this.resp.body && "function" == typeof this.resp.body.getReader) {
- var r = this.resp.body.getReader;this.resp.body.getReader = function () {
- var o = r.apply(e.resp.body);if (4 === e.item.readyState) return o;var i = o.read,
- a = o.cancel;return e.item.responseType = "arraybuffer", o.read = function () {
- return i.apply(o).then(function (r) {
- if (t) {
- var o = new Uint8Array(t.length + r.value.length);o.set(t), o.set(r.value, t.length), t = o;
- } else t = new Uint8Array(r.value);return e.item.endTime = Date.now(), e.item.costTime = e.item.endTime - (e.item.startTime || e.item.endTime), e.item.readyState = r.done ? 4 : 3, e.item.statusText = r.done ? String(e.item.status) : "Loading", e.item.responseSize = t.length, e.item.responseSizeText = n.KL(e.item.responseSize), r.done && (e.item.response = jn(e.item.responseType, t)), e.onUpdateCallback(e.item), r;
- });
- }, o.cancel = function () {
- e.item.cancelState = 2, e.item.statusText = "Cancel", e.item.endTime = Date.now(), e.item.costTime = e.item.endTime - (e.item.startTime || e.item.endTime), e.item.response = jn(e.item.responseType, t), e.onUpdateCallback(e.item);for (var n = arguments.length, r = new Array(n), i = 0; i < n; i++) {
- r[i] = arguments[i];
- }return a.apply(o, r);
- }, o;
- };
- }
- }, t;
- }(),
- Hn = function () {
- function t(t) {
- this.onUpdateCallback = void 0, this.onUpdateCallback = t;
- }var e = t.prototype;return e.apply = function (t, n, e) {
- var r = this,
- o = e[0],
- i = e[1],
- a = new Un();return this.beforeFetch(a, o, i), t.apply(n, e).then(this.afterFetch(a)).catch(function (t) {
- throw a.endTime = Date.now(), a.costTime = a.endTime - (a.startTime || a.endTime), r.onUpdateCallback(a), t;
- });
- }, e.beforeFetch = function (t, e, r) {
- var o,
- i = "GET",
- a = null;if (n.HD(e) ? (i = (null == r ? void 0 : r.method) || "GET", o = An(e), a = (null == r ? void 0 : r.headers) || null) : (i = e.method || "GET", o = An(e.url), a = e.headers), t.method = i, t.requestType = "fetch", t.requestHeader = a, t.url = o.toString(), t.name = (o.pathname.split("/").pop() || "") + o.search, t.status = 0, t.statusText = "Pending", t.readyState = 1, t.startTime || (t.startTime = Date.now()), "[object Headers]" === Object.prototype.toString.call(a)) {
- t.requestHeader = {};for (var c, u = Wn(a); !(c = u()).done;) {
- var s = c.value,
- l = s[0],
- f = s[1];t.requestHeader[l] = f;
- }
- } else t.requestHeader = a;if (o.search && o.searchParams) {
- t.getData = {};for (var d, v = Wn(o.searchParams); !(d = v()).done;) {
- var p = d.value,
- h = p[0],
- g = p[1];t.getData[h] = g;
- }
- }null != r && r.body && (t.postData = Bn(r.body)), this.onUpdateCallback(t);
- }, e.afterFetch = function (t) {
- var e = this;return function (r) {
- t.endTime = Date.now(), t.costTime = t.endTime - (t.startTime || t.endTime), t.status = r.status, t.statusText = String(r.status);var o = !1;t.header = {};for (var i, a = Wn(r.headers); !(i = a()).done;) {
- var c = i.value,
- u = c[0],
- s = c[1];t.header[u] = s, o = s.toLowerCase().indexOf("chunked") > -1 || o;
- }return o ? t.readyState = 3 : (t.readyState = 4, e.handleResponseBody(r.clone(), t).then(function (r) {
- t.responseSize = "string" == typeof r ? r.length : r.byteLength, t.responseSizeText = n.KL(t.responseSize), t.response = jn(t.responseType, r), e.onUpdateCallback(t);
- })), e.onUpdateCallback(t), new Proxy(r, new Fn(r, t, e.onUpdateCallback));
- };
- }, e.handleResponseBody = function (t, n) {
- var e = t.headers.get("content-type");return e && e.includes("application/json") ? (n.responseType = "json", t.text()) : e && (e.includes("text/html") || e.includes("text/plain")) ? (n.responseType = "text", t.text()) : (n.responseType = "arraybuffer", t.arrayBuffer());
- }, t;
- }(),
- qn = function () {
- function t() {}return t.create = function (t) {
- return new Proxy(fetch, new Hn(t));
- }, t;
- }();function Zn(t, n) {
- var e = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];if (e) return (e = e.call(t)).next.bind(e);if (Array.isArray(t) || (e = function (t, n) {
- if (!t) return;if ("string" == typeof t) return Xn(t, n);var e = Object.prototype.toString.call(t).slice(8, -1);"Object" === e && t.constructor && (e = t.constructor.name);if ("Map" === e || "Set" === e) return Array.from(t);if ("Arguments" === e || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)) return Xn(t, n);
- }(t)) || n && t && "number" == typeof t.length) {
- e && (t = e);var r = 0;return function () {
- return r >= t.length ? { done: !0 } : { done: !1, value: t[r++] };
- };
- }throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }function Xn(t, n) {
- (null == n || n > t.length) && (n = t.length);for (var e = 0, r = new Array(n); e < n; e++) {
- r[e] = t[e];
- }return r;
- }qn.origFetch = fetch;var zn = function zn(t) {
- return t instanceof Blob ? t.type : t instanceof FormData ? "multipart/form-data" : t instanceof URLSearchParams ? "application/x-www-form-urlencoded;charset=UTF-8" : "text/plain;charset=UTF-8";
- },
- Yn = function () {
- function t(t) {
- this.onUpdateCallback = void 0, this.onUpdateCallback = t;
- }return t.prototype.apply = function (t, n, e) {
- var r = e[0],
- o = e[1],
- i = new Un(),
- a = An(r);if (i.method = "POST", i.url = r, i.name = (a.pathname.split("/").pop() || "") + a.search, i.requestType = "ping", i.requestHeader = { "Content-Type": zn(o) }, i.status = 0, i.statusText = "Pending", a.search && a.searchParams) {
- i.getData = {};for (var c, u = Zn(a.searchParams); !(c = u()).done;) {
- var s = c.value,
- l = s[0],
- f = s[1];i.getData[l] = f;
- }
- }i.postData = Bn(o), i.startTime || (i.startTime = Date.now()), this.onUpdateCallback(i);var d = t.apply(n, e);return d ? (i.endTime = Date.now(), i.costTime = i.endTime - (i.startTime || i.endTime), i.status = 0, i.statusText = "Sent", i.readyState = 4) : (i.status = 500, i.statusText = "Unknown"), this.onUpdateCallback(i), d;
- }, t;
- }(),
- Jn = function () {
- function t() {}return t.create = function (t) {
- return new Proxy(navigator.sendBeacon, new Yn(t));
- }, t;
- }();Jn.origSendBeacon = navigator.sendBeacon;var Qn = (0, kn.fZ)({}),
- te = function (t) {
- function n() {
- var n;return (n = t.call(this) || this).maxNetworkNumber = 1e3, n.itemCounter = 0, n.mockXHR(), n.mockFetch(), n.mockSendBeacon(), n;
- }(0, i.Z)(n, t);var e = n.prototype;return e.unMock = function () {
- window.hasOwnProperty("XMLHttpRequest") && (window.XMLHttpRequest = Gn.origXMLHttpRequest), window.hasOwnProperty("fetch") && (window.fetch = qn.origFetch), window.navigator.sendBeacon && (window.navigator.sendBeacon = Jn.origSendBeacon);
- }, e.clearLog = function () {
- Qn.set({});
- }, e.updateRequest = function (t, n) {
- var e = (0, kn.U2)(Qn),
- r = !!e[t];if (r) {
- var o = e[t];for (var i in n) {
- o[i] = n[i];
- }n = o;
- }Qn.update(function (e) {
- return e[t] = n, e;
- }), r || (R.x.updateTime(), this.limitListLength());
- }, e.mockXHR = function () {
- var t = this;window.hasOwnProperty("XMLHttpRequest") && (window.XMLHttpRequest = Gn.create(function (n) {
- t.updateRequest(n.id, n);
- }));
- }, e.mockFetch = function () {
- var t = this;window.hasOwnProperty("fetch") && (window.fetch = qn.create(function (n) {
- t.updateRequest(n.id, n);
- }));
- }, e.mockSendBeacon = function () {
- var t = this;window.navigator.sendBeacon && (window.navigator.sendBeacon = Jn.create(function (n) {
- t.updateRequest(n.id, n);
- }));
- }, e.limitListLength = function () {
- var t = this;if (this.itemCounter++, this.itemCounter % 10 == 0) {
- this.itemCounter = 0;var n = (0, kn.U2)(Qn),
- e = Object.keys(n);e.length > this.maxNetworkNumber - 10 && Qn.update(function (n) {
- for (var r = e.splice(0, e.length - t.maxNetworkNumber + 10), o = 0; o < r.length; o++) {
- n[r[o]] = void 0, delete n[r[o]];
- }return n;
- });
- }
- }, n;
- }(Pn.N),
- ne = __webpack_require__(8747),
- ee = {};ne.Z && ne.Z.locals && (ee.locals = ne.Z.locals);var re,
- oe = 0,
- ie = {};ie.styleTagTransform = b(), ie.setAttributes = h(), ie.insert = v().bind(null, "head"), ie.domAPI = f(), ie.insertStyleElement = m(), ee.use = function (t) {
- return ie.options = t || {}, oe++ || (re = s()(ne.Z, ie)), ee;
- }, ee.unuse = function () {
- oe > 0 && ! --oe && (re(), re = null);
- };var ae = ee;function ce(t, n, e) {
- var r = t.slice();return r[7] = n[e][0], r[8] = n[e][1], r;
- }function ue(t, n, e) {
- var r = t.slice();return r[11] = n[e][0], r[12] = n[e][1], r;
- }function se(t, n, e) {
- var r = t.slice();return r[11] = n[e][0], r[12] = n[e][1], r;
- }function le(t, n, e) {
- var r = t.slice();return r[11] = n[e][0], r[12] = n[e][1], r;
- }function fe(t, n, e) {
- var r = t.slice();return r[11] = n[e][0], r[12] = n[e][1], r;
- }function de(t) {
- var n, e, r;return { c: function c() {
- n = (0, a.fLW)("("), e = (0, a.fLW)(t[0]), r = (0, a.fLW)(")");
- }, m: function m(t, o) {
- (0, a.$Tr)(t, n, o), (0, a.$Tr)(t, e, o), (0, a.$Tr)(t, r, o);
- }, p: function p(t, n) {
- 1 & n && (0, a.rTO)(e, t[0]);
- }, d: function d(t) {
- t && (0, a.ogt)(n), t && (0, a.ogt)(e), t && (0, a.ogt)(r);
- } };
- }function ve(t) {
- var n, e, r, o, i, _c11, u, s;_c11 = new ut({ props: { content: t[8].requestHeader } });for (var l = Object.entries(t[8].requestHeader), f = [], d = 0; d < l.length; d += 1) {
- f[d] = pe(fe(t, l, d));
- }return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("dl"), r = (0, a.bGB)("dt"), o = (0, a.fLW)("Request Headers\n "), i = (0, a.bGB)("i"), (0, a.YCL)(_c11.$$.fragment), u = (0, a.DhX)();for (var t = 0; t < f.length; t += 1) {
- f[t].c();
- }(0, a.Ljt)(i, "class", "vc-table-row-icon"), (0, a.Ljt)(r, "class", "vc-table-col vc-table-col-title"), (0, a.Ljt)(e, "class", "vc-table-row vc-left-border");
- }, m: function m(t, l) {
- (0, a.$Tr)(t, n, l), (0, a.R3I)(n, e), (0, a.R3I)(e, r), (0, a.R3I)(r, o), (0, a.R3I)(r, i), (0, a.yef)(_c11, i, null), (0, a.R3I)(n, u);for (var d = 0; d < f.length; d += 1) {
- f[d].m(n, null);
- }s = !0;
- }, p: function p(t, e) {
- var r = {};if (2 & e && (r.content = t[8].requestHeader), _c11.$set(r), 10 & e) {
- var o;for (l = Object.entries(t[8].requestHeader), o = 0; o < l.length; o += 1) {
- var i = fe(t, l, o);f[o] ? f[o].p(i, e) : (f[o] = pe(i), f[o].c(), f[o].m(n, null));
- }for (; o < f.length; o += 1) {
- f[o].d(1);
- }f.length = l.length;
- }
- }, i: function i(t) {
- s || ((0, a.Ui)(_c11.$$.fragment, t), s = !0);
- }, o: function o(t) {
- (0, a.etI)(_c11.$$.fragment, t), s = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), (0, a.vpE)(_c11), (0, a.RMB)(f, t);
- } };
- }function pe(t) {
- var n,
- e,
- r,
- o,
- i,
- _c12,
- u,
- s = t[11] + "",
- l = t[3](t[12]) + "";return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("div"), r = (0, a.fLW)(s), o = (0, a.DhX)(), i = (0, a.bGB)("div"), _c12 = (0, a.fLW)(l), u = (0, a.DhX)(), (0, a.Ljt)(e, "class", "vc-table-col vc-table-col-2"), (0, a.Ljt)(i, "class", "vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"), (0, a.Ljt)(n, "class", "vc-table-row vc-left-border vc-small");
- }, m: function m(t, s) {
- (0, a.$Tr)(t, n, s), (0, a.R3I)(n, e), (0, a.R3I)(e, r), (0, a.R3I)(n, o), (0, a.R3I)(n, i), (0, a.R3I)(i, _c12), (0, a.R3I)(n, u);
- }, p: function p(t, n) {
- 2 & n && s !== (s = t[11] + "") && (0, a.rTO)(r, s), 2 & n && l !== (l = t[3](t[12]) + "") && (0, a.rTO)(_c12, l);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function he(t) {
- var n, e, r, o, i, _c13, u, s;_c13 = new ut({ props: { content: t[8].getData } });for (var l = Object.entries(t[8].getData), f = [], d = 0; d < l.length; d += 1) {
- f[d] = ge(le(t, l, d));
- }return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("dl"), r = (0, a.bGB)("dt"), o = (0, a.fLW)("Query String Parameters\n "), i = (0, a.bGB)("i"), (0, a.YCL)(_c13.$$.fragment), u = (0, a.DhX)();for (var t = 0; t < f.length; t += 1) {
- f[t].c();
- }(0, a.Ljt)(i, "class", "vc-table-row-icon"), (0, a.Ljt)(r, "class", "vc-table-col vc-table-col-title"), (0, a.Ljt)(e, "class", "vc-table-row vc-left-border");
- }, m: function m(t, l) {
- (0, a.$Tr)(t, n, l), (0, a.R3I)(n, e), (0, a.R3I)(e, r), (0, a.R3I)(r, o), (0, a.R3I)(r, i), (0, a.yef)(_c13, i, null), (0, a.R3I)(n, u);for (var d = 0; d < f.length; d += 1) {
- f[d].m(n, null);
- }s = !0;
- }, p: function p(t, e) {
- var r = {};if (2 & e && (r.content = t[8].getData), _c13.$set(r), 10 & e) {
- var o;for (l = Object.entries(t[8].getData), o = 0; o < l.length; o += 1) {
- var i = le(t, l, o);f[o] ? f[o].p(i, e) : (f[o] = ge(i), f[o].c(), f[o].m(n, null));
- }for (; o < f.length; o += 1) {
- f[o].d(1);
- }f.length = l.length;
- }
- }, i: function i(t) {
- s || ((0, a.Ui)(_c13.$$.fragment, t), s = !0);
- }, o: function o(t) {
- (0, a.etI)(_c13.$$.fragment, t), s = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), (0, a.vpE)(_c13), (0, a.RMB)(f, t);
- } };
- }function ge(t) {
- var n,
- e,
- r,
- o,
- i,
- _c14,
- u,
- s = t[11] + "",
- l = t[3](t[12]) + "";return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("div"), r = (0, a.fLW)(s), o = (0, a.DhX)(), i = (0, a.bGB)("div"), _c14 = (0, a.fLW)(l), u = (0, a.DhX)(), (0, a.Ljt)(e, "class", "vc-table-col vc-table-col-2"), (0, a.Ljt)(i, "class", "vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"), (0, a.Ljt)(n, "class", "vc-table-row vc-left-border vc-small");
- }, m: function m(t, s) {
- (0, a.$Tr)(t, n, s), (0, a.R3I)(n, e), (0, a.R3I)(e, r), (0, a.R3I)(n, o), (0, a.R3I)(n, i), (0, a.R3I)(i, _c14), (0, a.R3I)(n, u);
- }, p: function p(t, n) {
- 2 & n && s !== (s = t[11] + "") && (0, a.rTO)(r, s), 2 & n && l !== (l = t[3](t[12]) + "") && (0, a.rTO)(_c14, l);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function me(t) {
- var n, e, r, o, i, _c15, u, s;function l(t, n) {
- return "string" == typeof t[8].postData ? be : _e;
- }_c15 = new ut({ props: { content: t[8].postData } });var f = l(t),
- _d2 = f(t);return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("dl"), r = (0, a.bGB)("dt"), o = (0, a.fLW)("Request Payload\n "), i = (0, a.bGB)("i"), (0, a.YCL)(_c15.$$.fragment), u = (0, a.DhX)(), _d2.c(), (0, a.Ljt)(i, "class", "vc-table-row-icon"), (0, a.Ljt)(r, "class", "vc-table-col vc-table-col-title"), (0, a.Ljt)(e, "class", "vc-table-row vc-left-border");
- }, m: function m(t, l) {
- (0, a.$Tr)(t, n, l), (0, a.R3I)(n, e), (0, a.R3I)(e, r), (0, a.R3I)(r, o), (0, a.R3I)(r, i), (0, a.yef)(_c15, i, null), (0, a.R3I)(n, u), _d2.m(n, null), s = !0;
- }, p: function p(t, e) {
- var r = {};2 & e && (r.content = t[8].postData), _c15.$set(r), f === (f = l(t)) && _d2 ? _d2.p(t, e) : (_d2.d(1), (_d2 = f(t)) && (_d2.c(), _d2.m(n, null)));
- }, i: function i(t) {
- s || ((0, a.Ui)(_c15.$$.fragment, t), s = !0);
- }, o: function o(t) {
- (0, a.etI)(_c15.$$.fragment, t), s = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), (0, a.vpE)(_c15), _d2.d();
- } };
- }function _e(t) {
- for (var n, e = Object.entries(t[8].postData), r = [], o = 0; o < e.length; o += 1) {
- r[o] = ye(se(t, e, o));
- }return { c: function c() {
- for (var t = 0; t < r.length; t += 1) {
- r[t].c();
- }n = (0, a.cSb)();
- }, m: function m(t, e) {
- for (var o = 0; o < r.length; o += 1) {
- r[o].m(t, e);
- }(0, a.$Tr)(t, n, e);
- }, p: function p(t, o) {
- if (10 & o) {
- var i;for (e = Object.entries(t[8].postData), i = 0; i < e.length; i += 1) {
- var a = se(t, e, i);r[i] ? r[i].p(a, o) : (r[i] = ye(a), r[i].c(), r[i].m(n.parentNode, n));
- }for (; i < r.length; i += 1) {
- r[i].d(1);
- }r.length = e.length;
- }
- }, d: function d(t) {
- (0, a.RMB)(r, t), t && (0, a.ogt)(n);
- } };
- }function be(t) {
- var n,
- e,
- r,
- o = t[8].postData + "";return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("pre"), r = (0, a.fLW)(o), (0, a.Ljt)(e, "class", "vc-table-col vc-table-col-value vc-max-height-line"), (0, a.Ljt)(n, "class", "vc-table-row vc-left-border vc-small");
- }, m: function m(t, o) {
- (0, a.$Tr)(t, n, o), (0, a.R3I)(n, e), (0, a.R3I)(e, r);
- }, p: function p(t, n) {
- 2 & n && o !== (o = t[8].postData + "") && (0, a.rTO)(r, o);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function ye(t) {
- var n,
- e,
- r,
- o,
- i,
- _c16,
- u,
- s = t[11] + "",
- l = t[3](t[12]) + "";return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("div"), r = (0, a.fLW)(s), o = (0, a.DhX)(), i = (0, a.bGB)("div"), _c16 = (0, a.fLW)(l), u = (0, a.DhX)(), (0, a.Ljt)(e, "class", "vc-table-col vc-table-col-2"), (0, a.Ljt)(i, "class", "vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"), (0, a.Ljt)(n, "class", "vc-table-row vc-left-border vc-small");
- }, m: function m(t, s) {
- (0, a.$Tr)(t, n, s), (0, a.R3I)(n, e), (0, a.R3I)(e, r), (0, a.R3I)(n, o), (0, a.R3I)(n, i), (0, a.R3I)(i, _c16), (0, a.R3I)(n, u);
- }, p: function p(t, n) {
- 2 & n && s !== (s = t[11] + "") && (0, a.rTO)(r, s), 2 & n && l !== (l = t[3](t[12]) + "") && (0, a.rTO)(_c16, l);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function we(t) {
- var n, e, r, o, i, _c17, u, s;_c17 = new ut({ props: { content: t[8].header } });for (var l = Object.entries(t[8].header), f = [], d = 0; d < l.length; d += 1) {
- f[d] = Ee(ue(t, l, d));
- }return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("dl"), r = (0, a.bGB)("dt"), o = (0, a.fLW)("Response Headers\n "), i = (0, a.bGB)("i"), (0, a.YCL)(_c17.$$.fragment), u = (0, a.DhX)();for (var t = 0; t < f.length; t += 1) {
- f[t].c();
- }(0, a.Ljt)(i, "class", "vc-table-row-icon"), (0, a.Ljt)(r, "class", "vc-table-col vc-table-col-title"), (0, a.Ljt)(e, "class", "vc-table-row vc-left-border");
- }, m: function m(t, l) {
- (0, a.$Tr)(t, n, l), (0, a.R3I)(n, e), (0, a.R3I)(e, r), (0, a.R3I)(r, o), (0, a.R3I)(r, i), (0, a.yef)(_c17, i, null), (0, a.R3I)(n, u);for (var d = 0; d < f.length; d += 1) {
- f[d].m(n, null);
- }s = !0;
- }, p: function p(t, e) {
- var r = {};if (2 & e && (r.content = t[8].header), _c17.$set(r), 10 & e) {
- var o;for (l = Object.entries(t[8].header), o = 0; o < l.length; o += 1) {
- var i = ue(t, l, o);f[o] ? f[o].p(i, e) : (f[o] = Ee(i), f[o].c(), f[o].m(n, null));
- }for (; o < f.length; o += 1) {
- f[o].d(1);
- }f.length = l.length;
- }
- }, i: function i(t) {
- s || ((0, a.Ui)(_c17.$$.fragment, t), s = !0);
- }, o: function o(t) {
- (0, a.etI)(_c17.$$.fragment, t), s = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), (0, a.vpE)(_c17), (0, a.RMB)(f, t);
- } };
- }function Ee(t) {
- var n,
- e,
- r,
- o,
- i,
- _c18,
- u,
- s = t[11] + "",
- l = t[3](t[12]) + "";return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("div"), r = (0, a.fLW)(s), o = (0, a.DhX)(), i = (0, a.bGB)("div"), _c18 = (0, a.fLW)(l), u = (0, a.DhX)(), (0, a.Ljt)(e, "class", "vc-table-col vc-table-col-2"), (0, a.Ljt)(i, "class", "vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"), (0, a.Ljt)(n, "class", "vc-table-row vc-left-border vc-small");
- }, m: function m(t, s) {
- (0, a.$Tr)(t, n, s), (0, a.R3I)(n, e), (0, a.R3I)(e, r), (0, a.R3I)(n, o), (0, a.R3I)(n, i), (0, a.R3I)(i, _c18), (0, a.R3I)(n, u);
- }, p: function p(t, n) {
- 2 & n && s !== (s = t[11] + "") && (0, a.rTO)(r, s), 2 & n && l !== (l = t[3](t[12]) + "") && (0, a.rTO)(_c18, l);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function Le(t) {
- var n,
- e,
- r,
- o,
- i,
- _c19 = t[8].responseSizeText + "";return { c: function c() {
- n = (0, a.bGB)("div"), (e = (0, a.bGB)("div")).textContent = "Size", r = (0, a.DhX)(), o = (0, a.bGB)("div"), i = (0, a.fLW)(_c19), (0, a.Ljt)(e, "class", "vc-table-col vc-table-col-2"), (0, a.Ljt)(o, "class", "vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"), (0, a.Ljt)(n, "class", "vc-table-row vc-left-border vc-small");
- }, m: function m(t, c) {
- (0, a.$Tr)(t, n, c), (0, a.R3I)(n, e), (0, a.R3I)(n, r), (0, a.R3I)(n, o), (0, a.R3I)(o, i);
- }, p: function p(t, n) {
- 2 & n && _c19 !== (_c19 = t[8].responseSizeText + "") && (0, a.rTO)(i, _c19);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function Te(t) {
- var n,
- e,
- r,
- o,
- i,
- _c20,
- u,
- s,
- l,
- f,
- d,
- v,
- p,
- h,
- g,
- _m4,
- _,
- b,
- y,
- w,
- E,
- L,
- T,
- O,
- C,
- x,
- I,
- D,
- R,
- k,
- P,
- M,
- $,
- S,
- j,
- B,
- A,
- U,
- N,
- V,
- G,
- W,
- K,
- F,
- H,
- q,
- Z,
- X,
- z,
- Y,
- J,
- Q,
- tt,
- nt,
- et,
- rt,
- ot,
- it,
- at,
- ct,
- st,
- lt,
- ft,
- dt = t[8].name + "",
- vt = t[8].method + "",
- pt = t[8].statusText + "",
- ht = t[8].costTime + "",
- gt = t[8].url + "",
- mt = t[8].method + "",
- _t = t[8].requestType + "",
- bt = t[8].status + "",
- yt = (t[8].response || "") + "";function wt() {
- return t[4](t[8]);
- }b = new ut({ props: { content: t[8].url } });var Et = null !== t[8].requestHeader && ve(t),
- Lt = null !== t[8].getData && he(t),
- Tt = null !== t[8].postData && me(t),
- Ot = null !== t[8].header && we(t);tt = new ut({ props: { content: t[8].response } });var Ct = t[8].responseSize > 0 && Le(t);return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("dl"), r = (0, a.bGB)("dd"), o = (0, a.fLW)(dt), i = (0, a.bGB)("dd"), _c20 = (0, a.fLW)(vt), u = (0, a.bGB)("dd"), s = (0, a.fLW)(pt), l = (0, a.bGB)("dd"), f = (0, a.fLW)(ht), d = (0, a.DhX)(), v = (0, a.bGB)("div"), p = (0, a.bGB)("div"), h = (0, a.bGB)("dl"), g = (0, a.bGB)("dt"), _m4 = (0, a.fLW)("General\n "), _ = (0, a.bGB)("i"), (0, a.YCL)(b.$$.fragment), y = (0, a.DhX)(), w = (0, a.bGB)("div"), (E = (0, a.bGB)("div")).textContent = "URL", L = (0, a.DhX)(), T = (0, a.bGB)("div"), O = (0, a.fLW)(gt), C = (0, a.DhX)(), x = (0, a.bGB)("div"), (I = (0, a.bGB)("div")).textContent = "Method", D = (0, a.DhX)(), R = (0, a.bGB)("div"), k = (0, a.fLW)(mt), P = (0, a.DhX)(), M = (0, a.bGB)("div"), ($ = (0, a.bGB)("div")).textContent = "Request Type", S = (0, a.DhX)(), j = (0, a.bGB)("div"), B = (0, a.fLW)(_t), A = (0, a.DhX)(), U = (0, a.bGB)("div"), (N = (0, a.bGB)("div")).textContent = "HTTP Status", V = (0, a.DhX)(), G = (0, a.bGB)("div"), W = (0, a.fLW)(bt), K = (0, a.DhX)(), Et && Et.c(), F = (0, a.DhX)(), Lt && Lt.c(), H = (0, a.DhX)(), Tt && Tt.c(), q = (0, a.DhX)(), Ot && Ot.c(), Z = (0, a.DhX)(), X = (0, a.bGB)("div"), z = (0, a.bGB)("dl"), Y = (0, a.bGB)("dt"), J = (0, a.fLW)("Response\n "), Q = (0, a.bGB)("i"), (0, a.YCL)(tt.$$.fragment), nt = (0, a.DhX)(), Ct && Ct.c(), et = (0, a.DhX)(), rt = (0, a.bGB)("div"), ot = (0, a.bGB)("pre"), it = (0, a.fLW)(yt), at = (0, a.DhX)(), (0, a.Ljt)(r, "class", "vc-table-col vc-table-col-4"), (0, a.Ljt)(i, "class", "vc-table-col"), (0, a.Ljt)(u, "class", "vc-table-col"), (0, a.Ljt)(l, "class", "vc-table-col"), (0, a.Ljt)(e, "class", "vc-table-row vc-group-preview"), (0, a.VHj)(e, "vc-table-row-error", t[8].status >= 400), (0, a.Ljt)(_, "class", "vc-table-row-icon"), (0, a.Ljt)(g, "class", "vc-table-col vc-table-col-title"), (0, a.Ljt)(h, "class", "vc-table-row vc-left-border"), (0, a.Ljt)(E, "class", "vc-table-col vc-table-col-2"), (0, a.Ljt)(T, "class", "vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"), (0, a.Ljt)(w, "class", "vc-table-row vc-left-border vc-small"), (0, a.Ljt)(I, "class", "vc-table-col vc-table-col-2"), (0, a.Ljt)(R, "class", "vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"), (0, a.Ljt)(x, "class", "vc-table-row vc-left-border vc-small"), (0, a.Ljt)($, "class", "vc-table-col vc-table-col-2"), (0, a.Ljt)(j, "class", "vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"), (0, a.Ljt)(M, "class", "vc-table-row vc-left-border vc-small"), (0, a.Ljt)(N, "class", "vc-table-col vc-table-col-2"), (0, a.Ljt)(G, "class", "vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"), (0, a.Ljt)(U, "class", "vc-table-row vc-left-border vc-small"), (0, a.Ljt)(Q, "class", "vc-table-row-icon"), (0, a.Ljt)(Y, "class", "vc-table-col vc-table-col-title"), (0, a.Ljt)(z, "class", "vc-table-row vc-left-border"), (0, a.Ljt)(ot, "class", "vc-table-col vc-max-height vc-min-height"), (0, a.Ljt)(rt, "class", "vc-table-row vc-left-border vc-small"), (0, a.Ljt)(v, "class", "vc-group-detail"), (0, a.Ljt)(n, "class", "vc-group"), (0, a.Ljt)(n, "id", ct = t[8].id), (0, a.VHj)(n, "vc-actived", t[8].actived);
- }, m: function m(t, ct) {
- (0, a.$Tr)(t, n, ct), (0, a.R3I)(n, e), (0, a.R3I)(e, r), (0, a.R3I)(r, o), (0, a.R3I)(e, i), (0, a.R3I)(i, _c20), (0, a.R3I)(e, u), (0, a.R3I)(u, s), (0, a.R3I)(e, l), (0, a.R3I)(l, f), (0, a.R3I)(n, d), (0, a.R3I)(n, v), (0, a.R3I)(v, p), (0, a.R3I)(p, h), (0, a.R3I)(h, g), (0, a.R3I)(g, _m4), (0, a.R3I)(g, _), (0, a.yef)(b, _, null), (0, a.R3I)(p, y), (0, a.R3I)(p, w), (0, a.R3I)(w, E), (0, a.R3I)(w, L), (0, a.R3I)(w, T), (0, a.R3I)(T, O), (0, a.R3I)(p, C), (0, a.R3I)(p, x), (0, a.R3I)(x, I), (0, a.R3I)(x, D), (0, a.R3I)(x, R), (0, a.R3I)(R, k), (0, a.R3I)(p, P), (0, a.R3I)(p, M), (0, a.R3I)(M, $), (0, a.R3I)(M, S), (0, a.R3I)(M, j), (0, a.R3I)(j, B), (0, a.R3I)(p, A), (0, a.R3I)(p, U), (0, a.R3I)(U, N), (0, a.R3I)(U, V), (0, a.R3I)(U, G), (0, a.R3I)(G, W), (0, a.R3I)(v, K), Et && Et.m(v, null), (0, a.R3I)(v, F), Lt && Lt.m(v, null), (0, a.R3I)(v, H), Tt && Tt.m(v, null), (0, a.R3I)(v, q), Ot && Ot.m(v, null), (0, a.R3I)(v, Z), (0, a.R3I)(v, X), (0, a.R3I)(X, z), (0, a.R3I)(z, Y), (0, a.R3I)(Y, J), (0, a.R3I)(Y, Q), (0, a.yef)(tt, Q, null), (0, a.R3I)(X, nt), Ct && Ct.m(X, null), (0, a.R3I)(X, et), (0, a.R3I)(X, rt), (0, a.R3I)(rt, ot), (0, a.R3I)(ot, it), (0, a.R3I)(n, at), st = !0, lt || (ft = (0, a.oLt)(e, "click", wt), lt = !0);
- }, p: function p(r, i) {
- t = r, (!st || 2 & i) && dt !== (dt = t[8].name + "") && (0, a.rTO)(o, dt), (!st || 2 & i) && vt !== (vt = t[8].method + "") && (0, a.rTO)(_c20, vt), (!st || 2 & i) && pt !== (pt = t[8].statusText + "") && (0, a.rTO)(s, pt), (!st || 2 & i) && ht !== (ht = t[8].costTime + "") && (0, a.rTO)(f, ht), 2 & i && (0, a.VHj)(e, "vc-table-row-error", t[8].status >= 400);var u = {};2 & i && (u.content = t[8].url), b.$set(u), (!st || 2 & i) && gt !== (gt = t[8].url + "") && (0, a.rTO)(O, gt), (!st || 2 & i) && mt !== (mt = t[8].method + "") && (0, a.rTO)(k, mt), (!st || 2 & i) && _t !== (_t = t[8].requestType + "") && (0, a.rTO)(B, _t), (!st || 2 & i) && bt !== (bt = t[8].status + "") && (0, a.rTO)(W, bt), null !== t[8].requestHeader ? Et ? (Et.p(t, i), 2 & i && (0, a.Ui)(Et, 1)) : ((Et = ve(t)).c(), (0, a.Ui)(Et, 1), Et.m(v, F)) : Et && ((0, a.dvw)(), (0, a.etI)(Et, 1, 1, function () {
- Et = null;
- }), (0, a.gbL)()), null !== t[8].getData ? Lt ? (Lt.p(t, i), 2 & i && (0, a.Ui)(Lt, 1)) : ((Lt = he(t)).c(), (0, a.Ui)(Lt, 1), Lt.m(v, H)) : Lt && ((0, a.dvw)(), (0, a.etI)(Lt, 1, 1, function () {
- Lt = null;
- }), (0, a.gbL)()), null !== t[8].postData ? Tt ? (Tt.p(t, i), 2 & i && (0, a.Ui)(Tt, 1)) : ((Tt = me(t)).c(), (0, a.Ui)(Tt, 1), Tt.m(v, q)) : Tt && ((0, a.dvw)(), (0, a.etI)(Tt, 1, 1, function () {
- Tt = null;
- }), (0, a.gbL)()), null !== t[8].header ? Ot ? (Ot.p(t, i), 2 & i && (0, a.Ui)(Ot, 1)) : ((Ot = we(t)).c(), (0, a.Ui)(Ot, 1), Ot.m(v, Z)) : Ot && ((0, a.dvw)(), (0, a.etI)(Ot, 1, 1, function () {
- Ot = null;
- }), (0, a.gbL)());var l = {};2 & i && (l.content = t[8].response), tt.$set(l), t[8].responseSize > 0 ? Ct ? Ct.p(t, i) : ((Ct = Le(t)).c(), Ct.m(X, et)) : Ct && (Ct.d(1), Ct = null), (!st || 2 & i) && yt !== (yt = (t[8].response || "") + "") && (0, a.rTO)(it, yt), (!st || 2 & i && ct !== (ct = t[8].id)) && (0, a.Ljt)(n, "id", ct), 2 & i && (0, a.VHj)(n, "vc-actived", t[8].actived);
- }, i: function i(t) {
- st || ((0, a.Ui)(b.$$.fragment, t), (0, a.Ui)(Et), (0, a.Ui)(Lt), (0, a.Ui)(Tt), (0, a.Ui)(Ot), (0, a.Ui)(tt.$$.fragment, t), st = !0);
- }, o: function o(t) {
- (0, a.etI)(b.$$.fragment, t), (0, a.etI)(Et), (0, a.etI)(Lt), (0, a.etI)(Tt), (0, a.etI)(Ot), (0, a.etI)(tt.$$.fragment, t), st = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), (0, a.vpE)(b), Et && Et.d(), Lt && Lt.d(), Tt && Tt.d(), Ot && Ot.d(), (0, a.vpE)(tt), Ct && Ct.d(), lt = !1, ft();
- } };
- }function Oe(t) {
- for (var n, e, r, o, i, _c21, u, s, l, f, _d3 = t[0] > 0 && de(t), v = Object.entries(t[1]), _p5 = [], h = 0; h < v.length; h += 1) {
- _p5[h] = Te(ce(t, v, h));
- }var g = function g(t) {
- return (0, a.etI)(_p5[t], 1, 1, function () {
- _p5[t] = null;
- });
- };return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("dl"), r = (0, a.bGB)("dd"), o = (0, a.fLW)("Name "), _d3 && _d3.c(), (i = (0, a.bGB)("dd")).textContent = "Method", (_c21 = (0, a.bGB)("dd")).textContent = "Status", (u = (0, a.bGB)("dd")).textContent = "Time", s = (0, a.DhX)(), l = (0, a.bGB)("div");for (var t = 0; t < _p5.length; t += 1) {
- _p5[t].c();
- }(0, a.Ljt)(r, "class", "vc-table-col vc-table-col-4"), (0, a.Ljt)(i, "class", "vc-table-col"), (0, a.Ljt)(_c21, "class", "vc-table-col"), (0, a.Ljt)(u, "class", "vc-table-col"), (0, a.Ljt)(e, "class", "vc-table-row"), (0, a.Ljt)(l, "class", "vc-plugin-content"), (0, a.Ljt)(n, "class", "vc-table");
- }, m: function m(t, v) {
- (0, a.$Tr)(t, n, v), (0, a.R3I)(n, e), (0, a.R3I)(e, r), (0, a.R3I)(r, o), _d3 && _d3.m(r, null), (0, a.R3I)(e, i), (0, a.R3I)(e, _c21), (0, a.R3I)(e, u), (0, a.R3I)(n, s), (0, a.R3I)(n, l);for (var h = 0; h < _p5.length; h += 1) {
- _p5[h].m(l, null);
- }f = !0;
- }, p: function p(t, n) {
- var e = n[0];if (t[0] > 0 ? _d3 ? _d3.p(t, e) : ((_d3 = de(t)).c(), _d3.m(r, null)) : _d3 && (_d3.d(1), _d3 = null), 14 & e) {
- var o;for (v = Object.entries(t[1]), o = 0; o < v.length; o += 1) {
- var i = ce(t, v, o);_p5[o] ? (_p5[o].p(i, e), (0, a.Ui)(_p5[o], 1)) : (_p5[o] = Te(i), _p5[o].c(), (0, a.Ui)(_p5[o], 1), _p5[o].m(l, null));
- }for ((0, a.dvw)(), o = v.length; o < _p5.length; o += 1) {
- g(o);
- }(0, a.gbL)();
- }
- }, i: function i(t) {
- if (!f) {
- for (var n = 0; n < v.length; n += 1) {
- (0, a.Ui)(_p5[n]);
- }f = !0;
- }
- }, o: function o(t) {
- _p5 = _p5.filter(Boolean);for (var n = 0; n < _p5.length; n += 1) {
- (0, a.etI)(_p5[n]);
- }f = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), _d3 && _d3.d(), (0, a.RMB)(_p5, t);
- } };
- }function Ce(t, e, r) {
- var o;(0, a.FIv)(t, Qn, function (t) {
- return r(1, o = t);
- });var i = 0,
- u = function u(t) {
- r(0, i = Object.keys(t).length);
- },
- s = Qn.subscribe(u);u(o);var l = function l(t) {
- (0, a.fxP)(Qn, o[t].actived = !o[t].actived, o);
- };(0, c.H3)(function () {
- ae.use();
- }), (0, c.ev)(function () {
- s(), ae.unuse();
- });return [i, o, l, function (t) {
- return n.Kn(t) || n.kJ(t) ? n.hZ(t, { maxDepth: 10, keyMaxLen: 1e4, pretty: !0 }) : t;
- }, function (t) {
- return l(t.id);
- }];
- }var xe = function (t) {
- function n(n) {
- var e;return e = t.call(this) || this, (0, a.S1n)((0, o.Z)(e), n, Ce, Oe, a.N8, {}), e;
- }return (0, i.Z)(n, t), n;
- }(a.f_C),
- Ie = xe,
- De = function (t) {
- function n() {
- for (var n, e = arguments.length, r = new Array(e), o = 0; o < e; o++) {
- r[o] = arguments[o];
- }return (n = t.call.apply(t, [this].concat(r)) || this).model = te.getSingleton(te, "VConsoleNetworkModel"), n;
- }(0, i.Z)(n, t);var e = n.prototype;return e.add = function (t) {
- var n = new Nn(new Un());for (var e in t) {
- n[e] = t[e];
- }return n.startTime = n.startTime || Date.now(), n.requestType = n.requestType || "custom", this.model.updateRequest(n.id, n), n;
- }, e.update = function (t, n) {
- this.model.updateRequest(t, n);
- }, e.clear = function () {
- this.model.clearLog();
- }, n;
- }(Cn),
- Re = function (t) {
- function n(n, e, r) {
- var o;return void 0 === r && (r = {}), (o = t.call(this, n, e, Ie, r) || this).model = te.getSingleton(te, "VConsoleNetworkModel"), o.exporter = void 0, o.exporter = new De(n), o;
- }(0, i.Z)(n, t);var e = n.prototype;return e.onReady = function () {
- t.prototype.onReady.call(this), this.onUpdateOption();
- }, e.onAddTool = function (t) {
- var n = this;t([{ name: "Clear", global: !1, onClick: function onClick(t) {
- n.model.clearLog();
- } }]);
- }, e.onRemove = function () {
- t.prototype.onRemove.call(this), this.model && this.model.unMock();
- }, e.onUpdateOption = function () {
- var t, n;(null == (t = this.vConsole.option.network) ? void 0 : t.maxNetworkNumber) !== this.model.maxNetworkNumber && (this.model.maxNetworkNumber = Number(null == (n = this.vConsole.option.network) ? void 0 : n.maxNetworkNumber) || 1e3);
- }, n;
- }(nt),
- ke = __webpack_require__(8679),
- Pe = __webpack_require__.n(ke),
- Me = (0, kn.fZ)(),
- $e = (0, kn.fZ)(),
- Se = __webpack_require__(5670),
- je = {};Se.Z && Se.Z.locals && (je.locals = Se.Z.locals);var Be,
- Ae = 0,
- Ue = {};Ue.styleTagTransform = b(), Ue.setAttributes = h(), Ue.insert = v().bind(null, "head"), Ue.domAPI = f(), Ue.insertStyleElement = m(), je.use = function (t) {
- return Ue.options = t || {}, Ae++ || (Be = s()(Se.Z, Ue)), je;
- }, je.unuse = function () {
- Ae > 0 && ! --Ae && (Be(), Be = null);
- };var Ne = je;function Ve(t, n, e) {
- var r = t.slice();return r[8] = n[e], r;
- }function Ge(t, n, e) {
- var r = t.slice();return r[11] = n[e], r;
- }function We(t) {
- var n,
- e,
- r,
- _o5 = t[0].nodeType === Node.ELEMENT_NODE && Ke(t),
- i = t[0].nodeType === Node.TEXT_NODE && nr(t);return { c: function c() {
- n = (0, a.bGB)("div"), _o5 && _o5.c(), e = (0, a.DhX)(), i && i.c(), (0, a.Ljt)(n, "class", "vcelm-l"), (0, a.VHj)(n, "vc-actived", t[0]._isActived), (0, a.VHj)(n, "vc-toggle", t[0]._isExpand), (0, a.VHj)(n, "vcelm-noc", t[0]._isSingleLine);
- }, m: function m(t, c) {
- (0, a.$Tr)(t, n, c), _o5 && _o5.m(n, null), (0, a.R3I)(n, e), i && i.m(n, null), r = !0;
- }, p: function p(t, r) {
- t[0].nodeType === Node.ELEMENT_NODE ? _o5 ? (_o5.p(t, r), 1 & r && (0, a.Ui)(_o5, 1)) : ((_o5 = Ke(t)).c(), (0, a.Ui)(_o5, 1), _o5.m(n, e)) : _o5 && ((0, a.dvw)(), (0, a.etI)(_o5, 1, 1, function () {
- _o5 = null;
- }), (0, a.gbL)()), t[0].nodeType === Node.TEXT_NODE ? i ? i.p(t, r) : ((i = nr(t)).c(), i.m(n, null)) : i && (i.d(1), i = null), 1 & r && (0, a.VHj)(n, "vc-actived", t[0]._isActived), 1 & r && (0, a.VHj)(n, "vc-toggle", t[0]._isExpand), 1 & r && (0, a.VHj)(n, "vcelm-noc", t[0]._isSingleLine);
- }, i: function i(t) {
- r || ((0, a.Ui)(_o5), r = !0);
- }, o: function o(t) {
- (0, a.etI)(_o5), r = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), _o5 && _o5.d(), i && i.d();
- } };
- }function Ke(t) {
- var n,
- e,
- r,
- o,
- i,
- _c22,
- u,
- s,
- l,
- f,
- d = t[0].nodeName + "",
- v = (t[0].className || t[0].attributes.length) && Fe(t),
- _p6 = t[0]._isNullEndTag && Xe(t),
- h = t[0].childNodes.length > 0 && ze(t),
- g = !t[0]._isNullEndTag && tr(t);return { c: function c() {
- n = (0, a.bGB)("span"), e = (0, a.fLW)("<"), r = (0, a.fLW)(d), v && v.c(), o = (0, a.cSb)(), _p6 && _p6.c(), i = (0, a.fLW)(">"), h && h.c(), _c22 = (0, a.cSb)(), g && g.c(), u = (0, a.cSb)(), (0, a.Ljt)(n, "class", "vcelm-node");
- }, m: function m(d, _m5) {
- (0, a.$Tr)(d, n, _m5), (0, a.R3I)(n, e), (0, a.R3I)(n, r), v && v.m(n, null), (0, a.R3I)(n, o), _p6 && _p6.m(n, null), (0, a.R3I)(n, i), h && h.m(d, _m5), (0, a.$Tr)(d, _c22, _m5), g && g.m(d, _m5), (0, a.$Tr)(d, u, _m5), s = !0, l || (f = (0, a.oLt)(n, "click", t[2]), l = !0);
- }, p: function p(t, e) {
- (!s || 1 & e) && d !== (d = t[0].nodeName + "") && (0, a.rTO)(r, d), t[0].className || t[0].attributes.length ? v ? v.p(t, e) : ((v = Fe(t)).c(), v.m(n, o)) : v && (v.d(1), v = null), t[0]._isNullEndTag ? _p6 || ((_p6 = Xe(t)).c(), _p6.m(n, i)) : _p6 && (_p6.d(1), _p6 = null), t[0].childNodes.length > 0 ? h ? (h.p(t, e), 1 & e && (0, a.Ui)(h, 1)) : ((h = ze(t)).c(), (0, a.Ui)(h, 1), h.m(_c22.parentNode, _c22)) : h && ((0, a.dvw)(), (0, a.etI)(h, 1, 1, function () {
- h = null;
- }), (0, a.gbL)()), t[0]._isNullEndTag ? g && (g.d(1), g = null) : g ? g.p(t, e) : ((g = tr(t)).c(), g.m(u.parentNode, u));
- }, i: function i(t) {
- s || ((0, a.Ui)(h), s = !0);
- }, o: function o(t) {
- (0, a.etI)(h), s = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), v && v.d(), _p6 && _p6.d(), h && h.d(t), t && (0, a.ogt)(_c22), g && g.d(t), t && (0, a.ogt)(u), l = !1, f();
- } };
- }function Fe(t) {
- for (var n, e = t[0].attributes, r = [], o = 0; o < e.length; o += 1) {
- r[o] = Ze(Ge(t, e, o));
- }return { c: function c() {
- n = (0, a.bGB)("i");for (var t = 0; t < r.length; t += 1) {
- r[t].c();
- }(0, a.Ljt)(n, "class", "vcelm-k");
- }, m: function m(t, e) {
- (0, a.$Tr)(t, n, e);for (var o = 0; o < r.length; o += 1) {
- r[o].m(n, null);
- }
- }, p: function p(t, o) {
- if (1 & o) {
- var i;for (e = t[0].attributes, i = 0; i < e.length; i += 1) {
- var a = Ge(t, e, i);r[i] ? r[i].p(a, o) : (r[i] = Ze(a), r[i].c(), r[i].m(n, null));
- }for (; i < r.length; i += 1) {
- r[i].d(1);
- }r.length = e.length;
- }
- }, d: function d(t) {
- t && (0, a.ogt)(n), (0, a.RMB)(r, t);
- } };
- }function He(t) {
- var n,
- e = t[11].name + "";return { c: function c() {
- n = (0, a.fLW)(e);
- }, m: function m(t, e) {
- (0, a.$Tr)(t, n, e);
- }, p: function p(t, r) {
- 1 & r && e !== (e = t[11].name + "") && (0, a.rTO)(n, e);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function qe(t) {
- var n,
- e,
- r,
- o,
- i,
- _c23 = t[11].name + "",
- u = t[11].value + "";return { c: function c() {
- n = (0, a.fLW)(_c23), e = (0, a.fLW)('="'), r = (0, a.bGB)("i"), o = (0, a.fLW)(u), i = (0, a.fLW)('"'), (0, a.Ljt)(r, "class", "vcelm-v");
- }, m: function m(t, c) {
- (0, a.$Tr)(t, n, c), (0, a.$Tr)(t, e, c), (0, a.$Tr)(t, r, c), (0, a.R3I)(r, o), (0, a.$Tr)(t, i, c);
- }, p: function p(t, e) {
- 1 & e && _c23 !== (_c23 = t[11].name + "") && (0, a.rTO)(n, _c23), 1 & e && u !== (u = t[11].value + "") && (0, a.rTO)(o, u);
- }, d: function d(t) {
- t && (0, a.ogt)(n), t && (0, a.ogt)(e), t && (0, a.ogt)(r), t && (0, a.ogt)(i);
- } };
- }function Ze(t) {
- var n, e;function r(t, n) {
- return "" !== t[11].value ? qe : He;
- }var o = r(t),
- i = o(t);return { c: function c() {
- n = (0, a.fLW)(" \n "), i.c(), e = (0, a.cSb)();
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), i.m(t, r), (0, a.$Tr)(t, e, r);
- }, p: function p(t, n) {
- o === (o = r(t)) && i ? i.p(t, n) : (i.d(1), (i = o(t)) && (i.c(), i.m(e.parentNode, e)));
- }, d: function d(t) {
- t && (0, a.ogt)(n), i.d(t), t && (0, a.ogt)(e);
- } };
- }function Xe(t) {
- var n;return { c: function c() {
- n = (0, a.fLW)("/");
- }, m: function m(t, e) {
- (0, a.$Tr)(t, n, e);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function ze(t) {
- var n,
- e,
- r,
- _o6,
- i = [Je, Ye],
- c = [];function u(t, n) {
- return t[0]._isExpand ? 1 : 0;
- }return n = u(t), e = c[n] = i[n](t), { c: function c() {
- e.c(), r = (0, a.cSb)();
- }, m: function m(t, e) {
- c[n].m(t, e), (0, a.$Tr)(t, r, e), _o6 = !0;
- }, p: function p(t, o) {
- var s = n;(n = u(t)) === s ? c[n].p(t, o) : ((0, a.dvw)(), (0, a.etI)(c[s], 1, 1, function () {
- c[s] = null;
- }), (0, a.gbL)(), (e = c[n]) ? e.p(t, o) : (e = c[n] = i[n](t)).c(), (0, a.Ui)(e, 1), e.m(r.parentNode, r));
- }, i: function i(t) {
- _o6 || ((0, a.Ui)(e), _o6 = !0);
- }, o: function o(t) {
- (0, a.etI)(e), _o6 = !1;
- }, d: function d(t) {
- c[n].d(t), t && (0, a.ogt)(r);
- } };
- }function Ye(t) {
- for (var n, e, r = t[0].childNodes, _o7 = [], i = 0; i < r.length; i += 1) {
- _o7[i] = Qe(Ve(t, r, i));
- }var c = function c(t) {
- return (0, a.etI)(_o7[t], 1, 1, function () {
- _o7[t] = null;
- });
- };return { c: function c() {
- for (var t = 0; t < _o7.length; t += 1) {
- _o7[t].c();
- }n = (0, a.cSb)();
- }, m: function m(t, r) {
- for (var i = 0; i < _o7.length; i += 1) {
- _o7[i].m(t, r);
- }(0, a.$Tr)(t, n, r), e = !0;
- }, p: function p(t, e) {
- if (1 & e) {
- var i;for (r = t[0].childNodes, i = 0; i < r.length; i += 1) {
- var u = Ve(t, r, i);_o7[i] ? (_o7[i].p(u, e), (0, a.Ui)(_o7[i], 1)) : (_o7[i] = Qe(u), _o7[i].c(), (0, a.Ui)(_o7[i], 1), _o7[i].m(n.parentNode, n));
- }for ((0, a.dvw)(), i = r.length; i < _o7.length; i += 1) {
- c(i);
- }(0, a.gbL)();
- }
- }, i: function i(t) {
- if (!e) {
- for (var n = 0; n < r.length; n += 1) {
- (0, a.Ui)(_o7[n]);
- }e = !0;
- }
- }, o: function o(t) {
- _o7 = _o7.filter(Boolean);for (var n = 0; n < _o7.length; n += 1) {
- (0, a.etI)(_o7[n]);
- }e = !1;
- }, d: function d(t) {
- (0, a.RMB)(_o7, t), t && (0, a.ogt)(n);
- } };
- }function Je(t) {
- var n;return { c: function c() {
- n = (0, a.fLW)("...");
- }, m: function m(t, e) {
- (0, a.$Tr)(t, n, e);
- }, p: a.ZTd, i: a.ZTd, o: a.ZTd, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function Qe(t) {
- var n, e, r;return (n = new or({ props: { node: t[8] } })).$on("toggleNode", t[4]), { c: function c() {
- (0, a.YCL)(n.$$.fragment), e = (0, a.DhX)();
- }, m: function m(t, o) {
- (0, a.yef)(n, t, o), (0, a.$Tr)(t, e, o), r = !0;
- }, p: function p(t, e) {
- var r = {};1 & e && (r.node = t[8]), n.$set(r);
- }, i: function i(t) {
- r || ((0, a.Ui)(n.$$.fragment, t), r = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), r = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t), t && (0, a.ogt)(e);
- } };
- }function tr(t) {
- var n,
- e,
- r,
- o,
- i = t[0].nodeName + "";return { c: function c() {
- n = (0, a.bGB)("span"), e = (0, a.fLW)("</"), r = (0, a.fLW)(i), o = (0, a.fLW)(">"), (0, a.Ljt)(n, "class", "vcelm-node");
- }, m: function m(t, i) {
- (0, a.$Tr)(t, n, i), (0, a.R3I)(n, e), (0, a.R3I)(n, r), (0, a.R3I)(n, o);
- }, p: function p(t, n) {
- 1 & n && i !== (i = t[0].nodeName + "") && (0, a.rTO)(r, i);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function nr(t) {
- var n,
- e,
- r = t[1](t[0].textContent) + "";return { c: function c() {
- n = (0, a.bGB)("span"), e = (0, a.fLW)(r), (0, a.Ljt)(n, "class", "vcelm-t vcelm-noc");
- }, m: function m(t, r) {
- (0, a.$Tr)(t, n, r), (0, a.R3I)(n, e);
- }, p: function p(t, n) {
- 1 & n && r !== (r = t[1](t[0].textContent) + "") && (0, a.rTO)(e, r);
- }, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function er(t) {
- var n,
- e,
- r = t[0] && We(t);return { c: function c() {
- r && r.c(), n = (0, a.cSb)();
- }, m: function m(t, o) {
- r && r.m(t, o), (0, a.$Tr)(t, n, o), e = !0;
- }, p: function p(t, e) {
- var o = e[0];t[0] ? r ? (r.p(t, o), 1 & o && (0, a.Ui)(r, 1)) : ((r = We(t)).c(), (0, a.Ui)(r, 1), r.m(n.parentNode, n)) : r && ((0, a.dvw)(), (0, a.etI)(r, 1, 1, function () {
- r = null;
- }), (0, a.gbL)());
- }, i: function i(t) {
- e || ((0, a.Ui)(r), e = !0);
- }, o: function o(t) {
- (0, a.etI)(r), e = !1;
- }, d: function d(t) {
- r && r.d(t), t && (0, a.ogt)(n);
- } };
- }function rr(t, n, e) {
- var r;(0, a.FIv)(t, $e, function (t) {
- return e(3, r = t);
- });var o = n.node,
- i = (0, c.x)(),
- u = ["br", "hr", "img", "input", "link", "meta"];(0, c.H3)(function () {
- Ne.use();
- }), (0, c.ev)(function () {
- Ne.unuse();
- });return t.$$set = function (t) {
- "node" in t && e(0, o = t.node);
- }, t.$$.update = function () {
- 9 & t.$$.dirty && o && (e(0, o._isActived = o === r, o), e(0, o._isNullEndTag = function (t) {
- return u.indexOf(t.nodeName) > -1;
- }(o), o), e(0, o._isSingleLine = 0 === o.childNodes.length || o._isNullEndTag, o));
- }, [o, function (t) {
- return t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
- }, function () {
- o._isNullEndTag || (e(0, o._isExpand = !o._isExpand, o), i("toggleNode", { node: o }));
- }, r, function (n) {
- a.cKT.call(this, t, n);
- }];
- }var or = function (n) {
- function e(t) {
- var e;return e = n.call(this) || this, (0, a.S1n)((0, o.Z)(e), t, rr, er, a.N8, { node: 0 }), e;
- }return (0, i.Z)(e, n), (0, t.Z)(e, [{ key: "node", get: function get() {
- return this.$$.ctx[0];
- }, set: function set(t) {
- this.$$set({ node: t }), (0, a.yl1)();
- } }]), e;
- }(a.f_C),
- ir = or;function ar(t) {
- var n, e, r;return (e = new ir({ props: { node: t[0] } })).$on("toggleNode", t[1]), { c: function c() {
- n = (0, a.bGB)("div"), (0, a.YCL)(e.$$.fragment), (0, a.Ljt)(n, "class", "vc-plugin-content");
- }, m: function m(t, o) {
- (0, a.$Tr)(t, n, o), (0, a.yef)(e, n, null), r = !0;
- }, p: function p(t, n) {
- var r = {};1 & n[0] && (r.node = t[0]), e.$set(r);
- }, i: function i(t) {
- r || ((0, a.Ui)(e.$$.fragment, t), r = !0);
- }, o: function o(t) {
- (0, a.etI)(e.$$.fragment, t), r = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), (0, a.vpE)(e);
- } };
- }function cr(t, n, e) {
- var r;return (0, a.FIv)(t, Me, function (t) {
- return e(0, r = t);
- }), [r, function (n) {
- a.cKT.call(this, t, n);
- }];
- }var ur = function (t) {
- function n(n) {
- var e;return e = t.call(this) || this, (0, a.S1n)((0, o.Z)(e), n, cr, ar, a.N8, {}), e;
- }return (0, i.Z)(n, t), n;
- }(a.f_C),
- sr = ur,
- lr = function (t) {
- function n(n, e, r) {
- var o;return void 0 === r && (r = {}), (o = t.call(this, n, e, sr, r) || this).isInited = !1, o.observer = void 0, o.nodeMap = void 0, o;
- }(0, i.Z)(n, t);var e = n.prototype;return e.onShow = function () {
- this.isInited || this._init();
- }, e.onRemove = function () {
- t.prototype.onRemove.call(this), this.isInited && (this.observer.disconnect(), this.isInited = !1, this.nodeMap = void 0, Me.set(void 0));
- }, e.onAddTool = function (t) {
- var n = this;t([{ name: "Expand", global: !1, onClick: function onClick(t) {
- n._expandActivedNode();
- } }, { name: "Collapse", global: !1, onClick: function onClick(t) {
- n._collapseActivedNode();
- } }]);
- }, e._init = function () {
- var t = this;this.isInited = !0, this.nodeMap = new WeakMap();var n = this._generateVNode(document.documentElement);n._isExpand = !0, $e.set(n), Me.set(n), this.compInstance.$on("toggleNode", function (t) {
- $e.set(t.detail.node);
- }), this.observer = new (Pe())(function (n) {
- for (var e = 0; e < n.length; e++) {
- var r = n[e];t._isInVConsole(r.target) || t._handleMutation(r);
- }
- }), this.observer.observe(document.documentElement, { attributes: !0, childList: !0, characterData: !0, subtree: !0 });
- }, e._handleMutation = function (t) {
- switch (t.type) {case "childList":
- t.removedNodes.length > 0 && this._onChildRemove(t), t.addedNodes.length > 0 && this._onChildAdd(t);break;case "attributes":
- this._onAttributesChange(t);break;case "characterData":
- this._onCharacterDataChange(t);}
- }, e._onChildRemove = function (t) {
- var n = this.nodeMap.get(t.target);if (n) {
- for (var e = 0; e < t.removedNodes.length; e++) {
- var r = this.nodeMap.get(t.removedNodes[e]);if (r) {
- for (var o = 0; o < n.childNodes.length; o++) {
- if (n.childNodes[o] === r) {
- n.childNodes.splice(o, 1);break;
- }
- }this.nodeMap.delete(t.removedNodes[e]);
- }
- }this._refreshStore();
- }
- }, e._onChildAdd = function (t) {
- var n = this.nodeMap.get(t.target);if (n) {
- for (var e = 0; e < t.addedNodes.length; e++) {
- var r = t.addedNodes[e],
- o = this._generateVNode(r);if (o) {
- var i = void 0,
- a = r;do {
- if (null === a.nextSibling) break;a.nodeType === Node.ELEMENT_NODE && (i = this.nodeMap.get(a.nextSibling) || void 0), a = a.nextSibling;
- } while (void 0 === i);if (void 0 === i) n.childNodes.push(o);else for (var c = 0; c < n.childNodes.length; c++) {
- if (n.childNodes[c] === i) {
- n.childNodes.splice(c, 0, o);break;
- }
- }
- }
- }this._refreshStore();
- }
- }, e._onAttributesChange = function (t) {
- this._updateVNodeAttributes(t.target), this._refreshStore();
- }, e._onCharacterDataChange = function (t) {
- var n = this.nodeMap.get(t.target);n && (n.textContent = t.target.textContent, this._refreshStore());
- }, e._generateVNode = function (t) {
- if (!this._isIgnoredNode(t)) {
- var n = { nodeType: t.nodeType, nodeName: t.nodeName.toLowerCase(), textContent: "", id: "", className: "", attributes: [], childNodes: [] };if (this.nodeMap.set(t, n), n.nodeType != t.TEXT_NODE && n.nodeType != t.DOCUMENT_TYPE_NODE || (n.textContent = t.textContent), t.childNodes.length > 0) {
- n.childNodes = [];for (var e = 0; e < t.childNodes.length; e++) {
- var r = this._generateVNode(t.childNodes[e]);r && n.childNodes.push(r);
- }
- }return this._updateVNodeAttributes(t), n;
- }
- }, e._updateVNodeAttributes = function (t) {
- var n = this.nodeMap.get(t);if (n && t instanceof Element && (n.id = t.id || "", n.className = t.className || "", t.hasAttributes && t.hasAttributes())) {
- n.attributes = [];for (var e = 0; e < t.attributes.length; e++) {
- n.attributes.push({ name: t.attributes[e].name, value: t.attributes[e].value || "" });
- }
- }
- }, e._expandActivedNode = function () {
- var t = (0, kn.U2)($e);if (t._isExpand) for (var n = 0; n < t.childNodes.length; n++) {
- t.childNodes[n]._isExpand = !0;
- } else t._isExpand = !0;this._refreshStore();
- }, e._collapseActivedNode = function () {
- var t = (0, kn.U2)($e);if (t._isExpand) {
- for (var n = !1, e = 0; e < t.childNodes.length; e++) {
- t.childNodes[e]._isExpand && (n = !0, t.childNodes[e]._isExpand = !1);
- }n || (t._isExpand = !1), this._refreshStore();
- }
- }, e._isIgnoredNode = function (t) {
- if (t.nodeType === t.TEXT_NODE) {
- if ("" === t.textContent.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$|\n+/g, "")) return !0;
- } else if (t.nodeType === t.COMMENT_NODE) return !0;return !1;
- }, e._isInVConsole = function (t) {
- for (var n = t; void 0 !== n;) {
- if ("__vconsole" == n.id) return !0;n = n.parentElement || void 0;
- }return !1;
- }, e._refreshStore = function () {
- Me.update(function (t) {
- return t;
- });
- }, n;
- }(nt);function fr(t, n, e, r, o, i, a) {
- try {
- var c = t[i](a),
- u = c.value;
- } catch (t) {
- return void e(t);
- }c.done ? n(u) : Promise.resolve(u).then(r, o);
- }function dr(t) {
- return function () {
- var n = this,
- e = arguments;return new Promise(function (r, o) {
- var i = t.apply(n, e);function a(t) {
- fr(i, r, o, a, c, "next", t);
- }function c(t) {
- fr(i, r, o, a, c, "throw", t);
- }a(void 0);
- });
- };
- }var vr = __webpack_require__(4264),
- pr = __webpack_require__.n(vr);function hr(t, n, e) {
- return n in t ? Object.defineProperty(t, n, { value: e, enumerable: !0, configurable: !0, writable: !0 }) : t[n] = e, t;
- }function gr(t, n) {
- var e = Object.keys(t);if (Object.getOwnPropertySymbols) {
- var r = Object.getOwnPropertySymbols(t);n && (r = r.filter(function (n) {
- return Object.getOwnPropertyDescriptor(t, n).enumerable;
- })), e.push.apply(e, r);
- }return e;
- }function mr(t) {
- for (var n = 1; n < arguments.length; n++) {
- var e = null != arguments[n] ? arguments[n] : {};n % 2 ? gr(Object(e), !0).forEach(function (n) {
- hr(t, n, e[n]);
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(e)) : gr(Object(e)).forEach(function (n) {
- Object.defineProperty(t, n, Object.getOwnPropertyDescriptor(e, n));
- });
- }return t;
- }var _r = function _r(t) {
- if (!t || 0 === t.length) return {};for (var n = {}, e = t.split(";"), r = 0; r < e.length; r++) {
- var o = e[r].indexOf("=");if (!(o < 0)) {
- var i = e[r].substring(0, o).replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""),
- a = e[r].substring(o + 1, e[r].length);try {
- i = decodeURIComponent(i);
- } catch (t) {}try {
- a = decodeURIComponent(a);
- } catch (t) {}n[i] = a;
- }
- }return n;
- },
- br = function br(t, n, e) {
- "undefined" != typeof document && void 0 !== document.cookie && (document.cookie = encodeURIComponent(t) + "=" + encodeURIComponent(n) + function (t) {
- void 0 === t && (t = {});var n = t,
- e = n.path,
- r = n.domain,
- o = n.expires,
- i = n.secure,
- a = n.sameSite,
- c = ["none", "lax", "strict"].indexOf((a || "").toLowerCase()) > -1 ? a : null;return [null == e ? "" : ";path=" + e, null == r ? "" : ";domain=" + r, null == o ? "" : ";expires=" + o.toUTCString(), void 0 === i || !1 === i ? "" : ";secure", null === c ? "" : ";SameSite=" + c].join("");
- }(e));
- },
- yr = function yr() {
- return "undefined" == typeof document || void 0 === document.cookie ? "" : document.cookie;
- },
- wr = function () {
- function n() {}var e = n.prototype;return e.key = function (t) {
- return t < this.keys.length ? this.keys[t] : null;
- }, e.setItem = function (t, n, e) {
- br(t, n, e);
- }, e.getItem = function (t) {
- var n = _r(yr());return Object.prototype.hasOwnProperty.call(n, t) ? n[t] : null;
- }, e.removeItem = function (t, n) {
- for (var e, r, o = ["", "/"], i = (null == (e = location) || null == (r = e.hostname) ? void 0 : r.split(".")) || []; i.length > 1;) {
- o.push(i.join(".")), i.shift();
- }for (var a = 0; a < o.length; a++) {
- for (var c, u, s = (null == (c = location) || null == (u = c.pathname) ? void 0 : u.split("/")) || [], l = ""; s.length > 0;) {
- l += ("/" === l ? "" : "/") + s.shift();var f = mr(mr({}, n), {}, { path: l, domain: o[a], expires: new Date(0) });br(t, "", f);
- }
- }
- }, e.clear = function () {
- for (var t = [].concat(this.keys), n = 0; n < t.length; n++) {
- this.removeItem(t[n]);
- }
- }, (0, t.Z)(n, [{ key: "length", get: function get() {
- return this.keys.length;
- } }, { key: "keys", get: function get() {
- var t = _r(yr());return Object.keys(t).sort();
- } }]), n;
- }(),
- Er = function () {
- function e() {
- this.keys = [], this.currentSize = 0, this.limitSize = 0;
- }var r = e.prototype;return r.key = function (t) {
- return t < this.keys.length ? this.keys[t] : null;
- }, r.prepare = function () {
- var t = dr(pr().mark(function t() {
- var e = this;return pr().wrap(function (t) {
- for (;;) {
- switch (t.prev = t.next) {case 0:
- return t.abrupt("return", new Promise(function (t, r) {
- (0, n.qt)("getStorageInfo", { success: function success(n) {
- e.keys = n ? n.keys.sort() : [], e.currentSize = n ? n.currentSize : 0, e.limitSize = n ? n.limitSize : 0, t(!0);
- }, fail: function fail() {
- r(!1);
- } });
- }));case 1:case "end":
- return t.stop();}
- }
- }, t);
- }));return function () {
- return t.apply(this, arguments);
- };
- }(), r.getItem = function (t) {
- return new Promise(function (e, r) {
- (0, n.qt)("getStorage", { key: t, success: function success(t) {
- var n = t.data;if ("object" == _typeof(t.data)) try {
- n = JSON.stringify(t.data);
- } catch (t) {}e(n);
- }, fail: function fail(t) {
- r(t);
- } });
- });
- }, r.setItem = function (t, e) {
- return new Promise(function (r, o) {
- (0, n.qt)("setStorage", { key: t, data: e, success: function success(t) {
- r(t);
- }, fail: function fail(t) {
- o(t);
- } });
- });
- }, r.removeItem = function (t) {
- return new Promise(function (e, r) {
- (0, n.qt)("removeStorage", { key: t, success: function success(t) {
- e(t);
- }, fail: function fail(t) {
- r(t);
- } });
- });
- }, r.clear = function () {
- return new Promise(function (t, e) {
- (0, n.qt)("clearStorage", { success: function success(n) {
- t(n);
- }, fail: function fail(t) {
- e(t);
- } });
- });
- }, (0, t.Z)(e, [{ key: "length", get: function get() {
- return this.keys.length;
- } }]), e;
- }(),
- Lr = { updateTime: (0, kn.fZ)(0), activedName: (0, kn.fZ)(null), defaultStorages: (0, kn.fZ)(["cookies", "localStorage", "sessionStorage"]) },
- Tr = function (e) {
- function r() {
- var t;return (t = e.call(this) || this).storage = new Map(), Lr.activedName.subscribe(function (t) {
- var n = (0, kn.U2)(Lr.defaultStorages);n.length > 0 && -1 === n.indexOf(t) && Lr.activedName.set(n[0]);
- }), Lr.defaultStorages.subscribe(function (n) {
- -1 === n.indexOf((0, kn.U2)(Lr.activedName)) && Lr.activedName.set(n[0]), t.updateEnabledStorages();
- }), t;
- }(0, i.Z)(r, e);var o = r.prototype;return o.getItem = function () {
- var t = dr(pr().mark(function t(n) {
- return pr().wrap(function (t) {
- for (;;) {
- switch (t.prev = t.next) {case 0:
- if (this.activedStorage) {
- t.next = 2;break;
- }return t.abrupt("return", "");case 2:
- return t.next = 4, this.promisify(this.activedStorage.getItem(n));case 4:
- return t.abrupt("return", t.sent);case 5:case "end":
- return t.stop();}
- }
- }, t, this);
- }));return function (n) {
- return t.apply(this, arguments);
- };
- }(), o.setItem = function () {
- var t = dr(pr().mark(function t(n, e) {
- var r;return pr().wrap(function (t) {
- for (;;) {
- switch (t.prev = t.next) {case 0:
- if (this.activedStorage) {
- t.next = 2;break;
- }return t.abrupt("return");case 2:
- return t.next = 4, this.promisify(this.activedStorage.setItem(n, e));case 4:
- return r = t.sent, this.refresh(), t.abrupt("return", r);case 7:case "end":
- return t.stop();}
- }
- }, t, this);
- }));return function (n, e) {
- return t.apply(this, arguments);
- };
- }(), o.removeItem = function () {
- var t = dr(pr().mark(function t(n) {
- var e;return pr().wrap(function (t) {
- for (;;) {
- switch (t.prev = t.next) {case 0:
- if (this.activedStorage) {
- t.next = 2;break;
- }return t.abrupt("return");case 2:
- return t.next = 4, this.promisify(this.activedStorage.removeItem(n));case 4:
- return e = t.sent, this.refresh(), t.abrupt("return", e);case 7:case "end":
- return t.stop();}
- }
- }, t, this);
- }));return function (n) {
- return t.apply(this, arguments);
- };
- }(), o.clear = function () {
- var t = dr(pr().mark(function t() {
- var n;return pr().wrap(function (t) {
- for (;;) {
- switch (t.prev = t.next) {case 0:
- if (this.activedStorage) {
- t.next = 2;break;
- }return t.abrupt("return");case 2:
- return t.next = 4, this.promisify(this.activedStorage.clear());case 4:
- return n = t.sent, this.refresh(), t.abrupt("return", n);case 7:case "end":
- return t.stop();}
- }
- }, t, this);
- }));return function () {
- return t.apply(this, arguments);
- };
- }(), o.refresh = function () {
- Lr.updateTime.set(Date.now());
- }, o.getEntries = function () {
- var t = dr(pr().mark(function t() {
- var n, e, r, o, i;return pr().wrap(function (t) {
- for (;;) {
- switch (t.prev = t.next) {case 0:
- if (n = this.activedStorage) {
- t.next = 3;break;
- }return t.abrupt("return", []);case 3:
- if ("function" != typeof n.prepare) {
- t.next = 6;break;
- }return t.next = 6, n.prepare();case 6:
- e = [], r = 0;case 8:
- if (!(r < n.length)) {
- t.next = 17;break;
- }return o = n.key(r), t.next = 12, this.getItem(o);case 12:
- i = t.sent, e.push([o, i]);case 14:
- r++, t.next = 8;break;case 17:
- return t.abrupt("return", e);case 18:case "end":
- return t.stop();}
- }
- }, t, this);
- }));return function () {
- return t.apply(this, arguments);
- };
- }(), o.updateEnabledStorages = function () {
- var t = (0, kn.U2)(Lr.defaultStorages);t.indexOf("cookies") > -1 ? void 0 !== document.cookie && this.storage.set("cookies", new wr()) : this.deleteStorage("cookies"), t.indexOf("localStorage") > -1 ? window.localStorage && this.storage.set("localStorage", window.localStorage) : this.deleteStorage("localStorage"), t.indexOf("sessionStorage") > -1 ? window.sessionStorage && this.storage.set("sessionStorage", window.sessionStorage) : this.deleteStorage("sessionStorage"), t.indexOf("wxStorage") > -1 ? (0, n.H_)() && this.storage.set("wxStorage", new Er()) : this.deleteStorage("wxStorage");
- }, o.promisify = function (t) {
- return "string" == typeof t || null == t ? Promise.resolve(t) : t;
- }, o.deleteStorage = function (t) {
- this.storage.has(t) && this.storage.delete(t);
- }, (0, t.Z)(r, [{ key: "activedStorage", get: function get() {
- return this.storage.get((0, kn.U2)(Lr.activedName));
- } }]), r;
- }(Pn.N);function Or(t, n, e) {
- var r = t.slice();return r[20] = n[e][0], r[21] = n[e][1], r[23] = e, r;
- }function Cr(t) {
- var n;return { c: function c() {
- n = (0, a.bGB)("div"), (0, a.Ljt)(n, "class", "vc-plugin-empty");
- }, m: function m(t, e) {
- (0, a.$Tr)(t, n, e);
- }, p: a.ZTd, d: function d(t) {
- t && (0, a.ogt)(n);
- } };
- }function xr(t) {
- var n,
- e,
- r,
- o,
- i,
- _c24 = t[20] + "",
- u = t[5](t[21]) + "";return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.fLW)(_c24), r = (0, a.DhX)(), o = (0, a.bGB)("div"), i = (0, a.fLW)(u), (0, a.Ljt)(n, "class", "vc-table-col"), (0, a.Ljt)(o, "class", "vc-table-col vc-table-col-2");
- }, m: function m(t, c) {
- (0, a.$Tr)(t, n, c), (0, a.R3I)(n, e), (0, a.$Tr)(t, r, c), (0, a.$Tr)(t, o, c), (0, a.R3I)(o, i);
- }, p: function p(t, n) {
- 1 & n && _c24 !== (_c24 = t[20] + "") && (0, a.rTO)(e, _c24), 1 & n && u !== (u = t[5](t[21]) + "") && (0, a.rTO)(i, u);
- }, d: function d(t) {
- t && (0, a.ogt)(n), t && (0, a.ogt)(r), t && (0, a.ogt)(o);
- } };
- }function Ir(t) {
- var n, e, r, o, i, c, u;return { c: function c() {
- n = (0, a.bGB)("div"), e = (0, a.bGB)("textarea"), r = (0, a.DhX)(), o = (0, a.bGB)("div"), i = (0, a.bGB)("textarea"), (0, a.Ljt)(e, "class", "vc-table-input"), (0, a.Ljt)(n, "class", "vc-table-col"), (0, a.Ljt)(i, "class", "vc-table-input"), (0, a.Ljt)(o, "class", "vc-table-col vc-table-col-2");
- }, m: function m(s, l) {
- (0, a.$Tr)(s, n, l), (0, a.R3I)(n, e), (0, a.BmG)(e, t[2]), (0, a.$Tr)(s, r, l), (0, a.$Tr)(s, o, l), (0, a.R3I)(o, i), (0, a.BmG)(i, t[3]), c || (u = [(0, a.oLt)(e, "input", t[11]), (0, a.oLt)(i, "input", t[12])], c = !0);
- }, p: function p(t, n) {
- 4 & n && (0, a.BmG)(e, t[2]), 8 & n && (0, a.BmG)(i, t[3]);
- }, d: function d(t) {
- t && (0, a.ogt)(n), t && (0, a.ogt)(r), t && (0, a.ogt)(o), c = !1, (0, a.j7q)(u);
- } };
- }function Dr(t) {
- var n, e, r, o, _i7, c;return (n = new ot.Z({ props: { name: "delete" } })).$on("click", function () {
- return t[14](t[20]);
- }), r = new ut({ props: { content: [t[20], t[21]].join("=") } }), (_i7 = new ot.Z({ props: { name: "edit" } })).$on("click", function () {
- return t[15](t[20], t[21], t[23]);
- }), { c: function c() {
- (0, a.YCL)(n.$$.fragment), e = (0, a.DhX)(), (0, a.YCL)(r.$$.fragment), o = (0, a.DhX)(), (0, a.YCL)(_i7.$$.fragment);
- }, m: function m(t, u) {
- (0, a.yef)(n, t, u), (0, a.$Tr)(t, e, u), (0, a.yef)(r, t, u), (0, a.$Tr)(t, o, u), (0, a.yef)(_i7, t, u), c = !0;
- }, p: function p(n, e) {
- t = n;var o = {};1 & e && (o.content = [t[20], t[21]].join("=")), r.$set(o);
- }, i: function i(t) {
- c || ((0, a.Ui)(n.$$.fragment, t), (0, a.Ui)(r.$$.fragment, t), (0, a.Ui)(_i7.$$.fragment, t), c = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), (0, a.etI)(r.$$.fragment, t), (0, a.etI)(_i7.$$.fragment, t), c = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t), t && (0, a.ogt)(e), (0, a.vpE)(r, t), t && (0, a.ogt)(o), (0, a.vpE)(_i7, t);
- } };
- }function Rr(t) {
- var n, e, r, _o8;return (n = new ot.Z({ props: { name: "cancel" } })).$on("click", t[9]), (r = new ot.Z({ props: { name: "done" } })).$on("click", function () {
- return t[13](t[20]);
- }), { c: function c() {
- (0, a.YCL)(n.$$.fragment), e = (0, a.DhX)(), (0, a.YCL)(r.$$.fragment);
- }, m: function m(t, i) {
- (0, a.yef)(n, t, i), (0, a.$Tr)(t, e, i), (0, a.yef)(r, t, i), _o8 = !0;
- }, p: function p(n, e) {
- t = n;
- }, i: function i(t) {
- _o8 || ((0, a.Ui)(n.$$.fragment, t), (0, a.Ui)(r.$$.fragment, t), _o8 = !0);
- }, o: function o(t) {
- (0, a.etI)(n.$$.fragment, t), (0, a.etI)(r.$$.fragment, t), _o8 = !1;
- }, d: function d(t) {
- (0, a.vpE)(n, t), t && (0, a.ogt)(e), (0, a.vpE)(r, t);
- } };
- }function kr(t) {
- var n, e, r, o, _i8, _c25, u;function s(t, n) {
- return t[1] === t[23] ? Ir : xr;
- }var l = s(t),
- f = l(t),
- d = [Rr, Dr],
- v = [];function _p7(t, n) {
- return t[1] === t[23] ? 0 : 1;
- }return o = _p7(t), _i8 = v[o] = d[o](t), { c: function c() {
- n = (0, a.bGB)("div"), f.c(), e = (0, a.DhX)(), r = (0, a.bGB)("div"), _i8.c(), _c25 = (0, a.DhX)(), (0, a.Ljt)(r, "class", "vc-table-col vc-table-col-1 vc-table-action"), (0, a.Ljt)(n, "class", "vc-table-row");
- }, m: function m(t, i) {
- (0, a.$Tr)(t, n, i), f.m(n, null), (0, a.R3I)(n, e), (0, a.R3I)(n, r), v[o].m(r, null), (0, a.R3I)(n, _c25), u = !0;
- }, p: function p(t, c) {
- l === (l = s(t)) && f ? f.p(t, c) : (f.d(1), (f = l(t)) && (f.c(), f.m(n, e)));var u = o;(o = _p7(t)) === u ? v[o].p(t, c) : ((0, a.dvw)(), (0, a.etI)(v[u], 1, 1, function () {
- v[u] = null;
- }), (0, a.gbL)(), (_i8 = v[o]) ? _i8.p(t, c) : (_i8 = v[o] = d[o](t)).c(), (0, a.Ui)(_i8, 1), _i8.m(r, null));
- }, i: function i(t) {
- u || ((0, a.Ui)(_i8), u = !0);
- }, o: function o(t) {
- (0, a.etI)(_i8), u = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), f.d(), v[o].d();
- } };
- }function Pr(t) {
- for (var n, e, r, _o9, _i9 = t[0], _c26 = [], u = 0; u < _i9.length; u += 1) {
- _c26[u] = kr(Or(t, _i9, u));
- }var s = function s(t) {
- return (0, a.etI)(_c26[t], 1, 1, function () {
- _c26[t] = null;
- });
- },
- l = null;return _i9.length || (l = Cr()), { c: function c() {
- n = (0, a.bGB)("div"), (e = (0, a.bGB)("div")).innerHTML = '<div class="vc-table-col">Key</div> \n <div class="vc-table-col vc-table-col-2">Value</div> \n <div class="vc-table-col vc-table-col-1 vc-table-action"></div>', r = (0, a.DhX)();for (var t = 0; t < _c26.length; t += 1) {
- _c26[t].c();
- }l && l.c(), (0, a.Ljt)(e, "class", "vc-table-row"), (0, a.Ljt)(n, "class", "vc-table");
- }, m: function m(t, i) {
- (0, a.$Tr)(t, n, i), (0, a.R3I)(n, e), (0, a.R3I)(n, r);for (var u = 0; u < _c26.length; u += 1) {
- _c26[u].m(n, null);
- }l && l.m(n, null), _o9 = !0;
- }, p: function p(t, e) {
- var r = e[0];if (1007 & r) {
- var o;for (_i9 = t[0], o = 0; o < _i9.length; o += 1) {
- var u = Or(t, _i9, o);_c26[o] ? (_c26[o].p(u, r), (0, a.Ui)(_c26[o], 1)) : (_c26[o] = kr(u), _c26[o].c(), (0, a.Ui)(_c26[o], 1), _c26[o].m(n, null));
- }for ((0, a.dvw)(), o = _i9.length; o < _c26.length; o += 1) {
- s(o);
- }(0, a.gbL)(), !_i9.length && l ? l.p(t, r) : _i9.length ? l && (l.d(1), l = null) : ((l = Cr()).c(), l.m(n, null));
- }
- }, i: function i(t) {
- if (!_o9) {
- for (var n = 0; n < _i9.length; n += 1) {
- (0, a.Ui)(_c26[n]);
- }_o9 = !0;
- }
- }, o: function o(t) {
- _c26 = _c26.filter(Boolean);for (var n = 0; n < _c26.length; n += 1) {
- (0, a.etI)(_c26[n]);
- }_o9 = !1;
- }, d: function d(t) {
- t && (0, a.ogt)(n), (0, a.RMB)(_c26, t), l && l.d();
- } };
- }function Mr(t, e, r) {
- var o,
- i = this && this.__awaiter || function (t, n, e, r) {
- return new (e || (e = Promise))(function (o, i) {
- function a(t) {
- try {
- u(r.next(t));
- } catch (t) {
- i(t);
- }
- }function c(t) {
- try {
- u(r.throw(t));
- } catch (t) {
- i(t);
- }
- }function u(t) {
- var n;t.done ? o(t.value) : (n = t.value, n instanceof e ? n : new e(function (t) {
- t(n);
- })).then(a, c);
- }u((r = r.apply(t, n || [])).next());
- });
- },
- c = Tr.getSingleton(Tr, "VConsoleStorageModel"),
- u = Lr.updateTime;(0, a.FIv)(t, u, function (t) {
- return r(10, o = t);
- });var s = [],
- l = -1,
- f = "",
- d = "",
- v = function v() {
- r(1, l = -1), r(2, f = ""), r(3, d = "");
- },
- p = function p(t) {
- return i(void 0, void 0, void 0, pr().mark(function n() {
- return pr().wrap(function (n) {
- for (;;) {
- switch (n.prev = n.next) {case 0:
- return n.next = 2, c.removeItem(t);case 2:case "end":
- return n.stop();}
- }
- }, n);
- }));
- },
- h = function h(t) {
- return i(void 0, void 0, void 0, pr().mark(function n() {
- return pr().wrap(function (n) {
- for (;;) {
- switch (n.prev = n.next) {case 0:
- if (f === t) {
- n.next = 3;break;
- }return n.next = 3, c.removeItem(t);case 3:
- c.setItem(f, d), v();case 5:case "end":
- return n.stop();}
- }
- }, n);
- }));
- },
- g = function g(t, n, e) {
- return i(void 0, void 0, void 0, pr().mark(function o() {
- return pr().wrap(function (o) {
- for (;;) {
- switch (o.prev = o.next) {case 0:
- r(2, f = t), r(3, d = n), r(1, l = e);case 3:case "end":
- return o.stop();}
- }
- }, o);
- }));
- };return t.$$.update = function () {
- 1024 & t.$$.dirty && o && i(void 0, void 0, void 0, pr().mark(function t() {
- return pr().wrap(function (t) {
- for (;;) {
- switch (t.prev = t.next) {case 0:
- return v(), t.t0 = r, t.next = 4, c.getEntries();case 4:
- t.t1 = s = t.sent, (0, t.t0)(0, t.t1);case 6:case "end":
- return t.stop();}
- }
- }, t);
- }));
- }, [s, l, f, d, u, function (t) {
- return (0, n.id)(t, 1024);
- }, p, h, g, function () {
- v();
- }, o, function () {
- f = this.value, r(2, f);
- }, function () {
- d = this.value, r(3, d);
- }, function (t) {
- return h(t);
- }, function (t) {
- return p(t);
- }, function (t, n, e) {
- return g(t, n, e);
- }];
- }var $r = function (t) {
- function n(n) {
- var e;return e = t.call(this) || this, (0, a.S1n)((0, o.Z)(e), n, Mr, Pr, a.N8, {}), e;
- }return (0, i.Z)(n, t), n;
- }(a.f_C),
- Sr = $r,
- jr = function (t) {
- function n(n, e, r) {
- var o;return void 0 === r && (r = {}), (o = t.call(this, n, e, Sr, r) || this).model = Tr.getSingleton(Tr, "VConsoleStorageModel"), o.onAddTopBarCallback = void 0, o;
- }(0, i.Z)(n, t);var e = n.prototype;return e.onReady = function () {
- t.prototype.onReady.call(this), this.onUpdateOption();
- }, e.onShow = function () {
- this.model.refresh();
- }, e.onAddTopBar = function (t) {
- this.onAddTopBarCallback = t, this.updateTopBar();
- }, e.onAddTool = function (t) {
- var n = this;t([{ name: "Add", global: !1, onClick: function onClick() {
- n.model.setItem("new_" + Date.now(), "new_value");
- } }, { name: "Refresh", global: !1, onClick: function onClick() {
- n.model.refresh();
- } }, { name: "Clear", global: !1, onClick: function onClick() {
- n.model.clear();
- } }]);
- }, e.onUpdateOption = function () {
- var t, n;void 0 !== (null == (t = this.vConsole.option.storage) ? void 0 : t.defaultStorages) && (Lr.defaultStorages.set((null == (n = this.vConsole.option.storage) ? void 0 : n.defaultStorages) || []), this.updateTopBar());
- }, e.updateTopBar = function () {
- var t = this;if ("function" == typeof this.onAddTopBarCallback) {
- for (var n = (0, kn.U2)(Lr.defaultStorages), e = [], r = 0; r < n.length; r++) {
- var o = n[r];e.push({ name: o[0].toUpperCase() + o.substring(1), data: { name: o }, actived: 0 === r, onClick: function onClick(n, e) {
- var r = (0, kn.U2)(Lr.activedName);if (e.name === r) return !1;Lr.activedName.set(e.name), t.model.refresh();
- } });
- }this.onAddTopBarCallback(e);
- }
- }, n;
- }(nt),
- Br = function () {
- function e(t) {
- var o = this;if (this.version = "3.14.6", this.isInited = !1, this.option = {}, this.compInstance = void 0, this.pluginList = {}, this.log = void 0, this.system = void 0, this.network = void 0, e.instance && e.instance instanceof e) return console.debug("[vConsole] vConsole is already exists."), e.instance;if (e.instance = this, this.isInited = !1, this.option = { defaultPlugins: ["system", "network", "element", "storage"], log: {}, network: {}, storage: {} }, n.Kn(t)) for (var i in t) {
- this.option[i] = t[i];
- }void 0 !== this.option.maxLogNumber && (this.option.log.maxLogNumber = this.option.maxLogNumber, console.debug("[vConsole] Deprecated option: `maxLogNumber`, use `log.maxLogNumber` instead.")), void 0 !== this.option.onClearLog && console.debug("[vConsole] Deprecated option: `onClearLog`."), void 0 !== this.option.maxNetworkNumber && (this.option.network.maxNetworkNumber = this.option.maxNetworkNumber, console.debug("[vConsole] Deprecated option: `maxNetworkNumber`, use `network.maxNetworkNumber` instead.")), this._addBuiltInPlugins();var a = function a() {
- o.isInited || (o._initComponent(), o._autoRun());
- };if (void 0 !== document) "loading" === document.readyState ? r.bind(window, "DOMContentLoaded", a) : a();else {
- var c;c = setTimeout(function t() {
- document && "complete" == document.readyState ? (c && clearTimeout(c), a()) : c = setTimeout(t, 1);
- }, 1);
- }
- }var o = e.prototype;return o._addBuiltInPlugins = function () {
- this.addPlugin(new Dn("default", "Log"));var t = this.option.defaultPlugins,
- e = { system: { proto: Rn, name: "System" } };if (e.network = { proto: Re, name: "Network" }, e.element = { proto: lr, name: "Element" }, e.storage = { proto: jr, name: "Storage" }, t && n.kJ(t)) for (var r = 0; r < t.length; r++) {
- var o = e[t[r]];o ? this.addPlugin(new o.proto(t[r], o.name)) : console.debug("[vConsole] Unrecognized default plugin ID:", t[r]);
- }
- }, o._initComponent = function () {
- var t = this;if (!r.one("#__vconsole")) {
- var e,
- o = 1 * n.cF("switch_x"),
- i = 1 * n.cF("switch_y");"string" == typeof this.option.target ? e = document.querySelector(this.option.target) : this.option.target instanceof HTMLElement && (e = this.option.target), e instanceof HTMLElement || (e = document.documentElement), this.compInstance = new Q({ target: e, props: { switchButtonPosition: { x: o, y: i } } }), this.compInstance.$on("show", function (n) {
- n.detail.show ? t.show() : t.hide();
- }), this.compInstance.$on("changePanel", function (n) {
- var e = n.detail.pluginId;t.showPlugin(e);
- });
- }this._updateComponentByOptions();
- }, o._updateComponentByOptions = function () {
- if (this.compInstance) {
- if (this.compInstance.theme !== this.option.theme) {
- var t = this.option.theme;t = "light" !== t && "dark" !== t ? "" : t, this.compInstance.theme = t;
- }this.compInstance.disableScrolling !== this.option.disableLogScrolling && (this.compInstance.disableScrolling = !!this.option.disableLogScrolling);
- }
- }, o.setSwitchPosition = function (t, n) {
- this.compInstance.switchButtonPosition = { x: t, y: n };
- }, o._autoRun = function () {
- for (var t in this.isInited = !0, this.pluginList) {
- this._initPlugin(this.pluginList[t]);
- }this._showFirstPluginWhenEmpty(), this.triggerEvent("ready");
- }, o._showFirstPluginWhenEmpty = function () {
- var t = Object.keys(this.pluginList);"" === this.compInstance.activedPluginId && t.length > 0 && this.showPlugin(t[0]);
- }, o.triggerEvent = function (t, e) {
- var r = this;t = "on" + t.charAt(0).toUpperCase() + t.slice(1), n.mf(this.option[t]) && setTimeout(function () {
- r.option[t].apply(r, e);
- }, 0);
- }, o._initPlugin = function (t) {
- var e = this;t.vConsole = this, this.compInstance.pluginList[t.id] = { id: t.id, name: t.name, hasTabPanel: !1, topbarList: [], toolbarList: [] }, this.compInstance.pluginList = this._reorderPluginList(this.compInstance.pluginList), t.trigger("init"), t.trigger("renderTab", function (r) {
- e.compInstance.pluginList[t.id].hasTabPanel = !0, r && (n.HD(r) ? e.compInstance.divContentInner.innerHTML += r : n.mf(r.appendTo) ? r.appendTo(e.compInstance.divContentInner) : n.kK(r) && e.compInstance.divContentInner.insertAdjacentElement("beforeend", r)), e.compInstance.pluginList = e.compInstance.pluginList;
- }), t.trigger("addTopBar", function (n) {
- if (n) {
- for (var r = [], o = 0; o < n.length; o++) {
- var i = n[o];r.push({ name: i.name || "Undefined", className: i.className || "", actived: !!i.actived, data: i.data, onClick: i.onClick });
- }e.compInstance.pluginList[t.id].topbarList = r, e.compInstance.pluginList = e.compInstance.pluginList;
- }
- }), t.trigger("addTool", function (n) {
- if (n) {
- for (var r = [], o = 0; o < n.length; o++) {
- var i = n[o];r.push({ name: i.name || "Undefined", global: !!i.global, data: i.data, onClick: i.onClick });
- }e.compInstance.pluginList[t.id].toolbarList = r, e.compInstance.pluginList = e.compInstance.pluginList;
- }
- }), t.isReady = !0, t.trigger("ready");
- }, o._triggerPluginsEvent = function (t) {
- for (var n in this.pluginList) {
- this.pluginList[n].isReady && this.pluginList[n].trigger(t);
- }
- }, o._triggerPluginEvent = function (t, n) {
- var e = this.pluginList[t];e && e.isReady && e.trigger(n);
- }, o._reorderPluginList = function (t) {
- var e = this;if (!n.kJ(this.option.pluginOrder)) return t;for (var r = Object.keys(t).sort(function (t, n) {
- var r = e.option.pluginOrder.indexOf(t),
- o = e.option.pluginOrder.indexOf(n);return r === o ? 0 : -1 === r ? 1 : -1 === o ? -1 : r - o;
- }), o = {}, i = 0; i < r.length; i++) {
- o[r[i]] = t[r[i]];
- }return o;
- }, o.addPlugin = function (t) {
- return void 0 !== this.pluginList[t.id] ? (console.debug("[vConsole] Plugin `" + t.id + "` has already been added."), !1) : (this.pluginList[t.id] = t, this.isInited && (this._initPlugin(t), this._showFirstPluginWhenEmpty()), !0);
- }, o.removePlugin = function (t) {
- t = (t + "").toLowerCase();var n = this.pluginList[t];if (void 0 === n) return console.debug("[vConsole] Plugin `" + t + "` does not exist."), !1;n.trigger("remove");try {
- delete this.pluginList[t], delete this.compInstance.pluginList[t];
- } catch (n) {
- this.pluginList[t] = void 0, this.compInstance.pluginList[t] = void 0;
- }return this.compInstance.pluginList = this.compInstance.pluginList, this.compInstance.activedPluginId == t && (this.compInstance.activedPluginId = "", this._showFirstPluginWhenEmpty()), !0;
- }, o.show = function () {
- this.isInited && (this.compInstance.show = !0, this._triggerPluginsEvent("showConsole"));
- }, o.hide = function () {
- this.isInited && (this.compInstance.show = !1, this._triggerPluginsEvent("hideConsole"));
- }, o.showSwitch = function () {
- this.isInited && (this.compInstance.showSwitchButton = !0);
- }, o.hideSwitch = function () {
- this.isInited && (this.compInstance.showSwitchButton = !1);
- }, o.showPlugin = function (t) {
- this.isInited && (this.pluginList[t] || console.debug("[vConsole] Plugin `" + t + "` does not exist."), this.compInstance.activedPluginId && this._triggerPluginEvent(this.compInstance.activedPluginId, "hide"), this.compInstance.activedPluginId = t, this._triggerPluginEvent(this.compInstance.activedPluginId, "show"));
- }, o.setOption = function (t, e) {
- if ("string" == typeof t) {
- for (var r = t.split("."), o = this.option, i = 0; i < r.length - 1; i++) {
- void 0 === o[r[i]] && (o[r[i]] = {}), o = o[r[i]];
- }o[r[r.length - 1]] = e, this._triggerPluginsEvent("updateOption"), this._updateComponentByOptions();
- } else if (n.Kn(t)) {
- for (var a in t) {
- this.option[a] = t[a];
- }this._triggerPluginsEvent("updateOption"), this._updateComponentByOptions();
- } else console.debug("[vConsole] The first parameter of `vConsole.setOption()` must be a string or an object.");
- }, o.destroy = function () {
- if (this.isInited) {
- this.isInited = !1, e.instance = void 0;for (var t = Object.keys(this.pluginList), n = t.length - 1; n >= 0; n--) {
- this.removePlugin(t[n]);
- }this.compInstance.$destroy();
- }
- }, (0, t.Z)(e, null, [{ key: "instance", get: function get() {
- return window.__VCONSOLE_INSTANCE;
- }, set: function set(t) {
- void 0 === t || t instanceof e ? window.__VCONSOLE_INSTANCE = t : console.debug("[vConsole] Cannot set `VConsole.instance` because the value is not the instance of VConsole.");
- } }]), e;
- }();Br.VConsolePlugin = void 0, Br.VConsoleLogPlugin = void 0, Br.VConsoleDefaultPlugin = void 0, Br.VConsoleSystemPlugin = void 0, Br.VConsoleNetworkPlugin = void 0, Br.VConsoleElementPlugin = void 0, Br.VConsoleStoragePlugin = void 0, Br.VConsolePlugin = tt, Br.VConsoleLogPlugin = In, Br.VConsoleDefaultPlugin = Dn, Br.VConsoleSystemPlugin = Rn, Br.VConsoleNetworkPlugin = Re, Br.VConsoleElementPlugin = lr, Br.VConsoleStoragePlugin = jr;var Ar = Br;
- }(), __webpack_exports__ = __webpack_exports__.default, __webpack_exports__;
- }();
- });
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("3IRH")(module)))
- /***/ }),
- /***/ "NCTB":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- exports.sha1 = __webpack_require__("bMQ9");
- exports.sha224 = __webpack_require__("fWB8");
- exports.sha256 = __webpack_require__("Q48P");
- exports.sha384 = __webpack_require__("EH7o");
- exports.sha512 = __webpack_require__("8/0b");
- /***/ }),
- /***/ "NMED":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var BN = __webpack_require__("geuY");
- var utils = __webpack_require__("TkWM");
- var assert = utils.assert;
- function Signature(options, enc) {
- if (options instanceof Signature)
- return options;
- if (this._importDER(options, enc))
- return;
- assert(options.r && options.s, 'Signature without r or s');
- this.r = new BN(options.r, 16);
- this.s = new BN(options.s, 16);
- if (options.recoveryParam === undefined)
- this.recoveryParam = null;
- else
- this.recoveryParam = options.recoveryParam;
- }
- module.exports = Signature;
- function Position() {
- this.place = 0;
- }
- function getLength(buf, p) {
- var initial = buf[p.place++];
- if (!(initial & 0x80)) {
- return initial;
- }
- var octetLen = initial & 0xf;
- // Indefinite length or overflow
- if (octetLen === 0 || octetLen > 4) {
- return false;
- }
- var val = 0;
- for (var i = 0, off = p.place; i < octetLen; i++, off++) {
- val <<= 8;
- val |= buf[off];
- val >>>= 0;
- }
- // Leading zeroes
- if (val <= 0x7f) {
- return false;
- }
- p.place = off;
- return val;
- }
- function rmPadding(buf) {
- var i = 0;
- var len = buf.length - 1;
- while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {
- i++;
- }
- if (i === 0) {
- return buf;
- }
- return buf.slice(i);
- }
- Signature.prototype._importDER = function _importDER(data, enc) {
- data = utils.toArray(data, enc);
- var p = new Position();
- if (data[p.place++] !== 0x30) {
- return false;
- }
- var len = getLength(data, p);
- if (len === false) {
- return false;
- }
- if ((len + p.place) !== data.length) {
- return false;
- }
- if (data[p.place++] !== 0x02) {
- return false;
- }
- var rlen = getLength(data, p);
- if (rlen === false) {
- return false;
- }
- var r = data.slice(p.place, rlen + p.place);
- p.place += rlen;
- if (data[p.place++] !== 0x02) {
- return false;
- }
- var slen = getLength(data, p);
- if (slen === false) {
- return false;
- }
- if (data.length !== slen + p.place) {
- return false;
- }
- var s = data.slice(p.place, slen + p.place);
- if (r[0] === 0) {
- if (r[1] & 0x80) {
- r = r.slice(1);
- } else {
- // Leading zeroes
- return false;
- }
- }
- if (s[0] === 0) {
- if (s[1] & 0x80) {
- s = s.slice(1);
- } else {
- // Leading zeroes
- return false;
- }
- }
- this.r = new BN(r);
- this.s = new BN(s);
- this.recoveryParam = null;
- return true;
- };
- function constructLength(arr, len) {
- if (len < 0x80) {
- arr.push(len);
- return;
- }
- var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);
- arr.push(octets | 0x80);
- while (--octets) {
- arr.push((len >>> (octets << 3)) & 0xff);
- }
- arr.push(len);
- }
- Signature.prototype.toDER = function toDER(enc) {
- var r = this.r.toArray();
- var s = this.s.toArray();
- // Pad values
- if (r[0] & 0x80)
- r = [ 0 ].concat(r);
- // Pad values
- if (s[0] & 0x80)
- s = [ 0 ].concat(s);
- r = rmPadding(r);
- s = rmPadding(s);
- while (!s[0] && !(s[1] & 0x80)) {
- s = s.slice(1);
- }
- var arr = [ 0x02 ];
- constructLength(arr, r.length);
- arr = arr.concat(r);
- arr.push(0x02);
- constructLength(arr, s.length);
- var backHalf = arr.concat(s);
- var res = [ 0x30 ];
- constructLength(res, backHalf.length);
- res = res.concat(backHalf);
- return utils.encode(res, enc);
- };
- /***/ }),
- /***/ "O+gO":
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__("ejIc")
- /***/ }),
- /***/ "PBMQ":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // a duplex stream is just a stream that is both readable and writable.
- // Since JS doesn't have multiple prototypal inheritance, this class
- // prototypally inherits from Readable, and then parasitically from
- // Writable.
- /*<replacement>*/
- var objectKeys = Object.keys || function (obj) {
- var keys = [];
- for (var key in obj) keys.push(key);
- return keys;
- };
- /*</replacement>*/
- module.exports = Duplex;
- var Readable = __webpack_require__("euKu");
- var Writable = __webpack_require__("/+iU");
- __webpack_require__("LC74")(Duplex, Readable);
- {
- // Allow the keys array to be GC'ed.
- var keys = objectKeys(Writable.prototype);
- for (var v = 0; v < keys.length; v++) {
- var method = keys[v];
- if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
- }
- }
- function Duplex(options) {
- if (!(this instanceof Duplex)) return new Duplex(options);
- Readable.call(this, options);
- Writable.call(this, options);
- this.allowHalfOpen = true;
- if (options) {
- if (options.readable === false) this.readable = false;
- if (options.writable === false) this.writable = false;
- if (options.allowHalfOpen === false) {
- this.allowHalfOpen = false;
- this.once('end', onend);
- }
- }
- }
- Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState.highWaterMark;
- }
- });
- Object.defineProperty(Duplex.prototype, 'writableBuffer', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState && this._writableState.getBuffer();
- }
- });
- Object.defineProperty(Duplex.prototype, 'writableLength', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState.length;
- }
- });
- // the no-half-open enforcer
- function onend() {
- // If the writable side ended, then we're ok.
- if (this._writableState.ended) return;
- // no more data can be written.
- // But allow more writes to happen in this tick.
- process.nextTick(onEndNT, this);
- }
- function onEndNT(self) {
- self.end();
- }
- Object.defineProperty(Duplex.prototype, 'destroyed', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- if (this._readableState === undefined || this._writableState === undefined) {
- return false;
- }
- return this._readableState.destroyed && this._writableState.destroyed;
- },
- set: function set(value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (this._readableState === undefined || this._writableState === undefined) {
- return;
- }
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._readableState.destroyed = value;
- this._writableState.destroyed = value;
- }
- });
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("W2nU")))
- /***/ }),
- /***/ "PBsE":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(Buffer) {var generatePrime = __webpack_require__("3fzc")
- var primes = __webpack_require__("4Vh3")
- var DH = __webpack_require__("Ztz7")
- function getDiffieHellman (mod) {
- var prime = new Buffer(primes[mod].prime, 'hex')
- var gen = new Buffer(primes[mod].gen, 'hex')
- return new DH(prime, gen)
- }
- var ENCODINGS = {
- 'binary': true, 'hex': true, 'base64': true
- }
- function createDiffieHellman (prime, enc, generator, genc) {
- if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {
- return createDiffieHellman(prime, 'binary', enc, generator)
- }
- enc = enc || 'binary'
- genc = genc || 'binary'
- generator = generator || new Buffer([2])
- if (!Buffer.isBuffer(generator)) {
- generator = new Buffer(generator, genc)
- }
- if (typeof prime === 'number') {
- return new DH(generatePrime(prime, generator), generator, true)
- }
- if (!Buffer.isBuffer(prime)) {
- prime = new Buffer(prime, enc)
- }
- return new DH(prime, generator, true)
- }
- exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman
- exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("EuP9").Buffer))
- /***/ }),
- /***/ "PXmv":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /**
- * vue-custom-element v3.3.0
- * (c) 2021 Karol Fabjańczuk
- * @license MIT
- */
- /**
- * ES6 Object.getPrototypeOf Polyfill
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
- */
- Object.setPrototypeOf = Object.setPrototypeOf || setPrototypeOf;
- function setPrototypeOf(obj, proto) {
- obj.__proto__ = proto;
- return obj;
- }
- var setPrototypeOf_1 = setPrototypeOf.bind(Object);
- function isES2015() {
- if (typeof Symbol === 'undefined' || typeof Reflect === 'undefined' || typeof Proxy === 'undefined' || Object.isSealed(Proxy)) return false;
- return true;
- }
- var isES2015$1 = isES2015();
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- function _CustomElement() {
- return Reflect.construct(HTMLElement, [], this.__proto__.constructor);
- }
- Object.setPrototypeOf(_CustomElement.prototype, HTMLElement.prototype);
- Object.setPrototypeOf(_CustomElement, HTMLElement);
- function registerCustomElement(tag) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- if (typeof customElements === 'undefined') {
- return;
- }
- function constructorCallback() {
- if (options.shadow === true && HTMLElement.prototype.attachShadow) {
- this.attachShadow({ mode: 'open' });
- }
- typeof options.constructorCallback === 'function' && options.constructorCallback.call(this);
- }
- function connectedCallback() {
- typeof options.connectedCallback === 'function' && options.connectedCallback.call(this);
- }
- function disconnectedCallback() {
- typeof options.disconnectedCallback === 'function' && options.disconnectedCallback.call(this);
- }
- function attributeChangedCallback(name, oldValue, value) {
- typeof options.attributeChangedCallback === 'function' && options.attributeChangedCallback.call(this, name, oldValue, value);
- }
- function define(tagName, CustomElement) {
- var existingCustomElement = customElements.get(tagName);
- return typeof existingCustomElement !== 'undefined' ? existingCustomElement : customElements.define(tagName, CustomElement);
- }
- if (isES2015$1) {
- var CustomElement = function (_CustomElement2) {
- _inherits(CustomElement, _CustomElement2);
- function CustomElement(self) {
- var _ret;
- _classCallCheck(this, CustomElement);
- var _this = _possibleConstructorReturn(this, (CustomElement.__proto__ || Object.getPrototypeOf(CustomElement)).call(this));
- var me = self ? HTMLElement.call(self) : _this;
- constructorCallback.call(me);
- return _ret = me, _possibleConstructorReturn(_this, _ret);
- }
- _createClass(CustomElement, null, [{
- key: 'observedAttributes',
- get: function get() {
- return options.observedAttributes || [];
- }
- }]);
- return CustomElement;
- }(_CustomElement);
- CustomElement.prototype.connectedCallback = connectedCallback;
- CustomElement.prototype.disconnectedCallback = disconnectedCallback;
- CustomElement.prototype.attributeChangedCallback = attributeChangedCallback;
- define(tag, CustomElement);
- return CustomElement;
- } else {
- var _CustomElement3 = function _CustomElement3(self) {
- var me = self ? HTMLElement.call(self) : this;
- constructorCallback.call(me);
- return me;
- };
- _CustomElement3.observedAttributes = options.observedAttributes || [];
- _CustomElement3.prototype = Object.create(HTMLElement.prototype, {
- constructor: {
- configurable: true,
- writable: true,
- value: _CustomElement3
- }
- });
- _CustomElement3.prototype.connectedCallback = connectedCallback;
- _CustomElement3.prototype.disconnectedCallback = disconnectedCallback;
- _CustomElement3.prototype.attributeChangedCallback = attributeChangedCallback;
- define(tag, _CustomElement3);
- return _CustomElement3;
- }
- }
- var camelizeRE = /-(\w)/g;
- var camelize = function camelize(str) {
- return str.replace(camelizeRE, function (_, c) {
- return c ? c.toUpperCase() : '';
- });
- };
- var hyphenateRE = /([^-])([A-Z])/g;
- var hyphenate = function hyphenate(str) {
- return str.replace(hyphenateRE, '$1-$2').replace(hyphenateRE, '$1-$2').toLowerCase();
- };
- function toArray(list) {
- var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- var i = list.length - start;
- var ret = new Array(i);
- while (i--) {
- ret[i] = list[i + start];
- }
- return ret;
- }
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
- function convertAttributeValue(value, overrideType) {
- if (value === null || value === undefined) {
- return overrideType === Boolean ? false : undefined;
- }
- var propsValue = value;
- var isBoolean = ['true', 'false'].indexOf(value) > -1;
- var valueParsed = parseFloat(propsValue, 10);
- var isNumber = !isNaN(valueParsed) && isFinite(propsValue) && typeof propsValue === 'string' && !propsValue.match(/^0+[^.]\d*$/g);
- if (overrideType && overrideType !== Boolean && (typeof propsValue === 'undefined' ? 'undefined' : _typeof(propsValue)) !== overrideType) {
- propsValue = overrideType(value);
- } else if (isBoolean || overrideType === Boolean) {
- propsValue = propsValue === '' ? true : propsValue === 'true' || propsValue === true;
- } else if (isNumber) {
- propsValue = valueParsed;
- }
- return propsValue;
- }
- function extractProps(collection, props) {
- if (collection && collection.length) {
- collection.forEach(function (prop) {
- var camelCaseProp = camelize(prop);
- props.camelCase.indexOf(camelCaseProp) === -1 && props.camelCase.push(camelCaseProp);
- });
- } else if (collection && (typeof collection === 'undefined' ? 'undefined' : _typeof(collection)) === 'object') {
- for (var prop in collection) {
- var camelCaseProp = camelize(prop);
- props.camelCase.indexOf(camelCaseProp) === -1 && props.camelCase.push(camelCaseProp);
- if (collection[camelCaseProp] && collection[camelCaseProp].type) {
- props.types[prop] = [].concat(collection[camelCaseProp].type)[0];
- }
- }
- }
- }
- function getProps() {
- var componentDefinition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- var props = {
- camelCase: [],
- hyphenate: [],
- types: {}
- };
- if (componentDefinition.mixins) {
- componentDefinition.mixins.forEach(function (mixin) {
- extractProps(mixin.props, props);
- });
- }
- if (componentDefinition.extends && componentDefinition.extends.props) {
- var parentProps = componentDefinition.extends.props;
- extractProps(parentProps, props);
- }
- extractProps(componentDefinition.props, props);
- props.camelCase.forEach(function (prop) {
- props.hyphenate.push(hyphenate(prop));
- });
- return props;
- }
- function reactiveProps(element, props) {
- props.camelCase.forEach(function (name, index) {
- Object.defineProperty(element, name, {
- get: function get() {
- return this.__vue_custom_element__[name];
- },
- set: function set(value) {
- if (((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' || typeof value === 'function') && this.__vue_custom_element__) {
- var propName = props.camelCase[index];
- this.__vue_custom_element__[propName] = value;
- } else {
- var type = props.types[props.camelCase[index]];
- this.setAttribute(props.hyphenate[index], convertAttributeValue(value, type));
- }
- }
- });
- });
- }
- function getPropsData(element, componentDefinition, props) {
- var propsData = componentDefinition.propsData || {};
- props.hyphenate.forEach(function (name, index) {
- var propCamelCase = props.camelCase[index];
- var propValue = element.attributes[name] || element[propCamelCase];
- var type = null;
- if (props.types[propCamelCase]) {
- type = props.types[propCamelCase];
- }
- if (propValue instanceof Attr) {
- propsData[propCamelCase] = convertAttributeValue(propValue.value, type);
- } else if (typeof propValue !== 'undefined') {
- propsData[propCamelCase] = propValue;
- }
- });
- return propsData;
- }
- function getAttributes(children) {
- var attributes = {};
- toArray(children.attributes).forEach(function (attribute) {
- attributes[attribute.nodeName === 'vue-slot' ? 'slot' : attribute.nodeName] = attribute.nodeValue;
- });
- return attributes;
- }
- function getChildNodes(element) {
- if (element.childNodes.length) return element.childNodes;
- if (element.content && element.content.childNodes && element.content.childNodes.length) {
- return element.content.childNodes;
- }
- var placeholder = document.createElement('div');
- placeholder.innerHTML = element.innerHTML;
- return placeholder.childNodes;
- }
- function templateElement(createElement, element, elementOptions) {
- var templateChildren = getChildNodes(element);
- var vueTemplateChildren = toArray(templateChildren).map(function (child) {
- if (child.nodeName === '#text') return child.nodeValue;
- return createElement(child.tagName, {
- attrs: getAttributes(child),
- domProps: {
- innerHTML: child.innerHTML
- }
- });
- });
- elementOptions.slot = element.id;
- return createElement('template', elementOptions, vueTemplateChildren);
- }
- function getSlots() {
- var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
- var createElement = arguments[1];
- var slots = [];
- toArray(children).forEach(function (child) {
- if (child.nodeName === '#text') {
- if (child.nodeValue.trim()) {
- slots.push(createElement('span', child.nodeValue));
- }
- } else if (child.nodeName !== '#comment') {
- var attributes = getAttributes(child);
- var elementOptions = {
- attrs: attributes,
- domProps: {
- innerHTML: child.innerHTML === '' ? child.innerText : child.innerHTML
- }
- };
- if (attributes.slot) {
- elementOptions.slot = attributes.slot;
- attributes.slot = undefined;
- }
- var slotVueElement = child.tagName === 'TEMPLATE' ? templateElement(createElement, child, elementOptions) : createElement(child.tagName, elementOptions);
- slots.push(slotVueElement);
- }
- });
- return slots;
- }
- function customEvent(eventName, detail) {
- var params = { bubbles: false, cancelable: false, detail: detail };
- var event = void 0;
- if (typeof window.CustomEvent === 'function') {
- event = new CustomEvent(eventName, params);
- } else {
- event = document.createEvent('CustomEvent');
- event.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail);
- }
- return event;
- }
- function customEmit(element, eventName) {
- for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
- args[_key - 2] = arguments[_key];
- }
- var event = customEvent(eventName, [].concat(args));
- element.dispatchEvent(event);
- }
- function createVueInstance(element, Vue, componentDefinition, props, options) {
- if (element.__vue_custom_element__) {
- return Promise.resolve(element);
- }
- var ComponentDefinition = Vue.util.extend({}, componentDefinition);
- var propsData = getPropsData(element, ComponentDefinition, props);
- var vueVersion = Vue.version && parseInt(Vue.version.split('.')[0], 10) || 0;
- function beforeCreate() {
- this.$emit = function emit() {
- var _proto__$$emit;
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- customEmit.apply(undefined, [element].concat(args));
- this.__proto__ && (_proto__$$emit = this.__proto__.$emit).call.apply(_proto__$$emit, [this].concat(args));
- };
- }
- ComponentDefinition.beforeCreate = [].concat(ComponentDefinition.beforeCreate || [], beforeCreate);
- if (ComponentDefinition._compiled) {
- var constructorOptions = {};
- var _constructor = ComponentDefinition._Ctor;
- if (_constructor) {
- constructorOptions = Object.keys(_constructor).map(function (key) {
- return _constructor[key];
- })[0].options;
- }
- constructorOptions.beforeCreate = ComponentDefinition.beforeCreate;
- }
- var rootElement = void 0;
- if (vueVersion >= 2) {
- var elementOriginalChildren = element.cloneNode(true).childNodes;
- rootElement = {
- propsData: propsData,
- props: props.camelCase,
- computed: {
- reactiveProps: function reactiveProps$$1() {
- var _this = this;
- var reactivePropsList = {};
- props.camelCase.forEach(function (prop) {
- typeof _this[prop] !== 'undefined' && (reactivePropsList[prop] = _this[prop]);
- });
- return reactivePropsList;
- }
- },
- render: function render(createElement) {
- var data = {
- props: this.reactiveProps
- };
- return createElement(ComponentDefinition, data, getSlots(elementOriginalChildren, createElement));
- }
- };
- } else if (vueVersion === 1) {
- rootElement = ComponentDefinition;
- rootElement.propsData = propsData;
- } else {
- rootElement = ComponentDefinition;
- var propsWithDefault = {};
- Object.keys(propsData).forEach(function (prop) {
- propsWithDefault[prop] = { default: propsData[prop] };
- });
- rootElement.props = propsWithDefault;
- }
- var elementInnerHtml = vueVersion >= 2 ? '<div></div>' : ('<div>' + element.innerHTML + '</div>').replace(/vue-slot=/g, 'slot=');
- if (options.shadow && element.shadowRoot) {
- element.shadowRoot.innerHTML = elementInnerHtml;
- rootElement.el = element.shadowRoot.children[0];
- } else {
- element.innerHTML = elementInnerHtml;
- rootElement.el = element.children[0];
- }
- if (options.shadow && options.shadowCss && element.shadowRoot) {
- var style = document.createElement('style');
- style.type = 'text/css';
- style.appendChild(document.createTextNode(options.shadowCss));
- element.shadowRoot.appendChild(style);
- }
- reactiveProps(element, props);
- if (typeof options.beforeCreateVueInstance === 'function') {
- rootElement = options.beforeCreateVueInstance(rootElement) || rootElement;
- }
- return Promise.resolve(rootElement).then(function (vueOpts) {
- element.__vue_custom_element__ = new Vue(vueOpts);
- element.__vue_custom_element_props__ = props;
- element.getVueInstance = function () {
- var vueInstance = element.__vue_custom_element__;
- return vueInstance.$children.length ? vueInstance.$children[0] : vueInstance;
- };
- element.removeAttribute('vce-cloak');
- element.setAttribute('vce-ready', '');
- customEmit(element, 'vce-ready');
- return element;
- });
- }
- function install(Vue) {
- Vue.customElement = function vueCustomElement(tag, componentDefinition) {
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
- var isAsyncComponent = typeof componentDefinition === 'function';
- var optionsProps = isAsyncComponent && { props: options.props || [] };
- var props = getProps(isAsyncComponent ? optionsProps : componentDefinition);
- var CustomElement = registerCustomElement(tag, {
- constructorCallback: function constructorCallback() {
- typeof options.constructorCallback === 'function' && options.constructorCallback.call(this);
- },
- connectedCallback: function connectedCallback() {
- var _this = this;
- var asyncComponentPromise = isAsyncComponent && componentDefinition();
- var isAsyncComponentPromise = asyncComponentPromise && asyncComponentPromise.then && typeof asyncComponentPromise.then === 'function';
- typeof options.connectedCallback === 'function' && options.connectedCallback.call(this);
- if (isAsyncComponent && !isAsyncComponentPromise) {
- throw new Error('Async component ' + tag + ' do not returns Promise');
- }
- if (!this.__detached__) {
- if (isAsyncComponentPromise) {
- asyncComponentPromise.then(function (lazyComponent) {
- var lazyProps = getProps(lazyComponent);
- createVueInstance(_this, Vue, lazyComponent, lazyProps, options).then(function () {
- typeof options.vueInstanceCreatedCallback === 'function' && options.vueInstanceCreatedCallback.call(_this);
- });
- });
- } else {
- createVueInstance(this, Vue, componentDefinition, props, options).then(function () {
- typeof options.vueInstanceCreatedCallback === 'function' && options.vueInstanceCreatedCallback.call(_this);
- });
- }
- }
- this.__detached__ = false;
- },
- disconnectedCallback: function disconnectedCallback() {
- var _this2 = this;
- this.__detached__ = true;
- typeof options.disconnectedCallback === 'function' && options.disconnectedCallback.call(this);
- options.destroyTimeout !== null && setTimeout(function () {
- if (_this2.__detached__ && _this2.__vue_custom_element__) {
- _this2.__detached__ = false;
- _this2.__vue_custom_element__.$destroy(true);
- delete _this2.__vue_custom_element__;
- delete _this2.__vue_custom_element_props__;
- }
- }, options.destroyTimeout || 3000);
- },
- attributeChangedCallback: function attributeChangedCallback(name, oldValue, value) {
- if (this.__vue_custom_element__ && typeof value !== 'undefined') {
- var nameCamelCase = camelize(name);
- typeof options.attributeChangedCallback === 'function' && options.attributeChangedCallback.call(this, name, oldValue, value);
- var type = this.__vue_custom_element_props__.types[nameCamelCase];
- this.__vue_custom_element__[nameCamelCase] = convertAttributeValue(value, type);
- }
- },
- observedAttributes: props.hyphenate,
- shadow: !!options.shadow && !!HTMLElement.prototype.attachShadow
- });
- return CustomElement;
- };
- }
- if (typeof window !== 'undefined' && window.Vue) {
- window.Vue.use(install);
- if (install.installed) {
- install.installed = false;
- }
- }
- /* harmony default export */ __webpack_exports__["a"] = (install);
- /***/ }),
- /***/ "PcVv":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Ported from https://github.com/mafintosh/end-of-stream with
- // permission from the author, Mathias Buus (@mafintosh).
- var ERR_STREAM_PREMATURE_CLOSE = __webpack_require__("WrlE").codes.ERR_STREAM_PREMATURE_CLOSE;
- function once(callback) {
- var called = false;
- return function () {
- if (called) return;
- called = true;
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- callback.apply(this, args);
- };
- }
- function noop() {}
- function isRequest(stream) {
- return stream.setHeader && typeof stream.abort === 'function';
- }
- function eos(stream, opts, callback) {
- if (typeof opts === 'function') return eos(stream, null, opts);
- if (!opts) opts = {};
- callback = once(callback || noop);
- var readable = opts.readable || opts.readable !== false && stream.readable;
- var writable = opts.writable || opts.writable !== false && stream.writable;
- var onlegacyfinish = function onlegacyfinish() {
- if (!stream.writable) onfinish();
- };
- var writableEnded = stream._writableState && stream._writableState.finished;
- var onfinish = function onfinish() {
- writable = false;
- writableEnded = true;
- if (!readable) callback.call(stream);
- };
- var readableEnded = stream._readableState && stream._readableState.endEmitted;
- var onend = function onend() {
- readable = false;
- readableEnded = true;
- if (!writable) callback.call(stream);
- };
- var onerror = function onerror(err) {
- callback.call(stream, err);
- };
- var onclose = function onclose() {
- var err;
- if (readable && !readableEnded) {
- if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();
- return callback.call(stream, err);
- }
- if (writable && !writableEnded) {
- if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();
- return callback.call(stream, err);
- }
- };
- var onrequest = function onrequest() {
- stream.req.on('finish', onfinish);
- };
- if (isRequest(stream)) {
- stream.on('complete', onfinish);
- stream.on('abort', onclose);
- if (stream.req) onrequest();else stream.on('request', onrequest);
- } else if (writable && !stream._writableState) {
- // legacy streams
- stream.on('end', onlegacyfinish);
- stream.on('close', onlegacyfinish);
- }
- stream.on('end', onend);
- stream.on('finish', onfinish);
- if (opts.error !== false) stream.on('error', onerror);
- stream.on('close', onclose);
- return function () {
- stream.removeListener('complete', onfinish);
- stream.removeListener('abort', onclose);
- stream.removeListener('request', onrequest);
- if (stream.req) stream.req.removeListener('finish', onfinish);
- stream.removeListener('end', onlegacyfinish);
- stream.removeListener('close', onlegacyfinish);
- stream.removeListener('finish', onfinish);
- stream.removeListener('end', onend);
- stream.removeListener('error', onerror);
- stream.removeListener('close', onclose);
- };
- }
- module.exports = eos;
- /***/ }),
- /***/ "PhfM":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // a duplex stream is just a stream that is both readable and writable.
- // Since JS doesn't have multiple prototypal inheritance, this class
- // prototypally inherits from Readable, and then parasitically from
- // Writable.
- /*<replacement>*/
- var objectKeys = Object.keys || function (obj) {
- var keys = [];
- for (var key in obj) keys.push(key);
- return keys;
- };
- /*</replacement>*/
- module.exports = Duplex;
- var Readable = __webpack_require__("CVWE");
- var Writable = __webpack_require__("uDof");
- __webpack_require__("LC74")(Duplex, Readable);
- {
- // Allow the keys array to be GC'ed.
- var keys = objectKeys(Writable.prototype);
- for (var v = 0; v < keys.length; v++) {
- var method = keys[v];
- if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
- }
- }
- function Duplex(options) {
- if (!(this instanceof Duplex)) return new Duplex(options);
- Readable.call(this, options);
- Writable.call(this, options);
- this.allowHalfOpen = true;
- if (options) {
- if (options.readable === false) this.readable = false;
- if (options.writable === false) this.writable = false;
- if (options.allowHalfOpen === false) {
- this.allowHalfOpen = false;
- this.once('end', onend);
- }
- }
- }
- Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState.highWaterMark;
- }
- });
- Object.defineProperty(Duplex.prototype, 'writableBuffer', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState && this._writableState.getBuffer();
- }
- });
- Object.defineProperty(Duplex.prototype, 'writableLength', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState.length;
- }
- });
- // the no-half-open enforcer
- function onend() {
- // If the writable side ended, then we're ok.
- if (this._writableState.ended) return;
- // no more data can be written.
- // But allow more writes to happen in this tick.
- process.nextTick(onEndNT, this);
- }
- function onEndNT(self) {
- self.end();
- }
- Object.defineProperty(Duplex.prototype, 'destroyed', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- if (this._readableState === undefined || this._writableState === undefined) {
- return false;
- }
- return this._readableState.destroyed && this._writableState.destroyed;
- },
- set: function set(value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (this._readableState === undefined || this._writableState === undefined) {
- return;
- }
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._readableState.destroyed = value;
- this._writableState.destroyed = value;
- }
- });
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("W2nU")))
- /***/ }),
- /***/ "Q48P":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("1lLf");
- var common = __webpack_require__("YSDb");
- var shaCommon = __webpack_require__("3nYK");
- var assert = __webpack_require__("08Lv");
- var sum32 = utils.sum32;
- var sum32_4 = utils.sum32_4;
- var sum32_5 = utils.sum32_5;
- var ch32 = shaCommon.ch32;
- var maj32 = shaCommon.maj32;
- var s0_256 = shaCommon.s0_256;
- var s1_256 = shaCommon.s1_256;
- var g0_256 = shaCommon.g0_256;
- var g1_256 = shaCommon.g1_256;
- var BlockHash = common.BlockHash;
- var sha256_K = [
- 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
- 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
- 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
- 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
- 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
- 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
- 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
- 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
- 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
- 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
- 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
- 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
- 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
- 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
- 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
- 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
- ];
- function SHA256() {
- if (!(this instanceof SHA256))
- return new SHA256();
- BlockHash.call(this);
- this.h = [
- 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
- 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
- ];
- this.k = sha256_K;
- this.W = new Array(64);
- }
- utils.inherits(SHA256, BlockHash);
- module.exports = SHA256;
- SHA256.blockSize = 512;
- SHA256.outSize = 256;
- SHA256.hmacStrength = 192;
- SHA256.padLength = 64;
- SHA256.prototype._update = function _update(msg, start) {
- var W = this.W;
- for (var i = 0; i < 16; i++)
- W[i] = msg[start + i];
- for (; i < W.length; i++)
- W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);
- var a = this.h[0];
- var b = this.h[1];
- var c = this.h[2];
- var d = this.h[3];
- var e = this.h[4];
- var f = this.h[5];
- var g = this.h[6];
- var h = this.h[7];
- assert(this.k.length === W.length);
- for (i = 0; i < W.length; i++) {
- var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
- var T2 = sum32(s0_256(a), maj32(a, b, c));
- h = g;
- g = f;
- f = e;
- e = sum32(d, T1);
- d = c;
- c = b;
- b = a;
- a = sum32(T1, T2);
- }
- this.h[0] = sum32(this.h[0], a);
- this.h[1] = sum32(this.h[1], b);
- this.h[2] = sum32(this.h[2], c);
- this.h[3] = sum32(this.h[3], d);
- this.h[4] = sum32(this.h[4], e);
- this.h[5] = sum32(this.h[5], f);
- this.h[6] = sum32(this.h[6], g);
- this.h[7] = sum32(this.h[7], h);
- };
- SHA256.prototype._digest = function digest(enc) {
- if (enc === 'hex')
- return utils.toHex32(this.h, 'big');
- else
- return utils.split32(this.h, 'big');
- };
- /***/ }),
- /***/ "Q51I":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // a transform stream is a readable/writable stream where you do
- // something with the data. Sometimes it's called a "filter",
- // but that's not a great name for it, since that implies a thing where
- // some bits pass through, and others are simply ignored. (That would
- // be a valid example of a transform, of course.)
- //
- // While the output is causally related to the input, it's not a
- // necessarily symmetric or synchronous transformation. For example,
- // a zlib stream might take multiple plain-text writes(), and then
- // emit a single compressed chunk some time in the future.
- //
- // Here's how this works:
- //
- // The Transform stream has all the aspects of the readable and writable
- // stream classes. When you write(chunk), that calls _write(chunk,cb)
- // internally, and returns false if there's a lot of pending writes
- // buffered up. When you call read(), that calls _read(n) until
- // there's enough pending readable data buffered up.
- //
- // In a transform stream, the written data is placed in a buffer. When
- // _read(n) is called, it transforms the queued up data, calling the
- // buffered _write cb's as it consumes chunks. If consuming a single
- // written chunk would result in multiple output chunks, then the first
- // outputted bit calls the readcb, and subsequent chunks just go into
- // the read buffer, and will cause it to emit 'readable' if necessary.
- //
- // This way, back-pressure is actually determined by the reading side,
- // since _read has to be called to start processing a new chunk. However,
- // a pathological inflate type of transform can cause excessive buffering
- // here. For example, imagine a stream where every byte of input is
- // interpreted as an integer from 0-255, and then results in that many
- // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
- // 1kb of data being output. In this case, you could write a very small
- // amount of input, and end up with a very large amount of output. In
- // such a pathological inflating mechanism, there'd be no way to tell
- // the system to stop doing the transform. A single 4MB write could
- // cause the system to run out of memory.
- //
- // However, even in such a pathological case, only a single written chunk
- // would be consumed, and then the rest would wait (un-transformed) until
- // the results of the previous transformed chunk were consumed.
- module.exports = Transform;
- var _require$codes = __webpack_require__("WrlE").codes,
- ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,
- ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,
- ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,
- ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;
- var Duplex = __webpack_require__("PBMQ");
- __webpack_require__("LC74")(Transform, Duplex);
- function afterTransform(er, data) {
- var ts = this._transformState;
- ts.transforming = false;
- var cb = ts.writecb;
- if (cb === null) {
- return this.emit('error', new ERR_MULTIPLE_CALLBACK());
- }
- ts.writechunk = null;
- ts.writecb = null;
- if (data != null)
- // single equals check for both `null` and `undefined`
- this.push(data);
- cb(er);
- var rs = this._readableState;
- rs.reading = false;
- if (rs.needReadable || rs.length < rs.highWaterMark) {
- this._read(rs.highWaterMark);
- }
- }
- function Transform(options) {
- if (!(this instanceof Transform)) return new Transform(options);
- Duplex.call(this, options);
- this._transformState = {
- afterTransform: afterTransform.bind(this),
- needTransform: false,
- transforming: false,
- writecb: null,
- writechunk: null,
- writeencoding: null
- };
- // start out asking for a readable event once data is transformed.
- this._readableState.needReadable = true;
- // we have implemented the _read method, and done the other things
- // that Readable wants before the first _read call, so unset the
- // sync guard flag.
- this._readableState.sync = false;
- if (options) {
- if (typeof options.transform === 'function') this._transform = options.transform;
- if (typeof options.flush === 'function') this._flush = options.flush;
- }
- // When the writable side finishes, then flush out anything remaining.
- this.on('prefinish', prefinish);
- }
- function prefinish() {
- var _this = this;
- if (typeof this._flush === 'function' && !this._readableState.destroyed) {
- this._flush(function (er, data) {
- done(_this, er, data);
- });
- } else {
- done(this, null, null);
- }
- }
- Transform.prototype.push = function (chunk, encoding) {
- this._transformState.needTransform = false;
- return Duplex.prototype.push.call(this, chunk, encoding);
- };
- // This is the part where you do stuff!
- // override this function in implementation classes.
- // 'chunk' is an input chunk.
- //
- // Call `push(newChunk)` to pass along transformed output
- // to the readable side. You may call 'push' zero or more times.
- //
- // Call `cb(err)` when you are done with this chunk. If you pass
- // an error, then that'll put the hurt on the whole operation. If you
- // never call cb(), then you'll never get another chunk.
- Transform.prototype._transform = function (chunk, encoding, cb) {
- cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));
- };
- Transform.prototype._write = function (chunk, encoding, cb) {
- var ts = this._transformState;
- ts.writecb = cb;
- ts.writechunk = chunk;
- ts.writeencoding = encoding;
- if (!ts.transforming) {
- var rs = this._readableState;
- if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
- }
- };
- // Doesn't matter what the args are here.
- // _transform does all the work.
- // That we got here means that the readable side wants more data.
- Transform.prototype._read = function (n) {
- var ts = this._transformState;
- if (ts.writechunk !== null && !ts.transforming) {
- ts.transforming = true;
- this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
- } else {
- // mark that we need a transform, so that any data that comes in
- // will get processed, now that we've asked for it.
- ts.needTransform = true;
- }
- };
- Transform.prototype._destroy = function (err, cb) {
- Duplex.prototype._destroy.call(this, err, function (err2) {
- cb(err2);
- });
- };
- function done(stream, er, data) {
- if (er) return stream.emit('error', er);
- if (data != null)
- // single equals check for both `null` and `undefined`
- stream.push(data);
- // TODO(BridgeAR): Write a test for these two error cases
- // if there's nothing in the write buffer, then that means
- // that nothing more will ever be provided
- if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();
- if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();
- return stream.push(null);
- }
- /***/ }),
- /***/ "QDfD":
- /***/ (function(module, exports) {
- module.exports = {"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}
- /***/ }),
- /***/ "Rt1F":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- /*<replacement>*/
- var pna = __webpack_require__("ypnx");
- /*</replacement>*/
- module.exports = Readable;
- /*<replacement>*/
- var isArray = __webpack_require__("sOR5");
- /*</replacement>*/
- /*<replacement>*/
- var Duplex;
- /*</replacement>*/
- Readable.ReadableState = ReadableState;
- /*<replacement>*/
- var EE = __webpack_require__("vzCy").EventEmitter;
- var EElistenerCount = function (emitter, type) {
- return emitter.listeners(type).length;
- };
- /*</replacement>*/
- /*<replacement>*/
- var Stream = __webpack_require__("UcPO");
- /*</replacement>*/
- /*<replacement>*/
- var Buffer = __webpack_require__("kkc6").Buffer;
- var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};
- function _uint8ArrayToBuffer(chunk) {
- return Buffer.from(chunk);
- }
- function _isUint8Array(obj) {
- return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
- }
- /*</replacement>*/
- /*<replacement>*/
- var util = Object.create(__webpack_require__("jOgh"));
- util.inherits = __webpack_require__("LC74");
- /*</replacement>*/
- /*<replacement>*/
- var debugUtil = __webpack_require__(3);
- var debug = void 0;
- if (debugUtil && debugUtil.debuglog) {
- debug = debugUtil.debuglog('stream');
- } else {
- debug = function () {};
- }
- /*</replacement>*/
- var BufferList = __webpack_require__("+HRN");
- var destroyImpl = __webpack_require__("x0Ha");
- var StringDecoder;
- util.inherits(Readable, Stream);
- var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
- function prependListener(emitter, event, fn) {
- // Sadly this is not cacheable as some libraries bundle their own
- // event emitter implementation with them.
- if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
- // This is a hack to make sure that our error handler is attached before any
- // userland ones. NEVER DO THIS. This is here only because this code needs
- // to continue to work with older versions of Node.js that do not include
- // the prependListener() method. The goal is to eventually remove this hack.
- if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
- }
- function ReadableState(options, stream) {
- Duplex = Duplex || __webpack_require__("DsFX");
- options = options || {};
- // Duplex streams are both readable and writable, but share
- // the same options object.
- // However, some cases require setting options to different
- // values for the readable and the writable sides of the duplex stream.
- // These options can be provided separately as readableXXX and writableXXX.
- var isDuplex = stream instanceof Duplex;
- // object stream flag. Used to make read(n) ignore n and to
- // make all the buffer merging and length checks go away
- this.objectMode = !!options.objectMode;
- if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
- // the point at which it stops calling _read() to fill the buffer
- // Note: 0 is a valid value, means "don't call _read preemptively ever"
- var hwm = options.highWaterMark;
- var readableHwm = options.readableHighWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;
- // cast to ints.
- this.highWaterMark = Math.floor(this.highWaterMark);
- // A linked list is used to store data chunks instead of an array because the
- // linked list can remove elements from the beginning faster than
- // array.shift()
- this.buffer = new BufferList();
- this.length = 0;
- this.pipes = null;
- this.pipesCount = 0;
- this.flowing = null;
- this.ended = false;
- this.endEmitted = false;
- this.reading = false;
- // a flag to be able to tell if the event 'readable'/'data' is emitted
- // immediately, or on a later tick. We set this to true at first, because
- // any actions that shouldn't happen until "later" should generally also
- // not happen before the first read call.
- this.sync = true;
- // whenever we return null, then we set a flag to say
- // that we're awaiting a 'readable' event emission.
- this.needReadable = false;
- this.emittedReadable = false;
- this.readableListening = false;
- this.resumeScheduled = false;
- // has it been destroyed
- this.destroyed = false;
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
- // the number of writers that are awaiting a drain event in .pipe()s
- this.awaitDrain = 0;
- // if true, a maybeReadMore has been scheduled
- this.readingMore = false;
- this.decoder = null;
- this.encoding = null;
- if (options.encoding) {
- if (!StringDecoder) StringDecoder = __webpack_require__("X4X3").StringDecoder;
- this.decoder = new StringDecoder(options.encoding);
- this.encoding = options.encoding;
- }
- }
- function Readable(options) {
- Duplex = Duplex || __webpack_require__("DsFX");
- if (!(this instanceof Readable)) return new Readable(options);
- this._readableState = new ReadableState(options, this);
- // legacy
- this.readable = true;
- if (options) {
- if (typeof options.read === 'function') this._read = options.read;
- if (typeof options.destroy === 'function') this._destroy = options.destroy;
- }
- Stream.call(this);
- }
- Object.defineProperty(Readable.prototype, 'destroyed', {
- get: function () {
- if (this._readableState === undefined) {
- return false;
- }
- return this._readableState.destroyed;
- },
- set: function (value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (!this._readableState) {
- return;
- }
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._readableState.destroyed = value;
- }
- });
- Readable.prototype.destroy = destroyImpl.destroy;
- Readable.prototype._undestroy = destroyImpl.undestroy;
- Readable.prototype._destroy = function (err, cb) {
- this.push(null);
- cb(err);
- };
- // Manually shove something into the read() buffer.
- // This returns true if the highWaterMark has not been hit yet,
- // similar to how Writable.write() returns true if you should
- // write() some more.
- Readable.prototype.push = function (chunk, encoding) {
- var state = this._readableState;
- var skipChunkCheck;
- if (!state.objectMode) {
- if (typeof chunk === 'string') {
- encoding = encoding || state.defaultEncoding;
- if (encoding !== state.encoding) {
- chunk = Buffer.from(chunk, encoding);
- encoding = '';
- }
- skipChunkCheck = true;
- }
- } else {
- skipChunkCheck = true;
- }
- return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
- };
- // Unshift should *always* be something directly out of read()
- Readable.prototype.unshift = function (chunk) {
- return readableAddChunk(this, chunk, null, true, false);
- };
- function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
- var state = stream._readableState;
- if (chunk === null) {
- state.reading = false;
- onEofChunk(stream, state);
- } else {
- var er;
- if (!skipChunkCheck) er = chunkInvalid(state, chunk);
- if (er) {
- stream.emit('error', er);
- } else if (state.objectMode || chunk && chunk.length > 0) {
- if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
- chunk = _uint8ArrayToBuffer(chunk);
- }
- if (addToFront) {
- if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
- } else if (state.ended) {
- stream.emit('error', new Error('stream.push() after EOF'));
- } else {
- state.reading = false;
- if (state.decoder && !encoding) {
- chunk = state.decoder.write(chunk);
- if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
- } else {
- addChunk(stream, state, chunk, false);
- }
- }
- } else if (!addToFront) {
- state.reading = false;
- }
- }
- return needMoreData(state);
- }
- function addChunk(stream, state, chunk, addToFront) {
- if (state.flowing && state.length === 0 && !state.sync) {
- stream.emit('data', chunk);
- stream.read(0);
- } else {
- // update the buffer info.
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
- if (state.needReadable) emitReadable(stream);
- }
- maybeReadMore(stream, state);
- }
- function chunkInvalid(state, chunk) {
- var er;
- if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
- er = new TypeError('Invalid non-string/buffer chunk');
- }
- return er;
- }
- // if it's past the high water mark, we can push in some more.
- // Also, if we have no data yet, we can stand some
- // more bytes. This is to work around cases where hwm=0,
- // such as the repl. Also, if the push() triggered a
- // readable event, and the user called read(largeNumber) such that
- // needReadable was set, then we ought to push more, so that another
- // 'readable' event will be triggered.
- function needMoreData(state) {
- return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
- }
- Readable.prototype.isPaused = function () {
- return this._readableState.flowing === false;
- };
- // backwards compatibility.
- Readable.prototype.setEncoding = function (enc) {
- if (!StringDecoder) StringDecoder = __webpack_require__("X4X3").StringDecoder;
- this._readableState.decoder = new StringDecoder(enc);
- this._readableState.encoding = enc;
- return this;
- };
- // Don't raise the hwm > 8MB
- var MAX_HWM = 0x800000;
- function computeNewHighWaterMark(n) {
- if (n >= MAX_HWM) {
- n = MAX_HWM;
- } else {
- // Get the next highest power of 2 to prevent increasing hwm excessively in
- // tiny amounts
- n--;
- n |= n >>> 1;
- n |= n >>> 2;
- n |= n >>> 4;
- n |= n >>> 8;
- n |= n >>> 16;
- n++;
- }
- return n;
- }
- // This function is designed to be inlinable, so please take care when making
- // changes to the function body.
- function howMuchToRead(n, state) {
- if (n <= 0 || state.length === 0 && state.ended) return 0;
- if (state.objectMode) return 1;
- if (n !== n) {
- // Only flow one buffer at a time
- if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
- }
- // If we're asking for more than the current hwm, then raise the hwm.
- if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
- if (n <= state.length) return n;
- // Don't have enough
- if (!state.ended) {
- state.needReadable = true;
- return 0;
- }
- return state.length;
- }
- // you can override either this method, or the async _read(n) below.
- Readable.prototype.read = function (n) {
- debug('read', n);
- n = parseInt(n, 10);
- var state = this._readableState;
- var nOrig = n;
- if (n !== 0) state.emittedReadable = false;
- // if we're doing read(0) to trigger a readable event, but we
- // already have a bunch of data in the buffer, then just trigger
- // the 'readable' event and move on.
- if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
- debug('read: emitReadable', state.length, state.ended);
- if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
- return null;
- }
- n = howMuchToRead(n, state);
- // if we've ended, and we're now clear, then finish it up.
- if (n === 0 && state.ended) {
- if (state.length === 0) endReadable(this);
- return null;
- }
- // All the actual chunk generation logic needs to be
- // *below* the call to _read. The reason is that in certain
- // synthetic stream cases, such as passthrough streams, _read
- // may be a completely synchronous operation which may change
- // the state of the read buffer, providing enough data when
- // before there was *not* enough.
- //
- // So, the steps are:
- // 1. Figure out what the state of things will be after we do
- // a read from the buffer.
- //
- // 2. If that resulting state will trigger a _read, then call _read.
- // Note that this may be asynchronous, or synchronous. Yes, it is
- // deeply ugly to write APIs this way, but that still doesn't mean
- // that the Readable class should behave improperly, as streams are
- // designed to be sync/async agnostic.
- // Take note if the _read call is sync or async (ie, if the read call
- // has returned yet), so that we know whether or not it's safe to emit
- // 'readable' etc.
- //
- // 3. Actually pull the requested chunks out of the buffer and return.
- // if we need a readable event, then we need to do some reading.
- var doRead = state.needReadable;
- debug('need readable', doRead);
- // if we currently have less than the highWaterMark, then also read some
- if (state.length === 0 || state.length - n < state.highWaterMark) {
- doRead = true;
- debug('length less than watermark', doRead);
- }
- // however, if we've ended, then there's no point, and if we're already
- // reading, then it's unnecessary.
- if (state.ended || state.reading) {
- doRead = false;
- debug('reading or ended', doRead);
- } else if (doRead) {
- debug('do read');
- state.reading = true;
- state.sync = true;
- // if the length is currently zero, then we *need* a readable event.
- if (state.length === 0) state.needReadable = true;
- // call internal read method
- this._read(state.highWaterMark);
- state.sync = false;
- // If _read pushed data synchronously, then `reading` will be false,
- // and we need to re-evaluate how much data we can return to the user.
- if (!state.reading) n = howMuchToRead(nOrig, state);
- }
- var ret;
- if (n > 0) ret = fromList(n, state);else ret = null;
- if (ret === null) {
- state.needReadable = true;
- n = 0;
- } else {
- state.length -= n;
- }
- if (state.length === 0) {
- // If we have nothing in the buffer, then we want to know
- // as soon as we *do* get something into the buffer.
- if (!state.ended) state.needReadable = true;
- // If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended) endReadable(this);
- }
- if (ret !== null) this.emit('data', ret);
- return ret;
- };
- function onEofChunk(stream, state) {
- if (state.ended) return;
- if (state.decoder) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) {
- state.buffer.push(chunk);
- state.length += state.objectMode ? 1 : chunk.length;
- }
- }
- state.ended = true;
- // emit 'readable' now to make sure it gets picked up.
- emitReadable(stream);
- }
- // Don't emit readable right away in sync mode, because this can trigger
- // another read() call => stack overflow. This way, it might trigger
- // a nextTick recursion warning, but that's not so bad.
- function emitReadable(stream) {
- var state = stream._readableState;
- state.needReadable = false;
- if (!state.emittedReadable) {
- debug('emitReadable', state.flowing);
- state.emittedReadable = true;
- if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);
- }
- }
- function emitReadable_(stream) {
- debug('emit readable');
- stream.emit('readable');
- flow(stream);
- }
- // at this point, the user has presumably seen the 'readable' event,
- // and called read() to consume some data. that may have triggered
- // in turn another _read(n) call, in which case reading = true if
- // it's in progress.
- // However, if we're not ended, or reading, and the length < hwm,
- // then go ahead and try to read some more preemptively.
- function maybeReadMore(stream, state) {
- if (!state.readingMore) {
- state.readingMore = true;
- pna.nextTick(maybeReadMore_, stream, state);
- }
- }
- function maybeReadMore_(stream, state) {
- var len = state.length;
- while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
- debug('maybeReadMore read 0');
- stream.read(0);
- if (len === state.length)
- // didn't get any data, stop spinning.
- break;else len = state.length;
- }
- state.readingMore = false;
- }
- // abstract method. to be overridden in specific implementation classes.
- // call cb(er, data) where data is <= n in length.
- // for virtual (non-string, non-buffer) streams, "length" is somewhat
- // arbitrary, and perhaps not very meaningful.
- Readable.prototype._read = function (n) {
- this.emit('error', new Error('_read() is not implemented'));
- };
- Readable.prototype.pipe = function (dest, pipeOpts) {
- var src = this;
- var state = this._readableState;
- switch (state.pipesCount) {
- case 0:
- state.pipes = dest;
- break;
- case 1:
- state.pipes = [state.pipes, dest];
- break;
- default:
- state.pipes.push(dest);
- break;
- }
- state.pipesCount += 1;
- debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
- var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
- var endFn = doEnd ? onend : unpipe;
- if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);
- dest.on('unpipe', onunpipe);
- function onunpipe(readable, unpipeInfo) {
- debug('onunpipe');
- if (readable === src) {
- if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
- unpipeInfo.hasUnpiped = true;
- cleanup();
- }
- }
- }
- function onend() {
- debug('onend');
- dest.end();
- }
- // when the dest drains, it reduces the awaitDrain counter
- // on the source. This would be more elegant with a .once()
- // handler in flow(), but adding and removing repeatedly is
- // too slow.
- var ondrain = pipeOnDrain(src);
- dest.on('drain', ondrain);
- var cleanedUp = false;
- function cleanup() {
- debug('cleanup');
- // cleanup event handlers once the pipe is broken
- dest.removeListener('close', onclose);
- dest.removeListener('finish', onfinish);
- dest.removeListener('drain', ondrain);
- dest.removeListener('error', onerror);
- dest.removeListener('unpipe', onunpipe);
- src.removeListener('end', onend);
- src.removeListener('end', unpipe);
- src.removeListener('data', ondata);
- cleanedUp = true;
- // if the reader is waiting for a drain event from this
- // specific writer, then it would cause it to never start
- // flowing again.
- // So, if this is awaiting a drain, then we just call it now.
- // If we don't know, then assume that we are waiting for one.
- if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
- }
- // If the user pushes more data while we're writing to dest then we'll end up
- // in ondata again. However, we only want to increase awaitDrain once because
- // dest will only emit one 'drain' event for the multiple writes.
- // => Introduce a guard on increasing awaitDrain.
- var increasedAwaitDrain = false;
- src.on('data', ondata);
- function ondata(chunk) {
- debug('ondata');
- increasedAwaitDrain = false;
- var ret = dest.write(chunk);
- if (false === ret && !increasedAwaitDrain) {
- // If the user unpiped during `dest.write()`, it is possible
- // to get stuck in a permanently paused state if that write
- // also returned false.
- // => Check whether `dest` is still a piping destination.
- if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
- debug('false write response, pause', state.awaitDrain);
- state.awaitDrain++;
- increasedAwaitDrain = true;
- }
- src.pause();
- }
- }
- // if the dest has an error, then stop piping into it.
- // however, don't suppress the throwing behavior for this.
- function onerror(er) {
- debug('onerror', er);
- unpipe();
- dest.removeListener('error', onerror);
- if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
- }
- // Make sure our error handler is attached before userland ones.
- prependListener(dest, 'error', onerror);
- // Both close and finish should trigger unpipe, but only once.
- function onclose() {
- dest.removeListener('finish', onfinish);
- unpipe();
- }
- dest.once('close', onclose);
- function onfinish() {
- debug('onfinish');
- dest.removeListener('close', onclose);
- unpipe();
- }
- dest.once('finish', onfinish);
- function unpipe() {
- debug('unpipe');
- src.unpipe(dest);
- }
- // tell the dest that it's being piped to
- dest.emit('pipe', src);
- // start the flow if it hasn't been started already.
- if (!state.flowing) {
- debug('pipe resume');
- src.resume();
- }
- return dest;
- };
- function pipeOnDrain(src) {
- return function () {
- var state = src._readableState;
- debug('pipeOnDrain', state.awaitDrain);
- if (state.awaitDrain) state.awaitDrain--;
- if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
- state.flowing = true;
- flow(src);
- }
- };
- }
- Readable.prototype.unpipe = function (dest) {
- var state = this._readableState;
- var unpipeInfo = { hasUnpiped: false };
- // if we're not piping anywhere, then do nothing.
- if (state.pipesCount === 0) return this;
- // just one destination. most common case.
- if (state.pipesCount === 1) {
- // passed in one, but it's not the right one.
- if (dest && dest !== state.pipes) return this;
- if (!dest) dest = state.pipes;
- // got a match.
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- if (dest) dest.emit('unpipe', this, unpipeInfo);
- return this;
- }
- // slow case. multiple pipe destinations.
- if (!dest) {
- // remove all.
- var dests = state.pipes;
- var len = state.pipesCount;
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- for (var i = 0; i < len; i++) {
- dests[i].emit('unpipe', this, { hasUnpiped: false });
- }return this;
- }
- // try to find the right one.
- var index = indexOf(state.pipes, dest);
- if (index === -1) return this;
- state.pipes.splice(index, 1);
- state.pipesCount -= 1;
- if (state.pipesCount === 1) state.pipes = state.pipes[0];
- dest.emit('unpipe', this, unpipeInfo);
- return this;
- };
- // set up data events if they are asked for
- // Ensure readable listeners eventually get something
- Readable.prototype.on = function (ev, fn) {
- var res = Stream.prototype.on.call(this, ev, fn);
- if (ev === 'data') {
- // Start flowing on next tick if stream isn't explicitly paused
- if (this._readableState.flowing !== false) this.resume();
- } else if (ev === 'readable') {
- var state = this._readableState;
- if (!state.endEmitted && !state.readableListening) {
- state.readableListening = state.needReadable = true;
- state.emittedReadable = false;
- if (!state.reading) {
- pna.nextTick(nReadingNextTick, this);
- } else if (state.length) {
- emitReadable(this);
- }
- }
- }
- return res;
- };
- Readable.prototype.addListener = Readable.prototype.on;
- function nReadingNextTick(self) {
- debug('readable nexttick read 0');
- self.read(0);
- }
- // pause() and resume() are remnants of the legacy readable stream API
- // If the user uses them, then switch into old mode.
- Readable.prototype.resume = function () {
- var state = this._readableState;
- if (!state.flowing) {
- debug('resume');
- state.flowing = true;
- resume(this, state);
- }
- return this;
- };
- function resume(stream, state) {
- if (!state.resumeScheduled) {
- state.resumeScheduled = true;
- pna.nextTick(resume_, stream, state);
- }
- }
- function resume_(stream, state) {
- if (!state.reading) {
- debug('resume read 0');
- stream.read(0);
- }
- state.resumeScheduled = false;
- state.awaitDrain = 0;
- stream.emit('resume');
- flow(stream);
- if (state.flowing && !state.reading) stream.read(0);
- }
- Readable.prototype.pause = function () {
- debug('call pause flowing=%j', this._readableState.flowing);
- if (false !== this._readableState.flowing) {
- debug('pause');
- this._readableState.flowing = false;
- this.emit('pause');
- }
- return this;
- };
- function flow(stream) {
- var state = stream._readableState;
- debug('flow', state.flowing);
- while (state.flowing && stream.read() !== null) {}
- }
- // wrap an old-style stream as the async data source.
- // This is *not* part of the readable stream interface.
- // It is an ugly unfortunate mess of history.
- Readable.prototype.wrap = function (stream) {
- var _this = this;
- var state = this._readableState;
- var paused = false;
- stream.on('end', function () {
- debug('wrapped end');
- if (state.decoder && !state.ended) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) _this.push(chunk);
- }
- _this.push(null);
- });
- stream.on('data', function (chunk) {
- debug('wrapped data');
- if (state.decoder) chunk = state.decoder.write(chunk);
- // don't skip over falsy values in objectMode
- if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
- var ret = _this.push(chunk);
- if (!ret) {
- paused = true;
- stream.pause();
- }
- });
- // proxy all the other methods.
- // important when wrapping filters and duplexes.
- for (var i in stream) {
- if (this[i] === undefined && typeof stream[i] === 'function') {
- this[i] = function (method) {
- return function () {
- return stream[method].apply(stream, arguments);
- };
- }(i);
- }
- }
- // proxy certain important events.
- for (var n = 0; n < kProxyEvents.length; n++) {
- stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
- }
- // when we try to consume some more bytes, simply unpause the
- // underlying stream.
- this._read = function (n) {
- debug('wrapped _read', n);
- if (paused) {
- paused = false;
- stream.resume();
- }
- };
- return this;
- };
- Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function () {
- return this._readableState.highWaterMark;
- }
- });
- // exposed for testing purposes only.
- Readable._fromList = fromList;
- // Pluck off n bytes from an array of buffers.
- // Length is the combined lengths of all the buffers in the list.
- // This function is designed to be inlinable, so please take care when making
- // changes to the function body.
- function fromList(n, state) {
- // nothing buffered
- if (state.length === 0) return null;
- var ret;
- if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
- // read it all, truncate the list
- if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
- state.buffer.clear();
- } else {
- // read part of list
- ret = fromListPartial(n, state.buffer, state.decoder);
- }
- return ret;
- }
- // Extracts only enough buffered data to satisfy the amount requested.
- // This function is designed to be inlinable, so please take care when making
- // changes to the function body.
- function fromListPartial(n, list, hasStrings) {
- var ret;
- if (n < list.head.data.length) {
- // slice is the same for buffers and strings
- ret = list.head.data.slice(0, n);
- list.head.data = list.head.data.slice(n);
- } else if (n === list.head.data.length) {
- // first chunk is a perfect match
- ret = list.shift();
- } else {
- // result spans more than one buffer
- ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
- }
- return ret;
- }
- // Copies a specified amount of characters from the list of buffered data
- // chunks.
- // This function is designed to be inlinable, so please take care when making
- // changes to the function body.
- function copyFromBufferString(n, list) {
- var p = list.head;
- var c = 1;
- var ret = p.data;
- n -= ret.length;
- while (p = p.next) {
- var str = p.data;
- var nb = n > str.length ? str.length : n;
- if (nb === str.length) ret += str;else ret += str.slice(0, n);
- n -= nb;
- if (n === 0) {
- if (nb === str.length) {
- ++c;
- if (p.next) list.head = p.next;else list.head = list.tail = null;
- } else {
- list.head = p;
- p.data = str.slice(nb);
- }
- break;
- }
- ++c;
- }
- list.length -= c;
- return ret;
- }
- // Copies a specified amount of bytes from the list of buffered data chunks.
- // This function is designed to be inlinable, so please take care when making
- // changes to the function body.
- function copyFromBuffer(n, list) {
- var ret = Buffer.allocUnsafe(n);
- var p = list.head;
- var c = 1;
- p.data.copy(ret);
- n -= p.data.length;
- while (p = p.next) {
- var buf = p.data;
- var nb = n > buf.length ? buf.length : n;
- buf.copy(ret, ret.length - n, 0, nb);
- n -= nb;
- if (n === 0) {
- if (nb === buf.length) {
- ++c;
- if (p.next) list.head = p.next;else list.head = list.tail = null;
- } else {
- list.head = p;
- p.data = buf.slice(nb);
- }
- break;
- }
- ++c;
- }
- list.length -= c;
- return ret;
- }
- function endReadable(stream) {
- var state = stream._readableState;
- // If we get here before consuming all the bytes, then that is a
- // bug in node. Should never happen.
- if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
- if (!state.endEmitted) {
- state.ended = true;
- pna.nextTick(endReadableNT, state, stream);
- }
- }
- function endReadableNT(state, stream) {
- // Check that we didn't get one last unshift.
- if (!state.endEmitted && state.length === 0) {
- state.endEmitted = true;
- stream.readable = false;
- stream.emit('end');
- }
- }
- function indexOf(xs, x) {
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) return i;
- }
- return -1;
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("W2nU")))
- /***/ }),
- /***/ "RzOE":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("TkWM");
- var assert = utils.assert;
- var parseBytes = utils.parseBytes;
- var cachedProperty = utils.cachedProperty;
- /**
- * @param {EDDSA} eddsa - instance
- * @param {Object} params - public/private key parameters
- *
- * @param {Array<Byte>} [params.secret] - secret seed bytes
- * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
- * @param {Array<Byte>} [params.pub] - public key point encoded as bytes
- *
- */
- function KeyPair(eddsa, params) {
- this.eddsa = eddsa;
- this._secret = parseBytes(params.secret);
- if (eddsa.isPoint(params.pub))
- this._pub = params.pub;
- else
- this._pubBytes = parseBytes(params.pub);
- }
- KeyPair.fromPublic = function fromPublic(eddsa, pub) {
- if (pub instanceof KeyPair)
- return pub;
- return new KeyPair(eddsa, { pub: pub });
- };
- KeyPair.fromSecret = function fromSecret(eddsa, secret) {
- if (secret instanceof KeyPair)
- return secret;
- return new KeyPair(eddsa, { secret: secret });
- };
- KeyPair.prototype.secret = function secret() {
- return this._secret;
- };
- cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
- return this.eddsa.encodePoint(this.pub());
- });
- cachedProperty(KeyPair, 'pub', function pub() {
- if (this._pubBytes)
- return this.eddsa.decodePoint(this._pubBytes);
- return this.eddsa.g.mul(this.priv());
- });
- cachedProperty(KeyPair, 'privBytes', function privBytes() {
- var eddsa = this.eddsa;
- var hash = this.hash();
- var lastIx = eddsa.encodingLength - 1;
- var a = hash.slice(0, eddsa.encodingLength);
- a[0] &= 248;
- a[lastIx] &= 127;
- a[lastIx] |= 64;
- return a;
- });
- cachedProperty(KeyPair, 'priv', function priv() {
- return this.eddsa.decodeInt(this.privBytes());
- });
- cachedProperty(KeyPair, 'hash', function hash() {
- return this.eddsa.hash().update(this.secret()).digest();
- });
- cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
- return this.hash().slice(this.eddsa.encodingLength);
- });
- KeyPair.prototype.sign = function sign(message) {
- assert(this._secret, 'KeyPair can only verify');
- return this.eddsa.sign(message, this);
- };
- KeyPair.prototype.verify = function verify(message, sig) {
- return this.eddsa.verify(message, sig, this);
- };
- KeyPair.prototype.getSecret = function getSecret(enc) {
- assert(this._secret, 'KeyPair is public only');
- return utils.encode(this.secret(), enc);
- };
- KeyPair.prototype.getPublic = function getPublic(enc) {
- return utils.encode(this.pubBytes(), enc);
- };
- module.exports = KeyPair;
- /***/ }),
- /***/ "SAez":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const encoders = exports;
- encoders.der = __webpack_require__("ps4E");
- encoders.pem = __webpack_require__("VqvS");
- /***/ }),
- /***/ "SDM6":
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__("DsFX");
- /***/ }),
- /***/ "SsjP":
- /***/ (function(module, exports, __webpack_require__) {
- var xor = __webpack_require__("H2Pp")
- var Buffer = __webpack_require__("X3l8").Buffer
- var incr32 = __webpack_require__("4sPJ")
- function getBlock (self) {
- var out = self._cipher.encryptBlockRaw(self._prev)
- incr32(self._prev)
- return out
- }
- var blockSize = 16
- exports.encrypt = function (self, chunk) {
- var chunkNum = Math.ceil(chunk.length / blockSize)
- var start = self._cache.length
- self._cache = Buffer.concat([
- self._cache,
- Buffer.allocUnsafe(chunkNum * blockSize)
- ])
- for (var i = 0; i < chunkNum; i++) {
- var out = getBlock(self)
- var offset = start + i * blockSize
- self._cache.writeUInt32BE(out[0], offset + 0)
- self._cache.writeUInt32BE(out[1], offset + 4)
- self._cache.writeUInt32BE(out[2], offset + 8)
- self._cache.writeUInt32BE(out[3], offset + 12)
- }
- var pad = self._cache.slice(0, chunk.length)
- self._cache = self._cache.slice(chunk.length)
- return xor(chunk, pad)
- }
- /***/ }),
- /***/ "THef":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("FZ+f")(undefined);
- // imports
- // module
- exports.push([module.i, "@font-face{font-family:iconfont;src:url(" + __webpack_require__("2Ml6") + ");src:url(" + __webpack_require__("2Ml6") + "?#iefix) format(\"embedded-opentype\"),url(\"data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAM0AAsAAAAABwAAAALlAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcAqCCIIEATYCJAMICwYABCAFhG0HMRsrBsgOJQlBwgDgAQVABA/3o+b92qr05kxcStsLoGsu8cMTaZDm4/1fnfZtF5UyqJ0B2ClNiIqcsPIUFRCOYCTcblgBaKbtpntZOJx2PcA7oFzuPxhg/DXA/7BPViCBecPYTQQO4TyBct1SSOtqUyv4yIBpgbgyG4fAJ6eQtaSHUqGoWZt9kPbBU2nyTH6EN/z78c98+JDIUyBr67LWABU/b8MoZd49r5cigDnfZZAjxSSQEXu1hg2KDExSlAcBD/1gX+nBz9tuN2Xs9o9HEAWQWgk6VcY9MTHrVosSkLn3/j3gflQUeWtrJXjmU9R+Evk9D2tFD55hjwvPc0M/vkz0vPhmfP4KCnl+Lcbz3HWd7kVkh3/bCT7vKtg+v2p9/brt7duON286Ea9d0LLUihgjOr4yf7V5/+sL1xoIutzWdSbgX8CZjq5Lf/8EnUj88zeM7xV4IrBsGbKLsLehYY3PlBPKZtgt1dbe9aG94x63Qs+G5Z0QaXFJJvLw0tKwBKnUJg/LJM3eUaHvQqqVVFWhgopTpdorph9WP0uK76+uDkju6lMB8HCQR6bsf//Gs/83fg4Elvwv1WXgx63mRM7qZwKld2UM/m5Fng/IW2w2CCQZWioDiT2ed11WrhwPoFnqfRkraXoVXSjNMS1IlOiCVKlBZIadhFyFRSiUWoJyE/SbKzTgFJGVYdyKAqHWbUhU+wSpWo+RGfYz5Jr9gkJtKFDuIEL3rDAcZlTN6ZCgBjw8gc2EOTSkFkikN1PjiG2IZ9kc3065y+zGmdOzxbCeOiifY4Fr1JglhIY1zuxYVS6jNhvDTs4slIg0kxDOovSZy7o3pRFmB2QNRw0RKANs2ATMjGAcNNpcQKXPN6OMRtgM4S11A8p2FOdiHhzLlCajB1IvcPSqu5drXEYZZREEDabhGDtMVXSUDQYYzFk/yoIihDSmET6nIulaI62vIG19kf3rtkA5IE0CDk2V3JmJGOEUAAAAAA==\") format(\"woff2\"),url(" + __webpack_require__("sHTV") + ") format(\"woff\"),url(" + __webpack_require__("+8RM") + ") format(\"truetype\"),url(" + __webpack_require__("N85c") + "#iconfont) format(\"svg\")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-picture:before{content:\"\\E6AF\"}#loading-load{position:absolute;top:50%;margin-top:-4px;left:50%;margin-left:-4px;font-size:6px;width:8px;height:8px;border-radius:50%;text-indent:-9999em;-webkit-animation:loading-load 1.1s infinite ease;animation:loading-load 1.1s infinite ease}@keyframes loading-load{0%,to{box-shadow:0 -2.6em 0 0 #fff,1.8em -1.8em 0 0 hsla(0,0%,100%,.2),2.5em 0 0 0 hsla(0,0%,100%,.2),1.75em 1.75em 0 0 hsla(0,0%,100%,.2),0 2.5em 0 0 hsla(0,0%,100%,.2),-1.8em 1.8em 0 0 hsla(0,0%,100%,.2),-2.6em 0 0 0 hsla(0,0%,100%,.5),-1.8em -1.8em 0 0 hsla(0,0%,100%,.7)}12.5%{box-shadow:0 -2.6em 0 0 hsla(0,0%,100%,.7),1.8em -1.8em 0 0 #fff,2.5em 0 0 0 hsla(0,0%,100%,.2),1.75em 1.75em 0 0 hsla(0,0%,100%,.2),0 2.5em 0 0 hsla(0,0%,100%,.2),-1.8em 1.8em 0 0 hsla(0,0%,100%,.2),-2.6em 0 0 0 hsla(0,0%,100%,.2),-1.8em -1.8em 0 0 hsla(0,0%,100%,.5)}25%{box-shadow:0 -2.6em 0 0 hsla(0,0%,100%,.5),1.8em -1.8em 0 0 hsla(0,0%,100%,.7),2.5em 0 0 0 hsla(0,0%,100%,.5),1.75em 1.75em 0 0 hsla(0,0%,100%,.2),0 2.5em 0 0 hsla(0,0%,100%,.2),-1.8em 1.8em 0 0 hsla(0,0%,100%,.2),-2.6em 0 0 0 hsla(0,0%,100%,.2),-1.8em -1.8em 0 0 hsla(0,0%,100%,.2)}37.5%{box-shadow:0 -2.6em 0 0 hsla(0,0%,100%,.2),1.8em -1.8em 0 0 hsla(0,0%,100%,.5),2.5em 0 0 0 hsla(0,0%,100%,.7),1.75em 1.75em 0 0 rgba(255,v,255,.2),0 2.5em 0 0 hsla(0,0%,100%,.2),-1.8em 1.8em 0 0 hsla(0,0%,100%,.2),-2.6em 0 0 0 hsla(0,0%,100%,.2),-1.8em -1.8em 0 0 hsla(0,0%,100%,.2)}50%{box-shadow:0 -2.6em 0 0 rgba(255,v,255,.2),1.8em -1.8em 0 0 hsla(0,0%,100%,.2),2.5em 0 0 0 hsla(0,0%,100%,.5),1.75em 1.75em 0 0 hsla(0,0%,100%,.7),0 2.5em 0 0 #fff,-1.8em 1.8em 0 0 hsla(0,0%,100%,.2),-2.6em 0 0 0 hsla(0,0%,100%,.2),-1.8em -1.8em 0 0 hsla(0,0%,100%,.2)}62.5%{box-shadow:0 -2.6em 0 0 hsla(0,0%,100%,.2),1.8em -1.8em 0 0 hsla(0,0%,100%,.2),2.5em 0 0 0 hsla(0,0%,100%,.2),1.75em 1.75em 0 0 hsla(0,0%,100%,.5),0 2.5em 0 0 hsla(0,0%,100%,.7),-1.8em 1.8em 0 0 #fff,-2.6em 0 0 0 hsla(0,0%,100%,.2),-1.8em -1.8em 0 0 hsla(0,0%,100%,.2)}75%{box-shadow:0 -2.6em 0 0 hsla(0,0%,100%,.2),1.8em -1.8em 0 0 hsla(0,0%,100%,.2),2.5em 0 0 0 hsla(0,0%,100%,.2),1.75em 1.75em 0 0 hsla(0,0%,100%,.2),0 2.5em 0 0 hsla(0,0%,100%,.5),-1.8em 1.8em 0 0 hsla(0,0%,100%,.7),-2.6em 0 0 0 #fff,-1.8em -1.8em 0 0 hsla(0,0%,100%,.2)}87.5%{box-shadow:0 -2.6em 0 0 hsla(0,0%,100%,.2),1.8em -1.8em 0 0 hsla(0,0%,100%,.2),2.5em 0 0 0 hsla(0,0%,100%,.2),1.75em 1.75em 0 0 hsla(0,0%,100%,.2),0 2.5em 0 0 hsla(0,0%,100%,.2),-1.8em 1.8em 0 0 hsla(0,0%,100%,.5),-2.6em 0 0 0 hsla(0,0%,100%,.7),-1.8em -1.8em 0 0 #fff}}@keyframes load{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}", ""]);
- // exports
- /***/ }),
- /***/ "TkWM":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = exports;
- var BN = __webpack_require__("geuY");
- var minAssert = __webpack_require__("08Lv");
- var minUtils = __webpack_require__("tpuU");
- utils.assert = minAssert;
- utils.toArray = minUtils.toArray;
- utils.zero2 = minUtils.zero2;
- utils.toHex = minUtils.toHex;
- utils.encode = minUtils.encode;
- // Represent num in a w-NAF form
- function getNAF(num, w, bits) {
- var naf = new Array(Math.max(num.bitLength(), bits) + 1);
- naf.fill(0);
- var ws = 1 << (w + 1);
- var k = num.clone();
- for (var i = 0; i < naf.length; i++) {
- var z;
- var mod = k.andln(ws - 1);
- if (k.isOdd()) {
- if (mod > (ws >> 1) - 1)
- z = (ws >> 1) - mod;
- else
- z = mod;
- k.isubn(z);
- } else {
- z = 0;
- }
- naf[i] = z;
- k.iushrn(1);
- }
- return naf;
- }
- utils.getNAF = getNAF;
- // Represent k1, k2 in a Joint Sparse Form
- function getJSF(k1, k2) {
- var jsf = [
- [],
- [],
- ];
- k1 = k1.clone();
- k2 = k2.clone();
- var d1 = 0;
- var d2 = 0;
- var m8;
- while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {
- // First phase
- var m14 = (k1.andln(3) + d1) & 3;
- var m24 = (k2.andln(3) + d2) & 3;
- if (m14 === 3)
- m14 = -1;
- if (m24 === 3)
- m24 = -1;
- var u1;
- if ((m14 & 1) === 0) {
- u1 = 0;
- } else {
- m8 = (k1.andln(7) + d1) & 7;
- if ((m8 === 3 || m8 === 5) && m24 === 2)
- u1 = -m14;
- else
- u1 = m14;
- }
- jsf[0].push(u1);
- var u2;
- if ((m24 & 1) === 0) {
- u2 = 0;
- } else {
- m8 = (k2.andln(7) + d2) & 7;
- if ((m8 === 3 || m8 === 5) && m14 === 2)
- u2 = -m24;
- else
- u2 = m24;
- }
- jsf[1].push(u2);
- // Second phase
- if (2 * d1 === u1 + 1)
- d1 = 1 - d1;
- if (2 * d2 === u2 + 1)
- d2 = 1 - d2;
- k1.iushrn(1);
- k2.iushrn(1);
- }
- return jsf;
- }
- utils.getJSF = getJSF;
- function cachedProperty(obj, name, computer) {
- var key = '_' + name;
- obj.prototype[name] = function cachedProperty() {
- return this[key] !== undefined ? this[key] :
- this[key] = computer.call(this);
- };
- }
- utils.cachedProperty = cachedProperty;
- function parseBytes(bytes) {
- return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
- bytes;
- }
- utils.parseBytes = parseBytes;
- function intFromLE(bytes) {
- return new BN(bytes, 'hex', 'le');
- }
- utils.intFromLE = intFromLE;
- /***/ }),
- /***/ "TnCn":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const constants = exports;
- // Helper
- constants._reverse = function reverse(map) {
- const res = {};
- Object.keys(map).forEach(function(key) {
- // Convert key to integer if it is stringified
- if ((key | 0) == key)
- key = key | 0;
- const value = map[key];
- res[value] = key;
- });
- return res;
- };
- constants.der = __webpack_require__("C1C2");
- /***/ }),
- /***/ "U6yG":
- /***/ (function(module, exports) {
- exports.encrypt = function (self, block) {
- return self._cipher.encryptBlock(block)
- }
- exports.decrypt = function (self, block) {
- return self._cipher.decryptBlock(block)
- }
- /***/ }),
- /***/ "UBa7":
- /***/ (function(module, exports) {
- exports['des-ecb'] = {
- key: 8,
- iv: 0
- }
- exports['des-cbc'] = exports.des = {
- key: 8,
- iv: 8
- }
- exports['des-ede3-cbc'] = exports.des3 = {
- key: 24,
- iv: 8
- }
- exports['des-ede3'] = {
- key: 24,
- iv: 0
- }
- exports['des-ede-cbc'] = {
- key: 16,
- iv: 8
- }
- exports['des-ede'] = {
- key: 16,
- iv: 0
- }
- /***/ }),
- /***/ "UPHp":
- /***/ (function(module, exports, __webpack_require__) {
- var Buffer = __webpack_require__("X3l8").Buffer
- var ZEROES = Buffer.alloc(16, 0)
- function toArray (buf) {
- return [
- buf.readUInt32BE(0),
- buf.readUInt32BE(4),
- buf.readUInt32BE(8),
- buf.readUInt32BE(12)
- ]
- }
- function fromArray (out) {
- var buf = Buffer.allocUnsafe(16)
- buf.writeUInt32BE(out[0] >>> 0, 0)
- buf.writeUInt32BE(out[1] >>> 0, 4)
- buf.writeUInt32BE(out[2] >>> 0, 8)
- buf.writeUInt32BE(out[3] >>> 0, 12)
- return buf
- }
- function GHASH (key) {
- this.h = key
- this.state = Buffer.alloc(16, 0)
- this.cache = Buffer.allocUnsafe(0)
- }
- // from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html
- // by Juho Vähä-Herttua
- GHASH.prototype.ghash = function (block) {
- var i = -1
- while (++i < block.length) {
- this.state[i] ^= block[i]
- }
- this._multiply()
- }
- GHASH.prototype._multiply = function () {
- var Vi = toArray(this.h)
- var Zi = [0, 0, 0, 0]
- var j, xi, lsbVi
- var i = -1
- while (++i < 128) {
- xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0
- if (xi) {
- // Z_i+1 = Z_i ^ V_i
- Zi[0] ^= Vi[0]
- Zi[1] ^= Vi[1]
- Zi[2] ^= Vi[2]
- Zi[3] ^= Vi[3]
- }
- // Store the value of LSB(V_i)
- lsbVi = (Vi[3] & 1) !== 0
- // V_i+1 = V_i >> 1
- for (j = 3; j > 0; j--) {
- Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)
- }
- Vi[0] = Vi[0] >>> 1
- // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R
- if (lsbVi) {
- Vi[0] = Vi[0] ^ (0xe1 << 24)
- }
- }
- this.state = fromArray(Zi)
- }
- GHASH.prototype.update = function (buf) {
- this.cache = Buffer.concat([this.cache, buf])
- var chunk
- while (this.cache.length >= 16) {
- chunk = this.cache.slice(0, 16)
- this.cache = this.cache.slice(16)
- this.ghash(chunk)
- }
- }
- GHASH.prototype.final = function (abl, bl) {
- if (this.cache.length) {
- this.ghash(Buffer.concat([this.cache, ZEROES], 16))
- }
- this.ghash(fromArray([0, abl, 0, bl]))
- return this.state
- }
- module.exports = GHASH
- /***/ }),
- /***/ "UcPO":
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__("vzCy").EventEmitter;
- /***/ }),
- /***/ "VI/i":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = __webpack_require__("rOku")
- exports.createHash = exports.Hash = __webpack_require__("BVsN")
- exports.createHmac = exports.Hmac = __webpack_require__("ARY+")
- var algos = __webpack_require__("O+gO")
- var algoKeys = Object.keys(algos)
- var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)
- exports.getHashes = function () {
- return hashes
- }
- var p = __webpack_require__("/vd3")
- exports.pbkdf2 = p.pbkdf2
- exports.pbkdf2Sync = p.pbkdf2Sync
- var aes = __webpack_require__("VKDQ")
- exports.Cipher = aes.Cipher
- exports.createCipher = aes.createCipher
- exports.Cipheriv = aes.Cipheriv
- exports.createCipheriv = aes.createCipheriv
- exports.Decipher = aes.Decipher
- exports.createDecipher = aes.createDecipher
- exports.Decipheriv = aes.Decipheriv
- exports.createDecipheriv = aes.createDecipheriv
- exports.getCiphers = aes.getCiphers
- exports.listCiphers = aes.listCiphers
- var dh = __webpack_require__("PBsE")
- exports.DiffieHellmanGroup = dh.DiffieHellmanGroup
- exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup
- exports.getDiffieHellman = dh.getDiffieHellman
- exports.createDiffieHellman = dh.createDiffieHellman
- exports.DiffieHellman = dh.DiffieHellman
- var sign = __webpack_require__("KeN/")
- exports.createSign = sign.createSign
- exports.Sign = sign.Sign
- exports.createVerify = sign.createVerify
- exports.Verify = sign.Verify
- exports.createECDH = __webpack_require__("gw8B")
- var publicEncrypt = __webpack_require__("9P96")
- exports.publicEncrypt = publicEncrypt.publicEncrypt
- exports.privateEncrypt = publicEncrypt.privateEncrypt
- exports.publicDecrypt = publicEncrypt.publicDecrypt
- exports.privateDecrypt = publicEncrypt.privateDecrypt
- // the least I can do is make error messages for the rest of the node.js/crypto api.
- // ;[
- // 'createCredentials'
- // ].forEach(function (name) {
- // exports[name] = function () {
- // throw new Error([
- // 'sorry, ' + name + ' is not implemented yet',
- // 'we accept pull requests',
- // 'https://github.com/crypto-browserify/crypto-browserify'
- // ].join('\n'))
- // }
- // })
- var rf = __webpack_require__("4R/o")
- exports.randomFill = rf.randomFill
- exports.randomFillSync = rf.randomFillSync
- exports.createCredentials = function () {
- throw new Error([
- 'sorry, createCredentials is not implemented yet',
- 'we accept pull requests',
- 'https://github.com/crypto-browserify/crypto-browserify'
- ].join('\n'))
- }
- exports.constants = {
- 'DH_CHECK_P_NOT_SAFE_PRIME': 2,
- 'DH_CHECK_P_NOT_PRIME': 1,
- 'DH_UNABLE_TO_CHECK_GENERATOR': 4,
- 'DH_NOT_SUITABLE_GENERATOR': 8,
- 'NPN_ENABLED': 1,
- 'ALPN_ENABLED': 1,
- 'RSA_PKCS1_PADDING': 1,
- 'RSA_SSLV23_PADDING': 2,
- 'RSA_NO_PADDING': 3,
- 'RSA_PKCS1_OAEP_PADDING': 4,
- 'RSA_X931_PADDING': 5,
- 'RSA_PKCS1_PSS_PADDING': 6,
- 'POINT_CONVERSION_COMPRESSED': 2,
- 'POINT_CONVERSION_UNCOMPRESSED': 4,
- 'POINT_CONVERSION_HYBRID': 6
- }
- /***/ }),
- /***/ "VKDQ":
- /***/ (function(module, exports, __webpack_require__) {
- var DES = __webpack_require__("IRek")
- var aes = __webpack_require__("tXf9")
- var aesModes = __webpack_require__("BCiZ")
- var desModes = __webpack_require__("UBa7")
- var ebtk = __webpack_require__("Cgw8")
- function createCipher (suite, password) {
- suite = suite.toLowerCase()
- var keyLen, ivLen
- if (aesModes[suite]) {
- keyLen = aesModes[suite].key
- ivLen = aesModes[suite].iv
- } else if (desModes[suite]) {
- keyLen = desModes[suite].key * 8
- ivLen = desModes[suite].iv
- } else {
- throw new TypeError('invalid suite type')
- }
- var keys = ebtk(password, false, keyLen, ivLen)
- return createCipheriv(suite, keys.key, keys.iv)
- }
- function createDecipher (suite, password) {
- suite = suite.toLowerCase()
- var keyLen, ivLen
- if (aesModes[suite]) {
- keyLen = aesModes[suite].key
- ivLen = aesModes[suite].iv
- } else if (desModes[suite]) {
- keyLen = desModes[suite].key * 8
- ivLen = desModes[suite].iv
- } else {
- throw new TypeError('invalid suite type')
- }
- var keys = ebtk(password, false, keyLen, ivLen)
- return createDecipheriv(suite, keys.key, keys.iv)
- }
- function createCipheriv (suite, key, iv) {
- suite = suite.toLowerCase()
- if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)
- if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })
- throw new TypeError('invalid suite type')
- }
- function createDecipheriv (suite, key, iv) {
- suite = suite.toLowerCase()
- if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)
- if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })
- throw new TypeError('invalid suite type')
- }
- function getCiphers () {
- return Object.keys(desModes).concat(aes.getCiphers())
- }
- exports.createCipher = exports.Cipher = createCipher
- exports.createCipheriv = exports.Cipheriv = createCipheriv
- exports.createDecipher = exports.Decipher = createDecipher
- exports.createDecipheriv = exports.Decipheriv = createDecipheriv
- exports.listCiphers = exports.getCiphers = getCiphers
- /***/ }),
- /***/ "VU/8":
- /***/ (function(module, exports) {
- /* globals __VUE_SSR_CONTEXT__ */
- // IMPORTANT: Do NOT use ES2015 features in this file.
- // This module is a runtime utility for cleaner component module output and will
- // be included in the final webpack user bundle.
- module.exports = function normalizeComponent (
- rawScriptExports,
- compiledTemplate,
- functionalTemplate,
- injectStyles,
- scopeId,
- moduleIdentifier /* server only */
- ) {
- var esModule
- var scriptExports = rawScriptExports = rawScriptExports || {}
- // ES6 modules interop
- var type = typeof rawScriptExports.default
- if (type === 'object' || type === 'function') {
- esModule = rawScriptExports
- scriptExports = rawScriptExports.default
- }
- // Vue.extend constructor export interop
- var options = typeof scriptExports === 'function'
- ? scriptExports.options
- : scriptExports
- // render functions
- if (compiledTemplate) {
- options.render = compiledTemplate.render
- options.staticRenderFns = compiledTemplate.staticRenderFns
- options._compiled = true
- }
- // functional template
- if (functionalTemplate) {
- options.functional = true
- }
- // scopedId
- if (scopeId) {
- options._scopeId = scopeId
- }
- var hook
- if (moduleIdentifier) { // server build
- hook = function (context) {
- // 2.3 injection
- context =
- context || // cached call
- (this.$vnode && this.$vnode.ssrContext) || // stateful
- (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
- // 2.2 with runInNewContext: true
- if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
- context = __VUE_SSR_CONTEXT__
- }
- // inject component styles
- if (injectStyles) {
- injectStyles.call(this, context)
- }
- // register component module identifier for async chunk inferrence
- if (context && context._registeredComponents) {
- context._registeredComponents.add(moduleIdentifier)
- }
- }
- // used by ssr in case component is cached and beforeCreate
- // never gets called
- options._ssrRegister = hook
- } else if (injectStyles) {
- hook = injectStyles
- }
- if (hook) {
- var functional = options.functional
- var existing = functional
- ? options.render
- : options.beforeCreate
- if (!functional) {
- // inject component registration as beforeCreate hook
- options.beforeCreate = existing
- ? [].concat(existing, hook)
- : [hook]
- } else {
- // for template-only hot-reload because in that case the render fn doesn't
- // go through the normalizer
- options._injectStyles = hook
- // register for functioal component in vue file
- options.render = function renderWithStyleInjection (h, context) {
- hook.call(context)
- return existing(h, context)
- }
- }
- }
- return {
- esModule: esModule,
- exports: scriptExports,
- options: options
- }
- }
- /***/ }),
- /***/ "ViP4":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("FZ+f")(undefined);
- // imports
- // module
- exports.push([module.i, ".vjs-big-play-button{display:none!important}.easy-player-fill-container .video-js{padding:0!important}.easy-player-fill-container .video-js .vjs-tech{object-fit:fill!important}.is-paused .vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:none!important}.easy-player-loading{position:absolute;top:50%;left:50%;width:200px;height:200px;margin-top:-100px;margin-left:-100px;z-index:9998;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;opacity:1;pointer-events:none;transition:opacity 1s cubic-bezier(0,0,.2,1)}.easy-player-loading img{width:180px;height:40px}.easy-player-loading .loading-text{letter-spacing:2px;text-align:center;color:hsla(0,0%,100%,.65);font-size:14px;font-weight:600;background-image:-webkit-linear-gradient(left,#0ff,#fff 25%,#0ff 50%,#fff 75%,#0ff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;-webkit-background-size:200% 100%;-webkit-animation:masked-animation .5s infinite linear}@keyframes masked-animation{0%{background-position:0 0}to{background-position:-100% 0}}.easy-player-btn{position:absolute;top:50%;left:50%;width:200px;height:200px;margin-top:-100px;margin-left:-100px;z-index:9998;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;opacity:1;pointer-events:none;transition:opacity 1s cubic-bezier(0,0,.2,1)}.easy-play-btn{display:-ms-flexbox!important;display:flex!important;-ms-flex-direction:row!important;flex-direction:row!important;-ms-flex-align:center!important;align-items:center!important;-ms-flex-pack:center!important;justify-content:center!important}.easy-play-btn-bofang{font-size:24px!important}", ""]);
- // exports
- /***/ }),
- /***/ "VqvS":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const inherits = __webpack_require__("LC74");
- const DEREncoder = __webpack_require__("ps4E");
- function PEMEncoder(entity) {
- DEREncoder.call(this, entity);
- this.enc = 'pem';
- }
- inherits(PEMEncoder, DEREncoder);
- module.exports = PEMEncoder;
- PEMEncoder.prototype.encode = function encode(data, options) {
- const buf = DEREncoder.prototype.encode.call(this, data);
- const p = buf.toString('base64');
- const out = [ '-----BEGIN ' + options.label + '-----' ];
- for (let i = 0; i < p.length; i += 64)
- out.push(p.slice(i, i + 64));
- out.push('-----END ' + options.label + '-----');
- return out.join('\n');
- };
- /***/ }),
- /***/ "W2nU":
- /***/ (function(module, exports) {
- // shim for using process in browser
- var process = module.exports = {};
- // cached from whatever global is present so that test runners that stub it
- // don't break things. But we need to wrap it in a try catch in case it is
- // wrapped in strict mode code which doesn't define any globals. It's inside a
- // function because try/catches deoptimize in certain engines.
- var cachedSetTimeout;
- var cachedClearTimeout;
- function defaultSetTimout() {
- throw new Error('setTimeout has not been defined');
- }
- function defaultClearTimeout () {
- throw new Error('clearTimeout has not been defined');
- }
- (function () {
- try {
- if (typeof setTimeout === 'function') {
- cachedSetTimeout = setTimeout;
- } else {
- cachedSetTimeout = defaultSetTimout;
- }
- } catch (e) {
- cachedSetTimeout = defaultSetTimout;
- }
- try {
- if (typeof clearTimeout === 'function') {
- cachedClearTimeout = clearTimeout;
- } else {
- cachedClearTimeout = defaultClearTimeout;
- }
- } catch (e) {
- cachedClearTimeout = defaultClearTimeout;
- }
- } ())
- function runTimeout(fun) {
- if (cachedSetTimeout === setTimeout) {
- //normal enviroments in sane situations
- return setTimeout(fun, 0);
- }
- // if setTimeout wasn't available but was latter defined
- if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
- cachedSetTimeout = setTimeout;
- return setTimeout(fun, 0);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedSetTimeout(fun, 0);
- } catch(e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedSetTimeout.call(null, fun, 0);
- } catch(e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
- return cachedSetTimeout.call(this, fun, 0);
- }
- }
- }
- function runClearTimeout(marker) {
- if (cachedClearTimeout === clearTimeout) {
- //normal enviroments in sane situations
- return clearTimeout(marker);
- }
- // if clearTimeout wasn't available but was latter defined
- if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
- cachedClearTimeout = clearTimeout;
- return clearTimeout(marker);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedClearTimeout(marker);
- } catch (e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedClearTimeout.call(null, marker);
- } catch (e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
- // Some versions of I.E. have different rules for clearTimeout vs setTimeout
- return cachedClearTimeout.call(this, marker);
- }
- }
- }
- var queue = [];
- var draining = false;
- var currentQueue;
- var queueIndex = -1;
- function cleanUpNextTick() {
- if (!draining || !currentQueue) {
- return;
- }
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
- }
- function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = runTimeout(cleanUpNextTick);
- draining = true;
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- runClearTimeout(timeout);
- }
- process.nextTick = function (fun) {
- var args = new Array(arguments.length - 1);
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i];
- }
- }
- queue.push(new Item(fun, args));
- if (queue.length === 1 && !draining) {
- runTimeout(drainQueue);
- }
- };
- // v8 likes predictible objects
- function Item(fun, array) {
- this.fun = fun;
- this.array = array;
- }
- Item.prototype.run = function () {
- this.fun.apply(null, this.array);
- };
- process.title = 'browser';
- process.browser = true;
- process.env = {};
- process.argv = [];
- process.version = ''; // empty string to avoid regexp issues
- process.versions = {};
- function noop() {}
- process.on = noop;
- process.addListener = noop;
- process.once = noop;
- process.off = noop;
- process.removeListener = noop;
- process.removeAllListeners = noop;
- process.emit = noop;
- process.prependListener = noop;
- process.prependOnceListener = noop;
- process.listeners = function (name) { return [] }
- process.binding = function (name) {
- throw new Error('process.binding is not supported');
- };
- process.cwd = function () { return '/' };
- process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
- };
- process.umask = function() { return 0; };
- /***/ }),
- /***/ "W2zL":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- function 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; }
- function _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) { _defineProperty(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; }
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
- var _require = __webpack_require__("EuP9"),
- Buffer = _require.Buffer;
- var _require2 = __webpack_require__(8),
- inspect = _require2.inspect;
- var custom = inspect && inspect.custom || 'inspect';
- function copyBuffer(src, target, offset) {
- Buffer.prototype.copy.call(src, target, offset);
- }
- module.exports = /*#__PURE__*/function () {
- function BufferList() {
- _classCallCheck(this, BufferList);
- this.head = null;
- this.tail = null;
- this.length = 0;
- }
- _createClass(BufferList, [{
- key: "push",
- value: function push(v) {
- var entry = {
- data: v,
- next: null
- };
- if (this.length > 0) this.tail.next = entry;else this.head = entry;
- this.tail = entry;
- ++this.length;
- }
- }, {
- key: "unshift",
- value: function unshift(v) {
- var entry = {
- data: v,
- next: this.head
- };
- if (this.length === 0) this.tail = entry;
- this.head = entry;
- ++this.length;
- }
- }, {
- key: "shift",
- value: function shift() {
- if (this.length === 0) return;
- var ret = this.head.data;
- if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
- --this.length;
- return ret;
- }
- }, {
- key: "clear",
- value: function clear() {
- this.head = this.tail = null;
- this.length = 0;
- }
- }, {
- key: "join",
- value: function join(s) {
- if (this.length === 0) return '';
- var p = this.head;
- var ret = '' + p.data;
- while (p = p.next) ret += s + p.data;
- return ret;
- }
- }, {
- key: "concat",
- value: function concat(n) {
- if (this.length === 0) return Buffer.alloc(0);
- var ret = Buffer.allocUnsafe(n >>> 0);
- var p = this.head;
- var i = 0;
- while (p) {
- copyBuffer(p.data, ret, i);
- i += p.data.length;
- p = p.next;
- }
- return ret;
- }
- // Consumes a specified amount of bytes or characters from the buffered data.
- }, {
- key: "consume",
- value: function consume(n, hasStrings) {
- var ret;
- if (n < this.head.data.length) {
- // `slice` is the same for buffers and strings.
- ret = this.head.data.slice(0, n);
- this.head.data = this.head.data.slice(n);
- } else if (n === this.head.data.length) {
- // First chunk is a perfect match.
- ret = this.shift();
- } else {
- // Result spans more than one buffer.
- ret = hasStrings ? this._getString(n) : this._getBuffer(n);
- }
- return ret;
- }
- }, {
- key: "first",
- value: function first() {
- return this.head.data;
- }
- // Consumes a specified amount of characters from the buffered data.
- }, {
- key: "_getString",
- value: function _getString(n) {
- var p = this.head;
- var c = 1;
- var ret = p.data;
- n -= ret.length;
- while (p = p.next) {
- var str = p.data;
- var nb = n > str.length ? str.length : n;
- if (nb === str.length) ret += str;else ret += str.slice(0, n);
- n -= nb;
- if (n === 0) {
- if (nb === str.length) {
- ++c;
- if (p.next) this.head = p.next;else this.head = this.tail = null;
- } else {
- this.head = p;
- p.data = str.slice(nb);
- }
- break;
- }
- ++c;
- }
- this.length -= c;
- return ret;
- }
- // Consumes a specified amount of bytes from the buffered data.
- }, {
- key: "_getBuffer",
- value: function _getBuffer(n) {
- var ret = Buffer.allocUnsafe(n);
- var p = this.head;
- var c = 1;
- p.data.copy(ret);
- n -= p.data.length;
- while (p = p.next) {
- var buf = p.data;
- var nb = n > buf.length ? buf.length : n;
- buf.copy(ret, ret.length - n, 0, nb);
- n -= nb;
- if (n === 0) {
- if (nb === buf.length) {
- ++c;
- if (p.next) this.head = p.next;else this.head = this.tail = null;
- } else {
- this.head = p;
- p.data = buf.slice(nb);
- }
- break;
- }
- ++c;
- }
- this.length -= c;
- return ret;
- }
- // Make sure the linked list only shows the minimal necessary information.
- }, {
- key: custom,
- value: function value(_, options) {
- return inspect(this, _objectSpread(_objectSpread({}, options), {}, {
- // Only inspect one level.
- depth: 0,
- // It should not recurse.
- customInspect: false
- }));
- }
- }]);
- return BufferList;
- }();
- /***/ }),
- /***/ "WrlE":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
- var codes = {};
- function createErrorType(code, message, Base) {
- if (!Base) {
- Base = Error;
- }
- function getMessage(arg1, arg2, arg3) {
- if (typeof message === 'string') {
- return message;
- } else {
- return message(arg1, arg2, arg3);
- }
- }
- var NodeError =
- /*#__PURE__*/
- function (_Base) {
- _inheritsLoose(NodeError, _Base);
- function NodeError(arg1, arg2, arg3) {
- return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;
- }
- return NodeError;
- }(Base);
- NodeError.prototype.name = Base.name;
- NodeError.prototype.code = code;
- codes[code] = NodeError;
- } // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js
- function oneOf(expected, thing) {
- if (Array.isArray(expected)) {
- var len = expected.length;
- expected = expected.map(function (i) {
- return String(i);
- });
- if (len > 2) {
- return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(', '), ", or ") + expected[len - 1];
- } else if (len === 2) {
- return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);
- } else {
- return "of ".concat(thing, " ").concat(expected[0]);
- }
- } else {
- return "of ".concat(thing, " ").concat(String(expected));
- }
- } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
- function startsWith(str, search, pos) {
- return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;
- } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
- function endsWith(str, search, this_len) {
- if (this_len === undefined || this_len > str.length) {
- this_len = str.length;
- }
- return str.substring(this_len - search.length, this_len) === search;
- } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
- function includes(str, search, start) {
- if (typeof start !== 'number') {
- start = 0;
- }
- if (start + search.length > str.length) {
- return false;
- } else {
- return str.indexOf(search, start) !== -1;
- }
- }
- createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {
- return 'The value "' + value + '" is invalid for option "' + name + '"';
- }, TypeError);
- createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {
- // determiner: 'must be' or 'must not be'
- var determiner;
- if (typeof expected === 'string' && startsWith(expected, 'not ')) {
- determiner = 'must not be';
- expected = expected.replace(/^not /, '');
- } else {
- determiner = 'must be';
- }
- var msg;
- if (endsWith(name, ' argument')) {
- // For cases like 'first argument'
- msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, 'type'));
- } else {
- var type = includes(name, '.') ? 'property' : 'argument';
- msg = "The \"".concat(name, "\" ").concat(type, " ").concat(determiner, " ").concat(oneOf(expected, 'type'));
- }
- msg += ". Received type ".concat(typeof actual);
- return msg;
- }, TypeError);
- createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');
- createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {
- return 'The ' + name + ' method is not implemented';
- });
- createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');
- createErrorType('ERR_STREAM_DESTROYED', function (name) {
- return 'Cannot call ' + name + ' after a stream was destroyed';
- });
- createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');
- createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');
- createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');
- createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);
- createErrorType('ERR_UNKNOWN_ENCODING', function (arg) {
- return 'Unknown encoding: ' + arg;
- }, TypeError);
- createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');
- module.exports.codes = codes;
- /***/ }),
- /***/ "X1+k":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"easyH5Player",staticClass:"easy-player",class:[{'easy-player-fill-container':_vm.stretch},{'hide-paused':_vm.loading},{'is-first-paused':_vm.isFirstPaused}]},[(_vm.showRightMenu)?_c('div',{ref:"versionRef",staticClass:"easy-player-right-menu",style:(_vm.versionStyle),attrs:{"oncontextmenu":"return false"}},[(_vm.showEnterprise)?_c('div',{staticClass:"menu-item"},[_c('a',{attrs:{"href":_vm.appEnterprise?_vm.appEnterprise.aboutUS:'',"target":"_blank"}},[_vm._v("关于我们")])]):_vm._e(),_vm._v(" "),_c('div',{staticClass:"menu-item"},[_c('a',{attrs:{"href":"javascript:void(0);"}},[_vm._v("版本信息 "+_vm._s(_vm.appVersion || ''))])]),_vm._v(" "),_c('div',{staticClass:"menu-item"},[_c('a',{attrs:{"href":"javascript:void(0);"},on:{"click":_vm.onTouchCopyVideoSrc}},[_vm._v("复制视频地址("+_vm._s(_vm.isStreamH265 ? 'H265' : 'H264')+")")])]),_vm._v(" "),(_vm.showEnterprise)?_c('div',{staticClass:"menu-item copy-right"},[_c('a',{attrs:{"href":_vm.appEnterprise?_vm.appEnterprise.tsingsee:'',"target":"_blank"}},[_vm._v(_vm._s(_vm.appEnterprise ? _vm.appEnterprise.copyright : ''))])]):_vm._e(),_vm._v(" "),_c('div',{staticClass:"menu-item"},[_c('a',{attrs:{"target":"_blank"},on:{"click":_vm.onTouchRightMenuClose}},[_vm._v("关闭播放")])])]):_vm._e(),_vm._v(" "),(_vm.showViewMessage)?_c('div',{staticClass:"message-view"},[_c('div',{staticClass:"title"},[_c('span',[_vm._v("调试信息")]),_vm._v(" "),_c('span',{staticStyle:{"position":"absolute","right":"10px","cursor":"pointer"},on:{"click":function($event){_vm.showViewMessage= false}}},[_vm._v("X")])]),_vm._v(" "),_c('div',{staticClass:"content"},[_vm._l((_vm.playerMessage),function(message,index){return [_c('div',{key:index,staticClass:"message",style:({bottom: (index===_vm.playerMessage.length-1)?'2px':(((_vm.playerMessage.length-1-index)*20) + "px")})},[_c('span',[_vm._v(_vm._s(message.msg))]),_c('span',[_vm._v(_vm._s(message.status))])])]})],2)]):_vm._e(),_vm._v(" "),_c('div',{ref:"videoInner",staticClass:"easy-video-player-inner"}),_vm._v(" "),_c('div',{staticClass:"easy-player-poster",style:({ backgroundImage: ("url(" + (_vm.restartSnapshot || _vm.poster) + ")")}),attrs:{"oncontextmenu":"return false"}}),_vm._v(" "),_c('div',{ref:"loadingTextInfo",staticClass:"easy-player-loading-text",style:({opacity:(!_vm.isCacheCleanUp&&_vm.showMessage?1:0)})},[_vm._l((_vm.playerMessage),function(message,index){return [_c('div',{key:index},[_c('span',[_vm._v(_vm._s(message.msg))]),_c('span',[_vm._v(_vm._s(message.status))])])]})],2),_vm._v(" "),_c('span',{directives:[{name:"show",rawName:"v-show",value:(_vm.videoTitle && !!_vm.videoUrl),expression:"videoTitle && !!videoUrl"}],staticClass:"video-title",attrs:{"title":_vm.videoTitle}},[_vm._v(_vm._s(_vm.videoTitle))])])}
- var staticRenderFns = []
- var esExports = { render: render, staticRenderFns: staticRenderFns }
- /* harmony default export */ __webpack_exports__["a"] = (esExports);
- /***/ }),
- /***/ "X3l8":
- /***/ (function(module, exports, __webpack_require__) {
- /*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
- /* eslint-disable node/no-deprecated-api */
- var buffer = __webpack_require__("EuP9")
- var Buffer = buffer.Buffer
- // alternative to using Object.keys for old browsers
- function copyProps (src, dst) {
- for (var key in src) {
- dst[key] = src[key]
- }
- }
- if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
- module.exports = buffer
- } else {
- // Copy properties from require('buffer')
- copyProps(buffer, exports)
- exports.Buffer = SafeBuffer
- }
- function SafeBuffer (arg, encodingOrOffset, length) {
- return Buffer(arg, encodingOrOffset, length)
- }
- SafeBuffer.prototype = Object.create(Buffer.prototype)
- // Copy static methods from Buffer
- copyProps(Buffer, SafeBuffer)
- SafeBuffer.from = function (arg, encodingOrOffset, length) {
- if (typeof arg === 'number') {
- throw new TypeError('Argument must not be a number')
- }
- return Buffer(arg, encodingOrOffset, length)
- }
- SafeBuffer.alloc = function (size, fill, encoding) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- var buf = Buffer(size)
- if (fill !== undefined) {
- if (typeof encoding === 'string') {
- buf.fill(fill, encoding)
- } else {
- buf.fill(fill)
- }
- } else {
- buf.fill(0)
- }
- return buf
- }
- SafeBuffer.allocUnsafe = function (size) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- return Buffer(size)
- }
- SafeBuffer.allocUnsafeSlow = function (size) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- return buffer.SlowBuffer(size)
- }
- /***/ }),
- /***/ "X4X3":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- /*<replacement>*/
- var Buffer = __webpack_require__("X3l8").Buffer;
- /*</replacement>*/
- var isEncoding = Buffer.isEncoding || function (encoding) {
- encoding = '' + encoding;
- switch (encoding && encoding.toLowerCase()) {
- case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':
- return true;
- default:
- return false;
- }
- };
- function _normalizeEncoding(enc) {
- if (!enc) return 'utf8';
- var retried;
- while (true) {
- switch (enc) {
- case 'utf8':
- case 'utf-8':
- return 'utf8';
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return 'utf16le';
- case 'latin1':
- case 'binary':
- return 'latin1';
- case 'base64':
- case 'ascii':
- case 'hex':
- return enc;
- default:
- if (retried) return; // undefined
- enc = ('' + enc).toLowerCase();
- retried = true;
- }
- }
- };
- // Do not cache `Buffer.isEncoding` when checking encoding names as some
- // modules monkey-patch it to support additional encodings
- function normalizeEncoding(enc) {
- var nenc = _normalizeEncoding(enc);
- if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
- return nenc || enc;
- }
- // StringDecoder provides an interface for efficiently splitting a series of
- // buffers into a series of JS strings without breaking apart multi-byte
- // characters.
- exports.StringDecoder = StringDecoder;
- function StringDecoder(encoding) {
- this.encoding = normalizeEncoding(encoding);
- var nb;
- switch (this.encoding) {
- case 'utf16le':
- this.text = utf16Text;
- this.end = utf16End;
- nb = 4;
- break;
- case 'utf8':
- this.fillLast = utf8FillLast;
- nb = 4;
- break;
- case 'base64':
- this.text = base64Text;
- this.end = base64End;
- nb = 3;
- break;
- default:
- this.write = simpleWrite;
- this.end = simpleEnd;
- return;
- }
- this.lastNeed = 0;
- this.lastTotal = 0;
- this.lastChar = Buffer.allocUnsafe(nb);
- }
- StringDecoder.prototype.write = function (buf) {
- if (buf.length === 0) return '';
- var r;
- var i;
- if (this.lastNeed) {
- r = this.fillLast(buf);
- if (r === undefined) return '';
- i = this.lastNeed;
- this.lastNeed = 0;
- } else {
- i = 0;
- }
- if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
- return r || '';
- };
- StringDecoder.prototype.end = utf8End;
- // Returns only complete characters in a Buffer
- StringDecoder.prototype.text = utf8Text;
- // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer
- StringDecoder.prototype.fillLast = function (buf) {
- if (this.lastNeed <= buf.length) {
- buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);
- return this.lastChar.toString(this.encoding, 0, this.lastTotal);
- }
- buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);
- this.lastNeed -= buf.length;
- };
- // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
- // continuation byte. If an invalid byte is detected, -2 is returned.
- function utf8CheckByte(byte) {
- if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
- return byte >> 6 === 0x02 ? -1 : -2;
- }
- // Checks at most 3 bytes at the end of a Buffer in order to detect an
- // incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
- // needed to complete the UTF-8 character (if applicable) are returned.
- function utf8CheckIncomplete(self, buf, i) {
- var j = buf.length - 1;
- if (j < i) return 0;
- var nb = utf8CheckByte(buf[j]);
- if (nb >= 0) {
- if (nb > 0) self.lastNeed = nb - 1;
- return nb;
- }
- if (--j < i || nb === -2) return 0;
- nb = utf8CheckByte(buf[j]);
- if (nb >= 0) {
- if (nb > 0) self.lastNeed = nb - 2;
- return nb;
- }
- if (--j < i || nb === -2) return 0;
- nb = utf8CheckByte(buf[j]);
- if (nb >= 0) {
- if (nb > 0) {
- if (nb === 2) nb = 0;else self.lastNeed = nb - 3;
- }
- return nb;
- }
- return 0;
- }
- // Validates as many continuation bytes for a multi-byte UTF-8 character as
- // needed or are available. If we see a non-continuation byte where we expect
- // one, we "replace" the validated continuation bytes we've seen so far with
- // a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding
- // behavior. The continuation byte check is included three times in the case
- // where all of the continuation bytes for a character exist in the same buffer.
- // It is also done this way as a slight performance increase instead of using a
- // loop.
- function utf8CheckExtraBytes(self, buf, p) {
- if ((buf[0] & 0xC0) !== 0x80) {
- self.lastNeed = 0;
- return '\ufffd';
- }
- if (self.lastNeed > 1 && buf.length > 1) {
- if ((buf[1] & 0xC0) !== 0x80) {
- self.lastNeed = 1;
- return '\ufffd';
- }
- if (self.lastNeed > 2 && buf.length > 2) {
- if ((buf[2] & 0xC0) !== 0x80) {
- self.lastNeed = 2;
- return '\ufffd';
- }
- }
- }
- }
- // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.
- function utf8FillLast(buf) {
- var p = this.lastTotal - this.lastNeed;
- var r = utf8CheckExtraBytes(this, buf, p);
- if (r !== undefined) return r;
- if (this.lastNeed <= buf.length) {
- buf.copy(this.lastChar, p, 0, this.lastNeed);
- return this.lastChar.toString(this.encoding, 0, this.lastTotal);
- }
- buf.copy(this.lastChar, p, 0, buf.length);
- this.lastNeed -= buf.length;
- }
- // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
- // partial character, the character's bytes are buffered until the required
- // number of bytes are available.
- function utf8Text(buf, i) {
- var total = utf8CheckIncomplete(this, buf, i);
- if (!this.lastNeed) return buf.toString('utf8', i);
- this.lastTotal = total;
- var end = buf.length - (total - this.lastNeed);
- buf.copy(this.lastChar, 0, end);
- return buf.toString('utf8', i, end);
- }
- // For UTF-8, a replacement character is added when ending on a partial
- // character.
- function utf8End(buf) {
- var r = buf && buf.length ? this.write(buf) : '';
- if (this.lastNeed) return r + '\ufffd';
- return r;
- }
- // UTF-16LE typically needs two bytes per character, but even if we have an even
- // number of bytes available, we need to check if we end on a leading/high
- // surrogate. In that case, we need to wait for the next two bytes in order to
- // decode the last character properly.
- function utf16Text(buf, i) {
- if ((buf.length - i) % 2 === 0) {
- var r = buf.toString('utf16le', i);
- if (r) {
- var c = r.charCodeAt(r.length - 1);
- if (c >= 0xD800 && c <= 0xDBFF) {
- this.lastNeed = 2;
- this.lastTotal = 4;
- this.lastChar[0] = buf[buf.length - 2];
- this.lastChar[1] = buf[buf.length - 1];
- return r.slice(0, -1);
- }
- }
- return r;
- }
- this.lastNeed = 1;
- this.lastTotal = 2;
- this.lastChar[0] = buf[buf.length - 1];
- return buf.toString('utf16le', i, buf.length - 1);
- }
- // For UTF-16LE we do not explicitly append special replacement characters if we
- // end on a partial character, we simply let v8 handle that.
- function utf16End(buf) {
- var r = buf && buf.length ? this.write(buf) : '';
- if (this.lastNeed) {
- var end = this.lastTotal - this.lastNeed;
- return r + this.lastChar.toString('utf16le', 0, end);
- }
- return r;
- }
- function base64Text(buf, i) {
- var n = (buf.length - i) % 3;
- if (n === 0) return buf.toString('base64', i);
- this.lastNeed = 3 - n;
- this.lastTotal = 3;
- if (n === 1) {
- this.lastChar[0] = buf[buf.length - 1];
- } else {
- this.lastChar[0] = buf[buf.length - 2];
- this.lastChar[1] = buf[buf.length - 1];
- }
- return buf.toString('base64', i, buf.length - n);
- }
- function base64End(buf) {
- var r = buf && buf.length ? this.write(buf) : '';
- if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);
- return r;
- }
- // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
- function simpleWrite(buf) {
- return buf.toString(this.encoding);
- }
- function simpleEnd(buf) {
- return buf && buf.length ? this.write(buf) : '';
- }
- /***/ }),
- /***/ "YQyn":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var inherits = __webpack_require__("LC74")
- var Buffer = __webpack_require__("X3l8").Buffer
- var Base = __webpack_require__("z+8S")
- var ZEROS = Buffer.alloc(128)
- var blocksize = 64
- function Hmac (alg, key) {
- Base.call(this, 'digest')
- if (typeof key === 'string') {
- key = Buffer.from(key)
- }
- this._alg = alg
- this._key = key
- if (key.length > blocksize) {
- key = alg(key)
- } else if (key.length < blocksize) {
- key = Buffer.concat([key, ZEROS], blocksize)
- }
- var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
- var opad = this._opad = Buffer.allocUnsafe(blocksize)
- for (var i = 0; i < blocksize; i++) {
- ipad[i] = key[i] ^ 0x36
- opad[i] = key[i] ^ 0x5C
- }
- this._hash = [ipad]
- }
- inherits(Hmac, Base)
- Hmac.prototype._update = function (data) {
- this._hash.push(data)
- }
- Hmac.prototype._final = function () {
- var h = this._alg(Buffer.concat(this._hash))
- return this._alg(Buffer.concat([this._opad, h]))
- }
- module.exports = Hmac
- /***/ }),
- /***/ "YSDb":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("1lLf");
- var assert = __webpack_require__("08Lv");
- function BlockHash() {
- this.pending = null;
- this.pendingTotal = 0;
- this.blockSize = this.constructor.blockSize;
- this.outSize = this.constructor.outSize;
- this.hmacStrength = this.constructor.hmacStrength;
- this.padLength = this.constructor.padLength / 8;
- this.endian = 'big';
- this._delta8 = this.blockSize / 8;
- this._delta32 = this.blockSize / 32;
- }
- exports.BlockHash = BlockHash;
- BlockHash.prototype.update = function update(msg, enc) {
- // Convert message to array, pad it, and join into 32bit blocks
- msg = utils.toArray(msg, enc);
- if (!this.pending)
- this.pending = msg;
- else
- this.pending = this.pending.concat(msg);
- this.pendingTotal += msg.length;
- // Enough data, try updating
- if (this.pending.length >= this._delta8) {
- msg = this.pending;
- // Process pending data in blocks
- var r = msg.length % this._delta8;
- this.pending = msg.slice(msg.length - r, msg.length);
- if (this.pending.length === 0)
- this.pending = null;
- msg = utils.join32(msg, 0, msg.length - r, this.endian);
- for (var i = 0; i < msg.length; i += this._delta32)
- this._update(msg, i, i + this._delta32);
- }
- return this;
- };
- BlockHash.prototype.digest = function digest(enc) {
- this.update(this._pad());
- assert(this.pending === null);
- return this._digest(enc);
- };
- BlockHash.prototype._pad = function pad() {
- var len = this.pendingTotal;
- var bytes = this._delta8;
- var k = bytes - ((len + this.padLength) % bytes);
- var res = new Array(k + this.padLength);
- res[0] = 0x80;
- for (var i = 1; i < k; i++)
- res[i] = 0;
- // Append length
- len <<= 3;
- if (this.endian === 'big') {
- for (var t = 8; t < this.padLength; t++)
- res[i++] = 0;
- res[i++] = 0;
- res[i++] = 0;
- res[i++] = 0;
- res[i++] = 0;
- res[i++] = (len >>> 24) & 0xff;
- res[i++] = (len >>> 16) & 0xff;
- res[i++] = (len >>> 8) & 0xff;
- res[i++] = len & 0xff;
- } else {
- res[i++] = len & 0xff;
- res[i++] = (len >>> 8) & 0xff;
- res[i++] = (len >>> 16) & 0xff;
- res[i++] = (len >>> 24) & 0xff;
- res[i++] = 0;
- res[i++] = 0;
- res[i++] = 0;
- res[i++] = 0;
- for (t = 8; t < this.padLength; t++)
- res[i++] = 0;
- }
- return res;
- };
- /***/ }),
- /***/ "Ya8g":
- /***/ (function(module, exports) {
- /***/ }),
- /***/ "YePo":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var assert = __webpack_require__("08Lv");
- var inherits = __webpack_require__("LC74");
- var Cipher = __webpack_require__("AWjC");
- var DES = __webpack_require__("Icsf");
- function EDEState(type, key) {
- assert.equal(key.length, 24, 'Invalid key length');
- var k1 = key.slice(0, 8);
- var k2 = key.slice(8, 16);
- var k3 = key.slice(16, 24);
- if (type === 'encrypt') {
- this.ciphers = [
- DES.create({ type: 'encrypt', key: k1 }),
- DES.create({ type: 'decrypt', key: k2 }),
- DES.create({ type: 'encrypt', key: k3 })
- ];
- } else {
- this.ciphers = [
- DES.create({ type: 'decrypt', key: k3 }),
- DES.create({ type: 'encrypt', key: k2 }),
- DES.create({ type: 'decrypt', key: k1 })
- ];
- }
- }
- function EDE(options) {
- Cipher.call(this, options);
- var state = new EDEState(this.type, this.options.key);
- this._edeState = state;
- }
- inherits(EDE, Cipher);
- module.exports = EDE;
- EDE.create = function create(options) {
- return new EDE(options);
- };
- EDE.prototype._update = function _update(inp, inOff, out, outOff) {
- var state = this._edeState;
- state.ciphers[0]._update(inp, inOff, out, outOff);
- state.ciphers[1]._update(out, outOff, out, outOff);
- state.ciphers[2]._update(out, outOff, out, outOff);
- };
- EDE.prototype._pad = DES.prototype._pad;
- EDE.prototype._unpad = DES.prototype._unpad;
- /***/ }),
- /***/ "Z7yx":
- /***/ (function(module, exports, __webpack_require__) {
- var Buffer = __webpack_require__("X3l8").Buffer
- function encryptByte (self, byteParam, decrypt) {
- var pad = self._cipher.encryptBlock(self._prev)
- var out = pad[0] ^ byteParam
- self._prev = Buffer.concat([
- self._prev.slice(1),
- Buffer.from([decrypt ? byteParam : out])
- ])
- return out
- }
- exports.encrypt = function (self, chunk, decrypt) {
- var len = chunk.length
- var out = Buffer.allocUnsafe(len)
- var i = -1
- while (++i < len) {
- out[i] = encryptByte(self, chunk[i], decrypt)
- }
- return out
- }
- /***/ }),
- /***/ "ZEc8":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- function 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; }
- function _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) { _defineProperty(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; }
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
- var _require = __webpack_require__("EuP9"),
- Buffer = _require.Buffer;
- var _require2 = __webpack_require__(2),
- inspect = _require2.inspect;
- var custom = inspect && inspect.custom || 'inspect';
- function copyBuffer(src, target, offset) {
- Buffer.prototype.copy.call(src, target, offset);
- }
- module.exports = /*#__PURE__*/function () {
- function BufferList() {
- _classCallCheck(this, BufferList);
- this.head = null;
- this.tail = null;
- this.length = 0;
- }
- _createClass(BufferList, [{
- key: "push",
- value: function push(v) {
- var entry = {
- data: v,
- next: null
- };
- if (this.length > 0) this.tail.next = entry;else this.head = entry;
- this.tail = entry;
- ++this.length;
- }
- }, {
- key: "unshift",
- value: function unshift(v) {
- var entry = {
- data: v,
- next: this.head
- };
- if (this.length === 0) this.tail = entry;
- this.head = entry;
- ++this.length;
- }
- }, {
- key: "shift",
- value: function shift() {
- if (this.length === 0) return;
- var ret = this.head.data;
- if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
- --this.length;
- return ret;
- }
- }, {
- key: "clear",
- value: function clear() {
- this.head = this.tail = null;
- this.length = 0;
- }
- }, {
- key: "join",
- value: function join(s) {
- if (this.length === 0) return '';
- var p = this.head;
- var ret = '' + p.data;
- while (p = p.next) ret += s + p.data;
- return ret;
- }
- }, {
- key: "concat",
- value: function concat(n) {
- if (this.length === 0) return Buffer.alloc(0);
- var ret = Buffer.allocUnsafe(n >>> 0);
- var p = this.head;
- var i = 0;
- while (p) {
- copyBuffer(p.data, ret, i);
- i += p.data.length;
- p = p.next;
- }
- return ret;
- }
- // Consumes a specified amount of bytes or characters from the buffered data.
- }, {
- key: "consume",
- value: function consume(n, hasStrings) {
- var ret;
- if (n < this.head.data.length) {
- // `slice` is the same for buffers and strings.
- ret = this.head.data.slice(0, n);
- this.head.data = this.head.data.slice(n);
- } else if (n === this.head.data.length) {
- // First chunk is a perfect match.
- ret = this.shift();
- } else {
- // Result spans more than one buffer.
- ret = hasStrings ? this._getString(n) : this._getBuffer(n);
- }
- return ret;
- }
- }, {
- key: "first",
- value: function first() {
- return this.head.data;
- }
- // Consumes a specified amount of characters from the buffered data.
- }, {
- key: "_getString",
- value: function _getString(n) {
- var p = this.head;
- var c = 1;
- var ret = p.data;
- n -= ret.length;
- while (p = p.next) {
- var str = p.data;
- var nb = n > str.length ? str.length : n;
- if (nb === str.length) ret += str;else ret += str.slice(0, n);
- n -= nb;
- if (n === 0) {
- if (nb === str.length) {
- ++c;
- if (p.next) this.head = p.next;else this.head = this.tail = null;
- } else {
- this.head = p;
- p.data = str.slice(nb);
- }
- break;
- }
- ++c;
- }
- this.length -= c;
- return ret;
- }
- // Consumes a specified amount of bytes from the buffered data.
- }, {
- key: "_getBuffer",
- value: function _getBuffer(n) {
- var ret = Buffer.allocUnsafe(n);
- var p = this.head;
- var c = 1;
- p.data.copy(ret);
- n -= p.data.length;
- while (p = p.next) {
- var buf = p.data;
- var nb = n > buf.length ? buf.length : n;
- buf.copy(ret, ret.length - n, 0, nb);
- n -= nb;
- if (n === 0) {
- if (nb === buf.length) {
- ++c;
- if (p.next) this.head = p.next;else this.head = this.tail = null;
- } else {
- this.head = p;
- p.data = buf.slice(nb);
- }
- break;
- }
- ++c;
- }
- this.length -= c;
- return ret;
- }
- // Make sure the linked list only shows the minimal necessary information.
- }, {
- key: custom,
- value: function value(_, options) {
- return inspect(this, _objectSpread(_objectSpread({}, options), {}, {
- // Only inspect one level.
- depth: 0,
- // It should not recurse.
- customInspect: false
- }));
- }
- }]);
- return BufferList;
- }();
- /***/ }),
- /***/ "Zq1s":
- /***/ (function(module, exports, __webpack_require__) {
- var md5 = __webpack_require__("EXeW")
- var RIPEMD160 = __webpack_require__("LYGd")
- var sha = __webpack_require__("JaR3")
- var Buffer = __webpack_require__("X3l8").Buffer
- var checkParameters = __webpack_require__("2JY6")
- var defaultEncoding = __webpack_require__("35aj")
- var toBuffer = __webpack_require__("Ml+W")
- var ZEROS = Buffer.alloc(128)
- var sizes = {
- md5: 16,
- sha1: 20,
- sha224: 28,
- sha256: 32,
- sha384: 48,
- sha512: 64,
- rmd160: 20,
- ripemd160: 20
- }
- function Hmac (alg, key, saltLen) {
- var hash = getDigest(alg)
- var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64
- if (key.length > blocksize) {
- key = hash(key)
- } else if (key.length < blocksize) {
- key = Buffer.concat([key, ZEROS], blocksize)
- }
- var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])
- var opad = Buffer.allocUnsafe(blocksize + sizes[alg])
- for (var i = 0; i < blocksize; i++) {
- ipad[i] = key[i] ^ 0x36
- opad[i] = key[i] ^ 0x5C
- }
- var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)
- ipad.copy(ipad1, 0, 0, blocksize)
- this.ipad1 = ipad1
- this.ipad2 = ipad
- this.opad = opad
- this.alg = alg
- this.blocksize = blocksize
- this.hash = hash
- this.size = sizes[alg]
- }
- Hmac.prototype.run = function (data, ipad) {
- data.copy(ipad, this.blocksize)
- var h = this.hash(ipad)
- h.copy(this.opad, this.blocksize)
- return this.hash(this.opad)
- }
- function getDigest (alg) {
- function shaFunc (data) {
- return sha(alg).update(data).digest()
- }
- function rmd160Func (data) {
- return new RIPEMD160().update(data).digest()
- }
- if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func
- if (alg === 'md5') return md5
- return shaFunc
- }
- function pbkdf2 (password, salt, iterations, keylen, digest) {
- checkParameters(iterations, keylen)
- password = toBuffer(password, defaultEncoding, 'Password')
- salt = toBuffer(salt, defaultEncoding, 'Salt')
- digest = digest || 'sha1'
- var hmac = new Hmac(digest, password, salt.length)
- var DK = Buffer.allocUnsafe(keylen)
- var block1 = Buffer.allocUnsafe(salt.length + 4)
- salt.copy(block1, 0, 0, salt.length)
- var destPos = 0
- var hLen = sizes[digest]
- var l = Math.ceil(keylen / hLen)
- for (var i = 1; i <= l; i++) {
- block1.writeUInt32BE(i, salt.length)
- var T = hmac.run(block1, hmac.ipad1)
- var U = T
- for (var j = 1; j < iterations; j++) {
- U = hmac.run(U, hmac.ipad2)
- for (var k = 0; k < hLen; k++) T[k] ^= U[k]
- }
- T.copy(DK, destPos)
- destPos += hLen
- }
- return DK
- }
- module.exports = pbkdf2
- /***/ }),
- /***/ "Ztz7":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__("geuY");
- var MillerRabin = __webpack_require__("aK3A");
- var millerRabin = new MillerRabin();
- var TWENTYFOUR = new BN(24);
- var ELEVEN = new BN(11);
- var TEN = new BN(10);
- var THREE = new BN(3);
- var SEVEN = new BN(7);
- var primes = __webpack_require__("3fzc");
- var randomBytes = __webpack_require__("rOku");
- module.exports = DH;
- function setPublicKey(pub, enc) {
- enc = enc || 'utf8';
- if (!Buffer.isBuffer(pub)) {
- pub = new Buffer(pub, enc);
- }
- this._pub = new BN(pub);
- return this;
- }
- function setPrivateKey(priv, enc) {
- enc = enc || 'utf8';
- if (!Buffer.isBuffer(priv)) {
- priv = new Buffer(priv, enc);
- }
- this._priv = new BN(priv);
- return this;
- }
- var primeCache = {};
- function checkPrime(prime, generator) {
- var gen = generator.toString('hex');
- var hex = [gen, prime.toString(16)].join('_');
- if (hex in primeCache) {
- return primeCache[hex];
- }
- var error = 0;
- if (prime.isEven() ||
- !primes.simpleSieve ||
- !primes.fermatTest(prime) ||
- !millerRabin.test(prime)) {
- //not a prime so +1
- error += 1;
- if (gen === '02' || gen === '05') {
- // we'd be able to check the generator
- // it would fail so +8
- error += 8;
- } else {
- //we wouldn't be able to test the generator
- // so +4
- error += 4;
- }
- primeCache[hex] = error;
- return error;
- }
- if (!millerRabin.test(prime.shrn(1))) {
- //not a safe prime
- error += 2;
- }
- var rem;
- switch (gen) {
- case '02':
- if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {
- // unsuidable generator
- error += 8;
- }
- break;
- case '05':
- rem = prime.mod(TEN);
- if (rem.cmp(THREE) && rem.cmp(SEVEN)) {
- // prime mod 10 needs to equal 3 or 7
- error += 8;
- }
- break;
- default:
- error += 4;
- }
- primeCache[hex] = error;
- return error;
- }
- function DH(prime, generator, malleable) {
- this.setGenerator(generator);
- this.__prime = new BN(prime);
- this._prime = BN.mont(this.__prime);
- this._primeLen = prime.length;
- this._pub = undefined;
- this._priv = undefined;
- this._primeCode = undefined;
- if (malleable) {
- this.setPublicKey = setPublicKey;
- this.setPrivateKey = setPrivateKey;
- } else {
- this._primeCode = 8;
- }
- }
- Object.defineProperty(DH.prototype, 'verifyError', {
- enumerable: true,
- get: function () {
- if (typeof this._primeCode !== 'number') {
- this._primeCode = checkPrime(this.__prime, this.__gen);
- }
- return this._primeCode;
- }
- });
- DH.prototype.generateKeys = function () {
- if (!this._priv) {
- this._priv = new BN(randomBytes(this._primeLen));
- }
- this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();
- return this.getPublicKey();
- };
- DH.prototype.computeSecret = function (other) {
- other = new BN(other);
- other = other.toRed(this._prime);
- var secret = other.redPow(this._priv).fromRed();
- var out = new Buffer(secret.toArray());
- var prime = this.getPrime();
- if (out.length < prime.length) {
- var front = new Buffer(prime.length - out.length);
- front.fill(0);
- out = Buffer.concat([front, out]);
- }
- return out;
- };
- DH.prototype.getPublicKey = function getPublicKey(enc) {
- return formatReturnValue(this._pub, enc);
- };
- DH.prototype.getPrivateKey = function getPrivateKey(enc) {
- return formatReturnValue(this._priv, enc);
- };
- DH.prototype.getPrime = function (enc) {
- return formatReturnValue(this.__prime, enc);
- };
- DH.prototype.getGenerator = function (enc) {
- return formatReturnValue(this._gen, enc);
- };
- DH.prototype.setGenerator = function (gen, enc) {
- enc = enc || 'utf8';
- if (!Buffer.isBuffer(gen)) {
- gen = new Buffer(gen, enc);
- }
- this.__gen = gen;
- this._gen = new BN(gen);
- return this;
- };
- function formatReturnValue(bn, enc) {
- var buf = new Buffer(bn.toArray());
- if (!enc) {
- return buf;
- } else {
- return buf.toString(enc);
- }
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("EuP9").Buffer))
- /***/ }),
- /***/ "a4Og":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__config__ = __webpack_require__("FhoZ");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_assets_js_vconsole_min__ = __webpack_require__("NBqP");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_assets_js_vconsole_min___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_assets_js_vconsole_min__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_assets_styles_video_js_css__ = __webpack_require__("/TTR");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_assets_styles_video_js_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_assets_styles_video_js_css__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_assets_styles_iconfont_css__ = __webpack_require__("kGlO");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_assets_styles_iconfont_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_assets_styles_iconfont_css__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_fullscreen__ = __webpack_require__("4lnF");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_fullscreen___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_vue_fullscreen__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_uiMixins_js__ = __webpack_require__("+olj");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__mixins_hlsMixins_js__ = __webpack_require__("7Gjy");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__mixins_wasmMixins_js__ = __webpack_require__("qHGM");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__mixins_videoJsMixins_js__ = __webpack_require__("pOqu");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_assets_js_webRtcPlayer_js__ = __webpack_require__("7P+W");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_assets_wasm_tools_decode_worker_js__ = __webpack_require__("JgjT");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_expose_loader_EPlayer_exports_loader_EPlayer_assets_js_eplayer_min_js__ = __webpack_require__("Az4Q");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_expose_loader_EPlayer_exports_loader_EPlayer_assets_js_eplayer_min_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_expose_loader_EPlayer_exports_loader_EPlayer_assets_js_eplayer_min_js__);
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- var loadWasmModule = __WEBPACK_IMPORTED_MODULE_10_assets_wasm_tools_decode_worker_js__["a" /* EasyPlayerWasmModule */].loadWasmModule,
- wasModule = __WEBPACK_IMPORTED_MODULE_10_assets_wasm_tools_decode_worker_js__["a" /* EasyPlayerWasmModule */].module;
- var appEnterprise = __WEBPACK_IMPORTED_MODULE_0__config__["a" /* default */].appEnterprise,
- appVersion = __WEBPACK_IMPORTED_MODULE_0__config__["a" /* default */].appVersion;
- /* harmony default export */ __webpack_exports__["a"] = ({
- name: "easy-player",
- model: {
- prop: 'videoUrl',
- event: "change"
- },
- props: {
- //视频流地址没有指定情况下, 视频所在区域显示的文字
- alt: {
- type: String,
- default: "无信号"
- },
- //视频显示区域的宽高比
- aspect: {
- type: String,
- default: ''
- },
- //自动播放
- autoplay: {
- type: [Boolean, String],
- default: 'true'
- },
- currentTime: {
- type: Number,
- default: 0
- },
- //解码类型
- decodeType: {
- type: String,
- default: "auto"
- },
- debug: {
- type: Boolean,
- default: function _default() {
- return false;
- }
- },
- //是否不同分辨率强制铺满窗口
- easyStretch: {
- type: Boolean,
- default: function _default() {
- return true;
- }
- },
- isH265: {
- type: Boolean,
- default: function _default() {
- return false;
- }
- },
- live: {
- type: Boolean,
- default: function _default() {
- return true;
- }
- },
- loop: {
- type: Boolean,
- default: false
- },
- muted: {
- type: Boolean,
- default: function _default() {
- return true;
- }
- },
- playerStyle: {
- type: String,
- default: ""
- },
- poster: {
- type: String,
- default: function _default() {
- return '';
- }
- },
- reconnection: {
- type: Boolean,
- default: function _default() {
- return false;
- }
- },
- restartTime: {
- type: Number,
- default: 60 * 60 * 6
- },
- resolution: {
- type: String,
- default: ''
- },
- resolutionDefault: {
- type: String,
- default: "hd"
- },
- showEnterprise: {
- type: Boolean,
- default: true
- },
- iceServers: {
- type: Array,
- default: function _default() {
- return [];
- }
- },
- videoUrl: {
- type: String,
- default: ''
- },
- videoTitle: {
- type: String,
- default: ''
- },
- isTransCoding: {
- type: Boolean,
- default: function _default() {
- return false;
- }
- },
- hasAudio: {
- type: Boolean,
- default: function _default() {
- return true;
- }
- },
- recordMaxFileSize: {
- type: Number,
- default: 200
- },
- progress: {
- type: Boolean,
- default: function _default() {
- return true;
- }
- },
- remoteHost: {
- type: String,
- default: "https://demo.easycvr.com:18000"
- },
- recordFileName: {
- type: String,
- default: ""
- }
- },
- mixins: [__WEBPACK_IMPORTED_MODULE_5__mixins_uiMixins_js__["a" /* UIMixins */], __WEBPACK_IMPORTED_MODULE_6__mixins_hlsMixins_js__["a" /* HlsMixins */], __WEBPACK_IMPORTED_MODULE_7__mixins_wasmMixins_js__["a" /* WasmMixins */], __WEBPACK_IMPORTED_MODULE_8__mixins_videoJsMixins_js__["a" /* VideoJsMixins */]],
- data: function data() {
- return {
- TAG: "EasyPlayer",
- degbug: true,
- appVersion: appVersion,
- pause: false,
- _playerPlaying: false,
- appEnterprise: appEnterprise,
- stretch: false,
- loading: false,
- isFirstPaused: true,
- fullscreenIndex: 0,
- initLoading: false,
- wasmPlayer: null,
- playerOption: {},
- playerMessage: [],
- easyPlayer: null,
- waitingTimer: null,
- isStreamH265: false,
- endLoadingTimer: null,
- startWaitingTime: null,
- easyWebrtcPlayer: null,
- showPlayerMessage: false,
- resolutionDict: {
- sd: "标清",
- hd: "高清",
- fhd: "超清",
- yh: "原画"
- },
- versionStyle: {
- top: 0,
- left: 0,
- zIndex: 9999,
- position: 'absolute',
- pointerEvents: 'auto'
- },
- videoStyle: {},
- playerPlugins: {
- videoJsResolutionSwitcher: {
- //多清晰度播放
- default: this.resolutionDefault, //默认清晰度
- dynamicLabel: true
- }
- },
- eventTimer: null,
- restartPlayerTimer: null,
- restartSnapshot: null, // 缓存清理快照
- isCacheCleanUp: false, //缓存清理标识
- showMessage: false, // 显示消息
- showMessageTimer: false, // 显示消息
- errorTimeStamp: 0,
- isFirstM3u8: true,
- showRightMenu: false,
- showViewMessage: false,
- playLive: true,
- playerMuted: true,
- videoEle: null,
- noSingleEle: null,
- easyPlayerLoadingEle: null,
- easyVideoPlayerInnerEle: null,
- _videoId: null,
- _luXiangEle: null,
- _recording: false,
- _recordOffset: 0,
- restartH265Snapshot: null,
- _recordArrayBuffer: [],
- _cacheArrayBuffer: [],
- _is_hls: false,
- isSafari: /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent),
- ImageUrlDataTimer: null,
- reloadBool: false
- };
- },
- computed: {
- defaultPlayerOption: function defaultPlayerOption() {
- console.log("this.autoplay", this.autoplay);
- return {
- loop: this.loop,
- controls: true,
- language: "zh-CN",
- type: "video/mp4",
- userActions: {
- click: false
- },
- autoplay: this.autoplay,
- controlBar: {
- pictureInPictureToggle: false,
- volumePanel: {
- inline: false //默认是true,横着的
- }
- }
- };
- }
- },
- watch: {
- progress: {
- handler: function handler() {
- this._handlerVideoProgress();
- },
- immediate: false
- },
- muted: {
- handler: function handler(nvl) {
- this.playerMuted = nvl;
- },
- immediate: true
- },
- snapshot: {
- handler: function handler(nvl) {
- var _this = this;
- if (nvl) setTimeout(function () {
- return _this.snapshot = false;
- }, 1000 * 30);
- }
- },
- playerMessage: {
- handler: function handler(nvl) {
- var _this2 = this;
- if (nvl) {
- // 处理日志滚动问题
- this.$nextTick(function () {
- var loadTextEle = _this2.$el.querySelector('.easy-player-loading-text');
- loadTextEle.scrollTop = loadTextEle.scrollTop + 20;
- });
- this.showMessage = true;
- if (this.showMessageTimer) clearTimeout(this.showMessageTimer);
- this.showMessageTimer = setTimeout(function () {
- _this2.showMessage = false;
- }, 10 * 1000);
- }
- },
- immediate: true
- },
- easyStretch: {
- handler: function handler(nvl) {
- this.stretch = nvl;
- },
- immediate: true
- },
- isH265: {
- handler: function handler(nvl) {
- this.isStreamH265 = nvl;
- },
- immediate: true
- },
- isStreamH265: {
- handler: function handler(nvl) {
- var _this3 = this;
- if (!nvl) {
- //TODO 隐藏加载logo
- this.handlePoster(false);
- var easyPlayerLoadingEle = this.$el.querySelector(".easy-player-loading");
- if (easyPlayerLoadingEle) easyPlayerLoadingEle.style.opacity = 0;
- }
- if (this.$el.querySelector(".vjs-progress-control")) this.$el.querySelector(".vjs-progress-control").style.opacity = 0;
- if (nvl) {
- this.ImageUrlDataTimer = setInterval(function () {
- _this3.getH265SnapData();
- }, 5000);
- }
- }
- },
- easyPlayer: {
- handler: function handler(player) {
- var _this4 = this;
- if (!player) return;
- this.loading = true;
- setTimeout(function () {
- return _this4.setPlayerEventListener(player);
- }, 200);
- if (this.currentTime) this.seek(this.currentTime);
- },
- immediate: true
- },
- videoUrl: {
- handler: function handler(src) {
- var _this5 = this;
- if (this.showRightMenu) this.showRightMenu = false;
- this.$nextTick(function () {
- _this5.noSingleEle = _this5.$el.querySelector(".no-single");
- if (!_this5.easyVideoPlayerInnerEle) _this5.easyVideoPlayerInnerEle = _this5.$el.querySelector(".easy-video-player-inner");
- if (!src) {
- if (_this5.noSingleEle) return;
- _this5.noSingleEle = document.createElement("div");
- _this5.noSingleEle.classList = 'no-single';
- _this5.noSingleEle.setAttribute('oncontextmenu', 'return false');
- _this5.noSingleEle.style = "display: flex;flex: 1;justify-content: center;align-items: center;color: white;background: black;width: 100%;height: 100%";
- _this5.noSingleEle.innerHTML = _this5.alt;
- _this5.easyVideoPlayerInnerEle.appendChild(_this5.noSingleEle);
- _this5.destroyPlayer();
- } else {
- _this5.playerMessage = [];
- _this5.isFirstM3u8 = true;
- _this5.isStreamH265 = false;
- _this5.handlerVideOption(src);
- _this5.initPlayer();
- }
- });
- this._is_hls = src.includes(".m3u8");
- },
- immediate: true
- },
- loading: {
- handler: function handler(nvl) {
- var _this6 = this;
- this.$nextTick(function () {
- setTimeout(function () {
- if (_this6.showPlayerMessage) _this6.showPlayerMessage = false;
- if (_this6.initLoading) _this6.initLoading = false;
- }, 1000 * 5);
- var easyPlayerLoadingEle = _this6.$el.querySelector(".easy-player-loading");
- if (easyPlayerLoadingEle) easyPlayerLoadingEle.style.opacity = nvl ? 1 : 0;
- _this6.handlePoster(nvl);
- });
- },
- immediate: false
- },
- currentTime: {
- handler: function handler(nvl) {
- if (nvl) this.seek(nvl);
- },
- immediate: true
- }
- },
- created: function created() {
- this.initVideoJs(); // 设置播放器参数
- if (this.isTransCoding) this.loadWasmKit();
- },
- mounted: function mounted() {
- if (this.debug) new __WEBPACK_IMPORTED_MODULE_1_assets_js_vconsole_min___default.a();
- },
- destroyed: function destroyed() {
- this.destroyPlayer();
- },
- methods: {
- handlePoster: function handlePoster() {
- var loading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
- if (this.$el.querySelector(".easy-big-play-button")) return;
- var vjsPosterEle = this.$el.querySelector('.easy-player-poster');
- if (!vjsPosterEle) return;
- vjsPosterEle.style.opacity = loading ? 1 : 0;
- vjsPosterEle.style.zIndex = loading ? 888 : -99;
- },
- getH265SnapData: function getH265SnapData() {
- var _this7 = this;
- var snapshotTimer = void 0,
- snap = void 0;
- if (this._is_hls) snap = this.easyPlayer.saveImageDateURL();else snap = this.easyPlayer.tech_.flvPlayer.saveImageDateURL();
- if (snap.length < 768 * 1024) return snapshotTimer = setTimeout(function () {
- return _this7.getH265SnapData();
- }, 40);
- this.restartH265Snapshot = snap;
- this.restartSnapshot = null;
- snapshotTimer && clearTimeout(snapshotTimer);
- snapshotTimer = null;
- },
- getCurrentTime: function getCurrentTime() {
- return this.formatTime(this.easyPlayer.currentTime());
- },
- //TODO 快照
- snapshot: function snapshot() {
- if (this.isStreamH265) {
- if (this._is_hls) return this.easyPlayer.saveLocalSnapshot();
- this.easyPlayer && this.easyPlayer.tech_.flvPlayer.saveLocalSnapshot();
- } else this.saveLocalSnapshot();
- },
- //TODO HLS 快进
- seek: function seek(seek_time) {
- var _this8 = this;
- var current_time = this.easyPlayer && this.easyPlayer.currentTime && this.easyPlayer.currentTime() || 0;
- setTimeout(function () {
- if (!_this8.isStreamH265) _this8.easyPlayer && _this8.easyPlayer.currentTime(current_time + seek_time);else _this8.easyPlayer && _this8.easyPlayer.tech_ && _this8.easyPlayer.tech_.flvPlayer && _this8.easyPlayer.tech_.flvPlayer.seekToPercent(seek_time);
- }, 200);
- },
- //TODO 录像
- switchRecording: function switchRecording() {
- if (this.isStreamH265) {
- if (this._is_hls) return this.easyPlayer.recordSwitch();
- this.easyPlayer && this.easyPlayer.tech_ && this.easyPlayer.tech_.flvPlayer && this.easyPlayer.tech_.flvPlayer.recordSwitch();
- } else this._recordingUIChange();
- },
- changeStretch: function changeStretch() {
- this.stretch = !this.stretch;
- this.$el.querySelector('.vjs-stretch-control').innerText = this.stretch ? "拉伸" : "标准";
- },
- //TODO 退出全屏
- exitFullscreen: function exitFullscreen() {
- if (Hls.isSupported()) {
- if (this.isStreamH265) __WEBPACK_IMPORTED_MODULE_4_vue_fullscreen__["api"].toggle(this.$el.querySelector('.easy-video-player-inner'), { teleport: false });else this.easyPlayer.exitFullscreen();
- } else {
- __WEBPACK_IMPORTED_MODULE_4_vue_fullscreen__["api"].toggle(this.$el.querySelector('.easy-video-player-inner'), { teleport: false });
- }
- },
- //TODO 全屏
- fullscreen: function fullscreen() {
- // if (this.videoEle.webkitEnterFullScreen) this.videoEle.webkitEnterFullScreen();
- if (Hls.isSupported()) {
- if (this.isStreamH265) __WEBPACK_IMPORTED_MODULE_4_vue_fullscreen__["api"].toggle(this.$el.querySelector('.easy-video-player-inner'), { teleport: false });else this.easyPlayer.requestFullscreen();
- } else {
- __WEBPACK_IMPORTED_MODULE_4_vue_fullscreen__["api"].toggle(this.$el.querySelector('.easy-video-player-inner'), { teleport: false });
- }
- },
- switchVideo: function switchVideo() {
- if (this.isStreamH265) {
- if (this._is_hls) return this.easyPlayer.switchPlay();
- this.easyPlayer && this.easyPlayer.tech_ && this.easyPlayer.tech_.flvPlayer && this.easyPlayer.tech_.flvPlayer.switchPlay();
- } else this.$el.querySelector(".vjs-play-control").click();
- },
- switchAudio: function switchAudio() {
- if (this.isStreamH265) {
- if (this._is_hls) return this.easyPlayer.switchAudio();
- this.easyPlayer && this.easyPlayer.tech_ && this.easyPlayer.tech_.flvPlayer && this.easyPlayer.tech_.flvPlayer.switchAudio();
- } else this.$el.querySelector(".vjs-mute-control").click();
- },
- //TODO 设置播放器配置问题
- handlerVideOption: function handlerVideOption(src) {
- this.playerOption = null;
- var options = {
- language: 'zh-CN' // 设置语言
- };
- if (src.includes(".mp4")) {
- options.type = 'video/mp4';
- } else if (src.includes(".ogv")) {
- options.type = 'video/ogg';
- } else if (src.includes(".flv")) {
- options = {
- type: 'video/flv',
- techOrder: ['html5', 'flvjs'],
- flvjs: {
- mediaDataSource: {
- muted: this.playerMuted,
- isLive: this.live,
- cors: true,
- hasAudio: this.hasAudio,
- withCredentials: false,
- recordMaxFileSize: this.recordMaxFileSize
- },
- config: {
- enableStashBuffer: false,
- autoCleanupSourceBuffer: true, //对SourceBuffer进行自动清理缓存
- autoCleanupMaxBackwardDuration: 10, //当向后缓冲区持续时间超过此值(以秒为单位)时,请对SourceBuffer进行自动清理 12 60
- autoCleanupMinBackwardDuration: 5, //指示进行自动清除时为反向缓冲区保留的持续时间(以秒为单位)。60 30
- decodeType: this.decodeType,
- recordFileName: this.recordFileName
- }
- }
- };
- } else if (src.includes(".m3u8")) {
- options = Object.assign(options, {
- type: 'application/x-mpegURL',
- techOrder: ["hlsjs", "html5", "flvjs"], // 兼容顺序
- html5: {
- hls: {
- withCredentials: true
- }
- }
- });
- }
- var aspectRatio = this.aspect || this.$refs.videoInner.offsetWidth + ":" + this.$refs.videoInner.offsetHeight;
- if (src.includes(".m3u8") && !!this.resolution) options = Object.assign(options, { plugins: this.playerPlugins }); //记载默认
- //TODO 合并参数
- this.playerOption = Object.assign(this.defaultPlayerOption, options, {
- aspectRatio: aspectRatio,
- playbackRates: this.live ? [] : [0.75, 1.0, 1.25, 1.5, 2.0]
- });
- },
- //TODO 初始化播放器
- initPlayer: function initPlayer() {
- var _this9 = this;
- var video_url = this.videoUrl;
- if (video_url.startsWith("app://.")) video_url = video_url.replace("app://.", this.remoteHost);
- if (this.easyPlayer) this.destroyPlayer();
- if (this.easyWebrtcPlayer) this.destroyPlayer();
- this.setRestartPlay(); // 清除长时间播放内存 无法释放问题
- this.initVideoEle(); //初始化标签对象
- if (this.reloadBool && this.isStreamH265 && this.videoUrl.indexOf(".m3u8") !== -1) return this.initH265Player(12, this.reloadBool); //渲染265 HLS播放器
- this.$nextTick(function () {
- _this9.showVersion(); //TODO 加载播放器版本
- if (video_url.startsWith('webrtc')) return _this9.$nextTick(function () {
- return _this9.initWebRTCPlayer();
- }); //初始化webRtc 播放器)
- //TODO 判断浏览器是否支持 flvjs
- if (flvjs.isSupported()) {
- var videoEle = _this9.$el.querySelector("video");
- _this9.easyPlayer = videojs(videoEle, Object.assign(_this9.playerOption, {
- url: video_url,
- live: _this9.live,
- muted: _this9.playerMuted,
- resizeManager: false,
- language: 'zh-CN'
- }), function () {
- if (!_this9.reloadBool) _this9._createVideoLoadingEle();
- _this9._createVideoPlayBtnEle();
- if (video_url.includes(".m3u8")) {
- fetch(video_url).then(function (res) {
- var status = res.status;
- if (status === 200) {
- _this9._autoPlay();
- } else if (status === 404) {
- if (!_this9.autoplay) document.getElementById(_this9._videoId).parentNode.removeChild(document.querySelector(".easy-big-play-button"));
- setTimeout(function () {
- return _this9.initPlayer();
- }, 2500);
- }
- });
- } else {
- _this9._autoPlay();
- }
- _this9.loadDefinitionStreams(_this9.easyPlayer); //渲染不同分辨率
- _this9.setHLSListener(); //监测是否是HLS265
- _this9._handlerVideoProgress();
- });
- _this9.createPlayerMenusBtn();
- } else {
- //TODO
- _this9.initH265Player(12);
- }
- });
- },
- setRestartPlay: function setRestartPlay() {
- var _this10 = this;
- if (this.videoUrl) {
- //只针对flv 长时间播放问题
- if (this.videoUrl.includes(".flv")) this.restartPlayerTimer = setTimeout(function () {
- return _this10.restartPlayer();
- }, this.restartTime * 1000);
- } else {
- this.restartPlayerTimer && clearTimeout(this.restartPlayerTimer);
- this.restartPlayerTimer = null;
- }
- },
- getUUID: function getUUID() {
- function S4() {
- return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);
- }
- return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();
- },
- _autoPlay: function _autoPlay() {
- var video_url = this.videoUrl;
- if (video_url.startsWith("app://.")) video_url = video_url.replace("app://.", this.remoteHost);
- if (!this.autoplay) return this.loading = false;
- var type = this.playerOption.type;
- this.easyPlayer.src({ src: video_url, type: type });
- this.easyPlayer.load();
- this.easyPlayer.play();
- },
- //TODO WebRTCPlayer 初始化播放器
- initWebRTCPlayer: function initWebRTCPlayer() {
- var _this11 = this;
- if (this.easyPlayerLoadingEle === null) this._createVideoLoadingEle();
- if (this.easyWebrtcPlayer === null) {
- this.loading = true;
- this.easyWebrtcPlayer = new __WEBPACK_IMPORTED_MODULE_9_assets_js_webRtcPlayer_js__["a" /* default */](this.videoUrl, this.easyVideoPlayerInnerEle, this.autoplay, this.easyPlayerLoadingEle, this._videoId, this.iceServers, this.playerMuted, this.recordFileName);
- }
- this.easyWebrtcPlayer._emitter.on("canplay", function (e) {
- _this11.loading = false;
- });
- this.easyWebrtcPlayer._emitter.on("waiting", function (e) {
- _this11.loading = true;
- });
- this.easyWebrtcPlayer._emitter.on("playing", function (e) {
- _this11.easyPlayerPlaying();
- _this11.loading = false;
- });
- this.easyWebrtcPlayer._emitter.on("touchstart", function (e) {
- if (_this11.showRightMenu) _this11.showRightMenu = false;
- });
- this.easyWebrtcPlayer._emitter.on("oniceconnectionstatechange", function (e) {
- var iceConnectionState = e.currentTarget.iceConnectionState;
- if (iceConnectionState === 'disconnected') {
- _this11.restartSnapshot = _this11.easyWebrtcPlayer.getImageDataURL();
- _this11.initPlayer(true);
- }
- });
- },
- play: function play() {
- this.easyPlayer.play();
- },
- //TODO 重新加载数据
- replay: function replay() {
- if (this.isStreamH265) return;
- this.easyPlayer.load();
- this.easyPlayer.muted = this.playerMuted;
- if (this.autoplay) this.easyPlayer.play();
- },
- //TODO 重启播放器
- restartPlayer: function restartPlayer() {
- this.loading = false;
- this.isCacheCleanUp = true;
- if (this.ImageUrlDataTimer) clearInterval(this.ImageUrlDataTimer);
- this.ImageUrlDataTimer = null;
- if (this.isStreamH265) {
- this.restartSnapshot = this.restartH265Snapshot;
- } else {
- this.saveLocalSnapshot();
- }
- this.reloadBool = true;
- this.initPlayer(); //解决16分配内存溢出问题
- },
- easyPlayerPushMsg: function easyPlayerPushMsg(msg) {
- this.playerMessage.push(msg);
- },
- easyPlayerCleanMsg: function easyPlayerCleanMsg() {
- this.playerMessage = [];
- },
- loadWasmKit: function loadWasmKit() {
- loadWasmModule(this.remoteHost);
- window.easyPlayerWasmModule = wasModule;
- var EasyPlayerWasmKits = function () {
- function EasyPlayerWasmKits(_self) {
- _classCallCheck(this, EasyPlayerWasmKits);
- this.initModule = null;
- this.deinitModule = null;
- this.yuvData = null;
- this.convertFrame2Image = null;
- this._self = _self;
- }
- _createClass(EasyPlayerWasmKits, [{
- key: "loadWebAssembly",
- value: function loadWebAssembly() {
- var _this12 = this;
- window.easyPlayerWasmModule.onRuntimeInitialized = function () {
- _this12.initModule = window.easyPlayerWasmModule.cwrap('WasmDecoder_Init', 'number');
- _this12.deinitModule = window.easyPlayerWasmModule.cwrap('WasmDecoder_Deinit', 'number');
- _this12.convertFrame2Image = window.easyPlayerWasmModule.cwrap('WasmDecoder_ConvertFrame2Image', 'number', ['number', 'number', 'number', 'number', 'number']);
- _this12.applyMemory();
- _this12.initModule();
- console.debug('WASM initialized done!');
- _this12._self.$emit("wasmIsReady", true);
- };
- }
- }, {
- key: "applyMemory",
- value: function applyMemory() {
- this.yuvData = window.easyPlayerWasmModule._malloc(4000 * 2000 * 4);
- }
- }, {
- key: "freeMemory",
- value: function freeMemory() {
- window.easyPlayerWasmModule._free(this.yuvData);
- }
- }]);
- return EasyPlayerWasmKits;
- }();
- var easyPlayerWasmKits = new EasyPlayerWasmKits(this);
- easyPlayerWasmKits.loadWebAssembly();
- window.easyPlayerWasmKits = easyPlayerWasmKits;
- },
- dateFormat: function dateFormat(date, fmt) {
- var ret = void 0;
- var opt = {
- 'Y+': date.getFullYear().toString(), // 年
- 'M+': (date.getMonth() + 1).toString(), // 月
- 'D+': date.getDate().toString(), // 日
- 'h+': date.getHours().toString(), // 时
- 'm+': date.getMinutes().toString(), // 分
- 's+': date.getSeconds().toString() // 秒
- // 有其他格式化字符需求可以继续添加,必须转化成字符串
- };
- for (var k in opt) {
- ret = new RegExp('(' + k + ')').exec(fmt);
- if (ret) {
- fmt = fmt.replace(ret[1], ret[1].length === 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));
- }
- }
- return fmt;
- },
- changeStream: function changeStream(stream) {
- var type = 'video/mp4';
- if (stream) type = 'video/mp4';
- if (stream) type = 'video/ogg';
- if (stream) type = 'video/x-flv';
- if (stream) type = 'application/x-mpegURL';
- if (this.easyPlayer) {
- this.easyPlayer.src({ src: stream, type: type });
- }
- },
- isIPhone: function isIPhone() {
- try {
- document.createEvent("TouchEvent");
- return navigator.userAgent.toLocaleLowerCase().includes("mac os");
- } catch (e) {
- return false;
- }
- },
- formatTime: function formatTime(time) {
- time = Math.floor(time);
- var h = parseInt(time / 3600);
- var minute = parseInt(time / 60 % 60);
- var second = Math.ceil(time % 60);
- var hours = h < 10 ? '0' + h : h;
- var formatSecond = second > 59 ? 59 : second;
- return "" + (hours > 0 ? hours + ":" : '00:') + (minute < 10 ? '0' + minute : minute) + ":" + (formatSecond < 10 ? '0' + formatSecond : formatSecond);
- },
- destroyPlayer: function destroyPlayer() {
- var easyPlayerLoading = this.$el.querySelector(".easy-player-loading");
- if (easyPlayerLoading) easyPlayerLoading.parentNode.removeChild(easyPlayerLoading);
- this.initLoading = true;
- this.isFirstPaused = true;
- this._playerPlaying = false;
- if (this.loading) this.loading = false;
- if (this.easyPlayer && this.easyPlayer.dispose) this.easyPlayer.dispose();
- if (this.easyPlayer && this.easyPlayer.destroy) this.easyPlayer.destroy();
- if (this.easyWebrtcPlayer) this.easyWebrtcPlayer.destroy();
- if (this.ImageUrlDataTimer) clearTimeout(this.ImageUrlDataTimer);
- if (this.wasmPlayer) this.wasmPlayer.destroy();
- this.videoEle = this.$el.querySelector("video");
- if (this.videoEle && this.videoEle.parentNode) this.videoEle.parentNode.removeChild(this.videoEle);
- this.eventTimer && clearTimeout(this.eventTimer);
- this.showMessageTimer && clearTimeout(this.showMessageTimer);
- this.restartPlayerTimer && clearTimeout(this.restartPlayerTimer);
- this.ImageUrlDataTimer = null;
- this.wasmPlayer = null;
- this.easyPlayer = null;
- this.eventTimer = null;
- this.videoEle = null;
- this.easyWebrtcPlayer = null;
- this.showMessageTimer = null;
- this.restartPlayerTimer = null;
- if (!this.isStreamH265) return;
- this.isStreamH265 = false;
- if (this.isTransCoding) {
- window.easyPlayerWasmModule = null;
- window.easyPlayerWasmKits = null;
- }
- }
- }
- });
- /***/ }),
- /***/ "aK3A":
- /***/ (function(module, exports, __webpack_require__) {
- var bn = __webpack_require__("geuY");
- var brorand = __webpack_require__("txgm");
- function MillerRabin(rand) {
- this.rand = rand || new brorand.Rand();
- }
- module.exports = MillerRabin;
- MillerRabin.create = function create(rand) {
- return new MillerRabin(rand);
- };
- MillerRabin.prototype._randbelow = function _randbelow(n) {
- var len = n.bitLength();
- var min_bytes = Math.ceil(len / 8);
- // Generage random bytes until a number less than n is found.
- // This ensures that 0..n-1 have an equal probability of being selected.
- do
- var a = new bn(this.rand.generate(min_bytes));
- while (a.cmp(n) >= 0);
- return a;
- };
- MillerRabin.prototype._randrange = function _randrange(start, stop) {
- // Generate a random number greater than or equal to start and less than stop.
- var size = stop.sub(start);
- return start.add(this._randbelow(size));
- };
- MillerRabin.prototype.test = function test(n, k, cb) {
- var len = n.bitLength();
- var red = bn.mont(n);
- var rone = new bn(1).toRed(red);
- if (!k)
- k = Math.max(1, (len / 48) | 0);
- // Find d and s, (n - 1) = (2 ^ s) * d;
- var n1 = n.subn(1);
- for (var s = 0; !n1.testn(s); s++) {}
- var d = n.shrn(s);
- var rn1 = n1.toRed(red);
- var prime = true;
- for (; k > 0; k--) {
- var a = this._randrange(new bn(2), n1);
- if (cb)
- cb(a);
- var x = a.toRed(red).redPow(d);
- if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)
- continue;
- for (var i = 1; i < s; i++) {
- x = x.redSqr();
- if (x.cmp(rone) === 0)
- return false;
- if (x.cmp(rn1) === 0)
- break;
- }
- if (i === s)
- return false;
- }
- return prime;
- };
- MillerRabin.prototype.getDivisor = function getDivisor(n, k) {
- var len = n.bitLength();
- var red = bn.mont(n);
- var rone = new bn(1).toRed(red);
- if (!k)
- k = Math.max(1, (len / 48) | 0);
- // Find d and s, (n - 1) = (2 ^ s) * d;
- var n1 = n.subn(1);
- for (var s = 0; !n1.testn(s); s++) {}
- var d = n.shrn(s);
- var rn1 = n1.toRed(red);
- for (; k > 0; k--) {
- var a = this._randrange(new bn(2), n1);
- var g = n.gcd(a);
- if (g.cmpn(1) !== 0)
- return g;
- var x = a.toRed(red).redPow(d);
- if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)
- continue;
- for (var i = 1; i < s; i++) {
- x = x.redSqr();
- if (x.cmp(rone) === 0)
- return x.fromRed().subn(1).gcd(n);
- if (x.cmp(rn1) === 0)
- break;
- }
- if (i === s) {
- x = x.redSqr();
- return x.fromRed().subn(1).gcd(n);
- }
- }
- return false;
- };
- /***/ }),
- /***/ "aY2F":
- /***/ (function(module, exports, __webpack_require__) {
- var inherits = __webpack_require__("LC74")
- var SHA512 = __webpack_require__("C015")
- var Hash = __webpack_require__("CzQx")
- var Buffer = __webpack_require__("X3l8").Buffer
- var W = new Array(160)
- function Sha384 () {
- this.init()
- this._w = W
- Hash.call(this, 128, 112)
- }
- inherits(Sha384, SHA512)
- Sha384.prototype.init = function () {
- this._ah = 0xcbbb9d5d
- this._bh = 0x629a292a
- this._ch = 0x9159015a
- this._dh = 0x152fecd8
- this._eh = 0x67332667
- this._fh = 0x8eb44a87
- this._gh = 0xdb0c2e0d
- this._hh = 0x47b5481d
- this._al = 0xc1059ed8
- this._bl = 0x367cd507
- this._cl = 0x3070dd17
- this._dl = 0xf70e5939
- this._el = 0xffc00b31
- this._fl = 0x68581511
- this._gl = 0x64f98fa7
- this._hl = 0xbefa4fa4
- return this
- }
- Sha384.prototype._hash = function () {
- var H = Buffer.allocUnsafe(48)
- function writeInt64BE (h, l, offset) {
- H.writeInt32BE(h, offset)
- H.writeInt32BE(l, offset + 4)
- }
- writeInt64BE(this._ah, this._al, 0)
- writeInt64BE(this._bh, this._bl, 8)
- writeInt64BE(this._ch, this._cl, 16)
- writeInt64BE(this._dh, this._dl, 24)
- writeInt64BE(this._eh, this._el, 32)
- writeInt64BE(this._fh, this._fl, 40)
- return H
- }
- module.exports = Sha384
- /***/ }),
- /***/ "aYMa":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Ported from https://github.com/mafintosh/pump with
- // permission from the author, Mathias Buus (@mafintosh).
- var eos;
- function once(callback) {
- var called = false;
- return function () {
- if (called) return;
- called = true;
- callback.apply(void 0, arguments);
- };
- }
- var _require$codes = __webpack_require__("3U89").codes,
- ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,
- ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
- function noop(err) {
- // Rethrow the error if it exists to avoid swallowing it
- if (err) throw err;
- }
- function isRequest(stream) {
- return stream.setHeader && typeof stream.abort === 'function';
- }
- function destroyer(stream, reading, writing, callback) {
- callback = once(callback);
- var closed = false;
- stream.on('close', function () {
- closed = true;
- });
- if (eos === undefined) eos = __webpack_require__("DvOT");
- eos(stream, {
- readable: reading,
- writable: writing
- }, function (err) {
- if (err) return callback(err);
- closed = true;
- callback();
- });
- var destroyed = false;
- return function (err) {
- if (closed) return;
- if (destroyed) return;
- destroyed = true;
- // request.destroy just do .end - .abort is what we want
- if (isRequest(stream)) return stream.abort();
- if (typeof stream.destroy === 'function') return stream.destroy();
- callback(err || new ERR_STREAM_DESTROYED('pipe'));
- };
- }
- function call(fn) {
- fn();
- }
- function pipe(from, to) {
- return from.pipe(to);
- }
- function popCallback(streams) {
- if (!streams.length) return noop;
- if (typeof streams[streams.length - 1] !== 'function') return noop;
- return streams.pop();
- }
- function pipeline() {
- for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {
- streams[_key] = arguments[_key];
- }
- var callback = popCallback(streams);
- if (Array.isArray(streams[0])) streams = streams[0];
- if (streams.length < 2) {
- throw new ERR_MISSING_ARGS('streams');
- }
- var error;
- var destroys = streams.map(function (stream, i) {
- var reading = i < streams.length - 1;
- var writing = i > 0;
- return destroyer(stream, reading, writing, function (err) {
- if (!error) error = err;
- if (err) destroys.forEach(call);
- if (reading) return;
- destroys.forEach(call);
- callback(error);
- });
- });
- return streams.reduce(pipe);
- }
- module.exports = pipeline;
- /***/ }),
- /***/ "bMQ9":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("1lLf");
- var common = __webpack_require__("YSDb");
- var shaCommon = __webpack_require__("3nYK");
- var rotl32 = utils.rotl32;
- var sum32 = utils.sum32;
- var sum32_5 = utils.sum32_5;
- var ft_1 = shaCommon.ft_1;
- var BlockHash = common.BlockHash;
- var sha1_K = [
- 0x5A827999, 0x6ED9EBA1,
- 0x8F1BBCDC, 0xCA62C1D6
- ];
- function SHA1() {
- if (!(this instanceof SHA1))
- return new SHA1();
- BlockHash.call(this);
- this.h = [
- 0x67452301, 0xefcdab89, 0x98badcfe,
- 0x10325476, 0xc3d2e1f0 ];
- this.W = new Array(80);
- }
- utils.inherits(SHA1, BlockHash);
- module.exports = SHA1;
- SHA1.blockSize = 512;
- SHA1.outSize = 160;
- SHA1.hmacStrength = 80;
- SHA1.padLength = 64;
- SHA1.prototype._update = function _update(msg, start) {
- var W = this.W;
- for (var i = 0; i < 16; i++)
- W[i] = msg[start + i];
- for(; i < W.length; i++)
- W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);
- var a = this.h[0];
- var b = this.h[1];
- var c = this.h[2];
- var d = this.h[3];
- var e = this.h[4];
- for (i = 0; i < W.length; i++) {
- var s = ~~(i / 20);
- var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
- e = d;
- d = c;
- c = rotl32(b, 30);
- b = a;
- a = t;
- }
- this.h[0] = sum32(this.h[0], a);
- this.h[1] = sum32(this.h[1], b);
- this.h[2] = sum32(this.h[2], c);
- this.h[3] = sum32(this.h[3], d);
- this.h[4] = sum32(this.h[4], e);
- };
- SHA1.prototype._digest = function digest(enc) {
- if (enc === 'hex')
- return utils.toHex32(this.h, 'big');
- else
- return utils.split32(this.h, 'big');
- };
- /***/ }),
- /***/ "bMvd":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("FZ+f")(undefined);
- // imports
- // module
- exports.push([module.i, "@font-face{font-family:iconfont;src:url(" + __webpack_require__("zLEk") + ") format(\"woff2\"),url(" + __webpack_require__("e7RC") + ") format(\"woff\"),url(" + __webpack_require__("nj8S") + ") format(\"truetype\")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-xiangji:before{content:\"\\E62E\"}.icon-luxiang2:before{content:\"\\E777\"}.icon-xiangji1:before{content:\"\\E6E5\"}.icon-luxiang:before{content:\"\\E62C\"}.icon-snapshot:before{content:\"\\E9F2\"}.icon-shengyin1:before{content:\"\\E8C0\"}.icon-xiaoping:before{content:\"\\E8BF\"}.icon-jingyin:before{content:\"\\E8BB\"}.icon-quanping1:before{content:\"\\E8BA\"}.icon-bofang:before{content:\"\\E8AD\"}.icon-zanting:before{content:\"\\E8AB\"}", ""]);
- // exports
- /***/ }),
- /***/ "bSQl":
- /***/ (function(module, exports, __webpack_require__) {
- var MODES = __webpack_require__("BCiZ")
- var AuthCipher = __webpack_require__("/y0r")
- var Buffer = __webpack_require__("X3l8").Buffer
- var StreamCipher = __webpack_require__("6hW9")
- var Transform = __webpack_require__("z+8S")
- var aes = __webpack_require__("BEbT")
- var ebtk = __webpack_require__("Cgw8")
- var inherits = __webpack_require__("LC74")
- function Cipher (mode, key, iv) {
- Transform.call(this)
- this._cache = new Splitter()
- this._cipher = new aes.AES(key)
- this._prev = Buffer.from(iv)
- this._mode = mode
- this._autopadding = true
- }
- inherits(Cipher, Transform)
- Cipher.prototype._update = function (data) {
- this._cache.add(data)
- var chunk
- var thing
- var out = []
- while ((chunk = this._cache.get())) {
- thing = this._mode.encrypt(this, chunk)
- out.push(thing)
- }
- return Buffer.concat(out)
- }
- var PADDING = Buffer.alloc(16, 0x10)
- Cipher.prototype._final = function () {
- var chunk = this._cache.flush()
- if (this._autopadding) {
- chunk = this._mode.encrypt(this, chunk)
- this._cipher.scrub()
- return chunk
- }
- if (!chunk.equals(PADDING)) {
- this._cipher.scrub()
- throw new Error('data not multiple of block length')
- }
- }
- Cipher.prototype.setAutoPadding = function (setTo) {
- this._autopadding = !!setTo
- return this
- }
- function Splitter () {
- this.cache = Buffer.allocUnsafe(0)
- }
- Splitter.prototype.add = function (data) {
- this.cache = Buffer.concat([this.cache, data])
- }
- Splitter.prototype.get = function () {
- if (this.cache.length > 15) {
- var out = this.cache.slice(0, 16)
- this.cache = this.cache.slice(16)
- return out
- }
- return null
- }
- Splitter.prototype.flush = function () {
- var len = 16 - this.cache.length
- var padBuff = Buffer.allocUnsafe(len)
- var i = -1
- while (++i < len) {
- padBuff.writeUInt8(len, i)
- }
- return Buffer.concat([this.cache, padBuff])
- }
- function createCipheriv (suite, password, iv) {
- var config = MODES[suite.toLowerCase()]
- if (!config) throw new TypeError('invalid suite type')
- if (typeof password === 'string') password = Buffer.from(password)
- if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)
- if (typeof iv === 'string') iv = Buffer.from(iv)
- if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)
- if (config.type === 'stream') {
- return new StreamCipher(config.module, password, iv)
- } else if (config.type === 'auth') {
- return new AuthCipher(config.module, password, iv)
- }
- return new Cipher(config.module, password, iv)
- }
- function createCipher (suite, password) {
- var config = MODES[suite.toLowerCase()]
- if (!config) throw new TypeError('invalid suite type')
- var keys = ebtk(password, false, config.key, config.iv)
- return createCipheriv(suite, keys.key, keys.iv)
- }
- exports.createCipheriv = createCipheriv
- exports.createCipher = createCipher
- /***/ }),
- /***/ "bfTY":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("euKu");
- exports.Stream = exports;
- exports.Readable = exports;
- exports.Writable = __webpack_require__("/+iU");
- exports.Duplex = __webpack_require__("PBMQ");
- exports.Transform = __webpack_require__("Q51I");
- exports.PassThrough = __webpack_require__("w2Cf");
- exports.finished = __webpack_require__("PcVv");
- exports.pipeline = __webpack_require__("Ep4u");
- /***/ }),
- /***/ "cSWu":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("Rt1F");
- exports.Stream = exports;
- exports.Readable = exports;
- exports.Writable = __webpack_require__("7dSG");
- exports.Duplex = __webpack_require__("DsFX");
- exports.Transform = __webpack_require__("D1Va");
- exports.PassThrough = __webpack_require__("f48b");
- /***/ }),
- /***/ "dCRq":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("CVWE");
- exports.Stream = exports;
- exports.Readable = exports;
- exports.Writable = __webpack_require__("uDof");
- exports.Duplex = __webpack_require__("PhfM");
- exports.Transform = __webpack_require__("/OYm");
- exports.PassThrough = __webpack_require__("rIDh");
- exports.finished = __webpack_require__("DvOT");
- exports.pipeline = __webpack_require__("aYMa");
- /***/ }),
- /***/ "e7RC":
- /***/ (function(module, exports) {
- module.exports = "data:font/woff;base64,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"
- /***/ }),
- /***/ "eCz2":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var inherits = __webpack_require__("LC74")
- var HashBase = __webpack_require__("yDvu")
- var Buffer = __webpack_require__("X3l8").Buffer
- var ARRAY16 = new Array(16)
- function MD5 () {
- HashBase.call(this, 64)
- // state
- this._a = 0x67452301
- this._b = 0xefcdab89
- this._c = 0x98badcfe
- this._d = 0x10325476
- }
- inherits(MD5, HashBase)
- MD5.prototype._update = function () {
- var M = ARRAY16
- for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)
- var a = this._a
- var b = this._b
- var c = this._c
- var d = this._d
- a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)
- d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)
- c = fnF(c, d, a, b, M[2], 0x242070db, 17)
- b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)
- a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)
- d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)
- c = fnF(c, d, a, b, M[6], 0xa8304613, 17)
- b = fnF(b, c, d, a, M[7], 0xfd469501, 22)
- a = fnF(a, b, c, d, M[8], 0x698098d8, 7)
- d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)
- c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)
- b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)
- a = fnF(a, b, c, d, M[12], 0x6b901122, 7)
- d = fnF(d, a, b, c, M[13], 0xfd987193, 12)
- c = fnF(c, d, a, b, M[14], 0xa679438e, 17)
- b = fnF(b, c, d, a, M[15], 0x49b40821, 22)
- a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)
- d = fnG(d, a, b, c, M[6], 0xc040b340, 9)
- c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)
- b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)
- a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)
- d = fnG(d, a, b, c, M[10], 0x02441453, 9)
- c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)
- b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)
- a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)
- d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)
- c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)
- b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)
- a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)
- d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)
- c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)
- b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)
- a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)
- d = fnH(d, a, b, c, M[8], 0x8771f681, 11)
- c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)
- b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)
- a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)
- d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)
- c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)
- b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)
- a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)
- d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)
- c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)
- b = fnH(b, c, d, a, M[6], 0x04881d05, 23)
- a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)
- d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)
- c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)
- b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)
- a = fnI(a, b, c, d, M[0], 0xf4292244, 6)
- d = fnI(d, a, b, c, M[7], 0x432aff97, 10)
- c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)
- b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)
- a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)
- d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)
- c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)
- b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)
- a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)
- d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)
- c = fnI(c, d, a, b, M[6], 0xa3014314, 15)
- b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)
- a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)
- d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)
- c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)
- b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)
- this._a = (this._a + a) | 0
- this._b = (this._b + b) | 0
- this._c = (this._c + c) | 0
- this._d = (this._d + d) | 0
- }
- MD5.prototype._digest = function () {
- // create padding and handle blocks
- this._block[this._blockOffset++] = 0x80
- if (this._blockOffset > 56) {
- this._block.fill(0, this._blockOffset, 64)
- this._update()
- this._blockOffset = 0
- }
- this._block.fill(0, this._blockOffset, 56)
- this._block.writeUInt32LE(this._length[0], 56)
- this._block.writeUInt32LE(this._length[1], 60)
- this._update()
- // produce result
- var buffer = Buffer.allocUnsafe(16)
- buffer.writeInt32LE(this._a, 0)
- buffer.writeInt32LE(this._b, 4)
- buffer.writeInt32LE(this._c, 8)
- buffer.writeInt32LE(this._d, 12)
- return buffer
- }
- function rotl (x, n) {
- return (x << n) | (x >>> (32 - n))
- }
- function fnF (a, b, c, d, m, k, s) {
- return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0
- }
- function fnG (a, b, c, d, m, k, s) {
- return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0
- }
- function fnH (a, b, c, d, m, k, s) {
- return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0
- }
- function fnI (a, b, c, d, m, k, s) {
- return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0
- }
- module.exports = MD5
- /***/ }),
- /***/ "ejIc":
- /***/ (function(module, exports) {
- module.exports = {"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}
- /***/ }),
- /***/ "euKu":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- module.exports = Readable;
- /*<replacement>*/
- var Duplex;
- /*</replacement>*/
- Readable.ReadableState = ReadableState;
- /*<replacement>*/
- var EE = __webpack_require__("vzCy").EventEmitter;
- var EElistenerCount = function EElistenerCount(emitter, type) {
- return emitter.listeners(type).length;
- };
- /*</replacement>*/
- /*<replacement>*/
- var Stream = __webpack_require__("xXuq");
- /*</replacement>*/
- var Buffer = __webpack_require__("EuP9").Buffer;
- var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};
- function _uint8ArrayToBuffer(chunk) {
- return Buffer.from(chunk);
- }
- function _isUint8Array(obj) {
- return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
- }
- /*<replacement>*/
- var debugUtil = __webpack_require__(7);
- var debug;
- if (debugUtil && debugUtil.debuglog) {
- debug = debugUtil.debuglog('stream');
- } else {
- debug = function debug() {};
- }
- /*</replacement>*/
- var BufferList = __webpack_require__("W2zL");
- var destroyImpl = __webpack_require__("EzfO");
- var _require = __webpack_require__("hBHd"),
- getHighWaterMark = _require.getHighWaterMark;
- var _require$codes = __webpack_require__("WrlE").codes,
- ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,
- ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,
- ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,
- ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
- // Lazy loaded to improve the startup performance.
- var StringDecoder;
- var createReadableStreamAsyncIterator;
- var from;
- __webpack_require__("LC74")(Readable, Stream);
- var errorOrDestroy = destroyImpl.errorOrDestroy;
- var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
- function prependListener(emitter, event, fn) {
- // Sadly this is not cacheable as some libraries bundle their own
- // event emitter implementation with them.
- if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
- // This is a hack to make sure that our error handler is attached before any
- // userland ones. NEVER DO THIS. This is here only because this code needs
- // to continue to work with older versions of Node.js that do not include
- // the prependListener() method. The goal is to eventually remove this hack.
- if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
- }
- function ReadableState(options, stream, isDuplex) {
- Duplex = Duplex || __webpack_require__("PBMQ");
- options = options || {};
- // Duplex streams are both readable and writable, but share
- // the same options object.
- // However, some cases require setting options to different
- // values for the readable and the writable sides of the duplex stream.
- // These options can be provided separately as readableXXX and writableXXX.
- if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;
- // object stream flag. Used to make read(n) ignore n and to
- // make all the buffer merging and length checks go away
- this.objectMode = !!options.objectMode;
- if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
- // the point at which it stops calling _read() to fill the buffer
- // Note: 0 is a valid value, means "don't call _read preemptively ever"
- this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);
- // A linked list is used to store data chunks instead of an array because the
- // linked list can remove elements from the beginning faster than
- // array.shift()
- this.buffer = new BufferList();
- this.length = 0;
- this.pipes = null;
- this.pipesCount = 0;
- this.flowing = null;
- this.ended = false;
- this.endEmitted = false;
- this.reading = false;
- // a flag to be able to tell if the event 'readable'/'data' is emitted
- // immediately, or on a later tick. We set this to true at first, because
- // any actions that shouldn't happen until "later" should generally also
- // not happen before the first read call.
- this.sync = true;
- // whenever we return null, then we set a flag to say
- // that we're awaiting a 'readable' event emission.
- this.needReadable = false;
- this.emittedReadable = false;
- this.readableListening = false;
- this.resumeScheduled = false;
- this.paused = true;
- // Should close be emitted on destroy. Defaults to true.
- this.emitClose = options.emitClose !== false;
- // Should .destroy() be called after 'end' (and potentially 'finish')
- this.autoDestroy = !!options.autoDestroy;
- // has it been destroyed
- this.destroyed = false;
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
- // the number of writers that are awaiting a drain event in .pipe()s
- this.awaitDrain = 0;
- // if true, a maybeReadMore has been scheduled
- this.readingMore = false;
- this.decoder = null;
- this.encoding = null;
- if (options.encoding) {
- if (!StringDecoder) StringDecoder = __webpack_require__("X4X3").StringDecoder;
- this.decoder = new StringDecoder(options.encoding);
- this.encoding = options.encoding;
- }
- }
- function Readable(options) {
- Duplex = Duplex || __webpack_require__("PBMQ");
- if (!(this instanceof Readable)) return new Readable(options);
- // Checking for a Stream.Duplex instance is faster here instead of inside
- // the ReadableState constructor, at least with V8 6.5
- var isDuplex = this instanceof Duplex;
- this._readableState = new ReadableState(options, this, isDuplex);
- // legacy
- this.readable = true;
- if (options) {
- if (typeof options.read === 'function') this._read = options.read;
- if (typeof options.destroy === 'function') this._destroy = options.destroy;
- }
- Stream.call(this);
- }
- Object.defineProperty(Readable.prototype, 'destroyed', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- if (this._readableState === undefined) {
- return false;
- }
- return this._readableState.destroyed;
- },
- set: function set(value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (!this._readableState) {
- return;
- }
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._readableState.destroyed = value;
- }
- });
- Readable.prototype.destroy = destroyImpl.destroy;
- Readable.prototype._undestroy = destroyImpl.undestroy;
- Readable.prototype._destroy = function (err, cb) {
- cb(err);
- };
- // Manually shove something into the read() buffer.
- // This returns true if the highWaterMark has not been hit yet,
- // similar to how Writable.write() returns true if you should
- // write() some more.
- Readable.prototype.push = function (chunk, encoding) {
- var state = this._readableState;
- var skipChunkCheck;
- if (!state.objectMode) {
- if (typeof chunk === 'string') {
- encoding = encoding || state.defaultEncoding;
- if (encoding !== state.encoding) {
- chunk = Buffer.from(chunk, encoding);
- encoding = '';
- }
- skipChunkCheck = true;
- }
- } else {
- skipChunkCheck = true;
- }
- return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
- };
- // Unshift should *always* be something directly out of read()
- Readable.prototype.unshift = function (chunk) {
- return readableAddChunk(this, chunk, null, true, false);
- };
- function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
- debug('readableAddChunk', chunk);
- var state = stream._readableState;
- if (chunk === null) {
- state.reading = false;
- onEofChunk(stream, state);
- } else {
- var er;
- if (!skipChunkCheck) er = chunkInvalid(state, chunk);
- if (er) {
- errorOrDestroy(stream, er);
- } else if (state.objectMode || chunk && chunk.length > 0) {
- if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
- chunk = _uint8ArrayToBuffer(chunk);
- }
- if (addToFront) {
- if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);
- } else if (state.ended) {
- errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());
- } else if (state.destroyed) {
- return false;
- } else {
- state.reading = false;
- if (state.decoder && !encoding) {
- chunk = state.decoder.write(chunk);
- if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
- } else {
- addChunk(stream, state, chunk, false);
- }
- }
- } else if (!addToFront) {
- state.reading = false;
- maybeReadMore(stream, state);
- }
- }
- // We can push more data if we are below the highWaterMark.
- // Also, if we have no data yet, we can stand some more bytes.
- // This is to work around cases where hwm=0, such as the repl.
- return !state.ended && (state.length < state.highWaterMark || state.length === 0);
- }
- function addChunk(stream, state, chunk, addToFront) {
- if (state.flowing && state.length === 0 && !state.sync) {
- state.awaitDrain = 0;
- stream.emit('data', chunk);
- } else {
- // update the buffer info.
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
- if (state.needReadable) emitReadable(stream);
- }
- maybeReadMore(stream, state);
- }
- function chunkInvalid(state, chunk) {
- var er;
- if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
- er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);
- }
- return er;
- }
- Readable.prototype.isPaused = function () {
- return this._readableState.flowing === false;
- };
- // backwards compatibility.
- Readable.prototype.setEncoding = function (enc) {
- if (!StringDecoder) StringDecoder = __webpack_require__("X4X3").StringDecoder;
- var decoder = new StringDecoder(enc);
- this._readableState.decoder = decoder;
- // If setEncoding(null), decoder.encoding equals utf8
- this._readableState.encoding = this._readableState.decoder.encoding;
- // Iterate over current buffer to convert already stored Buffers:
- var p = this._readableState.buffer.head;
- var content = '';
- while (p !== null) {
- content += decoder.write(p.data);
- p = p.next;
- }
- this._readableState.buffer.clear();
- if (content !== '') this._readableState.buffer.push(content);
- this._readableState.length = content.length;
- return this;
- };
- // Don't raise the hwm > 1GB
- var MAX_HWM = 0x40000000;
- function computeNewHighWaterMark(n) {
- if (n >= MAX_HWM) {
- // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.
- n = MAX_HWM;
- } else {
- // Get the next highest power of 2 to prevent increasing hwm excessively in
- // tiny amounts
- n--;
- n |= n >>> 1;
- n |= n >>> 2;
- n |= n >>> 4;
- n |= n >>> 8;
- n |= n >>> 16;
- n++;
- }
- return n;
- }
- // This function is designed to be inlinable, so please take care when making
- // changes to the function body.
- function howMuchToRead(n, state) {
- if (n <= 0 || state.length === 0 && state.ended) return 0;
- if (state.objectMode) return 1;
- if (n !== n) {
- // Only flow one buffer at a time
- if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
- }
- // If we're asking for more than the current hwm, then raise the hwm.
- if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
- if (n <= state.length) return n;
- // Don't have enough
- if (!state.ended) {
- state.needReadable = true;
- return 0;
- }
- return state.length;
- }
- // you can override either this method, or the async _read(n) below.
- Readable.prototype.read = function (n) {
- debug('read', n);
- n = parseInt(n, 10);
- var state = this._readableState;
- var nOrig = n;
- if (n !== 0) state.emittedReadable = false;
- // if we're doing read(0) to trigger a readable event, but we
- // already have a bunch of data in the buffer, then just trigger
- // the 'readable' event and move on.
- if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {
- debug('read: emitReadable', state.length, state.ended);
- if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
- return null;
- }
- n = howMuchToRead(n, state);
- // if we've ended, and we're now clear, then finish it up.
- if (n === 0 && state.ended) {
- if (state.length === 0) endReadable(this);
- return null;
- }
- // All the actual chunk generation logic needs to be
- // *below* the call to _read. The reason is that in certain
- // synthetic stream cases, such as passthrough streams, _read
- // may be a completely synchronous operation which may change
- // the state of the read buffer, providing enough data when
- // before there was *not* enough.
- //
- // So, the steps are:
- // 1. Figure out what the state of things will be after we do
- // a read from the buffer.
- //
- // 2. If that resulting state will trigger a _read, then call _read.
- // Note that this may be asynchronous, or synchronous. Yes, it is
- // deeply ugly to write APIs this way, but that still doesn't mean
- // that the Readable class should behave improperly, as streams are
- // designed to be sync/async agnostic.
- // Take note if the _read call is sync or async (ie, if the read call
- // has returned yet), so that we know whether or not it's safe to emit
- // 'readable' etc.
- //
- // 3. Actually pull the requested chunks out of the buffer and return.
- // if we need a readable event, then we need to do some reading.
- var doRead = state.needReadable;
- debug('need readable', doRead);
- // if we currently have less than the highWaterMark, then also read some
- if (state.length === 0 || state.length - n < state.highWaterMark) {
- doRead = true;
- debug('length less than watermark', doRead);
- }
- // however, if we've ended, then there's no point, and if we're already
- // reading, then it's unnecessary.
- if (state.ended || state.reading) {
- doRead = false;
- debug('reading or ended', doRead);
- } else if (doRead) {
- debug('do read');
- state.reading = true;
- state.sync = true;
- // if the length is currently zero, then we *need* a readable event.
- if (state.length === 0) state.needReadable = true;
- // call internal read method
- this._read(state.highWaterMark);
- state.sync = false;
- // If _read pushed data synchronously, then `reading` will be false,
- // and we need to re-evaluate how much data we can return to the user.
- if (!state.reading) n = howMuchToRead(nOrig, state);
- }
- var ret;
- if (n > 0) ret = fromList(n, state);else ret = null;
- if (ret === null) {
- state.needReadable = state.length <= state.highWaterMark;
- n = 0;
- } else {
- state.length -= n;
- state.awaitDrain = 0;
- }
- if (state.length === 0) {
- // If we have nothing in the buffer, then we want to know
- // as soon as we *do* get something into the buffer.
- if (!state.ended) state.needReadable = true;
- // If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended) endReadable(this);
- }
- if (ret !== null) this.emit('data', ret);
- return ret;
- };
- function onEofChunk(stream, state) {
- debug('onEofChunk');
- if (state.ended) return;
- if (state.decoder) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) {
- state.buffer.push(chunk);
- state.length += state.objectMode ? 1 : chunk.length;
- }
- }
- state.ended = true;
- if (state.sync) {
- // if we are sync, wait until next tick to emit the data.
- // Otherwise we risk emitting data in the flow()
- // the readable code triggers during a read() call
- emitReadable(stream);
- } else {
- // emit 'readable' now to make sure it gets picked up.
- state.needReadable = false;
- if (!state.emittedReadable) {
- state.emittedReadable = true;
- emitReadable_(stream);
- }
- }
- }
- // Don't emit readable right away in sync mode, because this can trigger
- // another read() call => stack overflow. This way, it might trigger
- // a nextTick recursion warning, but that's not so bad.
- function emitReadable(stream) {
- var state = stream._readableState;
- debug('emitReadable', state.needReadable, state.emittedReadable);
- state.needReadable = false;
- if (!state.emittedReadable) {
- debug('emitReadable', state.flowing);
- state.emittedReadable = true;
- process.nextTick(emitReadable_, stream);
- }
- }
- function emitReadable_(stream) {
- var state = stream._readableState;
- debug('emitReadable_', state.destroyed, state.length, state.ended);
- if (!state.destroyed && (state.length || state.ended)) {
- stream.emit('readable');
- state.emittedReadable = false;
- }
- // The stream needs another readable event if
- // 1. It is not flowing, as the flow mechanism will take
- // care of it.
- // 2. It is not ended.
- // 3. It is below the highWaterMark, so we can schedule
- // another readable later.
- state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;
- flow(stream);
- }
- // at this point, the user has presumably seen the 'readable' event,
- // and called read() to consume some data. that may have triggered
- // in turn another _read(n) call, in which case reading = true if
- // it's in progress.
- // However, if we're not ended, or reading, and the length < hwm,
- // then go ahead and try to read some more preemptively.
- function maybeReadMore(stream, state) {
- if (!state.readingMore) {
- state.readingMore = true;
- process.nextTick(maybeReadMore_, stream, state);
- }
- }
- function maybeReadMore_(stream, state) {
- // Attempt to read more data if we should.
- //
- // The conditions for reading more data are (one of):
- // - Not enough data buffered (state.length < state.highWaterMark). The loop
- // is responsible for filling the buffer with enough data if such data
- // is available. If highWaterMark is 0 and we are not in the flowing mode
- // we should _not_ attempt to buffer any extra data. We'll get more data
- // when the stream consumer calls read() instead.
- // - No data in the buffer, and the stream is in flowing mode. In this mode
- // the loop below is responsible for ensuring read() is called. Failing to
- // call read here would abort the flow and there's no other mechanism for
- // continuing the flow if the stream consumer has just subscribed to the
- // 'data' event.
- //
- // In addition to the above conditions to keep reading data, the following
- // conditions prevent the data from being read:
- // - The stream has ended (state.ended).
- // - There is already a pending 'read' operation (state.reading). This is a
- // case where the the stream has called the implementation defined _read()
- // method, but they are processing the call asynchronously and have _not_
- // called push() with new data. In this case we skip performing more
- // read()s. The execution ends in this method again after the _read() ends
- // up calling push() with more data.
- while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {
- var len = state.length;
- debug('maybeReadMore read 0');
- stream.read(0);
- if (len === state.length)
- // didn't get any data, stop spinning.
- break;
- }
- state.readingMore = false;
- }
- // abstract method. to be overridden in specific implementation classes.
- // call cb(er, data) where data is <= n in length.
- // for virtual (non-string, non-buffer) streams, "length" is somewhat
- // arbitrary, and perhaps not very meaningful.
- Readable.prototype._read = function (n) {
- errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));
- };
- Readable.prototype.pipe = function (dest, pipeOpts) {
- var src = this;
- var state = this._readableState;
- switch (state.pipesCount) {
- case 0:
- state.pipes = dest;
- break;
- case 1:
- state.pipes = [state.pipes, dest];
- break;
- default:
- state.pipes.push(dest);
- break;
- }
- state.pipesCount += 1;
- debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
- var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
- var endFn = doEnd ? onend : unpipe;
- if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);
- dest.on('unpipe', onunpipe);
- function onunpipe(readable, unpipeInfo) {
- debug('onunpipe');
- if (readable === src) {
- if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
- unpipeInfo.hasUnpiped = true;
- cleanup();
- }
- }
- }
- function onend() {
- debug('onend');
- dest.end();
- }
- // when the dest drains, it reduces the awaitDrain counter
- // on the source. This would be more elegant with a .once()
- // handler in flow(), but adding and removing repeatedly is
- // too slow.
- var ondrain = pipeOnDrain(src);
- dest.on('drain', ondrain);
- var cleanedUp = false;
- function cleanup() {
- debug('cleanup');
- // cleanup event handlers once the pipe is broken
- dest.removeListener('close', onclose);
- dest.removeListener('finish', onfinish);
- dest.removeListener('drain', ondrain);
- dest.removeListener('error', onerror);
- dest.removeListener('unpipe', onunpipe);
- src.removeListener('end', onend);
- src.removeListener('end', unpipe);
- src.removeListener('data', ondata);
- cleanedUp = true;
- // if the reader is waiting for a drain event from this
- // specific writer, then it would cause it to never start
- // flowing again.
- // So, if this is awaiting a drain, then we just call it now.
- // If we don't know, then assume that we are waiting for one.
- if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
- }
- src.on('data', ondata);
- function ondata(chunk) {
- debug('ondata');
- var ret = dest.write(chunk);
- debug('dest.write', ret);
- if (ret === false) {
- // If the user unpiped during `dest.write()`, it is possible
- // to get stuck in a permanently paused state if that write
- // also returned false.
- // => Check whether `dest` is still a piping destination.
- if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
- debug('false write response, pause', state.awaitDrain);
- state.awaitDrain++;
- }
- src.pause();
- }
- }
- // if the dest has an error, then stop piping into it.
- // however, don't suppress the throwing behavior for this.
- function onerror(er) {
- debug('onerror', er);
- unpipe();
- dest.removeListener('error', onerror);
- if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);
- }
- // Make sure our error handler is attached before userland ones.
- prependListener(dest, 'error', onerror);
- // Both close and finish should trigger unpipe, but only once.
- function onclose() {
- dest.removeListener('finish', onfinish);
- unpipe();
- }
- dest.once('close', onclose);
- function onfinish() {
- debug('onfinish');
- dest.removeListener('close', onclose);
- unpipe();
- }
- dest.once('finish', onfinish);
- function unpipe() {
- debug('unpipe');
- src.unpipe(dest);
- }
- // tell the dest that it's being piped to
- dest.emit('pipe', src);
- // start the flow if it hasn't been started already.
- if (!state.flowing) {
- debug('pipe resume');
- src.resume();
- }
- return dest;
- };
- function pipeOnDrain(src) {
- return function pipeOnDrainFunctionResult() {
- var state = src._readableState;
- debug('pipeOnDrain', state.awaitDrain);
- if (state.awaitDrain) state.awaitDrain--;
- if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
- state.flowing = true;
- flow(src);
- }
- };
- }
- Readable.prototype.unpipe = function (dest) {
- var state = this._readableState;
- var unpipeInfo = {
- hasUnpiped: false
- };
- // if we're not piping anywhere, then do nothing.
- if (state.pipesCount === 0) return this;
- // just one destination. most common case.
- if (state.pipesCount === 1) {
- // passed in one, but it's not the right one.
- if (dest && dest !== state.pipes) return this;
- if (!dest) dest = state.pipes;
- // got a match.
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- if (dest) dest.emit('unpipe', this, unpipeInfo);
- return this;
- }
- // slow case. multiple pipe destinations.
- if (!dest) {
- // remove all.
- var dests = state.pipes;
- var len = state.pipesCount;
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {
- hasUnpiped: false
- });
- return this;
- }
- // try to find the right one.
- var index = indexOf(state.pipes, dest);
- if (index === -1) return this;
- state.pipes.splice(index, 1);
- state.pipesCount -= 1;
- if (state.pipesCount === 1) state.pipes = state.pipes[0];
- dest.emit('unpipe', this, unpipeInfo);
- return this;
- };
- // set up data events if they are asked for
- // Ensure readable listeners eventually get something
- Readable.prototype.on = function (ev, fn) {
- var res = Stream.prototype.on.call(this, ev, fn);
- var state = this._readableState;
- if (ev === 'data') {
- // update readableListening so that resume() may be a no-op
- // a few lines down. This is needed to support once('readable').
- state.readableListening = this.listenerCount('readable') > 0;
- // Try start flowing on next tick if stream isn't explicitly paused
- if (state.flowing !== false) this.resume();
- } else if (ev === 'readable') {
- if (!state.endEmitted && !state.readableListening) {
- state.readableListening = state.needReadable = true;
- state.flowing = false;
- state.emittedReadable = false;
- debug('on readable', state.length, state.reading);
- if (state.length) {
- emitReadable(this);
- } else if (!state.reading) {
- process.nextTick(nReadingNextTick, this);
- }
- }
- }
- return res;
- };
- Readable.prototype.addListener = Readable.prototype.on;
- Readable.prototype.removeListener = function (ev, fn) {
- var res = Stream.prototype.removeListener.call(this, ev, fn);
- if (ev === 'readable') {
- // We need to check if there is someone still listening to
- // readable and reset the state. However this needs to happen
- // after readable has been emitted but before I/O (nextTick) to
- // support once('readable', fn) cycles. This means that calling
- // resume within the same tick will have no
- // effect.
- process.nextTick(updateReadableListening, this);
- }
- return res;
- };
- Readable.prototype.removeAllListeners = function (ev) {
- var res = Stream.prototype.removeAllListeners.apply(this, arguments);
- if (ev === 'readable' || ev === undefined) {
- // We need to check if there is someone still listening to
- // readable and reset the state. However this needs to happen
- // after readable has been emitted but before I/O (nextTick) to
- // support once('readable', fn) cycles. This means that calling
- // resume within the same tick will have no
- // effect.
- process.nextTick(updateReadableListening, this);
- }
- return res;
- };
- function updateReadableListening(self) {
- var state = self._readableState;
- state.readableListening = self.listenerCount('readable') > 0;
- if (state.resumeScheduled && !state.paused) {
- // flowing needs to be set to true now, otherwise
- // the upcoming resume will not flow.
- state.flowing = true;
- // crude way to check if we should resume
- } else if (self.listenerCount('data') > 0) {
- self.resume();
- }
- }
- function nReadingNextTick(self) {
- debug('readable nexttick read 0');
- self.read(0);
- }
- // pause() and resume() are remnants of the legacy readable stream API
- // If the user uses them, then switch into old mode.
- Readable.prototype.resume = function () {
- var state = this._readableState;
- if (!state.flowing) {
- debug('resume');
- // we flow only if there is no one listening
- // for readable, but we still have to call
- // resume()
- state.flowing = !state.readableListening;
- resume(this, state);
- }
- state.paused = false;
- return this;
- };
- function resume(stream, state) {
- if (!state.resumeScheduled) {
- state.resumeScheduled = true;
- process.nextTick(resume_, stream, state);
- }
- }
- function resume_(stream, state) {
- debug('resume', state.reading);
- if (!state.reading) {
- stream.read(0);
- }
- state.resumeScheduled = false;
- stream.emit('resume');
- flow(stream);
- if (state.flowing && !state.reading) stream.read(0);
- }
- Readable.prototype.pause = function () {
- debug('call pause flowing=%j', this._readableState.flowing);
- if (this._readableState.flowing !== false) {
- debug('pause');
- this._readableState.flowing = false;
- this.emit('pause');
- }
- this._readableState.paused = true;
- return this;
- };
- function flow(stream) {
- var state = stream._readableState;
- debug('flow', state.flowing);
- while (state.flowing && stream.read() !== null);
- }
- // wrap an old-style stream as the async data source.
- // This is *not* part of the readable stream interface.
- // It is an ugly unfortunate mess of history.
- Readable.prototype.wrap = function (stream) {
- var _this = this;
- var state = this._readableState;
- var paused = false;
- stream.on('end', function () {
- debug('wrapped end');
- if (state.decoder && !state.ended) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) _this.push(chunk);
- }
- _this.push(null);
- });
- stream.on('data', function (chunk) {
- debug('wrapped data');
- if (state.decoder) chunk = state.decoder.write(chunk);
- // don't skip over falsy values in objectMode
- if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
- var ret = _this.push(chunk);
- if (!ret) {
- paused = true;
- stream.pause();
- }
- });
- // proxy all the other methods.
- // important when wrapping filters and duplexes.
- for (var i in stream) {
- if (this[i] === undefined && typeof stream[i] === 'function') {
- this[i] = function methodWrap(method) {
- return function methodWrapReturnFunction() {
- return stream[method].apply(stream, arguments);
- };
- }(i);
- }
- }
- // proxy certain important events.
- for (var n = 0; n < kProxyEvents.length; n++) {
- stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
- }
- // when we try to consume some more bytes, simply unpause the
- // underlying stream.
- this._read = function (n) {
- debug('wrapped _read', n);
- if (paused) {
- paused = false;
- stream.resume();
- }
- };
- return this;
- };
- if (typeof Symbol === 'function') {
- Readable.prototype[Symbol.asyncIterator] = function () {
- if (createReadableStreamAsyncIterator === undefined) {
- createReadableStreamAsyncIterator = __webpack_require__("kxE3");
- }
- return createReadableStreamAsyncIterator(this);
- };
- }
- Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._readableState.highWaterMark;
- }
- });
- Object.defineProperty(Readable.prototype, 'readableBuffer', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._readableState && this._readableState.buffer;
- }
- });
- Object.defineProperty(Readable.prototype, 'readableFlowing', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._readableState.flowing;
- },
- set: function set(state) {
- if (this._readableState) {
- this._readableState.flowing = state;
- }
- }
- });
- // exposed for testing purposes only.
- Readable._fromList = fromList;
- Object.defineProperty(Readable.prototype, 'readableLength', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._readableState.length;
- }
- });
- // Pluck off n bytes from an array of buffers.
- // Length is the combined lengths of all the buffers in the list.
- // This function is designed to be inlinable, so please take care when making
- // changes to the function body.
- function fromList(n, state) {
- // nothing buffered
- if (state.length === 0) return null;
- var ret;
- if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
- // read it all, truncate the list
- if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);
- state.buffer.clear();
- } else {
- // read part of list
- ret = state.buffer.consume(n, state.decoder);
- }
- return ret;
- }
- function endReadable(stream) {
- var state = stream._readableState;
- debug('endReadable', state.endEmitted);
- if (!state.endEmitted) {
- state.ended = true;
- process.nextTick(endReadableNT, state, stream);
- }
- }
- function endReadableNT(state, stream) {
- debug('endReadableNT', state.endEmitted, state.length);
- // Check that we didn't get one last unshift.
- if (!state.endEmitted && state.length === 0) {
- state.endEmitted = true;
- stream.readable = false;
- stream.emit('end');
- if (state.autoDestroy) {
- // In case of duplex streams we need a way to detect
- // if the writable side is ready for autoDestroy as well
- var wState = stream._writableState;
- if (!wState || wState.autoDestroy && wState.finished) {
- stream.destroy();
- }
- }
- }
- }
- if (typeof Symbol === 'function') {
- Readable.from = function (iterable, opts) {
- if (from === undefined) {
- from = __webpack_require__("xWCr");
- }
- return from(Readable, iterable, opts);
- };
- }
- function indexOf(xs, x) {
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) return i;
- }
- return -1;
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("W2nU")))
- /***/ }),
- /***/ "f1Eh":
- /***/ (function(module, exports) {
- module.exports = function(originalModule) {
- if(!originalModule.webpackPolyfill) {
- var module = Object.create(originalModule);
- // module.parent = undefined by default
- if(!module.children) module.children = [];
- Object.defineProperty(module, "loaded", {
- enumerable: true,
- get: function() {
- return module.l;
- }
- });
- Object.defineProperty(module, "id", {
- enumerable: true,
- get: function() {
- return module.i;
- }
- });
- Object.defineProperty(module, "exports", {
- enumerable: true,
- });
- module.webpackPolyfill = 1;
- }
- return module;
- };
- /***/ }),
- /***/ "f48b":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // a passthrough stream.
- // basically just the most minimal sort of Transform stream.
- // Every written chunk gets output as-is.
- module.exports = PassThrough;
- var Transform = __webpack_require__("D1Va");
- /*<replacement>*/
- var util = Object.create(__webpack_require__("jOgh"));
- util.inherits = __webpack_require__("LC74");
- /*</replacement>*/
- util.inherits(PassThrough, Transform);
- function PassThrough(options) {
- if (!(this instanceof PassThrough)) return new PassThrough(options);
- Transform.call(this, options);
- }
- PassThrough.prototype._transform = function (chunk, encoding, cb) {
- cb(null, chunk);
- };
- /***/ }),
- /***/ "fWB8":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("1lLf");
- var SHA256 = __webpack_require__("Q48P");
- function SHA224() {
- if (!(this instanceof SHA224))
- return new SHA224();
- SHA256.call(this);
- this.h = [
- 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
- 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];
- }
- utils.inherits(SHA224, SHA256);
- module.exports = SHA224;
- SHA224.blockSize = 512;
- SHA224.outSize = 224;
- SHA224.hmacStrength = 192;
- SHA224.padLength = 64;
- SHA224.prototype._digest = function digest(enc) {
- // Just truncate output
- if (enc === 'hex')
- return utils.toHex32(this.h.slice(0, 7), 'big');
- else
- return utils.split32(this.h.slice(0, 7), 'big');
- };
- /***/ }),
- /***/ "fxuI":
- /***/ (function(module, exports, __webpack_require__) {
- var parseKeys = __webpack_require__("jkjm")
- var mgf = __webpack_require__("Cua8")
- var xor = __webpack_require__("zOO0")
- var BN = __webpack_require__("geuY")
- var crt = __webpack_require__("jSRM")
- var createHash = __webpack_require__("BVsN")
- var withPublic = __webpack_require__("5QAX")
- var Buffer = __webpack_require__("X3l8").Buffer
- module.exports = function privateDecrypt (privateKey, enc, reverse) {
- var padding
- if (privateKey.padding) {
- padding = privateKey.padding
- } else if (reverse) {
- padding = 1
- } else {
- padding = 4
- }
- var key = parseKeys(privateKey)
- var k = key.modulus.byteLength()
- if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {
- throw new Error('decryption error')
- }
- var msg
- if (reverse) {
- msg = withPublic(new BN(enc), key)
- } else {
- msg = crt(enc, key)
- }
- var zBuffer = Buffer.alloc(k - msg.length)
- msg = Buffer.concat([zBuffer, msg], k)
- if (padding === 4) {
- return oaep(key, msg)
- } else if (padding === 1) {
- return pkcs1(key, msg, reverse)
- } else if (padding === 3) {
- return msg
- } else {
- throw new Error('unknown padding')
- }
- }
- function oaep (key, msg) {
- var k = key.modulus.byteLength()
- var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()
- var hLen = iHash.length
- if (msg[0] !== 0) {
- throw new Error('decryption error')
- }
- var maskedSeed = msg.slice(1, hLen + 1)
- var maskedDb = msg.slice(hLen + 1)
- var seed = xor(maskedSeed, mgf(maskedDb, hLen))
- var db = xor(maskedDb, mgf(seed, k - hLen - 1))
- if (compare(iHash, db.slice(0, hLen))) {
- throw new Error('decryption error')
- }
- var i = hLen
- while (db[i] === 0) {
- i++
- }
- if (db[i++] !== 1) {
- throw new Error('decryption error')
- }
- return db.slice(i)
- }
- function pkcs1 (key, msg, reverse) {
- var p1 = msg.slice(0, 2)
- var i = 2
- var status = 0
- while (msg[i++] !== 0) {
- if (i >= msg.length) {
- status++
- break
- }
- }
- var ps = msg.slice(2, i - 1)
- if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {
- status++
- }
- if (ps.length < 8) {
- status++
- }
- if (status) {
- throw new Error('decryption error')
- }
- return msg.slice(i)
- }
- function compare (a, b) {
- a = Buffer.from(a)
- b = Buffer.from(b)
- var dif = 0
- var len = a.length
- if (a.length !== b.length) {
- dif++
- len = Math.min(a.length, b.length)
- }
- var i = -1
- while (++i < len) {
- dif += (a[i] ^ b[i])
- }
- return dif
- }
- /***/ }),
- /***/ "geuY":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {
- 'use strict';
- // Utils
- function assert (val, msg) {
- if (!val) throw new Error(msg || 'Assertion failed');
- }
- // Could use `inherits` module, but don't want to move from single file
- // architecture yet.
- function inherits (ctor, superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- TempCtor.prototype = superCtor.prototype;
- ctor.prototype = new TempCtor();
- ctor.prototype.constructor = ctor;
- }
- // BN
- function BN (number, base, endian) {
- if (BN.isBN(number)) {
- return number;
- }
- this.negative = 0;
- this.words = null;
- this.length = 0;
- // Reduction context
- this.red = null;
- if (number !== null) {
- if (base === 'le' || base === 'be') {
- endian = base;
- base = 10;
- }
- this._init(number || 0, base || 10, endian || 'be');
- }
- }
- if (typeof module === 'object') {
- module.exports = BN;
- } else {
- exports.BN = BN;
- }
- BN.BN = BN;
- BN.wordSize = 26;
- var Buffer;
- try {
- if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {
- Buffer = window.Buffer;
- } else {
- Buffer = __webpack_require__(5).Buffer;
- }
- } catch (e) {
- }
- BN.isBN = function isBN (num) {
- if (num instanceof BN) {
- return true;
- }
- return num !== null && typeof num === 'object' &&
- num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
- };
- BN.max = function max (left, right) {
- if (left.cmp(right) > 0) return left;
- return right;
- };
- BN.min = function min (left, right) {
- if (left.cmp(right) < 0) return left;
- return right;
- };
- BN.prototype._init = function init (number, base, endian) {
- if (typeof number === 'number') {
- return this._initNumber(number, base, endian);
- }
- if (typeof number === 'object') {
- return this._initArray(number, base, endian);
- }
- if (base === 'hex') {
- base = 16;
- }
- assert(base === (base | 0) && base >= 2 && base <= 36);
- number = number.toString().replace(/\s+/g, '');
- var start = 0;
- if (number[0] === '-') {
- start++;
- this.negative = 1;
- }
- if (start < number.length) {
- if (base === 16) {
- this._parseHex(number, start, endian);
- } else {
- this._parseBase(number, base, start);
- if (endian === 'le') {
- this._initArray(this.toArray(), base, endian);
- }
- }
- }
- };
- BN.prototype._initNumber = function _initNumber (number, base, endian) {
- if (number < 0) {
- this.negative = 1;
- number = -number;
- }
- if (number < 0x4000000) {
- this.words = [ number & 0x3ffffff ];
- this.length = 1;
- } else if (number < 0x10000000000000) {
- this.words = [
- number & 0x3ffffff,
- (number / 0x4000000) & 0x3ffffff
- ];
- this.length = 2;
- } else {
- assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)
- this.words = [
- number & 0x3ffffff,
- (number / 0x4000000) & 0x3ffffff,
- 1
- ];
- this.length = 3;
- }
- if (endian !== 'le') return;
- // Reverse the bytes
- this._initArray(this.toArray(), base, endian);
- };
- BN.prototype._initArray = function _initArray (number, base, endian) {
- // Perhaps a Uint8Array
- assert(typeof number.length === 'number');
- if (number.length <= 0) {
- this.words = [ 0 ];
- this.length = 1;
- return this;
- }
- this.length = Math.ceil(number.length / 3);
- this.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) {
- this.words[i] = 0;
- }
- var j, w;
- var off = 0;
- if (endian === 'be') {
- for (i = number.length - 1, j = 0; i >= 0; i -= 3) {
- w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);
- this.words[j] |= (w << off) & 0x3ffffff;
- this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;
- off += 24;
- if (off >= 26) {
- off -= 26;
- j++;
- }
- }
- } else if (endian === 'le') {
- for (i = 0, j = 0; i < number.length; i += 3) {
- w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);
- this.words[j] |= (w << off) & 0x3ffffff;
- this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;
- off += 24;
- if (off >= 26) {
- off -= 26;
- j++;
- }
- }
- }
- return this.strip();
- };
- function parseHex4Bits (string, index) {
- var c = string.charCodeAt(index);
- // 'A' - 'F'
- if (c >= 65 && c <= 70) {
- return c - 55;
- // 'a' - 'f'
- } else if (c >= 97 && c <= 102) {
- return c - 87;
- // '0' - '9'
- } else {
- return (c - 48) & 0xf;
- }
- }
- function parseHexByte (string, lowerBound, index) {
- var r = parseHex4Bits(string, index);
- if (index - 1 >= lowerBound) {
- r |= parseHex4Bits(string, index - 1) << 4;
- }
- return r;
- }
- BN.prototype._parseHex = function _parseHex (number, start, endian) {
- // Create possibly bigger array to ensure that it fits the number
- this.length = Math.ceil((number.length - start) / 6);
- this.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) {
- this.words[i] = 0;
- }
- // 24-bits chunks
- var off = 0;
- var j = 0;
- var w;
- if (endian === 'be') {
- for (i = number.length - 1; i >= start; i -= 2) {
- w = parseHexByte(number, start, i) << off;
- this.words[j] |= w & 0x3ffffff;
- if (off >= 18) {
- off -= 18;
- j += 1;
- this.words[j] |= w >>> 26;
- } else {
- off += 8;
- }
- }
- } else {
- var parseLength = number.length - start;
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {
- w = parseHexByte(number, start, i) << off;
- this.words[j] |= w & 0x3ffffff;
- if (off >= 18) {
- off -= 18;
- j += 1;
- this.words[j] |= w >>> 26;
- } else {
- off += 8;
- }
- }
- }
- this.strip();
- };
- function parseBase (str, start, end, mul) {
- var r = 0;
- var len = Math.min(str.length, end);
- for (var i = start; i < len; i++) {
- var c = str.charCodeAt(i) - 48;
- r *= mul;
- // 'a'
- if (c >= 49) {
- r += c - 49 + 0xa;
- // 'A'
- } else if (c >= 17) {
- r += c - 17 + 0xa;
- // '0' - '9'
- } else {
- r += c;
- }
- }
- return r;
- }
- BN.prototype._parseBase = function _parseBase (number, base, start) {
- // Initialize as zero
- this.words = [ 0 ];
- this.length = 1;
- // Find length of limb in base
- for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {
- limbLen++;
- }
- limbLen--;
- limbPow = (limbPow / base) | 0;
- var total = number.length - start;
- var mod = total % limbLen;
- var end = Math.min(total, total - mod) + start;
- var word = 0;
- for (var i = start; i < end; i += limbLen) {
- word = parseBase(number, i, i + limbLen, base);
- this.imuln(limbPow);
- if (this.words[0] + word < 0x4000000) {
- this.words[0] += word;
- } else {
- this._iaddn(word);
- }
- }
- if (mod !== 0) {
- var pow = 1;
- word = parseBase(number, i, number.length, base);
- for (i = 0; i < mod; i++) {
- pow *= base;
- }
- this.imuln(pow);
- if (this.words[0] + word < 0x4000000) {
- this.words[0] += word;
- } else {
- this._iaddn(word);
- }
- }
- this.strip();
- };
- BN.prototype.copy = function copy (dest) {
- dest.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) {
- dest.words[i] = this.words[i];
- }
- dest.length = this.length;
- dest.negative = this.negative;
- dest.red = this.red;
- };
- BN.prototype.clone = function clone () {
- var r = new BN(null);
- this.copy(r);
- return r;
- };
- BN.prototype._expand = function _expand (size) {
- while (this.length < size) {
- this.words[this.length++] = 0;
- }
- return this;
- };
- // Remove leading `0` from `this`
- BN.prototype.strip = function strip () {
- while (this.length > 1 && this.words[this.length - 1] === 0) {
- this.length--;
- }
- return this._normSign();
- };
- BN.prototype._normSign = function _normSign () {
- // -0 = 0
- if (this.length === 1 && this.words[0] === 0) {
- this.negative = 0;
- }
- return this;
- };
- BN.prototype.inspect = function inspect () {
- return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';
- };
- /*
- var zeros = [];
- var groupSizes = [];
- var groupBases = [];
- var s = '';
- var i = -1;
- while (++i < BN.wordSize) {
- zeros[i] = s;
- s += '0';
- }
- groupSizes[0] = 0;
- groupSizes[1] = 0;
- groupBases[0] = 0;
- groupBases[1] = 0;
- var base = 2 - 1;
- while (++base < 36 + 1) {
- var groupSize = 0;
- var groupBase = 1;
- while (groupBase < (1 << BN.wordSize) / base) {
- groupBase *= base;
- groupSize += 1;
- }
- groupSizes[base] = groupSize;
- groupBases[base] = groupBase;
- }
- */
- var zeros = [
- '',
- '0',
- '00',
- '000',
- '0000',
- '00000',
- '000000',
- '0000000',
- '00000000',
- '000000000',
- '0000000000',
- '00000000000',
- '000000000000',
- '0000000000000',
- '00000000000000',
- '000000000000000',
- '0000000000000000',
- '00000000000000000',
- '000000000000000000',
- '0000000000000000000',
- '00000000000000000000',
- '000000000000000000000',
- '0000000000000000000000',
- '00000000000000000000000',
- '000000000000000000000000',
- '0000000000000000000000000'
- ];
- var groupSizes = [
- 0, 0,
- 25, 16, 12, 11, 10, 9, 8,
- 8, 7, 7, 7, 7, 6, 6,
- 6, 6, 6, 6, 6, 5, 5,
- 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5
- ];
- var groupBases = [
- 0, 0,
- 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,
- 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,
- 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,
- 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,
- 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176
- ];
- BN.prototype.toString = function toString (base, padding) {
- base = base || 10;
- padding = padding | 0 || 1;
- var out;
- if (base === 16 || base === 'hex') {
- out = '';
- var off = 0;
- var carry = 0;
- for (var i = 0; i < this.length; i++) {
- var w = this.words[i];
- var word = (((w << off) | carry) & 0xffffff).toString(16);
- carry = (w >>> (24 - off)) & 0xffffff;
- if (carry !== 0 || i !== this.length - 1) {
- out = zeros[6 - word.length] + word + out;
- } else {
- out = word + out;
- }
- off += 2;
- if (off >= 26) {
- off -= 26;
- i--;
- }
- }
- if (carry !== 0) {
- out = carry.toString(16) + out;
- }
- while (out.length % padding !== 0) {
- out = '0' + out;
- }
- if (this.negative !== 0) {
- out = '-' + out;
- }
- return out;
- }
- if (base === (base | 0) && base >= 2 && base <= 36) {
- // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
- var groupSize = groupSizes[base];
- // var groupBase = Math.pow(base, groupSize);
- var groupBase = groupBases[base];
- out = '';
- var c = this.clone();
- c.negative = 0;
- while (!c.isZero()) {
- var r = c.modn(groupBase).toString(base);
- c = c.idivn(groupBase);
- if (!c.isZero()) {
- out = zeros[groupSize - r.length] + r + out;
- } else {
- out = r + out;
- }
- }
- if (this.isZero()) {
- out = '0' + out;
- }
- while (out.length % padding !== 0) {
- out = '0' + out;
- }
- if (this.negative !== 0) {
- out = '-' + out;
- }
- return out;
- }
- assert(false, 'Base should be between 2 and 36');
- };
- BN.prototype.toNumber = function toNumber () {
- var ret = this.words[0];
- if (this.length === 2) {
- ret += this.words[1] * 0x4000000;
- } else if (this.length === 3 && this.words[2] === 0x01) {
- // NOTE: at this stage it is known that the top bit is set
- ret += 0x10000000000000 + (this.words[1] * 0x4000000);
- } else if (this.length > 2) {
- assert(false, 'Number can only safely store up to 53 bits');
- }
- return (this.negative !== 0) ? -ret : ret;
- };
- BN.prototype.toJSON = function toJSON () {
- return this.toString(16);
- };
- BN.prototype.toBuffer = function toBuffer (endian, length) {
- assert(typeof Buffer !== 'undefined');
- return this.toArrayLike(Buffer, endian, length);
- };
- BN.prototype.toArray = function toArray (endian, length) {
- return this.toArrayLike(Array, endian, length);
- };
- BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
- var byteLength = this.byteLength();
- var reqLength = length || Math.max(1, byteLength);
- assert(byteLength <= reqLength, 'byte array longer than desired length');
- assert(reqLength > 0, 'Requested array length <= 0');
- this.strip();
- var littleEndian = endian === 'le';
- var res = new ArrayType(reqLength);
- var b, i;
- var q = this.clone();
- if (!littleEndian) {
- // Assume big-endian
- for (i = 0; i < reqLength - byteLength; i++) {
- res[i] = 0;
- }
- for (i = 0; !q.isZero(); i++) {
- b = q.andln(0xff);
- q.iushrn(8);
- res[reqLength - i - 1] = b;
- }
- } else {
- for (i = 0; !q.isZero(); i++) {
- b = q.andln(0xff);
- q.iushrn(8);
- res[i] = b;
- }
- for (; i < reqLength; i++) {
- res[i] = 0;
- }
- }
- return res;
- };
- if (Math.clz32) {
- BN.prototype._countBits = function _countBits (w) {
- return 32 - Math.clz32(w);
- };
- } else {
- BN.prototype._countBits = function _countBits (w) {
- var t = w;
- var r = 0;
- if (t >= 0x1000) {
- r += 13;
- t >>>= 13;
- }
- if (t >= 0x40) {
- r += 7;
- t >>>= 7;
- }
- if (t >= 0x8) {
- r += 4;
- t >>>= 4;
- }
- if (t >= 0x02) {
- r += 2;
- t >>>= 2;
- }
- return r + t;
- };
- }
- BN.prototype._zeroBits = function _zeroBits (w) {
- // Short-cut
- if (w === 0) return 26;
- var t = w;
- var r = 0;
- if ((t & 0x1fff) === 0) {
- r += 13;
- t >>>= 13;
- }
- if ((t & 0x7f) === 0) {
- r += 7;
- t >>>= 7;
- }
- if ((t & 0xf) === 0) {
- r += 4;
- t >>>= 4;
- }
- if ((t & 0x3) === 0) {
- r += 2;
- t >>>= 2;
- }
- if ((t & 0x1) === 0) {
- r++;
- }
- return r;
- };
- // Return number of used bits in a BN
- BN.prototype.bitLength = function bitLength () {
- var w = this.words[this.length - 1];
- var hi = this._countBits(w);
- return (this.length - 1) * 26 + hi;
- };
- function toBitArray (num) {
- var w = new Array(num.bitLength());
- for (var bit = 0; bit < w.length; bit++) {
- var off = (bit / 26) | 0;
- var wbit = bit % 26;
- w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;
- }
- return w;
- }
- // Number of trailing zero bits
- BN.prototype.zeroBits = function zeroBits () {
- if (this.isZero()) return 0;
- var r = 0;
- for (var i = 0; i < this.length; i++) {
- var b = this._zeroBits(this.words[i]);
- r += b;
- if (b !== 26) break;
- }
- return r;
- };
- BN.prototype.byteLength = function byteLength () {
- return Math.ceil(this.bitLength() / 8);
- };
- BN.prototype.toTwos = function toTwos (width) {
- if (this.negative !== 0) {
- return this.abs().inotn(width).iaddn(1);
- }
- return this.clone();
- };
- BN.prototype.fromTwos = function fromTwos (width) {
- if (this.testn(width - 1)) {
- return this.notn(width).iaddn(1).ineg();
- }
- return this.clone();
- };
- BN.prototype.isNeg = function isNeg () {
- return this.negative !== 0;
- };
- // Return negative clone of `this`
- BN.prototype.neg = function neg () {
- return this.clone().ineg();
- };
- BN.prototype.ineg = function ineg () {
- if (!this.isZero()) {
- this.negative ^= 1;
- }
- return this;
- };
- // Or `num` with `this` in-place
- BN.prototype.iuor = function iuor (num) {
- while (this.length < num.length) {
- this.words[this.length++] = 0;
- }
- for (var i = 0; i < num.length; i++) {
- this.words[i] = this.words[i] | num.words[i];
- }
- return this.strip();
- };
- BN.prototype.ior = function ior (num) {
- assert((this.negative | num.negative) === 0);
- return this.iuor(num);
- };
- // Or `num` with `this`
- BN.prototype.or = function or (num) {
- if (this.length > num.length) return this.clone().ior(num);
- return num.clone().ior(this);
- };
- BN.prototype.uor = function uor (num) {
- if (this.length > num.length) return this.clone().iuor(num);
- return num.clone().iuor(this);
- };
- // And `num` with `this` in-place
- BN.prototype.iuand = function iuand (num) {
- // b = min-length(num, this)
- var b;
- if (this.length > num.length) {
- b = num;
- } else {
- b = this;
- }
- for (var i = 0; i < b.length; i++) {
- this.words[i] = this.words[i] & num.words[i];
- }
- this.length = b.length;
- return this.strip();
- };
- BN.prototype.iand = function iand (num) {
- assert((this.negative | num.negative) === 0);
- return this.iuand(num);
- };
- // And `num` with `this`
- BN.prototype.and = function and (num) {
- if (this.length > num.length) return this.clone().iand(num);
- return num.clone().iand(this);
- };
- BN.prototype.uand = function uand (num) {
- if (this.length > num.length) return this.clone().iuand(num);
- return num.clone().iuand(this);
- };
- // Xor `num` with `this` in-place
- BN.prototype.iuxor = function iuxor (num) {
- // a.length > b.length
- var a;
- var b;
- if (this.length > num.length) {
- a = this;
- b = num;
- } else {
- a = num;
- b = this;
- }
- for (var i = 0; i < b.length; i++) {
- this.words[i] = a.words[i] ^ b.words[i];
- }
- if (this !== a) {
- for (; i < a.length; i++) {
- this.words[i] = a.words[i];
- }
- }
- this.length = a.length;
- return this.strip();
- };
- BN.prototype.ixor = function ixor (num) {
- assert((this.negative | num.negative) === 0);
- return this.iuxor(num);
- };
- // Xor `num` with `this`
- BN.prototype.xor = function xor (num) {
- if (this.length > num.length) return this.clone().ixor(num);
- return num.clone().ixor(this);
- };
- BN.prototype.uxor = function uxor (num) {
- if (this.length > num.length) return this.clone().iuxor(num);
- return num.clone().iuxor(this);
- };
- // Not ``this`` with ``width`` bitwidth
- BN.prototype.inotn = function inotn (width) {
- assert(typeof width === 'number' && width >= 0);
- var bytesNeeded = Math.ceil(width / 26) | 0;
- var bitsLeft = width % 26;
- // Extend the buffer with leading zeroes
- this._expand(bytesNeeded);
- if (bitsLeft > 0) {
- bytesNeeded--;
- }
- // Handle complete words
- for (var i = 0; i < bytesNeeded; i++) {
- this.words[i] = ~this.words[i] & 0x3ffffff;
- }
- // Handle the residue
- if (bitsLeft > 0) {
- this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));
- }
- // And remove leading zeroes
- return this.strip();
- };
- BN.prototype.notn = function notn (width) {
- return this.clone().inotn(width);
- };
- // Set `bit` of `this`
- BN.prototype.setn = function setn (bit, val) {
- assert(typeof bit === 'number' && bit >= 0);
- var off = (bit / 26) | 0;
- var wbit = bit % 26;
- this._expand(off + 1);
- if (val) {
- this.words[off] = this.words[off] | (1 << wbit);
- } else {
- this.words[off] = this.words[off] & ~(1 << wbit);
- }
- return this.strip();
- };
- // Add `num` to `this` in-place
- BN.prototype.iadd = function iadd (num) {
- var r;
- // negative + positive
- if (this.negative !== 0 && num.negative === 0) {
- this.negative = 0;
- r = this.isub(num);
- this.negative ^= 1;
- return this._normSign();
- // positive + negative
- } else if (this.negative === 0 && num.negative !== 0) {
- num.negative = 0;
- r = this.isub(num);
- num.negative = 1;
- return r._normSign();
- }
- // a.length > b.length
- var a, b;
- if (this.length > num.length) {
- a = this;
- b = num;
- } else {
- a = num;
- b = this;
- }
- var carry = 0;
- for (var i = 0; i < b.length; i++) {
- r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
- this.words[i] = r & 0x3ffffff;
- carry = r >>> 26;
- }
- for (; carry !== 0 && i < a.length; i++) {
- r = (a.words[i] | 0) + carry;
- this.words[i] = r & 0x3ffffff;
- carry = r >>> 26;
- }
- this.length = a.length;
- if (carry !== 0) {
- this.words[this.length] = carry;
- this.length++;
- // Copy the rest of the words
- } else if (a !== this) {
- for (; i < a.length; i++) {
- this.words[i] = a.words[i];
- }
- }
- return this;
- };
- // Add `num` to `this`
- BN.prototype.add = function add (num) {
- var res;
- if (num.negative !== 0 && this.negative === 0) {
- num.negative = 0;
- res = this.sub(num);
- num.negative ^= 1;
- return res;
- } else if (num.negative === 0 && this.negative !== 0) {
- this.negative = 0;
- res = num.sub(this);
- this.negative = 1;
- return res;
- }
- if (this.length > num.length) return this.clone().iadd(num);
- return num.clone().iadd(this);
- };
- // Subtract `num` from `this` in-place
- BN.prototype.isub = function isub (num) {
- // this - (-num) = this + num
- if (num.negative !== 0) {
- num.negative = 0;
- var r = this.iadd(num);
- num.negative = 1;
- return r._normSign();
- // -this - num = -(this + num)
- } else if (this.negative !== 0) {
- this.negative = 0;
- this.iadd(num);
- this.negative = 1;
- return this._normSign();
- }
- // At this point both numbers are positive
- var cmp = this.cmp(num);
- // Optimization - zeroify
- if (cmp === 0) {
- this.negative = 0;
- this.length = 1;
- this.words[0] = 0;
- return this;
- }
- // a > b
- var a, b;
- if (cmp > 0) {
- a = this;
- b = num;
- } else {
- a = num;
- b = this;
- }
- var carry = 0;
- for (var i = 0; i < b.length; i++) {
- r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
- carry = r >> 26;
- this.words[i] = r & 0x3ffffff;
- }
- for (; carry !== 0 && i < a.length; i++) {
- r = (a.words[i] | 0) + carry;
- carry = r >> 26;
- this.words[i] = r & 0x3ffffff;
- }
- // Copy rest of the words
- if (carry === 0 && i < a.length && a !== this) {
- for (; i < a.length; i++) {
- this.words[i] = a.words[i];
- }
- }
- this.length = Math.max(this.length, i);
- if (a !== this) {
- this.negative = 1;
- }
- return this.strip();
- };
- // Subtract `num` from `this`
- BN.prototype.sub = function sub (num) {
- return this.clone().isub(num);
- };
- function smallMulTo (self, num, out) {
- out.negative = num.negative ^ self.negative;
- var len = (self.length + num.length) | 0;
- out.length = len;
- len = (len - 1) | 0;
- // Peel one iteration (compiler can't do it, because of code complexity)
- var a = self.words[0] | 0;
- var b = num.words[0] | 0;
- var r = a * b;
- var lo = r & 0x3ffffff;
- var carry = (r / 0x4000000) | 0;
- out.words[0] = lo;
- for (var k = 1; k < len; k++) {
- // Sum all words with the same `i + j = k` and accumulate `ncarry`,
- // note that ncarry could be >= 0x3ffffff
- var ncarry = carry >>> 26;
- var rword = carry & 0x3ffffff;
- var maxJ = Math.min(k, num.length - 1);
- for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
- var i = (k - j) | 0;
- a = self.words[i] | 0;
- b = num.words[j] | 0;
- r = a * b + rword;
- ncarry += (r / 0x4000000) | 0;
- rword = r & 0x3ffffff;
- }
- out.words[k] = rword | 0;
- carry = ncarry | 0;
- }
- if (carry !== 0) {
- out.words[k] = carry | 0;
- } else {
- out.length--;
- }
- return out.strip();
- }
- // TODO(indutny): it may be reasonable to omit it for users who don't need
- // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit
- // multiplication (like elliptic secp256k1).
- var comb10MulTo = function comb10MulTo (self, num, out) {
- var a = self.words;
- var b = num.words;
- var o = out.words;
- var c = 0;
- var lo;
- var mid;
- var hi;
- var a0 = a[0] | 0;
- var al0 = a0 & 0x1fff;
- var ah0 = a0 >>> 13;
- var a1 = a[1] | 0;
- var al1 = a1 & 0x1fff;
- var ah1 = a1 >>> 13;
- var a2 = a[2] | 0;
- var al2 = a2 & 0x1fff;
- var ah2 = a2 >>> 13;
- var a3 = a[3] | 0;
- var al3 = a3 & 0x1fff;
- var ah3 = a3 >>> 13;
- var a4 = a[4] | 0;
- var al4 = a4 & 0x1fff;
- var ah4 = a4 >>> 13;
- var a5 = a[5] | 0;
- var al5 = a5 & 0x1fff;
- var ah5 = a5 >>> 13;
- var a6 = a[6] | 0;
- var al6 = a6 & 0x1fff;
- var ah6 = a6 >>> 13;
- var a7 = a[7] | 0;
- var al7 = a7 & 0x1fff;
- var ah7 = a7 >>> 13;
- var a8 = a[8] | 0;
- var al8 = a8 & 0x1fff;
- var ah8 = a8 >>> 13;
- var a9 = a[9] | 0;
- var al9 = a9 & 0x1fff;
- var ah9 = a9 >>> 13;
- var b0 = b[0] | 0;
- var bl0 = b0 & 0x1fff;
- var bh0 = b0 >>> 13;
- var b1 = b[1] | 0;
- var bl1 = b1 & 0x1fff;
- var bh1 = b1 >>> 13;
- var b2 = b[2] | 0;
- var bl2 = b2 & 0x1fff;
- var bh2 = b2 >>> 13;
- var b3 = b[3] | 0;
- var bl3 = b3 & 0x1fff;
- var bh3 = b3 >>> 13;
- var b4 = b[4] | 0;
- var bl4 = b4 & 0x1fff;
- var bh4 = b4 >>> 13;
- var b5 = b[5] | 0;
- var bl5 = b5 & 0x1fff;
- var bh5 = b5 >>> 13;
- var b6 = b[6] | 0;
- var bl6 = b6 & 0x1fff;
- var bh6 = b6 >>> 13;
- var b7 = b[7] | 0;
- var bl7 = b7 & 0x1fff;
- var bh7 = b7 >>> 13;
- var b8 = b[8] | 0;
- var bl8 = b8 & 0x1fff;
- var bh8 = b8 >>> 13;
- var b9 = b[9] | 0;
- var bl9 = b9 & 0x1fff;
- var bh9 = b9 >>> 13;
- out.negative = self.negative ^ num.negative;
- out.length = 19;
- /* k = 0 */
- lo = Math.imul(al0, bl0);
- mid = Math.imul(al0, bh0);
- mid = (mid + Math.imul(ah0, bl0)) | 0;
- hi = Math.imul(ah0, bh0);
- var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;
- w0 &= 0x3ffffff;
- /* k = 1 */
- lo = Math.imul(al1, bl0);
- mid = Math.imul(al1, bh0);
- mid = (mid + Math.imul(ah1, bl0)) | 0;
- hi = Math.imul(ah1, bh0);
- lo = (lo + Math.imul(al0, bl1)) | 0;
- mid = (mid + Math.imul(al0, bh1)) | 0;
- mid = (mid + Math.imul(ah0, bl1)) | 0;
- hi = (hi + Math.imul(ah0, bh1)) | 0;
- var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;
- w1 &= 0x3ffffff;
- /* k = 2 */
- lo = Math.imul(al2, bl0);
- mid = Math.imul(al2, bh0);
- mid = (mid + Math.imul(ah2, bl0)) | 0;
- hi = Math.imul(ah2, bh0);
- lo = (lo + Math.imul(al1, bl1)) | 0;
- mid = (mid + Math.imul(al1, bh1)) | 0;
- mid = (mid + Math.imul(ah1, bl1)) | 0;
- hi = (hi + Math.imul(ah1, bh1)) | 0;
- lo = (lo + Math.imul(al0, bl2)) | 0;
- mid = (mid + Math.imul(al0, bh2)) | 0;
- mid = (mid + Math.imul(ah0, bl2)) | 0;
- hi = (hi + Math.imul(ah0, bh2)) | 0;
- var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;
- w2 &= 0x3ffffff;
- /* k = 3 */
- lo = Math.imul(al3, bl0);
- mid = Math.imul(al3, bh0);
- mid = (mid + Math.imul(ah3, bl0)) | 0;
- hi = Math.imul(ah3, bh0);
- lo = (lo + Math.imul(al2, bl1)) | 0;
- mid = (mid + Math.imul(al2, bh1)) | 0;
- mid = (mid + Math.imul(ah2, bl1)) | 0;
- hi = (hi + Math.imul(ah2, bh1)) | 0;
- lo = (lo + Math.imul(al1, bl2)) | 0;
- mid = (mid + Math.imul(al1, bh2)) | 0;
- mid = (mid + Math.imul(ah1, bl2)) | 0;
- hi = (hi + Math.imul(ah1, bh2)) | 0;
- lo = (lo + Math.imul(al0, bl3)) | 0;
- mid = (mid + Math.imul(al0, bh3)) | 0;
- mid = (mid + Math.imul(ah0, bl3)) | 0;
- hi = (hi + Math.imul(ah0, bh3)) | 0;
- var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;
- w3 &= 0x3ffffff;
- /* k = 4 */
- lo = Math.imul(al4, bl0);
- mid = Math.imul(al4, bh0);
- mid = (mid + Math.imul(ah4, bl0)) | 0;
- hi = Math.imul(ah4, bh0);
- lo = (lo + Math.imul(al3, bl1)) | 0;
- mid = (mid + Math.imul(al3, bh1)) | 0;
- mid = (mid + Math.imul(ah3, bl1)) | 0;
- hi = (hi + Math.imul(ah3, bh1)) | 0;
- lo = (lo + Math.imul(al2, bl2)) | 0;
- mid = (mid + Math.imul(al2, bh2)) | 0;
- mid = (mid + Math.imul(ah2, bl2)) | 0;
- hi = (hi + Math.imul(ah2, bh2)) | 0;
- lo = (lo + Math.imul(al1, bl3)) | 0;
- mid = (mid + Math.imul(al1, bh3)) | 0;
- mid = (mid + Math.imul(ah1, bl3)) | 0;
- hi = (hi + Math.imul(ah1, bh3)) | 0;
- lo = (lo + Math.imul(al0, bl4)) | 0;
- mid = (mid + Math.imul(al0, bh4)) | 0;
- mid = (mid + Math.imul(ah0, bl4)) | 0;
- hi = (hi + Math.imul(ah0, bh4)) | 0;
- var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;
- w4 &= 0x3ffffff;
- /* k = 5 */
- lo = Math.imul(al5, bl0);
- mid = Math.imul(al5, bh0);
- mid = (mid + Math.imul(ah5, bl0)) | 0;
- hi = Math.imul(ah5, bh0);
- lo = (lo + Math.imul(al4, bl1)) | 0;
- mid = (mid + Math.imul(al4, bh1)) | 0;
- mid = (mid + Math.imul(ah4, bl1)) | 0;
- hi = (hi + Math.imul(ah4, bh1)) | 0;
- lo = (lo + Math.imul(al3, bl2)) | 0;
- mid = (mid + Math.imul(al3, bh2)) | 0;
- mid = (mid + Math.imul(ah3, bl2)) | 0;
- hi = (hi + Math.imul(ah3, bh2)) | 0;
- lo = (lo + Math.imul(al2, bl3)) | 0;
- mid = (mid + Math.imul(al2, bh3)) | 0;
- mid = (mid + Math.imul(ah2, bl3)) | 0;
- hi = (hi + Math.imul(ah2, bh3)) | 0;
- lo = (lo + Math.imul(al1, bl4)) | 0;
- mid = (mid + Math.imul(al1, bh4)) | 0;
- mid = (mid + Math.imul(ah1, bl4)) | 0;
- hi = (hi + Math.imul(ah1, bh4)) | 0;
- lo = (lo + Math.imul(al0, bl5)) | 0;
- mid = (mid + Math.imul(al0, bh5)) | 0;
- mid = (mid + Math.imul(ah0, bl5)) | 0;
- hi = (hi + Math.imul(ah0, bh5)) | 0;
- var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;
- w5 &= 0x3ffffff;
- /* k = 6 */
- lo = Math.imul(al6, bl0);
- mid = Math.imul(al6, bh0);
- mid = (mid + Math.imul(ah6, bl0)) | 0;
- hi = Math.imul(ah6, bh0);
- lo = (lo + Math.imul(al5, bl1)) | 0;
- mid = (mid + Math.imul(al5, bh1)) | 0;
- mid = (mid + Math.imul(ah5, bl1)) | 0;
- hi = (hi + Math.imul(ah5, bh1)) | 0;
- lo = (lo + Math.imul(al4, bl2)) | 0;
- mid = (mid + Math.imul(al4, bh2)) | 0;
- mid = (mid + Math.imul(ah4, bl2)) | 0;
- hi = (hi + Math.imul(ah4, bh2)) | 0;
- lo = (lo + Math.imul(al3, bl3)) | 0;
- mid = (mid + Math.imul(al3, bh3)) | 0;
- mid = (mid + Math.imul(ah3, bl3)) | 0;
- hi = (hi + Math.imul(ah3, bh3)) | 0;
- lo = (lo + Math.imul(al2, bl4)) | 0;
- mid = (mid + Math.imul(al2, bh4)) | 0;
- mid = (mid + Math.imul(ah2, bl4)) | 0;
- hi = (hi + Math.imul(ah2, bh4)) | 0;
- lo = (lo + Math.imul(al1, bl5)) | 0;
- mid = (mid + Math.imul(al1, bh5)) | 0;
- mid = (mid + Math.imul(ah1, bl5)) | 0;
- hi = (hi + Math.imul(ah1, bh5)) | 0;
- lo = (lo + Math.imul(al0, bl6)) | 0;
- mid = (mid + Math.imul(al0, bh6)) | 0;
- mid = (mid + Math.imul(ah0, bl6)) | 0;
- hi = (hi + Math.imul(ah0, bh6)) | 0;
- var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;
- w6 &= 0x3ffffff;
- /* k = 7 */
- lo = Math.imul(al7, bl0);
- mid = Math.imul(al7, bh0);
- mid = (mid + Math.imul(ah7, bl0)) | 0;
- hi = Math.imul(ah7, bh0);
- lo = (lo + Math.imul(al6, bl1)) | 0;
- mid = (mid + Math.imul(al6, bh1)) | 0;
- mid = (mid + Math.imul(ah6, bl1)) | 0;
- hi = (hi + Math.imul(ah6, bh1)) | 0;
- lo = (lo + Math.imul(al5, bl2)) | 0;
- mid = (mid + Math.imul(al5, bh2)) | 0;
- mid = (mid + Math.imul(ah5, bl2)) | 0;
- hi = (hi + Math.imul(ah5, bh2)) | 0;
- lo = (lo + Math.imul(al4, bl3)) | 0;
- mid = (mid + Math.imul(al4, bh3)) | 0;
- mid = (mid + Math.imul(ah4, bl3)) | 0;
- hi = (hi + Math.imul(ah4, bh3)) | 0;
- lo = (lo + Math.imul(al3, bl4)) | 0;
- mid = (mid + Math.imul(al3, bh4)) | 0;
- mid = (mid + Math.imul(ah3, bl4)) | 0;
- hi = (hi + Math.imul(ah3, bh4)) | 0;
- lo = (lo + Math.imul(al2, bl5)) | 0;
- mid = (mid + Math.imul(al2, bh5)) | 0;
- mid = (mid + Math.imul(ah2, bl5)) | 0;
- hi = (hi + Math.imul(ah2, bh5)) | 0;
- lo = (lo + Math.imul(al1, bl6)) | 0;
- mid = (mid + Math.imul(al1, bh6)) | 0;
- mid = (mid + Math.imul(ah1, bl6)) | 0;
- hi = (hi + Math.imul(ah1, bh6)) | 0;
- lo = (lo + Math.imul(al0, bl7)) | 0;
- mid = (mid + Math.imul(al0, bh7)) | 0;
- mid = (mid + Math.imul(ah0, bl7)) | 0;
- hi = (hi + Math.imul(ah0, bh7)) | 0;
- var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;
- w7 &= 0x3ffffff;
- /* k = 8 */
- lo = Math.imul(al8, bl0);
- mid = Math.imul(al8, bh0);
- mid = (mid + Math.imul(ah8, bl0)) | 0;
- hi = Math.imul(ah8, bh0);
- lo = (lo + Math.imul(al7, bl1)) | 0;
- mid = (mid + Math.imul(al7, bh1)) | 0;
- mid = (mid + Math.imul(ah7, bl1)) | 0;
- hi = (hi + Math.imul(ah7, bh1)) | 0;
- lo = (lo + Math.imul(al6, bl2)) | 0;
- mid = (mid + Math.imul(al6, bh2)) | 0;
- mid = (mid + Math.imul(ah6, bl2)) | 0;
- hi = (hi + Math.imul(ah6, bh2)) | 0;
- lo = (lo + Math.imul(al5, bl3)) | 0;
- mid = (mid + Math.imul(al5, bh3)) | 0;
- mid = (mid + Math.imul(ah5, bl3)) | 0;
- hi = (hi + Math.imul(ah5, bh3)) | 0;
- lo = (lo + Math.imul(al4, bl4)) | 0;
- mid = (mid + Math.imul(al4, bh4)) | 0;
- mid = (mid + Math.imul(ah4, bl4)) | 0;
- hi = (hi + Math.imul(ah4, bh4)) | 0;
- lo = (lo + Math.imul(al3, bl5)) | 0;
- mid = (mid + Math.imul(al3, bh5)) | 0;
- mid = (mid + Math.imul(ah3, bl5)) | 0;
- hi = (hi + Math.imul(ah3, bh5)) | 0;
- lo = (lo + Math.imul(al2, bl6)) | 0;
- mid = (mid + Math.imul(al2, bh6)) | 0;
- mid = (mid + Math.imul(ah2, bl6)) | 0;
- hi = (hi + Math.imul(ah2, bh6)) | 0;
- lo = (lo + Math.imul(al1, bl7)) | 0;
- mid = (mid + Math.imul(al1, bh7)) | 0;
- mid = (mid + Math.imul(ah1, bl7)) | 0;
- hi = (hi + Math.imul(ah1, bh7)) | 0;
- lo = (lo + Math.imul(al0, bl8)) | 0;
- mid = (mid + Math.imul(al0, bh8)) | 0;
- mid = (mid + Math.imul(ah0, bl8)) | 0;
- hi = (hi + Math.imul(ah0, bh8)) | 0;
- var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;
- w8 &= 0x3ffffff;
- /* k = 9 */
- lo = Math.imul(al9, bl0);
- mid = Math.imul(al9, bh0);
- mid = (mid + Math.imul(ah9, bl0)) | 0;
- hi = Math.imul(ah9, bh0);
- lo = (lo + Math.imul(al8, bl1)) | 0;
- mid = (mid + Math.imul(al8, bh1)) | 0;
- mid = (mid + Math.imul(ah8, bl1)) | 0;
- hi = (hi + Math.imul(ah8, bh1)) | 0;
- lo = (lo + Math.imul(al7, bl2)) | 0;
- mid = (mid + Math.imul(al7, bh2)) | 0;
- mid = (mid + Math.imul(ah7, bl2)) | 0;
- hi = (hi + Math.imul(ah7, bh2)) | 0;
- lo = (lo + Math.imul(al6, bl3)) | 0;
- mid = (mid + Math.imul(al6, bh3)) | 0;
- mid = (mid + Math.imul(ah6, bl3)) | 0;
- hi = (hi + Math.imul(ah6, bh3)) | 0;
- lo = (lo + Math.imul(al5, bl4)) | 0;
- mid = (mid + Math.imul(al5, bh4)) | 0;
- mid = (mid + Math.imul(ah5, bl4)) | 0;
- hi = (hi + Math.imul(ah5, bh4)) | 0;
- lo = (lo + Math.imul(al4, bl5)) | 0;
- mid = (mid + Math.imul(al4, bh5)) | 0;
- mid = (mid + Math.imul(ah4, bl5)) | 0;
- hi = (hi + Math.imul(ah4, bh5)) | 0;
- lo = (lo + Math.imul(al3, bl6)) | 0;
- mid = (mid + Math.imul(al3, bh6)) | 0;
- mid = (mid + Math.imul(ah3, bl6)) | 0;
- hi = (hi + Math.imul(ah3, bh6)) | 0;
- lo = (lo + Math.imul(al2, bl7)) | 0;
- mid = (mid + Math.imul(al2, bh7)) | 0;
- mid = (mid + Math.imul(ah2, bl7)) | 0;
- hi = (hi + Math.imul(ah2, bh7)) | 0;
- lo = (lo + Math.imul(al1, bl8)) | 0;
- mid = (mid + Math.imul(al1, bh8)) | 0;
- mid = (mid + Math.imul(ah1, bl8)) | 0;
- hi = (hi + Math.imul(ah1, bh8)) | 0;
- lo = (lo + Math.imul(al0, bl9)) | 0;
- mid = (mid + Math.imul(al0, bh9)) | 0;
- mid = (mid + Math.imul(ah0, bl9)) | 0;
- hi = (hi + Math.imul(ah0, bh9)) | 0;
- var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;
- w9 &= 0x3ffffff;
- /* k = 10 */
- lo = Math.imul(al9, bl1);
- mid = Math.imul(al9, bh1);
- mid = (mid + Math.imul(ah9, bl1)) | 0;
- hi = Math.imul(ah9, bh1);
- lo = (lo + Math.imul(al8, bl2)) | 0;
- mid = (mid + Math.imul(al8, bh2)) | 0;
- mid = (mid + Math.imul(ah8, bl2)) | 0;
- hi = (hi + Math.imul(ah8, bh2)) | 0;
- lo = (lo + Math.imul(al7, bl3)) | 0;
- mid = (mid + Math.imul(al7, bh3)) | 0;
- mid = (mid + Math.imul(ah7, bl3)) | 0;
- hi = (hi + Math.imul(ah7, bh3)) | 0;
- lo = (lo + Math.imul(al6, bl4)) | 0;
- mid = (mid + Math.imul(al6, bh4)) | 0;
- mid = (mid + Math.imul(ah6, bl4)) | 0;
- hi = (hi + Math.imul(ah6, bh4)) | 0;
- lo = (lo + Math.imul(al5, bl5)) | 0;
- mid = (mid + Math.imul(al5, bh5)) | 0;
- mid = (mid + Math.imul(ah5, bl5)) | 0;
- hi = (hi + Math.imul(ah5, bh5)) | 0;
- lo = (lo + Math.imul(al4, bl6)) | 0;
- mid = (mid + Math.imul(al4, bh6)) | 0;
- mid = (mid + Math.imul(ah4, bl6)) | 0;
- hi = (hi + Math.imul(ah4, bh6)) | 0;
- lo = (lo + Math.imul(al3, bl7)) | 0;
- mid = (mid + Math.imul(al3, bh7)) | 0;
- mid = (mid + Math.imul(ah3, bl7)) | 0;
- hi = (hi + Math.imul(ah3, bh7)) | 0;
- lo = (lo + Math.imul(al2, bl8)) | 0;
- mid = (mid + Math.imul(al2, bh8)) | 0;
- mid = (mid + Math.imul(ah2, bl8)) | 0;
- hi = (hi + Math.imul(ah2, bh8)) | 0;
- lo = (lo + Math.imul(al1, bl9)) | 0;
- mid = (mid + Math.imul(al1, bh9)) | 0;
- mid = (mid + Math.imul(ah1, bl9)) | 0;
- hi = (hi + Math.imul(ah1, bh9)) | 0;
- var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;
- w10 &= 0x3ffffff;
- /* k = 11 */
- lo = Math.imul(al9, bl2);
- mid = Math.imul(al9, bh2);
- mid = (mid + Math.imul(ah9, bl2)) | 0;
- hi = Math.imul(ah9, bh2);
- lo = (lo + Math.imul(al8, bl3)) | 0;
- mid = (mid + Math.imul(al8, bh3)) | 0;
- mid = (mid + Math.imul(ah8, bl3)) | 0;
- hi = (hi + Math.imul(ah8, bh3)) | 0;
- lo = (lo + Math.imul(al7, bl4)) | 0;
- mid = (mid + Math.imul(al7, bh4)) | 0;
- mid = (mid + Math.imul(ah7, bl4)) | 0;
- hi = (hi + Math.imul(ah7, bh4)) | 0;
- lo = (lo + Math.imul(al6, bl5)) | 0;
- mid = (mid + Math.imul(al6, bh5)) | 0;
- mid = (mid + Math.imul(ah6, bl5)) | 0;
- hi = (hi + Math.imul(ah6, bh5)) | 0;
- lo = (lo + Math.imul(al5, bl6)) | 0;
- mid = (mid + Math.imul(al5, bh6)) | 0;
- mid = (mid + Math.imul(ah5, bl6)) | 0;
- hi = (hi + Math.imul(ah5, bh6)) | 0;
- lo = (lo + Math.imul(al4, bl7)) | 0;
- mid = (mid + Math.imul(al4, bh7)) | 0;
- mid = (mid + Math.imul(ah4, bl7)) | 0;
- hi = (hi + Math.imul(ah4, bh7)) | 0;
- lo = (lo + Math.imul(al3, bl8)) | 0;
- mid = (mid + Math.imul(al3, bh8)) | 0;
- mid = (mid + Math.imul(ah3, bl8)) | 0;
- hi = (hi + Math.imul(ah3, bh8)) | 0;
- lo = (lo + Math.imul(al2, bl9)) | 0;
- mid = (mid + Math.imul(al2, bh9)) | 0;
- mid = (mid + Math.imul(ah2, bl9)) | 0;
- hi = (hi + Math.imul(ah2, bh9)) | 0;
- var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;
- w11 &= 0x3ffffff;
- /* k = 12 */
- lo = Math.imul(al9, bl3);
- mid = Math.imul(al9, bh3);
- mid = (mid + Math.imul(ah9, bl3)) | 0;
- hi = Math.imul(ah9, bh3);
- lo = (lo + Math.imul(al8, bl4)) | 0;
- mid = (mid + Math.imul(al8, bh4)) | 0;
- mid = (mid + Math.imul(ah8, bl4)) | 0;
- hi = (hi + Math.imul(ah8, bh4)) | 0;
- lo = (lo + Math.imul(al7, bl5)) | 0;
- mid = (mid + Math.imul(al7, bh5)) | 0;
- mid = (mid + Math.imul(ah7, bl5)) | 0;
- hi = (hi + Math.imul(ah7, bh5)) | 0;
- lo = (lo + Math.imul(al6, bl6)) | 0;
- mid = (mid + Math.imul(al6, bh6)) | 0;
- mid = (mid + Math.imul(ah6, bl6)) | 0;
- hi = (hi + Math.imul(ah6, bh6)) | 0;
- lo = (lo + Math.imul(al5, bl7)) | 0;
- mid = (mid + Math.imul(al5, bh7)) | 0;
- mid = (mid + Math.imul(ah5, bl7)) | 0;
- hi = (hi + Math.imul(ah5, bh7)) | 0;
- lo = (lo + Math.imul(al4, bl8)) | 0;
- mid = (mid + Math.imul(al4, bh8)) | 0;
- mid = (mid + Math.imul(ah4, bl8)) | 0;
- hi = (hi + Math.imul(ah4, bh8)) | 0;
- lo = (lo + Math.imul(al3, bl9)) | 0;
- mid = (mid + Math.imul(al3, bh9)) | 0;
- mid = (mid + Math.imul(ah3, bl9)) | 0;
- hi = (hi + Math.imul(ah3, bh9)) | 0;
- var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;
- w12 &= 0x3ffffff;
- /* k = 13 */
- lo = Math.imul(al9, bl4);
- mid = Math.imul(al9, bh4);
- mid = (mid + Math.imul(ah9, bl4)) | 0;
- hi = Math.imul(ah9, bh4);
- lo = (lo + Math.imul(al8, bl5)) | 0;
- mid = (mid + Math.imul(al8, bh5)) | 0;
- mid = (mid + Math.imul(ah8, bl5)) | 0;
- hi = (hi + Math.imul(ah8, bh5)) | 0;
- lo = (lo + Math.imul(al7, bl6)) | 0;
- mid = (mid + Math.imul(al7, bh6)) | 0;
- mid = (mid + Math.imul(ah7, bl6)) | 0;
- hi = (hi + Math.imul(ah7, bh6)) | 0;
- lo = (lo + Math.imul(al6, bl7)) | 0;
- mid = (mid + Math.imul(al6, bh7)) | 0;
- mid = (mid + Math.imul(ah6, bl7)) | 0;
- hi = (hi + Math.imul(ah6, bh7)) | 0;
- lo = (lo + Math.imul(al5, bl8)) | 0;
- mid = (mid + Math.imul(al5, bh8)) | 0;
- mid = (mid + Math.imul(ah5, bl8)) | 0;
- hi = (hi + Math.imul(ah5, bh8)) | 0;
- lo = (lo + Math.imul(al4, bl9)) | 0;
- mid = (mid + Math.imul(al4, bh9)) | 0;
- mid = (mid + Math.imul(ah4, bl9)) | 0;
- hi = (hi + Math.imul(ah4, bh9)) | 0;
- var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;
- w13 &= 0x3ffffff;
- /* k = 14 */
- lo = Math.imul(al9, bl5);
- mid = Math.imul(al9, bh5);
- mid = (mid + Math.imul(ah9, bl5)) | 0;
- hi = Math.imul(ah9, bh5);
- lo = (lo + Math.imul(al8, bl6)) | 0;
- mid = (mid + Math.imul(al8, bh6)) | 0;
- mid = (mid + Math.imul(ah8, bl6)) | 0;
- hi = (hi + Math.imul(ah8, bh6)) | 0;
- lo = (lo + Math.imul(al7, bl7)) | 0;
- mid = (mid + Math.imul(al7, bh7)) | 0;
- mid = (mid + Math.imul(ah7, bl7)) | 0;
- hi = (hi + Math.imul(ah7, bh7)) | 0;
- lo = (lo + Math.imul(al6, bl8)) | 0;
- mid = (mid + Math.imul(al6, bh8)) | 0;
- mid = (mid + Math.imul(ah6, bl8)) | 0;
- hi = (hi + Math.imul(ah6, bh8)) | 0;
- lo = (lo + Math.imul(al5, bl9)) | 0;
- mid = (mid + Math.imul(al5, bh9)) | 0;
- mid = (mid + Math.imul(ah5, bl9)) | 0;
- hi = (hi + Math.imul(ah5, bh9)) | 0;
- var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;
- w14 &= 0x3ffffff;
- /* k = 15 */
- lo = Math.imul(al9, bl6);
- mid = Math.imul(al9, bh6);
- mid = (mid + Math.imul(ah9, bl6)) | 0;
- hi = Math.imul(ah9, bh6);
- lo = (lo + Math.imul(al8, bl7)) | 0;
- mid = (mid + Math.imul(al8, bh7)) | 0;
- mid = (mid + Math.imul(ah8, bl7)) | 0;
- hi = (hi + Math.imul(ah8, bh7)) | 0;
- lo = (lo + Math.imul(al7, bl8)) | 0;
- mid = (mid + Math.imul(al7, bh8)) | 0;
- mid = (mid + Math.imul(ah7, bl8)) | 0;
- hi = (hi + Math.imul(ah7, bh8)) | 0;
- lo = (lo + Math.imul(al6, bl9)) | 0;
- mid = (mid + Math.imul(al6, bh9)) | 0;
- mid = (mid + Math.imul(ah6, bl9)) | 0;
- hi = (hi + Math.imul(ah6, bh9)) | 0;
- var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;
- w15 &= 0x3ffffff;
- /* k = 16 */
- lo = Math.imul(al9, bl7);
- mid = Math.imul(al9, bh7);
- mid = (mid + Math.imul(ah9, bl7)) | 0;
- hi = Math.imul(ah9, bh7);
- lo = (lo + Math.imul(al8, bl8)) | 0;
- mid = (mid + Math.imul(al8, bh8)) | 0;
- mid = (mid + Math.imul(ah8, bl8)) | 0;
- hi = (hi + Math.imul(ah8, bh8)) | 0;
- lo = (lo + Math.imul(al7, bl9)) | 0;
- mid = (mid + Math.imul(al7, bh9)) | 0;
- mid = (mid + Math.imul(ah7, bl9)) | 0;
- hi = (hi + Math.imul(ah7, bh9)) | 0;
- var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;
- w16 &= 0x3ffffff;
- /* k = 17 */
- lo = Math.imul(al9, bl8);
- mid = Math.imul(al9, bh8);
- mid = (mid + Math.imul(ah9, bl8)) | 0;
- hi = Math.imul(ah9, bh8);
- lo = (lo + Math.imul(al8, bl9)) | 0;
- mid = (mid + Math.imul(al8, bh9)) | 0;
- mid = (mid + Math.imul(ah8, bl9)) | 0;
- hi = (hi + Math.imul(ah8, bh9)) | 0;
- var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;
- w17 &= 0x3ffffff;
- /* k = 18 */
- lo = Math.imul(al9, bl9);
- mid = Math.imul(al9, bh9);
- mid = (mid + Math.imul(ah9, bl9)) | 0;
- hi = Math.imul(ah9, bh9);
- var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;
- w18 &= 0x3ffffff;
- o[0] = w0;
- o[1] = w1;
- o[2] = w2;
- o[3] = w3;
- o[4] = w4;
- o[5] = w5;
- o[6] = w6;
- o[7] = w7;
- o[8] = w8;
- o[9] = w9;
- o[10] = w10;
- o[11] = w11;
- o[12] = w12;
- o[13] = w13;
- o[14] = w14;
- o[15] = w15;
- o[16] = w16;
- o[17] = w17;
- o[18] = w18;
- if (c !== 0) {
- o[19] = c;
- out.length++;
- }
- return out;
- };
- // Polyfill comb
- if (!Math.imul) {
- comb10MulTo = smallMulTo;
- }
- function bigMulTo (self, num, out) {
- out.negative = num.negative ^ self.negative;
- out.length = self.length + num.length;
- var carry = 0;
- var hncarry = 0;
- for (var k = 0; k < out.length - 1; k++) {
- // Sum all words with the same `i + j = k` and accumulate `ncarry`,
- // note that ncarry could be >= 0x3ffffff
- var ncarry = hncarry;
- hncarry = 0;
- var rword = carry & 0x3ffffff;
- var maxJ = Math.min(k, num.length - 1);
- for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
- var i = k - j;
- var a = self.words[i] | 0;
- var b = num.words[j] | 0;
- var r = a * b;
- var lo = r & 0x3ffffff;
- ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;
- lo = (lo + rword) | 0;
- rword = lo & 0x3ffffff;
- ncarry = (ncarry + (lo >>> 26)) | 0;
- hncarry += ncarry >>> 26;
- ncarry &= 0x3ffffff;
- }
- out.words[k] = rword;
- carry = ncarry;
- ncarry = hncarry;
- }
- if (carry !== 0) {
- out.words[k] = carry;
- } else {
- out.length--;
- }
- return out.strip();
- }
- function jumboMulTo (self, num, out) {
- var fftm = new FFTM();
- return fftm.mulp(self, num, out);
- }
- BN.prototype.mulTo = function mulTo (num, out) {
- var res;
- var len = this.length + num.length;
- if (this.length === 10 && num.length === 10) {
- res = comb10MulTo(this, num, out);
- } else if (len < 63) {
- res = smallMulTo(this, num, out);
- } else if (len < 1024) {
- res = bigMulTo(this, num, out);
- } else {
- res = jumboMulTo(this, num, out);
- }
- return res;
- };
- // Cooley-Tukey algorithm for FFT
- // slightly revisited to rely on looping instead of recursion
- function FFTM (x, y) {
- this.x = x;
- this.y = y;
- }
- FFTM.prototype.makeRBT = function makeRBT (N) {
- var t = new Array(N);
- var l = BN.prototype._countBits(N) - 1;
- for (var i = 0; i < N; i++) {
- t[i] = this.revBin(i, l, N);
- }
- return t;
- };
- // Returns binary-reversed representation of `x`
- FFTM.prototype.revBin = function revBin (x, l, N) {
- if (x === 0 || x === N - 1) return x;
- var rb = 0;
- for (var i = 0; i < l; i++) {
- rb |= (x & 1) << (l - i - 1);
- x >>= 1;
- }
- return rb;
- };
- // Performs "tweedling" phase, therefore 'emulating'
- // behaviour of the recursive algorithm
- FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
- for (var i = 0; i < N; i++) {
- rtws[i] = rws[rbt[i]];
- itws[i] = iws[rbt[i]];
- }
- };
- FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
- this.permute(rbt, rws, iws, rtws, itws, N);
- for (var s = 1; s < N; s <<= 1) {
- var l = s << 1;
- var rtwdf = Math.cos(2 * Math.PI / l);
- var itwdf = Math.sin(2 * Math.PI / l);
- for (var p = 0; p < N; p += l) {
- var rtwdf_ = rtwdf;
- var itwdf_ = itwdf;
- for (var j = 0; j < s; j++) {
- var re = rtws[p + j];
- var ie = itws[p + j];
- var ro = rtws[p + j + s];
- var io = itws[p + j + s];
- var rx = rtwdf_ * ro - itwdf_ * io;
- io = rtwdf_ * io + itwdf_ * ro;
- ro = rx;
- rtws[p + j] = re + ro;
- itws[p + j] = ie + io;
- rtws[p + j + s] = re - ro;
- itws[p + j + s] = ie - io;
- /* jshint maxdepth : false */
- if (j !== l) {
- rx = rtwdf * rtwdf_ - itwdf * itwdf_;
- itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
- rtwdf_ = rx;
- }
- }
- }
- }
- };
- FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
- var N = Math.max(m, n) | 1;
- var odd = N & 1;
- var i = 0;
- for (N = N / 2 | 0; N; N = N >>> 1) {
- i++;
- }
- return 1 << i + 1 + odd;
- };
- FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
- if (N <= 1) return;
- for (var i = 0; i < N / 2; i++) {
- var t = rws[i];
- rws[i] = rws[N - i - 1];
- rws[N - i - 1] = t;
- t = iws[i];
- iws[i] = -iws[N - i - 1];
- iws[N - i - 1] = -t;
- }
- };
- FFTM.prototype.normalize13b = function normalize13b (ws, N) {
- var carry = 0;
- for (var i = 0; i < N / 2; i++) {
- var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +
- Math.round(ws[2 * i] / N) +
- carry;
- ws[i] = w & 0x3ffffff;
- if (w < 0x4000000) {
- carry = 0;
- } else {
- carry = w / 0x4000000 | 0;
- }
- }
- return ws;
- };
- FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
- var carry = 0;
- for (var i = 0; i < len; i++) {
- carry = carry + (ws[i] | 0);
- rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;
- rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;
- }
- // Pad with zeroes
- for (i = 2 * len; i < N; ++i) {
- rws[i] = 0;
- }
- assert(carry === 0);
- assert((carry & ~0x1fff) === 0);
- };
- FFTM.prototype.stub = function stub (N) {
- var ph = new Array(N);
- for (var i = 0; i < N; i++) {
- ph[i] = 0;
- }
- return ph;
- };
- FFTM.prototype.mulp = function mulp (x, y, out) {
- var N = 2 * this.guessLen13b(x.length, y.length);
- var rbt = this.makeRBT(N);
- var _ = this.stub(N);
- var rws = new Array(N);
- var rwst = new Array(N);
- var iwst = new Array(N);
- var nrws = new Array(N);
- var nrwst = new Array(N);
- var niwst = new Array(N);
- var rmws = out.words;
- rmws.length = N;
- this.convert13b(x.words, x.length, rws, N);
- this.convert13b(y.words, y.length, nrws, N);
- this.transform(rws, _, rwst, iwst, N, rbt);
- this.transform(nrws, _, nrwst, niwst, N, rbt);
- for (var i = 0; i < N; i++) {
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
- iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
- rwst[i] = rx;
- }
- this.conjugate(rwst, iwst, N);
- this.transform(rwst, iwst, rmws, _, N, rbt);
- this.conjugate(rmws, _, N);
- this.normalize13b(rmws, N);
- out.negative = x.negative ^ y.negative;
- out.length = x.length + y.length;
- return out.strip();
- };
- // Multiply `this` by `num`
- BN.prototype.mul = function mul (num) {
- var out = new BN(null);
- out.words = new Array(this.length + num.length);
- return this.mulTo(num, out);
- };
- // Multiply employing FFT
- BN.prototype.mulf = function mulf (num) {
- var out = new BN(null);
- out.words = new Array(this.length + num.length);
- return jumboMulTo(this, num, out);
- };
- // In-place Multiplication
- BN.prototype.imul = function imul (num) {
- return this.clone().mulTo(num, this);
- };
- BN.prototype.imuln = function imuln (num) {
- assert(typeof num === 'number');
- assert(num < 0x4000000);
- // Carry
- var carry = 0;
- for (var i = 0; i < this.length; i++) {
- var w = (this.words[i] | 0) * num;
- var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);
- carry >>= 26;
- carry += (w / 0x4000000) | 0;
- // NOTE: lo is 27bit maximum
- carry += lo >>> 26;
- this.words[i] = lo & 0x3ffffff;
- }
- if (carry !== 0) {
- this.words[i] = carry;
- this.length++;
- }
- return this;
- };
- BN.prototype.muln = function muln (num) {
- return this.clone().imuln(num);
- };
- // `this` * `this`
- BN.prototype.sqr = function sqr () {
- return this.mul(this);
- };
- // `this` * `this` in-place
- BN.prototype.isqr = function isqr () {
- return this.imul(this.clone());
- };
- // Math.pow(`this`, `num`)
- BN.prototype.pow = function pow (num) {
- var w = toBitArray(num);
- if (w.length === 0) return new BN(1);
- // Skip leading zeroes
- var res = this;
- for (var i = 0; i < w.length; i++, res = res.sqr()) {
- if (w[i] !== 0) break;
- }
- if (++i < w.length) {
- for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
- if (w[i] === 0) continue;
- res = res.mul(q);
- }
- }
- return res;
- };
- // Shift-left in-place
- BN.prototype.iushln = function iushln (bits) {
- assert(typeof bits === 'number' && bits >= 0);
- var r = bits % 26;
- var s = (bits - r) / 26;
- var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);
- var i;
- if (r !== 0) {
- var carry = 0;
- for (i = 0; i < this.length; i++) {
- var newCarry = this.words[i] & carryMask;
- var c = ((this.words[i] | 0) - newCarry) << r;
- this.words[i] = c | carry;
- carry = newCarry >>> (26 - r);
- }
- if (carry) {
- this.words[i] = carry;
- this.length++;
- }
- }
- if (s !== 0) {
- for (i = this.length - 1; i >= 0; i--) {
- this.words[i + s] = this.words[i];
- }
- for (i = 0; i < s; i++) {
- this.words[i] = 0;
- }
- this.length += s;
- }
- return this.strip();
- };
- BN.prototype.ishln = function ishln (bits) {
- // TODO(indutny): implement me
- assert(this.negative === 0);
- return this.iushln(bits);
- };
- // Shift-right in-place
- // NOTE: `hint` is a lowest bit before trailing zeroes
- // NOTE: if `extended` is present - it will be filled with destroyed bits
- BN.prototype.iushrn = function iushrn (bits, hint, extended) {
- assert(typeof bits === 'number' && bits >= 0);
- var h;
- if (hint) {
- h = (hint - (hint % 26)) / 26;
- } else {
- h = 0;
- }
- var r = bits % 26;
- var s = Math.min((bits - r) / 26, this.length);
- var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);
- var maskedWords = extended;
- h -= s;
- h = Math.max(0, h);
- // Extended mode, copy masked part
- if (maskedWords) {
- for (var i = 0; i < s; i++) {
- maskedWords.words[i] = this.words[i];
- }
- maskedWords.length = s;
- }
- if (s === 0) {
- // No-op, we should not move anything at all
- } else if (this.length > s) {
- this.length -= s;
- for (i = 0; i < this.length; i++) {
- this.words[i] = this.words[i + s];
- }
- } else {
- this.words[0] = 0;
- this.length = 1;
- }
- var carry = 0;
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
- var word = this.words[i] | 0;
- this.words[i] = (carry << (26 - r)) | (word >>> r);
- carry = word & mask;
- }
- // Push carried bits as a mask
- if (maskedWords && carry !== 0) {
- maskedWords.words[maskedWords.length++] = carry;
- }
- if (this.length === 0) {
- this.words[0] = 0;
- this.length = 1;
- }
- return this.strip();
- };
- BN.prototype.ishrn = function ishrn (bits, hint, extended) {
- // TODO(indutny): implement me
- assert(this.negative === 0);
- return this.iushrn(bits, hint, extended);
- };
- // Shift-left
- BN.prototype.shln = function shln (bits) {
- return this.clone().ishln(bits);
- };
- BN.prototype.ushln = function ushln (bits) {
- return this.clone().iushln(bits);
- };
- // Shift-right
- BN.prototype.shrn = function shrn (bits) {
- return this.clone().ishrn(bits);
- };
- BN.prototype.ushrn = function ushrn (bits) {
- return this.clone().iushrn(bits);
- };
- // Test if n bit is set
- BN.prototype.testn = function testn (bit) {
- assert(typeof bit === 'number' && bit >= 0);
- var r = bit % 26;
- var s = (bit - r) / 26;
- var q = 1 << r;
- // Fast case: bit is much higher than all existing words
- if (this.length <= s) return false;
- // Check bit and return
- var w = this.words[s];
- return !!(w & q);
- };
- // Return only lowers bits of number (in-place)
- BN.prototype.imaskn = function imaskn (bits) {
- assert(typeof bits === 'number' && bits >= 0);
- var r = bits % 26;
- var s = (bits - r) / 26;
- assert(this.negative === 0, 'imaskn works only with positive numbers');
- if (this.length <= s) {
- return this;
- }
- if (r !== 0) {
- s++;
- }
- this.length = Math.min(s, this.length);
- if (r !== 0) {
- var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);
- this.words[this.length - 1] &= mask;
- }
- return this.strip();
- };
- // Return only lowers bits of number
- BN.prototype.maskn = function maskn (bits) {
- return this.clone().imaskn(bits);
- };
- // Add plain number `num` to `this`
- BN.prototype.iaddn = function iaddn (num) {
- assert(typeof num === 'number');
- assert(num < 0x4000000);
- if (num < 0) return this.isubn(-num);
- // Possible sign change
- if (this.negative !== 0) {
- if (this.length === 1 && (this.words[0] | 0) < num) {
- this.words[0] = num - (this.words[0] | 0);
- this.negative = 0;
- return this;
- }
- this.negative = 0;
- this.isubn(num);
- this.negative = 1;
- return this;
- }
- // Add without checks
- return this._iaddn(num);
- };
- BN.prototype._iaddn = function _iaddn (num) {
- this.words[0] += num;
- // Carry
- for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {
- this.words[i] -= 0x4000000;
- if (i === this.length - 1) {
- this.words[i + 1] = 1;
- } else {
- this.words[i + 1]++;
- }
- }
- this.length = Math.max(this.length, i + 1);
- return this;
- };
- // Subtract plain number `num` from `this`
- BN.prototype.isubn = function isubn (num) {
- assert(typeof num === 'number');
- assert(num < 0x4000000);
- if (num < 0) return this.iaddn(-num);
- if (this.negative !== 0) {
- this.negative = 0;
- this.iaddn(num);
- this.negative = 1;
- return this;
- }
- this.words[0] -= num;
- if (this.length === 1 && this.words[0] < 0) {
- this.words[0] = -this.words[0];
- this.negative = 1;
- } else {
- // Carry
- for (var i = 0; i < this.length && this.words[i] < 0; i++) {
- this.words[i] += 0x4000000;
- this.words[i + 1] -= 1;
- }
- }
- return this.strip();
- };
- BN.prototype.addn = function addn (num) {
- return this.clone().iaddn(num);
- };
- BN.prototype.subn = function subn (num) {
- return this.clone().isubn(num);
- };
- BN.prototype.iabs = function iabs () {
- this.negative = 0;
- return this;
- };
- BN.prototype.abs = function abs () {
- return this.clone().iabs();
- };
- BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
- var len = num.length + shift;
- var i;
- this._expand(len);
- var w;
- var carry = 0;
- for (i = 0; i < num.length; i++) {
- w = (this.words[i + shift] | 0) + carry;
- var right = (num.words[i] | 0) * mul;
- w -= right & 0x3ffffff;
- carry = (w >> 26) - ((right / 0x4000000) | 0);
- this.words[i + shift] = w & 0x3ffffff;
- }
- for (; i < this.length - shift; i++) {
- w = (this.words[i + shift] | 0) + carry;
- carry = w >> 26;
- this.words[i + shift] = w & 0x3ffffff;
- }
- if (carry === 0) return this.strip();
- // Subtraction overflow
- assert(carry === -1);
- carry = 0;
- for (i = 0; i < this.length; i++) {
- w = -(this.words[i] | 0) + carry;
- carry = w >> 26;
- this.words[i] = w & 0x3ffffff;
- }
- this.negative = 1;
- return this.strip();
- };
- BN.prototype._wordDiv = function _wordDiv (num, mode) {
- var shift = this.length - num.length;
- var a = this.clone();
- var b = num;
- // Normalize
- var bhi = b.words[b.length - 1] | 0;
- var bhiBits = this._countBits(bhi);
- shift = 26 - bhiBits;
- if (shift !== 0) {
- b = b.ushln(shift);
- a.iushln(shift);
- bhi = b.words[b.length - 1] | 0;
- }
- // Initialize quotient
- var m = a.length - b.length;
- var q;
- if (mode !== 'mod') {
- q = new BN(null);
- q.length = m + 1;
- q.words = new Array(q.length);
- for (var i = 0; i < q.length; i++) {
- q.words[i] = 0;
- }
- }
- var diff = a.clone()._ishlnsubmul(b, 1, m);
- if (diff.negative === 0) {
- a = diff;
- if (q) {
- q.words[m] = 1;
- }
- }
- for (var j = m - 1; j >= 0; j--) {
- var qj = (a.words[b.length + j] | 0) * 0x4000000 +
- (a.words[b.length + j - 1] | 0);
- // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max
- // (0x7ffffff)
- qj = Math.min((qj / bhi) | 0, 0x3ffffff);
- a._ishlnsubmul(b, qj, j);
- while (a.negative !== 0) {
- qj--;
- a.negative = 0;
- a._ishlnsubmul(b, 1, j);
- if (!a.isZero()) {
- a.negative ^= 1;
- }
- }
- if (q) {
- q.words[j] = qj;
- }
- }
- if (q) {
- q.strip();
- }
- a.strip();
- // Denormalize
- if (mode !== 'div' && shift !== 0) {
- a.iushrn(shift);
- }
- return {
- div: q || null,
- mod: a
- };
- };
- // NOTE: 1) `mode` can be set to `mod` to request mod only,
- // to `div` to request div only, or be absent to
- // request both div & mod
- // 2) `positive` is true if unsigned mod is requested
- BN.prototype.divmod = function divmod (num, mode, positive) {
- assert(!num.isZero());
- if (this.isZero()) {
- return {
- div: new BN(0),
- mod: new BN(0)
- };
- }
- var div, mod, res;
- if (this.negative !== 0 && num.negative === 0) {
- res = this.neg().divmod(num, mode);
- if (mode !== 'mod') {
- div = res.div.neg();
- }
- if (mode !== 'div') {
- mod = res.mod.neg();
- if (positive && mod.negative !== 0) {
- mod.iadd(num);
- }
- }
- return {
- div: div,
- mod: mod
- };
- }
- if (this.negative === 0 && num.negative !== 0) {
- res = this.divmod(num.neg(), mode);
- if (mode !== 'mod') {
- div = res.div.neg();
- }
- return {
- div: div,
- mod: res.mod
- };
- }
- if ((this.negative & num.negative) !== 0) {
- res = this.neg().divmod(num.neg(), mode);
- if (mode !== 'div') {
- mod = res.mod.neg();
- if (positive && mod.negative !== 0) {
- mod.isub(num);
- }
- }
- return {
- div: res.div,
- mod: mod
- };
- }
- // Both numbers are positive at this point
- // Strip both numbers to approximate shift value
- if (num.length > this.length || this.cmp(num) < 0) {
- return {
- div: new BN(0),
- mod: this
- };
- }
- // Very short reduction
- if (num.length === 1) {
- if (mode === 'div') {
- return {
- div: this.divn(num.words[0]),
- mod: null
- };
- }
- if (mode === 'mod') {
- return {
- div: null,
- mod: new BN(this.modn(num.words[0]))
- };
- }
- return {
- div: this.divn(num.words[0]),
- mod: new BN(this.modn(num.words[0]))
- };
- }
- return this._wordDiv(num, mode);
- };
- // Find `this` / `num`
- BN.prototype.div = function div (num) {
- return this.divmod(num, 'div', false).div;
- };
- // Find `this` % `num`
- BN.prototype.mod = function mod (num) {
- return this.divmod(num, 'mod', false).mod;
- };
- BN.prototype.umod = function umod (num) {
- return this.divmod(num, 'mod', true).mod;
- };
- // Find Round(`this` / `num`)
- BN.prototype.divRound = function divRound (num) {
- var dm = this.divmod(num);
- // Fast case - exact division
- if (dm.mod.isZero()) return dm.div;
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
- var half = num.ushrn(1);
- var r2 = num.andln(1);
- var cmp = mod.cmp(half);
- // Round down
- if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;
- // Round up
- return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
- };
- BN.prototype.modn = function modn (num) {
- assert(num <= 0x3ffffff);
- var p = (1 << 26) % num;
- var acc = 0;
- for (var i = this.length - 1; i >= 0; i--) {
- acc = (p * acc + (this.words[i] | 0)) % num;
- }
- return acc;
- };
- // In-place division by number
- BN.prototype.idivn = function idivn (num) {
- assert(num <= 0x3ffffff);
- var carry = 0;
- for (var i = this.length - 1; i >= 0; i--) {
- var w = (this.words[i] | 0) + carry * 0x4000000;
- this.words[i] = (w / num) | 0;
- carry = w % num;
- }
- return this.strip();
- };
- BN.prototype.divn = function divn (num) {
- return this.clone().idivn(num);
- };
- BN.prototype.egcd = function egcd (p) {
- assert(p.negative === 0);
- assert(!p.isZero());
- var x = this;
- var y = p.clone();
- if (x.negative !== 0) {
- x = x.umod(p);
- } else {
- x = x.clone();
- }
- // A * x + B * y = x
- var A = new BN(1);
- var B = new BN(0);
- // C * x + D * y = y
- var C = new BN(0);
- var D = new BN(1);
- var g = 0;
- while (x.isEven() && y.isEven()) {
- x.iushrn(1);
- y.iushrn(1);
- ++g;
- }
- var yp = y.clone();
- var xp = x.clone();
- while (!x.isZero()) {
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) {
- x.iushrn(i);
- while (i-- > 0) {
- if (A.isOdd() || B.isOdd()) {
- A.iadd(yp);
- B.isub(xp);
- }
- A.iushrn(1);
- B.iushrn(1);
- }
- }
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) {
- y.iushrn(j);
- while (j-- > 0) {
- if (C.isOdd() || D.isOdd()) {
- C.iadd(yp);
- D.isub(xp);
- }
- C.iushrn(1);
- D.iushrn(1);
- }
- }
- if (x.cmp(y) >= 0) {
- x.isub(y);
- A.isub(C);
- B.isub(D);
- } else {
- y.isub(x);
- C.isub(A);
- D.isub(B);
- }
- }
- return {
- a: C,
- b: D,
- gcd: y.iushln(g)
- };
- };
- // This is reduced incarnation of the binary EEA
- // above, designated to invert members of the
- // _prime_ fields F(p) at a maximal speed
- BN.prototype._invmp = function _invmp (p) {
- assert(p.negative === 0);
- assert(!p.isZero());
- var a = this;
- var b = p.clone();
- if (a.negative !== 0) {
- a = a.umod(p);
- } else {
- a = a.clone();
- }
- var x1 = new BN(1);
- var x2 = new BN(0);
- var delta = b.clone();
- while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) {
- a.iushrn(i);
- while (i-- > 0) {
- if (x1.isOdd()) {
- x1.iadd(delta);
- }
- x1.iushrn(1);
- }
- }
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) {
- b.iushrn(j);
- while (j-- > 0) {
- if (x2.isOdd()) {
- x2.iadd(delta);
- }
- x2.iushrn(1);
- }
- }
- if (a.cmp(b) >= 0) {
- a.isub(b);
- x1.isub(x2);
- } else {
- b.isub(a);
- x2.isub(x1);
- }
- }
- var res;
- if (a.cmpn(1) === 0) {
- res = x1;
- } else {
- res = x2;
- }
- if (res.cmpn(0) < 0) {
- res.iadd(p);
- }
- return res;
- };
- BN.prototype.gcd = function gcd (num) {
- if (this.isZero()) return num.abs();
- if (num.isZero()) return this.abs();
- var a = this.clone();
- var b = num.clone();
- a.negative = 0;
- b.negative = 0;
- // Remove common factor of two
- for (var shift = 0; a.isEven() && b.isEven(); shift++) {
- a.iushrn(1);
- b.iushrn(1);
- }
- do {
- while (a.isEven()) {
- a.iushrn(1);
- }
- while (b.isEven()) {
- b.iushrn(1);
- }
- var r = a.cmp(b);
- if (r < 0) {
- // Swap `a` and `b` to make `a` always bigger than `b`
- var t = a;
- a = b;
- b = t;
- } else if (r === 0 || b.cmpn(1) === 0) {
- break;
- }
- a.isub(b);
- } while (true);
- return b.iushln(shift);
- };
- // Invert number in the field F(num)
- BN.prototype.invm = function invm (num) {
- return this.egcd(num).a.umod(num);
- };
- BN.prototype.isEven = function isEven () {
- return (this.words[0] & 1) === 0;
- };
- BN.prototype.isOdd = function isOdd () {
- return (this.words[0] & 1) === 1;
- };
- // And first word and num
- BN.prototype.andln = function andln (num) {
- return this.words[0] & num;
- };
- // Increment at the bit position in-line
- BN.prototype.bincn = function bincn (bit) {
- assert(typeof bit === 'number');
- var r = bit % 26;
- var s = (bit - r) / 26;
- var q = 1 << r;
- // Fast case: bit is much higher than all existing words
- if (this.length <= s) {
- this._expand(s + 1);
- this.words[s] |= q;
- return this;
- }
- // Add bit and propagate, if needed
- var carry = q;
- for (var i = s; carry !== 0 && i < this.length; i++) {
- var w = this.words[i] | 0;
- w += carry;
- carry = w >>> 26;
- w &= 0x3ffffff;
- this.words[i] = w;
- }
- if (carry !== 0) {
- this.words[i] = carry;
- this.length++;
- }
- return this;
- };
- BN.prototype.isZero = function isZero () {
- return this.length === 1 && this.words[0] === 0;
- };
- BN.prototype.cmpn = function cmpn (num) {
- var negative = num < 0;
- if (this.negative !== 0 && !negative) return -1;
- if (this.negative === 0 && negative) return 1;
- this.strip();
- var res;
- if (this.length > 1) {
- res = 1;
- } else {
- if (negative) {
- num = -num;
- }
- assert(num <= 0x3ffffff, 'Number is too big');
- var w = this.words[0] | 0;
- res = w === num ? 0 : w < num ? -1 : 1;
- }
- if (this.negative !== 0) return -res | 0;
- return res;
- };
- // Compare two numbers and return:
- // 1 - if `this` > `num`
- // 0 - if `this` == `num`
- // -1 - if `this` < `num`
- BN.prototype.cmp = function cmp (num) {
- if (this.negative !== 0 && num.negative === 0) return -1;
- if (this.negative === 0 && num.negative !== 0) return 1;
- var res = this.ucmp(num);
- if (this.negative !== 0) return -res | 0;
- return res;
- };
- // Unsigned comparison
- BN.prototype.ucmp = function ucmp (num) {
- // At this point both numbers have the same sign
- if (this.length > num.length) return 1;
- if (this.length < num.length) return -1;
- var res = 0;
- for (var i = this.length - 1; i >= 0; i--) {
- var a = this.words[i] | 0;
- var b = num.words[i] | 0;
- if (a === b) continue;
- if (a < b) {
- res = -1;
- } else if (a > b) {
- res = 1;
- }
- break;
- }
- return res;
- };
- BN.prototype.gtn = function gtn (num) {
- return this.cmpn(num) === 1;
- };
- BN.prototype.gt = function gt (num) {
- return this.cmp(num) === 1;
- };
- BN.prototype.gten = function gten (num) {
- return this.cmpn(num) >= 0;
- };
- BN.prototype.gte = function gte (num) {
- return this.cmp(num) >= 0;
- };
- BN.prototype.ltn = function ltn (num) {
- return this.cmpn(num) === -1;
- };
- BN.prototype.lt = function lt (num) {
- return this.cmp(num) === -1;
- };
- BN.prototype.lten = function lten (num) {
- return this.cmpn(num) <= 0;
- };
- BN.prototype.lte = function lte (num) {
- return this.cmp(num) <= 0;
- };
- BN.prototype.eqn = function eqn (num) {
- return this.cmpn(num) === 0;
- };
- BN.prototype.eq = function eq (num) {
- return this.cmp(num) === 0;
- };
- //
- // A reduce context, could be using montgomery or something better, depending
- // on the `m` itself.
- //
- BN.red = function red (num) {
- return new Red(num);
- };
- BN.prototype.toRed = function toRed (ctx) {
- assert(!this.red, 'Already a number in reduction context');
- assert(this.negative === 0, 'red works only with positives');
- return ctx.convertTo(this)._forceRed(ctx);
- };
- BN.prototype.fromRed = function fromRed () {
- assert(this.red, 'fromRed works only with numbers in reduction context');
- return this.red.convertFrom(this);
- };
- BN.prototype._forceRed = function _forceRed (ctx) {
- this.red = ctx;
- return this;
- };
- BN.prototype.forceRed = function forceRed (ctx) {
- assert(!this.red, 'Already a number in reduction context');
- return this._forceRed(ctx);
- };
- BN.prototype.redAdd = function redAdd (num) {
- assert(this.red, 'redAdd works only with red numbers');
- return this.red.add(this, num);
- };
- BN.prototype.redIAdd = function redIAdd (num) {
- assert(this.red, 'redIAdd works only with red numbers');
- return this.red.iadd(this, num);
- };
- BN.prototype.redSub = function redSub (num) {
- assert(this.red, 'redSub works only with red numbers');
- return this.red.sub(this, num);
- };
- BN.prototype.redISub = function redISub (num) {
- assert(this.red, 'redISub works only with red numbers');
- return this.red.isub(this, num);
- };
- BN.prototype.redShl = function redShl (num) {
- assert(this.red, 'redShl works only with red numbers');
- return this.red.shl(this, num);
- };
- BN.prototype.redMul = function redMul (num) {
- assert(this.red, 'redMul works only with red numbers');
- this.red._verify2(this, num);
- return this.red.mul(this, num);
- };
- BN.prototype.redIMul = function redIMul (num) {
- assert(this.red, 'redMul works only with red numbers');
- this.red._verify2(this, num);
- return this.red.imul(this, num);
- };
- BN.prototype.redSqr = function redSqr () {
- assert(this.red, 'redSqr works only with red numbers');
- this.red._verify1(this);
- return this.red.sqr(this);
- };
- BN.prototype.redISqr = function redISqr () {
- assert(this.red, 'redISqr works only with red numbers');
- this.red._verify1(this);
- return this.red.isqr(this);
- };
- // Square root over p
- BN.prototype.redSqrt = function redSqrt () {
- assert(this.red, 'redSqrt works only with red numbers');
- this.red._verify1(this);
- return this.red.sqrt(this);
- };
- BN.prototype.redInvm = function redInvm () {
- assert(this.red, 'redInvm works only with red numbers');
- this.red._verify1(this);
- return this.red.invm(this);
- };
- // Return negative clone of `this` % `red modulo`
- BN.prototype.redNeg = function redNeg () {
- assert(this.red, 'redNeg works only with red numbers');
- this.red._verify1(this);
- return this.red.neg(this);
- };
- BN.prototype.redPow = function redPow (num) {
- assert(this.red && !num.red, 'redPow(normalNum)');
- this.red._verify1(this);
- return this.red.pow(this, num);
- };
- // Prime numbers with efficient reduction
- var primes = {
- k256: null,
- p224: null,
- p192: null,
- p25519: null
- };
- // Pseudo-Mersenne prime
- function MPrime (name, p) {
- // P = 2 ^ N - K
- this.name = name;
- this.p = new BN(p, 16);
- this.n = this.p.bitLength();
- this.k = new BN(1).iushln(this.n).isub(this.p);
- this.tmp = this._tmp();
- }
- MPrime.prototype._tmp = function _tmp () {
- var tmp = new BN(null);
- tmp.words = new Array(Math.ceil(this.n / 13));
- return tmp;
- };
- MPrime.prototype.ireduce = function ireduce (num) {
- // Assumes that `num` is less than `P^2`
- // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
- var r = num;
- var rlen;
- do {
- this.split(r, this.tmp);
- r = this.imulK(r);
- r = r.iadd(this.tmp);
- rlen = r.bitLength();
- } while (rlen > this.n);
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
- if (cmp === 0) {
- r.words[0] = 0;
- r.length = 1;
- } else if (cmp > 0) {
- r.isub(this.p);
- } else {
- if (r.strip !== undefined) {
- // r is BN v4 instance
- r.strip();
- } else {
- // r is BN v5 instance
- r._strip();
- }
- }
- return r;
- };
- MPrime.prototype.split = function split (input, out) {
- input.iushrn(this.n, 0, out);
- };
- MPrime.prototype.imulK = function imulK (num) {
- return num.imul(this.k);
- };
- function K256 () {
- MPrime.call(
- this,
- 'k256',
- 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
- }
- inherits(K256, MPrime);
- K256.prototype.split = function split (input, output) {
- // 256 = 9 * 26 + 22
- var mask = 0x3fffff;
- var outLen = Math.min(input.length, 9);
- for (var i = 0; i < outLen; i++) {
- output.words[i] = input.words[i];
- }
- output.length = outLen;
- if (input.length <= 9) {
- input.words[0] = 0;
- input.length = 1;
- return;
- }
- // Shift by 9 limbs
- var prev = input.words[9];
- output.words[output.length++] = prev & mask;
- for (i = 10; i < input.length; i++) {
- var next = input.words[i] | 0;
- input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);
- prev = next;
- }
- prev >>>= 22;
- input.words[i - 10] = prev;
- if (prev === 0 && input.length > 10) {
- input.length -= 10;
- } else {
- input.length -= 9;
- }
- };
- K256.prototype.imulK = function imulK (num) {
- // K = 0x1000003d1 = [ 0x40, 0x3d1 ]
- num.words[num.length] = 0;
- num.words[num.length + 1] = 0;
- num.length += 2;
- // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390
- var lo = 0;
- for (var i = 0; i < num.length; i++) {
- var w = num.words[i] | 0;
- lo += w * 0x3d1;
- num.words[i] = lo & 0x3ffffff;
- lo = w * 0x40 + ((lo / 0x4000000) | 0);
- }
- // Fast length reduction
- if (num.words[num.length - 1] === 0) {
- num.length--;
- if (num.words[num.length - 1] === 0) {
- num.length--;
- }
- }
- return num;
- };
- function P224 () {
- MPrime.call(
- this,
- 'p224',
- 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');
- }
- inherits(P224, MPrime);
- function P192 () {
- MPrime.call(
- this,
- 'p192',
- 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
- }
- inherits(P192, MPrime);
- function P25519 () {
- // 2 ^ 255 - 19
- MPrime.call(
- this,
- '25519',
- '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
- }
- inherits(P25519, MPrime);
- P25519.prototype.imulK = function imulK (num) {
- // K = 0x13
- var carry = 0;
- for (var i = 0; i < num.length; i++) {
- var hi = (num.words[i] | 0) * 0x13 + carry;
- var lo = hi & 0x3ffffff;
- hi >>>= 26;
- num.words[i] = lo;
- carry = hi;
- }
- if (carry !== 0) {
- num.words[num.length++] = carry;
- }
- return num;
- };
- // Exported mostly for testing purposes, use plain name instead
- BN._prime = function prime (name) {
- // Cached version of prime
- if (primes[name]) return primes[name];
- var prime;
- if (name === 'k256') {
- prime = new K256();
- } else if (name === 'p224') {
- prime = new P224();
- } else if (name === 'p192') {
- prime = new P192();
- } else if (name === 'p25519') {
- prime = new P25519();
- } else {
- throw new Error('Unknown prime ' + name);
- }
- primes[name] = prime;
- return prime;
- };
- //
- // Base reduction engine
- //
- function Red (m) {
- if (typeof m === 'string') {
- var prime = BN._prime(m);
- this.m = prime.p;
- this.prime = prime;
- } else {
- assert(m.gtn(1), 'modulus must be greater than 1');
- this.m = m;
- this.prime = null;
- }
- }
- Red.prototype._verify1 = function _verify1 (a) {
- assert(a.negative === 0, 'red works only with positives');
- assert(a.red, 'red works only with red numbers');
- };
- Red.prototype._verify2 = function _verify2 (a, b) {
- assert((a.negative | b.negative) === 0, 'red works only with positives');
- assert(a.red && a.red === b.red,
- 'red works only with red numbers');
- };
- Red.prototype.imod = function imod (a) {
- if (this.prime) return this.prime.ireduce(a)._forceRed(this);
- return a.umod(this.m)._forceRed(this);
- };
- Red.prototype.neg = function neg (a) {
- if (a.isZero()) {
- return a.clone();
- }
- return this.m.sub(a)._forceRed(this);
- };
- Red.prototype.add = function add (a, b) {
- this._verify2(a, b);
- var res = a.add(b);
- if (res.cmp(this.m) >= 0) {
- res.isub(this.m);
- }
- return res._forceRed(this);
- };
- Red.prototype.iadd = function iadd (a, b) {
- this._verify2(a, b);
- var res = a.iadd(b);
- if (res.cmp(this.m) >= 0) {
- res.isub(this.m);
- }
- return res;
- };
- Red.prototype.sub = function sub (a, b) {
- this._verify2(a, b);
- var res = a.sub(b);
- if (res.cmpn(0) < 0) {
- res.iadd(this.m);
- }
- return res._forceRed(this);
- };
- Red.prototype.isub = function isub (a, b) {
- this._verify2(a, b);
- var res = a.isub(b);
- if (res.cmpn(0) < 0) {
- res.iadd(this.m);
- }
- return res;
- };
- Red.prototype.shl = function shl (a, num) {
- this._verify1(a);
- return this.imod(a.ushln(num));
- };
- Red.prototype.imul = function imul (a, b) {
- this._verify2(a, b);
- return this.imod(a.imul(b));
- };
- Red.prototype.mul = function mul (a, b) {
- this._verify2(a, b);
- return this.imod(a.mul(b));
- };
- Red.prototype.isqr = function isqr (a) {
- return this.imul(a, a.clone());
- };
- Red.prototype.sqr = function sqr (a) {
- return this.mul(a, a);
- };
- Red.prototype.sqrt = function sqrt (a) {
- if (a.isZero()) return a.clone();
- var mod3 = this.m.andln(3);
- assert(mod3 % 2 === 1);
- // Fast case
- if (mod3 === 3) {
- var pow = this.m.add(new BN(1)).iushrn(2);
- return this.pow(a, pow);
- }
- // Tonelli-Shanks algorithm (Totally unoptimized and slow)
- //
- // Find Q and S, that Q * 2 ^ S = (P - 1)
- var q = this.m.subn(1);
- var s = 0;
- while (!q.isZero() && q.andln(1) === 0) {
- s++;
- q.iushrn(1);
- }
- assert(!q.isZero());
- var one = new BN(1).toRed(this);
- var nOne = one.redNeg();
- // Find quadratic non-residue
- // NOTE: Max is such because of generalized Riemann hypothesis.
- var lpow = this.m.subn(1).iushrn(1);
- var z = this.m.bitLength();
- z = new BN(2 * z * z).toRed(this);
- while (this.pow(z, lpow).cmp(nOne) !== 0) {
- z.redIAdd(nOne);
- }
- var c = this.pow(z, q);
- var r = this.pow(a, q.addn(1).iushrn(1));
- var t = this.pow(a, q);
- var m = s;
- while (t.cmp(one) !== 0) {
- var tmp = t;
- for (var i = 0; tmp.cmp(one) !== 0; i++) {
- tmp = tmp.redSqr();
- }
- assert(i < m);
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
- r = r.redMul(b);
- c = b.redSqr();
- t = t.redMul(c);
- m = i;
- }
- return r;
- };
- Red.prototype.invm = function invm (a) {
- var inv = a._invmp(this.m);
- if (inv.negative !== 0) {
- inv.negative = 0;
- return this.imod(inv).redNeg();
- } else {
- return this.imod(inv);
- }
- };
- Red.prototype.pow = function pow (a, num) {
- if (num.isZero()) return new BN(1).toRed(this);
- if (num.cmpn(1) === 0) return a.clone();
- var windowSize = 4;
- var wnd = new Array(1 << windowSize);
- wnd[0] = new BN(1).toRed(this);
- wnd[1] = a;
- for (var i = 2; i < wnd.length; i++) {
- wnd[i] = this.mul(wnd[i - 1], a);
- }
- var res = wnd[0];
- var current = 0;
- var currentLen = 0;
- var start = num.bitLength() % 26;
- if (start === 0) {
- start = 26;
- }
- for (i = num.length - 1; i >= 0; i--) {
- var word = num.words[i];
- for (var j = start - 1; j >= 0; j--) {
- var bit = (word >> j) & 1;
- if (res !== wnd[0]) {
- res = this.sqr(res);
- }
- if (bit === 0 && current === 0) {
- currentLen = 0;
- continue;
- }
- current <<= 1;
- current |= bit;
- currentLen++;
- if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
- res = this.mul(res, wnd[current]);
- currentLen = 0;
- current = 0;
- }
- start = 26;
- }
- return res;
- };
- Red.prototype.convertTo = function convertTo (num) {
- var r = num.umod(this.m);
- return r === num ? r.clone() : r;
- };
- Red.prototype.convertFrom = function convertFrom (num) {
- var res = num.clone();
- res.red = null;
- return res;
- };
- //
- // Montgomery method engine
- //
- BN.mont = function mont (num) {
- return new Mont(num);
- };
- function Mont (m) {
- Red.call(this, m);
- this.shift = this.m.bitLength();
- if (this.shift % 26 !== 0) {
- this.shift += 26 - (this.shift % 26);
- }
- this.r = new BN(1).iushln(this.shift);
- this.r2 = this.imod(this.r.sqr());
- this.rinv = this.r._invmp(this.m);
- this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
- this.minv = this.minv.umod(this.r);
- this.minv = this.r.sub(this.minv);
- }
- inherits(Mont, Red);
- Mont.prototype.convertTo = function convertTo (num) {
- return this.imod(num.ushln(this.shift));
- };
- Mont.prototype.convertFrom = function convertFrom (num) {
- var r = this.imod(num.mul(this.rinv));
- r.red = null;
- return r;
- };
- Mont.prototype.imul = function imul (a, b) {
- if (a.isZero() || b.isZero()) {
- a.words[0] = 0;
- a.length = 1;
- return a;
- }
- var t = a.imul(b);
- var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
- var u = t.isub(c).iushrn(this.shift);
- var res = u;
- if (u.cmp(this.m) >= 0) {
- res = u.isub(this.m);
- } else if (u.cmpn(0) < 0) {
- res = u.iadd(this.m);
- }
- return res._forceRed(this);
- };
- Mont.prototype.mul = function mul (a, b) {
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
- var t = a.mul(b);
- var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
- var u = t.isub(c).iushrn(this.shift);
- var res = u;
- if (u.cmp(this.m) >= 0) {
- res = u.isub(this.m);
- } else if (u.cmpn(0) < 0) {
- res = u.iadd(this.m);
- }
- return res._forceRed(this);
- };
- Mont.prototype.invm = function invm (a) {
- // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R
- var res = this.imod(a._invmp(this.m).mul(this.r2));
- return res._forceRed(this);
- };
- })(typeof module === 'undefined' || module, this);
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("3IRH")(module)))
- /***/ }),
- /***/ "gw8B":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(Buffer) {var elliptic = __webpack_require__("lZ6o")
- var BN = __webpack_require__("geuY")
- module.exports = function createECDH (curve) {
- return new ECDH(curve)
- }
- var aliases = {
- secp256k1: {
- name: 'secp256k1',
- byteLength: 32
- },
- secp224r1: {
- name: 'p224',
- byteLength: 28
- },
- prime256v1: {
- name: 'p256',
- byteLength: 32
- },
- prime192v1: {
- name: 'p192',
- byteLength: 24
- },
- ed25519: {
- name: 'ed25519',
- byteLength: 32
- },
- secp384r1: {
- name: 'p384',
- byteLength: 48
- },
- secp521r1: {
- name: 'p521',
- byteLength: 66
- }
- }
- aliases.p224 = aliases.secp224r1
- aliases.p256 = aliases.secp256r1 = aliases.prime256v1
- aliases.p192 = aliases.secp192r1 = aliases.prime192v1
- aliases.p384 = aliases.secp384r1
- aliases.p521 = aliases.secp521r1
- function ECDH (curve) {
- this.curveType = aliases[curve]
- if (!this.curveType) {
- this.curveType = {
- name: curve
- }
- }
- this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap
- this.keys = void 0
- }
- ECDH.prototype.generateKeys = function (enc, format) {
- this.keys = this.curve.genKeyPair()
- return this.getPublicKey(enc, format)
- }
- ECDH.prototype.computeSecret = function (other, inenc, enc) {
- inenc = inenc || 'utf8'
- if (!Buffer.isBuffer(other)) {
- other = new Buffer(other, inenc)
- }
- var otherPub = this.curve.keyFromPublic(other).getPublic()
- var out = otherPub.mul(this.keys.getPrivate()).getX()
- return formatReturnValue(out, enc, this.curveType.byteLength)
- }
- ECDH.prototype.getPublicKey = function (enc, format) {
- var key = this.keys.getPublic(format === 'compressed', true)
- if (format === 'hybrid') {
- if (key[key.length - 1] % 2) {
- key[0] = 7
- } else {
- key[0] = 6
- }
- }
- return formatReturnValue(key, enc)
- }
- ECDH.prototype.getPrivateKey = function (enc) {
- return formatReturnValue(this.keys.getPrivate(), enc)
- }
- ECDH.prototype.setPublicKey = function (pub, enc) {
- enc = enc || 'utf8'
- if (!Buffer.isBuffer(pub)) {
- pub = new Buffer(pub, enc)
- }
- this.keys._importPublic(pub)
- return this
- }
- ECDH.prototype.setPrivateKey = function (priv, enc) {
- enc = enc || 'utf8'
- if (!Buffer.isBuffer(priv)) {
- priv = new Buffer(priv, enc)
- }
- var _priv = new BN(priv)
- _priv = _priv.toString(16)
- this.keys = this.curve.genKeyPair()
- this.keys._importPrivate(_priv)
- return this
- }
- function formatReturnValue (bn, enc, len) {
- if (!Array.isArray(bn)) {
- bn = bn.toArray()
- }
- var buf = new Buffer(bn)
- if (len && buf.length < len) {
- var zeros = new Buffer(len - buf.length)
- zeros.fill(0)
- buf = Buffer.concat([zeros, buf])
- }
- if (!enc) {
- return buf
- } else {
- return buf.toString(enc)
- }
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("EuP9").Buffer))
- /***/ }),
- /***/ "hBHd":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var ERR_INVALID_OPT_VALUE = __webpack_require__("WrlE").codes.ERR_INVALID_OPT_VALUE;
- function highWaterMarkFrom(options, isDuplex, duplexKey) {
- return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;
- }
- function getHighWaterMark(state, options, duplexKey, isDuplex) {
- var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);
- if (hwm != null) {
- if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {
- var name = isDuplex ? duplexKey : 'highWaterMark';
- throw new ERR_INVALID_OPT_VALUE(name, hwm);
- }
- return Math.floor(hwm);
- }
- // Default value
- return state.objectMode ? 16 : 16 * 1024;
- }
- module.exports = {
- getHighWaterMark: getHighWaterMark
- };
- /***/ }),
- /***/ "hQ80":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var curves = exports;
- var hash = __webpack_require__("3PYz");
- var curve = __webpack_require__("tRuz");
- var utils = __webpack_require__("TkWM");
- var assert = utils.assert;
- function PresetCurve(options) {
- if (options.type === 'short')
- this.curve = new curve.short(options);
- else if (options.type === 'edwards')
- this.curve = new curve.edwards(options);
- else
- this.curve = new curve.mont(options);
- this.g = this.curve.g;
- this.n = this.curve.n;
- this.hash = options.hash;
- assert(this.g.validate(), 'Invalid curve');
- assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
- }
- curves.PresetCurve = PresetCurve;
- function defineCurve(name, options) {
- Object.defineProperty(curves, name, {
- configurable: true,
- enumerable: true,
- get: function() {
- var curve = new PresetCurve(options);
- Object.defineProperty(curves, name, {
- configurable: true,
- enumerable: true,
- value: curve,
- });
- return curve;
- },
- });
- }
- defineCurve('p192', {
- type: 'short',
- prime: 'p192',
- p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
- a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
- b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',
- n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',
- hash: hash.sha256,
- gRed: false,
- g: [
- '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',
- '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',
- ],
- });
- defineCurve('p224', {
- type: 'short',
- prime: 'p224',
- p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',
- a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
- b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',
- n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',
- hash: hash.sha256,
- gRed: false,
- g: [
- 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',
- 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',
- ],
- });
- defineCurve('p256', {
- type: 'short',
- prime: null,
- p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
- a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
- b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',
- n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
- hash: hash.sha256,
- gRed: false,
- g: [
- '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',
- '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',
- ],
- });
- defineCurve('p384', {
- type: 'short',
- prime: null,
- p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
- 'fffffffe ffffffff 00000000 00000000 ffffffff',
- a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
- 'fffffffe ffffffff 00000000 00000000 fffffffc',
- b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +
- '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',
- n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
- 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',
- hash: hash.sha384,
- gRed: false,
- g: [
- 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +
- '5502f25d bf55296c 3a545e38 72760ab7',
- '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +
- '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',
- ],
- });
- defineCurve('p521', {
- type: 'short',
- prime: null,
- p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
- 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
- 'ffffffff ffffffff ffffffff ffffffff ffffffff',
- a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
- 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
- 'ffffffff ffffffff ffffffff ffffffff fffffffc',
- b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +
- '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +
- '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',
- n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
- 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +
- 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',
- hash: hash.sha512,
- gRed: false,
- g: [
- '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +
- '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
- 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',
- '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +
- '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +
- '3fad0761 353c7086 a272c240 88be9476 9fd16650',
- ],
- });
- defineCurve('curve25519', {
- type: 'mont',
- prime: 'p25519',
- p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
- a: '76d06',
- b: '1',
- n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',
- hash: hash.sha256,
- gRed: false,
- g: [
- '9',
- ],
- });
- defineCurve('ed25519', {
- type: 'edwards',
- prime: 'p25519',
- p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
- a: '-1',
- c: '1',
- // -121665 * (121666^(-1)) (mod P)
- d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',
- n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',
- hash: hash.sha256,
- gRed: false,
- g: [
- '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
- // 4/5
- '6666666666666666666666666666666666666666666666666666666666666658',
- ],
- });
- var pre;
- try {
- pre = __webpack_require__("9bI3");
- } catch (e) {
- pre = undefined;
- }
- defineCurve('secp256k1', {
- type: 'short',
- prime: 'k256',
- p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
- a: '0',
- b: '7',
- n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
- h: '1',
- hash: hash.sha256,
- // Precomputed endomorphism
- beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
- lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
- basis: [
- {
- a: '3086d221a7d46bcde86c90e49284eb15',
- b: '-e4437ed6010e88286f547fa90abfe4c3',
- },
- {
- a: '114ca50f7a8e2f3f657c1108d9d44cfd8',
- b: '3086d221a7d46bcde86c90e49284eb15',
- },
- ],
- gRed: false,
- g: [
- '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
- '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
- pre,
- ],
- });
- /***/ }),
- /***/ "hkfz":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var BN = __webpack_require__("geuY");
- var utils = __webpack_require__("TkWM");
- var assert = utils.assert;
- var cachedProperty = utils.cachedProperty;
- var parseBytes = utils.parseBytes;
- /**
- * @param {EDDSA} eddsa - eddsa instance
- * @param {Array<Bytes>|Object} sig -
- * @param {Array<Bytes>|Point} [sig.R] - R point as Point or bytes
- * @param {Array<Bytes>|bn} [sig.S] - S scalar as bn or bytes
- * @param {Array<Bytes>} [sig.Rencoded] - R point encoded
- * @param {Array<Bytes>} [sig.Sencoded] - S scalar encoded
- */
- function Signature(eddsa, sig) {
- this.eddsa = eddsa;
- if (typeof sig !== 'object')
- sig = parseBytes(sig);
- if (Array.isArray(sig)) {
- sig = {
- R: sig.slice(0, eddsa.encodingLength),
- S: sig.slice(eddsa.encodingLength),
- };
- }
- assert(sig.R && sig.S, 'Signature without R or S');
- if (eddsa.isPoint(sig.R))
- this._R = sig.R;
- if (sig.S instanceof BN)
- this._S = sig.S;
- this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
- this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
- }
- cachedProperty(Signature, 'S', function S() {
- return this.eddsa.decodeInt(this.Sencoded());
- });
- cachedProperty(Signature, 'R', function R() {
- return this.eddsa.decodePoint(this.Rencoded());
- });
- cachedProperty(Signature, 'Rencoded', function Rencoded() {
- return this.eddsa.encodePoint(this.R());
- });
- cachedProperty(Signature, 'Sencoded', function Sencoded() {
- return this.eddsa.encodeInt(this.S());
- });
- Signature.prototype.toBytes = function toBytes() {
- return this.Rencoded().concat(this.Sencoded());
- };
- Signature.prototype.toHex = function toHex() {
- return utils.encode(this.toBytes(), 'hex').toUpperCase();
- };
- module.exports = Signature;
- /***/ }),
- /***/ "iLJX":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const decoders = exports;
- decoders.der = __webpack_require__("reGU");
- decoders.pem = __webpack_require__("vWx2");
- /***/ }),
- /***/ "iNQt":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- exports.readUInt32BE = function readUInt32BE(bytes, off) {
- var res = (bytes[0 + off] << 24) |
- (bytes[1 + off] << 16) |
- (bytes[2 + off] << 8) |
- bytes[3 + off];
- return res >>> 0;
- };
- exports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {
- bytes[0 + off] = value >>> 24;
- bytes[1 + off] = (value >>> 16) & 0xff;
- bytes[2 + off] = (value >>> 8) & 0xff;
- bytes[3 + off] = value & 0xff;
- };
- exports.ip = function ip(inL, inR, out, off) {
- var outL = 0;
- var outR = 0;
- for (var i = 6; i >= 0; i -= 2) {
- for (var j = 0; j <= 24; j += 8) {
- outL <<= 1;
- outL |= (inR >>> (j + i)) & 1;
- }
- for (var j = 0; j <= 24; j += 8) {
- outL <<= 1;
- outL |= (inL >>> (j + i)) & 1;
- }
- }
- for (var i = 6; i >= 0; i -= 2) {
- for (var j = 1; j <= 25; j += 8) {
- outR <<= 1;
- outR |= (inR >>> (j + i)) & 1;
- }
- for (var j = 1; j <= 25; j += 8) {
- outR <<= 1;
- outR |= (inL >>> (j + i)) & 1;
- }
- }
- out[off + 0] = outL >>> 0;
- out[off + 1] = outR >>> 0;
- };
- exports.rip = function rip(inL, inR, out, off) {
- var outL = 0;
- var outR = 0;
- for (var i = 0; i < 4; i++) {
- for (var j = 24; j >= 0; j -= 8) {
- outL <<= 1;
- outL |= (inR >>> (j + i)) & 1;
- outL <<= 1;
- outL |= (inL >>> (j + i)) & 1;
- }
- }
- for (var i = 4; i < 8; i++) {
- for (var j = 24; j >= 0; j -= 8) {
- outR <<= 1;
- outR |= (inR >>> (j + i)) & 1;
- outR <<= 1;
- outR |= (inL >>> (j + i)) & 1;
- }
- }
- out[off + 0] = outL >>> 0;
- out[off + 1] = outR >>> 0;
- };
- exports.pc1 = function pc1(inL, inR, out, off) {
- var outL = 0;
- var outR = 0;
- // 7, 15, 23, 31, 39, 47, 55, 63
- // 6, 14, 22, 30, 39, 47, 55, 63
- // 5, 13, 21, 29, 39, 47, 55, 63
- // 4, 12, 20, 28
- for (var i = 7; i >= 5; i--) {
- for (var j = 0; j <= 24; j += 8) {
- outL <<= 1;
- outL |= (inR >> (j + i)) & 1;
- }
- for (var j = 0; j <= 24; j += 8) {
- outL <<= 1;
- outL |= (inL >> (j + i)) & 1;
- }
- }
- for (var j = 0; j <= 24; j += 8) {
- outL <<= 1;
- outL |= (inR >> (j + i)) & 1;
- }
- // 1, 9, 17, 25, 33, 41, 49, 57
- // 2, 10, 18, 26, 34, 42, 50, 58
- // 3, 11, 19, 27, 35, 43, 51, 59
- // 36, 44, 52, 60
- for (var i = 1; i <= 3; i++) {
- for (var j = 0; j <= 24; j += 8) {
- outR <<= 1;
- outR |= (inR >> (j + i)) & 1;
- }
- for (var j = 0; j <= 24; j += 8) {
- outR <<= 1;
- outR |= (inL >> (j + i)) & 1;
- }
- }
- for (var j = 0; j <= 24; j += 8) {
- outR <<= 1;
- outR |= (inL >> (j + i)) & 1;
- }
- out[off + 0] = outL >>> 0;
- out[off + 1] = outR >>> 0;
- };
- exports.r28shl = function r28shl(num, shift) {
- return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));
- };
- var pc2table = [
- // inL => outL
- 14, 11, 17, 4, 27, 23, 25, 0,
- 13, 22, 7, 18, 5, 9, 16, 24,
- 2, 20, 12, 21, 1, 8, 15, 26,
- // inR => outR
- 15, 4, 25, 19, 9, 1, 26, 16,
- 5, 11, 23, 8, 12, 7, 17, 0,
- 22, 3, 10, 14, 6, 20, 27, 24
- ];
- exports.pc2 = function pc2(inL, inR, out, off) {
- var outL = 0;
- var outR = 0;
- var len = pc2table.length >>> 1;
- for (var i = 0; i < len; i++) {
- outL <<= 1;
- outL |= (inL >>> pc2table[i]) & 0x1;
- }
- for (var i = len; i < pc2table.length; i++) {
- outR <<= 1;
- outR |= (inR >>> pc2table[i]) & 0x1;
- }
- out[off + 0] = outL >>> 0;
- out[off + 1] = outR >>> 0;
- };
- exports.expand = function expand(r, out, off) {
- var outL = 0;
- var outR = 0;
- outL = ((r & 1) << 5) | (r >>> 27);
- for (var i = 23; i >= 15; i -= 4) {
- outL <<= 6;
- outL |= (r >>> i) & 0x3f;
- }
- for (var i = 11; i >= 3; i -= 4) {
- outR |= (r >>> i) & 0x3f;
- outR <<= 6;
- }
- outR |= ((r & 0x1f) << 1) | (r >>> 31);
- out[off + 0] = outL >>> 0;
- out[off + 1] = outR >>> 0;
- };
- var sTable = [
- 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,
- 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,
- 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,
- 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,
- 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,
- 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,
- 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,
- 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,
- 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,
- 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,
- 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,
- 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,
- 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,
- 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,
- 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,
- 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,
- 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,
- 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,
- 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,
- 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,
- 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,
- 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,
- 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,
- 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,
- 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,
- 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,
- 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,
- 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,
- 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,
- 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,
- 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,
- 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11
- ];
- exports.substitute = function substitute(inL, inR) {
- var out = 0;
- for (var i = 0; i < 4; i++) {
- var b = (inL >>> (18 - i * 6)) & 0x3f;
- var sb = sTable[i * 0x40 + b];
- out <<= 4;
- out |= sb;
- }
- for (var i = 0; i < 4; i++) {
- var b = (inR >>> (18 - i * 6)) & 0x3f;
- var sb = sTable[4 * 0x40 + i * 0x40 + b];
- out <<= 4;
- out |= sb;
- }
- return out >>> 0;
- };
- var permuteTable = [
- 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,
- 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7
- ];
- exports.permute = function permute(num) {
- var out = 0;
- for (var i = 0; i < permuteTable.length; i++) {
- out <<= 1;
- out |= (num >>> permuteTable[i]) & 0x1;
- }
- return out >>> 0;
- };
- exports.padSplit = function padSplit(num, size, group) {
- var str = num.toString(2);
- while (str.length < size)
- str = '0' + str;
- var out = [];
- for (var i = 0; i < size; i += group)
- out.push(str.slice(i, i + group));
- return out.join(' ');
- };
- /***/ }),
- /***/ "iP15":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global) {
- /**
- * Module exports.
- */
- module.exports = deprecate;
- /**
- * Mark that a method should not be used.
- * Returns a modified function which warns once by default.
- *
- * If `localStorage.noDeprecation = true` is set, then it is a no-op.
- *
- * If `localStorage.throwDeprecation = true` is set, then deprecated functions
- * will throw an Error when invoked.
- *
- * If `localStorage.traceDeprecation = true` is set, then deprecated functions
- * will invoke `console.trace()` instead of `console.error()`.
- *
- * @param {Function} fn - the function to deprecate
- * @param {String} msg - the string to print to the console when `fn` is invoked
- * @returns {Function} a new "deprecated" version of `fn`
- * @api public
- */
- function deprecate (fn, msg) {
- if (config('noDeprecation')) {
- return fn;
- }
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (config('throwDeprecation')) {
- throw new Error(msg);
- } else if (config('traceDeprecation')) {
- console.trace(msg);
- } else {
- console.warn(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
- return deprecated;
- }
- /**
- * Checks `localStorage` for boolean values for the given `name`.
- *
- * @param {String} name
- * @returns {Boolean}
- * @api private
- */
- function config (name) {
- // accessing global.localStorage can trigger a DOMException in sandboxed iframes
- try {
- if (!global.localStorage) return false;
- } catch (_) {
- return false;
- }
- var val = global.localStorage[name];
- if (null == val) return false;
- return String(val).toLowerCase() === 'true';
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2")))
- /***/ }),
- /***/ "iTY7":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const inherits = __webpack_require__("LC74");
- const Reporter = __webpack_require__("16On").Reporter;
- const Buffer = __webpack_require__("Hwfm").Buffer;
- function DecoderBuffer(base, options) {
- Reporter.call(this, options);
- if (!Buffer.isBuffer(base)) {
- this.error('Input not Buffer');
- return;
- }
- this.base = base;
- this.offset = 0;
- this.length = base.length;
- }
- inherits(DecoderBuffer, Reporter);
- exports.DecoderBuffer = DecoderBuffer;
- DecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {
- if (data instanceof DecoderBuffer) {
- return true;
- }
- // Or accept compatible API
- const isCompatible = typeof data === 'object' &&
- Buffer.isBuffer(data.base) &&
- data.constructor.name === 'DecoderBuffer' &&
- typeof data.offset === 'number' &&
- typeof data.length === 'number' &&
- typeof data.save === 'function' &&
- typeof data.restore === 'function' &&
- typeof data.isEmpty === 'function' &&
- typeof data.readUInt8 === 'function' &&
- typeof data.skip === 'function' &&
- typeof data.raw === 'function';
- return isCompatible;
- };
- DecoderBuffer.prototype.save = function save() {
- return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };
- };
- DecoderBuffer.prototype.restore = function restore(save) {
- // Return skipped data
- const res = new DecoderBuffer(this.base);
- res.offset = save.offset;
- res.length = this.offset;
- this.offset = save.offset;
- Reporter.prototype.restore.call(this, save.reporter);
- return res;
- };
- DecoderBuffer.prototype.isEmpty = function isEmpty() {
- return this.offset === this.length;
- };
- DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {
- if (this.offset + 1 <= this.length)
- return this.base.readUInt8(this.offset++, true);
- else
- return this.error(fail || 'DecoderBuffer overrun');
- };
- DecoderBuffer.prototype.skip = function skip(bytes, fail) {
- if (!(this.offset + bytes <= this.length))
- return this.error(fail || 'DecoderBuffer overrun');
- const res = new DecoderBuffer(this.base);
- // Share reporter state
- res._reporterState = this._reporterState;
- res.offset = this.offset;
- res.length = this.offset + bytes;
- this.offset += bytes;
- return res;
- };
- DecoderBuffer.prototype.raw = function raw(save) {
- return this.base.slice(save ? save.offset : this.offset, this.length);
- };
- function EncoderBuffer(value, reporter) {
- if (Array.isArray(value)) {
- this.length = 0;
- this.value = value.map(function(item) {
- if (!EncoderBuffer.isEncoderBuffer(item))
- item = new EncoderBuffer(item, reporter);
- this.length += item.length;
- return item;
- }, this);
- } else if (typeof value === 'number') {
- if (!(0 <= value && value <= 0xff))
- return reporter.error('non-byte EncoderBuffer value');
- this.value = value;
- this.length = 1;
- } else if (typeof value === 'string') {
- this.value = value;
- this.length = Buffer.byteLength(value);
- } else if (Buffer.isBuffer(value)) {
- this.value = value;
- this.length = value.length;
- } else {
- return reporter.error('Unsupported type: ' + typeof value);
- }
- }
- exports.EncoderBuffer = EncoderBuffer;
- EncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {
- if (data instanceof EncoderBuffer) {
- return true;
- }
- // Or accept compatible API
- const isCompatible = typeof data === 'object' &&
- data.constructor.name === 'EncoderBuffer' &&
- typeof data.length === 'number' &&
- typeof data.join === 'function';
- return isCompatible;
- };
- EncoderBuffer.prototype.join = function join(out, offset) {
- if (!out)
- out = Buffer.alloc(this.length);
- if (!offset)
- offset = 0;
- if (this.length === 0)
- return out;
- if (Array.isArray(this.value)) {
- this.value.forEach(function(item) {
- item.join(out, offset);
- offset += item.length;
- });
- } else {
- if (typeof this.value === 'number')
- out[offset] = this.value;
- else if (typeof this.value === 'string')
- out.write(this.value, offset);
- else if (Buffer.isBuffer(this.value))
- this.value.copy(out, offset);
- offset += this.length;
- }
- return out;
- };
- /***/ }),
- /***/ "iqpV":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var ERR_INVALID_OPT_VALUE = __webpack_require__("3U89").codes.ERR_INVALID_OPT_VALUE;
- function highWaterMarkFrom(options, isDuplex, duplexKey) {
- return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;
- }
- function getHighWaterMark(state, options, duplexKey, isDuplex) {
- var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);
- if (hwm != null) {
- if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {
- var name = isDuplex ? duplexKey : 'highWaterMark';
- throw new ERR_INVALID_OPT_VALUE(name, hwm);
- }
- return Math.floor(hwm);
- }
- // Default value
- return state.objectMode ? 16 : 16 * 1024;
- }
- module.exports = {
- getHighWaterMark: getHighWaterMark
- };
- /***/ }),
- /***/ "jOgh":
- /***/ (function(module, exports, __webpack_require__) {
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // NOTE: These type checking functions intentionally don't use `instanceof`
- // because it is fragile and can be easily faked with `Object.create()`.
- function isArray(arg) {
- if (Array.isArray) {
- return Array.isArray(arg);
- }
- return objectToString(arg) === '[object Array]';
- }
- exports.isArray = isArray;
- function isBoolean(arg) {
- return typeof arg === 'boolean';
- }
- exports.isBoolean = isBoolean;
- function isNull(arg) {
- return arg === null;
- }
- exports.isNull = isNull;
- function isNullOrUndefined(arg) {
- return arg == null;
- }
- exports.isNullOrUndefined = isNullOrUndefined;
- function isNumber(arg) {
- return typeof arg === 'number';
- }
- exports.isNumber = isNumber;
- function isString(arg) {
- return typeof arg === 'string';
- }
- exports.isString = isString;
- function isSymbol(arg) {
- return typeof arg === 'symbol';
- }
- exports.isSymbol = isSymbol;
- function isUndefined(arg) {
- return arg === void 0;
- }
- exports.isUndefined = isUndefined;
- function isRegExp(re) {
- return objectToString(re) === '[object RegExp]';
- }
- exports.isRegExp = isRegExp;
- function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
- }
- exports.isObject = isObject;
- function isDate(d) {
- return objectToString(d) === '[object Date]';
- }
- exports.isDate = isDate;
- function isError(e) {
- return (objectToString(e) === '[object Error]' || e instanceof Error);
- }
- exports.isError = isError;
- function isFunction(arg) {
- return typeof arg === 'function';
- }
- exports.isFunction = isFunction;
- function isPrimitive(arg) {
- return arg === null ||
- typeof arg === 'boolean' ||
- typeof arg === 'number' ||
- typeof arg === 'string' ||
- typeof arg === 'symbol' || // ES6 symbol
- typeof arg === 'undefined';
- }
- exports.isPrimitive = isPrimitive;
- exports.isBuffer = __webpack_require__("EuP9").Buffer.isBuffer;
- function objectToString(o) {
- return Object.prototype.toString.call(o);
- }
- /***/ }),
- /***/ "jSRM":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__("7NRE")
- var randomBytes = __webpack_require__("rOku")
- function blind (priv) {
- var r = getr(priv)
- var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()
- return { blinder: blinder, unblinder: r.invm(priv.modulus) }
- }
- function getr (priv) {
- var len = priv.modulus.byteLength()
- var r
- do {
- r = new BN(randomBytes(len))
- } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))
- return r
- }
- function crt (msg, priv) {
- var blinds = blind(priv)
- var len = priv.modulus.byteLength()
- var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)
- var c1 = blinded.toRed(BN.mont(priv.prime1))
- var c2 = blinded.toRed(BN.mont(priv.prime2))
- var qinv = priv.coefficient
- var p = priv.prime1
- var q = priv.prime2
- var m1 = c1.redPow(priv.exponent1).fromRed()
- var m2 = c2.redPow(priv.exponent2).fromRed()
- var h = m1.isub(m2).imul(qinv).umod(p).imul(q)
- return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)
- }
- crt.getr = getr
- module.exports = crt
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("EuP9").Buffer))
- /***/ }),
- /***/ "jkjm":
- /***/ (function(module, exports, __webpack_require__) {
- var asn1 = __webpack_require__("19bf")
- var aesid = __webpack_require__("8YCc")
- var fixProc = __webpack_require__("7VT+")
- var ciphers = __webpack_require__("tXf9")
- var compat = __webpack_require__("/vd3")
- var Buffer = __webpack_require__("X3l8").Buffer
- module.exports = parseKeys
- function parseKeys (buffer) {
- var password
- if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {
- password = buffer.passphrase
- buffer = buffer.key
- }
- if (typeof buffer === 'string') {
- buffer = Buffer.from(buffer)
- }
- var stripped = fixProc(buffer, password)
- var type = stripped.tag
- var data = stripped.data
- var subtype, ndata
- switch (type) {
- case 'CERTIFICATE':
- ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo
- // falls through
- case 'PUBLIC KEY':
- if (!ndata) {
- ndata = asn1.PublicKey.decode(data, 'der')
- }
- subtype = ndata.algorithm.algorithm.join('.')
- switch (subtype) {
- case '1.2.840.113549.1.1.1':
- return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')
- case '1.2.840.10045.2.1':
- ndata.subjectPrivateKey = ndata.subjectPublicKey
- return {
- type: 'ec',
- data: ndata
- }
- case '1.2.840.10040.4.1':
- ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')
- return {
- type: 'dsa',
- data: ndata.algorithm.params
- }
- default: throw new Error('unknown key id ' + subtype)
- }
- // throw new Error('unknown key type ' + type)
- case 'ENCRYPTED PRIVATE KEY':
- data = asn1.EncryptedPrivateKey.decode(data, 'der')
- data = decrypt(data, password)
- // falls through
- case 'PRIVATE KEY':
- ndata = asn1.PrivateKey.decode(data, 'der')
- subtype = ndata.algorithm.algorithm.join('.')
- switch (subtype) {
- case '1.2.840.113549.1.1.1':
- return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')
- case '1.2.840.10045.2.1':
- return {
- curve: ndata.algorithm.curve,
- privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey
- }
- case '1.2.840.10040.4.1':
- ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')
- return {
- type: 'dsa',
- params: ndata.algorithm.params
- }
- default: throw new Error('unknown key id ' + subtype)
- }
- // throw new Error('unknown key type ' + type)
- case 'RSA PUBLIC KEY':
- return asn1.RSAPublicKey.decode(data, 'der')
- case 'RSA PRIVATE KEY':
- return asn1.RSAPrivateKey.decode(data, 'der')
- case 'DSA PRIVATE KEY':
- return {
- type: 'dsa',
- params: asn1.DSAPrivateKey.decode(data, 'der')
- }
- case 'EC PRIVATE KEY':
- data = asn1.ECPrivateKey.decode(data, 'der')
- return {
- curve: data.parameters.value,
- privateKey: data.privateKey
- }
- default: throw new Error('unknown key type ' + type)
- }
- }
- parseKeys.signature = asn1.signature
- function decrypt (data, password) {
- var salt = data.algorithm.decrypt.kde.kdeparams.salt
- var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)
- var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]
- var iv = data.algorithm.decrypt.cipher.iv
- var cipherText = data.subjectPrivateKey
- var keylen = parseInt(algo.split('-')[1], 10) / 8
- var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')
- var cipher = ciphers.createDecipheriv(algo, key, iv)
- var out = []
- out.push(cipher.update(cipherText))
- out.push(cipher.final())
- return Buffer.concat(out)
- }
- /***/ }),
- /***/ "jxY5":
- /***/ (function(module, exports) {
- module.exports = {"logoGif":"data:image/gif;base64,R0lGODlh1APcAPf/AP77993//232/1n/tyyu/6ba/5D/0v+OstRw//9nUv/b1rvl/0/2/9yK///H2rj7///j7bIF/zD3//+1q9X+///m8v7z78tT//fl/8n/6eX/9t7z/9Xu/6j6//fr/+v/9wPm/6r/3Oq4/5jW/+7H/9X/7vXd//4zGM38/5j4/2q7//7n5HfH/93u/7bd/4fK/+aq/83s//8MV//e6+OX/4b3//8sbcsx/+Xu/1e6/wLr/zT/qP/r53X/xROm///U4/9TisX8/8Xl/wOc/xWU//TV//9omFHL//+oxd3/8rn/4/vm/2bF///Nx/7i3v+0zfP/9/LO/0a2/4rT//9KMv/c5xbs///Uzc3m/y2f//96pP+800Op/8Xr/5XO/70i///Du/P08/+Yif+Ecv+nmhr3/wnm//lv/9bz/+/U///P4Ajt/+ZR/67h/9Tn//8bYP+bvlKu/6v/6cDf/zfD/+7z99b/8/ze///f8OT/7//X6HnQ/////5Xr/5z/2/+l14jj/2Hg//v///+8/f+h/6PS//fu7vbv9P+15g7z/93n/831/9/v+f/T/RuQ//f//+fz98H3//XT9v/7//fm5eOg/4HB///7+/v7//P///zX9Pf7///3+//3//rn6/P7//v7++///8Q/////++v////392L/v/v/++/7//v3//P/++v3//f/++f//+/3///z+//z9/vz//rv/70E4+f3///v9//z8//38+P//+//+v/z//P3//vr//f3///r8/f7+/v39+v7///v8//v6//v7//r9+Pz///v++fz/+L3/+vz//v3++v/+//r6/fz//P7+/v38/vz8//r7+/z//f3+v/v/+f7//vv7/P3+vvv6/Pz/+/3++H7///r+/vr6+/7++v3+/vz9+f/++f3++v7+/vz++fz++vz+//r//vv8+Pz++/z+/rv+/vv9+P3+/vr9+f7+/vr7/Pz+ffz+OP/+/vr+/vr8+H7+/8+e9Pr+/fr58P/487/79nz9/vj9AAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU2REEyNjM4NEMzNDExRUNBNjg3Q0MyNjczMTAwQzQ4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU2REEyNjM5NEMzNDExRUNBNjg3Q0MyNjczMTAwQzQ4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTZEQTI2MzY0QzM0MTFFQ0E2ODdDQzI2NzMxMDBDNDgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTZEQTI2Mzc0QzM0MTFFQ0E2ODdDQzI2NzMxMDBDNDgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmiiTRFEcOKKdplhBggwHpjijCzW+NaLMLoIQoEz9mjjj2jlCIIENUigY4z/9XjDGTf0qCKQUHqFIwhmWMHAAwKUQSWMSObnZIpsDMLGF19GaWZXW1qhA5U8lnnmm15x+aKMTsJpJ1dbJkjjnXz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMb/KuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbPDBCCes8MIMN+zwwxBHLPHEFFds8cUYZ6zxxhx37PHHIIcs8sgkl2zyycYRQYQjRKA8xMsvo2zQyiqrbDLMMMtMUM1cSMEyyyLjTAAdPuQs8s81E5EFFzkAEgwfHezBRRYsJw10xDjj7AMBRwgQgCAdBEIHAUVnHXPINS9dM8kwb220zv8kbXPJZsNdEM0uv2333nz3/+3334AHLvjghBdu+OGIJ6744ow37vjjkEcu+eSUV2755ZhnrvnmnHfu+eeghy766KSXbvrpqKde2Qms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DY6NrGQnS9nKWvaymM2sZjfL2c569rOgDa1oR0va0pr2tKhNrWpXy9rWuva1sI2tbGdL29o02va2uM2tbnfL29769rfADa5wh0vc4hr3uMhNrnKXy9zmOve50I2udKdL3epa97rYjWFAAAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiTBFEcOKKeqFAAQUDIoDABTQi0MCNLOYYFwrcBMANjADaeIEoEXwhio2V0KDjkmwF4KSTi/gXgShDFnkGGxHccIGMFzDppVmRUBDAiwGgwF+KRYryxZSEnLHmFzQSqeKXdH4V5osvmunfkTOumaWMNNCAQJ2EehWmiygkCuCWM9aIQKCDFiqpVg8kamkQAt4giqaidDrpp1k9EMSoo0YC6qmoltRBJA88wOoDqcb/KitHKbT6QAetzqrrrhOl0EEHvgLL67DEKlRDCinUcGwKxTbr7D8C1CDAtMo+ay2vDAQSiAQMZHvtt7GaYYYVVkhArhUggKuulyCYAcK771pRBgMCPMAHBTUwYC687rab7roAr+iuDmbs+27ACNPZbr8JN/zlu+46LPHEFFds8cUYZ6zxxhx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTXbPPNOOes88489+zzz0AHLfTQRBdt9NFIJ6300kw37fTTUEct9dRUV2311VhnrfXWXHft9ddghy322GSXbfbZaKet9tpst+3223DHLffcdNdt991456333nz3/+3334AH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SrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4koRRHDiioIF0EoA+4mCAAIXXDBjA5XAIIIIJEThIwksBhlXAKS0Qgou+cl4gShfRCDKBQ3QoCOPPaaRRhRCZsnWka10ScF9Tl5wQwRsnPHFFzIi0ACOOU7ZgJZwmuVil11yU1+KEdzQ5A1nEDImmjaquSYNlVTyZpyIhkWBNV3igguM96XZZARf2IjjlCSQcCWWiXbqFQWt4BLqo/kFuuSNOe6YqZWceuqqVi5y/4OLrF/md+YNouRaIwKv9voVBY4+yk2tvhZr7EgoyBoANwEQe+yz0GZEQQDUUmBttNhmO1GyzVqLgrbghqsQCtNaS0EQ4qar7j/keotCJOvGq227KNQLr7z4PhsEBfWiEMQD+QZcbCT8vvsAwAIn7Om+/kbyQAcKR4wowUEE4XAHfQgggRlmgCDxxyZGYu/BKdQgQCAcg+AxyCyDmMLDHaTQh8kMWCEBAx1z3PLOGprBQCAMMCCBFWbYLEAAuGhcRscqM20Gz1BH+EAkC8Sccc1WlAFCx1F3beHUB2NcQ80cP+312RTKbHIgRHON9ttwxy333HTXbffdeOet99589//t99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFdu+eWYZ6755px37vnnoIcu+uikl2766ainrvrqrLfu+uuwxy777LTXbvvtuOeu++689+7778CLV4gXwdc0BfHF6zSHEELMUYAlyb/UxgILtFEAE9HX5IIbzbvgwvAqZJF9SgV00UUbbYwwwh45EDA+TEJgIYT3w1tiiQrhv1/SAl1Ur/4LTGBCDqTgPv2tZHlzcEEBvGCJHHCBCyqwRBwMKJICVC99e2ACAXxAACkwQQoUTEkOCjG8F6ggDlnIAQrjcD8u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SLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okovtZKKNbMJ0oDMNJQCQwiiEACCVFEUYQJO5qAwR0YYOABLyakaGRcpDzySCaZxCcKAlAi0ICMNd4YRRppmKBlkBgs0aUHHmBw5JhsZRKKmZmQAh8CF4giygVSzljllUX0uGWQYA5ZBJl8mtUKk0yGEsp7EVwQwRdfRPDklHJWiSOddt7hYxR9ViqWoIGaaV4EnHbK6Rc3sHHGJHwQwsYNiUZww5twSgljJTPC/0BjjZbW+tWfaArqHqeiqHqDonA2AOusNz6qYxp1mpCGrcxyhcqZ0A76HpuifAHnBdgi0Oy2aEFrpq7TRgnlDdyWexYp0YLr3gUwwqitufCOhem3asLHbgPvxqvvrWfSu++/AE+E7reh1BvwwQgj1K+gBSfs8MP/YMqwwRBXvO+KBFNs8cblSiyoxhyHbCvGH0sr8sm1/jlxKK20jAsu3ATADQU0o4BCEJE88EAKKdQggRkgAI3y0BeqPDEpSLfcCswy00zBzTl30HMgVgQdNNFYS0jB0i9zE3MATj99M845P9BBBzX0IQADVkjANghXZy03gx3YDDXOOp99Ns811P8ggACBMMC2FWa4nQIfKTDwM9BWCz334wIG0wopSuNiDcxeO23zInif3YffErRtBtBmQG76gRKjm/TSXsdcM9RmT006CKfXfmAAl2MO9tNik513Cp8Hsjjtthdv/PHIJ6/88sw37/zz0Ecv/fTUV2/99dhnr/323Hfv/ffghy/++OSXb/756Kev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HduyPdu0Xdu2fdu4ndu6vdu83du+/dvAHdzCPdzEXdzGfdzIndzKvdzM3dzO/dzQHd3SPd3UXd3Wfd3Ynd3avd3c3d3eK/3d4B3e4j3e5F3e5n3e6J3e6r3e7N3e7v3e8B3f8j3f9F3f9n3f+D0uAQEAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okovvaIIJnQh4EHS3ggIy800uiBLLLwgiMvscjSoywepChkXJkI8siK8r0IpIxMAonjk1DiGMuPmcExpH9GHnkkfC/y4oGXYH75ZY06+uhjj1PGgtkTDmyBxJX6aSknlzLG6AEGS4BJZo054ljNk7FgYNkTT2xhqJVw3nekkYI0Ct+dGLwo6Z1MyuhklLFU0+NlhCLRaaL3FblillxGauoSk8Zop5h8ZsrLZUYg/wHHrEi8CWp9ja6oZammYhCFakbAccABWhyA6K3zZTIqqe+ZgIGzzq4GxAFGAGFEscjSx2iWj8BnwrffCqqatTa88QY+RryRrXy5ztksuN+eJsO8MpiLzx9a2GADvTKs656o7rr3bREmEJzavPraoEW65c7rr3u6BtxeGgUXYbG0RuBjLhBaPAyfsnJ2+14aJKdRRBqrXbvwtQd4/N6iErMXRRpRzPwrsMIOa6zLEEe85XskBB30zalpUSuttvK8ns8swie00KtpQejUTyjNHsgxryfC1lyvdoChYG9h9XpYw5wJyGennUkoa4fi9tukhELK3HO3QordrXDDjXNc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37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okovibIivSl0ksvk6SCSScy1jjjJJNgoiMmMWKSimGvTALAJHxMcsklRiZZJJFIHtlJiv8JwseUfMgXSyqp0NiLiz7O2CWWWH4Z45ODHUkkjjg2maSabE4CZX9UTikIfFdiuSWWnXyJZ5ad9DlJnjJiQpiZSKa55qFqpsnJm/rFSSV8LoIJ5pd60thnJ2PyGItgnBBq5JJohspkkmkymp+UjkIq6aSsrippl24K/2akmbMeaeutnoZqKn6OTgnfnZIC66ONNb7642CdeposJ4geimaVu9qHapzwbbKqB5fVaiSZCnHCCaiXRCttr79Kuglm2l6yKEOFNilufb3O+Z6dkaJrK7PhMpTuu/Q5KmW5W26JbrJGCsrurbHyG9+KVP47byrOQHysZZMkiyQsDeG6rsLwMSwntO5tGXHEmOGLJCelNGQxkhwvzAeqDruXSiy9xELyZfga6a3K9+bbsnsevwxyezXXfLNlzCZdscqzMvvze0ILLa9lu3yyySeCfGL11r248okxSc3sjM2b4qxuxZekrO+yPk+3yiePwP3IJpnMHXcon6zydEJSC/9d2So7biL44FZfvcvhh6/iilEQO+N42Uh7q666DaE9+XSo1L3J3JnQrXXcmWitNSqroLJ3QR5LOTVkguvY+uCC9/IJ4p+4grjteg/V+OMlS97pxgqhLXl0mwuy+Sd1Iw+36KKjIvoqweR+OsOqRx1n9aqvqP20L3O/PVyBYwI7JruIv0kvVad/uyvsIyOU0byb7e3vKs9/JHSPJG93Jvx3Hvr/zvsEKgZIugHSYnp9w173tre9BGpvgUF7xNDS0gtBiM91sNuF4LSGuF3Y7oPsY98qlBEU+DlDFr2bH8rq562lNQcVxhPEI2boudAJ0Hl4cx4Bd7iKHkqvZdlLoBD/H6jA7BFRiGvZxSNch0HBpQJ2vcCE17pmOw+GUHHTUIYbfuK4E56wZKVQIcYYkrThMQcVM5Qh5672P6uhYhN4u+EOC+hDWnDgaUUc4gKHyEA9PkItrrDg65jowYTgQBm1m4YIXaGMESJjiz1xnCy8mML5jXEh6rLfGWWoxs1tbm6LS0jp6Fi6VdBiFcjIx8+M2D0IYo96D2yYnGA2ywmWRXxLNN4mMJGJiODAFYoboTKGiQwhRHKSyKykt16RMRW2DTkzjCbdNrG6hiSDdHWkhTGMEYOf6TGPQWRgA1sZxLRsDoM6mgZFjJFFZCgDGcjAgft4Iot6nhCFOFMhJ2zR/0xvleKZxuHk8ZZouomc0pSmTAYyNrC3FT2CYQ99YEQfyoeHRrSi2psoRb93ll4scZeDu0gL2okMY+DAGC2gZz3tCUYVMpMhYZyf2pDzDIfOEGsXyccqjHFKYyRjAww9nUfEiRZdGk98GcECPEuKgxa0wJg6kYU2PCBVbOEspt7iJxn9ucLkRNN4D9WIKbcJ1A1AVagbyZ4Ez6JETFgwEwZLqjxP2tSURtUD2pAFVVsa01qwEGXAKw7c1Ai3gmZEmxswBlDRgFaOYFR7Z1kRNXX0CY5wIJ51bcEcojpVvOITaWEM7UsXosIwJsemH7VsMhQLVA50obEaIapZxHfUc/91pAXxdGoLINkQL6jEA8AF7mcrAwvAlqIUft0qV5PzyeJ5hLUbQEMLFvGQF0wBtgiRLVk+QVvXeWQOOKirG9zgAoNkgQtxsIQXCjCHOWDBDWctSXCDi5lXiLYUvviraZEj0Ll9ZKEb4AAaOFDegviAAATIAQumUIA2LEAICygAdlHHQLOc04JZ+4huW8ABLJzVEiBWgQos8YJCFMIF7R0vFk4yX+DWt7gwFsZfd3YcrD3UuR4pq4Bj8FqBsGAPLGBCDoa84BG0oQ1CSPKECaLdsdB2l4/YxUfAq4jxugELLnBBAQphCRVw4bwjNnF7sUDmApOkxVa1zCtgsWZOwCL/uaSVaWCHY1G72bYjCxgwB3jchQUceQRTYIEUfEBoKTCBwW1wwYMlvOR/NFksGdzEDzkyhyy7wMRe8EKX45CFOEzhy3EYcaZNzGWTYMADp3bxZWyxZjbbIr8MKW5o5ywcuE0zE5PeSBsKUIARABrIQh60D47wgCMUOgdMWPALctBoR2e0mmGB3dVwAJITY9oLL9j0l5kQhByAecTq1fRJMEBuVKe5MsJoNSze3JBZl2K0xcnf1eh2wI8c+ci9/rWQCeADOtSADkOQgoL34IURvKDZzuYoWTCxxAuGZA5WxkJ7L61pTmchC6I+cXsLgRIM4KDcGMBMLdZNclgvBBal/0B5cfkrzbiBRAgc3nMXILzrQOfAB0NIcJH/jPCEQ/aWGEZqSDhQ5StPvBCaFjG4xb0Scjs95JeBhS3WPXWTKyTlKqd1cDhpN8N6RM98XkCEAR3kITPh7D1nckRZVJajNjzXG5kD0a8shEqbeNNZgMnTyS3yqb8ZFlZPCMnXrXXgcP2TIXEBhxfB5z9PQQXCTrtB1h7WW1ITpFIWiRA87IKD2wQDJni6yEdeC1vUogINGfzKjxPNG/dSJF2IgRBccF3JM8SiPyfLLo6qy6+APvShx4wvhFELYRBfGqkffOF/E4r+vt72MsF95cuyywvGlSsmyH72oW6Z4Xv/9Mkn/P8ljZNGxEM/+pxkO/WZuIlQciUN2s++8IXhi/oLA/WxJvmavarGGT7//C4hfdAWFtYHZV4BfwhoAsJXfwyIfyc3ciR3Wmm0RP8HgCwhgGjxUbXVFWnQgQiIGRXAgNLgCxDQEMLwd+umHDL0STNkgQHIdX90Fm7lVrtkNe/ngR0IgiPoCyNYggwxcieYgvxnNw9VgS54EhM4fRY2g0dVWVoRBVCYBlGQBpgBARUgDVdYATNggsX3d8tRZ2lkhEdIEmA4gGLhOoLkXVlBAiQQBWwYBVVYAXIoh1vIEMRHfOymHHVDQyw4hihRhmpxQbrkOu5XFWx4iCRQhRAAAZ5ghVX/wIV4CGdeNTdg9TlO6IcjAYYxmBaTUFutYzUkZIgiQAKjmIiXMQOLmIqPyBC+UHy18IrNQUOUeDUzBHeYuBGtp4RocXnStkHaQBUiEIzCiBlVkIqLqAcN0YrGB4uxiEuedDw2eIsekYubqBZWYz6CUz6YsDVgAxUw8I3fKAIIcBlVMAOoWIw/kIy1MHzF9xyhIIsbNEOhAEehKI0ZQY1uITtPBFKDQz6bUDVPUQmVQAMECQMXcBl6UAUKqZBqkIzeR3zQoQqUuDz5kz9aswmkY48X0Xp1Axf8CDuucD4ahAldQ21KQQMN0AAI0AA0cJCW8QN6kJBVoAcO4JD1B3jS/5E10VQ3mhM6GKk13aiREbGH0RQX5cNdVnM4kaZBs2OSRoEAUHkBUXkZavADMKkHP1CTrLiD6zgdVnNToHNTomNDn1BvQtkQHFmNHomNGjQ4belB5bMKThkUEYAAovAFESAKdnkZDvADalCVarAFNml/1pGLFDmWyOM1zGCLc3ECjjkQYjABYAAGTQAGalEDKVADNSAAa5E/PKmWcRGSNQhSvZCNHXQ4w/QTEbCaNxABF8AGXxCbq1kZDqAGDlCbgTmYrYgdvxA3cVNDV8M8ARQKQdmYjnmc/yAGlNkEV6AAznkWKdABHZAC1KmZDJAWnlmReIFISymS6IM+uzAN4f85lzSxmuZpnjdACIMgCud5npGxBbcZn0/QEDvIgNqxCnazNczTPKgQDBi5DcXpFsdJBVTgmAlABhMgmU3AnFfQBGYhndUpABIqABKQgfyjnXqhDFUjRefzj+B5muyjDIqwE19wAXgZASUqCpfxBFvQoi2KBA0RggwYeNiBPPLWRqMjR28DTEFVFsf5o1SQAAc6JWQwBgRKoEI6BmMgBmJABWRRAxAqAIHAABLAAAJwnWfhmRfqF8qwj7vwoesTnrvQSPV4E1ApChcglSpqGU/Qpm4KowxxhTMKHquQPM0jQHg6R6sADmzxo0JqoGKAoJO5oFdwBWUhAJl5pRKQCBL/YAYS0Khn0T/9Exg4MA3kczjoU0UhpEirsAvzZBMpCZUruaaVgQRIAAeoeqoxKqP1Nx7O0zkBdENy5Dxvw5hj8aOOSQVkQJmF6pxO4ARfAQI6oAPCKqxmUAZVWgOtwAcPcKVlYAXDGq3R6hWSyj+F0UHgqaniqQzOEJ4jShMrSZAoiRkHAAcHcK7mGqP1iXzmEatydKc6hAoB6qPIKRAI2qu/CqxlUaUMwABW8KjICqlmkQmhIKmIgakfBJeuoA0Lu63k+RIsOa7kqgVGULFaoAXqyoOtmh6rsDnss58BpEPzuhbNqQD5mhaKWqUSihbVKoaEIZ67oA2HYzsw6wrO/5BFNeGSmGEEQGADb2ADFdsQVlifX8EKj3AJDsUKp7AiRtt6TWu0qqBG/AMFHJkLaiQImRC1jyCRe5gJRssVwrmfeVqIbFGyJ4sWmjmhNRAILFuwBOuyhYED4dk1HiSziDMNOKscMrC3PgsEcIAPP7u3MpAQBxCff9mQXMEK4rQ9D6W4jisIRhu5jyC5ULu1lmu5EjlDlJtGUJALXGEMAvSTd/o8bnEFTmCyTrACaZGZfaCZmdm2BVuwkGE7dmu3h3Oz6pQcgmsDNgAEfwAEP/sGe0u4hvuXXSEIp7B2DGRRyZu8kqu50bS5Ejm9lru5rad+XPFGIcs8z/AJwdAWvv+auqqLFtI5ndJZA7AbCrIbGdNQO7FwODIrs9PgDA9bHDzrs71rBA3RiHJKo1bBCi+jvOLUuJA7uQZstM57wFvLCqrAwNVrwNF7vVAAFqUjtgH0DHyqFqgrvmkhnQ/gwSmAFuo7wqFAGTjAsLcbs87AsLmLHAdAsUBgBC9Mn/1LDFzhUMsrQwm8uazQwz78w6oQxEI8xAxcuRLZtK0nFqNElqODCtigFvm6AlKcFg8QCVUcCZEQwmcRCqRAwpahDL2gDWG8wo6jDb/owueaxhgbp6zqv1WhvI+QvP2XRtJbxA0sxHWjClAwxEJckQxMtVurtVpLFuAQnPp5Nbb6Fb//KsUrwANUHARBgMVB0AEi3MUjjBmII7Pd6kHDRRxGgKqg7BAV0AxzuhWMK0NQkMqq3LmqkAudmwuuHMsfkAuzTMsfcMuznMu0vMu17MozdMQyZBaHLDqb8AxoIb6N7MhogQJBwMwogAKUvMWkMM1dnBnToMm90K0MW6aeDAeqKsoz6sZUQXmCMMEpkbW/HMxm4TVa0zkXacxmwcg8MM9p8cz2TAEPgBbUPM0lrBkd1K3dem7WQcqlrBXkbM4oEcQQDJpj0TkbNDjfEM/JTM/LTAEWbdH5fBak0AobPc2csQvvm83hGQvfeh1tLM5TkX6K67kpkQsGzLVq4ZNzIzi//9DCOzEM0XBcwFAK0WALFmALPh0NFnANwzAMxDAM85zUjMzIyLwCyJzUPFDUQrENoZO5FakKWds/WK2+lkzNrdAK1oALuMAN3BAAZm3WF33RaEABQaDPX/3VpNAZC5vNYrwLzpAd9bmxWrE9iovQJ+HSe2y5a0GLgoMK29gT13BcpWAL0GABjS3UP33UFkAMR13UzdAMPIDZjSzFPLDU8gzVUT0MQbENC43OFcmTBEvCXLzPb90KuODaYx0AZY3W3EABAUABkYAWrc3RnoE42dwL4okdeS2JWBHHTCsILI0SH7DA08sWvxA6M50Jv7AThgANtwAM183Y2v3TkU0Mk/9d1OA9z97AA+O92Z3N2RMd2jxgw0AhQ9Trf6ddrSTcxfu80a0t1mR91mdN1rl9Fq/d2p/xIi/iDNnMfdQxo8xo0A6VvH5tElhNtQ0Mt2QhODNtPNugExaw08BgC9gNDdrt00Dt3ZR91JU9DM2QDaCd4kkN3kWdDUCh0AsN3y0buyNM315t37CN39yAC7Jd1tyQFmL92q8NGl9K4F+aedUxoxC5FcadRqqgEhBux26xCapA4dSE4RxeCjsNDYt9C0D95V9ODD5N2UZt2WZ+2SaO1KEN3sRwDfrqE58ACgecCTJElJ/JP6rNxat9428t5EEu2+JAAUAeAPiNC6ChDS7/8qVXUr/PwYDER9xX8QhyrritrBIfkLUNfApP3hbbYD6VmBM6fVxcDg0e7uVfzt0WkOokzuJFHdWujtSsDt5v7hOZIOdHvLWo3bKSqto2Ps27jQthXegooBayXew/DhpY8qW90Al3neTF5wt5uNeaC7nJfRLM4NJBzMBvITiqwHCbA+o7rdNaNbC2XpSQYduzHQChgQNFI9IGHh2t2IrRnhUy9LSTS+lEzMewDMuvDMu5rAEP4ctDDBdwdXmCQLYzcQuKfVzjRxaZ4LyCgNWRYdsUr+6hkQpivCUx6+ytOHI3XO9bC7lNy8dBvO/+zsu4jMsA3xAkv+luoYEghROl/wAAKAMMnAANLDvp5v4YaW3RojEN9FIz1UF88t7wVxG1zzu509vyJs/LtpzyH2AHDXHpuTDwb0EN3LVLv3BnNTHzNQ8A0YAWn5C8cq6LjIECFr0IPi8ayX4nQ++KHr8VqqDp9+7DXKvHWRvLJg/1H6ABGtD3t5wEU58JVS/EcQEAnoQJ030THI4yWj7uZVHrk6tGkWHP9jwaESPgZzwdjw6BXRHy1JjKWfvKqnDtzPABp3/Lfq/6fu/3eTD1rWz1b/EJqtCJoHB9NMEJNq/hkL9dEN+CkMHMzRwJwz4asgDSSM75pCeEXAEF7n3vgfzKodDK/p7yf68BedD6rS/4DP/xAVCA6UEsF91+5TK/06AQRr0/FliDwMD/GFf8AEGQ0WdpEhAYgXiRBEng9/nP/QsBEB9yqSJI8N9BhAkVLmTY0OFDiBElTqRY0eLFhACAAeCk0RZGkCFFivwE6tGjUydHrmTZ0iVIAR0ezKzx0uZNnDl17uTZ0+dPjLVgDR0K1OjRf0mULi0hUeBAVbkeIaVa1eq/UgA0dvx41evDkifFfiVLVkCfFALKrmXb1u1buBGJDuUU1+5CfkyTNI0oLhSUgqruDoZbamNHYKUIU93ESqzKxZElT6Zc2fLlhnNhKcZcNkMJOyVE85OYi9nAXJlydWad0zAoAFm7trb5TND/ydtTabM2A2L3b+DBg78a+qoUZ+FGM/ArwY95Bol5mAFWpTr59YmcNnJMjF2k2NybvC/u3RuEmfHp1a83Cou4ceTsb+7LUL/+PqcfohJcLT/9JY4CjM+/h37JLTcC2zoPBCusMKO3BCOUcEKG3IOFkwspZEmJffbh0EOJxHmqug80DC4rAAAEZTYTEfoFNwRb9AmEBWl8UAIGHgiAAQmsqLFGGYMUErMLN8twSItCUCIEJpVQIj+oDEISM2BAAVCrAVt88TYup/zJPDNw9PE8L8s0865SjMOwrjMhYtIAP/wIwY8Qn8oFiv7ajKwjAAHM0sRNuHxEEEH03Om8Bx80/3RRRqm6sJQ1G13IAAN6MKUHOCXSQD+CHslTUrj4vPJPDVkR9DZQbQIyVVZbZQlSWF9pdQdLTTFggEt3iCgvpTTQIAlX3bpk2BRjQ3JQZFENdllmm/3pQk6iZZPRHaqtFlcD+DDAlAGsrbYhJZZjTjRnySJ22EtIpXBQQmMs911447VIWk5emTbVSgfQF1OJkhDogw9CKVFeqrLqk6Nj23WXYIYblpfeaF2Ns1I46YxoU1XwjMpho4rt814Z2W1XN45LNrnVSyCWmEk556wzlIGsO5knj1NUd0KRCSV5Zp57LhNSeoNV0sknQ8zlaP58zinFPtNNWOFClZZ6ag0hBv85VSdDoGhTpDem2iV0ib3aRJGR/fpstNUDWlqeNTgtqkygSHulScJO+Wkuo557b75ZoxdSnpk5jTq5+8aI6abx1tlwxhtfjJOUOSllkrY5xXNnxyOysulLFCc0c9BDLyvyaDufWaCCpBI9InSZHlvDnJVdfXbae4I8ctNPFgjPuAWrnSHOh/Vc79+LN36klHHneXeCoMjk+ISCB8BzzKG3/nqHkr99+d4Lwh7xSyaZfsjYWcH+fPQVSnkSTurmOcqMn7/ebgAoJ7/dUwThI33+z2effeHNzFOPKIj8rLc5YtXNbgtkIAP5QCymTUKBDQzgW0wFtZzFDmobxKDCksX/QULxATL9I2Gw/jes1xFMFR9wHkFYMTDr2U18w5ogDSm4QK1YCROX2KFWbhg2uHCQDyA8FQg/WLaRJesxyHqEAUv4REmVbn0nu1NBCGg+7CHwh1vkIhdnCJdREFGMYyziqZRYxBFCUY2GAmDyTDadwDwCCqFAXxfteEcHAgguGiRjHzd4RkDqjHhrJGSZIKdA+zlMjoCBAgEbmb5JaHGBDwwbJdFlSRtaSYd2w+QlLFm/8bmFUKPIX/6GOESFobKDgkTiGZPoQUEWUpZlCh+6EsmwrsWxfxLkAyU7icc7YlKCoXxLSoioSliyC0Yj4+AH8wa1WUYTSYekYcM+kInA/1TnkdLkZje9+Za6IZJh2AQMAVXBinN+U53rZOdRwhfOW5brTuS8YiYI2E585lOfLQlnLePlqXMG9CRQKNw+DXpQhGZPgu98Vy5OkTFVEFCOBPxUQi16UX3C033NuhMBsWnOk2ARoyMl6TrhGT5mQQGdEWWpVOTou5LGVKaz7OdGW/VRh55Toi+daU99qsZ3+rNVnULnSiXKior+VKlLhd4D+9kq/ZxCpaygKlUfIVKmZlWrtTtpPBvlPFZA4RRhvU1Bt3pWtGauq67CTVvT+la4Gm4SfJCgBIN11YfGVa97PRtd67o/vgZWsIN1iVPDSVjEJlaxrFsoYBf7WMgu1samkaVsZS17WcxmVrOb5WxnPftZ0IZWtKMlbWlNe1rUpla1q2Vta137WtjGVrazpW1tbXtb3OZWt7vlbW99+1vgBle4wyVucY17XOQmV7nLZW5znftc6EZXutOlbnWte13sZle72+Vud737XfCGV7zjJW95zXte9KZXvetlb3vd+174xle+86Vvfe17X/zmV7/75W9//ftfAAdYwAMmcIENfGAEJ1jBC2Zwgx38YAhHWMITpnCFLXxhDGdYwxvmcIc9/OHIBAQAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okovsYHH4LQtwsmqWzSyySpYGIjJp1gsgyOqdSYyiRA7mIYJ0BewgeQSK545CWTLDnJJaCk+J8gSvIhX48+9tgLlj3COImNm8AY5pedEHYJk0+mieSaTaLZppVS8lcli/BtCaOWXG6SSi9bhlmjjT7aSNiaRxbKJptHFjlJnPrNSWWdenJ5J5eBwmjppbIIdmaiQBrKaZOgrskko/lRqeSj71FK6Za9YNJqoJUC/zkYqJ8eqqitcJJqn6O5ttdLpD120kuOP/pIY442EkvjoLR2ygeTTj5LKK263mfqiqi6tyWWmHhw2adHMtRsk9Xad62SdbqaSiebYOZmog2hWWi59fFa554+YiZquOJy2iu98M25Yp2s9ugukmg2dOu/ALsnyLkMq9eLM/j2oi/CTyrMJLQNy8finAQXfLCalyic5qgdw3dutr7yyerFG2csbswlp/wexBGnN7HIl9EsK0MbS2vzewK3eJkrYGISZphKY7LLJsoktXMszljc88mXlKLxk89a98kjgoCdySOPbGJ2Jl+jMnRCH1PJcmRPC5I0mEybLeMmL7pi1MQUV/+t75kb17zQyeRKtwnYZZMdduJkf2K342qvTdDDH9Mp2a83yq202Zvf/fQuu7jSyy6rEOXM6b3EIuRlT575JCcaoym4c2U/LMgmYR9OdtlfH/7J76Fs8rvkAlHudtsCJ698lbZ/DBcmk9yOidx1N2339aCD/skukQNV9empOIMZJ667Hi/ghdNO9uG3J677+5mY/fv8n4RS+trH52888m7rrz+vD2tL9eT2iM5dz2y/+lz28Ba61f2Eb86g2t9ipjWgoW9Rzfka4hbnvkf0bn0epN/vUMG97qWsf/xjXgqvlb8VfuwRa3Fc9KZnI+nR0Gl2c9rT8MbATbgCdK5QxAP/T0dEd9GsggsJnMyWgzvE7a6JjcNEJpT2iPgJD22bQMUIP+GKbRhjaC3EmQvDOEbnpeUTQCqg3KjnQW0kxBg/7OEPXUFHbQixJ+EjovguQ77WcQJ2Fiwfc3THBycuTngK0aLw6IeKVTTyiyesnPL61zwW2e6Sl7Qktt5WljVigg81hCFEVpG9ObpiGvfjiR5PN75JEIl8gEwi4IjEHEzuTpQPcQXkdOmKRoIDDTbDliaPl7xKQoySwqRcWjzpSQdGZBXboyMdV4GMnpxOFkXkoyu3GUuFtO4StFTO4h4Gtkl8gyKo0KUj15nKSJIRbM2Dp+3kSSV4FtJUyjzL1zw5/72L4IB706AjKqsZERfMYQ6FMIkzZKGNhe7RMuDkZjcT4kr0KScT5LxdAC2CAy2ycxW0kEgBFuCCKRAPIcPMGVg050mNhE4ZrlDGNJBxR4cUYg4GdYEXSrJQbTD0oZWJKCyR6E3yRVScikOcRoLRyEaClAMQKUAbptoGk560IPjkZFjipznobUQRpIOpMsb6EBW4oBAuyGlJGMpWoFIGluAE5/ngmhz25U4Q29iIK1bBV1qA9CE5KIBgB3vVglgyn2VhEdOUxhEcnHKsylhFTReigkJYFq0u4KkHfLrQ8f0xrhNFyOsqmpyM2o4jG3AqX1cBzIbkYAqwnYJgc1DYgf8cVqtguWE/O4KMVUwDsgRlSBwsYYkXeAGtOx2JB2SxWVlkio/g/GxoD8LNJRonbNhVaUX8ClJaeNchOWABC5jAgheM4AW1LR4mzfKJNS7tI65AhjKQYQxluAEhljiuF15gCRUM1xKXJYkHpuGBAj8Xon+UrsJead3iYBd3RuuIao1BC6giZAQFGMEU9pADKRAgB0yAbXr/gUntcqW9BXyvR1qgDGPgwBgtqCla5yAEgxZivyrgQhZ2rAIAJ1S5BTawZxPMiVc0BJZEmh1xIIxdXKJ2AxtowQY4YOF/jGCqC5jqCDTMAin4gAB0GAIXmLCHEWMywmPR6OF8+JGbHjT/rQWwrBfmTFz/xkHHWVBBJIzBBDxzwRGABvRHFOEBQuPAW3wkMidgceQEN3g4Y4v0J0y4kSm4oA2D1fCGx5uDHBCAAEP48hEE8IBTjCIANTgCHUA9hFa7mghgzKRZwja9MOntIxxoAQfcwGss+PrNab0xceOQBS6oIAtx6LEKBHzoIGOmFIpmNEMUreThXBJsoQAJGlqABipzIAYx6IK4F0BSwWqYCV4G85eZQNv0nnnWNJRbSCCLA2TgAAcxVkSvD4rQQvSXC1wYrhcsUZIgO5uP0P5jKaSdRCJXWzjXDhtI/OpdWiTDGDCe8re7IIQsF2AKL+gwAaTABCaMmMTr/+1kDXf7ERYro973boHM9f1rnAq7vyrwr0kwYHBEW+YV0W60o5FDQOxmAiQcWAWFjXFxKHf72+EWgpanwOkOnxzllzSLjdTYrpDQYqz3jrmu941QL/jXESrxAM8PbhlOJPyPDFdIdN0+3eBkVGxe7yvToazxjWd5BF2+OlZTTpYwaZSxIHGDfO0tdjdgIbMxwQAGcLB2zMAi6NN+e92BM09ai4SaS+f7tyEv+IS8uyxLI+AnRtKCe9/3JpKXfIEtT3e3xz0hRIY20bEbtqOLJBm02EAMSg+R05MFjYbH3VdiL3vMvOLy0C6FkaetaOQ84p7YJb5NjE+WAtaw611hvv/knR/9V5RCGEJPcHIwsUEnaz8m3B8L+2/kNK/EXhHjv8zzSyF96R8Z6Oq3e0nlfu/nEvEnFoe3dV5hAhjAgAxoebDAf+bnC/9HZKW1QRJXgDFBT2hGFjdEPV1hAopgAiRoAhAIC7BgfrXQENJngcnBOPCkgTAhT2CDFocnN5OweltRgg54gikICys4beZHd+LEQbkjgy7BgWnxJSyFCTqYFSaQBjyIGbWAglZIgQxxeUO4eRBHTogDfkiYEjTYgYW3cpuwIk94FVK4hiZ4GVVohbAgDUd2eZfHhcHRfrtDhmFIEkq4TCtHQ3iDFWkwiIRIhcJgha+AhQtBh0TIRNf/pjsEuIch0X56SBbUozlmIwjbYxWEWIhueIiwcIjN0BAp2H922IUYuD6UJokfQYlskWLutTRmQxWDSAJpEAVpgBm+UAuHKAy1oIgKgYi61xwP00Tj9Aljw4qTmFSVWBbeF4uCECOfgAnTEBUkcI3XmIuX4Qu+KAy+yAOkiILPd4rDMYC5U0AYhTbK2BGu2Ba/MglcJz1mUyNguBTYiI26KAy7yI0QQIrPh4LkOBztxX6QuGZlkwmZcGvreBF4CBfupWZLkwqfUCOfEDVKQQIikJEiQAK66AseuYv9mIWIeHvNwYwgBDZ2g5DgsJAVMYCRqBYv4n2bYz1M8yu9YJFG/6GRGokZFfCRHhmSi/iGKTgdq4A7BBk/T7QJaJM47cSSDeFEZEMX02iUS9M5SvMiPuRGRAEDMFAJXAkDCHAZPemTQBmMQhmE1HFL7nNA86OUTekWJxCXBEEGEwAGTdAEV6AAeakACuAECiAWNRCYNSAAAsAADECYgrkWatmMAtQ0N1KVZvM5eBNTQlEJNHCZNFAJF3AZEOAL0uCZvjADDWELtSCU2KEKioM7Brlm8TM/j/CWaRGXsikQZGCXeekEuLkCK+ANPJAN2bACYJECD9ABKTCYDCABhykAKdABw6kWavmScCE6OSSLMsInoJMK2YOTPNEADYAA3NkAm2kZEP9QAdJQAc1QAaLJEKRZhVW4HYdkNoyjlPKDCoukkGchm1RABbI5BrUJBnaJl3uJm06wAp7wl11RA8sZmAIgAWYgAYlgBQwQmMvZAcs0NruzF9rwK7LoKp6jQKAzDTjAEwiAABdQoiTKmZ5QASpaAVXQEN0IhCR5Hc/gfUj5RCI0P6gASV0hmzyanwkgBsMwChMwBgmQn1SQAAkwBmMgBmJABnQ5AXXpn1oBAjoAAiAgARJgBWtQBsiZAnwQAIVZBg9qBVlqBjpwpt2nln7hDFP5OXziOaOzC73wQ9pZExGAAKIQARHwBXjKmRDwpytQAXrgorwIo+CxCrzzO4vUlov/lEXpVBb4WaRxyZ9Q+p8AGqB96QRegaDFWQPHCaESsAaHyakPUANoYaEXChjasAs1IqcJFKfZ00B1+hJ6qqdfEAFncAa3WqsRQBkz8KfAOqgM0Y2liZbgsQ1l4zv0s6gjlEVkwaNymQATcJdXcJu4SQkroA/64A3ZMAxfwZzEaZxYOqrM+QBBQKFngarJSBiuuiWxqj2hEz722RK8uqdfcAYNcAN7yquT8au/+qc/0BDc6IuleR5KmTg3mjZZ9AnB9RU8Ope2eZsKgK282a3XEJwpUJyEyQCBoJzL+QDm+gBoUUW3hBhyigk/9K7vGkQyEQEXoK97egGicBl6MAMz/1AFNhuwDEEMvEiw6jGNjiM/CSs8DdsWK9CbvemtaDGh5hoEInsWJGuhivFP1vmuq7oLp6OVMDGiJtqnlvEDVRC2YasGAjuwBesVZDMKyXQKgjAKD8O2h8UiitN518aBt8UHbFuDW4EKWOQ4IqRFn5BXb8EDSHsNSnsWHcCckRAETjuyCImQ0EkYyoCd2Kmyu6AN2hCiL/Gd3tkAmKEGVfADejC6DlC2+riLXQG3zXNmrNu6rnt3vEe3rMAKXIGokBNCzBq4brECw5C0FpAWihsEKIACT2sWVfS4kWsYcsqq7+oMq5oKL3EBNNAAlxmWl6EGP5C92Vu6DAGa+misWf9hWq87vuRLt5h0Ckn1FX7bqCJUj2hBuMNgsWnxAIsrvBRQvGXxuI8rGZO7C7EwOs5wuc4wDb0wWSrhnTRgvZfhAGrQwA28BQ3xmT7JFWxbvuRLibZTwWfGgZekCmCxC4oqtH4LCiupFjwwDCg8DL+LFow7vBRwv46LkKHge5LhASk7MVjLN1p7HA7Qwz4MwQwhwR/JFbdVvhyMOOjLCorDCoLAxHnLQRh4gLX7O7jrt7qbFiecwhfLwi78wpFwqjO8v5UxDc+7vAK8w8WxBT2sxg7wBA1BnhO8FXErCKpLTkwMT3iYwXScx164O0psx7ZEFq7wOMIzn1icwsSwwmf/0cUvHARgLMM0XBlYO8kC7AoHVhxPsAVPkMlbgAQC2wxxrBVF/AinAAWmDAWqwAqpfMqmnMqsgMqwrAqonAtQMLuyfMuqnAuqoMupLL7JuxWq0JZ++wjORBZZnMiKbBYo8MIvHACOnK6hMMMznBkBHD47E8DVaBxIgARPsM1PAAdvLMTAiBVzfAoqgVHXdhbbcD2O05pnccyJnBbNHAAUEAAoAMbSHMmXQcBy6gyucDqaSxxwgARwUNBwcADhHMrhu7oenBKqwHt6m66FbDe/sIpgkcIWkNHyHAABwA0dfc9nEc2ZINKcEafO67yxYMDAcQAsrQVawNINkaIeSQzj/3wVRQwF59zETaYWqxkmqjCvOUEJ6ZDRtmABxJDCKMwDvImtuqmbA5qbT93UunnC2XDCyJzRyewTfHu8qpAJXR3NYA3WpDDWrVDWZs0NuMANHs3RbE3Pa73WuADSZjHSYd0Z2eO8ExMLxeHSQNDXLt0Q56nQ5Ey3KvEwd5yBZ3Q9oYB4O3ENsFDUFhANFnANk30N3tAMzUC4zeANR9vZUt3UPHC0hFvVGI3VGg0UM6zKx6u/+ivWY03WZl3WuDDbs63WHo3Wal3bcY0WYR3NnsEnGVo12qDXw2EE+PAGNvAGfS0DDIGzwFoBXHFmtJsSOp2+ivk7t6OUv7ATniDZ3v+N1Yk8DEc9DJit1IRLuJ0d2rrJmxWbxShs1Kad1TyxO5HG2o8rzWH92qTQCvsd27Sd1mj937PdCnJdFqFACtGM4J+BtQEcwHa0GzIQ4RIuA8gNBHDABwcABMk94RJOEEawyZwMxFpxZjjt0Eps3Yp5PewnuDghDKUQ2bYg2eBNDEdNDM1A3jee2ee94+1N2hh91RYQ40ABuWRj361N166t3/wd263w303+5LhQ1mlx4K+dbZ/R4BOTCsT9GxGu4Tbg5UDA3AuRvXogtlwxhr/sEZlw4kolQL8An2GiEzAeDTE+44k83jlO3np+45d94+6NwjRO48KA1UUNnD+Bmrf/ZKH1HcZInuBUrt/97d9lbQ2yvd8UkBaQTgqg4QH9nDq74HO/oQXGjQ9AYARGENPSkOoeeeadV+Io8QgPzeZugayZ+Am/kIY1YQHQAAvQYAu9TucybrjEYLgp3K3FfsJ/jtQWIN6EbgHeEBTqSjaMft9hjN9U/uj7HelmTelmTQoerRbZ/tqhEUH9HD7C8dKiju4JLcGsbjuqrBKqgOgn/hZTpApwnhO+bgvAYAuwQAynSt9RCRn9ne2hgQOpwze7oNK7wdIsXdCnzhBwPMRbQYOncApj08RKrMonrsrxjsqvHO+rTMcf8BCp/AiyTu+bw8TUgBO2YAulsOu2gH7p/5roVv4YuBDpmh4a2MkqEhQcA73NCP3GPlnTVkHHpjW72JXxgoCaTA/rIP/08f4IUJALDkHLsK44cKGanMOYLhENu14KLU/0YYHoV6/PjBHlst0KouEBLhM+0CscB4AEQZ/QEq8VqlDBeQjrs7v3qQzyTg/1T+/VDc0QV4/oXF8W2FA2BDn4NeHy+24LtxAN/042qOnqjtHktK32orEnfGIw1DGWdZ8VuWD0e+/He6/aJBvLIA8Fgv/0I88QY4P6aV54awYKs68SpQAMt6DvLY8WZL/0Zr8YaT38uDAaBMz52Twd4iz2VfGcJs/mu9Px8e7V1N/68c7LjJ8QuSD1sP8uCMGvFqCgCtEjCFFyEy5vAbpfCpI/87eU/YwRAADe0aThAbFg7tWx/F6hyt4PlX0PEJkyqSKoaiDBXKqghDKYMJfDfxElTpQY6hGUR6oePaLY0eNHkCFFjiRZ0uREVZgEYTrZ0mVHTrZKlQJWKtpLnDl16tS4cWOmnUGFDiWKM8DRANwCFGXa1OlTqFGlTqVa9aU0X1l91bLa1eu/D1CYPXxIEqNGtF/VrmX7z9YtmjOvtaUrMpNPVYKA1uVLlwI3CgH+9iVc2PBhxIlFas3KVfFjih8+kM31gWSujBpZqYLcOTEsaDNr3vT8tacgVndLr8ZJwfVr1rFlz6ZdWKv/sFq+aheW/HCy5ZFQBmbcvNt41JlxbR5/ulEQXubHUbx2Hd36dezZI271JQy39q+Sf1e+jPkgK/DpS8atCcyWep7Pn2+EXxrFfRSLUNTn399/161wq8Wx/5wSRzzxSPrAoILQK5A/9mh670GSnPOJIwoNC2LD+4LI8EMQQ/xoq1oEFFEoDRD8QAOSxDkosxOz46QmmjiBJsaOWHlkvkf2wnGtByKJJMhIfjTySO1wEwaWWmBB0iV6UpSSxZFyySQhVYp7cjdbAJixFBuf3HFHHQXZsisBHlDzgRrOdPNNzwSEZU44R8pDgzs10JMkDUKBoiDO6mStxpoAmPDIMsfE/1BQqAToowYBGJV00rVsaXJOJymlKAk89dQgCQVVwZIgTSGrEUxDxRzzFPpKdfVVWB+zFNNMX7UjiTtxBXWkBUcNNNbCavQyVSR9EuSU54AVCgQzlHX22ZFopRPWEpKwFlc7+BRVOFKhrYsmAC7hBIBajdRIEHRb9fYkM5gFgdl1431W2nJLLaHaa7Pl9SFA5WXrEmDG9bKUJxOdz1+S3mXWinZBQPhhTaV9JVZ+7rW4hPJy+bNbiK0qZdhwCUYyUVb56Hgihd81wwwJauiAgZUVbvdkmpGkN9Z9+NG54gwU5LegmqlaJlwASrlE5CPzkk/doN1llgEBEtHB3aCr/v9RWk5iVSKDfTLwuueRxFEIoV+tdmrcS8I9Wsylmba63alnNntuEWHhBNOsYVVi73263sdnX+l2Chii00bayEdYSTdZwWN2WHDIKYTlFVhKsTtWP0LQXIl9lPB5Y44jF0rgtNcuFt2lRVd99f4mL+UVMGM1YPbMlQgBcIR8ZD2nS0ApvWgxQUHd7d2LN74212HP21UDejBlgB4M0LxFjaHQuOzjT7oFgMIBYHtxULIXf/zS7DZ/eUp36MH5HvwwxZT1ScrA2jxwpZL8kgAARW3gi0X2WNTgT4AD7MvrDIg+Se0AegMYgB868LweDGAHI8mAHUpwqyToi4Ah4d4lPGj/uiM94n+s2sQGTXjCqpzvcqXqQQiaN4D3Na8keaiMQqyHwo+U7oOH+9Ej+JAuZOFQiEMcCieMyInYuSpzfpidDEsymVGFgogTMdoH0/a94U1Ri1tczyuM6EVYaY6JpjiJBkRFkBtu0YMAmAQbeYgj1AmCDzviYh3tSJEjcgKMVfsAMzaWRi2CwndrRCCOfBhHk91RkVzMoxGtlgs/EYQVUlSjID4IAD58MJOXtGInPZjJwl2ijZ604iQ+eQlLvpEwO0Ikun4YR1guLo6spOV8FsdKHskHdYvkpbPymMSa9TETG9MYFzvJB7WtUYektGK4MHGJZ4bLd8nsHTPT1sbE/+AyXa9c2vBgqc1uflObzkEdNxnXS3SW6peFfJgGHmK9gThoi6Y0pTXteU98MpONiHnEKGL5T4AGVKDgBGg6DUopcRkRmB0TBxSsl5BhYm+K+aRoRe+pv2wKVKMbjSVBO5rIg4YUTo28BM0k81CCZOSOkziFFS1pxU1q8pgfHKQ1MVlTa2aUowDF5ThnqctwypKOIiXqmUh6MiiSZVuLZGZMLepBesq0nsw0JR9u8Rig7nRM3uSoT2NZVLA+qZHs9BYNk3rGRYVVrWtlq2ESasSSIqyPSlVIWdp6V7zmtSsJFVdc45WED5CihvwCpF4Ne1jE7oSvppSXeKx3Rj8xI/+xk6VsZUWyWL8+azLMGItDhEMey4ZWtJSdBCegmllgbfahSvXTaF37Wr2W9oOTcJYGVuuQhPxJsrDlbW/BKltx0TZWJ+3sz660W98mV7noNO1sY/UQhtDVSqBdbnWta8xOwsq2jxWVxnJ7XfCGd4hW5IRwXQVFlDZEvOtlLwHJi1pNpbQgwGlvfe1rPFGeFljVo+R9/fvfyHkSwAMmcIGLQk96GljBC2bwSMoL1QZHWMISxuaELXxhDGdYwxvmcIc9/GEQh1jEIyZxiU18YhSnWMUrZnGLXfxiGMdYxjOmcY1tfGMc51jHO+Zxj338YyAHWchDJnKRjXxkJCdZyUt6ZnKTnfxkKEdZylOmcpWtfGUsZ1nLW+Zyl738ZTCHWcxjJnOZzXxmNKdZzWtmc5vd/GY4x1nOc6Zzne18ZzznWc975nOf/fxnQAda0IMmdKENfWhEJ1rRi2Z0ox39aEhHWtKTpnSlLX1pTGda05vmdKc9/WlQhzo2AQEAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okovsbHivR9ksokmMSISSozYgLjjS++iEknMxo2ySSX8DEJH5f8KOSRPw4ZpJAp/rfik/KlskuMqdBYI41WwojJJjLK2AlhRa44pJhIGjnkmUTy0WR/T64oCHy91BhnL1ViMqedeNJ4Y42YEDbmmG0uSeaTSxa5pn5utgmnnVhW6Wijj+oZI489BgbkkW1m+iSam6p5KH6CtBkqfFheOaOjp5ZqZZepDGZkm0qm/xlkkJxu+il+mY76Hp1xprJJnajSSGmMMGI5iZ+Y8jGKkq+iSWunt96Xq6fu8TrjJtNc9qyYDJF5ZrT2hZopnKnQWS5mz37bLZLUgivftOTy2uplzvJRSkN/MunufPC+t0u5vGJ2JpA/4hvmkPvOJ4i4fOhaLcDn0ivkpccyhGbBCcfX8JMOt/dvLwFLbGbFCyWZZMbxMbxxvCFbluTEl+BrMskot6cyi7uC7EzELptJJL4TY1xze5q2S9mUm3CZ9JYxfpL0Lknp3EssvQjMbswWm2x0dJ9kIojTjyStypaZfPLIKkMnVHRlu2wiiNJwx530Jm2jjREWQrigEsi9OP8DstXOymzydE6/Hfbhm5T9yeKMOx1MRgssUECIC4s62SZ8cInJ21suPXcvSX+yy+iju2KRG6i7oTdKfbceC2Zl/pz1y9Fl8oggm9+O+NyhN47KLotbJEQXeLcB4sai5npz0cyHKu6bb9nI9OZMa8773KRnb7pEQqCOtxCFoOS3M36/LvKlWJesNXSC6H77Jo/Ej7jTjfv+CSqPS9TG8JEvMMKHyNPUwp7nvI0V8IABdJO42qK5R2CCDzF6m+eutwnRZY90rvgE99wgBLzNYQ7iIx/5zNezH9GqIRM7knM+0b6Gta99u5tb/eqHik+4In8QWYAQFuCCNrhgch5KlAD/p4VA5iXvgGsxm5ZwtznNUW8XDuzaltpGxdIBzxWKgEghhCCED87BBV44yfhEKLAioa8hRXpWc9x2u4XFDxOHc2AmMDHHxVXwfmVzRQ31+IlttAAiI1hAG9pQgAKM4AUAvFkBiZjAIT7PgFsji9smwUTqwW90CUFGBulGt9KhYhWu+OND8uaCH7ogfCYZI/nKSDAgoTCNCFsO/B7hwttN4naZQIVCani/xWVwFZ8ExwYgQsgRjGAKyCRAECu3PCM6c1rIgx5aMoc7COYuIqvYhCu0qU1XTEMZbnhIIX5YiEJ4oRAqSKUIV0kvM6ZRZrBkTvwG+EJpOmQViwPmJz+5/woOPOQFx2QBE5jAghx8qHIKNKDzFkrPASqUnkdMS8MoGUFMQG0iqHCFRjW6CmUgQ4vmtIRILaHOdQosSe+0GCzThxw+tFF+X6OIPvW4iprazSFTKCgBCCAFFfiAcgt1qZtoKa7bCbVhRF2RUWkZQHuSxYG4q+RFcLALV4DSm9P4qEO88AJLxIELcVBBHEqyTnZahhMoFZpCgBTP5DyjjTB0qkRiQAtjbMCuG0CDPxviAylIwQcEOAJgCTCEtCHkkXIVS6io9zaNrAIZyMBBCyQLwoZwQQVcyEIcNBsHR5DEGdognzZkcdJWsjQhBEspcuJnOztmZARd2GHkBjmFgv8M4ba4vS1gjyCAADwiBYGggw9yi1siFLZmCDyL0zrHpY0U4nsfLGVBHEFdRxChulm4bB9WMQln9IEJma2ueD2rERyY97wnhSUn0JjaSAonaW5cmAY1Qou6GsMYLUCDQ/o62CH09KeGNYhC3fsVl1Z0ExyZrHmNIVksOCQOm83sZblAEllY2BkWZmUaT4sQIpmQwMCJrwMfwZEN2HQV9d0rQ3oqBQLkgAlTMGiACzLgszRxczRz7C5qqgxl0OLBlhBrHCzhBZKOxAPamIYsQqvhSxiKIWYkWHJe2EaPnJgWq1CHQ6SwBxZ4eQqHnDGNg2oWFrqNeh9ZxTS82dEsIqT/AKUsZ5Et8YJzolIkFl6yB5zRZFdCOa3JOYXu2vcRWlh1FcZYRT4SUkhCGtILYB5BIcVMEBdWzixn3hLuPjKNjnYUsgOZAxbcwAHvRfeU5iznOEniASWPlrTtZOuTF+Lk1K52gFW2MpZRXF+CxCAfHMhHDLoQuR4W8tg+pPRALN0xxcrIbQj2iCK82WOPRlayimiBIryHheiO89tzuHNIkExubWgYSPf684aRQ09cgoSf9b2rOuyqVw5wYNh4m20P27CAORhP2f9gNoi5srAYcemiHmFztRl83hZwYNtuwEK3vVjKD4obJB4gtyw8gC5OFMnj62UIWttqnHYLIhMg/9k1r5Nx3w3k1d75yEcXZi5bHUYOiMoWuFmiimaQdNQVPb62ZFug7RakTuIT9+LFMa6NjE+D49oaOVpDXrIN53g4DSV0mm1Ki2TU1eUut3ewY0D24XFxAVj4N8B1XhaexygkOOh0tSHbcG0rAuIRn/jSx53xvmNm5JMAORqtzm5ca90jJq4vr++L1w2IfezD7qLaAf6Phg58K26Pts+1EXQcRJbhOMh2xMPNkr77/TJTD3zg8eVxtha+nihPeU3ra995u5wRjo+BEHBO+YJY3ixQNbjmpa0MVyAj6JDVdmVhYvqM/z3wlxC8xaR+deEY/uQiQfHsjUELd7hcCL1vSP/Wgd+lCo4EBx51s02aD3XLRP/9nKD6WlvvcXbD9XYjMYY7jKHi8D/k92XxCZPAJVH1FX2HA86HetAnfQtBf35mHETlRhzmfzIBgG3nQJjTJ17hARiAAxiQgGcFf9HHeqo3gdZHT7FHgTUxfjvnQE+0gR/4ge1XGSAXfyMIZSD3gCXnUoOmgivoUIkFFm9TSSTWFTHYgRiAGaUQf0yYbrRmgzpYHCZXhD5YgRCFFkzERMOXFUiIAR/4d0wYf6/QEGEYf8oRV7lWhTDBgsDngjHCB/OlFV44h0mIemFYCmMocmV4hvEFR1Sohi3BhmYBI0x0SwiHFXTohWAYhrBAhmH/aILD8VIDtIWAmBImlxaZFiNQJYcmgAGdWIdnVYa1gEZ3uBynQGX1VIksIYg7V1FDaCdYYQImoAidaAJ/t4TxVwqNqIe5CImR2G668wuqaImGtxa4c2Y8JwjmVhWy2Iy2iHq4yAm66Ii5KH/JgVTAyAfbMIwmwYo2loxdMiVUkQbO+IyW8QpLmI672IC4uITOIWL15DZxyI0gcYls4Xa440ADGCPZAhXkmAb/iBnoKI2cAAvrqBAESZDPcX/tI4+YwAqC8Az0+BGDtjBu4QqCcEtdspFv5xQAaQIAmQZKCAulkI6jyBB4GIbQwUI8CD8uiTiZsI0TqRGoGIRYaHAc/4mTXNKPSRGSIYkZJEmS6CgM1MiE0gFXswQ/+QhHdCQPM3kRg4Z/cNE2Gsk5HBknMaIMSJEGJBAFXimSl2GQQckJvtAQr7CH0vEJ1PSSEgQ/cJQ4Z/OUE0FlUikX0pOTMgIyTbOMQ0ECfumXUQCUYgkLZNkQS0iY7lgdaDg3YZM0chQjmXCIZ3EClFkQEwAGTdAEV3AFCqAATuCZlLACnrAClOAJ3rACXFEDqikAAsAADMCaqpkCHdABD/AAkRAEKBAJaxGVNtkWn2BJORk3FsWXP/GXfymYg1mWDEGYJGmG13FyusNG0LY7mbAJobA9ZUGZ2jkQE6CZnekETrACK//AA6eZDcOQDRZwDRawnrYwDFkxmx2QAgIQCAwgAa9ZA7L5AEGAmxTQnwFAAWoBU3VZF67AkU7EKJsQJ6TDkzwhAg7qoCSAnGKpnAthkLronNixDYbjmC65oRuaNDf1FdpJBSSqnWJwmZipmZz5nU5ACeG5At7AA9nAA8QwDDxwFTUQnzXQmlZQBhKgAxIgAPiZn/qJmyhAASiQFvIzT3tRoJswgKBjKqADMrvQC1XVEw4KAw+KAJdRC7WQnA3BnM3ZHbswR9B2jBwqQxWUCeBwFdr5piSaAGPQBHwABmOQACRKBQkgp2MgBmJABoA6ASgKBim6mZupAFIBAjqgqGb/IAFWsAaJYJ81QAGC0AH1WQZrYAX2+ZpCGpsMgBZLOqB6MQ15iSd3oqBV6gqpoJU5AQMwUAmV4KpcahleapC2AAvSEKYWmpje8Qy245JpGqyf8Ayh0BUjiqcmKqiEipmG2pksGpriqQ8x6g04mgIpsKMMAKQSEKmwKZu0WZu3iZsdAKowJKp84QxTYi6+kqAJSjpWmgoMShOVQAM00AA0UAkXcBm+YAtf+qXNoKtjOR6ucDtvuSVOo6a/8JvYYKxvKhBjwKzOCp6h6Qn6oA/ZcLHoaQvpaQHAgBXwia0SYJ9Cmp/h6p8UEADckKRn4T7xUxiaMydVGrOpKiW7oH4y/9EADYAACICz+WoZvuCltSAMsEChCjGYhHkeSfk2Bxs6j2A2ZtOmWdGwBNGd3umZ4fmi3tAMzTAMwrCe6wkNWWGtq9magTCys2mbQdCfJxsA/wmqoYoYT0M3Viq3Vso3u4ADM4EAF3ABonABCCAK+vqzwiAMtVABAGuQ1lgeZkZBjck74xAXXmsBtgC2aHGkbMu2ALqyb6sYqso3clulddsLxNkSEcC3ERABX8C3gfuzviAMEHC4R+sVRvVQHMNMC3OKCoRQDOVCA+ZQLsQV1cmYwGpH2gQXkSu5aWG5bMsNmduGS9oYyvAvUiIlfbMLIvR0KnG62nu6N3AGgyAK2/+7vZHhC+Rbvq+7nIOZuFdxihDFUFmXdcz2vvIrv6fIFdvAQphgNqoArL3jFpE7uWnhn5fbvGURqn/IGOkKMFY6OqmgDZJ5Etp7AxHABmeAul9wupUhDeVLvudboV8qll0RX/M7wiQ8wnCFazjTFW/1kjK0v/OYFsfrhGaxtiiLCwT8VJsLGc5ANwpsve+KtysRAX97wX0LuJZRAb6gwRzcEPw6mFzBviU8v/EbxSV8wFvRC4+QCaAQP7wzR+ewFusZDewZwGyLC2Z8w2OxpLZDGdPAwKD7L9Y7uieRs3u7s0ZcGRAgDRUgDRo8A0z8wV/KFVNMxYRcyA4lFmazCb//wDu/EDbCCMMWIMYWIMNlcblm3ApoLBa287yVga7aoMA6E68mgbOkTAN3TBkQUAEV0Ayq7McMQbgffJBY0b7yC5GCdstwdYq6c4pQHMUnbJFj8QmLvCXzI5FoEcYaS8lkEQC4EACtgAuY7La2s8aXUbd+0zflIsok0QDzSq80gBkQkMoVkMp60BCwDAuBjHkN9QiswAqnAAXwDAWsoArzrAr2DAX0bM/6PM/83M79zM76rAqPoAq97EZm0cgcyjnGbBYWAA0NbQvKPBY13AoUnclhMc1ZbMWTQVUgkwrjswvaPBI04KqVMKuWMQPhnNI/0BA/268nqRUNdQqgoBKj/1BPwFwW23CmjvkLj1wWxAANYmwLHYsWzEzRrUAKFg0W05wJ1JwZoOs6uzCDo0wDJn3SKR3OK80QguulRKnOAyRoKvHLGi0WwsslTWsWGhsNtiDUaeHMFE0KSI0WS83UnME32DwNvQCKwlEFKD0Dfq0GLM3VXvrE9HQKAKASULDOauGHnQMKmVAHPuEE3jCjMcoD4nnZmL0CV5vZ48kDMjoMoD0M/2sL0QANaz3UQAEOzMDUodDaoQDXsA3XRo0L3HC5KEsBzGvbtm3Gl3zURx0Acs3Uwt0ZVTo+DSzHv6EHM1AFzF0FWb0QrBu0L50VJqcKKpF1Yz0WLrnIv7AlPf/hDcPgCzY6DM3AA81gmqTJ2ZfNA57g2TwQ2qB9DfK9sWIMDbBg2reA2j7BDKHwCK3N2q5NCq/92rL9zM/MDc3MDbWt4AyO4M0MzUYN20n9FZkQCsKdgpthpTvjN9ZLHD/A3HrA3ICt1a3butONFRAZX1Bw3QXNFnT0C4KwyJvgizGxAhYgDNcA2uBNnuQJoz5u2T5e2Z69tfE9DOoZuWqt1qYNDRGtE99w4QDu2q0d20ZN0byN4ArOzA7O2xBO0aFw1Nwg1xZe4Ri+GVRDJxuu17+hBj/wA3rg5iMO3eVbC0SLFbncsinxCC1+j4qMCb8ACqogkzjhCcSgnjme49P/yuPT6g2JXtnkXeRHfrxKPrmlAAyU6xOtkNEXLuVTTuCk4NuzzeWi3tsRHttpMeZjDhpoLiWgNRxqwOZs/gMO0BBK3NJckcuCYN15vudssQmsMMybMNM5Ido5bgGF/uhEbp7uPaPv/d6gXaPEQAw37rVrXe1r3dDAAAzu+ROkAOUVzumdHtukwAxVXuUQ3tufHtuv3QqnTuYWDhqhxTexkApS3RsOoAb3/upbQOsbfOJXUdh6rhJ80MvZXRbDDOONPC83Ie3raeTRLu0Xe56hrezjDd/EvrHsmdaTCw3AUArtGRT9vemq8O2cLu4FXu4UbQ1vHeG+/em4oBYk/+6q/0696MpnweEAOJ/zT9AQe7zBBPfVA60S7nzC0YMJY6PIlDgTw2ALR57jaBHyFe7fkRHzxQoaHvAx5NMJ9b4bW9D1Xe8AO88QPV++P387qiAIW3w7p+DPay8//MzO7DzP8SNo+PwQen5/cPEIoMAlMP7AMkEMGrux1/D0mp5LkTHgri0arJ4KsdDhwPEEkB/5SMDzY1/n/+5GKc4KLKv5nA/3nf/57SwI8+wQBE300fMICL1pN6HxDY8WqFD4Zc4YAy7gVW/1VTI1dBIcSLD7vA8HPF/rlm8VZ+/28iPQ9iz3At3O+TzQzM/5rJAJ9dsQd49rcLEN+6j3Be8SGgsLkv8bDcRA+Bj9wrKv7qNRJc4w7yTkG3AABwfQ/uzfEBDgC0hMvlwBBc0P9/Hjz/VswPwPEKoesRqoKtc/hAkVJmQlqKEgiAslTqRY0eJFjBk1bkwIChNEUI84jiS5EBYsC9FsRRtW0uVLmDBDPaKZ6VGmmDl17uTpktRPoD2FDiVaNKOzXp16OdNm1OlTqFFJHtCixYgWqhkrNPMlratUsBwdCqJJkxXBsjRVqWLF1m1buIIEElybMZegUxDJhuVblNojUJs89tVIrFTKlS0JL+Zos+ajT4wlT55IqhVQUpQ1bx7pIRVSzqFFS7WKzwY+I0a0Vujqy9fosFAeyRV4SqD/zduPBK7lzbssK9yPoGSU/XA2bOQJd2H6JSi5hZWHowlLPnmmzUzZq2/vadl7Zu7hxY8nr1mGDCA2bBhRD0QGxh8/9MyvUh75h928M54aSHavfQD5QqkUW1ayJUCosLvpJgQblOiyViJsxUEKK7SwvPMyPO+0AyY5wDQNNVTIiCee2OLELS6UDIpMeGPlIIwgamg2kVS08SULLCgFmsMOvFEnBbH70T5cLGsFlwmHVHJJJp8yAp83bHgDCPcwmmEGCLJspsmoSMkECt5gvMgs/2rk8kyESikFGAJtsQDNkRxbECc4kePmyFburHNPPvu8ikogrMoIggq8cq1PoT74/zLMjObi7z9Eh7RFTTULjNSimR6j81LKAsgTF25w4XRUUh00giqsDgBCq2YMfa3Ul3JRBcy1xLSIP4L4MxNWCtmk1FJeEZJTyGD7CgDUUAModllmOdMCjgOyYtXVZjdiZlZGMWJrIBqrDZATSku5BZZlh6XJ26gCUFddbtB1912nrlJNI1+4cu1VeCf6IJdcaLW1Im4JgjTf7Sb9tZRyyxJoV4J5omDdhxuWeGKnCqWWYoSY4dcgg+wKeGCMQzP412XTykSQTUOGiQKWWVZWZZhj3qjee/GlWAON+eU3I4LO6lbmzWwBoJShDys5LQaBLokCFFhuWmmoo/6nK69qsf95Yg321flfimrjlmGpBSR6aAB8DFYVsspKOeyLUHD7bbbjxrg1X4S5WuKst/6g0YDPlZsvNQEYGhizeaXJP5v+vugBFIJwOxLFI3/XF2LqPjTkvHPZd29t0ZpRcqmI5kRwNY+m0W/QJXogkkgeqCF12Iu9Vxi7Vc76A9xxzyiTnn+OvahLyAaAzaPLBDv2FFIQ4HfmSXWN9lqow/z23Pn2GeTmdxKddISLLSvt47MXf3w4rYa+FpWToF53bQcSOHzySxo7eFAKh/Xw0+PXf38mzY8e/ZCV4AMauJ0G7OIztPAvJqUIHveKlz/xgcAMCqSgjawWPVsAEGN2IGDWCEj/HPeppYIuGV3wLlE679EobeIzgxlAIMERxhBBvvgfLDRIsSTkoYMf7Fzv4CdDipgweOAy3Wywl7oXSjCJQGSieHxhQyiGjB9JoGIHk2A9tKiiiRoR3CW8ODTT4QV1oHuhC0FQBgHUQAJmdOEW3SgaYdSiFichF8X4UQIqqo+AJcjIB9yXwDdapIRe9OIDIfJDtpXxhVZIYxnYCIJARnIyUKTjxPyQgQyUAI9VzINGbOIz3UiSIoP0YveCpcIVNg8EOtBBEiEpSlgSBhbCoGMd89UDPyhhHxngxx3zkMONFOdrsVyIEIdYMr3oJXsuZCMxnQmWV9CykvAyhQEM4IcQ/+gyk3jk40ZkBZdQPvMfDPziCZGZTOew8JXiZKdR5niSV9jSW9XsgSlM0QMDZHMfd8zASHIxEF2tLZbGnIQpDYdORLZTobCs5UncNYAe9ACiBrCnNUMQAj+QhIC5Y98ziUZIAFzinP7hw0JN2k5YxDOlBl3WDnYA0QGYwg8okOg9KVqSKm7UgOIERUjLSUigBtWLkwDpUIV6VC/yYRR8uAQfnMoHoibHiCSdDR/QidAyXVWrV50qRKyaypOGFWYphQUnYMFSZuXTABKN6TVD4JIPEAQKpwAO12CJVLx+saeguAQmLsHXnhrTp0EdxWCD6lfkILSrW80q+PCXFsf6R/8vRuxqQsV62Wqt9KzyrNZF/WBNa/bAJaH4p24E1s5UXIKoeWVta11LSKKmUzSLZWxtt4pK22IVs7ttmGZLwdlm5ROja33Jl2xjlnCy87XLZe5R+QAAUCQ2t9Olrm1pVFLeZtddZAUXJyS3qLXIhRWnWOhzVdvU8+J1tXxlbUgBm1SgGjakTE3sI76K1cpSd7H5ze8htfvfapXiFaXgRIEjBwVZtUg3AjmpUFfb2tUylanwbaphCcnUB0N1EpOIbnIkK4j73he3tL1tdZUJYBQXq6wDNrDc8tAi3yg4xTOmcY2RI2ACE1huzAgFmBYMFxsHWchDFlB3Wyy1JOQiFL3/WQuLiPxkKEd5JwWmsneltq9ZySbBp2CGlL38ZTBfRMBVjprW+iWrWQ3ErmFmc5uJXOUjx0wDqtAYgtGsii+5Wc97fjOcZZaHrckKzWBaM58NfWjMwlmkttuc5gTNG4EiWtKTNikAqrxojOGOGWYWdCY0R2lQh1qhl6BySEOWhA9AgdNnHo6oXf1qWHKC1AXG9MSSoGqdaSwTnIN1r33dxFnTWmVQuBbHCv1rZCd7fEMUtsr4tWtlR1va8Qu2rKd9bWxnuyecAAWtraxtcIdb3BaBxSRk/e1xp1vd4ib1ut39bnjHW97zpne97X1vfOdb3/vmd7/9/W+AB1zgAyd4pMENfnCEJ1zhC2d4wx3+cIhHXOITp3jFLX5xjGdc4xvneMc9/nGQh1zkIyd5yU1+cpSnXOUrZ3nLXf5ymMdc5jOnec1tfnOc51znO+d5z33+c6AHXehDJ3rRjX50pCdd6UtnetOd/nSoR13qU6d61a1+daxnXetb53rXvf51sIdd7GMne9nNfna0p13ta2d7293+drjHXe5zp3vd7X53vOfdPgEBACH5BAkEAP8ALAAAAADUA9wAAAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MOL/x9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKL4mCB+C0LcLJpNskgomvcA444yYzDhJjpjASONhfFzCx5BEEjlJkUMeOUmK/w25Ih/y9bJJjzjy2COPVfZYY49LDnZkkkiGKWaXTO6HZIvv7TLJjFPWOKWMcGIypY87XtkJYWF++aWYRQpZpn5iwuemnFhSWWiWXPYYi2B8Ntron/k9WSR8PcJZ5ZuEXqmplpjcyaijoE4K6X2BvufmjamgqmmdhnJJZmB87P9pZKx8ConkqKSGKSiNqW4yzWWlKhQsrvNJSiR8MvbSK2a0DuknQ7oSS9+wurkwB0zJ3sjsrFBCe+t+BRRwIrW4YaGIG1i44JKMN26yrawNRZvfAl3UKy6JZ3armxBuoOuGEIW0pCyPvTCr5LHegqkfvVgIIcQCXuBrrL65YYEuFljMIUTEK+2SirKpGtwsxQkdfOTCXTzsQhttsDAii0SuyNsc6Do8xxwuqLCSsjynIvKXl8RL68n5FaByG+GOkIOIxsrMW8M3u+BCIQGr5DHIPgN78JANmUyyfQusPMIIU0zxAgEhkiuZK1N+EuMmcG/yiZyuIGNRIVFT7YUXlqj/1PPH7wbJNbRbW7fLI58I8skjm2TySeOfoPIJLRa9gPQILzCh+dIg5lvZLpsIUqmccccN+ieor+IKRYW4UIAXL1giexwpXZ1qwVqPHG/h0i3OeCaNyy036sRHvkowwVC0xwh7MCEFAQTkgPaHgjQ92eOik8446XE/fvouu7jyiTITeVHICyrEwUUcKmSBUi/O9MLzzwgvBCbRz6H+COOPF+8KKq5YhQBpQQtjEHADxtiARHyQA+n54Ah0GIIUfEAED8GsSBMLlQadBJdHYCJ7NNoE6EAnPlcEUHUCRIYKkYGDFrghIlmwRPu4MMM4OOIk8HPG1Zhlqy/F6xIHgw4q/4aICgGuAhkFNEYCN7ABNGyAAxxAQwymGIN6daENChmCFreoRR/QIRCj6MARCOADLnLxQhcM05NWNDE2wiyD+fraWVbxiV18woRGPCItkKFEJW6gBYCEYr/cEAOMOewFCXGEIongCEZmIQs56EAnphCHLDRSkZgMiTKUMY1pOONXuTvSs+wnpEmY0jmJywQm9le6TfAPbsQrYhH/twoCFpByECGAFIZAxuixYHoccuMGh6lGDqoFbtX74JzeJELGlU5y4ZuGKza5ik3iAAfXcogj1PfILMRBhjiUnzgxY7JJBI0h5WxO4gTBOEEgM26IW+Xj4AbAIYrvE6soohE58P8QIjRQClJgwvIQaUE4EnOD1ZPjWFzJh9D1SHSwBOVBkKGNOoIvfCechjIU8RAuyJB9ljDfSZwRC/mVFDOlNGWQdherUy7nF+6MqUND94jVJSSf+ARgHmuZj4cQgAVA3YMXwvWhNIrJjUhNKFLfGDMMqoUPH4xq6NwFERPeEY+bRMYLHaIC2e2tdX0riTPiFz/cWaaltDrnQoBoSpcqh51wbecpInI8WupzFcboqUOY4IUpjCBcbeBYhzDY1IOmMaFnSssjVqTMHu2CIsgIn+qUUU27OSQOVKOa1NQlVrICLpSxUqtC2trW5VQPrq7ExDYoIsC7EnAcEAlXAdrgggX/LCBEa3QSG0/7Rt6eFq675W3M0CI60TW0RxdpwS6qGUBlqPAhXtjszbJJkrGS1ayVUamSXlUy0nK3OKGLK0wvgoadEtAYDxkBbWu7ACFIKyKHJW5xlamR8FF2kxt9iLVuhjHOjmSsqXBGgMnZLHN2ra1AfGtcq6cRaxjRllttiG0dJoR8+Pe9DJnYWYpb3O9WRBHNnSYyVvEQ/s4BY1jobElPehmvibZkbMWfcRi62KluZBXgoEUtC1jiemGBihh2yAWdVpZkXomqGjGGKzSaVY42pBAoHqSKe8Fiy2zXnC9GiHZlXBxQVG9/gsgERzYAjh0TsAUOGUE+YpCPNjMi/8jxEuaGjYwJjyy5mpvEZUPQdS43KIK6IYmFdcfKQ1OytSFspVVyFvtlNHGkzLakhToe0mYocoAR7oWzsIZslsRFFbkeWQWTkZFfhJzYzxzo87k4EOGQyGLQziAngg1MOFEqNDjAZdxHxjFAA+r1IAv4saWh2AIO9IOfmk4Ii9ZolikZGckcuW9l0SsQmikCkIBURKqvze1ro/m/sJa1od0qrBjf+jfhbfRHzEvigUDxiYy4tLxbEO8WMPHbyT4IU8/NlflG9SMtkCZ+laHEa14T2whXRLdbcO3qhrvF46b1Qkg7yuL8lp2PAIk+dZwMvI5jifdmRCCLTW8m4qAf+f9GyLJhZhYOb4IPj/3InfHLQhYavAUtzDkgc35NQIME1rGGOBCHjuhx87s3wGWnmD+i4zxGWh3JYAQTN8AIdUhd6giEhDFSnHKD9PboWonpv0FSTVE715rONbjOFXFNtuNAEVwH91hfLeuhS7zc5uTycC7uTrI7vZZKdEcfE6gOehtD6upI4K+7TpBlJ9Qsq9RUSHDgDOYOXIU4sLnacWAMhbd6JLJ4tejrnvcsHyTveUfOxXX9kQ2goukDtKUxEm+OPtKe6otnfON/C/asfFp0IrH8wGmuDM4zvCXaEL0zZEFOu98dxuNW/cWh3ZF8/p2AfEziE3UfZ962HIRyCkn/wLXBXI1O45qfb4kHZJH80KO09JPgRNfYegnT45rRpxWJTp1Oiw3knvvQwnsttynU5xHGMA3IgG814QHO4AEeoA0e8H70J3/oNHT1hxxgdlpLFxLGUEsKCIAS8XXNRigN1XtR8YCysH7M12L1l3cUOHGJZn/AsVj4l3EguBMiaBbbQ19e4YAOCIHN14Kc4GEGAX8yOIPAVWc3qBOOR2RkkSkfhF1a4YMOuIJWVn8tSIQFgWVYmBzV40oQtYQ5cXEmiBXbU1wFiBVU6IBByFYvOFpYyAlH+Bu5xk5iiBNkiBZyMl9paBVrGIGXMXRyOITzh4VaeH81xmB3WBN8R1xR/2VcfUgVVIgBgGgZgngJnPCGMGZ3ClaHi0gTv/UIZZgVUOVvkSgVlOgBlIgBKCWHmJiJDTGEmJhgysFoi8Uip/iJKNGIaOFp2ROGWbGKGECJrfiK8dc1g0iLXohxX7hYuggTvOiInxZeMeeHw3iNKDWLQ6iJWraNz3ccifiFq/QLz9gSvOdojuhQOyI6j5A1VHGN2BiIgxh/3Hh68ziHwtFQHmRkggAKn1COKpGHa6FM/jYJjCOFTwGPw4gZyTiIsYiJ8YePwuFBqXUl7hQ6AHkS0agW/tYj+xg3EuUUGGACI7mQl5GJDYmMryiREzlf7Cg6mcA/GTkSG3lMseJBm//iTj3yj05BkibwkybAkJlojA+5jSwpHJkgCAYZVR5UY7/zDDP5ETW5Fs42JwT4NpgQkkcBlECJGbCAkplYCog2j/W4HKzwZR/kTjQ4JfvzCKsVlRoxlWvhCk25KQR4JdqAFD+ZBl15Ga8AlpwglgyxknI4Hb/wQfvYTjXmSoyzWO0GlxUhl2zhClHFKqtCOmwSdEORBnxpAnyJGX8JloK5VilZHfv4heyUKWqplrmIFSfwmgUxAWDQBE1wBbapAE6Qm5RACSuwAt7gDfoAnNfgDddgAdkgDBZAFTWQAjVQAwLAAAwgANK5nCnQAQ9wnUEQBCiAAhTQnRQQANxAAWv/IZlusQk7Ypl3OSe7kJdBUQSc+Z5CKZpjmYzYAVNTlUwyBTcUKTfVyBWv+Z8CIQYTUJtXgJuU4AS96Q0rwAPZMAzFWZzRYAHRYAu2AAwVWgrAkJxQYZ0dwJzPKQHQuZzW+QDayZ3dGQDgiQutsKKk0AoceVrOeBdTgp5HlgpwUyNS0gtaqRPvCZ8nCZjHMJ+zqB3UsFirxI7c40yb8Auo8wv9eRX/SQVU8JoJIKBgMJsEWqC46QQHypu/6Q0MOgwWMKZkegvAEA1PUZ0d6pwSYAYSkAhWEAgCIKIjWqIm+p0oGgC4IJ5oUYPoeBc2Kicxoik22kof86Q4EQWKqqhp/8CQpSCfDDGIQ9kdhyNTEOVKrfQL+rkOT/GfnnoCVJAAYzABfOAEYpAAUhqqojoGYyAGZPCqExCrV4qlWaoAtrqlubkCSwECOmAGViABEmAFa1AGEiAAKfAIFPChieCmIBqdc0qdajqiD1ADxGWLf5oXoEMlmPImM9ILHgM+O0oTJDCu5OqoYFkL88kJAFCW9clKmPqumfoJ2GCDUxGlqEqlriqrs2mbWoqrXZqgv8kDYiqmEPoUHdABfeCcDPCmC5sI0dmc1XmdkRAJ2bmd3vmd3xkJfZp0gTENnxCoW7ILOCpOmPCtOCEC5DquoPmoYQkL6QqL4vEM1cMKmHqRrf/kTORIFZ96Av8gBvt6q7nam/qgD4bgDdmQDRZwDcU5prYADbaAoaUADaPJFH1wnWv6oSBqrCkgsdrpnSjKDSraCqQwtqSAC/JFg9f6F1aZIyTrrZjgCqmyCzhQEyJQt3a7soEZmC4bqYB5HuzECr+gpO+6P/IEDvUKmwPhs7TZr1yKoL3pCTwgDdfQDMNADBFqAbDQtGYKDFPLFDXQoR7KAIHwsJ9bp5FgsXiqpyw6ttxQrWiLGKMDOjkqTiCDkC4hAjCAu3XrlY/au+gaqb0Ls+jhSpOgCvD0JoxDs79guHBRCtFQClCbFtzAoq0QCgGwsa+rGDLCKzwjTt/qji//AQOVML6VAAMIcBmwAAvQywmw8LsLkbcs+xWiyHe+pVu9hVhKNWR8gH8xs1uDoxVgeJhK6kyYYLzNK7XAwLlpsbrVe71ngbYxuhjaADIvIj8f0zPhmhKVQAMN0MGVcAHom76l8Aql4L4KAb/CG3Z814T0G1wrt1RJdY75m39bYUdKqQqYoKkXqamP4xYA8LTRixary7p9CmYR3BhuU7sXrCwi+xINgABQjAANAMKWUQuloL4k7AsNEbyP2hWgcAr418JiPMZk3MIsIr97SChzUqTU0Bal8LQJ3LlkMcSk0LoP3JZH7Bg6hKMfczsCNrcsgQAXIAqicAEIIAqXUQsi/5zFDfGVwcsVZ1nGkjzJkswHrAAWoPMIoDA6h/kJoCAPa2Gh0AsMALDAZDu2ZnvHbZm2jTHBf8PEsVCJKBEBF/AFthwBovAFiZy+sPAKsKDFDDHC68uuU8HClHzMlHxBYgE6mwAKcJPDmrqkagG9GKrAQnzKdVzEq2wZsrALJBULoueArAgSEVDO5mzOX3ADbDAImHAGuXzO8OwYwsDLr2ALwLwQjpy3/XYKv8XPgnCW/OzPx2zMq6dUBn3GC0UN27rJmpoWFsq51nwWZBsKqKzNYIYZqWA78gM+mlkS5SwKEaDOIf0FEVDFvJy+0tAQJOzIr8AVLPwIpwAF/3wKrP/ACqqgCo9g0zetCjXN0zzNCjld0zQN04JwCkNtxDENxudoFs6cw/AkCG18FgAAtRFtFmJLChQdCqmsg3hMr5YhYKnix948y4Jsy6JwyIk8z+0LC83QyCvdxVvheHxwCqAQkAJZFi/izBCVw3VtFhBdzQuc1aGg1Ra9P5uh0VTWC7JMEk8cxQ2AyJbhC2stDLVQAW59xezr0qtn1wJIXEtaXM7cmloBABCdwGmB1Vg92FtdFl3t1Rgd1sqiQ+NcEh1c2w2AGb4gDJRN2ZbNEL2MxXJsFXwHBSrBwqPoe2LXzJkQ1TyhAL353I6LoI773DygoN4wDEd7DcMgpmRKoW//DLVTTdXBvRMUQNGnvKLTiwu4wA15yt7gSQHh6d4oigt6qt4q2qJjm9VY7aKq/Agx2RkfU1KpEAtNbBIIsME0UAm3fRm+kNsNXgtt7dsnPd5UwXeuXRLz+1sDaZ+YwAqY0Nc7saCe0Ju8+dy9yQMnXt0MygMCW7nEoN1LG6ET2rQWELW3wAl/HRTckAmoQNHBcN4ruqL2zd5EDp5gC7atELZDbN6pPdh2bBYxuT//DeDePOBU1tEj0QDjSwOZ0eBe7gu9jc8TzhV+ysoiEckaPpCaLAgwlcM7oQDD8JueYN0mjuIsHrDZEKYwbgHczbQW0LSA/t0QfQtHKROCrd9A/x7kQ77ejK7eSR7kYnvVpzzYFM3fUO7fmP4ZqSJgOqQLsw0cXy4NvgABjXzSe6sVYSwIxJ0SxtwWk9CP/fgLl8DcN7Gg2fCbvsniug6muh6mDbrnxECmfg7oUgvHGLquwAAU1UvplI7Nka7o9h3tkE7HE93kg50WMZntF64ZAy5gJcWewSENou4Lok7qDKHIJ03mF6cKxb3UbaHJoLDJoHCIMLEC2F3d996gw8Diw0C52/3vxBDwwk6hBG8LFnALCA8NCZzAm6uhPtEKmcDsmYDVP37eLTrt0B62Fy/p+U3pEW/pl54JIr/tmeEBuxALsRBgqbDYvVEB4y7qM1Dq6f++FX666iiR6mZeFtTw6l4GCr9A6zXRoL/e4v++3URf9MFenBT659AwoQ+t8NCL8KUw1aDg8D5BChEf8c3O5PiN8dM+tkGOzand5GOrFtku8hvoGSnv7WMdHBBQARVA7tIQ8wxB2emryJDcaI/A7imB828BRB4u7zkhsErroDyAFljv8aEQGWiP9qFh8imf8qkAyL/x9nDvCRVQBQ0xz4pcCyZshnClCoJwCTFZPQFNg6wAxkotCKLfaP7M9w1Bv3DRjz2yycuAEwTL58TgCYgv8qEQ8aTA+I1P8twOP6nifsABASsAAcxfAXrQEL5QC5z/+VdxlvsTyUAdV62t/RD/DFynAPsLgeY07BaT8AtetgmXoIQ2UbnFOQzCcPgSnfUiH/yQ8fuNLxoecDsDDr69ARAzIAwc+OPfQYQJEfqqJazWQ4URJU6kWNHiRYwWoQh61JGVR1WsQj5SRdIkK5QfVT5iJejjI0EZ+QiiSfNRRpw5de7kiRHbJUGYBIEC0NMozmEWlBK7xuPoU6hRK5LKVLVqKKlZtW7lqjBUpq9Vu44lW5ZsqlS70KYy29btW7gTqxAsiJGhMIe14u61GLIkyo6BWaYUXDgwzZYvoWCEWZMmX8haBU0SxAcUpsgXrym1QMyW08yhL1K1Clb0adT/vq7OlNr164qyesVK5Uwb/2zcubvqgVBlxm+DFxkyhKi7bUeOg1O+9LjcOUpVLlkix+i4pnHdqR6BGoo59zBbnKM1wx6a1KPSWMuvjwo21PvW7OXHdUbb2Xz8+Q/qqdK/vxq7fPFFGIb00woKljL56JSXoEPQo0wE+0gQVU6JDqaPMNrIOgNFWwaUTfgwDjxowrNlmA7bCssq9VJ0MSH34HtxRhprnPGHKvTgTw8HAhSwFl9sDO0ljk656SKbajpSSCZ78swCE1FsMqpQ0GNxSv3e07JFLLv08kuy1NDjBzJ5xEgaAYkD0y0oLgyMMetiWnNOhIgpBUoLSpGSTpxKs4pP47YkhUtACzWUTwd+UP9jUTV6vAjNH4M8VKvpJlQFo5kae2zSLqOBJc889+RUoqqsFGtU1EIhZdBBUXX11RcdWNQBWbfAqAJIgYT1qFwa7AijU+Lc1UZi8rzFllKIGRahKiP8c1m+VF11VWirtTa1LWjV9gm7mklT0msxWq6jSy9qicNwDYzmllKQBUZZaEs1NV23pp2WXnzzHeuJLbbg199bvU1TX4oQDOmjci3KJFjHCJbPWGRvEaZaeZ91eCtSWsmY2os79hgjJJ54IuSRA/72Y4RKQhDh6hgWxEiUdYOl3XbfpTiwCBOO+SiNW/GZlJ2DRhkOJOAwuuhbcR045kcMNglY65YUGrVSaC7/5dhqP8EZvamNwiVjn1vpeux8D4DjALTRxsgTpQXcORODVYkOzppgJlu0qtmt2pabBYvvbpxwaUXwwQE3HFottDACCCMSv5XtpVHOpWm5SdLwZSUPj6zqUgDYu2+cNccIF9IFD0B01Edd3IY33mAco4FwlaaCnXOBu/JcqhM2dbg497zdav3+lfeJAsCFG1wC4IZ45r+U4XkZWAfiDyPesAF6GSbSIlttAYxZlTbllhuj6NBtvqzO0wcAluAjDIzQ8wOQX/7lz7e/yedZx+cAIN7AB3qKHIBWjPIeykIBhduN7yLB0pSc7tcV9XWOfdASntTsR4H5ye+BG7QR4/Bh/z0gaAF2FWjbzj6AQPHl7iLlaxgHt8KJUnACAL+jWHLQY8HzUUCHOjydC33YoRAqrnEivAgJpYEmaeyMGbkQnypUaBEGtvCHUUHWJQAgQ77FKzmCiBAHd0gBFFBgimPEjxbSdgAiWoRtFfAFmkzoxBTCyWUOJKNRqmZFAFwii8syDA6bhwJAhhEFdSQkdoCANjik0SIV8AQSwfWxXOQifE68nPkKuZPOXeISpdBj8A4zvAc+IJAoiMQlTfkiI0buYx+IZBMrKcVT4mSGmrRiKTzJkeS48AGRCMIDahBLYOZndpBKIso+sEQmRvIDdEtSMHFiRVp2koK4zKULU5ACAf84U5vrqYDA3PYxDbCylQjUALAewTCYbPMimaSlLbWIy3SqU57zdEsbT9axJHxAn8iU5BP74pJm0lMi7NTkLWrYmHgKVKELhQqkhoPPD4RTnJH0p0Vagk46MnSW7awhPDPKUJCGVDhp0hXBSqABDeRBn/qM5GJwUhKMivQf0dSkO/lITVA+EARmAAEIZPrTsXyrpPQKQQaScFSUopSly8xJJgDKMJnmkZaTsOmwGsgRDvZ0pz0FalezIiACOSRdPfDDPkpw1qMmQanhzMNOyucymXKSlgCYRPCUtCn78RQEVmCAAKzQU556VbA9GQ5e9AKtAfSgBwYIgRL2kQF+oFX/rRLtCeZsIiKRcoKmNJ3EVOeqyc5ulpajoCUfSMsH1F6CD6pF7WpXWxTdaAommYoaNeN0W8cg5665za0fwaRVvZpBAjXogASsEFyuDla5wsGLMGAxsWGR1QCmMAVZG7uPyKYVpUnoCYKMdC6XhlSznlWtJvOIiUmc9xKYMC808wiKS8BXtNGUamlXu95LxLa2tpUtcvrYR97GaSaX5QhmJ6VXKxw3uctlMHMNO0FYmcIAPRiAhKlrAD801rEZ4LBRWJkJVcAtpyAd73xNfGIU0/S+5b1EZw38GqfiVsYzpnGNYXmorWq1wTu2SEOcWwsIj2oHQ65wYv0giB6YosKL/8WwH3pgFHpIlKXMEAdQU3xlLKuYxaUFACj0a2Mwh5nGr9opj81MER/DAsjDYuyEqWtkJThWCX44CoXIxZGWdLUUoSUvLeFb383yubOh5XOgTXsJ0qoWvl7ODSYeMeCrBljM+62xb898aVfVwhZAXvOwQhACJxuAsZ8OAVRIwgojUVOwcs1yizcr3/m6eMt8mMSKLYMdjyYp0pGetI0x/etlOde5sAjyq0YdAlE/GSofsPOEqANsaEdb2q4hdrWLfbeVwaQ5H512t7397a7AwhbWPtwHTqGgkkyHJeBmd7vdfZRXjLvahvOLheyciVGw4t375ne/JWJtWHDiblXxS/90ANM0fydc4e5+RbVfUdWgSfKA6PGLRxZ+cYxPGxYNJ7bAhfYBJ5KkJJWLTngzfnKU7zjgMyvFK4LGSigkU3wdQVDKbX5z5Qaccx6XXCvFB2IjURLnQyd6SGNYNRjGTAPgY2ITEWjyokdd6tuE4dF57rE8RDITMofb1L3+9WDCEIavuLrHJOk0qINd7Wv/YQw58faym10kFWV73e1uP7fD/e5753vfoQJ3sftd8IMn/ERq8fYYFl7xix88J/bIeMhHXvKTp3zlLX95zGde85vnfOc9/3nQh170oyd96U1/etSnXvWrZ33rXf962Mde9rOnfe1tf3vc5173u+d9732G/3vgB1/4wyd+8Y1/fOQnX/nLZ37znf986Edf+tOnfvWtf33sZ1/72+d+973/ffCHX/zjJ3/5zX9+9Kdf/etnf/vd/374x1/+86d//e1/f/znX//753///f9/AAxAARxAAixAAzxABExABVxABmxAB3xACIxACZxACqxAC7xADMxADWy+gAAAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okowsaHIPRhsskkLsI4yYyY1EijjTFOkophAPAxCR9AAvmjj0EGOSQfKf4HpCBAyodJKjVGCWWULlIZ5SaY0EiYkEV22eWPRyKZJH9dsvjeLlZWuQmUvaQpo4w1bunlnHQKOaZ+SxYJX5tTPuknlH3iCOeTgsQiWJ2IznlnforeJoQbCxRCk5RXqpnmpTMOluimQdq3wAJtTDFmo7VhkY8bWGDhwkxt1shmloFe/0rlJHJ6CSaRm9Y3RxdCfFpAkqTONkc+qQoxxxwuWBJTq35Oc1mwCEH7XgFC9NpGGwWMoAKK0sLmAqrGIltAIcq+xKefmNnakJf0FdAFqG2MMMIUe+Tgg4ndwhZDtcgWUogXL2zr0p+bdJIuuwwhPN8CLriQLQss5MCEvSXm+1ohxjoMsCUqdOzSmoBicnCX65JM3wvYjvACE1L44IMUFI9oMWwFuPCvClxkkYUKcbSESS8hj6xnwkaKSZ8UTEzsAwGBHLE0F0MQIeLMr+3McxZc9JED1lw44ohKvYQNdC9Cd8rQkT/ON8TaQyztMh0d1EDHEAT4wPYQH1LtmiNEcP+RcxwdMIF1HF2DLXYqZD9bZNpEc5kfzC4vrQILI+QwtcK5xYGzznFY4oWkKv0ctOKLl+z44znkgPQLIxTQxuUmW6bMJpm4uMkmu+zyiSubuPKJMRZ13rHnhdgceiqjW6b3P19at8rtn2zySSa6f/IJKqusAnxFUkD8whSuOxzi8ojxbvvt6N9e/S6uuIKKK7RQpIIX9BfvghCGI498umEarRDmz/Ed9KxHwAJ+YhXYWwUt4jcRJsjLdW1YAP5AJAgmBclMkUHFJgSRvvPpzhW6+2D7VuEKEk7kBfZzwRyMlZKwIQ9oZePDJUxntufsAhSZyET6CoiK9/kQgSRUIAP/IzKFa7lAgkLoAojmZEFOOTFIj4DLIzDBwQ5uohfo8531fNe+ESpDexIp3rGEgAU3/Ookh4Oh4m7lv4T0Dzq1e8QnHiG9Ok6PgL77YQIVuIoWSKQAn6pWDGKwKg810UtMSmSRFJmnTSWyLVjCxBTPd0Xo6Q53u2sf+7roii9u7yGWMBYZy+gGlLgQcTtao5Fo2KTmfOIXVXQRHQ2Iiuv1EHu4zJ4uaTEOiVSrC/mIQT44kLcnGpOJS1rLJh4xCUHUKH23w8Qu0DfNXqCCfbnr4iq+qAxklPIhLsDCo9xAzjmcBJVAS6Xy2NhGhLyROZ8QxCPoSEcsyVF60dtEKK53/8AeZm+PC9ReDCDSBmDmY5gcWMCHDnnMhjJJLfGcxCQjiSX2JQQHJPzENEa4zVUgw5sQIaUbONACRZxzbIjjn48u0cqFAPA4qJCkLJcpRzmiQiH/XMU2dkkLYxhjoA8RJkIZwYi8VbChyGwkQ9tJFhc5s4q3iwgytJk9ZeAABxNsyBwU4QZFKKKk5iwJKl84sluxkqnFoSMHOTjFKEJEHe7j4wJpsQGgNsQFHMhrC1rAiKxyKE8MDeyKAHvMtMizglXChCsoMtWOdlMZyoAIB76615KaZKwpfRY7aci45MhzpnRc7ERokb25GoMW6pAsBzZAVGP0I0SPuKAiZ7skRv8eVakXHJpZpljBtYrMIi2Yhi67uQocPAQLlG0BDj45kli4MBbqrAyXhtSQW3X2OLuo4AY3AcuLbECIQkwGcxciBGMwogXqWO6iKsJQtDziqdvVSAm/iIxufrMhG7jqVUFKEnQ692BDmsQMiWbW5DwCFNudokZKu8Bx0OK+DOnHctNrDpOuVyJNfKhZ5thMOv42I4roJDeRsYqHcEC/yLhqSXrh3FQ4I7qUKVpLFWJdtAYneoit3TY2sgpwzHWBJlaHMcwx5KJeOCKDHexZEOtMF3HEGCSE7BctzBAs7BcH9V0x8l7sjLKy1MYE8VGBj6NdxLpVI98VIi3csQGHYEH/yEQ2R4mPDJHBWnDJvXWmR4IIWY8+5KrdxME0IAySVLT4xWUlUnVnpGjkqJWKZ97IOEorxIeswhzmQEamjUzndc12w5KE70dWsVHiUtkgbthrcSGLA6umuL8udrGhNEuk67qR0bYmzjLXuomPkDZ77uhjQmLQgtNiGhyaRsY4zNFph6zIghgcC2+pGKc9Z2+jyGCucj/aam6nWMpSJgl0uTxry4ApwNW9xJiLs0FnvjfSPNZlpQeygQ30lBbmWDa+NX1pcMi52Z6+oFmY/MyPtEAbwlWGK4S7TXCz2uFWhew0jDsSWfdCFjCejLpxPeCFCLjWyOmtTOEdb3n7GNly/x4HMny8wJUj29/g2AazAb4Q2pqFiu6exC5AsgvhCreTJG64lKch5fqCe9AkcUYslK50zMzo6TJMN9RDPm1BfAIkQJT3OVYx6UmDo7Rfl7M5/L1TP9L8f9AGM1eeGqWQKLx9kF24xCE+d6tqQxmnDokzZMHipl/m6YzuOI0Br/beEJyOIClhAr+eva1/nfGPB8ekG8/ps0frkDdn+4c9goNNlnqbIh760JHhARzkXSRMl4Xf13krwSdk4402Tp43eNOPGCOBqNgp47M3jt3rsvfnMLvl0S7wslCb2iJZBfs2WmqJT4PoVqX4Spi+9HJL99wCXrSYC88bkU9x5yDJPf/2dqp7cIy/x+aQ/vCdneRoi0XzggC/wUHYyfYJF8unZ8nencF/61MG1zJEK2djXSHHZFEVEgf0CduwgKvwCZCADJW3fkjGSANHJfI0Eshwfzixf/vndLiSfQlzbq43HJ/lbiTXEYyXWhKYEc+mZGURSZjABy/yFRy4d063cU9XXUKSa8LhW2u1gkBxVEd1FpNERb3mFfsnC0p4gwI2I5ywLmDCUsnRTDWiZ0DoE3mmYWXBB5PkTPK3FUooC9qwhH/XhOo2ggdRY57VZBy0eVeYEy2ohWThYWznFUqoDR7gAV1WhmcIggvBUjMihVS3IvH1hjshhHJIFlVUh1whC3n/6Iiy4HSAlylns3HqphzbtVbuZ4g1gYjctxXH12RXtxV5WIqRWIaB6IeDl4rKIXIV9AluyIkz4YlpMW0x6GRaUYqPKImAh4YG0YRNuBzt9lQcJIs2MVubOBaRxIZUlIu6eIrmloqq6EaWKIBr+F5G2IzGOIuJlIhlIQgwAl/OdIRWoYt5eIN96IsFAYyXuBzY2FvbxQrbGBN2VkFrMY7OFI5ZQo5TYY4egI6XEJDWSGN9OJBrOIyIBQqjOI8skYXJaHyaR0Uw8giJIxUegAEXeY5/F5AcaZDuVJDOUWZGWEFqxZAr4ZBtQW0RCSNYog1RcZEYiZEAKWClIHUC+Rzv/2WA2EhTtWeSJYGSkOQjtliFVPIUGHCUMQmQ6vaEDCGQN/kcv8BMVbdBI7cJO+aTIgGUbtFky0glyzQJt+MsSoGUSDmTl8CUHseRASkd4jiSBugiV4mVHaGVbsE7fECUl0JRomUUZHmUmLGUk8AJgdkQZ8iR0/EJMshbt2NmVPQLy4QJPSmXGJFnK0IXWSIrV/Ii0rSHQ4EBJoCUJvCXgskJS5lupLmW1UGMh4VY1PaY8vSFV3ECsimbAyEGEwAGTdAEV3AFCtCbTvCblLACK+AJ3jAMlJANzXAN1yAMw2AB12AB0RANwCCdttAUNZACNSAAAsAADBAIAlAD19kBHf/wAA8QCUGAAuhJAeoZAOyJC63gnu9pDWyRhZ/oXsd3mWkCg7kjFJ9pAv2JGYLplDXJEKdpmNfBCoe1a731XsuEJRsUPbE5m7P5D2KAm7vpm04gnCvgDcWZDdngnNBpARYADbYADLcADKUADCq6oqUAAAN6FCnwAOIJntwpAQzwnSkwnkFwniiwnu3ZCkBKCqQQCkMaCkYaCpmgFnRJF86gmZjpImxyRWLZE/5ZpaF5GYV5lmhJY6R5mtqhoO32bpK0mJsACvTEj04hoQlABgkgmwkwBmRABhMwp2BQp7mpmxeKob+poRrKA8U5DM2pnNGZDUghnti5nVZQBhJgBjf/ep05Sp47mp49yp7tCZ9BGgpAalhZuBd9AiOYGTIVqRNW6p9/uZRn6ZEHoaVnqY7UgQpsRZJllj6PEJXLJA9NIaEnQAUJ0AQJQAW5OgZiIAZxOqe3Wae4mZu7yZu9qQC/uaca6g1+6qEeGg0WMBQ6cK0gIAESYAVrkAg2KgC4wAc1wAASUAZrYAU2eqPfCZ4pkKPiSZ6QGqnpqamw6hdYxJKYeTupcEWwWRNFYAJpALBXahmccJpdSpgFu6rg8QvxZKZThD7nQ0cKeYC3Kpu+KptjUKx4iqHCSQneoA+GELKG8JzROaK2AA0peqIrCgygAAAsexQCkKPguZ1rYKPe/8oA7Pqu5Gme6Nmj6kkB7MkNAQCf8EkB7rWpgDENaAKWsdImQPMzuIMTRZAGVEu1mFEKgbmqW5oQXRqYqMod1nNgmTBPsQqxWJKkFTuh/0AGYJCszJqhwqkP3iCtz/mcIiqiJHoLJwsNKJqiwOCyAAAKSBGjM7qd29qoj8qzPkupuNC4QVqkRpoJSIqpaJFn71UYkQQla7ImLtImL7Im/0gTUVC1oyuaWlqwDdG1gnkeWMIKZVpPDvoLmOCYgvALcQkVbKuby9qsGuoJfuoNyQmodkut0VkK0HC8oPC3LSu4SOGoMxsI6hqe46m4i/ujQdoKQhq5SEoKR5tniNELMP+yr5ZCUT8TujERBeibvqabsFuLEF36lOjxsGzVoAg2uzJVB3Hxt8oLAGlxpJKbCa1QuUibGJNwLmqCOGiiRjBBAgzcwFfLvpwACwirtV+BoHGIiL31bEJYj+1XjxjMhSRZmVsRT9RWv+jzC6CAi26hv4Dbv9oLwEebkw9ZGC/2JLAYNqKjPy75Eg0sAgwMoAUbxBLclJwAAAnbFafgkBqcwRvMSHbmwU9MW5QJJKfAFY9pv6wAS7KbwgjmFqWQvC7LvGfhv0gawEQIqzN8GK7yJCjVJvvpEiIQx3IMxEEcwRN8xGu3mg65x3y8x7XVx90oTyLcFaDwVKCgxRzEB7//8AttAbgqKsZmQcYwfMbeGxmpME36k8loYr4qAQMiAAOgLAJ0HMTHgLDvyxVJDMiqrMRSvMRQTJn2+BXUULvjWKZlOgm/QA1r4cgvixZF+r/ci2fydLmTIQu7kMn6EzZTmhIwUAnOXAkwcAGXUccFW51EHMSsKhVLvMrczMrdfFtiMQ+zWshaLLubwL9p4ciB68I5tL0C/G5pzBjaMFZP8kI7nBI00AD63AA0IM0EWwpBXAqvkLp1nM1R4ZCpjKDfzMRRvM1NHIeDHBaYUL+wBAqgwArUEItj4bIo2rJp0c45lAnBPHCHRcyWUc/JDDSceRINgAAujQAN4M+VQc2l/2DNC8EJAI3HWuGQj3AKUHAKQK0KrCDUrFDURl3UQH0KRf0IrMDUPS0ITd3UUKDQUC0IoHAKsRXIZmGmE23RXQ3JZJGigAvWZIGkIS3SlftuJm0ZL6YjmdwLK00SEYAAFyAKNyAKCCAKl/EKOY3TtdAQfY26WwHLZE0SF1yfWLEMVg0KMJLC1PC1X6GiY92/Z43WS0a287QZCWxovdAJvcDJIxEBFxABX3ADESAKXxABlsHXOI3TQ3zTdfyiWQHC3agSH5wWVMTFEy27Wy3WvXwW/xvSI10WmL3WmKGLMYkBJMAREdDczu3cXyAKZzAITBIFZ8AGpv3cz90YsAALEf/s2gRdx2snw4KgCrYdyIi90yhcIxadyz5xBXDLp8LJA/T9p4B6tyJqCyd7ssabov7doizL0csrFCiAC9xg4EIrtJS64AveuA7uuED6uEX6y2c93HM4TxjeGYgDXXB9ySYh2qRt2qit2pXR3d7N139NoEHM1+NNkkqtEtuc3lpxCRZd4yqsE05ACTzQp35K3zwwDM0gvHUrosQ7ohag36VQ07aQ5CjK0YGrvEHBDaFAtK3ADQlu5ViO5Qju4NiLvUI6pJA7uZX9CBYubcOc2RquDX2HPPc8EnRt1xeQ15cBC69A5yge3q3NFeSN1SpxCq7MFpjACqDAB4WcwjtxBTz/4LsbugI9ng08gJzXMAzEIOl3S61Hrt8kirJLnuS+/cgBbtA1IaQRDqQPfuCmbuAPDuESDuZHKsnC7V4YjuYazuHO5X8h0dIv3QB6vdomzte+kLqv0NqyjRXkXd7nTZltMQkWbdW/wAe2mhNO0Aw+Dq2O7uiRHunNSQz4feSXTqLAsOSb7tvJO+5/q8s/wQ1fPurv+Z4Pvu5cbqlfnr2t7uo5dIJiEeuyruEuxmIsVhL8vM80gBm1YOIC/esM4d3eDdB6noXymBIx7haFXuMyjhKeMAyO/uMWD6jCSwzXoO13awuXful6y+l867ec4Okty7LRABTonu7B0OXqru6O/0sKXv7lRDrvL1zvkmtYGD62oGHMhrbh6gcSCEADz4wAAm/i3W3wN43wOL3wFYSgUHDsGewWqYDCXGzoOPHj2QCoXd+czdn1drvtR57pKnq84c7pfxu4Fu2y1QoUXk6kNJ/uEW4N6i7qqy7v8x7cIR0KavEIY5vhoOEMnXDMqdAJtv4RRZ/PmSEMSg8LTK8QEVznT78VmF1BU58SsDzxXBGDW6z1N1Hx2H4NPIAWrXDzwUC5kAH48+TzoOEB6YRKGBAcSj/w0gDYdZ7w4/1uSUzVOZnKFYTVo5BnrKDBz/YQmw8XhT7RkzAPWz8Mz9mcnmD6rU4KzBAZrM/6ohFrnP8d17xRC7bQ3bbfEHRO8LuP1T3d1CW9/sXux3zg0w5R7JzPFaNQ4ykM2S/hDdoe6dEAEDz+DSRY0OBBhAkVLmTY0KHDYKEkhiLV6uFFjBk1buTY0eCjTCBDeiRZ0uRJlBe1dUrVsmVKmDFlzqS50BcsYThrVXAI6xUsn6VqDiWp6hGro4+UsmLaNCnSR6ceCZoqSBArQaesbn3IZ6tVPkTFjv2HbZIgUJcwgSKb0ZsFC9fiCmxb12PEiRTt7uWLUSTIR30FDzaZKlavVCwJL2Ys2JcwYbUiQ+j5E6jQxm0/XM2EtOlnqEpFK6Va+utWVg69fg2b2TXCSXxATQKF6fX/wGxw41qge3swqUyhgodi5tv4zL+ZMh1nLlhW4l6xtDWnXt3mY8i1KDcECvSn9ZhQpI4mf/QUq/PosZ5iz77qaYenBbUGP5gaKPygBPkWFjeahWh6q48oUoQbLpQBE2xIOQaXU/DBk7SJJRZnILTQtQqE8WVDYbZjqDufYLnQIyiOCsko8qBCj6qjkCptqvesim81rkZsixpBqKHvNV9sARDAYWyMCTjhJhISwkcMVO5IJpt0MrMKNpTSw4VABOrJukh7b0b4sPSSIQts+e+/a77sqMgDzaQuuAbVdPNNODGKckNifKFSoZxq6S7OmbQiTcaGHqERUD6/9DGaMYMs/7QhNIdb1DU2GXx0UkqfhECaDTGdwaE896y0pExYtCqwhgYl9FMhfSzlv1LKRNUgJYt8VTCJIp31VlyZg6CCCqTpddOGIoNFTxFzzUiVUUtT7bQdjU0QLmBsgcYWW4wFrkEEnSVrIja19fbbumbYtYJdq+AUp2GLBXehrGCkKj5m160vGluiheYWYYxVUrls5Z2JW+H8FXhgksSF4OAKzG3IF8nyJPigqKpSyqEYT334NlhWLQWaUojRt8HgLk4pr4BFNvnkggw+GAKFGWI4MltqQTliFkllyNT9UHZt2lJKsaUUCz4GWWeSKMqLaKQJ/gEClVteiJiGa5H5ZKywgv+RYlOTZgyWW3ruOuhcQV5Sa42MNppstL39YQa2q5hBD4c4jMwXlLFC9upS5UtbsFKA6blnV3FlEDAH93aIogILNHzxV9Wo4vHH4V64Tg2nNlmV0K5SjUavGLer67991pfwsT1XiBTUUzd99UIdqEIP2KtQI25MH6P7ZMxFE0QVh7TaqnPWxeoZgL+rDTskwoNHKHXVlXfeSwd+kF762RuqXUqUcxeN94aYzfn5mTghvnhjB0cefIIqUp8U9NsX8gk14pffIUyvzz40pOD9/Xv3UbqF+PEZT3CiOV/7WnFA9fVPgQ9Cghoc8MAHOqRXmKrF7S6HP5stpGL8WyBJxFf/ikuUAgACvBXyCOi+A6bQIh1kYXUO8MAtQDBuvcIe7jC4rC610COcCCEA1VVC8hQOfK3AhQp1eMTjbEGJT1CiQzzhC/tRrUUgSU3eWIPEjgBAi1vEzADJ4z5ccAMXY1whFs3ImCcgIY1PeIIEaYgplHXGM52hWLzOmJEtbvGHsypPBp8XgDGGERd3JGRftIAEOCQSDkhwIg03hDLxGAVFdcxhIRsyiS2Kb4+vMiHe0BcAUIKSG5YkJVkOAIcDaEELp5SgJ2onDdwlBUW50N9XStmQ4V0CAKDYJKpCpTs/Oi8AFAhlAG55zJkAAQ5aMAIQgGAELQChIbyakwUfxgpV/5xCFcjC3AcoaUtkJgQAutQlADhRvpq9q30UICY7jRlOeJoEH8y0QT1t4MyGzMAJK/PExTSgCihkYpuY2+ZDslLJeA5knOS8xDnDls5gKo+d7EQBBRJ60YvIQKMbfcM9EaEGINjgDRslaUGMwEYlxvBhAR2oKpSDrIuMQm8YHQgIL3FTc6JTSxENHgp8WlEU0FSoD5GBDfDxBme+AR82kAFD1DA92A3sA6oIBRRK1FIOMiQqCE0oJm+qS4fiyl3Kal8kfoqCSAxVrQ1xplHx2RAIuFIacJSXBnJxV1XkwqUBDWhGNjjUhX61iyVM1sTc94BIBCESNVhrYxXyzKS68f+V4EqCBj6Qi8veVa8uPYU3M+I7cNL0qzgN663cVRUF9iEFjHVsa0nCqyjmSgkl0EBtP3BbvFo1E1DgnkZAS5VmJdSmOJ3EV/kwWuTeVDbKvURsbhobPhxXurFxrnQvIYhRpCW4jTktVS4Bow3K5yt/Os1OyWuqqbhWvTqrQDOkZM1C9UC+BvBDCJSQAX7QNgmVtSxu8ZoLKBRnI4JiDRSGKj7jLlSLOE1ugx381XGO4hKj4ENxrXvcS5xiu4uJUXdFdVpgkvdFphGveFfD0/WmGFwTrOGiDGCA+fpBCfvIQAlKsN/a9veyU71rRw56xQNj+MFDJrKDLzxaPkg4ybf/+WWJnfxkKEe5RiqmsrygmCn4wkm+AzBFl+kbgn3QOL833m8ebJsHj/z2d2stcpuJTGHmWhfJl0hyVhkj5fBKWc/y2XCczAACEJihyoNOiC/c2+Iv7UDRi96BKXrgBwrD2BQD4HIPXlzfENhXCSEwgEcuywwA47W3Q/Vqc+mclrS0WcjIlfCEARBdCbf6uNUdBYXZchvg5nnET+7wnsVbqT8HGtCEJjZBrozoOMGYy5N+tH3DnIEa25gfSigJVbQ53tZ+tbh05vZXUw1h5Fo4zhOm8zj5gInovjq7cI7urX2j6177en+DwhlYKBVsM0iAAVYQdrEJfb1HLsrSMLZ0/6bFnAQbl+AkUPCKmlHsb4i3BdAT/3O+GfAAXAhAAvzG98Qj7tj3VnBSA6dvfTcdAphYuyon/njLG1PxMlhBB8N2+XrfyzDDZUIqpiHwKWr+88EAuuIgALp6Q55lpO2uXfsbddGdTpZA//npreXQYyyXNKScZ+c/9vnUvf51sLvM6pLR2iOMMp6lpzfsa2d72OUmNaRBAX9X0TCyut52vOf95xWMjJ509ogSybFqVoGp3g1/eIhLRmp+P1kulsIU0YziEaMQIuItf3n1Lj5dJ/vAUbQXFaQYGPOjJ31j9XT6XgosF8hjiglL/3rYYzRdxJoZFGpWxdjnXvelTJenTv4mnlPQcvfDJ/4Ze3+l4idf+csnC7FeYYvUM1/606c+RqTh/OpnX/vb/xDYuP998Idf/OMnf/nNf370p1/962d/+93/fvjHX/7zp3/97X9//Odf//vnf//9/38ADEABHEACLEADPEAETEAFXEAGbEAHfEAIjEAJnEAKrEALvEAMzEAN3EAO7EAP/EAQDEERHEESLEETPEEUTEEVXEEWbEEXfEEYjEEZnEEarEEbvEEczEEd3EEe7EEf/EEgDEIhHEIiLEIjPEIkTEIlXEImbEInfEIojEIpnEIqrEIrvEIszEIt3EIu7EIv/EIwDEMxHEMyLEMzPEM0TEM1JMKAAAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSjCxgcf9GGCySQuYtLJizFOYqOLNsLIh4uGlcLHJSsGycckQxYpJJGTpPifkCzC1oUb+Qgxxws7YZIKjVfCCGOMXHa5JWGTAMnkmGSumKR7CwjRRRsFsKAkQkwK8hoWHLgRAxZzzOGCJThtsgmNXdZIo5aAxkhYmYgGSWSQ7S3QhRALLFBAAVMwwcWbA5H5Ggd1CiGlCwUU4oUKWdT0Z6CCbunliztOkopgicb/qmiT62GBRaRsTvECC0xIQQCmmroWg514gurFC5aooEIcNKHq7LM4DibrtLSql+YCoI7wQq8ESJFDDm8G25oLWHiqZyEvLJsFF8peGpOVqw7KZY40tgpmmWKaGWt7L7A5whQs5ECAD3T4QMC3UqQobmuWjDDCsZbEsS4gEsex7LtXpnLlNJctDOeY6A0h8sg+DGEwHQJ0EGQHgRwx8MgwDwGiICDDtm4Oy3KRRQ4osJBFFnHkIDERLmUML2YefywkfFKwEPDABRPABAtTjLDHiUm/xoIlOfwMtCVeFOBCIS+5eKWVSM96SUM1w3cwt1JMPYLYkpqY9WvsKqsC2IW4/+CCEC64FCjSixbJNpP0vc3CHg63ESkWgZNIM+K3xWHJC2H7LYStka80eMdBAnnmQm3PJwXjI7ThQppdxNB5iHfL9kLfLsyxuRuQswSvoR0vumhDhQOJX7+Oe5rP8a9/GLtsXtS+ORZutKCI7kZjkraiazPE5Oj2vZCmmsdzkM+Iky+9mxeeQhl9nZ5rfHTvszaUL5H6TSFEDDHkwykHaIi4vGPI2MQnBriLXXzCFQdExSpW0QKLFMINbuBUC1qAAyyoBF7uu16YVnQ481FnFagg4AAViAoF0oIWHHBg+DjACEZsYHwg+p9iEOinAdrwhq7I4QJXgQxkUMQFigjiBP8peEH3XQlpojOc9oAkpumAI4SbeMYnQohAV5Bwh7QwhjE28MN8MAINjGjBBtQRovIxSjKowMQn/LSJXbRxgFVUoCtWkUNl8FAZXJQInSaIgz7iICVGOyLoiNRE7Q2pkM9xhSBcIcAbTjGHCtzhKk5IC3VswBgTEUI/WmAMRhjDkjGklij39ZZNCEKAbGSjG+G4iRzqcBV27CEyGhgRDuCAgsbAgTHcgJJAWq9jYvrdEpFULeYI8BGOFKEVF1hCSVIyGcZIYUTAOEYtmgOGHRqlkMwoSkHIiS1pxMQjTJlKAw6wka6c4xxhCUtl9FAit8QBMuTpw5NgUJCW0dePign/J2JyTzmfeEYmMMFGG5awhCO8ojN7mMU8QuSSxjBHROvZIW5q86J8+GZaPkHQU5YzlXD8xC5QsYtXLjCWytClBR9iS2P00J28NInGZvoqYPpTfkWiH3NWocZxInONcETFJlaRiWBMcYqSXCAystjQGEDEDRuQqDloAQlpZhOjWKWZWhRJTo8StI2rSEgL6KhOZZhVlruEiDHciQxlTEMZJ6GpxjCTIzP9s59G2qk4xYlKVCpQIbRYYGAneUItqmOlDqkkMqYKDlooz5tYDRI3J2dRtRC0o+MUYESMMQ06wrKH8kQsQxSxVrO60569mOkvLePPH7HtEoVjTiY24dNN/8z2EZsFB2ELS4sNONUh+aDFOMyxCnOAA5sc2uaKaGZR5mYUq2nZKyZOOU64ToQWdjxrWzH5kHaa1RXWJQkmUpvB3hEzewshJgeVM07qfmKc4KCIMXbLVIc2RBngQEZ+z3GOED1Cst6krHMhC9nnlo+5lPVgWf4kiOnSVqMUaQF4UTrPh4zVrRg2CXnLm0/Y5lR+NlIicvxU21/g1iIcWMU4AltY7jYkH6s4BzhmHFZMVYSbaHnEKXe8CY20k4euQMb0HGLWaRjZFUMeiVxrms+6hgl4TlaOIGr7iBNjRLCTXLFVGRJjcGxjFdsgo40ngmOztLfB4tyIIibMzvAyBP8Zb3WFkSkqEivRlK6wDTF6FYKkDSaHkQ1GZY0zsorGTnIVLmaIccHM6DFPpHRjyagpCcpPixhjjnbkIS1H61bwuqIXJbEzeemaozDtOSE/shFskxPoP1WZIxvA4gLtu5AFbsMV20CFoyUCabHoeMer3YhnFwjeh3g6h87YdEg0ltrU0jWnrmVInpHEajYS1COMlqSxwfGMbWxjF5DYNUR6DRY/efMRaca2Du2o7IIooq3TcIU25CznVXBMyaloNpMrk1NCsq3Udx1OR/+UiY/oVpKMSAgjxjHjL3v74dsQ90PKTJYdBxjCGzm2vd0sT1geubPxjncO402SXsQiFSf/3zdlwlTqU/ezrsj5hDf/RNuPeDaSg/6HOmhx8Dk+HNe4/jI2JO6QOJmlwTMXxCc+0oKSqlPkOvQ0htPpCqfv4t4iQTnKnX0ZgK9ae1E+jjf3Ok6QHBSEjP4yscG8DXDk8NZwx8Yzhk507R346NOd8iR2ARKn57CkIoe6MuhN+L9r449KloXJ59r1aT+ZIX3WqXGmHOhTgsSKCtzGJwqNioN7FteouHUBn+GKZ1Aj4XUn3d3LgnSkh2Twroy33+kdctrvQhvOcAXileyMWDgD5Xhm+ePTG/bJ67ijuv7IOEqIaxCmk6xA93a3cb0JedQh9XZXsFhab8qQ4MDqVQ+//9NDbuQCfuKtuydJKnrfe5VPhuV5dvlBhC/54lDewUv/iDEeCUmfhz6BQbcN3dZt5oB9HXRGFZd3puRmHYEK81ZSBQR4cnZ7V8eAveQM7RcLwRd/wDNt8hcc9zdlrhASoVBFOUR6qGBFpad529BfBhgRy7VcR3dxmDCCIIED4ldACIR+MmFyGAh8lwFbQmgjHZgjHwgc6EaDIsGCoZeCn6Bb4faCFWFg60UWeddg6DYSq1BS6UcT6+d7saCBXQd/RAh5HogcSYh0BScSbqd7UrgRGeVcZvEJO5J0X2FyYRiGeHYJfDgJnABiqhZwIHhm0/WGQWFgWmUW0+UiDfYVsf8gC2HYe3sohEdIEEMSiMkxCViYboboE1SIcb6GZtPFd10RhrIgC5LYeH34dQvhgYIIgnxAW3vViZ44YGcRi5r4Ila2FY/oDKgoC5PIciA2hKymgJZHizwRhzJ4FlzielyBihjoi5gxhH04jKrGXgPnTci4E1RYaWFBJIw4is/oixgIjEHohyxXCtY4fMfxXxb3J9uYE8qYiGchCFtij9emFeT4i9OIjpzgh9YIAK8oHL+Whj0WjzaBiN4YFjGCZs6IFacYkc7Qj//4j5U4EHyYkX8oZcBGXaC4FicQkgISh5ClFvhYh6YkCKB2FbLgAdoQkZjBCZyQkZewka24igP/KRyZUIcONmW/0BYhGZQnECAXR49o4ZCYsCM4YoNUwQsteYoeEJM0WZMdKIQ2KWXhmHSgkH9oEZRUMAZUEJT/UZQLORaLiHTTNQmZRRVQ6QEtGZMyWZOXoI5mmJE5ORw0c5Yp2V5hIZRCSQUJQAajIAYJEJZ+OZT4QZZtkZWLqIt/og1R0ZJu6QFReRlxOZMyWZXV6By/hnQPpnRVxpVj4ZViuSQXV5Zk8V+T8Cc82Zg84hSUSZlvaZmXCQBXmRAzyYczCR1JiG492VWYkAl0JxZ+SZSnCRf2iJZoBiN+YiMHqRSxGZtwWZMyeZsI4Ye6eZHtmHQ9eXFVhgkR15ci/2mcAYaaZuEnZ4kjXXIqmGCBQoEB0VmZllGd9Ck/ubmb0kGHsnhKVyhOHikIyYeQIaGYcuEKSQkt67mSQ7EEsQmfcEmf1nkQcimX1uGQFjd2M0db5MQVYjABZDABIDoBYAAGTdAEV3AFCpCiCuAETrACK+AEnrAC+sAD3sADhnANOBoNhpAO0RAN0NCj0RAGRVEDKZACNSAADJCkAiAARNoBTvoAkRAJKDClFFClAXCl3BAArbCl1rClofClpPClocAWBEoXHAUoW6IqgcKUP4EBbuoBbooZpUCfc2qf2YkdU9ZVradj6PYIoHBKs4UVIjqiJHqiKLqiLMqiLuoNw//AA8NADMNgAZIqqbbQo9AADJgKDJeaqQCAqUKRAg/QAUYqAIEgAQzApCnQAVAaBFRqpQGAC7iwpa1ACmEapl+aCZkQCrmKq7i6izNYnnixC+pZKFyyCamwCauZCu6JE27arBggp9VZk7BgpxSqHef2a/6JhbSlY67GplBBBiVaoldgooeKqJRwrt6QrtmQDdcwDNFgAe/6rhYADfN6C9BgC6UAAHPaqcAACqAwD0CRMkZ6pBJgBhJgBVZwqkX6pA8QBKxKASjgqlcKq7JKCrMqprz6CLmaFmUarPKCoFeioDrhrHF6GbAAoRFqEJhJnd0hczx2fAW5VymZCfIQFRP/YKiGqqLm6qIuSqPD0K7EMKnwOq+2AA1GCwylkKnA0Kmg0K/AsBM6AAI6oANmYAUHuwZlIAECkAKCgAJIKgGJYLCmeqpMSqQLy7Cr6rBUGrEUcKVuy7HH2Re9gKxccjZm4yJ/sgu9QIrMagJu6reYcbIyOafTKm0rm7LYAQo6priK65/+SU6N+5xNgaLlqqKJSgkrgLk1mg0/G6mROqn3arSXagtKq7RNCwpBUaRHygASUAYMUAaui6qp+gBQGglqy7ZV2rYTK6tbaqsYGwo5V3FFGRjTsAmdACNZsp5Xkrc44bcm4LyY8QpzygmE2xDRip/hgQ1r5FWCAArk1F6X/+WrSQEGOmu5TkAJLZq5PMAD69qu12AB7/u+FmALRbuppJu0mXq6/RoUNeCkoyoBAMwANdC/qhoJi8C2bhurszqrtOq7uhoKj6CrmVBlEzym9VieH+kXp2K3MTK3xzojqdCFMPG8JGwC0Tu91csQEKqd27EJoMAK3/tgj2BiSAcK4bkUTVC+K7qi6MuzK+CowzAMzfCo1yAM8Eup9HsLSAsMSpy01NCv1CAUAtAHA7ykDBAIZfuktsuqCJzACszADQymvDrGFvyrAYYYvWAjvRAjxopBICyfI1zCJnwZ0iu9Mlm4C4Gy6kENVbZjVXYq3ZuWN+wWSwsM1AAAqIsWY/+Mq2XMesOrGOO1O4G0C5OwxjJRBCZQBGlgAmlwwnZcCnisEHrsFacwYCSJYBjcjc61XAH2XzFYYAnGFcc3dpjwpxrauHBRyKDQqWmRsRV8lI+8GNqQxpdlrIG0fjBRBMqcBmlQBJhRC6UgvXPqC9ZLnywMFadQyvOYymOCyttkRqbczQd2ClyRkh31C38KCpjwCw2WyGzhtLvszmbhyxEMzOeWwYhByangKkbTC52wC+6XEprMzMz8zKBMvZxAzSoMoV3xp53ZmUUZ0QR2mqws0RENYBn1FaoAI+1cyy5yCY8QxWzBtEt7zVtBz40svBcnGbvQCcZrZzPlz1inElH/QAI1HQVRELigDAvRXAvVXJ9bwQoWPdRD3Y2fSJbhbGBgQQ0Ndgkuks5JSQ2DfBanCwCInBYSrLH1fMErPRnOkFownTHIvBIkUNZm/cywkNbRrNB5zNBbccpEHdepjMpFvcrlIxZ8DNXdO2k/mRZNi8hXnWO9+stcfcaV4QzjZUQxvRIiQAKN3diBm9Zp/Qo+zRDTW51cIdEQXcoQ/Wsk+YmIaMoJZtdVGBbq3L1/2r3oLM9lwbRWzdpkAcETXGUpPRbeic+PUck0lVqdILImIQLAHdyRLdmwMAwNcdmZuRV0/QinAAWCAAVVxtyCoAqqcApCzQqsIN3Znc2PkN1C/30K3c2nguDd5zYKom0WjbuI/qrOaLG0u7y/gh3dW21mlKeNmBELG8ZsQHgSMNDf/o0Al1ELtpDWtQAL0nDcCF2nb31x1q0Sr5zRZkEN6bwj6w3bps0JgG3hYqGr8l3b2yfeuB0Z+pZvvQ3HJFEJKE4DlQADAG4ZAk7gBl7Nc6rgWgHXGi4S2kxZft293TsJoDAJfU0Wl+DegX0WWh3dHh4WIB7ikaHfGqMLvj0SNNAAVN4ANHABl+ELwiAMsMDlbC3KJzu9mc3gNx4Sz3XmaqGWoMAH680KIs0TlBDEkUq/Qlvn80u/pdDEwEC6mJqvRL7EwIDh8VzmOBEEbssNFP+A6FgaAFmapbD6xRbbwA58q4t85PNdFuKtY52RbzMF0AENEg2AABeAAKSO5Zah5QLO5RVgvWFO41nhnXywhihBYAiIFhS+3mW4EysQtPF7xPIaDe8br0h8C7ZwC7dQCsi+qaULCpewy82OyIRuEyiAC4ze6NXODdj+6Lwr6ZN+qxI82JZ+6alJeZq+6TN1crsghiMRAaL+BV8gCgggClnuC7Ww5bWw6pb9Cid7smPO4CpxCQlmnmDxCM3O5kkZ7S/hBEds5wxvC3eOr/gKDUk78aULz/F8CQBADQJPE7HKDbjg8SDv8Y/+xb3L7WL6u4s8wbOtsWmR6Uw+GVr3hc7/MMchEQERIAo3zwYR4O42Xxm+8PP17gsQ0BCwUMf8vhUQLQi5oBK0XtocW8uqfQlvfhOf2/B2Tr94HvEUT/Gm668ZDu1AQQGyOvLaTvIlL+knf/Ipr/LyLb5jEd2UBxrR2awdYfN2b/dfwAaEcAdscAN3f/eQIQ0/Lww/P/QMUfT7jrhT4fKq4ODK6PR+7eP+CvA6cQ0Of/mTivWXfwvz+6M/CgzRkKnKvsSdWgpez+xWjfFP+xNiz7utEKtmH+ncTquhMOm7WumzLQi42vJ9XO6eIQu77Qwm7hERcAFfsPPF/wWXUQGC//NCT/Q8bceyTO7gzfQFBuFskQqrzeaX/8C3NmHE8Fqpmt/58+qjpYCvyJ7+x67+/Jq/rv3eAAsU3NC7Fdul287AYBzGto/78g0QmTL9I1jQ4EGECRUuZNjQ4UOI/x5NnCgo4kWMGTVu5NjxYapOvVKlihXL40MEF0SJuoBA1EmYMWXO5AjBlzRfOSE8hPUKVilYnGgOJUrwFEVBp6AUZfhIEB8+T/kwpVp1IR9QoARlxWSVozAL0aDZAmbB61ma3Fq1IsW2FVq4cWFSrCjX7t2iHkSSFImhaoMGCBAAfonX8GGHEKRVwOlrp0NYkSMLRWx3IitBTgVhFrRZc2fQoUNH5eOUVUTSUi1WZu0Q1KTXADBRa31wmP8FYLagwSJWuzY3UsHbvvVd3Ctdp8aVt461l6Szqgho0ADcYPl1rxAqMGY842EtyUGxM8386OipzaLVi44KmjSfU1MfXnraGer42rAvvQYlv/g13Uqx5RZh8LMLOFJCGc5ABjdC7pEGI2TKg0lGimUkqxqopBIaLpDwQ40gEHG7ZryDDLzJQDxJlUdYMa8iVjBz6sXOZlSvPdEgsm9HFe3C5hJMLuGDGlCUi4YsW0qxwJYeqeJGQQWDa3JKgh6k8sqLMOmEpC29CgxLMAuaQcQRq/guPFjCjOiDzFiM0UW6NjsqMzo/21E0CB2qj0c1qZqEj0tgK9I4WJAsRck+YcL/BcooE43QSkcdlUWkkmSJ9NKZqiBTRD3ODA/ThaCAk6JTWCl1zqTQUzWppKJCb7TVGoLKvVhBhYnI/UDpyjhoSsntULNsxYitUIqVUtjlIEX2SllGsnRZaCGqYoYxOX1IGBQji7YgKF6ccdTNYizPzlZxDO2hO6PatqNldL1kOQsOPfQWJtdlKLhi87W3NboyyXNfgAOeUo8qCh7zB08lE9gj9mq9ak91F8ZS3nlLkdigBPMt9uK7/J3IX45DFtm3Hwg2GGGHsM125IuOMhfdPZ9iWcVSbqG4Xo4zDiWTjWc+7mOQfRZ6aKrUKNlkNR7yBRZhFCZ6ofUecgpH/54e/09eAA7F+eKMec6EFKuL8nfsf8M2+2yIHPhh7R+qSNohX2rBVlu0C4raIXNlrlu5Q7POemuJSfFaoIH2holsgQxXXPEt1HB8bQeUljuyWhRnFbSyFyK36sUrK8XvUjgBfOFiCU+8c47GJhx11q3ewgEHHo/cIblVfkVx83LUsz3SWq+MEwCAzzrNkEs33feMTD8deeZDRuL12NWYvaFafJm7csPJdVihR8zlvHm4+s76ktEF3ll58CFSvvD0298Xji2gl15yYebG/VXQHsKMavfjShIAvxGPY+d7hL9C0T+GrA+BCwQVEIxghH8cAAlPiB/slGa9WtgCe3ujE2hO8f+Q1NiHgV65BACDBwyLFU8gBXyEKkaIEJ7tbGcvpCGYjHAALWjBCFpAwgSh9xBiWK9+G6ybKi6HHhB6r4ZMASDwgCfAi6GChWNbIkFi6LUqZvFDQMghEBx4Qx9aEG6TA4/iosIZJO4OYlqkyfhMCEWJrZCFLqxiDEvHRjzix4H4eIMN3sBFCU7wCQ/xRE4acz87SS2E38vjRkzYxBRy7BMrpGIVNTbDRmYSMTLgZCdlYAN8HIAPWuDjG/DhRSO8QQYMOQDsove2vXHGg0lUDSM1eREAlrCEABCZHD2WRUb17JbDNIwMTAlKI9jABoCEQw8fMi1qiQh3skyK/t6jN2L/ZgQAuiwhZTgmR4oAM18JymY574IPI+ADlFo4QDMrqLT6FYqIaGtRaDKnkFnVx5bmXEguL/HPSF7MYxQ5oCXxRU5+JvQsO9yhFppJwdjBUxgahOPZTHMuNapGoRDBxDb/mbVeKquGUcLXRk3KlFC286Hxc5zkllaLeZ4NPZo5Ci1Tc9KGbBMAk9hmQOMoUhoKRzg4JepMjNBMH8qPfk2LqdlolD+HTO09RVXIP//JU29ejIUfu+cI2xIctlBVrB5JqvxQ1hBsNQ0WTbWaEVHVIhDqM2JjLQgAJ2HVrErsQV1lIFuGAza6BhYj8WsC7B5HPxTtrUVG/MxSHIIe3u2T/6gexWtI45TFtWSWOILlrEPg4EqjlYx+TjMbizRjo+3hE2KppapVKxuygWaGfTVUS2Zx0VncNiR2bCPYd+ZGt7C5SLj2jEjM7sNZyv4zrwvbaxZx8VxctIIbuaWuQthWsE7R7rcV9RkUBKGKo9QzRnzFZ2RZW1RAuXYZIotTAbMYgOdyAxfTrW59C/KEKphsegxRGWmF1i03uYixmMEIeySL00C59l2wLU953hsAbgQAwvalMEHWtgWIbJe7HPsAKzLh4Te1UBCZOAUdLzKK7mkUua59TS/r1JksUkDCM65wjSOyVhTdDlM9MEAPTIGRD2RCFUMmsnBLlRyNQNY9nf8dhVX5sM30BirKQrpEk5v8T6hA5RKnqLJVudzk/oQ5y0/RSmmWk4lx1ahGSHkxUqam5tOuR86jCZiMKXDnANhYzw1Z66cuZQBAAzoEg1ZCofexjwzwIwl50MAHcvHoXEAhF0QmMl0cmxHvwaezd7UqT0Gh4KuCWtSAIvVdS01qIWGlyU/55yjOexg0n3ZGdqrInDso5xDOOSpIttedfU2BPQc7IX1OUaR64Icem4LHflACoktQgiQsWgON/kC1IU1kIasiFyUmr0NcvaPjcpYaQBJ1uVvdZSqjWt1OTnWWoTIK+MCHPgfu2K1tfW982zo17QEYCijgbwosQtgDLwj/scVj7B4MwBQGMMUAeEzoZmcg0c9+drSjPW2MayAXGugIrfjU2f2YW9RNXnfJXUtqd7ubPq7GyqCKk2+Yx7xhiwTYA1BwcxREguAEz1YpdKymHQR9AArvwSN87HAeG8APEI+4xPnBj4pDOwn88MiHPf5qqvJhElwGxZXRbVWvf73LowDAlVGN5ZSnHSpcV4695UzrW6N2znbKW8wCFgm8R6IGOx84mn7uqB4cfQCCVoLEK35xjFfb0ZLOBUxwXV+0p/tPTp78qbEseUF4mTRCOgXJOQ+fzsDmOrbWHszrfqN9i1BgKUjB3vku7J5IZrl94vGyQ1D4DBw+CYl3tOJj/7I5qbxe+MMnPmJi/4rQCUvhBrg9oqEebUbnYfdDATdxi3997Ge/KEGJ/exRZ6qYSYXe2id/+c2PkO4fHHmuTjHvJnJ++DPFDCCgf/w7y/3Qed9w3sVfZ15lfwCcCfoDgfkzgwCkK58LneRjnf0pvfE7QAhciAGUAAkoQBCIQKICCgXUP7OREVzrNgyEwAEcwAKUAAYQgA6AiiCoAQaQgDUwg/kjQPozwBAcpg1cwP1Ts/6jkxrswYjQAfqjQBDQAR3wwY3aQE7gQKIRMXsrDRgzQihkiBgswChMqCS8QiUcmhfzP1epQi9UiBH8QnPKvyvcv1pzmcwQQzVcQ5PCwv8ktJz++yA2nEM6JCYyfEPcEQQUq0M+7MM8csMs9ENBHERCvAhOCApOAIZALERGbMRGrIUkxEFHnERKrETRqURMzERN3ERO7ERP/ERQDEVRHEVSLEVTPEVUTEVVXEVWbEVXfEVYjEVZnEVarEVbvEVczEVd3EVe7EVf/EVgDEZhHEZiLEZjPEZkTEZlXEZmbEZnfEZojEZpnEZqrEZrvEZszEZt3EZu7EZv/EZwDEdxHEdyLEdzPEd0TEd1XEd2bEd3fEd4jEd5nEd6rEd7vEd8zEd93Ed+7Ed//EeADEiBHEiCLEiDPEiETEiFXEiGbEiHfEiIjEiJnEiKrEiLvEgVjMxIjdxIjuxIj/xIkAxJkRxJ+AsIACH5BAkEAP8ALAAAAADUA9wAAAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MOL/x9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSW6N8cXWAhRAFemKhbAQu40MYULHDhg4sR8aGjanO44YYQQrjgQiFeWJIDFz5hgskkSzLZ5CSTCCLIJDrygQkfUAqCiWGXXMLHJVBiKWaVYlIZJnptANlGGyNMsQcTTEhBAI4MCUJmahy4oeIcLrD4ggqAAroTk04qaaiShC55qJJYTkKYmY1SSeaklPJx3gJCLNAGi3vkIKcUTHRKZ0KTCoJaDHv2WWQOWbSqgiVF4v+EySaGFlqroolaSWiUhHnpZZW+finsr5Q6Wt6aBbTJRA4+EEBHsyrsQeOoBVWKGqxevGCJCnG0ygQKrHIRR6BZ1LToubs2ieuSWGLSiWDCVilppWNSGt4Q+A7hQ7P6EnCEAA/Y2UoKgTy77775DkGEi3ZOmpoXIxDJgiXdSgEIF1nEMbEXhRRiCU2KnivyyE0OVi+WXkJqZpjWmjfFCG2yIEUWzjbLxAswtyFki6O2/HAhfqqA8bgvFCIkkDEIMVPIiDJ9a6FOUklYvZD+WrWw80qN3gtTvMDCEZ+y8HIbC2CaTwxd9Gyva+MG+oIXBbgwhxAxKJIPBzI5HctlxTL/pOPKlq7nAxegsoBzAWQL0UUXd+ONY8N3wpYxrHHPjQUWbrTAQQtKv3Qor3zPu6PfZQbeng9S7IG4C5jG0DgajHReos+yeSH35W7k08LuOLjh+aKYkflrQyqbDp8XmHbhOgf9tLDBBvmYSPtsLgjh4+a8G+N7S5ikcmjwYEa+UPH1tdEFB40z8rw60ZMIeZW5YdFC5i0Yg4Mxymy/0rnBQzr6QqUz3nywwAEOqE8dxhiHMdonounVRn7Zu98quOc9Q4EPSpJqyJcghR8hOG99xjAHOEjkwNrMYQP1Q4YKkTHB/QHvMhg00yU0mDIs5WcO/TCGDmlhDlooY0Tv+59u/4yxQhaycH8VVBJmYoiyhoCJZfvRoQ7BQQtwnKOBa7MMMlCxCVfswhWuWIUY8UcLHDiOIljAAS1UuAplTKMFKuEfDFfWJeKFT2vUMcYqUIGKPYpxFbQwBi2SsYEYXEQdyODhKqjIiBCV0DFb3MQndtFFMILxj6tQYSCRccaIuAEZ02DhNFYxjTi+0DLFmyFD7ijE5ygjFKj4BB8x+Uda2FKHz+skRPKBjHPQQozncEWIgihAx6CiF5+Y5CcsaclVhPGPyFAGMnRYv4m0QBnKIGUYkZESOVqmTFRS5ULu6KXorCKZm+gjKlyhTkza8p3G2IAx0ABHiTDil+BQxjbECP8ievnznwDVkaneIslNSDKZyfxiM2mZyRVSUyKZVIYrRvkJRaDEVlsKHTg1iMFWLgehyZzlLGtZy1tKMZ4MfIge87mNbbgCBx8KqExn2rC2cPETmHDFQZMJxmUyE5PYlOY0hyqRabjRFUe96KFSscSOTkKcComUDZtzzk9IMpZ8VGc7+whIeAbyeVKEKEu3UQdUxHSmaJXpWqxqVYMmFKGuWOYmxDjXZyK1oUXUHkQ2sItpTGOiLz3JJJKYUVSGKZzEkypV0wlSrK4zlnu0Rh+38U54ntQY6kjbQ3CwyJZiAxyQOGtaR/tIsej0E4IwqGon6QpuIqQFa2xjG424Qv3/NUSbo9xFC0sy2O51b4mRqqPfnvgl5qxitY39BCATkg89djWQgXQHEXW5kFW0tKXLjCkx0xrE9xFTLaqllWofERFj3JW20rTtQnDATDCexLcWhOETn2hHDI6COeF9BEJDEZF+iFEdvxSkDg3pEHNY97rb6CcftlspBneXXmlJbWrDu9uI2FKaQZUmRJzpxWn01STw/a18nwomqJIqhvdVDioy0VarZsK1EtGjLZ87Doh8oqXPaKlZFbzdB5PJxw17H1oMKuG2XuSabbyrhh2CDIV+cRcgToX3vNfUEkOJhmEycXGesYlHuPUTmbgIB1Yxjl+amRYPQUaOt/EMVzyD/1oXyWJZMOHlCRf2IhMlpURXYVGHgHEXu9DGLmBKEt9K+c6UeSqJn8rRLCvHy5/w8iYGihF3irGeDcHxNj5BjR/CmSJyHotBlbSJTCDaIooIo0SzWeGFeNGLCuXtoak8YkVr+SBPNFNyjitpq4ZWIwxttUK2gQ1XYOMT2ADGp0EtZLNoaVZKCvNGzGtXV2B6IS14MqChTJLeHrqpUCpxo8OdHC2FV9oa2QAtXWGMh9wY2c/4xLInEmqxeHlWqfXIKnTLzIdow4vO2EUqCC0Sd3WP1oaN4a0NYms8GsfLkqb0Rvy4xzA+xBXb2MQznrGMEc4bIvUGC04xkVol6luhzv8kuEE4++pebHvbhZayzKts6/qGLzmS7vImPuJMrTYSIZCYxrG30Yt4/wIbz+D2xx2yYPGJ+hFaSi15PcJOS36RIG58uba17opexFzmTJWvlTlBPEUz+jg61zm6OcLOimd3IOA4Z7yLnXE2f+IZRz/20h8S8q9IieS0krdHWtCLuL5624LWuuK3jUySgL0XYUdlibtEdoaEm9zHgbjOBe+RPiq3zc/g8N3b7OZnIJ3LG8f7MhK8dw02mywkl9Kkha0RQE9y27B+ucsX78XIFxzsvk/05C9R+XE2HDmPoDORhfkRVJA+6aB/96aPfexfUHIXG6cGNczReg06rCxSkv3/qTeyztvnXuu717qUN6HykDw++JOxNeWx3CVjPVzSXlZ6R8CxaTevs4vxFm/YN4B4F4CY8Aul1H2k43RiEXWCkHwhgQOFt3iMB2j/hgkC5wra4GklAXzwJxmLJm6rdHyZNytERnsZYQystUxtdmMBSElWdWxJtwsIqIBM931k4YD5FhI6dX4UqA0JuBKPtzcjVmLFpxBWBibIN2H5FxKx9EVt9gs8NXprtg42SG84OBYSBnU5FYFd54POBGMv4YGYwQmKxgmXUApORIIPJ35eJhJSuGnxhk6uwH1XaBF95xVbaG4jsW9IhRPAR4SWMXaX8ApraGVLKF6PMHUhsQ27/7ANV+QUJzCJAtJ0AmUWkxZ7tPIVqRALUuaJZRiCR5gQZtglSngcqJWJUFcXk9iKAWKJC3YWsRd7nCgLn/iBkUF5lKeGq4SG9YdzyveGctGKVFCMrugfsChxovZsJKd/WpEKtuiJglgZxMcJaGiNTnSNp3gcgCd1O5cWrRiOxZgAYuAEo6AAYpAAxhiOlGgfAnWJZjEJj1AojLgV0NiJnYgZ1XiNvDhO2mh/bQh4iziMk0gF6niM/fGOsSiLtGIo9ZgVsRCRElmG2sgJhtiLxLeNxzFhEqaMbsGOr2gnIokWJKckWjIJ36gVsSALEcmSZViN1ZiNxHd2yBF+mbiDcf+BkP/xjnaSFg2pJXxgUFshkSs5jZTBCaVgjcTXjwpxjWgIkCUoYXwgjHfYE00nJcWkhSa5lSl5FUUpC85glJNhjWTJCbCQjdcIlcZhbiW3iA9ZlTihkFk5FkF5Jd24CV7nlWEpCy55GWVpjWfZi2nJHFwYdW75C29BBhNABmyRAh3QAZORjGthJSXJJObmjFGxknzpDLJAkWRZCkyZEDBphs2RfDdJZ1LCeWkBBk3QmmCgFh3wAJHwAJAZGQsWZGxxmrXiZXkpFXz5m53pl2WZlA1RkWpZk0EpYZNWZGkxAVdwBU0AnROAFjXwmNaZArYpkh4li4diJfMIeJigDZn/CZzBaRl/yQm2UJwZiYbPAXWy94CTZmoPqJpi0QQK8JwKoACveRY1kAL+6ZjYCRm32XRusQlY0pAlCZ4m1xTAGQse4JmfqZ5kuXDIoYolmXwYSmc3NhZXkJ8eegXUmQI1MKL9GRlYiZVwMSUSlqCktglQsglBiBSy4AG/+aCX8QqfaZZoqZTSISWLGHU3OWl1hg1gkZ9O4AQK4AQgehYC0KQM0KQCkJ3hN5dpsQsqmokkoyQxShQzSqO8YKOWAQvDGZj+WJbT8QlTmXwceaGC8AsPiAn0iRVJeqRHqgBo8aRWAAJWgKcCGn49ORcLZpfoYihv6gxF4QE0mqiYIaZJ/4mUwrCj2FgdDkhnseeAk0ZkXWkVCkAJK3CklICkHjqndOoEK+AJK+AN3sAD2UAM3mAIw2AI6eAL2XANhxAN0AALtWqrwBAGQGEGa2AGEgACElADDLAGEsAATyoAJPqf1kmbDyCbkRAE0ooC1EoBKEAB2BoA2soN3IALrRAAa+Gnf0oX0IaSIYNRhrIJhhoUiDqjM7qoOFoKr1AKZNqUZUmh7fmAUuejb6olagp4V3GkKzCwpDqw3nCqPJCwCTsMDDsMxGABEGsBtmoLugoMFgsM0HCxAGCxALCxPWEGIKADepoIDNABDGAFVnCsTTqi/mmdsSmbDyCtQUCt14qtNv+7rbiQs63QCqTQs2ohrlT6FrtwKMx4Li5qUKkgnj6BqEwLppUBC/Mqr6VADMV5r9vhnkK6og8Idfole3HqFAW7Apy6AvqgD6jqDdmAttkwq9fQttEgsXALDdBgAcBgC8BwC8AAmsCwsaAAAJcADKAACuEAFMhqBYmwBk9aA30Qm5EQCTRLAdzKDQHADTvLszwbCqQQCpmguY+QCZ6bCW75o6AbYX4atHFBSbOCriOTqTjRtIi6qGIKC/LqC1U7od1BqZdamH/3o6Dgo0QKFQrQDAa7AjyQqmirqsOQDclrAdfAvHAbDbYgt9F7C9BQCnl7vRbbt8DACdoLFE6KrMr/6pjP6rg1SwE4u7M9m7mhsL7su76f+76gu4hrB36l6xe9gKAik0SpQCu9eROIigEeAMCLWgux+wq0yxDDeZzZ0WX+2q/8CnWb0LtwChU8oA/FS7xom6rKq7zXMAzN27xvG8LQYKtye7HYm70AAAqAC7iES6Is+5iyObM2y62T663om77qC7+dG7qh65FaWL+AMQ0uCm1Ogwm9oCTr17oAjAFL4LSUAQtQDMUGXLs8Kh4GZSXP1sDvWXKs4BQKoA/ZoKqqurbJW8YdDMIUm8bQEL1snLEXa717i7d9q8L4ehMC0Af96ZiMS77Zar6TW7k4jLnt+7473Lnxu4j8dRZA/1sYvoW/hjK0LtoJA1cTS4ABlmzJsBvFU4zAOXoeJNe7vbucUiLBSnIJmHkUTmCqPNAMC8sDw9AMsDwM3kAMHey81xANuJzLdYux1gvH2jvHoCAUDJDHMBzDM1uzkouzNmy56TvInxsKD3jIiexsQGwYtGKuqrUonbDN7ecSl3zJmCEMUWwLm7wQ56keBpqcfnqhvcsHp6wW1JDCc5wWnhu600y/froYR4zEi9ILR9wJ47cSGGACA43Jl0HABGwLsOAJVEycXvEIOnIKVVK6TTcKUznRAiWuIlm6Gq2dUsIVDwgKP1qS5ibBcBHPgXsJwYwWhYzIaLHIjOEMAJ0KR/+8CVMmc5sgliox0ARtAiaAGb4ACwgNC9LQEI1Kll0BBSe60VPq0ckYZLBIL1j5T1yBWmoqCIGL1QdIZ3U8FsCcwmnBw49wzzlYzY3hoqkwWDh9xL3wLi7h03CNAUANC+IszkXNyWbKFTrinh3d11N6m35N0YDd1DXlFapgkqCACYmtJCKtwGWhwoEL1mhxyC6tyOIqGdqAklIGeUa8v52gtCsB13AN1MIgDLVg2gdszjiK1Fsh0YH92k19lbKtnaUi2xMNFssgCJfwC4yN1XbyC9SwFnsbuH0b1i09vz98opQRcDdN0zL3ziRRBNJtAkXw05fhC6V92rVw16qd11r/AdvgzdSzfaKzbdsM2BXUMAlZDcpciJhpMdyRbdzxKwhkndwoWhnOgJcHJ2WSjIsjId3SnQZFANTY7Qu+UAsV0BBiutqjeBUQfaKnoNF87dR9fZWCLd60DT9jodi63bvhF7hpkcLy3NVdQdmd+9JmnWgeCHn9axJRkAYwngZRgBnSYOAGXgsQUJwL7tDfXbqPwApKzQqn8AinUOQ/fuRCfgqssOSsIAhNzrVDvuT6KiURbuQRbttmcQm6GyXU4MNh0bcqLdln0blbe+JjftmYIQuQl9brlwrrehJREAUkQAJxjhkVYOMGnuMMseBm2eBWAbSqoBKWWNhlIQ+fjMVY/93FZgEMlyDPK30WJo7cDRh+q6gZU9Y9vTAJn40Sc97pJIAZEFDjNq7nCzGvOCqmIK3Rgg7VpusVoHySoMAHyvbYIg4AAR0WZQ519T3p+bwZHijJKCECJCDswg7qFSANok7qCgG1UuvnVSGuEa4SU03oY67SAhW4wd0T2XALpWAL3d7L19vL1Vu9J2yxnLC9GwuaAFAKHZvSc6zSQoECksutOVvvlXvDgTzImqvDbikIlO3vKM6vnQF8vRALbl0SIpDwCm/sx57nCt7nPJ4VGh3oKWHea5F8sR64V8YTFmALduvtt0C9Hm8LIc/toHnyKI+3ezvcKazSLt/yoNDot/+OExTwrfd+76TAs/nuvvsOv6D78zucCbkO8Jbd65zh3DLXCdDdETDQ9E6PAJcBAStQARXQDBWg7Akhr7KL6lvR5Px6CquukGzR4XwgwSTuEs0QDd/u7d4O7r2M8nDP7te7se3e6I0OzKAwCcDQ6jWxs8t88zkfyOrL8z4P9C3d75Ve9OH3GWq92akg1yRRCZVAAzQg+RdwGTMAARBQ9RVQBUb9Clvv7FQx4YKQC9JO214OfmVf9peACdmOE9FwC22P8uGet3Ef93PftyLeJXhP3I/eExTQs5YLyDq/8/ru84cv1m4Z1mjuGb9eEjTQAA2AAA1AA5dvGZmv+aHu+Xv/Pq+yK/pTsbX6qugo8eC33RZeotuKPfMwQfK3b8Iqr7G1v+7Z2+gsH/O1TtwA8Po9ARABSJFqNTBYwYEJB4Zi2JBhplCZJE7M9EjiI4wZMQrC+M/jR5AhRY4kWdLkSZQpVT4S1JKlSpgxZc6kWdNmTWe9UsXamcrDTZUNEFy4gGAoUKRJlS5VWgXCUwgVqqSEBauUVU5MtW4NyZHlo1NQuJ7kw0dQWbNj1a49mQoUKEGT3vJhe7PUrVJ59d69C6CUX796A+flBAwAsEugACgGlXjxW1CTgD2rq5WbQoKhMGt22DkixYoVNW4knanyaa4sW7ZE3dq1612pZM9mG+GC/6gvEUTdft3b980qM2ZAnYqy6tVSWX8vF6SKo6Cwr1uiLbvc+sy4rDDBvXS95F693sWH5IYqYahW49VLX/1y/fv1GGTNl+VBVpqxEfR/+cLmDH/9IoBvwNP0CI44qqzCikC2HmHlq1MEYWW1liKMkMKzylqtrEfMEgQms6j7kMH14MKED0wuSWVA8EqJhsTfcHFoIBhrRGqj52zUsTJePPDRAwww2CrAAL84g5AbiNRvRyZn+qGKAyHQgyrkYFGuSaRcctAlDLs860sPVZvOPZRCRGtELHuDKy4+QKELPlv+IsyWNOuSkZSGSKlzT5G+ypFPQGfyYKdOYpkklrVsS/8ygi94C/TRj9QwcAanfkhQwSshVUmVjCSccEvVJrTQyy/BZC2lDDVEU9O1LkGxTVAG5ETOvIBhdSkZO7sVS9LI3PXXf1LphFBE1zKKqKJEAXZPNX4wsNJLq8p0WZFUYYWVirzCiJVTxBSzy28pfARVM9OiVis+Jkl3O1nl9OvFc2lqxaFM9IyXRD87uldTXnTayRm2GhAKAYGV3VdHB354ElrjqpL24JAcBOtablU7ZdSLMSaVQnJFhBgpai6JqzEWS7kEMDo/TgnPiCKyV2X1el0V5jRlkU2WuhCgYWcaEKDZOyO00AIIkRJeGAJLG3Z4Wohzga5XsDodxbku+ej/0EMPTyUrxAx/rkmuRyYhEAAAOAEMFq9LYhkiiNL27quM3JbbJJ0r8Xnu14w4QOihQ9qi2UmTPsnhql7B2yaWuJ6ZJFPNPRzQv8guBZhSHveIFLZbtvy10cbd/HPQ2RLaCCCAMAIfkP521kDBTSL8FcNDR7XxlDQ0U3YsyTb7L7Qtf2iiUHCvq3PhizdeJhuGfsOGN/AB4o2PntjCAQeadSAlYYSxBRZhej9epFJDJNfU72s8mezFvD88GNCCL18r4t+XX3gZ6rdfhuaNuOQPIJi3HwihHeAAcDhAShSmBwNNaX4e+ZbjTNIhML1pge8xDPr8sjlUgMY0E8zSaDj4/8HQyQAf+HjD6d5gOht4BA5PkN70npAST1SgAs3whS84GK7FjYRraAGheiZhwbJt7jMXUUUPEedBIyZxbjYgnQ3wETQCekR1C1Pg4I4DuxtiSIImoRAPlWgdTADgfBf0nQa/KBONVOSMa6QZAIOmhQMgAQla+McUoVQcKx5HffLL2pdqhzUHsrE1ZDvZyZgmt89YxCKCTIkiFclISN4LjgOU4xZeqLpJ4dF1hDvk97xUuw1VJ5KoIeQlDLm5iShyg6MciSPVyEpY3goOcmTh9JCwBYVBaQZV3OTSOPhJlIQykLHkyiQKacpOpu0iqiRmxETzymZGs05aqOX0qJewSf8JJ1pW+mWXGjkdP0qzmKYkZzK9tkyLrDKa6XykON3JJCQ4wJpqaNbChKPJkhCOmxMEJlkimMN33oSc5USlaCxSRHGaMaALhRH16Kkwe0Jlm+YsHg7/GEGGKmWgyCwoRkLjzkcMUZ0ZJel4kFBPZ+lyOE+hyitg8YrkcLCPWnsgIAFaUpiUkqOWM+hHEypSnAZVPA7QgwKeFZyVQqClL93nAvtpklHscItCjcliBkpRmqETmtFk20So+tXfLAypUPFEM5YKU6zi7qklCd8wwUqWxhCUp/GTJkSG+Fa8osYBlBIOVKJiQ+O4lBNNnd8pZjo+ruVVJekSIzlROZqREtP/rmxTbGXXEiWoSEOGCSoFWmXqzTLZzq2WBQkfTmbaxGyuczcdZWciS1rYAgUqFYhKBaQhjZYiJ62yU9xou5IqUcZWJKZs7CV2+zGDfsWdrhVuc4GihxU8RbM1BOxJqhRTp3bpFKD0mHNBcsydPi4T2uLIclkWEe+mdya1vS11OevZ+YFlQy2JVZkiOFXnngK83eGpV7xiXoeoV8AqUUMzbOsLadSiuq67yqyO+zjnJA5DKpkOdQZMXFPyoXL9VY2+pKmZ8w5YxCeBAHVrKAwqofXBNepBDypzIdUklsKixW9zBbFR/orXv75qJogXMmIgk8TEwlhwSQbr4A0/yg8h//CDHwyglghFjUIRigmNayxcxprWtKh8zn/FiZmXBVnM/5gBkWuoVJQkx8ErZtCSDdADAxjADy5mCqegQ6FMmGUUaATulWNbllFkOMeHG6+33DmQghRkzIv2SAWKbBJOIJnNAzJFnE1higHAOQQheDJQcuEcq2lkQtDZrkyk6mfY6jeqphSb5fJF02YSJNFhZnStTxLpSGO3Tjvg9Q4GcGl6yAHTpoBznHtgipjsowQayIMGnP0BaEM7Fx/IRS5qUmHxCdhVgi7LJdT17XSFexLqcpV+3bRtK6NFXXoWxCjaXSoChctqGeISl7z1HBxu7J9YK2/aWvHvf9Pa1gMXCf+uHfyoHRyb2D3IdJNDoAQl7CMDGZD4Pixu8YmXoARJcLYGpF3tXEAh5KrIBKceIRaa8NuL6kX3tk0ZaJhfIuYZNqaW100d09642zrHebdlztrlhAuCYpqpvkulb8VVuD1pwwXA/01wqI9EzZEeNKBafGk5h0DiGk9CHjj+bGqDXBVjH7mDrnUKk3NkFA6yCThlrG1vu9xVgSYnajeq5Zb3vNt4FxG61Q2ffBtd8Eg3lRbD+bOmN50buIh64z9icF0/ithL1vrWN/51j0d72iMfe+cxknZuSegmfDCsqoKrbby/XOarp3vd/c53nEd11VpGy+uz/Z7B517wSfeSh9L/tnhccKMVAXC84znxCoPvqgcPlzg/Lo/5aIe92p2n/rYyUmqb0LhrIyZ9oLsNgG6Pgu7UcRUfxC/+bd9c7zgXGXfe7Vvr4Ftcgde94ecLTnGh+l4BCAA3+k/84os6yJs0HVGCDOC6rus4zQO56YMCkrOWa/GwmxCmwxsxTkgX14uq2kM/tNBAn8sYLRuFU5g9ETS/VAGu+hoQ+iOVpOO93ju6Psoat6EA/+M/AAxAgjO4SIuXDLADzMs86VOFT3tAViA5lEMKVjC9t8NBJhQPCnjCAKCAG2xCRtNBAqwTjWu2BQQ5atsKdlNCKgzD63hCMqQAMaxCg6u6JBpB26E3//07QzgcCxSgABSYQxSIQzEzLlxTwx4yCwgyk7PAQ0E8jUiowzoMgkG0wDT8oqP7Eg0EukSMRKB4gCAIgkioAUkUMB3kQ6fiEBjskEwMRa5IgRQQRZZbRBAyLO2aDuwzRVd8RSbUQ04wrg9qjzvDv1aERV3cxRychFmcxV9Sxfsri1zkRWM8RiDzReOixQnCocTxHGSMRpMAATMAARCQRrzSw2WcoFErOmz8xpGwRmq0RnCkqmWkOpn6Fmgsx3K0RjOwAgmoxmtkx5KaReMyplr0Q3qMxnEcRzMwgzJgAAGgAD6oAQaIR3mUR3Lcx2ZCprhjSIj8oGrUAQlggDUQx/6IDKhfdKyM7Mj3GUcdWEiPFKfk8MVWG0mULB53nMeUFKdOAICWjEmZnEmarEmbvEmczEmd3Eme7Emf/EmgDEqhHEqiLEqjPEqkTEqlXEqmbEqnfEqojEqpnEqqrEqrvEqszEqt3Equ7Eqv/EqwDEuxHEuyLEuzPEu0TEu1XEu2bEu3fEu4jEu5nEu6rEu7vEu8zEu93Eu+7Eu//EvADEzBHEzCLEzDPEzETEzFXEzGbEzHfEzIjEzJnEzKrEzLvEzMzEzN3EzO7EzP/EzQDE3RHE3SLE3TPE3UTE3VXE3WbE3XfE3YjE3ZnE3arE3bvE3czE3d3E3e7E3fZKiAAAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYoomMLYLHAHC4U8oIKOXCRxYi4FdDGjCO8wEQOUmThA4y+CcFBDFgI4UIBhXihggossGCJJTzKtkAXC9A4BQs45sDCHi+w0CRFfHQZmgtuuNGFEAukaGQcWWQRhyVeFDBkIT9hggkfcwoyiSB8TEInnnpOMgkmf/KxySSH8XFJnn36meeifRqa53cjLCBpGyNMKYUPmErBxBQjzFjACFs61OWooHkxJJFevGBJHC4CwkQWXKj/YMkLXhQyQiFM6kRnnoD2+uevdjK66JyEDnbJoYuO6qeeynbJ7KHeMfHCHkwwIcWlPhwRxBGZanrlC1NMoUKoCuHZJZ6fqVBIkS+sqIKLXHSwR5pxIEnrrUS+gNOfcgpLbJ7BNtooH4IQ5qyzyyKcLLOLXlLsdkyMIPEeVBLgAx0C0DGEFFaCK/GMNJJr0Lmj8gFaAV0EOUe+79LLZiEuzDEHFm5wYHMLQthEp5y9LlyysALbKZjDCTNcstEHTwJtd5FGWcAUL0hBwBAEWDmCjAsIEUMMNm+wQQv5iDyQuSWL5mYBaKd6pKy1uuCCEDTnw0ELOGyAQzI18dsrz3zL/4m0s8EOtqyiAhuqNNANm/wdp5VSm0MOTLDAaQGSdhGD3GigsQEjxmwQg9g/e4karDmw6eYcWtfcQgvGsG7MKi3MpHegfvra87+1+0kY4Yg2eujAvwtrHhE+VL1Hp1lbbjMHXm9gjDrnqCNy6Iq7VoAQYc7tujHKIIPMKjLNjok2lxHOLENJP9peAVt37bUxxiBDizG0kEs2qbL5uLrztHivzCrK4ABM+PYnzCiNWUprSPri0wXmoaFzyVAHMsYBwH5siXq1wUILvMdBAK5iGjh4id6EVr5nqW8hh+vTfISgjg2owxjjoB8taLGOEPIIg7ZxA/2U0T8PrsKGLBGfAf+Dpzv0OWxR9cmHOswRP1qsAhyrWIU5eHQ/0d0GB7RQhhZdsQptuAKIKhFiCRn1MIX47D4bkGIUn7iNH8IIh7hpgRb/5wpluMIVLRGjZVKIKAUSET8cqMP/VtHGNr4xdLtxAx1XsQtX7AJ8K9FjZQp3CQUKTD9QbCMqtoENPIqoitXTzTRQMQ1H3hGSKdEboIbop0NxoiEIPCF+oogKV2zDltsQERwr0wIfRpGDyMCBMTjghotw0ZSb2AUywkhAVhKtE5ZsmHVaMMP5wQ9+ztuAzT5nkW2ggpCuwMYnIBGiXUbGibuoJRd/uQrvXRObLRDgRHCwik2Y8hO9CGMqeFb/Rsq08oD9RIijVCidZNCCi06cIf2MkYzONW8D/fAcRRiBimfc8Rmr+EWIQDmZeqLim8dcxTq/B8xrBvNrE4niLla6i0948iSqDKhkDki0SqLPd9ExxkfXuIoZ9nShDMVm5x6ouYmc45YWxUYtQUQ9UFLvqVA9F1xc+omq3tEVteRpO9vJwXfSL3YRYaQrkplMMJIkpgakaQKN2CjofNOl3+RpNedHV/g1tHPwU4c8IULIbWxiG1U9x4eiStjClgxP5mrLKj6RCXtS9ZRXjaIWgQlMrnpPIo78BEt3gRJVQrOEDnPYK29KOOcg4xmoaGQt49rTKCZUoe+0JvxoIb2I/7QUsNugxicGa9je+nYtma2qVVt6VUfyFBn/IylXucrDYj5EGb3Q7C5SUceT9A0TmKnpshpCNEU1RxmfQEV4q7pYufY0GD3tXzUXqtBxTHCvDVFHeHfxDGo8ow689a1+oaqWen4CE1YNcDCMkRAdvu57/5ssAJ3rEOnuIpmcNQm/JpEKmUbmn0qz6UJ6ZyjmgFezAf7EKlBBiw0kJAbwW4UMX/s9+DLkGZ94howf/CGn7jeqHE1LVTfBY+G+1CEtqKMHtRhFiChjsyuFqd8q7MwDwjK0skTOJzYh3PGiIiL8c2J6n+hihZiDvrv4BTY0mt8bmzmUZREEj3tcVbM+ZP+NCa7jjxmyi148+M4S3ieFLQwZtV6iFE8G6HLEK1xCE3gir2utllHZkGf4Vcy6LSfJQgdKcyGW0qO6H1qmvGbhXiTIAAzpnBWCDEyM9cH5LAkmOvEnJpcvtKHlLkA1fJxVNHbKhP70KijIWkYv5By/+IR9qbEJsV2kimhZM5V5rJFG2lGkrgBrQ1YKYUwoQ9WdAJSr93is0AKaIWrlc3CoPOWqZkIjcWWtmxPyizD/4hebkIexK4Jss+y4x8XWiCKOycVGPmSldk7FLrB7Vr+tOrvdVtpoFxJaJyNnseUW7xQ18sQRfzOXDcbGM+D9C2rMm0s/O4uyN4GJK2+EFqX/LO6hGYKDZGKizgQfyZ4xse3KJPxYCzcjrMX9m1M84t6h4MgGvFneRz4kxvAm9scngkizjHy3HRHrHZPsELL2ws7TIMmq95mKz1qGE5cAe4Zl3fDk/HzZ+eaIK1CL1U4+ZBMb38QvQCHvpUOk6WSpJ8nX/BFHNtKR10bINBjZi2Re/eqm1nonuO71yoCdExnOeUIa7jCzc3oT5/YIOYj70Ykf5ByuIDY25P7uXzwjFTw5wYDwPpbLPwLzH9GsK6T741Ju1vCHP7wrYh6Sre8ZM5CH/LG+zfBZS/n1Z087RyxOVeXfsar13QSx3U360evkBNjHfoBYL5bXY2ITr4d6/0daYGfNUrmRdibrdOts+E3kPhXKB0kqKrzPxlMm+JEneyuRg/xlm9wj5DZ7a0dlFgVjuhVm9iV3pDd3HocT2UcF2Qcg3BcWckJyr/d/HeF+0hVdSFZndYZ46/dg8FcS8zd/NAd8nCB2YUd2x8JzvdF/PDZqzQZjLQV3nxBso/dgxEZsHCd31PCD5DMT2feAYzAMYwCBQ6h6+jGBYFGBahZ/HGF+K6VZdnZ1Hph7hdcLmHB4WUcSi1eC9jcZKRh2CseClXccMLgJvrYR2wBjVQVYyQRvU7aD0ld68CZ92OCA2ZcARziE/sGEX4EJr6dmjxASyCBwd2Zn1FaFVuh+If8YeKpWgl2HgmEXdpKHELB2hsYBfsq2hhoBCY8wezDmhjJGZdRQetEnd6mwDqmXhEr4hyFXFoL4fd8nElLIfoUHcA+WTLLQEjQnicAHAGLHCcSnEJlIa8TxCK/HY4/giegWbKMod1P2DOcHdxEmFBG4fbFIFmqmZt8ngxqBA1eHT7u4fl04QJIYhpLxeOzIXZWoicVBiGuGgR4Bb4CFdJtQUXVndxwBiF7RjXsHhVG3UudYE79Ygig4hinIXWDXgvy3Zt8nkByxDY+ADYL1FAkwIPdTMGWBCpNAck/4FZI4iZeRgia5ggwhfA55HKjgjctYF2IwAWAwAWKwFg/wAJH/kAKS8TMcWRaPIAjfp2YiOX+xEAuoV5ImSYzFOHkNCXZmF5CFSBdg0ARTCQZqcZNYWQORQTCZdhZzwmPfd41bUYJGeZRfl5SlsJSY2JCl4IIvGJGCMGVzAQZXcAVN0ARXMAFoUQMP0AF92ZdbSTY9SRabAJTeKJFWwQmpUJaxkJApWAqwwJDdhozJCJIkl3lx0QQKUJdXoABNsJcd0AEpEJo6CRkEY2lo8QizaJhdQZaL6ZgpaAsN0ZCVqByCCJFRCRedqQC8uZl7mQIpUAM1AJyByZWDSZgEU5iCaJZZsXhGaZTAVwpJWQvuiHOUSRwAaYGIiRa86QROwJtXgBYC/1ADAlCewhmYl5YWP+mNgiJ+WEGUi8mclPEK0mmSankQ7+iUyqGa3nibcKEA3hmgCiCeAsAAEsAA5VmcgoAuyRaUcgKUvGcVi1mU0HkZsECMGEqdDJGf10kce+d9g/gWAOoElOCdA2oWZmCgZiABiWAFDGAGpqlpaTGLO6OazHYVqeAMFCqfk3GhaUmMkbmhj7dW+xmUQIl8ecgWCrACK+AETHqiXGEGOiClOlClOlAGByoAKMAHpJACBloGa7AGIKADYzqmhXJYa7EzQPknhdkJ4OgUqSALO4oZFwoL0lkKwiCZwtccyviTFViYqpBqaeGklMCkTXoWOmCgiSABEv/gomsQo125FqqJCRBKqbcpqFERpxTamBZaCvQJpAz5eB1qHJkgCD9ZmOAniHGZFoXqCTywAjzgBGgRCAXKqAkKqYnFFpVqqaq5Jy8XFbEgpxRKp3b6CpwAC76gp/rJp4U5iOAnCJlAi+4pFhDwqjzAA94gq2cxnuU5nloZo+nZFms6qQ9KqSQnJ08RrBTaixYKC7BAn6+QrClZicvaHK4AlNFqmPyJqpnwDGPhqjyQDde6Ar8ZnMJZmo9hnAzqFoDSjZY6JxXoJ9spFMEqrOxqGbXgru4ar7MpqpfIHKqpjIaJqgD5ehjnFSswDM2QDcMwDAR7FqMJnKHZAei5oGj/xha78JGCAqG72jcFSRTqKqcXWxnCoLHuqqEMp5Cjqhyo0Kfm+pNQG7VAOa1YkbIs27IvaxYpcJN+GZqRsaBge7NtkbNr2rMPW66YGhSysLYVixkZa7TymrQnaR38uaDraaq8CpSFSY9VwQPDcA0tC7gr4Amw6gnecLiHi63ScA3ZQAzxYAjXELnpcAjREA22AA2cULmcAAzRAAyeGw1D0QGRgJWREAR+iZMPEAQosLoU0LoBQAEBEADcEACtgAutQAq4GwqogLu4mwm+GwqhkAlBl6Zgu7Bz8X3ic10GtwmcChRr+7xDSxnC8LbvGrcKkZT1Sh0hS4jmaqrd+AuC/wAKQOmvVsEDxAC4w2ABxDAMtpC+xGAB6WsLFjC/FmAL9msLpQANnru/wAANpQAM/wsAngsKwAAABgwMQdEBQRAJpbvAq4sCreu6sYsL3NAKFsy7wAu8wuu7HNzBHPwImZCbZ3GaNosX7qdKyru8AvcTHgC90TsZRQu3HTu32rGeflq3gqiMhXmkVOsUzQC/QPy+83sNFhANRXzE9Vu/0GAB+XsL0HC5PyqMBjzFBAwKVkzAQPEAD6y6DxzBsvvFuGC7t5u7pJDBZrzBIdynfQqtmGkWJGy8d1F4v2JwKQwoaYsTLQy9mOELRgsL0jDDY9gdqoqqllq8YCuIrBChTf/hCUI8v41Mv0ksv7ZwC5NMyf6rv577v2lZCgIMAKDgyZ5sxZ6cxQ/cxRHMDRQwu9wQxhY8xrlrxsEbvB3cp2ncp2nxxmIbx4NSx/vEM/skljaRx8+7x7BQtEX7xylpnx+bHc8avnhbvOuJCaBwqlDBvo78yPNrxEZ8v5TsxPnLv5rMyQUMDFUcylccFBDcuunsurA7wWLsymUMy7E8yyFcy8rYxmWBy4ExDed6rigsJ1w3sS0hCx7Qwi28x9NrCxlrvQmBvcu8HQMHtr/ACoZ5yAtKcqzgFCtgxJCczfdruU9MyfhrC/yLyfsrwOIcytRgzkt7Ex0Awah8yl+8yqz/DM+hEM8aLMv0fM9qDMJooc+EwTNaqLzw5yc8ChMFXdC84AEIPb1F2wyATIznQamCAL4VvaDii7e/yhQ80L5JfL4WELnZXMTCsMSWO8n9CwwknZYAwMl3CsBX/MmgMBRcHMESHLvckNc1fcEYjNMa7MGmqsb4PBZAbRiD8pE0d66+DNA/6xIYkNQFvce+IAyUXQsVENUPHR6bAAp88AjiW8iUygri+wuKvBagLNfq2dODLRaFjRhz3Ms8436rBswt8dgesAQegAGSPdnTywOALJ1f8QjGSTCskGlcSTDCfS6CGbaGzNxcWdyIdZxXUcjKuaB3cgmCkMhwcdqXMNep/6naaGHIuVwY05XY8AfQv7gJR50SGPDY7c3UlyENvjDZvlALUM0Q9WmSXbGeb2yz/q2w/31pYatf/i3dVvEJxUswWY3Vnu0WoHAsD+7dZ9HTPn0WzQ0Zu8x1NLeFXPcS7f3hun0ZFTDf810LnvDbmT0VeHK3zd3iLu7iuCzgw53cX8EKd4LV1o0JoyDNbSHXEJ4WpZrGgjC8ZnHhkbFPm/CFGt4LnfDCJwHi7Y0ZFSDfJH7Z+I29XAHdL77lXH5phCXjBAMWv0Aw2A2UfAAKekJ3a2HF3d3dqS3Y4c3clNELJljnG77eJIEBJtDee44ZnkDl8w0BgHyhXMHiXX7o4v8t44oO4Aa+Fd/H2eJ75lnd0l8R4ZcAAKXdfWo85HEetpZRgnfedalwxyWh56ZuApgBAVNO4oJ+5fbJFc3d37Eu4LMe4yQ83F6OWGQhvpMg2goevuMNFp7c5hJuFhS+2mFh5Hs0kgDdvCdhAtAe7aleAc3gC/Ld6guBvfdZFd4Lto9wClDwCKww7qpwCuQu7t/+7Yac7qwQtaxwCgsK7/C+oO8u3JbW6F6RyM5MLJyNFpaO6UAO3hZuyJnhDCVIYfD3migR7dJ+GRCg6lQ+Aw1xoRia4lHR7QsKBSpx3FJlFtQAoQRDqf1uFmge4W5Z6AJf5ASvGaE+f73g5CFhAkX/MPNFgOqXMQMQf+2zeafAvRXdnu4bv5Fpgd2RLumUrhU+/uBpYbcii+xgoeyZAYbz1wmkHhJpQPMzjxk4XwHU7gvYrhA+iqFc4XNgC+4qYbNlc8tW3CXi+8k+cQ220Nac3Nae7LlyT8BK6bnHYsBgN8XDDgCXzuZsTg3BjhOrXMaIf9PynNMePMsUDrXQGtg/6fRfAfWZAdAuHwtV/xFRkAZp0PlpoPUP3wwjLvEpyfMWDxU/v6Ab74+sLQjYPQmcnek1wcSbzNZyv8mZ/L/AsPfDR8WYPuwP7jDCv/ZBcbuooPiL/9eN77sg/Pz2XM8g7L1N3+lg6xlKPvXOYBJR/xAFJPD9USD6qj7lX58Q9Fmf204Vge29pxD027j0Z37muq4T11DAfn//4lwKoKD/oAwQAC6VunQJAABQoAQKBHWp4UOHDvn8o1jR4kWMGTVu5Mgx1EeQIUFmCkUy00mUmR6pVPnI5UuYMAU9EtTR5k2cOXXuzCjI50+eQYUOJVrUqM1JqZQqjYXhqE0SUaU+pVrV6lMgB7QYsVkFAoQKFZrNuMmplFmzV9WqFcRq5ilBqtZyFMTH7t25efVmHMUHlN+/l/YStTXw4OHDpQAAQ9hYocKCkQ9CfhwRYsKEg6m2+khSZOeSKUWvJB3T9GnNqavS/FlT9WvYe1N1Wqp0sP8IErhxx+bdu2JWrVs76vn6dezNs684Lfftm9Ujt25zwbZbl0/d5tlzCpp0SdAlPoK1a4QGgBMAgugVA3vsGCF7hAUbFpwckb5BgwkfARuPk3PJj0jxDDTRRmOptJZOc2mmR/pzkKLWaHpwwgdj6UUp2mLxYC8ROoShQwpDNEorI4AAokSOvPrKE1/IsqkUWEqRkRMR9YKurZlYga0uHu2q0cFJQPnOr+9ExO88xQ4aKEn3GFNSoPswS8gyzC4JspQfMSKFQM8K9PJABV/yiSbWXMrSN9Zmcu1MNvfChLba9oJhTjoRaPPOjIwwwoY3bLABCBs2UuOHKqqYAQI9boL/JcazlsGTKlWgIxOKHXvE7lHe+JhkyL+MNM8g9DAdLBiTABT1VI0iXBNVVnfyoLZYOtkwr0pooKGBSiq5oFUKZfD1VxnewMeIQboxAh8bgAX2nwPgQAKJJ55A4iZDD/2K16AeUaWtMn+C7rq7HrmOR1bA7ZGPTHICd11sNfsrPE1BCfHJgcJp16rQTirp3lPTlJBfgDHqxBmmUnFGrwYSRiDhXQOe0AZ8hAVCWBQz2sKBQX/4wYGbfKnlY1hecdimU1x6Dq7nWlP5p3F9qq5lM28yF9yR1QryryHnhfIgWGomKl+UfGZTVaEB9iCppTrRCwEELnAaAVGKHu9EfPAB/0KLZjXyaoYVxHKxIxhh4SQcGqW+CApJSyaTTDVXdtttnFzu0eyn7ApsVSCfDJXunIBeie8QF1wQcF4xgTWvCBD4IoIIvrggasJjs8GIrbB2Fo6MiIPAkwqk+ZqjRWFkjnC0T4mUQZPdYvtt61puTeZxaY5cqEngFWQUnenbe/aN/E6X9/HYjhn4R03wwAMMPDDhKsabb/wMQm5wnnHi9wIODjii3SIjFcOq4PONRD+rbNJPZoWVU9z6CS643HYdbpvOva56nRo6JUi8+5tkZ/Poxyg00vzOf7wp078GyKbkycIpa2neF77AhjMsbnEROGBeDvAsaG1BgxjpHucgoP+oUrxifLwLhVu2JSa3tM99LGMhUOLXOh9VsCOTOMX9jAQqg2BJhigJoAxhI7wG+ZB+iRMF424ANSHOJYMaxNgTLmItTzTDFx+0CVpGmEScmMuFHblLF7EoKiXRh3wH5CFLvjgY05wReEx7GhLVSJUDOOBiDsCYGi7SPWlMETloScsbN7KuLXJkXXjxI5vmIxkflvFvhVRLGhnJt1sljGGPNMoT6pgxjlXkUJ3LIxU7YsU+UrIi4uKRT24Cw/mJ8oaRucQYB3gSl5hRlU9x5Cx9Zitc0sCWQ3HADwalBz1UYXsU+UrnfKFHm4hwOaFUJSlLCbvW5W+X2WElfXwYigD/LnKaQ6nlNgGGADrBoAHe3MkTNAbMQlWhImARyzE9yRE+MlOUpRzXKWcmTXLGppqtTGQ2BZhPnXQToNhCQK7GOVCcqCGYhTrUDygyA2nk0RfEqMAel+lKSsqtni982UQQ2ptq9k+GpXnJR3MCE5WYVKWAYygErEVMiR6zGWVZ5ll2KTeXyexc+FxpXiATGYzSL0EM6mlHEjS8oiY1YGqYgbWK8w8IHFOqvrAoJ14hnlni1JQ2AWQMlbqXQy6knzH5akZiSZqyprVdKvrKMX8AgZgKg6pVXCYssKpK+HXEOntVa15OgZ+CBLV6R0WqWrMZxL4mVlQVYGcFfCENCBDj/5i1OGZVRzdLl7gOmuxS7FX4ACWDCJZ4qFHsSg7UWdTeqQrNEEs7pSqMWsiVphe96crsea7UVuWzkrnrAGMyk84qMrfD/VFUHTtVucLCY7NdZm1jx1OLuIyzxC3K/gDbW/9lAnXALW1KEEtd8I5HD1J8LWVrYYuPMfeyeG1NKrm40/ASJYyRSeR2v6vW0cRXv9mpgGSPKQzYwnZR6hWtH7Xq0fd2dL9B+Ws166smA/a1QAumcGyKkUcAxxYWthgwXWlrS5W5ly7wrbC6MOHgHY6JqIo1SdBK/OK9RDXDAq5Fhz85vlJMorY4ve10YcwR8KC4gtqFMHSL2uKT/FjJa//xhXJhUeNFxYi5OT7VAAxggB70oDnVeSZXZ4bgJWfELqzUcYq7FVwChVnNVPmYMKIcZfVit01YzjKWfXNPI1Okq2Bec0XGHJkyD7lthU3rgPbVZ0QLxRcWeHKUQ6heAIjKFD0YQA9MUWktx4YPrGnZKUmcaIqM4hKiDrIPF6RiNI8E1KvWSS1eEeVX6/CTF430j3Zwa1zvYACmMAAKRjGKBxjg0rm+9V6YESlWnBA6OlUwq/9M35Gq7L5p/QyrrW0TT9ji1WKTsoeXU+tHVXrXpph0CELgh9RkloVe1etdeGTtZ3fH1NLubCi2ZO9QXFvfG4GyCJXDXH6Kqgd0NkD/CJSwjwzsYzDq43QgE+xueFcz0Adc3VYTi29SbGnfG8dIOGB0lp7ZpJXLCbioDOAHP5j74PzgRwn8WheajCvmOpFudeAdnoKEZ94FrHfGM55vjgcdqpwI2ZNvMvJWyvlOBT84wkvw9CS43CrbUiELT7GTLhJy1fACDx+uHm2V9dznpBB62SmbE04kPe2tCsE+9sFyqOeBHh9IwlF8cor3uew5PEElnxEt6rv0xYcRErFaSdGKsZdd8TlB+trZnoGnlyAJSciDBiz/gQ9ooO47gUJrqh72oGT9UlvvehdLP+asp171mmL96vsys4k/KMTP1SLr2htiS3W05hAn3uEP/4/4xQe/I2qfRIHx1PI8TN7yGviAODCfCyhgHgrM+AAzNJCHXHwA+iupoYrTtD6v51kjHbUL7pwNntefHvWrvwt48P5+r4/idt+Zv/zX9Xq7fH1Ct3dm7W2v1f+7PdoTP59BvFY4wFYQPgXMCJILrHvZB82rvMvDPO3LBejLBVXIBW2JFGQ7H5NxiZK5u5+Qv6EYJK3bOnjpC/Vjv6zrCxU0PRZcPbyjkIYLwAD0v3vKQfkhwJpBwFbAhQRcQCGkiKRrJXBrlyS4POZ7PguEAlVQBSd0wvOZQjEhkxBkGR0pwb7zu0QLMj54wdRDvy/kuhQcQ/yLwdWzONmzQdbRQf8BzD049CLg+UE65IYhHMKkK74jvJc8aD4KtEALfEJBVIVko8LnAEG4ODX9Ewryk51rC49fG7Wcg0R4gcRJBLxKRD3vGKQtDDy848HXcJnvwz1SlK72ahk3jCZR5EK+aQVuwAVYDIA7FEK1czyH6cMKhL5BHERDhI5DZJujIL932zjVm8TAM730q8TX67tOdEGbE5GY+7/aexlTHEBUVMW9Gj3eCQBc4AZuCABZnEUFTDtyVDp+Yb5jy4RBVEdtuRHoUIX00ZanwDsTLDxxvMfsCIBvBEc7xMfF645y5Bvsc0JB9MBB9Kzwczd280eG5A19BEcKoICGLDtO6A4rMcf/aRKXRtTGiezI1IDIiJRIj9w4i0y6j4od3WPFkVzJq6CAAIhIFBBJlrS2krRFcqJHVBrGmdxJtQhJFPhJnmS1msTIjJIfLQpKpLQKmPzJIEjKLhQy5zJK+3NKqjQKFEADFAiCIIiEqlyzgrDI2BOlTUPF2utKsxQKCsjKSHiABzjLJftKKwnLR8LBLyQlt7zLnPjJtXyADsBLGLvISQjMHWshjvRLw8SIB0CBB4iEDkgBijADEDhM/YJLwZylcimluZFMzcwItnyAFAgEyAQB0dxM6gJMKxlMRyRN1aSIPqgBBrACEDADyITM1UwtwKxMEBvL2tzNfwhN0ZSAGhAA/wkQTdE0A95Mq/AIzNM8TubcJeI0gzIQAAGAzdBszq/qju4ABbm0Tu58o9iMTTPQgcjsTqUChsCUN/JMT0b6zvFUz6RyCPeMT/mcT/qsT/u8T/zMT/3cT/7sT//8TwANUAEdUAItUAM9UARNUAVdUAZtUAd9UAiNUAmdUAqtUAu9UAzNUA3dUA7tUA/9UBANUREdURItURM9URRNURVdURZtURd9URiNURmdURqtURu9URzNUR3dUR7tUR/9USANUiEdUiItUiM9UiRNUiVdUiZtUid9UiiNUimdUiqtUiu9UizNUi3dUi7tUi/9UjANUzEdUzItUzM9UzRNUzVdUx42bVM3fVM4jVM5nVM6rVM7vVM8zVM93VM+7dP6DAgAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCO50OIxM0hhBALuFBAIS+8oIIKLLzgxYwk0lZAG20UMMIUezCRAxNM7DHFCCN4UaNuMeQTAxZzzFGAF5aowAUXKshYgAsLYJEkFi4cudoCXSyQ4wgvMCGFDwTkwIIXNy4gRBdJhullRZjwwUdmLsyRoopevGBJHFlIkUMWccRYSCEuYGmiEFgsUMBPmAhip52CTGKnpZFeygcmdU4iCCaGlXIJH5dYOsklo47KByh8TGKpqnda/zfCmGT66IMPgRDggxRMsDBkAW0uAKawj87p0KR2YtZilCrEwUUWWXCxRwAB7PFstHHkoIIlLXpxKLAFWLKTq5hiMkmnyLaqrqmtSkoYqpauuy657MZraXVDAOkjAQQM4QMdgTxSAx39ZkGAoL36OuQIwLZBprELpSvIZXNggQWKLhQyQpTQQlslm3meqKUb+XDQAg4tbNCCGzidG6mplUo6ab3ymkpYq67iTG/NyJ46anUFCIGjjj1KMYSuBAQ5xY1YvpkkByajwYgxxmyQD8QHpZvsZRzk48aJibKogrZVFnLliTG4YXIL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xYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOJgKlhSSBtCYBEDBxy0wIExGxhjDC3GtDCibFMUsIAQMayIxgZAGpOMjMnYeGNsXMRRIgteFFKAC0KkmE+LLcRoDDLIrKKllqi4gsoqR45GgBQ5sDDFCDou0EUXK3IApJUy0rLlKl+uQkuYFvHBB2RejPACC3FwUWaTLuwYw5Qt1ijjKllq6Yorn0DqyiafBAPUJHxMIoggk2CC6aeTYJpppp/ygYlhpYR6ySV8sLrqJK6q/9pqppc0lwMTLOQghRS45tiGmmzGgIabMQ5p55yOotKlsng+pOezjHlRQAFevKACF1nkkAUXKrxQyIkuzBGlim64wWILVeIQJzLKtMulK2DuxMememJi6qil5otvpoSVkiqslwAc8KqvwtpqwJgqd+YUufrgMAE57OHrr8G2+aaVWMrpqJefbPPJJ7s0u9Cz0BpGxLY5BJrFtkz00QofFACSA7bbKqkCCy940aSTLvQ8x44pknuuizUKgVOo+Hrq6b6iljoqv4MNHOrUVE+tJ9IGTwJKcUP4QKauBHR9RAcd0PEwmbjuIfEIaBbQxq8L7Lhmj22yeLExaLghskEkl/9sWCFCLDCHCwUUYi222MaBM88/B23u0C3IiOUqyqwC76OPfryJpDZ1+qy9Vusrat+hdiIYJwQXXHXoTLdqHAttjDDFFEzkQIAPRxzhA8QsrO023HIHm4+w574pY5xbfkKnOXsP1LeeiCEaQ+AuFOJFrkoyyXOh4UaZormRa4x5lx9rvsn55wtyfk1Pkwrq6vB/OtgkqEttP6z4I4wv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06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhmzzyiCCC8IEiinycqCImI872SSYnPrLJJiuaiKKJMdL2iSA2nojjikQWaSQmgvRY2ieYmFijiU2WWKKTRhKpZEV8tAjZJ49kAiSONQKpI4pIVkkkko/wgSRQgkzi5ptwugkAH5e8eQmdl3DikwxvAGHEAXAg8cQWDhTKUylZ1snHm4syOsmdKS7q3IxSOimlmDkCiWKJRKq4Ix847nXCqCfc5imKjLniJadOBsmqpmaa/1mmp4/w1GicuLp5K5ycXMITn2/YgM+fcDzxRKFq/LBFTpjU+aiji0Y7SbRZRqvcJ1xOWam2jzRZ5ImxGpllknaRSqpt446bWCY3BknjlK62Gma44arIxy44qZnltPxKS2eubnLyaE4yFMynEUbYYAMQWmgBx8OCPqEFTrr26++01GI87iTHZYLJuzayG6+2sGoKbqynskimXOYmIAYV5qKlAwgzG2Uvi3wchq2J25rI5ZeVdntymWQWjQmSs3YqyNE2SVvxvgDjKrCeNRlsMD4H/IHPG/j42fABgD58EwBx+lvt2WhXW1wmXD6SraVv26jpkEF+S+TJ4toLI1vmjv9KhRhgJNB3qWSZocPhhxelstqErcIutp+0O+WmQVq6Cba73Kg5vSmfyvhMUONaLb92/vtonTsV/MbqNhjhsKCEOpDsDw7Y1O/tF9Ope9rDoRKK5EHTGK+82N4I+eQlq6w0kqM8ckpcpMI8qsw0lyGBFYeDMJS93BO2yeOR82wj8J9cJMiQp2LSeYozYcyvs3Ve4uyuuPZUsLDEwi77Dz/oUcUMtrvT+xJ1pwLq7hKROptwPhEKyIkscjfymNvKZxG8KY17qHpL375iBsMZDnGJkAADBPCAaqVAABIowxoQRzOa6SRd6gpMMC53ORvt7HKCQAVINoGxFamP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Pm3UTm3VXm3Wbm3Xfm3Yjm3Znm3arm3bvm2KCAgAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhn2zChyAooniiioLwgcmIs22SCR+PPLLiiSui+CKMMZ74SIoobgLkkCryYeSRPJYmJCaC/Ijijz8ymaKURJ54Hgg6SIXkYz/6SOWQX6aYI5EttgjUJJfwcckkRk7i5ptvXsLJm5xwAotLekBQwZ7NVOBJBdL40owvhNbiizDC1AKLorA02mhPRx7JZppsqnnkKHxMMopzmNjo5KdDQtmkjmWOyaIgZp2g6gkSrXCNBbDG/2rLNVxhaUaWBHUQBAooUEBBAMBSENSNqC72CCY5OknmsswCGekjPKGZKZxxUrvmJdjOKSdLVVSgp55//hlooIQeemiiizZaiqMV5NRmpPDGG69ynyhbY42jKtuss2WKWapYq64KEQ/DDGPBq9HAWoottmiFpQ4QmzFQBw/s6uuvwOISAFBHlplYv/uG3KypOOaE5pvTVqvtyXKiWeeaLEEg88zg8unLuOUeagujjsLCScM4pSkvm0TLe+Qlx4365Kf4igqk01WWaiqyLnYVcAJiUCEwQ2Ao4LUTYDuxwthjK2AVxDqYkQgDApSRtg4M1FBDCh3U/cADkQQRCQoP+P9kZKnFFpaJyIJI2empI7OYI4447kjTydTSOcmccM5peSecAFCLSnrgQfPnfwIqDc6ECmOLMD3D8orqN1Vq9OvzEmevvkrn+/S9ZOLY4pjEpphVwCdQMcYVCWgdsEITNHHF8ld4rUDYK5gtla0PryHB3BKsoQMIEggggNwphF83xXf7VOTugi9NJKhEYrJJiZ+UuMmXf5sK+O6F1xQ5nNeyjG22cuLEtjg3gxlAwIAH/NyepFGBctXigTxzlJ1g4QubwO6C8BpOJo6lNHstDXc1+sQvNkGNZ3zChJvYBO1utLgWgYIPo0ARV1ZlPFY5xBveyMYwiGEwW8DqFgzDCtr/1pAIHawBBP9gQAoqtqteYYwbAcCF+fBnJMLki2mhet9FTEQjxkUKf4GDSeTWNIlOoAlb/gugtjjBkh/MoApvPKATECgzby2QXLUwnaJQ17NXAI0mmRqaFzsmL+HcC4T2MhIrMnERqpFKd4zLn1aAFxEeEIMYFoAFrGxxCwsEEStYCiWu/iGAijkRY7jARStaYT5IhtEvTRocFqX0CZDcr2O7c9xLIgcUNVThl3qowg8o4oudNYoTq6tJIReCqQz+BhWTEBXuBDE/aH3ERCpCVr+0OUOMWIAYDCtFNO6kle0tBAUZa4UqWwm4wKTwSU3CHR9MYqN3HYlqMeHlT9Sg/wc9/OAHVVBDRYppi1es6xXKdF0VGRK73mTiEx+skSxNIqR+/a1Fo5jEXF7FMFtE449leUDGVMnKngDOSn+5YjybtAmVCMlIyKLaiXS5Ev5p9CcO+KdOHWCR1akOFusCpEJvupCG7iYTTFIhvqj5ypJgwpEsiiZN28IDHzIMGiAlSySiyI1VShFSkJwnLA8Zz065BKIzjSlMXaJPnzhADXCFK08H6sfUzSSQkWqIUXPziBT2tUYqbGlLkAWKwpXqFFNdS1U7CkS0RCKVJC0pT2zUzr6s9JCPQEVMXOSiFmmzFy1pa0+24IDSlnYLFxGGT31Gzs3uFSGvtc1fqfmIev9lNiaCeGFhXUQ0uFTVk7f4qGMhu0rJ7iSSC92LXzFrTZkUTq3cZIloefIEB2zhutbFCFAdVQqEblahYi2qM3OzwcAekiabuIQgLlFYjPqWYUD8pFkeq87iTjGSfPnEBmlLzVpakElsQhZRU5IyNwEFCU9I8BO2gASMRJATpdgcTOKFNIaO9za2BSxtb3IJIb3QSKd4yzAYK9+yBEGVkWXnv/SCCqQGlqU5eaGK2NTUkhR4wDxBgo51/IQGY8QWxyxFnb574YTEVjauEESG45mTJqn3bzhOyzXgy8msjgUFqSwuKfwmtRrT5UmBTWFFIPq0IUWzuRRxJGcFi5KUwez/J3CI8wHiDIeM+GK7dbLThOEV5YMcOTa1PeQmQlERVMiocH/tKzzZTJGwqrctI4bvwtCC5VaQwtJbBqtF9SKje6nQvxGZHzxn1zQggToiamZSeE9CtDcBRQsH0IKsD3AAjSjqFS/jRAVdgtctiTevWEmCsOkh7BKUIAP7UEIIeiCVTgP2EYyUCCoyrELaplCFhvtRtCWSXkiGmC0jhkZ8S0HpVZLi3Jnmib9Qipd61Suw3FZ0JoQEJQ7Cc2lSQvNDtDkJQfS7zyK5MVCMYAQg4AMIBN+IH0uxLgi/JF4AL8ifl6IBZuRCAx/4AMaFnQQ7lIAfyFa2AQawg6fMW9AS/6mX+8xr3iZ1ikmGY7JEclsmwrJFGKWwwC0WRu6zUECV6E73ThRHRXiBbF9LHbW+pVKiDdqW2516tgeZWjvDGk4iM82UmdpMrZ/IwAZgx8cbwC4DjVQggqU4Bq/Bq9ciM+UDuVBFLnLBjIxr4O4aKPbHkx0CP/TAFDsoOVMycXIVZmIbEamttT2taFFVFOYpGtzMn2wkUCQWJysAZ8E2PwweeJ4HZAu92Mb2+RV4foecN5gnGWYBngOR5zwBBylUkQnaEz4Toch9KIJujeKqExfcgKLwgQUsKGYsiijWMil2z07dUXZZtOtg7eptow1aBdoyGvSpGYKKYyGVts++7P/TIP9cGUYk61LiOpxsIoP2u18GY8eHFv5wJERoAR82eMP73S+RHwQTjgWEWixBYW0HbE1RcUmgAXnAcUlgbB8HciGnbH5gAKZgCj3QA4EneEkBbdinXxDxDNAmCOX1bGFGW0llWIYlakvHUFRUYTzBA9+0QzzUDJ3XeZ8HeqFnejpoegRDMJsnDODkSZuUc1jlej2XE6Fwe9BGeLqne0F3aZbme5AVfMBXhcgnhZcWdMxnUiDjSoSTIlBzOzVCFYZWW00HEZ+WaEpVI0yCL4dDJW0IeSYSEW6CCf8mSSUBOQbmE+5nA2LHfxpRBaajLgzXEr2WXAoxcUNRAnlgBw3/+IAZEIn7kGzK1ncTaAB/NwAWGApyAHgZGHhGEQqGF2gQ4W7MZV4Q1Sl8gG2IdoJUR00QAWIn0m8A0BNCeEk8lHo2eIO8yIucx0O4yHodZQs853o7YXu3l4y4l3vLF3RR6Hu/B1nSSFxahmnNSGhTRHT2IzJhqHQr2BTaZ4bbpxAtBlF/RW/U5AoK8VSFM1NWp2QQ4Vmz+I0fUTkRhxP75xG2UCdCxloDyGcF6GtI8QG0N3cGmXF2d3cMaGwROIEDQHKgqBQyYlufgI0N0WKHpHL0No4E8Xikgo6MxhCqtl5VsxMjtkm4iHqc1ww9yJIuyQMsqYsy+E2rR2KlsHPE/wgN0aATSbhBynh7Tbh7TwiF0FhfyQeNQ8mMxrUTUIJcZEI71Nc0iBRPPzIVq+BumdB9EBFoa6hCqMaGpMIkELELnOVvXlaPXRcUgOgRQtaWDrcSh7hqRuZ2REF7qnCXcSd3Bll3F1ds/MAPk6gE+xACIYCJGbgUV1lbfoWGGxRC83aWCAFg7diGoMCRCCFqjcMTQthRqpeSutiDNfiLKkmTl7SZQ8hwwHALt7ATPemToQBtrZmEQSmUz1iUtlmN6MaMFpmNQ5IsX6gvTHMvU4GV8PMQ+hVY5aWOE1FRSzIqsXiHiCgSNlUWigJh1tlabQaQFmaARtEkUABtdxmec/+Xd16RhO+jQru5EKoQP07XV5o1ERwEc9EEmQbhL4+mE1bFMOCknxagkgVDgzIJjLi4STVJjAaac6p5k1ZmE4S3hBKVjLPZjMu3e0I5lBaamxPKjEShVE/iI0AyOPnSnvp1cj6ZaLgzFSkUCvplmQdRhp/mgRaRis1ZlQ4RYO1InxsxXWGxjz7TXZcgYVxHlwahiJN1ChukCo9wl0kKBbkgFh3YV6vgEKuQhvGDowuxDSjYhlYqENTAQpc3EwVqC8SAFrW3Qa9Jj4hBlWMoFQ/1CS0WkgrRpooJpxTxI80pCKDlEGU5U3lYLWfBj7j2ltkZKS6YiELqE+F5Ckh6l6z/MHdkUZHv81DGWVsP1VcaESTteCwPIWNqIghslBNhOgxkiqRHum2OwVxSEQxt6qZ0ehDWED/xY2gc4Yr+9hCcpVZ9un5m4QsQ5pbedRLL9GsCGRS5AAWCgKTHukhQUBa0sKoV6RC0YGgPpaKId6mWByQPoV67Awr3CBOq2VGwIKpn0aBHmp6McUjWFxWwGqu04BDiWCLvqRGo4I5N0q0EcavsJp1++qe4JmQCRGBE+g8BexPfKYJJSqrLWhYVCatZ6RDudpzmahHVRn62uq1yWRPAxZlo8Zo+uUiR0ZjCGRXTFqssahCbMLLx4xGPMJ++4xCTmSmpQBJ6aK9d4ZaX/9AJhUoSwWqo3AkUp/AjSPoI34kWbsqwyeAQ3VeOaEoRKtRZYqmnZaJeoJATqhlftiCuZsGxEpWwXHIv6QoVWVm08boQq4AKKFuyFQEkyKKcB9Epk6BNt4osMruvZ+EzedaPwKqdwhqd5lMjrJCka3oWCzuyDrEB29CmDesRq5ilCVFRfPBhKvJCoFplnIS1CnsvpBoZ6Lq0R+Gm0zZtUlq08cO2HBEl1ISIdghlncVbdghgMktGe4gW/ionb2ZjbLedw9oTyPq3Qsu5XvG5Zou2A1G262qqG9GcqkYQrCAl25gibJITC2OgnUS0h0R7mtuYX/sUZru9Y6sQrhAKKP8bDNeEvKvYWVOiam6SKa3raiMxnWmBay3DjyZxiDkLW4eaEz/CCsdqfmkBvKB7kaKLClH6EfHpJE9Gfi2irb05tTgBVAYKC2M6rtXbqonBgSH7FBvAvWaLtJ4bPwPsETGnI/02kgAWUwKWurnKvmmRazcbVDp7u3t7sUM3Kqzwt02qFhrcvQkxsiP7wR3Rbyj4CDL2hVvKEgxHjNGLFkErUcJbGBacvU1hDBrswwoBvsGLCi0AEqb7VC4iJCP8XG/baoFEDSkcu2lBuwLECZ1gu/c7EAMrE0naJH97rGuRDMGwva4gvg2hojzcrh9Rr+VXdUSirZVHxtDLcEe8oGH/AbK8e70S5btEIcVmW7ZUvMPb66Yh8QkvZ3XuA3PsGMbruwuslpZq4TMBFEAv3MYC8cYxMcdNwxbGcMfbW8kIwb1u6scegQoITKvOkiaF9bY8UQqXgMSTdhZLLFGO3KBRIcmrQMkOIcvbiwMhUX5PNT9PZYf+xiRrLF2krBZ5Rrs0exE7O5c9qxOnYDtCC8vQjAp6zBBly724rLL0Gn2eVcQzgciIrMhgwciPwAof+6DGyxTJQMllG8/k2MwCLMAh4QqfsIqfXJmbkKdiBLvhDBYBNDkDFBLjbL/l3GQdBMlfsQHB8M7sLKUaDA4i4W/Hgi8nIiRHQYyXkM9KjK6///DPPhnQS7EBzbzTBp0QCP3OPd0RFSXKrdPNaiFkk4PRnwoSBIi7fIsTNTwkbqHTd1zQ0ErSqBDUpRskTbFz+KzPX8HPOK0YAD3WSYEGO93MWm0QyZDQCf0VSa3CbIHRLBNwAcvKLrE+bzHSae0QaODWqBCxbSHMpQAARzzT+GK9kLGEtycVq0ALj/3YD/HTqEC6W0EtS80WsNA/ZKTRd63KzmUvXMsWaS3ZUrrTCj0XhI3IqynB1He9yejYtDDbsz3ZlG0MXlFGbmJGcPE/GH2zTP3ZHW0T5/w0cBHZkL3WBiHAaa3cZ8xwl2DYR1gWSyxzXAKUZp0Uj03bzk0Qkf8twK5Ay1eB2XHRMieT2RwBcQH51DYBnJvyFttN2w8x0Kgt3mtxCwAQ04iMFogE0oLxCK2Z3UjB3cnQ3d5d3/ZNFZJT0WJRCmdE1x+x0X4G2jABKjKsFvE92zHwEMnd13EB3fpdi8YsTf4dGADOhAJ+FMZAC8ZgDAXOAfOtDKhd25dt1G3RPxgd4XrLs7nb3jQChnGx4rRQ4MmABhxe4JC9CsFwtHBR2CE+3WTRNKAQuI6B3SluFBuQDC3e4kbuEFiwCsrA3OFt4E5B3nIhQA8u4ukt3D1eE6Fy5WSxAe6QDHRuDBsAEc3MDc080mTe4MIc04Y907ajubKZhFKRDyz/ngwbsOgQseJpfctaYeZxkcb9g94YIeFDSuG8Zi9yEQND7uKM/hBoMNvbbbZ9DhYAkN/CHOgjDiofi3uwPhWLPuswDhHIENm3jRW6Lddw4SYrw+Drzd4Sp+ktUXVzAeqzHhEuTuozfuP5repQPhaqcFkXnhjL2JNTYecbwAGLLgQRkeT1zdC4XRWSPunZ8uBrDtp4rRKhYs9jMeuLjgYbDhHMDu4CfOpbkerYIt1K/NEf24RwXhTczgFowAEcMO/0ntbM7bkJrhQ6+hZuUunRXhGRUinBPsP6MhdoEO8FX+v0bsf0jdU6PBZO/j8THxau/CT/rnsBTxQLYPAGHwMx/zACEjHbn0DJCe0K0+YK4/4UcMLbdcHZz6sR6u3U1S4TplIXG4AGTE/wbSARjv7YAizLU2raZJHf/8PqZjHlYFjigHHtuUcVMJ8PMdAF3g71zazzJL2uJ+vzZuTrdiH0nHD0scjmwu5cUk0XG0/wB98FE4HWtMDXOH/FqR0WWI8twowWvAvkkAH2gs0UQiDzMSAElP8CE+EGqE34rHqeq4AMS5HUnYAJll7eLIMmRL/j5NzmM0EkdSEEi3Dwkl8AFIHrI33JV0x45mDR/4P4/M36jR+UVXHwlL8ALuACFdECZavzn6D8sHpt7/MIDd8ToD85eEHXvXXpdk/3L/ELof9iFzHfBeC/ABUx6mVrDTnMntcG/V1xRrtPpr7/GNe+fFWxAEKwAMTvAgUwBRaB/AIMEJ8+oRL4aZPBTQcxJXT1z+FDiBElTqRY0eLFh5MmcZrUiRNGkCFFjiRZUuQljZP4qPxoEiIfmDEngYwZ0+VNkoJ07hSE0+dPoD8XxOjSZcHRET5poVqFyinBggUTZkoY1OrVigBQXkKptdStUmHD3uIkNmzZsADIilVbCoDWSwDSlsJal+KjnXgF4c2095OgTY8E/30U2HBhUJnwChbclzFju5ElY8wUyjKpUJM1kzzapkABL15y/Fwl0JXAgwkTIlSNadXmuik5toRd23b/RI0rV176WdMmRt98bpfkuXP48c1FO7dpw4Q0U6eZCj5CbbDwJkGvkSMHxtX790nft35/G/dSKa7h1acnH573dpd6i8+nX3/v/cX47/eF319kZVICJMU/2wpxoYBCXmDBEku4AAqZ0ghKTTUKD5oEO+0IBEkjjjqZSUMQb0pPt/B8Cu7Di4ILcSI+imNlRRhDKsAozwoYYQopgDIGqk+kky61wq7bBJNMGooRK/fAE2/JJddj0ryt3HvryIrk00mv/LLUL78t8ePSSyo1DAUzAcOsy0YF4+AiDhWysAqZ6lRjrTXVHjEzo406QvFOPlFaSSWUcApOOOB8M1OQFvPi/5NP5tq4UUEmCHgTKuoCQ82whDAJ8plFXYLrSVBDFVU8ADp9yD6erERVS1b1M/W4MQUc8FWccrCkTS5yyIJNN68yZheCdjloziEFwQQwwMzUkxMPaVVWpT/fc2lQmgwNcz5nj2TB0SlYyEGKHHKQ9KqmLi2Mqgqxw+6TbDcc9V14l6QV1SvpzavLVveys93NLiuTX4uIEHhggbOQgokgBOmACS6yIJjgn7BogRZkjEFGmVUwduW0XVzZRFh2j0xJT4BhjJIPP286sdqazEzUuJJB3KPbHHywmQBx7aLFIJ4pFJLLmCUqa5JP44VXq/CKJvRVVe9VVT6ou9QXSyz3Cv/aLn8DvDqkLHKII4uG42AhNBUmQ8ighdLOdJNJMMEkxpE92lpDP8NbSWUVC205zJd1mhu5IQL3gQCb6XhAADqGINyHwIeoKxlaVmmqqdMKInIh6v4OdRTv0FtSK9DNC30lAJL+LtumixPMy8fqTfU+ffu2+u+gYv2X9oqyUMFrFcYuwIUDN6PzkbTdNn6SnkKcJJVlce8PUJVUmjbvFK2lEtFEl3betiEGJzyQIwbPwdtxJQvmIFQwxQ6vY/HaZPvIxNMefpNcn51+k2xvZVb8IeLCEha8wAuFaIMLhCCEBdTmE8Y7FgONx4e3aUhPnZBb/2xzCRJhcE8ioZbefnP/vRYlyi6PyMQoWvcIVjDmFCh8zCNUwZipMUYxMpyhCxPTmEd8Azk4W9zBpjACz9RmL4E51vrctgkIJs+CPxlFkqS1RJHMZ19QDIn++AfFOEyhEAZywQIOGAMh2MYVj9DIkIbkQEykgkDLyxNtqDiZmgDKJNDaW/XqeCSdhFCJQVGM6hYDQ9hdiVUtJGQhByOYb6DiODhjwvh+WIA2LKANthGWICaxmAbCboNvPIl3UMbJkDwNlBiJVSv2N0ouehELMYgBB46zQDRiooybHE4bmTdKydgNJnIkyco8CJNDhbBFWBGkIFJ4JVUIYoWCSWEKDYlDxUSThJmIJjWtac1P/2RukUyY2QiAeJQuJOU2hdlJJtu3R1ymCBRc4UOp0lkl1b2TIrIyJS4L4EUhxMANHHAlclTTNjROohfw2YhHNiLP2MQxUCPRzR0rQr0j6XGYVulLIOvVqiw9U6OPkSYOFbnIPXwmkl7sQgH8WRjkGWsnSHwfQimCMpRh0KUS2UmipjjTf5SynrgsRD71yYEY9EdYAZVlBI+zEWZhwo04NdEuNdhLOgLzl/ODUR4RhU6f6AtfG+XqM6XZ0WlmAj7bimRRutCfXxDPWHrhg16Y+hIMsvOtDqkpom46UyuOxAwgAIEZ/rYAN+QjqAQ6otsAClDkeMSgS52rSTSom4WGpP+DdvxgRItzlS2tTjCgeAwrBPFCjrpQhqOtISFrOMNsirU/9zSKhlIhGLdha64xjWtjZXdXlwrIlK0QCV/NsFe/NhYofDgjAztyHMV6iLHCJcljocVQiD7Uenjs21XaqtVHLNOajdkuNZ/xDR894xm5oOY2wKsK8X7CvIlkLyrIoYpobiKaTL0Pdq6KqNnGtZ2NleJcudEKXOCCGwEIyV5BYAUJ/LavzPXJLo7HQFAMh4ITXi6DRaIeEnEwui+dboxkG5TMvpKE1CHhWz9x3b5RVZ5NhOkTcbqXl+EWoZF4QI070IFAQMS3fO3rbyXAAAEkrAMCkEAZFGxg31o4JA3/PF4ndnEbZk2YlkpmWfRkyjKZYFmqVJLdVbSkiuPEd75zLU4II4zTFn+SzPF864AD8GYKhITHZWCAFXpMZZxopKhFdYZtOkJhPJtklzFxsXQ7zGGHVrWuXr6ojDWDisYERrVk1qNOTtFSPnFCv5tuMec496RBR6+hLI7rlV8Fivlkz16rbtEjZIdVhMbKGqcssIL5GmifALSwRt2MhyiYigrj2iKTHbZvCs2iQ6/oZRMFMdQmbRvGyFebjZUPBLdsJk2nmdOl/nSTluRp9mz62GZKXYqxF5NVl/nVjn4nKfa325H0+NbCvsmF9izL2lDwz8Gm90SaSEfpUbayhh44/4wkCuub0OeVijHMs+eq1peN4k7L8GSpt91iJmlb2+yMK+fmle6rHpzV9w15Y/Pa71oysBO8noy+OwFslGsYWqYmeMGRnWhl31fFCf8wtB8jXwur+pKYPlLpLP4djSP94tuueItfVUKevLquIqfXwWNsct1eMeaw2fPKWR6ZCVOQ31t/CAY3HBFi13znIBK5VeZziuMEhqNKFgSq9agsAGD8Et02mvzS/Hc1d8rVViV8okYB8nSHEOsBojXZYdOL46UCE7Hoddg74XiMmD3LxU62RM4eIlVfO6vFcThsID13C+tcEJdAuIa0PYp2wtRu0NKlTAi9G6XDtImjOLOpQv+OvXOrXqIwCTnxhTko4wv35JjfjJ6Z57bK//ryzLdIVAN/c5x7vvMg+j2zf9Lf4aDCMY2hMqJAcXcqAQomsF9z9tZO/YvYTmvwn4wHNrFyD01CHpp5ef/VSH/sayi1e7+H+DzuGz63y4t1w4sV0ipBeprPEgnTwrPfuxAugyk+YL+3Kj5BkDgAHAn507oPvArJkzxMaJaW87/pG8GXMMC0QzSbWxGr4gO4CwrZkTrVeZ1WKb27GL8SozKr4zLNEz2XAj7FY0GQCEEkrAtt0AjJQ0HJUMEVXMJ/eEGHsELtyz7QK74EBLl84ZLVab2IKK1pUzLj85sj2bvbozSJosL/+JMVEXRDnDhBNpoyq+i//pPDKvSNgEM7A2xBLWS7PCLCmyg3khukP9Is2PnBi5hACrQ2/DoSzokJDaSvMyRAKhwT2yGJIECBSNBDiSjBNJpCu8DDVCDFJbRCLPTDQHS94MNEDmIrkkM8/cAPkCBDHhSulFKpC9Q9WOSkcztCUIyIy9DEkaAACggACkCBYYSIXmgbVKwLCoqFTqBGUBy0QcvCVrzC7RPEbiyJU7AfKQrDL9ESRcGIbJqaXBSuY2krvvHFX3yjYIzEZnwIy4iVzAgJFKAAbujHAPjEeryNl6NGa7zGhqI5bvzGhIzBLUS3eLwN8LsI1mG3gOwNX/RA/0t0yIp0iHs0xpBIxgHrR2bcSNioRulrxrRbRUBkSNBTSOSwKIo8lUSMSZIUNAwaBZx8SCiaR50EwMrQxHwEiQAYMAFTxprsNYKkIJTkQ+1RyQJ0Sf+oiauKkYo6x0acyaO8ipzEyUp8MansSfrrSMsQiQAQMAFLhjjLSslIhaSkvKWcLqdcSEI0OCPEyBARJYyYSZpUS8mCPa4Ey/7hQMCkvp+8R7Jshf/ChVZIS76sC7Y0SbccRkuinrjcw210vTOMkVazSouYoalpTIv0y66cqeOjx4AszLEMCW6wBsVsBWtgTNC8w1iYTV2IzGFsqL2pzD9syUEUw5d8HZAIQ/99iU1Bgb3L5KTjm0s9RM2gxAhuIAXFnDVuIM6rmE3rtM3bzBvdhMqorLTBjIyItIhAEgzqnBbjzMDvhJ+vTE/HQ811lIjn3K1gILDyBIrrnM2KtD5g2s7jJBDf8M3jsJ+9HM+9rE9W7E8qKk32JDtqusf3jIh3czdSmE4D9Yn7xM5hPE/kY8mnRND+CEbl/M1UuUWnqdCRyMn1W1DcUVCSbNDKeFCI2B9ZoVATdYkLJckNdcndDJFB5NDhaJrgtK/hrFGQ0NAQxSWeJMlHCIWfhNGHkNEACQUaJVKSuNGNzNHL3NGW5M7NuC2aUKvFoNJfGk2XKk0AXUIXZVKRCIb/KGU8MS0J66wG/MRRLIVFLT1AqeTRnquSqjlTIq1M5Ow+JW1QNQ0Ja8CMUnrTKo0FOZXTo6xTLVPR2lhP7mOzFNkSRR3A2RLUjQwrahKJKNVE3srUkLBOWYgFWXhULI3UV6FBLp0MhcMIp/HTGtXPTW3DTr0mJ3UIRL3HUSVVjEBVVJWFVFXVDWXVVv1KDSG8+7GIqCnQGkVRHwUlFs3VaxKJVmDSe4xDYJUIYT3VYq3JVZ0qWhkUWpUMvKiuvEwVaDVRI5XUv0nSXA0rkbCMwuTWboUIYh3WcBXXYyXXcpVX+Kg0NJRIds3XlZzWQNXIjTytXf2HJr0MhLUIXiBW/2LlBb7UzyOVS3id1B7dWM1g1jPFy4lFTw9domqtyBmiJmh90Z/E14nlhYq9WL78V4HrWCGi1O34vSuhiYOdWMs8WQtK2dPkrpZl0heFWYTlBQ+wWIytWf5UWM0E0XO1CuKbwb20ErwA2n+QVpBd2OTr1NH6D6SlJqXNV6atWA94WrVEPmTNlv/0vs3Quavz2XvhWkB9I6Ktx9CqV109225N27X1ANCM2q8FobzFiRk0Qgm0VIT1DTJFqOSsWgAkJAm8plDIEK6FCA/oXF5YAsItXB19VQ8LDtOsC7sS2XP1UqBNXChKTpwVNssNJV1tzs11iCUAXQ8A3diEyjt1Gf+ePF2g4FlVq9pYLVnIna3fHcHZvcXavd2IWAIM2F0MWALqPNzlfUcQlVrxNL4Uuy7iAM7WzV6U/U8lbaHLrSbbvV0MaF/ptd58JV8u+1j5Lb4zrCnAVJ3YvVJzrVP//V/5nVQAHmAC5tR0at68rKbKgF6IaF8HxoDHJV2+2V7T5cJ/OD/7JV7vFaH6mQ+ii18CrtN3DeFeDOENpeD1HFdc8kFaZdlpWt/NxQATeOAIFtowMTsUjtsNfsUcbVe0m0XKNVATHmICppIRJmIktuG5aSFahaYFZmCHkOH2neEa5t5OyeHtnUX3618fjghxLNjxTWIxNt+IGmMztmLciaH/Jh4xEoJhrjUBOI7jKj7cgM3hCtZg7w3il5Ci/fXXMzbjEv7jJH4nNf4PGnJjoI1jOQZhJV6ULc5RdRMmMFYZke1jYxVk5DtiSgReTCZiedISCSQtKHaIOC4COJ5jS9bTDRa5q0W/7yO57BllWcYdUA4lUR7lIshlXUZlvaVgnqgLqpvkWR7mkqnl4LxlKNblNMhlXh5Bu5IowUhlYp7m2oChrbVlHELkiY0Cbu7mZgZA7wy5r6NmcmaaP6LVvTgtWY4CEmBnbv5m6hM+qypnem4XY6aMFnrYTCUBfu5neHa8PHI1gtXjei5o+Ljnq0Q9KBYBhm7of465wSNeRKlB/4OuaD6JmlBWaAZmaBhwaEZGYzZsZeAjaIsuaWgTpHh0RCiGARioBJeGAQT4aDrmr/VM3S42aZy2DceVSM1iRAauBBpoABqggUq4AJmW5v5RULbKaabGo8uyZUHSZ0VtgAZAAKtuAKPu1gCeqR7tzab+akXLQUUkx7Emv1FGgAsQBVG4AASg6pgm1a0mzd5EarCu65CgRappHakW0wi4gC/4675ua6yGawneQGG0a8T+0BysDzBEX6CNAMiObMj+AjYghEZggxuA7Bv4AskW07hObNBWS1f7EnrJKGHm2smOAFFggwj4ArauasJu5NCe7Zp8ndKe1ZsWU7X+a1Fo6/+hBtbCpm3hrsl0TR17IWbVvoDXFuqsBm66Hm7oju6tiwDprm7rvm7szm7t3m7u7m7v/m7wDm/xHm/yLm/zPm/0Tm/1Xm/2bm/3fm/4jm/5nm/6rm/7vm/8zm/93m/+7m///m8AD3ABH3ACL3ADP3AET3AFX3AGb3AHf3AIj3AJn3AKr3ALv3AMz3AN33AO73AP/3AQD3ERH3ESL3ETP3EUT3EVX3EWb3EXf3EYj3EZn3Ear3Ebv3Ecz3Ed33Ee73Ef/3EgD3IhH3IiL3IjP3IkT3IlX3Imb3Inf3Ioj3Ipn3Iqr3Irv3Isz3It33Iu73Iv/3IwD3MxH3MyL3MzP3MGNE9z+Q4IACH5BAkEAP8ALAAAAADUA9wAAAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MOL/x9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghihiYYJgwocggpyoIh+PnIjJJiPO9skjKKZYI4oqgvJLjLRtcuOPQAJJY4p88MFjaT4KQiMmKNI4JIpMRgmljXxccmRFNUL2SItPBunllzimCNQkk1wyCSZkpjlJlWqqyUkpnLhUQS2w1GnnnbC8Yssrr9TJCSycvPKnoLD0VOQlRSbKx5qKKgqKkc1twmWNTCp5Y5dBRnliiYJM8tUJoJ4gEQ/EEGOBLafaUsotpZQCzC0A2P8SBlU61KoDCAU9EAQFKFAQwK/c4IILKa20Qgop3AS1KYqMzWipk2BG++OyRArCE5mLtqltm5xMwsklnMS5ki+24EknnXjmWWcpgIbbaricFJPTmow2au+9kCI347JPQitttEWiCKNWoYYKEanDDFNqNKnacouqrUYsFQi22iqQAB1EgkKvFPgaQLDFFnsssUARWeQjiQ2J6bP/grliwJtSg5OaZm6bppnd4gxumSwJQ2e5QKNb7p1Dv8Luu/D+mdOh9iKKb6NWGndpkP7++Agm0K4cJo6YjGKjVQUnIAYVBTMEhgJXKKCAE2w7scLbK3izQjY8XKPwCk/dWqsENUj/oMMaOpjBQA0ppNBBBw8kHsTiQWzccccBoOATlQEfdmnVlwu89ZfLKlotzOLSZLPN3brpLZmvqASBLbWw7vO5dbI+dJ19CipouO3Ce9PTvN9bXL+WUq0k1tBWuuXx03ZOZaWYRFUwqFSMcUUCZJedEBhNXKG92ty37fbbPPAgN1OB27pGGQwEwUAZtQouQA3wF3444onryvjGkveEY6LWElZp8FlrktUwgbVPfGITB/QR1qTFPyLRqCb0Gp2ZJlimMoHrglFLiS+E4TOf2UIYH/RZnYSWroi96YScqIVNesfCRA3nE00C3pZYFiZM/OKGz8jhMzbBQ1DciHkBoxKR/y7BpKqEqnqicgjdEuYLU1ngVBYoBcQi5qqoUEwHibDYPzCmK45B7le4CJmxRjY5kxWJMDRU0pMCtonmWURJnXvZ52YSwTShqYIWrGDNwnUJcLGkAh2sBQdrQcjWGfJOtVuXnwAFJ6OtsIX1wpdwnqUyJz0iSYIYWEVMVCOv+VBF1XKjVJ4HEQXwwALXeGKqSmEBVj2sVcBo1cRshauB1OABveIYsIR1rFD0MhSh8InvApOJGQLPUprsiI1q1MDKxSRbaQJKBTZYiw36giKqylMjC0WTYSrEm735hTFjeCmQbIJaoDyFIC7Rv7m0CgDAAEAVpVI+iQRgjKTw5eRelv8vvywweIIoJrNKsj/+8YFJ/WwJNNckTV84tJoVqAgsyvWncF2TjvZqSEZ9M0OWsWigJLkRO0F5omXMBRquSikw0IKCXuYzmPprVDv7okaWPWISKEuJj2Bmsja+JIJmkqY0HOrQiFYkUHBiZDc3uhCm7kagNNySSnYaphMBQBCgkEsUY8lVtFDAl8AEpjBBKSa/IM9JTMopS85pojMddFGiXMlCPfUTCPhiqHc1KkV8wYlbtItdMwFnQpyam6vV1JguMdGjEOpDQYTOLariqizPQoFfirUnLVpmQvOSCQDO8BMxKdGiUjSJTjlDoW0CCgQqMFTWQuAif9WdTOxF16b/Noo3x8vtlkALE6xuig+PAsCO3kIMla7Kq5aFKU/29zW+SKqSSqLJOTvVqdG2RFtAmUEFVluB7WIkqXB602wJixDy1iYTz92SpGba25H68FGjgMs1YFkKeaYFrGHdpxD5ctYmJTOwJjJRkWqbkrlmFwIIXu1rYfuud3HzJbTV6G1zA0MfjfMmo6DRox7FXrVEMaX2RQt+L7vc35Y1L65Ab3+X9ltGyTW1P6lCghFchYzAgl1Je2YkN3sQ88rmG4KYUUfVahMlsZOdoCCwWoorWQCgJQDJFSYzT4wXJhUTeRWZbr8C+F+JECnAnVKJgX+iBwjMIMF6yEgtknoJQsFk/1GKUnJ5J3wbYx4vExWBoRolFaVLsqjLETkoOyex4bZALJalyCpl8ZsJ5e4kiCzi8Vxyi8yJfOJ/VttSWm/EW4n0YrQHpbJJxuyTH8zg1KdOc0b4FF6LQnjHElZUVnLBjFx84Na21oAGkpCEqRxPUpso5kRQQSNgG5aHyM7kklhEkUeAgp2cVPRaoghPTsDzvmFtdBmZq5diphfPEfF2TccdJAVmyculPWi6Cwxjn6hhBlWIdxV+sJFSGK2iqXMJnBMl5x7TOSofUAUUHqGKXBi84Mxgxq1vretd24EfTlHvJR/R6YcccOLIvGQmld1GY5+TyA9JxUgJuCi23Jir1/8+CzdeGgptGyp5ZjzZlGt0zKzNEL1XUZKQJSURS6ax2DQHEvMksqYAlxwlpO6JGqqgh6brQQ0bqcUJ4QRY1P57sFdniipUQfCtZ6LgBTe4rW39AV0nYdclSEIJ+KEEpXhb4+CGyK95OPHnvsjCdMea3tUokVMQGrjrlDZPnBC+wq+AB3BLPNwKH76ElSphqnyiLSavKlZFzPLxnKdO7mGNsI6MWCETFi64wY1fmd70pS+9sAIg+jCKLJ8sb3Qm4r6TLp0os0FfJiV1q0bdGpP2Uqk7xYG/EGJjorM2xdyXkgTohRR9tHElSdJ54gA9/OD6P3AAR+79pk6UQt+N6rf/QXx8lFMcj+uPgMLWwS72D5BdA2Xntdr5UYJ97EMJBjiKxIMN8oWI20d0F4B1x2cTp3eXhFOC5xBIBngJmBMrkDCMFz6Jh3iId3iMlzAYaAulgiocCA224IGq8mGxJE9dpROd12ie93liVCxhJHqkR3q4wHqj53qv90svJXst52g6sTVkJS0BZEm+p1tUcWUU90APgQrK5iRCdlaG5S9DwjycEhFoUl2lFX0igV0/4QBqoAY/wIXatxGe8CatYjtWJ2sMQX5EIQiqgCJcxwqP8HVeJ3btV3YNx2slsHYZcH8h4Ac9UBQ7N3EQcUBEiECZRHcHtHHFdHc8pCTmhiK7/wARqQBcwDUJp9CAN4GBEBiBmlh4w8ADmKgwpmIqlHcqD2N5VPROwAAMJqUTwRBWnudLKihGLdh6tEiDNQh7rphtxJcTmqV7PkhJu0dpNLKLTSEIofBcCGRxQbZnQHdJCsEplFIihtULEEEk6WaFIUEz4ocTDqCFWqgGW9ARsfUKt5BvYoaGA4GOQMF1a1hM68cKqgCHWxcKcrhwZmeHa6eHfmAAPTAAOzAUAfVcM3KEusVnz4UKCvFrmoMJoOBszYcQ6oRkWMUTPGALn9iJGKmJGHmRpSJ5DeMwlXeKqAgAlxANJqgKLYeCr6iCoCeLrdCCK2gs+JRcuUhiPDEkK/8iRNRiU+QEhL0nhFKxCkL2CcL2EEXoJBYWEeeESZoCEZ9WdAxlEljoE1vQjVYZjuLYauL1Ylnnb2aIFGpIcFvCjusXjwZHh/KXdvKndiWQAXmoBHvYjwPgj/8IFCm2JVcGEel1SapQRHrZKVcTakboEADACinSWDyRDRbweMSgMM2QkZDpiY/peMOwmJapSpMnRVMUMYiWUt+nE8wge7JHCijoUrEokywoMitILJ+HizVJjEvji0DSg0IiQD7ne1Ohc3X3EAG5W5eEkBORJMZjItUIZwImlTezjTfxBFvQnM35BB5BJ/CSVHIVfrHmQkdhBx9ACgtHh/dYfw9hCj3/YAD82I+mYAoGwAcGQJc70J51qROzx3+ZAJwNwX8zAmzgQBECFSWj4CMQ4SJYdVU7AYqLOQwWeZEcSaBQRHkM6jC3gFIodYoAAACTcAs8EZqzl4MoWJqtOTI1GDId6prAJJqz53JCsUBbcnsxlFuCeGfFdIxvmAkzQoTHMxWzV4SwaRAqBmxFmWVTIkAPwVZvpZwcgUdkAhRI8ARKqqRI8BG2UFF8pELs1pXjR6U/oQqs4I6ZYHCZUGsfcBE94Ad8eJ796J5AsVsqtgoOQWxFaED9FxHbUCJS4p8OQQ0n8l4ZhBOVuZimMgxoQQrxiIORkVs9ChUB6W1BenH3qRFM/5IkJ/KIDrEm1UVAJaGNQAEHSIAEmKqpIJE0gvKZSGedZ2ilPQEFSuKGj2CYgjBwG4GeZdqeQjEjRJmMDjF8R6kRS1Iil/AI2MCb77VOK5UTBkoMGmgBzSBiJYqCkUGjb7oUxDars7emCSQpFYcRUiJavIkiz1ep7dYTBwAHBxCu4AoSwqCV4TKlX/lNpLoTrOCGLKN+IQGrQfENRDl7n6CDCYEKBoRARLkNG/EIl9CIvsopl2CJM3ENHEisPPCngZqhg3plheoUB0SUM0Kf/sevCPSQwZmrWEOkBGGcZ0QSlvoTWlCyRmAEJRsSSRNeBaaO/+CyN+GuleSGZmGv9v9qsQqBXvu6CfhqEeulQKCgsQURauvUYTSBmRrop2dBmsmao4dBhBHbFDrrpg8RChRLqxwBjQv0EENaJEKbEUbqsTRhBECAD2+ADycbEtLgLq2GdLA2qukKFBlGczR7FrIqo05LEBO7rx6BNY3llw1RsEV7CcN1E8TaMEprFimZrMt6Z83qdgZEsQ4hlAaEXoXLES0iJdVKEL1QQ8Ypah8xsjwhAzLwBmerBfhQuqQLEr5AJ31ib1JaEoI1Z3HrE+M0JGmBt5HrEOpwSZGbtxOxjFByuQVBQGZCWhv2KDnRoBaJrMnKDI2Ll4+bFJH7CagAvP9AuRSLs7jKKVs7EGj/MlpVCCVvhVAiWzNHqhOku76lawSNYAQ2wL6r2xGe8FCtawsnsW/YaVu1u1w/ogqSJhYUi7eTK6ORy70ZEVDXShCYoKopcgoEtGGTeFM5YQGw8DCTRwwiFqMl2rjFFLVMYcD3urkIUb276xGLKI2iRUAsTEArPCURJLLdOrqk+wbrOxJrljTnKruRJLYwSxOP4DXBsxaVK7kNMZ8mDBLeC42ak3vuNaQGGxNRBJIauMEfHK1acqMgrBTIIML3Kq36akBq+hHDQ3MB1sJL3MJtVanoK7Y0Ib8lwUjTCaoiob8hy7/76xPq1CTmh71d8btE6RBWW71j3LdlrCR/+yWc/0RogiAzOKEqIanBZxEKb8jBD1ui03sUtKCvnNyzB2G1YfwJjKDETxglbaTGcnrGpTUJjjwSovsTN2wSOtwtPLyuAvHDMYF7NcIKa7HJBqSvnmwQoBy5yWBODSmnTSx0oDAKfVQkoPBYNlGKUlQKkqy4juvHglHJHQwVQsnJ+iqt1mtAISGcUILGBLTKJXImnUKNyKkmbHFvF7TDdfy2eHzHmLUp6hRfvRzKqIDAn8zJ1ksLILEOWEPOKhx0rPBsoIAJAcsTrALJrLTBeLnFKdO0UdHN/fzNDQHQ1isSzPMiLHwmVVhaqXBdaZJkbQEvO5OnIBFhcJvHO7HHN6IKbP8hlEjcz2vaz+Es0CBxbAc9LSgdFDcG0fh7FlD7CMGMGByMxU/hyxntzwbhzfqqDCLRWTxEcpPgI5AKEyJ9Om7xLXxEy3XMb/aMdf2LEz+iTm2xyTKa0Tmd0Z8wDiJBDcODNSdy1UcB0a1S1GaxhB98ydv8FKvw1J8QDJNL2Dw9zjRCwjFhOm4BJ+DyLX4UEi5dzwFcE5ayLG6B0W7dEMHw1Khg2CLRl5vQq0yxmVKEFsyKzcRUoi0XFcYA2lBdEMkA2kldFdzyFmE9QfNsyy/r26EFJG9hvU/tELQw2MXtTtO816p9zcvq2qwdFIWd3J4N2l+hJp3gxmHxChd0Oiz/zRGz65UwzYu/9QinMNxPXcgM8QmD3d50IZJ8XRarvawp+dpRwd7UzRDt3c+rkNhbYaTQvBbhdTre0tL0rK5njdnUksllQdydvdH7HQz+/RamyNxGrVvR/RfJapNOkd6zXRDWgNzI7RXYrd1igTPe3dIui8st4Yv67BYZvQqD/RDu0N7uLRcVPlk1i5uQkaHKGhWgrd4MgQr7LeNdMQnZHU1wUQp6VCYBnhF2fNnpCNwQRi1xEeP9zAFHeNztXcxx8U5UpNo/yeCFkaH5ddFEzt8b8BBcnuarYAxcgeTu/OV51EcfYcc+TOUKRSOaDRefvQp/7uUNwQ0y3uaC/tj1/wXmaAGEUtXjKnnbmizjRN7fD8EBMi7phf7fnZDkJj4W4UImZuJkHRHl11nWNzFzUm4Wx/3ZwSDhECHjyXDpq3DobHEJrWLrOl4WvJfhfvHokG4ULTDpmf4QycDlMu4KriDkuF062T0XnbDSZkLHUH7gZj3eRbZfckHkwXDpELEBx/3t/UzraiFPto7ri+5zRqsYKplPU7Ht/U3pEGHsxy7jcH4VuT0XfKRHHbFjqf7bCR5Y6qQic7HtIX7cEZEMxR7rgA7rbXHrfRRiNWub6Z4Y6/7rRkHktPDtWg4RxoAMsi7prlDvVIHdT57SOeMtk60R4V2l/57LJDXxanHcBf+fDGgQERn/7YW+7eJeFuVOkhAv3wDE631R8VMR6zdPC2tu84Uu6/g94U9x73OB5H1UQdJuEfxe6v2ub58D82mh8DdvDRKB8G+O8xjv9GNR7g9f9WKBfDFE37hIFd9uDLSw8wyh8B+f5sku8k6RJpte8m5BQWaS9Vif5y3/ZppVF98+92bPEHJ/80tP5OSwCklPFiTZR5fw82TRJY3+GMA0MhZvFMct98ZgDJPf7Rkv68neza7A3k+f3Zve6WUB1nj03RSx8kOr53I1ZYjf34pf+g+BBo4v7+mtDp5u+X2k9mHRWSrD9YbR+b1EFRxAC6O/AaRPEVjw8auQ+sRtQJj/sArIsBTesunNbhd9lDNBBeWiatmPpvt00Q9yj/DS3wUUAf/Gvu1pHs6ooPdcUQrGDxB8bP0jWNDgQYQJFS5k2NDhw4ePBE0U9CgTRIwZNW7k2NHjwVChSI0k9dHkyYzGaBnbYAxNC4+KVq1yRbPmJ1efUH3axLMnMpRBPU6a1MkoJ6FJlS5FOOnSJaJQUU7iU9XqQ6tXmQZlVVUQn69bxY7lqHJDsmQbNniMsWEVrVXBZqJaRXfnTp60yO79+NTvJaR8BSeVSPHRo8GJFaMMSbLk4sVoWqpVK+QjB7h1b+L91LnzJtCuIAclyqnTpMCjVSstxYeoU6kms2ptOJvP/2qHXsGGxd37IxpjaM9u6GKSVua5mu/q7EzXt+K/gAFwumXr0i1OpQCUKnXrEnfu3rkD2H4JwHdgAEA9JW/+9vOMhStWfLRJ0Kb6EjNt2v8Ik6rDAswkwMMGJHDATAaEb0GQHHuMQaYo2+AlDlCiBSe7PNOQJ58EEQ3Chl47LTUQS0woqtcuOcm292qbzcR/dpMRRhoJSoYltdBAw8K36KoLFc42/CSUD2tECZi/zovOPCbZ+8spKJdcsr31jDRIvsLko2hLw+aT6DAv59vySzCtHE2kkVp50MyO2tKRAw5iiCEoHOpiTsOeQAMNFUzwW8XMoorqhEQ2GXwKRaJks/8NqxdN1O0rQQqFMIa0ckRjTpQwq+vHIH3S8xNV/pRUIymlhC3JUg/167wooTqUTS3F/FLWLiealUtcw6RvVMHQJEVNXjlqAQ04OXCjC8uEMubHPD3T89n7EKsx0KIIDbY3V6mC8iMWGc0Kxq/A2u3a5yR789LihNoAHFeWc5bDTX7JM5NtyGWolFNT1XdffScBoNBTchWYy1lvHXjMiewVC81WgFUYImLj7AILIdpYChnOevIUtD436ROTXWCkdtCHfXMNqpO5XTS3RkvUraqScZuQWDm7WGCpZYXcOL+eMgk55oKU5HdoolUtNNaDbQ2z4KTHlBbooHx1GGqFFoj/MwYhFljAhQK2wji0T58F7b5JPinxtdKoHs1VV13zqFuWv3VUXN7UTkyIiGNAdgGLmTJmp0eErE9sTC4C2pZ894VSaCnPO48PVlllr0UzyQxwaYPBtPVy+grjI0stn7a7I4anHt0gIbAWwgWuC/Eih7F22VjPju/rUxB5GEQbE2tPJyvFS2DuCG4X5XYZUuF956sLDrrQW+s2CmBirIw9Hdw/TA77BehSvmvyr1FWZdJxv05tlSoA+FhyVDCZtpw+pw3TXGn65TNceY1KbyUjM0AAwYxrLSBrXBvBCyzBAhVkgSy76MnH9CQITEAQgpNYkFFQUxT8DQZFrqFcRojH/5CVlShckMrg8mKwAJtFbwRTYIEPyMKfnT3QPhKpVwlX9CQbZoR+FckhRNKkpv1BxH9m6J//gsW6NhTCgHGQggpUEAe+eOo+HrOPfTAxiU08Z0STSEUnejgWqGgrjByxDQXjRhsQIQ8sTDnMKQ7DCi89AkAWOcwc5fgIVugnQXZMkIEIpJ/DfOIwo0Eh3wqwwj0wgQlSGMJePtEf2uEHNOP6IkeC55cOVjIhmdMkQwLADW5QIAAUeMj/+lcGBlihfwDk1Qi88AIVcCELsowDC1jABb64AjT+gaDHMPHLPqWiN0cJVCeZ0jaqZNJbxgNhy0BEt+QFJRd/JJjTLlewP/9mU5t0PFAwINMGQ05hDzmQghRywAQC5DITEMxE9mbYOUwYEyKTCN9TlCnPf8RKdPgkyAMi8YAHdKADDDCI/4ZoSitIgAE1CAAfHiAABkjACgc1KCvhQwSMZhSjXJDCHjpQlQAAggmyzIIjMGpSjG5FGTP5xC5cysBepKInuCFmKszIT5R0oiqXjI0HQ9hMZkIImvf0iK3cuE2k3lGbdrwjU+mIIDpmETIjWCELcuADAvjAB1JQZDqj6M763AeCoBCEinCqEPVh8qwG2Y1h1kqQVuAClJ+ECBHNkFAiGjFYXHCiLKWQhTio4AUjKEBhB0NFYCZ2E5PQhmoExQkMvtX/JFHhYKJ86syF/FSoakyKKjbXvs61L6mj1SaCEhQKVKAWFcngyxBc+9ohaNUHdAgEBR4hADpkVbawbeRWNpAhPLUTG5ItSFrtSVxc7ZOf+sPIEO36sBw8MQ45sIQXCuCCOaSOA3MYDAMT+8tJAHM0j40scT0SvGRaFiMfzCxmGQTNSAnlmqElbX0PJCCL9Cc/+VWuYLa6yCHQgQ5bzcEeBluAKQzmGdcEb0VAYV7jqg+5BJOsYxqWEefGjK+WeIEXCtEGFwgQC/nggAsSk4qPXRG8v4SMBSHbO/NixJ5EUd9NH5LMoKLVvQt6FFE50qVHBEwQnuVcgd5IzW0CyI8C/zJQggrEn9UQgJwEIABXpzACcKKwa4OhBkWsuCXiQu4vYabwW6W2Jk2qwMMgzq6cONCCfCyGE99N7GIseJQYc0tbHLysVWzc3hwvKFziSkqtMqEKJSMa0d849DNU8Q1mgApU3wgFqJ7xjVxQ+pGfeMalM/2NTn+DHKoQ5IFw818msGAPhM1yF9KVmLBGMIIei+9ajfuUCY9JsmfG6QtCLAQsdIHELajQYlwBzPD+MhUPTkwnuojnPA8FZcnECI7RCOhrv9cqdUOJmHalGCcTyDc+yMFgsQxOV786MTOMIAQpeVaU+QW5j2hrf+XJsF+t1QvAhlM+dqSa79oUE9Ro9v9RSBbtjgSvssGDCHt1HGj4ZIXbJ0GYKhYTbjouiAUF0JqrY7BlyEzEPpASBLNxSk+1SjZXuyaJ6c4qBDj15mOdwIRNU9FYwWDC4DBGOKPQC7mGa/bh2ebxjot6K1Ys5pGmhlAbXA3y0XwOE/XenpGglBV9qa+yW8fxniFHlb/4uEQRbCuuyt60XMno7CxPE5p7rhg+oDgVMmWxYB6bCp6/PURWQe8yiY4QoRd924UumMUVk837qXzkE6GKkc5Tz6eM4tbRSWv4LH+Jy2c+fShPq4RhRRG6qRHtTdt22dlOEr2rphO7mDuK674XLg7q4KnPCMoW7hBrRxPbutf24IX/QrDEC2bp4o7xDGVkb/hwAvOYvOTko3N559sz7AqvsdghRPItnX30aUde92u9Vl+NhPajqTkwF2t32cci7+NPSFacYv0y+t36q5H4/DEC5FMsRpvR5hJZ42kitmE+rUuVy1s+you8AdwpPggfNsmE0AM9gXlA0vO+iVijCgs/9oMMFUM2vnA22Vu/DDQIhfO6vTO6gwi8iCs9+3uIlQO3Pwq+XHMrEwG7yGM+oknAtmm+4JG8HeQDkzOS7OO+IBxCCCTCCgQ94moMUhAJjUABFIiEEPSIXUA2jxEmsvhA9YtCiBjBnSoeiDtBEzSZ0vs+k8AVKFiMUMgmhPuFtsIE/1BAvt44lfBRQPfjOxx0D1DAQa2TPD70wX9hEy7xCu/Tvu3Dvuwzr5BAk1DICBT4JApAAS3kiA0UL7J4Nk7IwkjMjZ9rvMzKPfmDkfpbQYfAlfxTjDTsHBgkLnorjE0QRbhTuEsAhVFQuSDMxI/IBF9ZRIhAAW4IgE8KACi0RYjQhsRCMQ8gC9MwDUwURoX4Oa0jKodrvzDsDdsgw48YE0KUH4HBpiHDCNEapJ57hEkAPamCEHtSHwZ8K9FzRWYkiEQUCV18CF8EJVCCxHZ0iCtyPRSrRA9cxns8QdvjvYLIvflDQfgYNAvstkIEsqUJrVTcpHUiPoTDEoE0GYXjQf+VG6p/zAhchMd4dIi5kqtQ2kiGiAVlK78rTIVY6AR/JMl/AIaqsLah+zsw/MLnMMiNSC60c584KgyIWDJwDMct+UHBU8CM5CyXdIiOhEeM4IZWcEpuoAVSSsqEmLtfOo2UZEm8o8qB5KBAi0bAm0ZqFMv7QxhvI5ikkp8CeQigfEjkIruEAZFzpMlOGjQS4sqFWMqQwIgAsAZc8MtWmEq8LAiTpLlU6IWsXMlXGMx/kLwdi78zqsiDrL/fi5XdIJOdjCMecoj9e7tfkIh2cxnqcxt1VEHGTAi9/MiG4Aa/tIZWsAbBPM1dMMy98ECWBEFmZJFM8kq6LC6ypD+czMn/HWqaawIdpYHDggBK5Hwr/0hIoRpNs1oru3TO0ySI00rEpvyV13zK6rSzLlLJWDjN2XDMmrRJ3zTP3kBIyVwNXVnOfCIQ/OhOMHLMLizNR5HP5MTFjsQI12yYhgkA/ByMfmTJ6mQv3lzP8+xNMURPyHCj44wIy3HPAN2IPYzJjLzPAO2jkHBLhLCGX/lQbpjQDlRJlgxP8bSN6IyR4CSIFR1LiYMQ94HQghFRpYAcrLtQupnQPtJP/mw5UghRGh2LVNCFWFhJEz1NgmSrFm1R3LCNWWSQdXrQUcRMCQ1SrEgfHvwzfuo+6qzO/OJRiFDCkQBSK2WKIS3SIu3OPAwh/7AsTwS9yRdlkFpxT9HazDKVjfQxytJESvzc0VDg0IMYCUUk0ztNijNFU/k8UM9rUyVlUBf1PfjAEjtliDqt0kJFq9FkR/zhUk1lxi9NEIwQVHgk1EtFCTRF1ERdGUZN0DddUN1gEEl1z8+a1FLViAX8zRziUms8zU8FVIN4x5AIolo11VM90uokyNtYVRbF1SaN00jFFRak0mElIybNoaHaVcbsVYwA1lDwpmk9iWI11gLVzSVlVuDMilK8yTJriEr9VlutVht6mS7lVScDVYhohT9NRGF1144I1wklV7KEV/qjz1YdjBZsCFkJSn7NDYLtVN9Ro4IlSf6y14fY0P9E9NaF5YhirYZ/BVgFVVFHddWPFYyqwBII/ayMlT+HPR1xCdmNbDIFCdM/PS23S9mHONVXENfufEZy/UQrqcaDPMuTJROb9cKRtVb11NECidmKndk/xdiihQg0lYVXkAUa9diCNNdmfZnnSC4WBLKo3b2IjdekzVD8wgj97KOaDVuFqIYilYVYsFoRxVqf/dlT0NqtOFhKjRW2lUa8VZ6WJTSzNTK0ndkEWdu+PYi4jVtZkNu5Bdi6/VnKTM+yk9V1Tdxl/VvfCdx5zdazDdMdzQSoxdyEYFy45YUg5dyA1dyoqz9shbXPATPODB3SZdWxLSGEnDgv/dyICN3RrV3/g2hc4UXd1O3ZyFzZqMtd5F0RaB1FhAFekK0KyZOs2dBdXv0jtA1dVIDehBDexiXe4lXW6L1dVx003ECar+0S6E3Stwpc681W+mBapdRe7kWI7+UFWQDfq9XNyDUTiQsX1SDEiBBa4B3P5VWb6j3gKIzQ7DUt1axf/OUFXvAA/d3fcnXZosvdkAvCz0lfpYHerCDP9rXL18VLNfxJqMLF+j2ICJ7gCn7cCz5aoXLdxCC5tupchLgViQBh6b1V6v3fCaWm7DWyB+ZeF6bgY7xT8RXY91JPHE6Ks5sRiEBf4J26W53e9p1c/BTiKX6qRyhi6D1iD1iCS41h8tU29Sxh/4q7YS7xoOctYCbGnwQO4s5RY4PoIzoCY+Bdggke4yRW4h4OOgx+JuV932tsWRuOS29849oV3x5yXwUOwfdp4DxeYYNYAj/GADIu1YiN4xmuRkPWoUc5wpL9PzdWXzhm3dFxZImtY2/kJouw5ILAZE3GAAwgXU/+ZMjNyWoURMEVTlSuXSfGWmIuZv51mV42ZmWGr1B84gya5CleMl9N3Fq25VvG3FzWZY9FSomA5G2bTkHsCKSxVHddZnM+50iuUXQ+52FO4HTmlTodYgGRZYKwZmvGZVVmkK4w5kIGZ3D2irfRW3xeZ4L22BJp2IJO6DMGGqZB2xek53+wZxO45v/EzWYRIleIHSpf7jHdIOeDGE5aHWiFHul3FgqSPmljktRXZjpZvgMMMAGYNgGRXugaGSGAzejQ42g7Rtgg3OH6PemEBuBnAuqCDuVNDebZZWlLjumYnumSFjQVnE4nHqEj3OncqGqftGSiJugnPZ6tRmd5UukuVuoVZmqYdmrApbfPYWPVxdA1hi96g2i5ZmikZlcCEYRp7tuYLgK+Rut4vemSprcKNL25LmyFEWu2BK28ZlsT4GvH9ut/XMUHdGbDruyarmuGOE5BMBt65us0iALQhux2xD5E9mjLPu3noN0pDpPFDtsiAG3YFm1bXGsZOULUvm1JuVyE/UaIhm3/Evht2dZCCgw93C5uM9FtSo2j1o7aKPjt3xaB4M7A4aZq467uy5bBaCWT5S7a5xYB70YAbM5nfNLVB7Ru8wYXw1hBbDLtlO1uGICBCwjvQbZP1bWV877vNGrj1Z6V7bZZ737vSqCB+K5o8TamG+5oq8ZvBTfY9F5pL4FoEQDwBmgAUfiCL+hbi5anwQY9yl5wD2dwIuSczWlIhV3hCK+EBkCAC1hxBJjwSqiEos1weVI7o/5wGxeMhawVW+GD/k5ZGEBxFf+CCIgAUWhxGvhxm5VxDQfoG29y9qymg+nmLunxjI0AFb8AIb8BQmADIReFC0AAFU9ZJXdyMt/ibMxM/5+mZzC/AFGIgBs4Ay7/giJv8QFf2DEvczw/zbNcyC+RawSggRTH8iEv8gY4chgX8/nOc0Wn4z3XScT2c0Bf8y8v9AAPW5pedEzP9MEc8gvXdE//dFAPdVEfdVIvdVM/dVRPdVVfdVZvdVd/dViPdVmfdVqvdVu/dVzPdV3fdV7vdV//dWAPdmEfdmIvdmM/dmRPdmVfdmZvdmd/dmiPdmmfdmqvdmu/dmzPdm3fdm7vdm//dnAPd3Efd3Ivd3M/d3RPd3Vfd3Zvd3d/d3iPd3mfd3qvd3u/d3zPd33fd37vd3//d4APeIEfeIIveIM/eIRPeIVfeIZveId/eIiPeDWJn3iKr3iLv3iMz3iN33iO73iP/3iQD3mRH3mSL3mTP3mUT3mVX3mWb3mXf3mYj3mZz6GAAAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYoYmGYCMLHI4KkKAgmfPAhyCN8bCLIiLOBAqOKJ5o4iYqgQEEjbTKqKOSQRBLp4o+lqaJiiUsauaIgpxAJCpIVoTjjY0G6OKSVRW5ZZItX+jQJH2NiMsmZZF5y5iRqXkLmJKXAOYlLtXDCSSmv2Jlnnnra6Scnr1xyyZ2d2NlTi262qOiYijaqqHM2Pulll0NqCYqKMPLxC1YndHqCRM0MM4wFFthi6i3QoApMKasCsyoApWD/sipTOugAQq0F1RAJCihQ4CsuAeDSirCkFBtKK6SEEkomy4YSlItgMpYJpdRW2+WjO6E55rZrdustJ2uqyZItpdhZLqB4psvnn+Wey8mgdh6TU4uMOmrvvXwo94mVKHJp7b9MMjnnVJ56CpGoxIxKDDG2WHCLw+SWckspFJcCACcXA3DJUrfWiqtAAjwQBK++BmAyN62kjGyyyirLbCbMAmViiicm5u8j/v6rs6Izu9gLTt6qyaa3RAsN7pksrfvn0kwvrea74JYyLx+jOJoovvYex6Sk1vb7os4mgglKi9Q8VXACYlBRMENNKOC2E3A7sYLcK6zAAw/Z8HDNMNdY/9C3BdDYAkw2R9V6axkMCFCG4WYIkEIKHUT+wAORBGE5yb6WbPLJAZASgE8zh36YkDgXWWLp1mpZac89N2oT0dzC3i24R1/yikq1uNv07kzD++dNWAd/b3GkU8si6Y+UuDXOOW/NupDALFXwCVSMoUACaq+dEBhNXOH9FW4rEDfdddvNg6jZDBONBdEMU5QOZtS6xhoS1FCDBPHXKoAA9j8eueSTs9zlKNCrzFHAZBQAXevCJBhMfe2B/NrSJh6xiQquiElBoha0wMTBmnTrTbI709OGNqhJdGIlr3jFudpVsYrBol13iuEK/TQoPNlEeDjEVnAm+MBJOS9FqtjEL/9+gY1nbOIZnxgipcZGs5m5CQDJc8r0OuUQBVxjBekjlRYtUIpSoYpVAAAGAMa4jDCOMSkeS0QiPAYykY2MZCYD1rBwUaw6ugxmePTJBmlGmK+hDmeY8NqLMnGRHjYRWmFL0UzWRC83wQ5cbQqXuFYiDHTdaYZ/UtqffLc0qdUkhzkUTun8lcEbUfAil4BSiaKUSrEJYhKsGJj0tOcQJ4RqfaQyFbkmdotbkAsaGhOjGS2mlI6xcSApGJnmgjWslNUxWaR4WbNgpkeemUgw/YpgBDcBkhvhKHQmeoRMyEROPpTjJ7BIZyleyAmK4ImGhqLJ8BYyT99kwkaq+5qWxPn/kV+AaUiXmsTYpGgSYY5RY0uJHwjMkJFkZeIReTwUIq8JGB72kIeyHAmKeAYtJsXkTeQESi1ekc47CaMi5YIFvDYmz6wxxKW9geADZcRPklwKSoJgYk4vOBdogOKgF0MLN/AYUZ5wlKJ+wZTXbqQSGWmpo3zABDddQs6hiTSd6rxdRWr4u5k0ilENgeluljrTmp5ERju6aVT5AIopxQVjQG0nWpb10FCYVSf/5KNfeMgvGN01JZtQHYtYxIdUUDV2QPEFVknqC4vYIoZd/ahYEzJZ3Ahign19kUuAkdNTgIJFbcUEJuICDFBYbIxyPQtRqdkTI/nlZv36xEdpNtgd//2MJVVF2k9qgdV01uIiTfOqozJKWUfx5kWZfYQqYpLTqI4NFAKN3luiAauDSle1MIMoIXuyURz1JZBLRRFNgjSJwR4Jt4j9iWJ5m87GAtdp46zsQeRLm4eSdbsyAYaLLvHcEsHlVUBNC1FxpsdK8YV5EPzrR0tUJjKhV4TE3YkvasFb3rrXIrBg1yRgIdmvhtW4uSEreG8yCRg997xtYdUlDppaswzYWdxtIlLxggrMog6/N7wRORl4EhDq1icTpjCFL2yRcnGyw657KYhv84lMBPJrp1CwTEbxCAA0t61uoe6Kf9risgwYx3iVcb70kk3mgRkigT0Rl1DEpFNaBP+Ra50qSkA4SSALuRbCIHJFVLjJLq/EXhGe75Jtk6JsbuLMDzl0IMEbpOShqGwW2RFb2QqATbHFoFwW8GoLTDMU3wWiFESulBeSiQymzkSyncgmzrQiaKmEzoHOiS+EUYsJC6MCGoGhuThMVfoWxNdQUYUqmIczVUBB2B+YyigF8VA5Q2Rfl61g8l4kbTY7GhPLnQg2+JBKQaTSrWuBBlwB8NO00FW7PsnZmPHi6FFKZJRrppapeewQJkV1R7EOSbfq3JMK+GLWtZbGRtwFr5cA+sNJlgoUBAEF5gmbFcJWRSZUkYuK50IVzGCGBpxCbOZJ5BsxouAER77sCL5IqvT/bsgyWtlWQbHFYj8d43XLggs8ojvGQgKTlf6Z2SKVueOsrUqZNRuRnxtyUqaTyI5MxKJ8gwTWQPH3v/8NgY3w2U82bEk9FQLso5QuyqxQrtghHvGIW/wDuUD7B5KglGaXbhPZfshlKUj3J3ec5Myb4OksDZEUPTeny/jJFepGvvLVjQd2s9swFkaMLa5Pl6ZqYS9ZZbFSLAPmYwQFS3VCAZWpDBe44AY3NheA0Zf+9MESFuiFpbJntoyuq82uAr+ZqS7Fu+Oi7jjOHmqV3PM+0Sh6KHJ7mDPbF1rprVbenMPldJtI/d/SqPpGmOZJ3A4X4TpkSopYkftiK7fs4Kc4/8XT/oHyb9zrxJ4WRFyBCSdXkOSYxTuKbHzZy17K2Q5xLlvZ5BMn8MAbhxeAh3c3olKAomILjYeADRMNthA4kVcxsAJGZrRi5AYAO8ENx1IsyOJ5qxd6oscNwCJ6c0QsK2Msr/cyzAJq2RUzhwI21fJzumdmVDEtHQcRdlVoCMY8LoIzJYYzOTJtAaNXD8FqtDVaJuEtJ/QTEDB1viANuLYRdZJhkfVqXScQVRgUUbaDfuR9w9aFEmd2Fkd+5rd2bEcU9oVgEPEMrAB/+/J+E7QvLnJEODNB3BdE9fci4NYQqcBWORVdPfF/dxOI5hOIPBAqCLN4jZeApQJ55BIxLf90UDEnc9C1E8EATXXkec3UgZrIeq1nRyxzgrGXXaNmEy5IKTAYg7tHFcxGbKnWEKggWnnXL4GECgrRJVuzC32XIgyWciAxO81XE0vobxUQfR3xTlhXfSmxdcWVcEjBClRGfC8ybN9Xdsd2bBd3duX3ARqwjRpAD0nAD0OxiszTigxRY5sgVXQ3d49AjgZBd0EiI5tgI27mEDjVVjnFE04wDARIiIV4PoaIMIxnAQxTKosYeY5IMREIiQp5CdCgExjIMpdICpiIiZzYeiX4iScIe6EIY621OjLWNagIamY2iklhV8TGiwhBf3NIkgaxahkkIywCEfYmWijpEUOzJkD/MQMVsJM7KX0coUnIOGdXeIUtKAjcV2hI+QinEHYTBwW5wAxqFwofoAqkoHbmx41JkJVJUAIhABT7MpIQ8QvURkGfQHQP8QmBBArwWH8QcSnPhWU7sQLD4A0FWIihcj4GWIABuTBapEulcJAU0ypi9FOCQm6Wd4GvB02hUIkSOZGOKZGQ6XqKCXsquIJB8YIOhHtkFZKyJxXdx44KYXfuSIsTYSUwmTzr1hD41mqpKRL79os0oZMQAAEV4Akz4BG5o0l/NpSDVhQpcgqnsIOlw31QwJEOoQFSqY0aoJV2UAL8wA9K8BN3x5IDoQqfIG3Qtg0UAQUlAo9QZIQOwXJj/wNpOREq6TMM/2iACdN4pDKQumQBsCA4DsNLYdRCpXAJYPRTYsRfPGENrxcKlniRzzSgBAqg/6mRGvlQLCgUqBBB0/KgoDZIq/gyjxAKqPAyF3qh6UedRqGgFIRoCFFqsViTDbELuvgkMpJoUfUk4DkSRAMUVTCbs1kBVfARuqMnVNibCEGUOaFjURJlfoQRWbmNdrCVz5kBGdCVrWVfTQaaCFFj7piihfQLbCYIn9CaCkENbNVyeXgTobI3otIMaNEKLQNNkVGZHFoUZjZBD7GOxIZ/FZEiMFkiuFhvK6p8JPGaQKEHMjqbegAS1Jeji4J9LWIURxklOMUHmXAKHP9RAiVgpCWQAfuwD0rgBz2RCV/ZZG2KqW4KpxQxfytyKc8gd5jQcoLgZzTRDHw5KmJ6Fp+YCaTADJHhob8HFQ2afg5RYwrqZBzBIjBplgyxdMqDpR/xoj/BpzMAAcn6px9hC/i5NMnIm8wYFEryTUpCrBnBD84pqUqgBCEQAj2wExdKqw7hCtnVZJtACxuhCiinInLHCs9VXjrRDFo0KjyAFsHgMsoiDme6q2k6FDizL/viCg7xoW0IohTBQ1vjpAfhCsIaVSXhi3s6A1VAsTPwAyFRCoVCQ9Gqo4I2rT/BCi3iL3zgIyGhBPxAqSHgBwbQsjtBq5tAmgwRsKV2aBz/AXdfA48PkSbQ1aI2MQwNI5DXcK+uKk3KMqu7irBJ8ZVu+hCc+gma2hGPUGKnQ6IEcacm4qkdcZM/1hNqUAVgqwczoAYisTRwIpQeaxA8+klDEmUlEQLdGgIGYAp0uwM6waQPBQ4OAbXruAkMaxFiOS0T1KWhGa+gQJ42USp/YwGtahbRJE2k0K9EJRXjWGoOQQuYILDn+BEsmiJ1ehAm6m1Ld6LYyhE+BpszoQZ6sLo/oAdkGxJK0y49Jq3Z9xPQaLUb0QMG0AMDoLumsAPAixMeui9tqrlaexGO9jU+SxDU8Ercl1ZbirorAbRb1LhlcUctI7lF9RSHJrAcGgpQ/6u5H/Grp0MQonWnW+M8Y5KnQtO1POEAPxC/8esAI+E0qPp09VKoSgayPAGkyLVwJwG8AzAApmAAAWAKAwC8wVsTmLqrueq3fhu1HRFIp8lA57gi8MoKpbpT3oYJ/FYTj6dF1ksWj4tHxtkY2rW9HNfAltsQ4cupqzC+QaI8pVpeohUwUzskg4W7FwFC4AIUDqAGQizE9CsSudNJJlFO9EKopZsTQhKcTRwSA7wDCWy3OcGpD/W3BRG+6KrFb2ZtGJRTG+yWoICoV8afOPGeDeM+Z4GgJywtmwYVq7CODezFA9GkfKuuH1G13WkmN3zDkqK+0htp7TvIMLEFauAAiv+sBltAEje6TiWhxPpLT2nrxE+sSCuhwFacE002uS78wptAsJz7CJ8liyz6WWT8WUKiediQE/HpgAKJFuOKR5ELGRXqyU+xClkMM3YsEFwMtTjQTco7WOf4x53LdK32ua7JfECxBYrszA7wBCVBcJyQhCMhyVFshZV8E98khGgxDqvVy/+AqVCLqcgAEtd5cu/od6U6xp2VfIhrEwzoS6ZiAXMVe0gLM8sSFbrcvZjqEOQcviHBfkB4QTT8SjvMap2gzC7aCd0CFEiwBVvwBE8w0SVxdbQTlB+hjDu6zaS4T54my+EM0E2KqcYAEvLwCGIJqmkplmLZVqdgJihyCbf/pRO7BHn3TFRvvBgmvM9Q8cJNStJcLBLkW3/pGzAtYaw+gQRPgARM3dQm4TSGPBEHt7+1qxPgdCKMuha6jEdQu7d1/Akn3U0ULAhUepQb3MdCwUu24Ev2jF1x/Bj6/DJRcaHl/NWuyMWoEMMhEVgXvCNMwtBJ7S1AAQdIAAeIfdgnAVkFJxIc/bFXPS9NFCVtQQu83MC5+suQIBLw+ggaPH9RFc9CsUt/eQsndRadjMuOoc8uExXIENbijAqfINuzzdchUZbrCDSE/RNacAAH0Nu/fRK6Iyha9XTXZ9WTvBN8ECUb5Ba63GSyvdMHsQqzDbV7PRJo+QijyhQU04im/40WNqegs6qv0p0UtEDb5ewQq4AK6K20VWFCa3K/OAEERmAEQAAEWgAEKLFJ/BcSj622Hj0T35Tca5EJsm3g7j0QtDDbBn6hdNHdFONL4L2Ctbra5C0Vdp3eeyvbHP4Vk3A0/e0TNmADb1Di+PAGKKFSNOTQ/n3clMy/3MxBRvkWCI4KFvoQ7M3enxAMdMFF3Q0Ab+1i9lVX4/16UgG+Q73hOr4Ktr0VH/7QOSEDUj7lMmADRoAORmADVD7lI+ELryAM5aJCxWDcAf4Pa9sSnebNbPEJ4Guh5W0Q653jTD4X9vmX4C2SEFXk2RsV4MvhCT4QcT7b7O0VT34m8l0TVP9uA1qAD1SOEtS8eR1R1S8e2Tf0PHDB5jn+5gURDHG+3k3+FvYJALYw4TUIGcyiLMkiFQYevjLrwnG+15+OFYXuvjux5VKuEnYyKCu10fkLm2eOW98UFw1u463OEAu+CpyOCnoMFxODkKUQDaRObHqe6nXN4bOdDA/R6To+1lox65DeE43OEnFSQj/sEdjMxEZlxgTOFjme43qr3rSA7HE+Dm/l7M9+56X+GAZqoBiu4zn+EBzw6qjgCquw7LLu0IY+F09TQhYY6fmbzWZe5i8BTjPWFsjO4ahgDRBhDUzu6cGgDnBxn5Un6miB5+IFGQZaR1KxAe1+3Q/BDeft6a7/oOzdPjtzQTuQ9OEO72HIDfEGF+xyIej//hDGEPNMPvAGvxa3gJ8HNeqqBXSRgeoAWstRIfSDDhHGsNewTvCrwO3vjfC07hZ+cpNbS7vrXulPNRc5HgyyHRHJUPDx3vG04PVpQTEUCAC85mK6F/VTXyxTIefsTffGHvcdf/QbYBXwTTt0kSfkrvMbIcm+LvFobulBz95sHwxJzxDJEPfxHveocPhqgZ+CYjF572V7j/KWSPVQwfZrH+sMgQyF3/Gwfs5Tkfhh7xYmtPCD8vgPj+54NVE8XBasv/YSsfmrYPyETwuZPxaif594P1eiBqyN0fd+//fsffQTkQzGEPtH/0/dqwD6T/Hkil8XgkI7LqcRkO/7TjxRdbH2Nj4RtLD5yg/3nA8O4M/898n0pU8W9gUQgh4J/FfQ4EGECRUuZNjQ4UOIESVOZBiK1MVWpChu5NixISpUq0KuosWxBS1aq1SuXPVplauQxjzOpPlwUipOkzpNqtnT58+Jry7lvDRp0iWffCbxYcoUYtOmQKUW5COoatWpWbXWBCkSVbBVHNEkM4bSbEqVIVFx2NpW69FLcQHAclt3ayaBeTPZ5ds3q0WMGv0OLphMJMuOWGghY8lS7apNqGQSfruz007KmbVyKhq3aFKoTh+G5qM54iirqU2vrmn48ap+HY2RPYtyJf8tV65WtWDNupTnuKV6D0eIV1BeQcSVE74YeLnWwyoNe8xXlmRjta4+af80+fnEVDp1cvpenuGlTkU58UFak3Tp0aHN/2N11Sr8+fNXhbodtmOXDWY7CzuQUOkuv7aAi2sZBDMz7riBGpRwJsBIyWjCmdC6jpYNZnJjg+tWyu4TAz8hkUQMERJvJ/JSfA6uooxqb6b3npLPvKZSw8/F3lAaiaQOPerCmLLMIrBAV0JBhkeaAACOEwBKKeUWToApBRhbbJFSSgCc/K3LUiYpxcmiAAClyy5BuaRLHgeC8LhMNnlkzkwewaTOR/Cak06B6BwoTz4BxZNJvyq8aCIzQEj/1IwUVUrJtp6MYQytEU209JNNdvEPQ0xyYpFQ5Tozij33SLMRqvmuYsoqUHuLDtKa+qHFMA3TAgmmEh8pqVWJ1oTRszTRjOsoYjtbU8FjgVNTTc9SdBO5OY+T9s0/86q22mmzlTZCXrcKrJVWJAJhXEVBSHGDR2mZzTuaTnpJpNwuxdTSTDNRZsJJPO2kxW5NI1ZGo2gijaf4UMXxvqpO6VczdK9LBiWf8nn4SJBILPCTZzZdOCEykS32VwU7Bq5YZIdVk2AJn+3zTUFOUdlamK9FbmZsH9lYKgq4oWBnCiBKVFEJGLDiZwxrM2aDIH3i4LBdKrZ0l0922WUTTKlu/zBfTi7j92bCPDtKqa03qrHgqMxDmFWuCbPNrA2SAYqDcUga6WK6Lc2kjrQLAqZkvvv2229SMTxFW8K3jTnalwl/Oe+egogkkgciV6jcn80wwwoJUuBDAAmGJrdcc81TV93ZNmBLKmNa2m51qaPO9PVNMp0P68tQZrwvGdk7ikZTyRatPKjQvp0vs8giC42pQDysQKdNpJpqVTbJ29i/q7feMz5A2bHBxAuX+U9sC1fc5uE9AhdcbriJSFHLy7A8dAw54JDDo03Xypioe8lNO+1ih30TTHyiPJjIVyr2Vb6+EEVUMxJb7xziwO+oSngIbIusZpUMDG4AeVlBg0hccv+iEs0rdr/YxDO4BiWvAWASIrses/g2CVBoD3suesTgYjatPW0rWn161p6eVZUdQoiCG7EIuA4lEcslkUkBSgbSkMaB022lJa9znv9i9wlMAHAay9EJTvI1RLsYBS4B68jYHngj4N1ngmDk4Cra5kQNuqUlzasapuYEQJfczBbAcRILr+eZUYSMPZcYJAMn9AnD+VBlQeShDnsIvqrgkI0SaY6FwjUR9oEKaUdDwwZawIEYuKAuTYtM1awIQAAKYhfEISBOsjZJt8iIkGRsIBobAsHnqPF3sJwKGtQFRzSgYQF1eUYm5GXKR1gRG7z0yCjUxAcVMvMh2iKfNBdSoQv/TRKOUAQlFoZpl1OGE5XJ6c1NOIGTTlhzKp1RSow4EpqlnKpswAteVvLkMoHUCU+seAQrMpGLPWVCFY9QRSbqlAuDJvSfjwiFQUOhCogW9BOZCAVC90IZYHIzBt+si4GuGLtkykmk0lNnr9iju5IuhJopTQg2BTPJTkIxHzHoghAWsAAv8EUZj+hFFkOaRUwENRW9YE0XsxY2ls7Ea+18Jy4X4lTlBG97NYEoDxWJp34SNE8DzZNB6eTVgRaUoFj1IZ7MmgvKoMEYnUQDKGnahQLwZRWPmNcdk5lMTNgpqbeMCzSnytKV7rUghnrpJGNgupkKQQguKEAhvGAJLvCl/2qCiB1QNzGJXWBiNfnaF04EW5OcKEWMtouIGW9py+dIVSo1A19WC8pVfvpTFayQrUDH+lqB5ha3ux1rnjLDAQ26tQtdWEAb2vACKUgWpMsNqpyq+VmD+LWv0P1HYAVLWGkKoZs2ZexjWaACFcRBuajsaVCzOAltaKaAnHgldT0CsKV8ZiKmZQhUiaPan9TwcIrk757CKiitapWr+gQwgffEClRkpgvBjAFNb9qGAoxgDywggA/sggpBxCmklL3TJH7h3n8M0q/Ute5eLVIha7ahC97s7gtUwIUs5IAFL7AEX1yxiVQ0FxOpyHEWM8PZc6YTxB0pSjt3Kc95ntZg9P9c1V89QjMf8nNOXFXkfwn8Xyt31asJBVRAL0qZNoByuMWN8IRzcGYpEMAurkgmZTdBWVAk88PUle4lyPnZEif1xM1RZw5G4FgXxyHGLMgCF1TAAi+42C6fSEVmzTsJ81LGMuwV8pA3At+Tzte+CNl0b/DrExtCCJ91ojKWBQxgLWt1y10NK57EGtDVLGC4EB7BFJggBR8MgQBMYIGtFx2n2LlZEEGlMwBOOgo6awu6oTCUOolQ6BzEgQCF7gMKcpCFLMQhDiqwBI1zUBdXSE1qPb3sKgejk06g09JEXopSlKJpqJD2qahdzqd7oi2BRlTf+s6FKvr9DYADXBXPCPj/NzLxjFwkXOHfCMU3UJGJh3/iqqzJwRQmfGsf+CAQNSDAEKSQA16z4Ntu6V/V7kpSwZ6UkIZMqrQieee9koLZgEmqJWwO40IfuhAFcIELFiCEjdaFGuExr3lZ7hatqXvd7yyyaCVC33kvOYL0nom2oECYV9OpNz6QAhNygGuN14AOugb5Hl4wBRbUhRZUk/hI57zXlTMF2dA9jn1grmdm83kiKKBAJG6XA/CC9wU7d4FiY8CBfLRgDuDc8aM75Zd0d7bSS59IkUclX98dOepJTi3Vn5ytL/eFylonDq9vPQQfECAHe5hCAYw7a3Da6a7HAUXKCcmUo6fUPpFc9sxl/z6RnQWAAii4XbZnTPifAz0fHPgkX3oM6Vamly832Vd7KU8R3F++tJ2OrueHoyrNVz1brCAMWX27nI9/nQmsH0EBbtoFmvIl2MO2CitQnp9UuHsp+29K3NvN/3aLN3frP9wrQBeZGfFJwMLZPYF4Od77LIrKu1CQCBQIgPSxQASKgxdoA58DOjeAImOIgb7oscYjtulDp3O6Po4QI6mrL+6jCu/zNIRxso7AN8Ioq/N7DtVjP+OSNfjrgr7ggzeDEEy4u/LwGwAIJN2Ji0AKJEC6hFFIQilswtvrKwPEkLrTEQVMwEiyO5f7Qj54rqSKwBOTiJwJADTkBuKjoBdwAf8s+EDm26C+MK90CyqiCiMDojQV3AjL27/cOwioU4gXNI1BlAgbHAz+Cr3v8LM2eL8GG4w3G4girKH84Iy4u0QmhMK+2kSVy0QnVDlQnCUaLI/U2MItZMCX05aroC4yZDaJCABc4IZY1BlYWoCZooybEKpekLe3OCf2SoU95MP/IyTfiafMS5UcGcWNwCFBUIXyIytFnA8V4yi/mMRhC8MEM49LLCRkoULswUQqHIVQPCn2EEcMyYRUzMJ0PMVSNEUjZKlWnMCICIBWwIV6tIaeCUaPILrG48Wp6Kyj0sfKC0DOS4hANMgYZA3SmLt7yxYxtIt88qF1i7NfoD9/HI7/+FK5+FKQTtTETSQkJWRCJWzCkQwcCVnAL5yWdFzJbFnHUmTFhpo5ieCG8wGXfBTIjXA0ocIEZ6gLgPQsnIyIpitIThvEQsyM0DiOn9AWZxwMA6uTdVOFIqxIUPgFzQKejxSxlSsZcuzKAtzGAWQPAEgRVVRHwnFJU3w5boGuCKSoaGQIezyf9AnKFYS+SHMLnMhLpKLLp7o9uVOyFty88Luvo5ymbGlKvzC/h6QuOQGFIixCHOGDQFqKscSzluRLmnBLZnvLhahJ9MHMidCGousETJC+rcjLdNtL0DyIr5G7wQwxo0zI1Tib11zGbXHAl/meRLKKR+ADxHyI/qI8/z5ApCIUQqwUx+xRRmZSSaVcTY5wS7eUiIyYzmAIAOeMiJ3csYv0iVR4BQMCyusURMt7N8Gsze4LzHqTzadzR2qBltaqFs5MCIPiofj8rEcAhSFco/uqQvIUrHZszvCUCIVqKEqykOZQnwBtCG2AtBzLMbz0ztRMUEHUP2M0SILczvMkyqhSz4gQnx66ITf5nh2KiESkvF2wk2nBSsnMNMt0OeWU0IKAToOSTpm7iFBAUBhViB3DMQJ60FiI0Bw1CP9jKoRUz8KkjBl80YhQBdTYwmvJIR+yKtJziOCkvGF7hEkgiO8ISabAUGbqwvsIUiptqISSiD2TORwVU4PIsf9O6Kk73IpOiAVO+FHVTNBR+RpePMiiRM8NTcal7B72fE8ohQjFvL5PCDUvRcq468+9AlOsUNOFUKgZjYjmOLE0hdR/WFAe88lU+FE5xdROaIoALFI+3VMNJUwO7VCmYCQEZBlmXBnEgYhQiNLFBDHnSlRFPSljozsGxFSF0LJJhYiMkMBL9VXn6844fQVfHcDWNNVTBcRURUp7Iw5r+ROIUCQtNdatsEIoxNVJ0sJH1daCANb6RIiZy7tLElfni4XujAVlXdah3B49hdZSpdZo7YsdslbgDNFsVVepGEde1UJ//QdyNdNztZCBtYtOfYVYcFdjJUjco9d6zVDz9LT/ZFSY5WjPWkUIxNHXhP0JcpylgLWPgRUUqIyIVohJZkvXj9WKTnXXTnjXZYWgeaVYJSXE0GBI4sjXfq2IRtrYlhUb/vRWNqLNd8RUkwVac1VZiwja03RXqNVWiP2dmoXBif2+e7WLD1Xacf1Zp+2J1rw9Xm2yo4VUrDpZQmXawvran1jYqNXW92iPqoXNq7XYukVEhyRUxOlZtr20AtxVPEvGslXTs+Vag9DMvOtbqWjYV2DYWFBX5DSYuT1SafVT5chNva1WxfUIchTHP7Qmox1Y8xPQhGqotd3cmWhYxn1ccZ1aZJvcrK3cZ0VSZdtXakHdpopdBALXwRVTHCRd/4UKBtztCdVlXH8dGLoVVSS72dWYW3zN24eoE5gZXuyjXAri3ZJVJDOVVHmkXo8oXoYd2C59j7q1XspwXr7Is0jlV8P1Xqu9228V3OyVSBLlXvf93uI9BvEVQNiFX4U036xQX4XAJ/C53+VlXjCSoIrNUf6SCHLtXgOeiFioBtWthoQNS/Jd3glB37ognGtNpAg+I90tH/DTT19t4PrVJ4oKYYqY4FiQhQn+WPIt3xE+XwCWCgFOCGZsX/fl4ASewd4NUhQm1C1bYRaWiBdOYgu+4Ble4BsmDB/eCg82TB064vIk2h+2XHV9T+DtKgi24oZ4YVmA4SVm4hnWYAzJWf8E1orE+eDbBWNnXWBYKuE1vs4hjt5V+2I4VggxhmFZaFndyeBjTOMonor/DGKChd49ft/ZXU759dc7dgivohM9XuSDiAVe6OOgHd/Y9N/vS9I6BooslBaIyOEjLmQEsjs5ltCOReQYzWNLZghMloVM5gWnnVonrmGkBOXZ/E833pZYTt5G5qUuXEVI1twUpuRgVgheGOMxtuVNFmQRHubOS8ZQvjcvROR05GHvRd7P2r1wFddWduAuy8FlNohmTmdoDlq/pGFPRlVdLiOV7M1yLYgizJZgRmUSrjtj3uLprd+yOmeEaGYPkAUPWGdA7l9q/g4gXuWe+CFJ+mUhimX/fR4e8AtnbZUZcj5bgT4IXijoj0bohDbSeCbEJDXhqWBJAAXO2rXkqR3bHCnZf77Wcq5nOA7pg/aAvu3khWaypGyLVExFbp5iS67o21HgawZNje7QievogsDpJdBptm0Kc0RjUCENhDFkLay73nRlg2jjWG5nh87id7bjmY7epnbqj47qJViCzV3lJ8bapOxphuBn5qy73yytll7kGazqlPvpY34Wcg5op/6Hj8aAJUDsRY5ruW5ijtjqQ0ZpKoaQpO5bUG5izM5szfZqwgDly9ZsrL5o0C6pDx1sWCtsXkBsDFjtxS7pxm5iXSKnU0BFcM0RNeLsgxgIB7y/PQZt/9/+bcdm6LkGbuLWbHUqbRJN645u69Vm7d52bbn+bMzWJVTEas5VxWUubu0Gbp/ebu+W5uXkV0O0KgEq7OZu7tYu6/yA7SazZtEG56vgZh1GwLWk6O++b+ueOvzeb8keosXpUKuyaTA+bxMwgfSm6w3m5+KmbjWiCe8R6Pfeb+DOav2W8NDmbtCNaEIN8ML+h9Uu8AI/8LFOEamK8Ole6es+ZKe2cPxOFelm7/Zu8ePG5+QmbKf+cBAX8cqWEPieawbv74m47XbscCK/mb2mUg43bxAP8edW76ue4TBdrTAUctwucis3GxrfcBvvaAwA8SIoAh2XUN7M5iq/cjPPWP/DGe8tF+gC//IvD/MABcPbPnM6Z5L/LuUn7fA2L4I0iAI4d87YdsA6H/QDVBlyRmandvM+9/MmR/Aho3JBJ3RJP8ksN8zW6vAvjwJNJ4E/p8vYxt5JD/X8OPKGaE8Bt2I+33ROb/QRh65sVmVRj/X5wKGbxaE5wXRVF4FO10ejBVP5lnVgT98vJGcg4ttlVnUSEAEEYPUdL6nqXpVgj3Y0z8Lx1vCOjgISyHYRgIFl/wJv9/YQZmxr6mqyxWhpP3fTuOuujmw5n2inxvZk33YaaAAEuAB7R4AGoIFKaIAehm5pivFfR3eBD2D25MJTP2Jt3/Z9r/cIiIAvEAV8pwH/GOB36hV3dWrwgc/4dC/Lgjf2ZZ53eq/3C/iCCGADQmADhxeFC0AABPiCivd3jY/5jBZqxfGeKSfyfJ93lr+AG4iAGyCEnr+BlWf5boZ5mT96SO34ByfyeIeBhR95h1/5BqiEiS96R0d6rB9YhzQc3pznujNzEQh7GNB5e5d6faf4fs96tV/7+3X4CGB7uI97uZ97uq97u797vM97vd97vu97v/97wA98wR98wi98wz98xE98xV98xm98x398yI98yZ98yq98y798zM98zd98zu98z/980A990R990i990z991E991V991m9913992I992Z992q9927993M993d99u97vfd//feAPfuEffuIvfuM/fuRPfuVffuZvfud/fuiPfumffuqvfuu/fuzPfu3ffu7vfu//fvAPf/Eff/Ivf/M/f/RPf/Vff/Zvf/d/f/iPf/mff/qvf/u/f/zPf/3ff/4HiH8CBxIsaPAgwoQKFzJs6PAhxIgSJ1KsaPEixowaN3Ls6PEjyJAiR5IsafIkypQqV7Js6fIlzJgyZ9KsafMmzpw6d/Ls6fMn0KBChxItavQo0qRKlzLtGRAAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhmzwiyIkn8iEIHyo+wscjj4w42yYorugiipPQiAkrMtJGY41ABomiiSbW2GNpqqQIZJFAgoLJiqCk+CQoR1YkiImQ0fhikEwK6aUgT66oIlCT8DHJmWWmieYkmKw5ySWXTMKJS7a8yYmccObJCSel6AnnmnGWMklPZvJxCYuIJqooos6BYqKKXw4pZJiOngiFigBEdcKmJ0TkRDPEDGPBqLZYUMotwKB6CyfAlAIMn69C/wMMAABgAgAoAABTlA4g6MBrQSkEgQIFFARgLDettEKKssuSEoqzoYSS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O/jwhrl3zolz9ee44l1TdY7BhIkiaaJEISFCBIxKNCpfuFC5Ng3rdZWdgMV1x1qBCSq4oFN/wYTTaUydhyCDjbX3XnzxzUcCh/jB0EADF3wRQQRfVEZDgBUaRaCKEt3UIowxyhiSXjVCdN6NS81oGIf23edhfiiCyN8NEdxwxhlFitIfiTv6xKKTUUo5JZUC2Xilg01VOVePHd4HA5j6DYn/wAWiRIdkdEteEMGWMkHZJpxxyrncgzp9BheEyc2ZVknwwVcEoBv6KOYFRRp5AYgX7JmSZos6+iiklyGFo53mrUZhpFmZsIRkfwJan48woMiffw0gIEqmIHGVKqutuvoqrASR2GSstdp6K6656rorr736+iuwwQo7LLHFGnsssskquyyzzTr7LLTRSjsttdVaey222Wq7LbfdevstuOGKOy655Zp7Lrrpqrsuu+26+y688co7L7312nsvvvnquy+//fr7L8ABCzwwwQUbfDDCCSu8MMMNO/wwxBFLPDHFFVt8McYZa7wxxx17/DHIIYs8Msklm3wyyimrvDLLLbv8VDLMMcs8M80123wzzjnrvDPPPfv8M9BBCz000UUbfTTSSSu9NNNNO/001FFLPTXVVVt9NdZZa7011117/TXYYYs9Ntllm3022mmrvTbbbbv99nABAQAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYoYmGClFgiHygKwoeKj6CIyYiz/XLJKKxcIoiNgoAiyCSngAIKNTDS9oiKJhZp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IkIlGQKWoIgYNaiccyWquCKLI5H4UF0YtjjcbBx2KNGHMOg441kv8tiQX9j9OCSRQ/po2VbdFZlaWbaBRFEDlUhZCQwNLMnUkUTyR2GFV3r5pX7ziSb/0U4AgmlajbRV1AANNDTAJg1n/iYkmEGmdMqYcuq5p3dZGhQan5g1yWFFCDSAAKJvBuoSnV8i5eCikUpKnJ8ENWfmpIbNth5FNyB6gSgXIJqpRpW26FdcpKq66mh9obiamKuxipeNGJhwqwlFpJFGFCT4KoIIMFTiJqgRfBHBDRdEMCtFpra4FLPRStvWq4TNNS1aIpAALLA6Ctvmm4giAOoXx35xxiVn3BABu+22i+1ajToKKbz12gtUrMqVmS9M936Vq6689vortzqCe6go5bKxrijs+juQsw9LPDGpdsKVEMVCYfCObbXiasKuAwc77Lg3fJHsBRmnNMlUGbv8/7KqRp24Wpkw/1TbEhjk/HERRUQh8shvXiAqAjeoHJPNSSvNZ101bfZSv0u3VKuNtwY88LYGh4uAKDCnJDXYYYs9Ntllm3022mmrvTbbbbv9Ntxxyz033XXbfTfeeeu9N999+/034IELPjjhhRt+OOKJK7444407/jjkkUs+OeWVW3455plrvjnnnXv+Oeihiz466aWbfjrqqau+Ouutu/467LHLPjvttdt+O+6567477737/jvwwQs/PPHFG3888skrvzzzzTv/PPTRSz899dVbfz322Wu/Pffde/89+OGLPz755Zt/Pvrpq78+++27/z788cs/P/31238//vnrvyM///37/z8AAyjAARKwgAY8IAITqMAFMrCBDnwgBCMoQeIEBAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iz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bj30s+ucX5nWXekwNu7cunfz5go7Y0PKvYd3PY3h+EgaMETAoEH8OcHf0BdDhvjo4/Ts2rdzdyxdIU2O3cebNI48JAIYMCqpZ00e9/f3ZXeKl2//Pv78CeMjDL1SP4D/eFAPaiE1QAMNByYY4Gb8MTiUaBON9iCFFVpYmoMGzXTUhe9Fddx5ICHQAAIjNuBeh4NlmOJIHdmEHYsxyjgjVmsZ9VJ9NEL3IYgilXgBkCXqONeKQ2oIk41GKrkkk+A1phJlSTW522EYmCASkF9EEIEoF0QwJVZFLon/pFs5gnkmmjKKqZFLacYWBQlxikACAglteecXs4iCCBtfaHnnl25O9qSbf0kIo6CJKprfmv9INOGimkWRBpxxZoRnBDecIUoEfwYaaUqN6lhbmaCaeup2jU6EKmZSUXUlSDdk2akodbLKWF5ukvrQrb36Ch9PtVW366+JecDLEiBaaQKzJhRBqZwiVJLgjxcIWexIotIYHK/YevstdXjFdBu4c5l3XLPMPlupCMw1d6KJKJa7H6G6NjQvvvmWFdm4u16kb1lRVWnCss8WEQW77k6LIIIA88XQJIg6PDHFFfN7F7kVWzVVYcqm6yylcLbr7nrtabxQxN2evDLL3vr7/2hdkLXsVJXoNlvEupWSMDJzzLFc78xBC72oS6JVZhtlGQ+tVLID35xGyCLv3C4MQf+7NNZZa7011117/TXYYYs9Ntllm3022mmrvTbbbbv9Ntxxyz033XXbfTfeeeu9N999+/034IELPjjhhRt+OOKJK7444407/jjkkUs+OeWVW3455plrvjnnnXv+Oeihiz466aWbfjrqqau+Ouutu/467LHLPjvttdt+O+6567477737/jvwwQs/PPHFG3888skrvzzzzTv/PPTRSz899dVbfz322Wu/Pffde/89+OGLPz755Zt/Pvrpq78+++27/z788cs/P/31238//vnrvxg///37/z8AAyjAARKwgAY8IAITqEDaBQQAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at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/CAIQyjCEZKwhCY8IQpTqMIVsrCFLnwhDGMowxnSsIY2vCEOc6jDHfKwhz78IRCDKMQhErGIRjwiEpOoxCUysYlOfCIUoyjFKVKxila8IhazqMUtcrGLXvwiGMMoxjGSsYxmPCMa06jGNbKxjW58IxzjKMc50rGOdrwjHvOoxz3ysY9+/CMgAynIQRKykIY8JCITqchFMrKRjnwkJCMpyUlSspKWvCQmM6nJTXKyk578JChDKcpRkrKUpjwlKlOpylWyspWufCUsYynLWdKyFpa2vCUuc6nLXfKyl778JTCDKczrBQQAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhgpQoCB8noqiiIJugOOJsfPzCByag8KEiHwDYOAkfwLxIGyYolriiiSsGGeSJKQriY2mgXGLjKDYmaSKSNdrIR5U2ArBkRYI8ouRjJT5iZJRTllmmlWje+KVPabaJ5o5FzugSH07yAaeVd9qJJpBt9uTmn2iewodzVRKJpJMpugmKoIJeeYqJk1xyCVDXEGOLBRZcWooF0NhyCzS3AONpKdCQygkwpQADDADA3MIJqaCU/wIAKKAAUyutt+JKKwA0YnLJLyWC0iUmjwjL4ibPPJJSAK1wQwourUQbLSmtkGKtOKFYG8q2mYTSbbePZCIuuI94KW6X5qLr5bpddslHueuKiWSJQb1rImObmKnvvkgW2e+8Qq6ZE6AEp7kjS28aXPCfOi28sHJYztvmvzdaKcgoglyS8caXNCms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pj41qlOt6lWzutWufjWsYy3rWdO61ra+Na5zretd87rXvv41sIMt7GETu9jGPjayk63sZTO72c5+NrSjLe1pU7va1r42trOt7W1zu9ve/ja4wwgt7nGTu74BAQAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYoYmGP8CGIiSjyoaIgJ6o4Ik8h7MMPPyUkkUQJJbiloomT7Oijij2+SFuJLD7Cooksnqgkkjsu6aKQLe0g5Q4D+LFPBvzYYWMSGnzQ5Qe5eKlBWC2OsqOZP6Z5iZpQVmSkIJA9ImeSgrxJ551JItminksCBWSaPfaY5p98uASKoIH+iCihOyba06CQ/jhKVlOaMsAOpvgRghJKXEkjjltyqUESYtqRVaSRoonqJWvyMQlQwFz/MkkprAJAa60AXAIKALkCAAquv7JaK6uCrPnrr5MYCwooroIiyLKCYNKss3Vicueun6SUiZxybqvKnHNmkkmd3QqybZFGvnkuunami2KRfJyi5Lx5lohiUEeyyNi45NaJ55168pnnknTeu5OgqPqYKMKFrsSwohArPKhOCVfc8FNTZjxAD3LwEYoBPVi6cQ8GGOCHpptyemUGGeDocgZT7bmixWaquiofrV6cUym3Cuvzz0ALm2yywuZ6rK+5snqsrrou6zS01CYZNZ0njcvt1VhnzS25V/vr9b8F0ws22E/61OKJjyQ259hss/0upCfmZPHcLDEK8cMSu+qj3HOj/4qVlANcWqXKLIOaRB6javDlB4zn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X5FajwjqrMD8EeVWELyEJUBGD0SDgFSrYF49pNcB632Ce7VgA/nO13A08qZW/fjfEZP4aLXro/9rSwwTWfCVtrygrj1DiUadifKMd4DMEyy8XvY+AcNIcC8cDnAALRgBCPiQAT7+YIT4cnh2cbGRiqMs5eXyt79TZkpmqSsLnWHWwDG254B125Y/6NjC7N1Cj38MhyBrgcjwtcEBgMDkDtvVrVe+M571iuI89rFCeRbKbNnhAUFH07oesC6iD61oBGdGE2rlKB7Ka94KXzjDG24y495SIw/+udOeXukTZaQ4lX6aJ7KIhSzYwVd2zDbAOkt0PaCFGT38dgaRlvB5f6BjDB/gyJiW3opKLexhE7vYxj42spOt7GUzu9nOfja0oy3taVO72ta+Nrazre1tc7vb3v42uMPMLe5xk7vc5j43utOt7nWzu93ufje84y3vedO73va+N77zre9987vf/v43wAMu8IETvOAGPzjCE67whTO84Q5/OMQjLvGJU7ziFr84xjOu8Y1zvOMe/zjIQy7ykZO85CY/OcpTrvKVs7zlLn85zGMu85nTvOY2vznOc67znfO85z7/OdCDLvShE73oRj860pOu9KUzvelOfzrUoy71qVO96la/OtazrvWtc73rXv862MMu9rGTvexmPzva0672tbO97W5/O9zjLve5BycgACH5BAkEAP8ALAAAAADUA9wAAAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MOL/x9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghihiYYKUKAgffDyCIh8noljiiDOFsE8GJSRRAj0aaPDBjjtCsaMGbq0o5JAoTnIJjLQ9YqKSJjZpIoslQhklikim1EMIGfBTYxJ5dJmjOB/kImYuqkCRySOPqPIIFMyEheIoRMa54iiCXLLiJHxMUmVFgqgIGZNQMunkoIOyKCWUfAAlJJ6L5lmko3gy6pKjclZKJJ49WWqonFHt4OkOAxigRAY0bpmjjjyGCQWZZKqiZpqCsP8iSCZZ8QGnprgOeckpKB75EyeXTALAJcQOS+yxyNqp7CWY2GmkkckKCYqyfFxyIgAuumjnk4JM4uQpj6SUSZ8pntInmiUqeWa6KQqarpPukksot06m2KSQJwbVIpWLfXKukvHOKzC3iGbLE6O5PhqpoywhzOjCQy6M8J384pSwpU99asoAOxgQQghKzKhlCVsmcWqOqZLJjKssqylILlNhcvHMK9pZ7Yo8JYsstDofa2yxyA4rNLKg8DHt0ZdMW6cg5oIiiNMDm3jSuH02iSbAVWNdddQDS8l1vSdOCVTYJ4aL2Jlaf632pmwbmhPNGK/0KNyVvt023EZ9+ukAphj/EASKpzxggCkbm9JDDwYY4MfHIIdMapYjl8zlqUl8AGYSTk1LN9zULosTJ8YCgO0lw5ai8yTTPhvs6j0n7frNnRtdretNPy170U7jXqKsJY2L9tXAB3911sFnTTy6ZNMbNpHL7+tiiz4ZuvxhW6MbsNr3Ruk8vs3btHnEeao0ycTfE3lT+UI6pbGnpjQ+I8kkJzF5HjqiumMuq0IBRcuPsNK/kv5TyuZOBKdg0ayAvTKaTX7Wup2xLlk8ayCyqrUwauFOehhMXpNK4r/iWc14acMe2OaVQa/VrSdTgh5h1oU8QTEphP+62iYEgYkUFmpFZENUTSzlMEpRDGcqQV+c/x7mPSEmSn16+4fHSMWPLMFPfibTkZhW5ao0qYIV/vPf1qoGLrMRhVfZmpmzIOUomwkJTgg0I4qKdsSZtG5oOhNdA4cGCgCAYhRIQ9opdrUrUJzCj35kmiChBjUTOY1FJRGeIhfJyOFhDYYiJBi+2rgTtuVrMMRLlwvDRiuLPMJbOGzR8qA0k0qRj3xDYokP55YwVAKRJkakJFrMVLUzqSJW5noXH04BhaHQ6W44dNtFRoGwMdYMRdhyo7GENawIMlCCPQNFBImVx6cdiw92rJaJrPW0E/2xRLlMJPBmFUNHjvORS7oe16SnPUQlL1uX5MmQ4vmX36EzayDZRCg3tf8vmRDJGT9plJ4mAj5ZwiRODEHoW6Agq6vlUoOCUBQwU/kRYNzMVgmE0yRGIRPSIStTJYIaK8QZPHk2L6KZaltgHjEu67X0RSWRWRjDGBPzBZSVFZEdpXY4JI4mlKJygcLWHqo9lFaSeScqmklkhi2MjuKaA3VJsgDQk0B204siedXVQpFSskXPpn5R5LtUMsOZSuklYE0ppaJK0Imx9aBpTUhc4wIF5D20fymqpLk4lZJJ8OoST0XgsF6iMxSG9GlYDUnwMsFVkz7PJ9szaF5m5ch1TYqf/Lxs+m46N4vwtaZzPUho5QLAWHHrFHabksFa4jTXUWuwLbmE6YqFwkL/Oi2R9mzsTk76VaDuZZGzqqkoEYWJlozWYj+8iEJB61u5NtcuRWWXUWG514KBoqbLuhkorsuS0smWqjzZRCFhOhKWoulMutUJb1E4yb5kwp7oguW++tmw5+pklZKNyPjsK7fjEsS/pH1eO3mqWjrRxI7WotZbUSI604muJ6oY73QVi7YzRU+UE86J8+iJl1C891znOp9qOXwSAPP0YfmFSEGZu9mFmFguRH2SG/mpwh0Sa41J666DgeGrnUTYkIkFiXnNe+HHsne4e1mFPUvUyfOpiL8j8eGC7wspTGGkUSlGyXIV8mK5ZK9EPn3JL0YpyJyMAgB1OlZxVSJb0Jmu/yePIGSfevde8wbDsNrrLQ5/+4hQAK/JEpmhwFy05pzOlw+FLvHEJDq+SGXErVbWbIu5DOW7EEpJcIVnlhcizYKusVoXadZTsXkJYKgEAJwwXSnAuxNQyOqqdH7vmVoB0jyzN5h6qfN50TSRl7oLklKbSGQzTBLyAWW/C9MIxSQl6VdSetJV6ZLlxKQKZoRpRxxhhTvBOSkbbhohfr0oxYpmrr1eiyKcwObscpwSAJRi1W/mSf8OG+SPMJals8YzKdW657yc6d+8jgi62mW8gQlqIirK4ZRFEjFFSezbD3k4xBn+4i4bpXIf0EAuPsCMMU2RTJm4IitUkYkPZGReLf/BcMUeAtjIVgqwiLZVjyFSx3WPLyXwfncp4Gxap9XbI7KWNa13a0PIHtrlwYSooAKlyYBLJBRQjzrUSUH1YLQiABABgRlAAIKQABxtEil4JJ0kEcxOfCMPd3ikIn1lAxLRuBWv9FHox6MxhcnjrWqZmlzVJ1VchFCoDeK+/BQRpOPKZmzkLkSCNbqk7fwkOtd5RKKBatHV0fJ2RHAehaVNO+HOWpiIMyZYgQlQlL6Go1DSeOns4fdaAyLBgO+ukVdO660zhZom71Fzj9nmlVBggHpvREiB3vdKneqkaEUrSBEANDRE61zfOkiCLmuIDO9dUfNaocqOQ5lpmYzHXnv/+DaiMDs1e+XOhbZSOH5tMd1PFWOCf95ZNvI0zfuWFXk1t+S2PRXDCYxE8ks4hEbiJjsz5xDNYicAYCQoEXnvBhEWIFukA2+ZdzQIlizblYEaqIHd5DSowwqg8Ajf1CfgUhIe1nqZwA0PQXz4JmvWUzzqNHZkdnZoNUmG905cEy+YtoKhQHXK1wq4gAvcEABDSAFGSAFBsBBbp3USwABbJ30cwQ1SJ3wP8WGZZDX2Yi+AAlEkthAyszyYkGhRpjDHVmU02BASB3dyJxAW5xPW5n53h3d5N0X7Q3/9o1Wygn/CRigpUTSjBBGYcCtvIiRgNCXWglFmNEZFc4ALwXjE/yIsnAB5DggRwABvQCM0dZRHx3I0Geg6nJg7Hcg029VNuPQJJshYqIgLD9F6jSQ8W/SKX6N9+3Zrvsc8h6I2u4ZeD3GEvIgCvhgEkfAAwfgAHVCMgTAQXAd9T2gFEiAAQfAIAsAAZWAGTxh9XVcRRBgAuNAKQ7iK56QiWKMQXCOGC9EtBVNiVRZ+EtMRy8Z237eG/9CGO6Fx+COH7ieHJOcqdWhFHQQwt+Q/ficRdNJOPwcSwaRADjFckzR+CFGANrNRwbJ4PiMskhh5DwENqSY6oEM6mKh5F/iJmriBobhd3+Q0DTVSJHGCjBUKqtgQrTBkrXhOHyRC2hdstVZU7P8EUb+Xk6+4gw0ha1Hng8nng0LIDdyAAgyRjFYwjVzXEcEAdS4IEQUHMAJXk7rHEJsASmGDjnlycz+BbF3pEQ/pbO+ofqIFjz2BjywTf/KXKjxyJqxwCldkPQ1lWo8QZirWTsQGEqqFfi7mcvoVJWlEg8CygMdyErbwbonJagxxCxRIOsDACdMSNJe4gRpoR5bpNGM2Q2PWUCG4lx4RdSupgg1BfLoGk4wEi8A2k8pzhplmKb4XXYRSkz7JEB7WgkA5dVQXClfnEE/4hEB3moC2EC3EJMP5EAlHMFIpPe4YEkXSaOGXjh0BMcyWEluWfmQ5FBpXJmvpcT4CJBCRC4L/8I9awyS9ZH288oclsT2gaRAjhlEUsUuwk2YQISzQsgmPRxKJmZgP6BA6526r9l2rJjoEWoHEUidHYyRPA4qE9EcOSopxdhKkIHWhQJq2GXQsRVmtuEWrqZcC5iJEkZyyKSUAY0K0N05k5xDUx1jWsHxGKYQBQAFI+RBaB4UdwVK3eZwJQTUAQ3gVAY4Jl50JoSJf6Jcg8TBe6ROd0Gj79RE9hJBlKaQGIY82oQFmondlkgs6WniZYC60Fyso+RDuZCsm4W0OAUq4plx1YjSe9xDDMpnEYhKlYAu3wJ8PQacZWYlTMaFSh3WliaHp1Rj2YpMMsaKk0BMoaGEOgU6u/9mQ9LIJYuo8C8eOazepN7GkjcaQ7EhGjapccWeWP8EMa4KlYsIRV8QiL8Qi5/kQJxV4UeY8YhpMjEgRvII70xKJDkE6RjIt+SkSpWABc1oKt/AQ4fBuANqrT8GnU2ehC2Ga/7aliTEoq0h9h7oTE0p9KsqjtYkRJ3V2JVQSTKqpBxOulupZECOuJHGdDYmWN/EBddUyDAUzH6EkRMUrAekQKOIu6ep7CVmkSUV+1vSIEcdAiicStnCwwGoLD+GAAKCwUqGsE+qnDNEK1FeQiPFByBl0UMcTKxqoCaFJ6cIRX2axBNELwUSOTsqk5VoTKpukHvFDnZpTnyqlPPEBTP/WMiUnEkI1VIKAlw1RLyR7Zev1U0WKshWRgJ9ntAdhn4ZZErZgAQdLpw9hAY75bsAwrA+7m1THrApBscZHhY8hrdkadNWqE4kKrQZRPC97i6zaPCuLES2rjsjGcBDjs2MIj1QqE3VVf1VkEnzwauYmlfXyqtITqyjifR3heQqotAYhLMgCDfoJtU+LrAoBDVVrtXuKfBNKAQ5BsYkaGRg7tsZXtjmxog4RCuU0r4dSkJ+0YYU7EnH7lbFrkKv0tso2s0Yqb12aJlh0r+vZJOEUqcsTtJ7VPbnaIt7yEdJ0LIJgagixDMoCpx6FqwZrAVALtReZmFULuVkrlJzrkon/SrqNEbo/Sa0ci6EqulgfMajCJBA1NKLz1YXTqbJyC50U11l+i7sx2xJ1BStl0p58SVQTp5MArKbT0xAydSfrO5nPQhDQkol11DMLSBLWawHEgL0OcQ3CGqzcGxU/mHzB8L0Ti4qtB7pLUsADYajnq2uLGjym6BG7sG1h8wg1VDBtcyLN6RGz2xOYyqQjMZaHm794y64zIYJq0kEroX8k2J6xqVoMp54/JSSMaxHKgjqJh5nLGyygACw+w5EUbMEX7LANocGWCw2lEA1TsY0/2AoivBCt0HonaMJjla0tKL42gQsV28LAgwp8OSg19Mc0FJvwBK70+xM9PD7UGxLG/8Qw6aq/+tJBWPQI8qoS4BglTicQmYBB27ZafMlN8julzgOpyms0qIM6wKCJyXLKxWJHvqCfw3DBwyDGDEHGt3ALwGABaazG27gInQuVHmbHi0G+DIFv+AbMNOGsdZaQJQUS7xvILDJDgFzDMoMwJzLFGrHDPMEJ2HykKLa/hguqBZG3LVF/49l3LuFCiPQPrzaoglRC3uyF74Sv82W7EgEtCLpuSLOJhgm9l5BqJWEBr0wMxCDLC0HGtgANt5zG3ACEQTijDIELvsxYclw1VVhn72XMMxF76Puz9hQSrmAizQzIgZwuk6BPeWLNaFfIPqHNKs1wbheWdwvO/0XEMP8hgljjuyvxUsozm7I4qxuhTwPWEJaE0hRhxRiYNAysq3wADKiGyyYBxsQQyw9xDQd9C9BgC2gsFUQohEHIy+BLoRO9rQpRYca3E2dLvP8QQ2jLrd4i0jLTzCxC1Cnrw4assolMcY1mfjFNszMt0zWxs0ziKjAxQtlnZCIxZjmEr/gi12W3q6QTwRFcgc67Eq9c2cQw1Vh90Fg9FUPY2dyQhC6prBsLGfBSheZV1mabxw2xWGttER8deoGMJ6HXCTKxzTpxyC4bZW6Xwxyhrmfp1zSxRQEEE9qGPbNYEs/grxOHWYwtESFoLNuFLcAw2S/BA8Nw3df9ENFgAdGA1dD/4NRRYYRDGAABANoMIYVgTdpWk7Et6LE1odFR+ZPqKxKBLMre09I8gdt3LRKYIDET7JyODGdaZCKr+hK3l859qNzyzE6wOy3UTRM8YN3NYN1Tzd0WAA3QcA1TYYQxGqOR4BC4INrurRhiW77nJdE7odqFqrZeobLN/RKdwNL2axJ44iwMCOBDDNwyoX8NNROwOLSqdC9nWlQFuxURfuQ8UOHbHQ3QcNlSwYtG+OENwQ27OXVhjcICcTVAqbvxLd8ZitZRwaRLChS4Tc8ZsYBkZOYR4dtTStMpZzUFflDNY2D+JOSKLTZeceQrEOEPMQwWDg3bPRUoYISDTgEP4BAB/6C1ox22Kerl+DbiNGG66Qs8L8wVtp0TMY7f6YrmkeLTVxbgO/Fr7+wRhWQT2dO2tuUVe74CrJ7kDtEM1rvk4A0VQeCLtt4BiK7okH6xjT7MWo7iOoGbrT0QwRN6LS7mZD4J2szS4gMpybS+oK5eW/O3cMG2CZlDYP4UTsDqrO4EfW4B18Dd0aDhUhEJtR4E6P4Qic6nyTfRVznWv87HKU7Mw07s9lTvTzEJ/T0JY17XS8rsKVHFXanmir0oQu3m/LdB1b5/rAo1x60VThDxTnAFD5EN4G7h5F7uQfAAQYDruY58PejuWP4Pf5YJ8q4Tz8pSGJ22wcMHJ58VYk7wLv/x78rO73JTQTIfxf3mYgifEkzzUK4aJIaE4AyRQyHVFWDgBArQBBDBAxe/3YZAFTVQjCkAEQGwfBNKde5+dvf+8jiBgvgmlcJT6VjB73StpOOzpDHOErud2xnB5uHc8yjRs73eFogW1AnJk3DhDRVsvRlfFhSA9cgn8sgZ7zwRDKetqJNuTlph9maf7Noc47S9EpXKeJua43xd5wofFyD97grhyYcLpWzBAxdcwVF/FhSgubxJ+Hp8XrtexKcZEf7SowBj31XRCZig9jnPEpn+75MvN2geLLu/rpifu8Fd925RIu97hllYzUc/+sQQ7tJfFdcIEYEP8itPPSdc+Fr//voyMSsV5vVFD1ziDxX6rvuQb/b7fRLaDDv/fbvFP+r0XeJwofy709x4kkKpxwe2DxD/BA4kWNDgQYQJFS5k2JAhD2LXLEg05NDiRYwZCerQYYajxQCtRJIiqdHkSZQpVV4U1NKlxUcxZYZaWVNhpkc4dWZ8tEmmoEdAfWKyWdRoJ0yTJnWaZNRpwU6cOC2dxOmpRT58Lind2rRmVrBZG4YVe/Wry5dm1a5lGBQT2oxo0U4SxIcVW7xXeQyT2DfvX4McBZuxSIFUK5KHAS9mjFKuIJgyc9JszBOnTI09gQbVHJPPo12V8U7CxJSpaI1RqzK1irrrpK42yWodSxZ1/8PHt3U7flsXMk9MfNCeErRJOChQu5UP3NvXgrflTnWA0LFGgoAyHaczfICCgncKFKKPB5zboeSYlMkbjHk5pkafxX/GLN7y0XqVk1JR7YQfYVTTpLoNANj4mMRAolaajY/awvJPILkYfPDBx37DaBNBJmEluAozxGZCwDzhayJisgHxIo88ok6HRCSogQIGsuNIRRAQSuGBB4LQMZITe3RMrsgkU2/CTHRq76RPBMEEQ87eos+4TXxsSL+lUunPR9U6AVA3Aw+EzSuVFmwQrAkjlHI8UFz6zMK4hAvKpbcwAUUVui6h5synVuBrROjwtEiwRBJZoyOHUMCFFFxEav/FT0YVMvM89DLxsT2ZJDXJFZ/efKS3+uhryZVGByqtNC2l5ERLVHXZrasuwURJTIZme1AVuU4JlUu0ytJol0no4yNNJQUBJc5g77xVoBOSvUjPiCwgpqJjFRJMu8IQIyWUkqK91byG0MvJx0/cw4kUlFxJEsNO63sLw3Ut9VO/TqxMxVQAt+SS1S/DlDVW2/yLUEJtGXtLuOKES6kudImVc9g0QXlkkl4aTXbiEyzaa8RohjEknmyu8bivQ6AJOZpooAHmZGrCAIYalKkBhZpfQPnlmV+ooUYV3abT4aKQEkvMWpJCwfZaUjIJpUijHwklJ0or9fa+gK9C6xGA24r/VErJLluJPkycfDPOTbrGZFNU8IRXXimjOvXUV5RrlSt9+11oX/wIhitqxnxz6ZKV0L1EkL+RE1bOhZGb5EMpJ6aCiokdUmAFyFfwhodsKvfYApKjAQYazlEGBjkAQkdudNJlZuUXVk7Z5JczAzgMW6GvRbpIppk28mlNO1wTb6O4tTprKd3LKRM2UUIl05bGjnNJJcemS5Cyezw73rSlsl7V3b5UqsuUDAwLgDF1Xc/ulqrmHS9gkw+qJmo2VZdhJXuSeVg+WB6PYoqpSECMJrJSQIwEJIBx+KsYQcgABgQ2QYFXYKACHOgEBThBgpGTHOUsd7lrcK5zJwPF54Dx/wsQss5Hhgma7IRmNBQiDXfeAkoL35QroJyvJlMzn0K85a4eZQp4NlnF2NAitq6FDUMJOxEm5GUlKb3CelFpm3IKpJR8neRAclMI3dajt7TIMC8tRMtdbNI+UPBhE5sgnbDm1zXk/CIWE1JcAhrXkCtMcAX64IE3smEIQ0TjGpmDRhhM9seTcRAAoBtk6UgXM1WIsEckDJrQTjg7261QMi7skH20qBLfLWQz9MFhjwQhrvcYxVw92ZQQg6i8sJXyQak44pV6ZL0lRmd7UHRVRmA1NyqSR28Gu+RfKgS1omCja8Fi2MJiRkZM/EIQwHgQAS+SDb58zAIWgEbJSmayQP8GspCG5CbpWAGK0xUPRIgZmiNTSLvbSXKSlaxLL390N9xMspMnQsXtcCLOmuwiE137RNjih8rlAXM88SLovHz0CrWpLTpbeY1SpGjFhEB0PMKhKD7d+ZT2PaaGNRFm8sI2OsK9DBPLwISx1kMxjDiBL9nAXEuhQU0NZhMYACgFAIDBiW4iJ6TgRE448WQt2B3taOjMWu3UaR8sukSgF8WKmix6kM20cJ4nSlKkluqUVA5ljOtiEmmuqpuCUu+gAJJKE5dDy9iY5JZVzOVEfcNLpq7lF6d4k93WIqxfLWyncrpEUsKAtxU0o2PSLBk1bRFTln2ugzIdXcwc+wsMxez/dMnBU8+Aeq1Hzg6SwkPPZj7zQqXGFSPke6pBohqUqZ5IJ5sMSvTUMsZekZJ57EqKIEKjHFayUqw9OgZZO2HW5TAUihsdyxTJxBDjik+XFSWuaIvCiqAQDF1RWssmALCJSwzrF4VDDjUmAYq/OjclmIACOJUpXos85qvoNUhFW5Je+qC2UUYFitbwMkyxmdKfS1JOvKwUC4P2CKFSYSJ5aPklvtmSLAnGpYP8lZW6NBclo+ADcSpJ2reC5YUYJliFO0xRCavlMT4sbVE+wd3Rffdl32WvSTDxzcm2OFZyWa+MBVJRqsGEkqntEWd0mBPo5WWMGToXEJcUNt3oNhWc/1ijj3qrxLKuhzRQPI2C23oQiUbnre0sCoUjDGG7MXfLCyIzcxf05RJLrTfEmkQmqMsWbICCjGlk2MtAAQBF2pghMeNpjfVMWj/L2L1pHoibpHqre8Z3KJn4xF/CZmQjv7ky/v1tgE/0CiVmGrhnJRAUL+FKrGS5vVdejpiNQrXysTNCY05qhcK8y/KF2CynIFb8PitpuaKYpMvYBDAsreeEPAIY33QYsBGiXmOb1r065swnjzUfmQx5E40WMmwhvYlJ3LYx8YpFJwAspWNwAsrixk9DoxhqUhdE1G7LcFFQPWiNZrjMYEmqmEEMZt9UhsSc0sy0/7KL634OZssQKf81wpFshCSTz4GWMbIRXugtM3uT2iJlTIYYbULn89GQxoS2F8PtbjdZwOPGtH8OfKDRkqWWCAkLyv1jatmI2dVjBvOZSWtvVmexMWKsj322qooE4WUeyLQzwUvKzIcTJJnz82LS/wFop//jUd1Caiij9QlS+kTrbn5EP3lslF5MYuNdI03QAZMKAMfiFSK/NKbFTW78TOXkF5kNg9nq4Lq12yYR9s0oVC1zLHb4wqyG8HtRw67mBQtdSqI2W4CBiV6sbGErM2nS6XzeqEPd6VNnSNWdHTVBVFXrFs9Ju+479iXxdzFoj4Xa2Q4it8f+QSe3O7+8RxvbHzfvIC4Kvtf/xApVD6dDj7Dw4FMNT9RoRl1HLmVMzG4WPIOC4KBIBXKQbnk5oS7j6HV40jmvSRd+C2+06AnWSY+eTA3pKbu4tur/8l/XgzvT4j7GhLQHRXRPceVYBovLd6/7ldgyQbCVxYC35dCqIUs9f4oPXHOKeaCG7Ooumam8ZDOjb2K4FquQqPs+Gwq/r7uVooq28pOtTwCVq+C4VPA4tmA9tZMFcHs7TNs08gAFKOIEA2kN2/MS8Mk9/xsfepM1lmAuAiyPpBoPoDiyVGI+rTsXE8Qo6bM+Obm+ZJuE8kIODGQvDdy8XEkvD+ylUDA/n8C6sdm60fuExisKSBM7wGi91lu7/xeMPRkkj0uwwe2pvYRILuViuf4DQtFYN424N7vImyIkj7DBicjalJ4YoyVURCdcBjvpIGo4hB7xBmGwBVvYnM4pBU0shZmSKQ5SLNARnNLBkJ6Sme1bjlbILKJaIS6amviamg7JvC10iKqzuktahXNJxKxTxDHquq5pwppIhY0Tor9gwxZ8w7erPxAxt/1rL/3DvQbzngfxQ1v6Mj4YBcYwQPxYHfngRW+Us1/oJzKqg6KwM5ehBk5YhhOJh5ayAFvYxEDCps05GZu6hJkiJJDKKZ6ilTORHc2KJM6SJHa6uSsULw5MCBoryGg5Hq3rxX7qp0TkxX6ahppIvfz6Nf+zYENZeAUXPKjY44RaOJHvaigcjKhLyIopmpJ02w1qHC1rPMWaiC41ARF9GhtSeoZpa8hPgCyaCUd5YB+beUQ7mRBKIBlbcEdouER59EQP6iB9fMpngEnd8Md/TCfcCb9mCz4+RC/B20pYVMiAwcWuIyVxVMSy7Lp+WgkjEzsPwAtjjIWOHDlxU6KQFEntCaNYMa4ejKg9nMaVrMawkMowOUj8cIVf0EVv9MZPkLNnOEMpYpmXWZnwwo9hEIZpAgYLAIZLZMpsGh1Q3Kan5KlTyLNx0iydsEpW5IxXDD7BZCry2UrQskXxMsNp67rEHCOIfEjHzIhNSIX8asCn0Ej/jpS/2KtLEImKS2ioudFLIGxJ1Fir7rHGrZSNMcMTTGEF3HzInOwnnNxOCsyIc3wZ+/GPYXCpw3rHcGBKmwokUMgumwodAIhAneKmRxgFVogYH2kFzVqa4QnIq1Qq0Fo15Hu412wqADW2VTDL7czOTeiFacOEVTgJVwCi3lTB4JQFuMRQ4ozBg+uRrniN5cyKk2xGdevLlyOL1uS/wBRE5gqVb8DNxjRDcdzJ1ZmZTbBQi5AHmLGZlenQ9biGw6KmzDSZS+REbWpKl7kzPiMdACgcNEojMkIcHykaFRqep4mqr/wJ+8hKpWqhqLuxXeLCFwJLd6qnXzTLsixLitSI/1MSG7aoBriM0w2NQVO5PzskCDxsThOtmx+czrnhu2tkDJmkqKvDyRhl0DHqzk0gRzadQJTxj2iwxJfCzKijUnT6UsBwL69sRTJlKlzUzpxUxONJy4zYhY1jP21Yi2qQBVbVUCeLQUwzzhOZig91KJZLLhIliJbz08VAszw8CU31PXnLCgpD0UFrqhYNGHOYtprBzXBcnTg7MZOghmVILFCQxB+1gFI4rFuIhkqtHZzA1L/oyvRaE0vCVGTop1GdUV7EgYxYkl6AvK5ZC1bN0Lg8kWOoBViV1RPphOQcLr5EyV8dNbzj04KNzpobNEAMzHvjuwGkRXLlHUhABVDYSf9MoJkbDaFFBU+bicxSwI/LLIVboFSnGyrbEde80FQunBqUFQhzMdUF3QUHVQaMmAbSiNd4XQt7ZVVw09cYLIYzAQbYoEPY0EP9u1OClUa/5L0ZArFYmzeofVqHwDcuk6F1+ARUMFVs2IStxQZq2ASavYhDSIWVeRmk1Q131MxSSMqoM9mdaNm18L2VDS24FQg3o81+MtVdWFOL4CffxEijaNVWlZJieAV9PQbDxRNapaWSHIhn3Es9FNgy+csgrLcyk86XDExCKzxCdadt+ISv3YVd+AWv/YSfvIjqc5nqw49oyMxb4ERb+FYj+cC6RdjOxQ0aq92ByARMudEbxYT/T0CGi5gGIxojHC2KWPAAVuWFewWRwtVXdkhcPGFG/juQk9RTyV1aMKPOzCW8Pv1efMPdZL2oT6CZZxjdrXUFRnWIaEDHD5LC6OAcToTdtgVI3b0KMxNTur3fBMUUmGU/jHCGsNlNpxBc5iXcdjDcV8hXP+GEf6UlZ7w97AVAH6RcuhtWm7O5DMu3zotYpjJM0N1aapDWiwgDTFgZ/4AFaJhfYPjYkrXf+3UKmMPdMY1hgUAG3zVV2sQP5pUF5W1LHymGdkDcIeZXHxlarqgKdfMS7sm9gV0O6eRVvGDYzS1Q0WKEEeZarsVJvAkZFoaF+r0dGzaKD9u+uqjhMf6H/13IWr0l4N1gVQ/wAF4A4h55h1o43FrwhUZBYvzDU+9JSeSy4NtwzmwE1CqeRefahRCmGWxYh6gpmS8O40pJY+pkWtxlWUrO4bxdDx/24TmWEjvO13zVY0apiqowkDn0YybO1UIT5OckZMB4Nw4GP0R2rl9AhWfABkONmpOJ5BfeIUrWly+DL0xOY1d4Wd/l5DiWYzo+ESEW5VoA2kY5ldewu1lS2oXAQxCBzt2ItfK55Ldir3Mo3699BvzUliJt4RauX2AO5lcB1Lk910wW3Rv9BL5dDh9e5iUg3FrIV3aI5lBxYLnzEse9PchVUQo22ITmEqodC6eSYm3R5dH9XP8pPRYWnl92Ri3adecZO1hHyd1gdgVFFl0zJI851mcEvuM7luY9jk/GFQgv0b/wgegCdGVfMmRwjrAWOwdsKN9PwIbj9ZNL5AR1duGkC0iOtl24mrFizmSRpmeT1mcM4OdiUOkKOJYDI5Abu+YJfuLoMFYjnGG2SjWajpZfcIXGNOeAgYVOXM+oQ+qkPokNNtD9peSRLkHgvI2TjuOp9hF/iOY7PgaWnub7c6hV9upW9miFRuxCHt+xDucW24VtyOVneIaAOVKbemtviWtgDd+pzaQxNkORxhRjGI+TxgAP6OseqQDAjuarPpY5zOo/XuikZWy3IQtshOLq7DwYkjH/tNZlXXbkaKHHToTfZINrzgbM2+Vtu3m+MT7ml92FCI2OZU5t1XYIBGiABqgM1q7qqvYHbXngJJ5tINTmEylWetMynO7gWhavVcCGz90GatgGbaHHO1tnp0Pu5L7g7f1sp+LoVTjmT1Dk6V6OZcYABL+IBoABEYCB7WaMYojwaC6G1z4WTHiNLiHvmfaR2chtlpzrjp7JFluFbfjtT6Dv4b5HmzLqh9Pv/f5sxWa5QQxmZYDuEixw5ajuBMfuSoCBHq+EBweMd4hw765w2E6KA5vt4orxCmZyFq0o3LBi9nrv+MYGYAyVVKCGQQod4zY299iMF085J1e3GafkABdw/1cI2+U47R1vCASoBBqIcxoI8r+oACL3BQqPGnPLcFuNRtsuNRRVDrJear48PhkjcVeA7134Tkahxy3vcmD7ctkMcz/fSm0M5jM/5l0Q3uhg8+teiOxugFCn87z46wjHc/AOmD2npa4u68Ye83HdbVwiaxkr8RKHbxQ/Fvu+s8ZNtklaH0qfWlfGMACHbpFW8xy37jZnCARAgAt49mZnDH+482LAA7zB8Jg+6Np29WwMdFxxbIQ8vhSNlhJ3BVuHhPq+M9CBdD2T9HFPakDkQvIpdugOatHgawT/dIV49i+IgC94dmmndgjAGwcerphu9TMhs2+H8rY41hbbhlVAhf/4DhhHHJ3Mzm8t7dTk9naHBhJ3zvRjJo8oGHkSKPmFiACU9/cIuAFCuAGVT/lSrwB/qACaT/WoGeg/LlonZuXxieLb8GZCl/F5bzFzRwVXkHhVl0971Gw0DnYntvQyH2NFCHCqd2PUIPmSJ4GTT/l+Z3k2eHmUzwtNkHmyt3be+ZLZPltdTS48UfjnXO+FkGXDQ698IHFUiHh7D9r2tPio09K5d/q7gzBkHVAbRoZVmIYz53TqXoJ8NwGL4HeUf/YIWAx/8AU7rwBfsPmoWYZVHtElR0k/cfvGeNpZfmydc65VIPGIdwUcvxWc2qYdTDpPkWfAD1jBp8Wot+HUR/z/AG8B8sD3ZQd1Z4d2BAh4mrd8s+edEc35z/9z8hD98mjYv0dIh0cvcGB9RC/tdJfP2H84v393juZ4pib8+0UGw1eGM1+POc53fU+IUB91aad5zK+A5L/2rfhjtS80tmcUYwUIPv8GEixo8CDChAUF8eHDsCFEhQYZCqpYUSLGjBo3cuz4z9iqbatCuvJo8iTKgZxAXQLlEkDKmDJnbnwkyGbFRzR38uzpUyLEhoI4WnTo8CfSpDvdrEK2SplTHEpj8vLgAQNWjg1o0NjKdWpCPMUqkK2AByxaiZMm8WHLViPboGmVPgzKZ1Rao3WNEq3o8OLcwBqxgKM1EhwqWoLR/750Se3S4sgpM920OFQy5swZ7V7WKFSv5tA7jRmbpmyVK2WiE8q6ehUDx0owZs+uFNlfWbIzVitd27at57gNeae0K1fp57p+O+q1SFwwLVqnQ656TrNly5fWiT/C6Xw7eLCcOf4FHf48QSGkkSGbbiy81dewN1YSIQKGfRi3c1fYjV4mJnxc0tYkwQn3n2fGReTTXg9RJFBHD1KE4E/jgOTUKuCMQ2FHK10CACh8AMNhZN59RyKKzAXV2WYSQpjiavnggIMx7DmFzHnxYTWfRvjZ92NkePBXBYwmrUWeW8AVaZCCx8mk4IN8eaSXUEuiFEONtDgFjlNWKnQJmCyx5P/lVCYeRSaa/4y3UXkTpimYEC20QFqNTk2jyHmtWZXVRiKQ8OefIgSZmz/+vUnTb3G9aVSTw5n0GaMrOvpoXY+8eGhCQmywAS2krUKLO9u0gOlALrUE4oCTnOISq6uCKUiIbAU4q1EB8hEiKLDeWtEpd/klFIvWWeaghJZFqhyjyu1VHmflkYrSmp4V+2xHcyyw0QsuCMEBt3LSyR4H6OmJwVUc+flnFH8OWhYeelAb028NFbhoowpaCuGvDTaZL7R+PYRJiiO0UQBHC3TRwgZoGLOBMbSYY9ioz4KJ3SQvTTIxmBfDOuAlp0w8CiijnALyKIKUnKyAvobYZsnhGXv/U5sv/zUszVECSyyzK76rIkTBSlSUmzsrtC23MQghhAsFeGEJCyqwYIkXBbgwhxBYuNFtCzTioEy46MXnwRIemBsF2WSTsC5Z/rgrtJF2YbpsvT3H3ShDKSFbN4ptdNGFEAu0McILTDCRAxMsTDFCAQsI0UUM3KKxKWm0gGMMI+9ygl2Y2LE08a2dg9k5rrr6W/KAdl0iyOlAS2kdTjPX/HrNKMPdrIJsJ9gzef6eaftBHLTAgRsxYLFA0l68oEIccajwQiFtaCtEDFfLKecqWCCoJ9hib0RCGlGkkYYkZy8mZFkQrM07m8LNi+nckEra/u4nUTR//BTu3YULA0/B/wITBBBA+OHaoDjocYsDkDNGMtSRD6EBQBAA0BzmOIcrAb3qdKfLFawYEqJelU5usQPMdmAnwtcdK1LwWxD6EhKtFkkohQVxgfCEMIc5JK0QXmBBHLLABR0uzwuFcMHUjoYFq1mPQlXREUdIUIQ0FKGJUUAbBNrlwuA4iVTuO6Hc3ncp+THrRByawgIWUIACjGB/OfABAegwBCkw4QWIK4AAFcc4DjSua0JzySg+BKYHXowtHEsSx3Y1IAyabFcPSR3qBHEK+gmCFbdyWU6ANizXFatBRenZsjK5uikWZIUYoRLephiHp6kgBznMgg6Z0AduNCQSU8jBDnWoPBVY4v94WeBQVcaVRBMUgZdFeOL4yuIP83Hyk8LZohWxODdEJeshJBoCNAkgBSkQYAhopEMgOuCQINTgCATwgTX/RzgW7GEK+0NfS/iACUxYMGSsAkWvWNUxU5UHkQwZUMkCNAlLtvA8/pKZ6mjWnGbdzYR7KeZBjJO7NiH0eTOs4dJyyIUd0tKHUntoIVIkC+xpTyNR6KUJQlqEyMwANxAwy/kwIoOVyoBtBEKh0BwEpXr5DCX77GIoUzQFOJJxDyyQwjWHQAAm7GEEAmuDAPnWBYIhtKlOtZJC2cTIpmorhkhT2vG4oDzmJY6GTIXRRr/GkSiEtKwjXcwM0hbFlCqEpSz/FVq8JpXCXxnHmT6hErO8dNSBjYAFOfBfDsgpMG0xDmlPPSxiURRVjfyzfk0txAhs+AJSWqKyKkCTLHJpFY6kwQQYKKsJIqOGKuhBDz9QgwNUutI34MMGb33XMZGZWJ7kC1iOtRLhBDe4wpnTnLP9LXDPs9jNzOy2wU3TRvUkC44U4bNY8UdoF4OEJzwBCdY9wEDc6tY32AAfWvhDQ+BgBHy84Q3aXSma4irb40LLhJ9hL3zjK98nuU2qrpvvm5LrgdZwdkeeja5gfoCHKsygtKlVrQxs4Fr0vuulcsUvUWwbKQhTuMIWVlN9pVXcCy9Jv/zdSHN3hIE7rGuYxMzI/3nhekwOYwRuumMxjGOM2OF+Unc1lXF4Mpvc5W7EsxhYAlZIHEyTSlEj3W2tS1eMY4LMzrZLfjKUXZrhFjUnyuLaMY81YoJ3/BgrS0BbBU6MESBo4QAH0EKSqxhjlK0IhFZ+M5y9RGOgHCvO28FyljNiAteETciCIR9ZxCwROFiX0NjdWWyXbLOgWEondn40pCnkSTrrLNKrkUUsdsyRPXuAF2HjUWAAHeazZIS6pn6CitXMYih50dKufrVo5qwQuMFaM5nONC+cwRFyLaEqvAD1XPCAG3Zl5AAO2AKykS20Syh5zVpcb62jLe2p1PWKc8vptOeS6Y1mer945oWO2f/Bi1pYxdee3k9uojgDPMygCqT9wWlR64B50/vADZ4yjA2a7X3zOynKpBu0++2T5G57o+DWcWbBrfBy75cX5w4mfyAAgRlQvLSlhXe8HSBvNSwb3zB2kMBDLnJ4sZqSOfP4yH1y61jguuB43m+nW6NwWQA7LWn1RbqjyO4Ck9a08FZDvNXA8Z3F6y0pPzrSX/1vgt446TLhNqZdbnA875gX9bB6zdPCnzCbZeIUd7fFff4DPaAWrhAxutPTrnYoE7Q5Llr02nvCckxjmh2ysDve7653vDsc3B0dH84jru6vk7bnFv8B20qH9rgzvvEVtjZeF21cx5+kGrFwxt3ZEQv/y18e08eY+0aPcfdfayatwxbSSWcg8a8XuMClHbrtHkz52dO+9ra/Pe5zr/vd8773vv898IMv/OETv/jGPz7yk6/85TO/+c5/PvSjL/3pU7/61r8+9rOv/e1zv/ve/z74wy/+8ZO//OY/P/rTr/71s7/97n8//OMv//nTv/72vz/+86///fO///7/PwAGoAAOIAEWoAEeIAImoAIuIAM2oAM+IARGoAROIAVWoAVeIAZmoAZuIAd2oAd+IAiGoAiOIAmWoAmeIAqmoAquIAu2oAu+IAzGoAzOIA3WoA3eIA7moA7uIA/2oA/+IBAGoRAOIREWoREeIRImoRIuIRM2JaETPiEURqEUTiEVVqEVXiEWZqEWbiEXdqEXfiEYhqEYjuH3BQQAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhjwhiIh+C8MHHIyi2WOKIM9mhgQYf5MKMKqpAkUkmqjzSYy6s5OIWH5O0qOIoR6pI5Cgw0paJiYKUaKKUUFaZopVQNllSBkkkMeMHYNaYSy444shKjz2e2eMjp5T4iJBgKSnnnHQeeQmdWlYUJR+QSeknloAGeuWeJgIlZ5F0TqIokYwyOolLoKiIaJ2JVsoTAClSqimKToXATxIldJnH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p1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYoYmGP8CEIHyiaaKIgLJqIyYg0qVjiiTSmKKNbmKB4oo0p7jgJjHiBsFMmLAryyCNFJqnkkjQKAmRJUBS5IpM1NsljkWLtqGKPOl7J4ygpPlkRio9UBQIIZpghZE1EGskikklOqaSOTG7JB1A58jHJnnx2ggmfgAbKiUuccDJJoYfyeckklzTq6CWcQMqooz/u9AuKoNh5YqYt0smiU6wIEqqUcTZZZ4uddrliViruqKWdPNr/+KqVKALFxyUogmmjrnzwCqauowTra68p8hqrsanG2qWWKa24rKmqcklqrFrWyKWsXl7LY1Cu3jmVmuCuCRORR75J5bmmUrntTnzqGei78E7SSaUqRbqnoXwaqm+i+/abLzU5XSLIJMq+KmuTSrlZ5CjonttqqQ9POVWyBisLq8UY84Txxhx37PHHO57Ex4xVtmpyyR+nrLKOQHXr5FNonimBAAysEW5LocCJJJwN9zxnnCrm5K6e7sZrNKMs3bvnoov66zS/+i6a08DaGnwirkqOYtQjp4yMqs/qppvssile4tTK2FbM8Yld83EKTsR+Gfeuc+daLLG4pnxisHV3/3xiSadYi3bJaqONceE+SevtUjGjmaYEHQggQeNqphRKzuXuDDa0pIZ9sU2AFr2n6EfP20m9++Yr7+qms846voAOapPAgz9M1JGZLxm4wj/3/nOPVRqsFLYFwyrlyYVz/GJNhjfv/MclORvt89Qb7lOnIUfluBVpnrkSKjprrjnvReL+ySObZLLJ+kg6W3HwrTJ/9Px7zksvSoXCnijTjPbPP9P7WlT/ZBcjglHrZO4zWVCggKRTNFB3curcKULlQFY8YlSoSqDigFaroiTvcCgi2J/0NLBuealwggAT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LWv8rNeSp9Byq9EC6rDuxqhqLKL67NjSaLq27aG26styrdzOLc0+5v65IQDS7bay7ZeMbdGCrK9ubNnuRsa6LdOSrMmqa64phojpreM+7r3uWk0qn/RNLORmRbpirK/ma6pmbCyk/6rH1ih4iBmNdi7bniyipm5fpOvTepKIxe3lxq7svmpiOOtMQpS7zu5eaG7acqvamm7fdm4qmKpu6EIwHWrpFm5f9K1fKC5w6i70Rq/0Ti/1Vq/1Xi/2Zq/2bi/3dq/3fi/4hq/4ji/5lq/5ni/6pq/6ri/7tq/7vi/8xq/8zi/91q/93i/+5q/+7i//9q///i8AB7AADzABF7ABHzACJ7ACLzADN7ADPzAER7AETzAFV7AFXzAGZ7AGbzAHd7AHfzAIh7AIjzAJl7AJnzAKp7AKrzALt7ALvzAMx7AMzzAN17AN3zAO57AO7zAP97AP/zAQB7EQDzERF7ERHzESJ1qxEi8xEzexEz8xFEexFE8xFVexFV8xFmexFm8xF3exF38xGIexGI8xGZexGZ8xGqexGq8xG7exG78xHMexHM8xHdexHd8xHuexHu8xH/exH/8xIAeyIJNOQAAAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhgpQoCB98nIhiiigK8siINKnI4okyrsjHKW7NaOOOKE4Co1wgBPVIiyYWaWSKNLJo448lsYKkiUgq2SKPUK4oVo1T8qglj0xWZCJUZpgBwpg7PeLik0amWeSTbKp4IlCdTCLnnHLGaeckncQ5p50uHdMJJ3JywsmfcQo6yaCHAgroJYJyUkonPIHCxyRurkgpjTVeAopTp5zYKZSYolniiklqWWlWWJJqY6pbagmUjaPs/xgrrLSiGOusfMyKa6u8toqJlShVKuOopBIbZbGqllpqlMv2umNQo77ZlJggiCnmTZ+U+Mi2ZqoJqrdJCksqT3SWC2i55d4J6UqvDNrou/DGK6+g6eTEByiTtNrsipIqBW6aOrJqqo7jSiWuswi3iuNOCTfs8MO8niQlwgJDbLGpQFX6olLWgiBBDRKEOaYZMm3778neBrxqkjkdiu7L6F5yqJ4sJTrvzTj7iNOvkyarcov5lviLUY+cwke336bcrMBLq8qHUxdHzeVNuT58a9UrXi1r1bsmvO+qT5NkrNRk+1yxqz2pjNSY1ZqhgxUMPCCAFdXWTXJLmXSLNMoor/8MtpSC6EyTnjDviSedd+L5ikrtvtsuoe5CLrm7Ngu6bk2U9uj1lIJsOpST4IqKqZps/m062khFLW6VD3tOU9mww17S2bHXHnFPxNI4bbV0VxtTJv/uneYmxBdfvJmYRIsm4DViXvjzdJ7LLs7Uz5uoLjbxcYnmnIcLKou/BgUFm5+mXKyJ5UPZ6Y7KZ0nkqkbR/neN+ebLc9APq1iT7fw/XFL/AHSWIHwSrhQ5hW3XgomLFqg3E3XraBfZhJKwRL+ZoAtf6CKcufDEksbBqxMyUxSjqgevS2QvXyvaXpS2tz1J3auAQBHemr5XtIz8TF9hCwrBqAQsi0ysVzNp1Sj/uhZAh1XqWSQh2LDet6UjQoyCvBIYAQP2lLrB5BMm05vwQPKrUC1rgDFBVyx+Eq/FTQQWjnuFGYOIwh4xRG09+ZQM37cwkHyNfTlM2w+n5pGEyYSPOqHS/2DIMEDqRHklysoDUEABCpAki2Z6BPCAB0axLRFFXQxjuYBSxoo4TlD741mLGjK6PObkFKwoUSqTVkmT3PBYesySjEbhSu01UXAtMSROUjVIJflElziZoLSskoJGUiAAjgyJi7hlsgWqJHnuaxEmXpIuTsJrjRNxXCmwCRMbqZCUzNpJKFKJSiOZCQoukRSrPLWTAjYvJZnT0ihM6BJgZo99vdRdLHvI/zBCWiUSjQwAN7gRCZAwM5LacknyTgTN+7kEXUDxYKMs0q5SOC6Iq6LnQpjVSpuwwkysSKWZTvGIj2K0VfbaoylTgjX24VIl9tzfxGY3rI4GE4k8QeRKpcJICnAjAMj8iCQjyS1BhCImE+zZpFoC0Z94sF2wuAgndPEu13XTUvdqCEdzAtJUknNbdXzdwKiGRwNelYg7reWSchpTjtTUpmRda079WRVGAlWgyeTIUA+6MZlcqo0oYirigFKLa2JEUBadKFJVlDlwPukmufhoST9KUjMFEq1pzeUeaeLCruVShYFlK05FMtN9hpatysPKMQWKi6ByJG8IdWb2RDnKlf8Y7nI9kSgnaoERNTbKorZAKvesmpDRhVUmqthWSB+hChcdN6V4nAkU4QoTo2Vteyyx5TwzGyN8JvGdPPFueOlKFZ+ylht5zUgmgFdUF+WkVChcibpeupN2PTUjgpJoTASxvaBpVCGXKNJzXwIFKJS0aJJkBTp/4sRhKrRGo8pJrEB7WpTY8pvhBVsv+XlIG/W1nxNULWtbgQs06HWZWawIJbUFsMBdREvThKed4hRRTlRUjRkpBhrty4movkRz+SIuQtAkZJd8YFuZ+CgrUJkJoTgNSQqMLkUyp6KuGY2+EaFwirA8kgtX+L0a/u6UfqkqApJ3KkDFBS5a0Yr0XgT/tkSl7kI20eKTcVchmKCtWVFyOD79pLA85mZFfNu4UvjiJSpEYZENQuSZfAAKrFBFc1VhUrcqC34bWd2dR2IsfUZEEHr+IS8nMgkAyAqmLPzyLsPM6Zru08GBlCVWAqBmNrd5I3DulkTorCYZzrC2EcHfljfdkTrhCbc8qQWhd7uRbdrYvojuWZC1WqRFryS5uZC0pD9ckQeaU2k3suEOW7JEOSeki0ykWL8kwiqWpvq/Ema1SN76amLvt9zChPCRzNlebXH7IaEIuMBJEQxSGNzW1lDzQAV612OuFqjmbQU31sxmbmgExZGUiOj49i1Vv5GxS0UJoO4UUUK/grca/6kFLHgMi3A8tGcBJnaaZAKFUGib0guuSHM5yvFjmZuUo/DeSrpnb4K0T6U43PND7oUro1l4e7OKiC2z1kYKay3oWBdE1rN+IxYZLeiyLLpFvKhxVu7b52d3p6hHe0gIi3pNRFqTDIsqyYgEPBMCH3goDH5wNpOCzWrGxcTXHHhak1jif7e1xdXLzLxBZJkzCl20WDdmqUvbxScxNo2duvJn+1gjr3A2VOuJwgDDe8igiklyoSDpbB/VS+jj+OTd5CYvcc7jYgMcRHjmwoB1emx/03hLxY4R7eYKIlqC+tQvgas7Osy6lec0mh4PfIrJL4ptpcmQLsk+ncoeoduCyP9615v3vPO977Y+fODXf/j0+33xb14meyGyLWYhbUjb9x7lZRTsYc8p85pHWCv3CiuHchvBCbYQegT4eSohJygSYNZGEKBgJDDxAZlwczXnJaCzb3amMrRHfAMhLLCWe6WyeypEIygEaog0NvsCasg3dRxGWpegfMi3KxNWRGUVYLMTeY+3Q9inds6HfSCYS060Mu4kewuUUA4RCuOHd0xofnt3fq2QeO5XhbZGhVPoZhSxV9zyEAw0Q0qIEEfkJsnDZUNWP4EzhFOWJ2xYcmq0cvXCEWgEC3P4Coe2EjLzgJ1DbaMSgSWRB6HAetqWC3kwEeXja6PDN4ATfT2oKv//RlpU5BBUpn98EGNDtiXWZYYHQUQSk2q05BDeVDXKpyswGDtJ8giamGnT5xBq94Me6IMUg3s3QXuh8j7eE3mRt0y6yGIP0YRPeHd6RwpRKIVYmH4UR4ytkBGfkGs/VxBJyGLENzEs8xB5diJy0owbcWxt+GdqRIAn5xErt03hyBL9pT17yBAzZ2S5wAyqkAuB+AETkUVKkz5at0ofCHfLMhG7MoLKhCXINyS3Z3nt9hCTAH3H50oUtnS28oBZs5BDZDSSEmBXwyqYtSOgYxL65xAAWYvIgoP68ypFeD5m933YKBBNiHfjF4znd3DF6H4saXBRqBG5VncaeX8n8gkU/8EiQdNYClk/slhsbLh5PqFsb/iNHeELdEiA2yRoJSEzcgKBfFgifjgSH5ALUMAM2baO8SgI9Kg+r+eFueN7JRmC+qZWjLgQJUJlmEQRMbciRnN6CrEj65ZEMEiQKnSXzDd8UqNCRlNAStdlosKKSsSCK8g6ZyeEP8kw+Rc6DwR+zTRU39aLJ7l3wcAN1nCZpDBxA2WZDLeZQIVeC/eZCwd/jIdkj4gQvvZiKYJu/IgQPlk/JqGNeQIUxdCNsFALBsgRwuCNc3iHT5cvlxA+6EiBLVGVuWCVzJBzDwEFJCUIq2QmQTeWxdV1YcmVUndEGCkjQ8KKrNmaL5h9BEFhMv+DkBf2ENslV1CxVYJZJZFxNLoomU1ICrjDLcDzEODnnZbXRZRiiQxxPyeCbCAhmwCqEyqnbLfpmx2RlN7ICTD1lJUIl4xmIhNYnLmgAR9wobkgER/gIh/lnCdSaRcngikyYHE5I0H3P2wXlzH3kRixK33phQ/YQv8zgyykkCtialOhnqT0PZGBf7LVECeZCcHAE+t1UA6RNwykhqg3LEvnjyQhoLR5m7f5CsUAEkiZlAWYEu92jmgpodLJEUkgDhc6phoQEaoABc4ZSSIFEk+WmIyme63GpA1RjUrCn6qZoglxL/yipMj3bkuXam56FIkIlsT5GCxmWUeaN+Qnn2X/Qp/hR21I02QbwTPa6RCpIG2BihFQ+mcFipu5maBvuHLLoKXAmSJT+Q/VdqofoQGs+gEWmqEQoQqTdGCdopweYV3a+aWX1GX5CE65wxG/wCOq+g8MiV1J5KeguHx8mjaFOpypBxlFgqhAqqjrxag6wVf22UxfqlVwOqeAtQlPGpQDmhOe6qkI2hEQsHIKyoBPyl/meKpGMqwcUQKsWq8fkAQR8VHJBVan6REdJ3a/x6szAqMMta1vVFrceoPUQBIzWJ4OwUI0moqpY04a2SaREa1jKQiTmVO5dqRfaLDoKF4GgQk+aSPxNRLiOq44UQzlWgsVIBIqp64r9w4SE5GU/3KqTwIK8roRSaABPWuh+AoRrJAJJLWv/foRcRdhNsoi4BoSudikqwmyC2GQf0kQpmZqEVk1+cKw2lOjoEijNDoVaXK0RjdDF9usC6GokoR3PHFQJRlbieQR6MYiBDEJv/IrJfuaIScSKQsUvtCyLysSBRiqmQcK/YWfIdgpE7izGbEPeZAESZAHPssPEJELedNckSa1FcEsmQqEpLUmDrFQA+sRl4KeP3SX4Fl8yNoQYMsHACCxRxGYrHgkZ1sk2YpkbNuoRTW7RYKTpJs7VaK3wls/dvoRffsTFQC4I1EBu4mb2/SpITEJknKNOCuVE5oSdlACJQC5PQsReZAJBv+WXJ2yEkgTJQoRlpFoR6Drq9HCpm6yPQbZQqPwljxyol22ugfbumKLtudbvpq7F+nYEFyYCaggTti6o9FqR5XIkcLbM9ZIKbCLEcfrE39broErErZwDHSors1QEtILnJgAr50zwiqhvdprB0mQARBRYEkmvrYqMW3SUe7JfaHyubYblSfStP5KMF9HKzcoKws7Eg3rtdwKthFcFLSrkQHsGBh7u0hWwDpRpCmGwF8CEnSGJEGThnqLt/VTJyUxwT3BsrjpC75wwRhcoAPowdMLlR83wox7ESGQAfxgwiUAEUcGBRd4YC6xfb70D9sHkMeStP+7EOp0w21sIkcskMP/lkKMzEKnAArzey8AMKMNO8kPC7bjaTD8mxAyVLtVTEqNB8U5EQoH7KyfLLcLBSUNDMEPnAonAcY88bcsWwxlXBLSMKVEaQFPCgq/EpyWjJaLG7cosQ8ZUMwlsA+Ve3OPSm7e94pGCEH9GE44LMx9ZCyANYNaB32soClvnJMAALYE2bVEnJ4US8Wn3BhLjJaN95U4MZNkS5YONG9tUonSdreuzBJBmQrY8xNkXAu0XMslUaAnt3JJhC+Sggm/HJcjzKUn4QdKsA/7oAR2/AjZtnqw6hIFxMerUyU6HBJ7U7VLaiLFuxGzciIxB1iak0vffAmv+6c06rpTITzvLBBq/+LJiEsQfMXON0HKzFSS5tTRHaENKAKQaDgJ9wwT4rrPPlEBvvDPAE0SeHCbKreAXYYvmBCcEOqMJfIpKjEAPWAABhARVslcZyqpL9GX81xT5nsSs1eStgjUHRF0pxBkJzJP3Uy631xqRde6La3JhmzK58wY6awQOa27u2vOy2xH9oMTQRkLSt0TTO3UEHASuzmlB0paVu3LDTGBbpwSO/DZEqEBZZ1tjwCP95bWUjLT/jrYYqijXDQpd91lK22sDTEJmJzIQ8HaYqjbiZHEAnxQZo0TqOC2StwtdPYVja2yN8HUZEzGk30SuIml7FpsMtNCpwoK3ZJKKPHZ3C3Wyv+s2iXBx7ZItxi9yQchQaPzFa4bsS4Nzn4d2JxczoZq3gdR2IbtXsW9TMidJ46t3DbB3GRcAf6AEhWQgOpKgNFb3ZWY0MWFCan0C4PcENy9A6YQAgPQ3Q4BufWqAXUsXcsC3pb01106KiD+FOs9g0eMyTD93iUS3ITt20xM3wbBVy5+E+zVhbObRXCNFUGpC2P0E/7Q3BVQAXiQEsKAm7xpxm5l27Ydwg3BCliUXKpAEhPu1SjQAxO+AwyRAdsLuXZQpjUxjTEi4874JBLkFSdu2w8xg7PN4E7BYi2uxAkMrWRudMDdtkbKiryWcV3Bho794z4R5Ew95EWeEgbOm2z/2l+azRAQCAqPfBJZruUPgZXHWWAX3Ra8bRBGggkl3hQszeRZbRCYzNIxfX+qra3UjM51HoJ33k55zory2OlL0Ql/7uNAgQdlPORErhIVcAy2cODTnRH4MinBOdKa7sYRDhEYvpxWCb6X3hYzDNLFdSnwbRXr/bpunhCjnu1MAedjierJfheZXhA03rYYB94qeH9cQeu1fuu5PuTPnRIGuqAfYdvEjtBaFcyxbRKvunpTDhdpYuz1PTxcwdIozu0HMdtsLrYNZJ/yHeMiTtitHsWwpd8OP+5Qoc8+butAruvwzhIGOoClQLrbc7cIX7ecPb478QHsOIhxMba7B/Na/3Htai6JhkujJ58U3t6LzxjudoHxA0F3NKkToYBiqd6lNinwUaHP7d7xHj8DLFHZC/gKcZiNJb/oGyWVDI0TVylpeDwXQD8QKcJroCbtUmHwMpPzVovJai+oDe+xe2PTGSuPNW7jkPRpqZyESu8UtO7jjg0U/uDxEAD1LAHsoMQRWYv1cRnMJEoT7ej1dc8WMC7ApLP3nl4K7r3Zo17qCBX5BgFn1d7bq07TkOT5MSKPosy7GCsIvksV7L7xgC/4VdASngDsBL0RxN7kbY8kE9j4MiHaFS1pYK+CLrLjL+5tl1A0xu8Um3/JOB/qSeG2Os3Jj+nzdRH2qEr3PRFnif+d4w7kb9Z/E+z+57fu8RWgB33Cm45yrhaR+CSb7xIqTlCQbXj8wpheJMnDbi6S90gCEKz+DSRY0OBBhAkVLmTY8OAliBEdDgQV8RIAThM1buTYkeAjkIJAagz5SKQgjylVrmTZcqMgmDFJijT5KJNLnAxP1vQoCBNMkyf5iOST02jOWElj6ap21KlBPBWkQoCg5+lGWLBeweL06lXOSZf4XJqECYDDoTBBobyK80MuVXFVaWhb1+7EmDI7Pvrp0+ejtXw2Cb5bOOHFiGcnWkRs2PFBkDXZOix58vFlzCvzwpwp+WbmjkAjT375SHDfk3kxgbarNGlT1h1nSJWKp8r/RBm5ZRz1pbUrJ07hcIblM4mPWbRrBa2N7TAXlEyqcp1qXn1lWr+PPP7627evcpjUrB9F3HhixcSXxrfNFNmkxkyp36+nf3kzaZ07BX2uj9B9ZJWCCimvoUyaZJP+VnKtGlkSVGg2fyCoAA+rGtJNt6Oy4gqWUjJyybhJBLlEEMUY4gM8UBwkKJdcooNCFRVjHAgTk2j8SaWYNvELk5/WYuXEomTc6JJSIAJAvYkAODIxIVn675FQJopPQO2atBLHzTQCaqcrTWqPp5Q2CWpL1fwaCsErE3JNFtis1IPCKvTQQw0Lc7PBBgyNeqUWDoHzkCWxjBuxxIVOzCvGPEKR/yuuNPurSccbU8JmkhpP/OnSzfjYpVGEjlSSSI3Ku2g1Tjf6MqQoHYpvpypLdTWh+7SUr1UhxYwsPv7CJIpAHoey8Tg0S1WKwTabROIJZJFA4gCCLrzwDXyAgIOPJbQAwoY3nM1NJTVm8BYPCPy5jaVJyhWRxORiSlFFuBbN5VXrYNJRTEw+YcknSP2C6Sfsfvzl1SNL8TTUJY0kUklQjgQFmIsASJgThyNOGBhQKqamYlA2cRiKX0ChFbMnU23oP5i+NBmkKb38ZFbRhKqJj6DgNSzWiSQDKs3RQnJpKJh9Og41v0I0zt5GY5ElFmLTVENOPX5QwwGGdIMWnzyN8v/lFWG2KgWWlgTF5BJMJnHoXL0cbFcV6N6Vubnl5vXJpUq9u4+V5cIWr1ElizxSI4gn8RSxvx2umDHGKvoak+OGGpEsQU4BxXH8HHsSFSnda3nM1O67j2ehBEmL88jXNormsTPPVchPJAOJ1JZsLFPfvMo67kqjjZaFlzSjknDCCqN29qne/OTqq5W8BptQhcjmTMVFoXhEbdFB28WkeedraRMduQMvphAxWassUOa5EgCBL/qzoU/TIzwijNt3vyJQRon/8UseXwvx5UK/yyb3gqmc5MqoLnM201wBPbe86B0lU7LyTKNoYjmjfGIwlOIXajDVPdbF6Giy4CDurhT/lan4o3e+29ZVuNKhV3CiFNEoHijKdTyHgAJoMVpUXKCXQJCJCXuPEJNRNvEjPrBiE8q5n18w9rW7xYh8AiuSRqDRMIMRDn71o+IUrbi4c9VvLVvMX2YycapH+A8vKXtSADNnQDRyLkg4zAnpGrIlL3EKZiUZyVE20b19xQQ1QhtMKjRoO1540EogDBcExjUergAHFqkoxXXIEhbkNGR7+htPdOLyCBixETSCwN68eniUlenLez4pokl+wQc+JDFBSxQY8hhSEU8F7iJXpGUVbQk/LnKROphRxclIAZ8yPkk/BERjAdOiyTbGZCgzYRWn2vNAAD0lFT/REUyOc8Cy/3SvLA7iYDcF2SQQViBcI1yIEQ5wACDUJR2v6BBwXrEMlQgNkq5EiAsPxTy5YBKZmdkGJjpJozo6hRreA4y6cqmWSfwrQUwkH5ImUgtPcaJ9SlrS4Qo3uPdhTBDcodRBM8M//v0SPtAMJqvoSEdlHhB01kTgPrHEUo0UiEucslUA7QI0nyEubEPJZn862MHc0WZCmnDIAY71BCTYxU8qhJhKivPCSL4yRGqhoVwEAQWXYuYT1IRUQK8iNy4uBxQnqh8f/EgfJpYCGI3kyFrJx1SFAYBiFGsfwwBwIvc5rmKnkB8UepS/dV3GJu1pj0g1Eoov8g+MlrNcXsY0oJeNif9nH8sqRwhEyYOIJpqcEmA1V3EXmOGvLDnNZnHo002gflCoFHLIFlzr2qTWJYUp5EQngJESeZIlgwqxZ9kSlAlWqCK4lK2sXZ7BVR7yhXI3dSHdAjNKLWpxPWktBVv7I9YuYuaLhCVuvFTa0uK+JKUMDMnp0kQTPcasMHwJW1nCxqNe8Wg8t5OFBzzwTSHhwRe0EaFDHPBfANulFLT1EzQ88tSwCOK2ksQOZqvzCOfFxcEpOUVKP8fSzUimwsU8oDJ5hkqvPiYTnaRecmfWIxmuRSwurMiEDVNdGFu3PoAFr2G2m1gHqbHG4S2dMjtTk+5aSTJui2NhdnEc2cV3R7v/zcztAnnfNPlDqBDAg0Oe9rT/3oWpS/VIaclCz4P0dsfrUcUjWGHmIKdkFBz+7krZzOExZVKw2ONkJ3W03Lvs4n5jrd8kWDy46sS4ug4iInO0e+NMtCJBFk4zj2FFoM48UGYDmhcfpkS0wsBXEEn+Wdia42ReQPlKUl6tldVw6lPfpR1+uoSfOlKu4gwqhnp0MWvOjMkQt+TNHNZxg1NqQPVq1ZM8xEQmMMEKVziGxSJisZ8nwbDmCFrG9AGsoS+D6EQvmkCNdnRmx1sz9ObamX7pKl9uZpgJ6hS+/pzEWZscyFDjV0akps0MHPIDfOObTlp+RauFx5GnFocPYDYI/3gi5aAzJ5zbG8HcrtPYYYc7FjTb4OEOsSfBijuGGj4R3BQvQY1pP0bahHautUW8XcRaI0G+rnW3B3LZmJo0epzkpLkfOOanHLk46/aJfDMD7/t6IMpCrYC9G8I0Of3gxUv1G8BBVByCF2SseYyRws9sFJZHXOuO1RxfYmOTTUhQhxfHuVOAwaPoDk4QIX9xKWzh9qjH5hKAqdjCnfJFxGYiFCq/7rZdLiuY4mWYCaRencndwExjIhU+ce/Of/7kJQj9g/utt0PipIfLGyYcS+XEJNiukICXi8n1bHCMTgGSM+8SJ5uDOK+3fp+GNycUdtbhIzB+ccNUzCzvG/1dSv9xC7f/3kFz12vLjYJY5IcCF9qG+N8F32HAzzSBNKd5V/X1Sbu4V9M8EttlnsyLyA+91A2ZQRXKPwNy1qWdwAFGJzaCYKiPrfQqEsmtVe8S2O+HpDF5ktuoGZnaqykdSh0xIRORsI5MQIWwC0Dg2oQyq5fCuIQhwhg/cxjMcLtbsIVbMDBt06jMQD69CwVuYL57cr784JzoAxMcCgYa0aG8yBe/wLSrcIb3cq92c7/HADoMWIKOoIEGAA1/KAapsIcJcQhvOUKjMwxOSAVWc6iGIA7j+JoYQiXf6o8zE4TUG53NuD/DaDjjswsokCCxW8Dkqj0ZfApq+IWP87OKgDb/kctACygFC3AQwCi+DwyF5BvB/gAdmDHBN/quFDzAfeqOoLARm+MkmNmUq8Cg91K8HAy6HdyIBhABSqyEzKgAISwGIqyyhoCAGfDEGeBEw+g34JgE4Ig7ghC4KDyf5JmqZVIRkDi9R+DCe9kMOXMM2KuPTJCgXbQ9HhpDVrCRTcCGtnAfP6OG7jMMW1hGZnQQQaAGO8QMPJxGESRBz7G7v9OxQMRGV6GRM8owTPG5oxA90VM8eXCMoPOAJcCAjYABSqTEH7yMIMTECvAFCHAIqsjHe3wMU2w1f1yMp/Mz+fMx+ks968E/N+pC/is71hgxMdyEXwjAMoRI7HmKZzMc/wDABGBgIWW0gGW0AK7ZiGywBRW6BbfqkOrCCPKRGPfRohTznlHKGJjomIr5QpygxlAgBT2cCGvIO+5aLAECsgzTj4VMSD88CG2cCBCTvqxSQJFwnc2AFH+Sl6NYt2zCwcKoL/DDAHaciAaAAbAES0u8DHrMRFFcCAlJy318DH8sRVY8DFUUyDdSoxiRD5tciPswL9AiE268DFcQE7ETu4qDSJEIO3/6hXPMCYzqs8C6C1uwAI8EyY14uwxcyeoCBsycK5ZEGE/BmI7zzIQBBe2pGIGQxpzMSZ3UCFLwSWwDqWACsgGBPSrMsKMsFEAUvMfqNpAYjL6oJprzJ02Dif9eGA4d6QTu6z2nSEeu1IgGqAQaeE7nxIwgLIZieAdf8AeHILoKwAxgcEs/e8uHUMWx6DGeqUu6sYxkkjj7MMr++AYd+QSM+wUCHLt/UjxidInQ9DOIWLC7gMzItAWN8IS3E7SVBAa5kqtSCM2O+8yMalBW4I7MWE0JJQUKgA88xDbuek3GYqxv5L81qk2ESMoe4z/nc8p9mZeppDP4Crbi0T5MwEq7CLp17EqHaAAbRQAbjcfHmE6zzE6iy4ywIIvOA0+DCMiBQ4sO+9DrOk+60UJIEyzH6svYQIVnCLv5pL1fwIRf+IVnEITj+pD6cRhquASOtAv/JAbI1AiP1ED/AlWrAzVQA12YimHQBn0fVtiiCCUFPdXTCnWI1cw71sxQDVWdyujQ1ABR0LvN0slNP0ydFK04Hlmy3zzDV7NBT7sLoFtHjUAATr2AC+BU6fSFYvCFdygG7GwIodqvzACOVutHIiWIQHkqVPyHNqvLhaTFlyJIEcMcKa0OV3jIKqU9YcUXlvgaz3TCtvjPYQDQibiG3xvQAcXMhZmr7oRTiZKYjvOe9oHJFAMMjsmMVthTPp2IVrhQlBsswtoulCkpA2zXzEHUhBDRP1RPEN2qdeO5SK0g5GwIxTtOTIiFu7AvDPCA5ZwIT/2CCPiCT8UMTKRO6zxVhtgvid3OzHAh/1M0xbiL1XKZVT60Vf7r1UejV1x8LJAdD1cQBAmKSOxRWYj0GDWsyJSgK/jhBP5MVjS9WY3QwLdbRrW6BZ+NMfKJUzpNsW2tGJrEGMCAJ3ANV1II1z5tiHIFwVBQLKoVptiErPxrJngNUUWdVxLd2n/YhHu9lHAMm01QxI5oRO67iyIogih42yhwiAiIgBug2zOo27qdW8fAg27ARFGF2IXwBcEdXNYQ0laNuoA0joEsz4LMktXbjMbswjGhEdGRIFXIGOzxpyES24hMqPvsiIykmIi5i2sgBmIYhmEghpyVw+BjVpfChVaI3VawhqdliKjVOygBW9b4nFccm9jT3f+BOFkekcolM1uPkIV7nQTJawsSaF4SoMSFmFvpTVg2GAQ2QNjp1Vu7wIMlqIDulQqHGFzCBQ2MaFUhBT0QARG0oEvm4br0tDA3M6bPYdQRrTkc2gaIfNDNnUrRzNJg4YhfcBiaBYBasAvUPWDVnYhljUMNLNN94gbZhd1FIFdzxUPgzQx5zQ/HveCB2AWypaCeE9t9BT2xzaYRbonI48qCdYgLEIWEjQBRuIAIkMdaoM5a6NvwFdxaENzYeDay+GGFkB1Y41hUYlxY3OCW8DUlZr1eu6xaO6OSjZFVyISMkaEH9R6I9B601YizM1AEtQseOOAwVlNbgAaencOs4gb/XIBdCEYBcv1TPDQsDjaMDMZL9rzgXlid4vWJ4dwIZ9C+crGLQFpHTZ2ITo1hUKXhYqgFRqZYhhjVHR7V2IiGFwqLsEiIchEUVFpfKlTSPUTiWsyUIs7aXZOShYxiIaGGzM3SLNVSUKAGVXKIebgIawXjMOaBMW7Wx2RGB0amAFBjXIDgIJgIXMBJkZnjwqjj5LnjOU6v4R1ejiiXVBA9QbavGWXOBsBRHNVRx6iAdmDkWjgGX3CIHWbkRW6OznuksFBagxiRp/NkhPCcTpYRzzlPeE4JLyxi7CAgfbam2RRZhXgmpnSpKsYeo5WhmnWIg6mfz8sJXH5oHlBTyPzI/2uorAD45V/GhUiYCG44zThGZsdQ5pAtQZA2iHx95hM2iGk6zmpWx0j0yueMaRrAjEVm5G925IUoZ0Ye5+b4YUtOxoLQ2E1uiH6+5/XYMKAozZ0xiX92YnlusKZm5oLAWlTGmfZ5Ro8Jg40ABmqgWWBg56vggRUQ67GW6Im2hYrOqovmBgr45WF2CFyA45ws6WTuWg0mabomCJReN47ohbKA0asINYHlwYmgAbGsBBgYy8cohm8GZ8JmCJ1m5OoIB0t+JGT9B3U2DqMuCHk+IHreQqOoMOyIX6aGONDxQlURyqpOk4vRVg/cCGiQKw6sC7JeAdvWiGvwT8jsZU2igP+2/u2Ndghu0FNqzGu7EOl4lmqQVlvFE1sHEWxC1ohKoER3FAEYoGlwPoZawGmFAGdzto6fhgi5hFWBC5TFnR0aUu5Nct8/zJm/yxiYpAYA+F/6cALbvm+NSN3dtgDeZiPf/m8KCO6GGG6cNO66+LDe/cN9NnCEGFv6Xg/BJtjHbojqfkcRwIx3yO4aJmfvLmDwrohMVlKh3my9tmtrvMu70BzfvTnny1KL0dLErI8VcAIan3GN4AHdtoC0dqn/RgHffoCJCADinkYGvwoEbzlfW+3anAR7FVsUb2nwm3CGEAHnbd4Lv4wMZ2TtLgYO3xNY8PDq6LzwBmqhBupE5Sn/XJ0xzLnF8TANzEltFnc+VfCe1r5s66BxPHeCG4fM3IaGbKgsFAj0QKeADgjyIZ/rIneKI4+5F0x0leYk+CJx0HgydZTyhaDyKKhymv7mV9hyh/DyWtiT9fDpFwpqWNNshwgRFJSR2GTIj1Lvf/iSgXa0NByoijHz8XACBVAAXdfziQjj3I4GC/jzrHoAFAiCQA+CQncIIYdjOXb0nXlqJG+wB0/0A1k3d4NwGV3ehhABt4VbEsDuY+j0V+DyhvDyrDiG9RDzEHeoEUdSnoncHHtS+mA5hyjA8vJD116Gi+mPK9j1Xb+CGx+G3M5tYnepDgiCSFB4IDd0Z4d2rHtq/0lPRYhT8trshbHtj3gDP25nCBJIg7aNArfFjHoI9XHf8IYIda3QCvp4JARbMLEQT3j3bCGBaoVaDxVvCFQ4KT9chgnEmARpgn9vggkIUDQN9mEorg54AKZPAY1o9tN8doi/DmmPuQWf+hnhOY13MlFzCBJoW7CPWywnd09vCK3YCq+oj8weq4EQz0smap4ZkSbh1Se/itZzsZwRN0dzZaBPkAkAA44A9t1O+uKqgRoQgI1o9gnF+mjvbEbHDhwyBlSghczouUjVeKCTN4UQeRMwgSLwfJJnZHI3d4bwirMPyXX/6SDFbM0WOE4ei7p3DFWA9cfIeYYQ6M1iDSHgAP8OyAy+r5gEEnwdJ3zgDQCm3VPGT2ITP3NrsvjMQIZPcAXbu7hNQAVjuIx7FYQttg5400qNiILOD/8iCH2veIVwIP2FMH3T74+xyuQXErixGGoT6WcrcWJqo82RATLsc4wFAIgYaNBsKGgwxr+EChcybOjwIUNQm6iBqlgOIsaMGjdyZLhi2DULw6Lx6GjyJMqUKSmQakXqJSmVMmfSrGkTIx9BOXV2FKTTp8+bQjWi+pTpk9FNSJcyHbpxE6aomCZtclozFi9esnh56CjJBNiwVjUee1X2Va1uG2G9amt2bM1Jky7JncSHj927kwRtvOuXD1yrQHfyDYzyEVCfj57/CkL86LFhhTE4ECxIkMOGFmhabFC3IXJDaphA/apIDTTqfx+vDbNAMjVshzpm6zBJwSWpUC1j8+49M+dOwBx9Ei7sm2PRokqPHkValOlSVKtiS5W6+PhDrFu3dixiAoOJO+B7n20b7tVGt6/YYsdYty5ev3Yv9f1rvD3H4EDxLyyOeGMojT0GmVX5EGRMQZxRxsGCaFDGWWUcxPbLaKWBchp/NkEAUmvXlJRhYLOtQVtHLOH2EogpHgfcTz39tJ+KC32CyiPQ2RidjajEBlV1VakoC5Ba8dIdBuKFZwJ56rWVnpIxKjQJKHbl9Zdd9d3Fk5MP6ZdTiop5uRGNAhIo/9QGtJhpDIIGObjmZA0+iEZsFJFmmpMn2HmCSTyARMxIw2QpFG0SMJDIbCBsFAkFFASgaAB/OgoXi1zml1hQWSp1o3OZPpfpJ658Qp1Uk2ByXYpAmjokR99hgIE/RfbWjZLoafQKJ25x8icweElJJV5WAvdoQz8BJxx/lP6n0WNikmrTBqugadAGDDrIwWQxWEuttBxwNmFFFmKY4p13drQCD9kMQ4wFHwKr0Yhm0CZiGRII8AAfNTAgAaEj6gDCvrUtVMMDHTzwQBAPrHtwTcFJ2hel96m4aXSoSPzcxKi4gsomrng6ozGwVSdVjKYG2ZGqS2CwBJK8ledWerW67P8oXXrxSixOf9G8rn5YFtvwRskOuGxNZz5bEIMMWhtDF0l3cbS0aAgB2y/LlEYRMCremUAC4W50hQJOeL2CAgirZMaI8eqg70YoBBAAN7jgwo3YcaMUqcMYNVx3hsjUyCl0E6/ibEKrdDq4Kx5/XLiKsciiOHepLvH44xj0FqusGbnc1q0w7xpfXr7qjPAoxBGXYcNAP5SJY49sYvpMtCQzdNHUWpv0Am0UkFDS1k4Lm2gU/UJNONiFeycVVIyhAABiJEDF8HY6NAEYYDQxPRhyo9RvoSW2cmJM1nufEYufZ3T3n5skF0pyRa1Cy0M4dGpxUbAJUt3NGSrOuCwkP+7/QeRJNqkRJy6XuT9dIkq8qpJGpnQXuYVPJ6zjDWIS80CGpG5AQylTmjBDmaQVYAoOGUHu2gQbUGCCIqKJEfGY57yNOGEF3uBBuVbwPZPMxgyG0t6JWjHDHTbEPvWDCPmyFAwcdcRinvqbjlAzP6n8ED/3A1IsSFaPJfCifyrDHK0qhxGXvexRm8sLAsFnM+vxIYI/mWBq/INGhXziMatrzAXT5KA2cGQBuTNaakhIGopkaXgd8cQwsiGS1/AQLgGACUwKqUid+AVvDwliliaWDJOs4mIW20USIzONqYTKSU+MRTU6cgf+VZEXkrtiFpcEQFoFcICO2gsY7wIKXy1Q/24RHJYjYeOfXC4kTKsb000wg4YumKQAXRBCF6SVx01MjZftWWFHYMgaC7BGkWM5JCK7Z80ZMvJKLqLUNhWyCumQUxmgecTHfJS4xS0ulBwZZVaycsrYnOVyG2llF714Cc75hZZNBJboRIed0q0xIcn6ZUFRwwQ7Lq1aoBnNJvY4S2vqaZrRyEY4h4JNRGb0e91cmEYguU1auGKcJm1BZHgkFW14cnGxeGlHMOCBeJpycrG6pwAPNiUwbkSB/wQo3X4aGC85UBCf0gjqRrUJOPJmCE51qkIKYMdrceBpholot34hj21+pDXU9FNHbbJR3WgzrGKzmTMXQqkyhvVvJv8dp2E+QRUmZumlds0fR2RK067whnI4TeXBgDEKXvkqjNYTlrBi05gGMhWpqntsQp3y1KcmhAUMLRqcAvMMapSmNK4sZFct8FWz1gSbZC0raXHGSPHZjWcdNYZbYwuXXagUE4JQZ+Je+gqY5rUbNEUVPWsFWADmVKf7lJk/d1hGYe1EiWYEJ0eWurqlRvYmT/UBHQgw2X9MoQBtWMACkGnVsXT2FxT6RTj1JFpqEiO1M6GAbkIhX9S611E+7MhzK9XR9cX2b2PZBB9q+6dO2HW3HVnCMeIpC7Wo7HKqtFwAMXfWMWrEZkIFFiiuhFbD3C0xJqEFOf82SatMdrI+IAD/HQLRAT6EogZHoIMPhnBiKeSACSxgwQv2kAOrVBIc29gGNhC3zWGAZL3XqK9KAhBf+YYCyev66IUVUhz9ZpQDyoBtf4eySdvyCMADtitvN4JgWVRDSOQRrnDvycoAxo0u80nuDl/USG865UWiI8xJQvHYXzbVqQTQLlQTsofvIrNaHLidUCSCifNSA7eKVK9oowFWJ5uEGy9ZMqUfteFJQTesaEAGLfiLjL8hwyap2ARUlooJqDiqE6kA84GrQeaR9RWLD95iK19BnzaPoiMWVqSGr5TYmmBiyoOJ4GF81ljYlHgIDGkDtjCzAWOY4zM1ocYzekGa0USpozyg5non/53pjVg6N0we958+mlaFiLSjGOQvEgGnkl18bH5edtSrCRxmjXigGqAkM3Bhg8V84jrCk0jtrxcZVAqfhLnCXqtKfpYs32y3IcnUVkGMEWrPyKQOmJDatn8BjE2sw9vgFq0tUg6MUgDjFitfOSgAAABQAIMTy6gIMAqocxIKoiKgYMXPe16R245q1arLhKOUbO5MhILpTs8E6qIu8QERtXTGXusZ0e2QTW+k3R39tJn6W0l5b6SNUFHdqqMyPyFnKRX63ndGlgDKuQc8NZiLsBYhgk82kzbhwF6tDzUsrOtkWM7DKg5hclJdhqiignxge4qSOe1poynUf1NHR5TxjP9fTATV50V11TraIXTZAhqmt8UtSqH61QOj9QBwfcx9LvvZ2/bn5i0NK36R+92DAulZUnrTmQz14T9C6lOfurLye7fEK0brDMFllBMSUCqblQMaH3VsP/G3Tl2s+/CjLapTneqooDoqvQCWqwlM4I54AMyxOMaZX9EJTswfp/hEOMMVeQqHB544wp6znSGWAMoE6iiGBf0JFmScxoVdbMGPW22DK2zDczATM3GeBUrFL2CDWemDLaCcBUDDLaBeKbgcy7Hc680cCs6eCq4g0P0cKDzCC7LCJsggK6hClnBDKzBZ0w0fDxafDx5fYwShEHZYw+TMurnXfQ2Ha7mXG5j/Caj1l/ZJzMYgBap9QhWGX/mplKMNmNvFwvpxBC/owkuJIfz1lcvMXyfYXyvh3190FJQ10vQJnp39n9eZhLLcluo8ihB0RuXBm3R03yf82DMMohX+AhV6HgWaFzVMQ2qtVweiXuqR4MuZIDCk4MytICbKHtBt4iPQoCDYYJboIA8Sn9ShDhA6BhGm4pRFHxvSWdctYX2hCbz9jcZozOBABxbmIjrdFsKkXyf8Ykfwwm6J4fvF3/xxgi5sxDGuYd/lXzgFmw8hVlAlxk48wq/MBDolSxD6HrC0AC2AWtiRkxQ+BzZ8wjNYITrmIjN9wkSl1jCknAWknC2wXuvVoz2e/yAoFJDsQQmUcBvQWYgmVsQmPsMjPMOf5ODTJSTU/YwpKhsqAoXydRgdUp/WcV1IwWJ9xYDG9Vct3uJSgJ86ht8uiM0vlmQqsN9uxYIYulNsZNExpiEALePBNWMb0uSWSKMABiBrpYTiGeCyrUuZbINbTczFLMU5PoNSXGEFntdWIVk2pFw0AIPpQUMpzKPqAQDrxR7OxZ4++twlzh4rCEJYskInPsIvIEYmZQlC9mApEt/xRdBDpmIRDobzPV83HeE/1KF7YcETxlZH7sIuIAVI5uJRxU1Jph9KquQY9kYs7N1nPcTezaRZ+R3+ORA0AiDE2cQnVJ1jeI8xgMNQSv8gBJ7jNpjjJxiiFSJlIdYla7bm9xweXuolkllfJdWixSCFp3gK+NEWDnyPSXoh+ymmLnxhbDQmPuUdZLaSXLRiLWXanekkXrqINjYGqvEQiI2TLT5HYJ4mBVphHbgmeIbnwUDfN3kYeLYAbIXa4KyCOSnSYbpdRyzOcHphMvLGSzIjhHHCJOgnc7KieJ4EdQnhLnKjIjECLaKCBGpMyf0ngzaokyThK3aag4aTSbpafCLjfNZnbOwnGtIfTnXCfkpmWFHmhM6EBB3b4pWoiq4oi0rZR5UnjLQoD01C+sEnR3hAKuxWJ4hhb7wkGvYU/QWQiHYUicpoz0yZGW2hkS7/KZNOKGzCKEU2KcLQqNvZ6EbIQo4SGI/aZwD9oocmUJfyp002p5Q+BFyakRmVqZquKXg+qRJKKA8RARGUKJUiJkf4GyfQZxRxaUmKaUZwKI0OaUYV6Zp2GGIsVXSyqaIuKrAJHpQmqqPIqZxO6C9WKUxuRDWkAv0pZo/Sn5deqnvoJ4gK6jM6o5rC5Vz6J6OuKquSkZz5GkZ+j6RKqoNWqp1iqqYeZo92KI0qY6D66YiaqpQaKnGkaKseK7LaF2LhFzVCaorMKhFkASB0ABdA65yCp61aKEfEQq7eKmzwKt/9qX6GaH8u6nKtlTUmq7quq/eQJ0cghn7s0KxmARPs/0EWzOp/up2r9eq26mtJdmqQ8uufjupyjqmqOiiiJl66sivDNiywYKZOwmH44FkhWauDToK/uh2NHqardav6vaeGfiv9hSigAqp+jqubyQWIlquiVp2zOizMxqxhoNXhWZjEvqoi4evFBmqNgijH+uzG+usvhmxqoKHK0qiQnux+0sW4vgepbhOhSqk1RqnMVq3V6pLNSuRgSOPV+gbPYsIvYmx1pAImpILZmu3GHiZygoYuvEfTliTPjirB0uiuTaawdi3e5q3eQoTN9i0cyubeOkUngC3Pfu2+hq0vph8nvJrXykXKykXTOu24jupjlmpNBi7mZq7eZi3d+F9QPf+t5gpFXUwujYIt2B4m2Gqq0B4HwYoq4c7t0b5H3dptP4Wu7d4uzN5lNCrMGYEU7lrFxqqs3EIu3I5sru7pcbwC0vosyo7u0srFVDgZH5zC71av9V4v9mav9m4v93av934v+Iav+I4v+Zav+Z4v+qav+q4v+7av+74v/Mav/M4v/dav/d4v/uav/u4v//av//4vAAewAA8wARewAR8wAiewAi8wAzewAz8wBEewBE8wBVewBV8wBmewBm8wB3ewB38wCIewCI8wCZewCZ8wCqewCq8wC7ewC78wDMewDM8wDdewDd8wDuewDu8wD/ewD/8wEAexEA8xERexER8xEidksRIvMRM3sRM/MRRHsRRPMRVXsRVfMRZnsRZvMRd3sRd/MRiHsRiPMRmXsRmfMRqnsRqvMRu3sRu/MRzHsRzPMR3XsR3fMR7nsR7vMR/3sR//MSAHsiAPMiEXsiEfMiIn8qoGBAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYoYmGClMgHH5MIcqKKJU7ChyAj0sTiKS+uqOKJOPLhFo435uijjjHO9siLgjxiYolIskjkij8GWZKSSvpo4o9UAglWlVhmaaWTEhG5FAggmBEmUEMOiaSRSaaZZI059lgjUJx0Mkkncs45Z5112qknJy7VwskrnAQqaKClcFJooYMCauifr/C0jCCTjJKji1QKsgkfp4Di1ChQsjmlm0yCymONKp6SFZZRavljj5r+hKOkqqL/yGSstNaKI40pHcljqqC6iWSbtkpZa1BHwohUmMiKqVAkAbQSgEuZlIimmsVS++uNnfrIk56TdDsJJ95+a6ec5IrbCUuKMvrnuoO26y6hl/iS0yWjuGivrJRiCYqxSPHaaarBVskvVAEXrO1OBiesMJYnsbnwqg/HOjBP2PLxSFHJmsGAABKAOaZBNUQSSRAkrxStimaymCaR1l5Lqqc9qphTneByG663l0xySc2BdssSu+8GCujQ6qY7dKE5dbtqisBW/CImRmG65KcvA5ywy5c4FXHAPeLEB6yShv312GLDunXEkj4pasQqv3y2wz5VPbFPyCJbhgAPMCCmGWKC/0lQDR08IPgDKaB05LQqV9uyy21XmuNNeN58c7mUk9tJoynV0kmi6xItdOdAF10KLDcJckmwvBLVdrYAx1w1100m9fDaAbdK09u4B/tk7ryr6hPVcwvVtxVhmpEQCtwEwA03rVBgEuKLrykIJo9gssn12GNS7a5um8h0Td7mmWf44vL8bZznqgSLooqW8sr68HMCi/z0z2//56+4X4xNKOYr6+n3et2JUhSUX/zKUyzDVpSQNAoavWpKoxJYBFcUtbcF0GA16Z0GGUaSDWard8ErHZRCCJS+9U0hFFgeLlrRCm48yUiIm1bKLmaRS2HCRliCmkwkh4nxdQtcgzIXnf9YUotXEG1o6zNi0eQHv/x1TomAsonSKHW6/kHqdKZbEShGRaYEruyAQ8qIsLJUoqE4LIJuwojuZIIls/3IjRtEVexGAjFgFYx2tFvY70hVxqScUCEBwIUgWehCkWyiSIiUFsosBpIb4nBULtrhzTDXkyJ+jnQTsQWjYOG+WoBPVgNkiJQm4ZNHSEpxOCShGGOVNlflEUcgoRUbD4YwKZWESjzBZU+AhxUK4IIbK3SWSB6BJhjCsI8k0R6VXKTKk4RLTkCx5NA8SZH3rc99r/AETXSWr6wxZItK6gkrrPWiIY0iJQKcVTNnOcYTmSRWMJmjTkR1S1rW8nE9QeA6meL/y0G2MCSIJCYiLbYlkygTlAO01EsmF03QUXIi73vf6B4KE6WBsiF8LKhNBMEpQZxCTS96yRkjuJNe4RMlWrIdS+SZk1XV86T3hGU+FbjPpQSSea34JUgyQcxiIskl+YIUKHXIEslFE5vws0gtbBFRWMCCmjHBl6wa0ql5pumjozASK2ZCxpY6bEouqWKVXMJSr53xpTzKpz2tmkCsBDKY//TIMYsk0E9EFUf+S0VLyJc+nxTRiEm1yCuKyEkjcvVekRTly3JSoo96saa54mAG23lXUG2xJWUtXWY94tJcrpWxfIRsUoAJ10JypKcBNZKMTuRIma6Er9E0YkShWpH1/9XCqe9jY85kpdKEVNUmpoSeiebpuMnSk6sO/OxJ4LjLzXbkrGqFKXHThBV/ErIjdFWTZp07km6VK7aAHSxGanFba77iGlG11+mIqpDf0iQTp3jER5N0zugCi6vCEm3DfJRYlXAXv8rlbBrt685dVqu6cCXFszbyiWNOC7Sue23kYgu/p2bEFuRtakx0JlWqLpYmUPjofLWqUZ2MNKQw2WKbZGbW/8YywMaVLkggWOKbuJiNFdPvURIcV40oUqA6HsilbpSyxl1klJtQybig+ZMMP/UVwsiIP5xK2KVWVKq9RQiUvCmT+NLVy6PIhFAgFuTnIrDGHsaRWHFISou8Ef/NIbkxTHqlNjbFDcYZdG9VgkmKPpsWI4lM5ESql0Ab0XhJFJlEaymYkiX3tSfFeHIR5ZWRYtz2tk6tgEh3myIuKySBppKJKlThZUSeAgocOcV8pzbcjTgSVGQV1kQkuOIBFlgiiz5RqFGKZ67CmiS89KyMcaIrFFtlhX3280YcjMyHpGhx3VPnRPKlaGObxNFAiXQRyfuOjWD40oYlK2KzfJAEkpslH2WFVgWxVUAX+YNg5EO7jyxrlhwXIiq6xAG1dKNL4Eoia4YVOnvNzrQCe4QEhrOM/hWqT6lshsINqCAyIeaJJPviLMxp8gKgvI4HgAIc53gKlUfaFpKiFRf/D4ZGjCktiSTuWi2TG6RcXiNKpYRO3/2JtslbC0pnRBq1EMZgnZoOsgKQDzdsCDh/GhNVEHOc8qVhRWj8xdc5rdkT4eiKV1JvfM+qSslFVZdGsWaFm3nYn+5R2cZmK0mF3XFyPnLFaP7BMa7NaqE6sWtLanWZx/xMqe0pMSv+kGCEIhSkQDzi+9wKa5w84798a+SBaQ3SwpWFFyfFn92M2mhBxEisll73im1wiNj6hmWmSJzu1GafWJrnPeeIMMj7ZFuI216TOHdBEqd7w8lX3eqWetajx/DGLenWXdIlOn/tEL3b8euSfYjyS7JmTzNEbGh78/Pj7uYoeV2fbnP+/x2nP92+j5D4gDem4CESikwc/v2JZ/zjWbjC+gvy/vXPOOZRnuxQtCIjPqVaD0E9XpRKBegrXxcRmOAtssJe3UU52fZUPOdzGTEDsOALl2ZhRcVpfNB7A7F0WLcSUPB0JDh1L8c6U5NRUhJOWdc0A0dwBAF9ajY2rnNGdGZ65CcS3Md2caQl/zYSxeZ1pLd9GpR6KgFvjIN+6ZddRkJ4DNF+7xeFi8d4+leFVqh/mRd/oeA87lZMwrcQPvUrZpJkCRF+NaI9rUdV9qIiaTgSq0cnbbgTrzeBHQF0POdU9lBU/9OBHoYkHkgSH/AIrDBOqlAk3zARnEIjoKc40pM40P/XOrPmOl9IR8ynWHAHZ1jiQKKVIwL3TlV0Og9Rdj3YVQdnZw7hMo7zSmfzE8b3RY2ohKlVJA9xeO4nhfCXeShnhSe3i/yXeYeXeBnRYNIigM2HJm31eXhFKnGoEJhwQxblTHA4RD+BgRNIgRpRDNRIeyvFaYLwh/+gXS7hdMAHX6jWJeS0QCoCdR5VJoV2fHCTfDjUMJUoSr2iXzcCR2YXg1m0d3QkVtb3aacDK6L4ZvgoMRPEaKVIKqd4fKrIOzcSFO1YaCfYMur3Y7LoEO5HcbQYhVnIi7qYi7voi8CYEcPIdA0hXIw0aze0kt8jfVKVjxlROUCRjT2naR0BAdf/wHMWUAvtwHXq1Y19WCLeGBKPMGpFKQgjGImOpUgsk3xO8zK7doq+YoRCyCQPAUE3sowY5SMOhIMwuEp8cDr/6FtiGZYnMpAedBK6EoJaFn7nRy15J0GuAzCqE3ookyTMNnGCp5c8xVMSN4sUp5GhYA0atzwttDyI2XHJk5gclwzL03GVZw2nlVoPAWSCZhHPpiKop5UHEUD9NRI4h3Mz2XPk5Qs22RHNAHvkpU25wmmYAABURV0tkQtFeZSqIBGqkFWH41FsGRG1NndV2WoJaTGcWRBMEzNqdEb11RCi6IlmCZP/cAlliXxPgUBXyTLW1hgWc0wPEZgZSQoGhlpX/wl40LkQrIV0T+NsOHJDekUSoSmNPuELGDifp9kR8ymBtPVO6vWasZkkLVGIuWCUuYCbgWYi8cURwIN2vkUqnHJLwNmfppicThOK/PVSYil9ZdlKUeE216krkSFDkEWL38kTPCV4TqgQmwCiHPE0CmoQDvOZIfGej8YTFVAL2CifEAASEFAMxDB75JWHKMFN3cKfDIF6JpkSzAAFozZqrBAKEQEF43RVy3l2vhIRwaaDWOkQaKiZ5alYA4ZRAPCV9NaiBcF2VTQVerYQVxcZiUSMDOGd70cxezmJCFFodFoRr7YixVmmeLWnGiGjQFGj8mmaeBAS1Dh7GuhMKIIJl/9ApGr6K0PpEQG6pKpQjg8xgm3KUSfaEZoopgKhT5T4jl6KaBvhJlsUlebpqRXhI1O6ENJ5ImTXpWN2jH0YoY6hohjpnZkAnjsheG4KhrKJoNDVEIs2Ce0pEoD6ExUwqPJZqCBRBeTlo69gjd21qDkzlgaRmUCpEnkQoN76CBoQEfFVahd5cPP4qKESqg+5kCzIEacTdi6ZI9i6omuGoWdJnU5xfg5RZPi6GHh5pwehq4jHE75aU+9GlW2ZIw5IEAs4Us0oqxKRrD6xrINaAc4KEsvqo74AC/VJRymiM46qEPomlAg7EZmgpLngrVYaLXPFa1UarzUCsGIEJeNplZz/5VwooiJwBIp0JK/2GpY8u6FeJJXX8qGA1526yqs6UbD7ujIfcW//ICeQckFr6C3uGQuhCRQQULEWOxKkCXsNkzOmo2hK54clGxEakLJqGwp5ABGYCnW/6qBf+XUsIhLnihDPZrPPpWJ7h3T3+HZmCaMfYZa79RCxWpZoOjWViZ1nexe42hC6uqsEi1oySxBqYlcewTS7omiOhFig5CINe6wxGpq6ABT+IJ8VkLoX+6ylGa35GWf6BrKwyRD6pj37ohJJqrYpGxGCqI6oahJht651ip15p4Nt0nxpuhFcKTUPxLdhV0WzKxKRQrjxirhSgXBE65+Q8bgM8QgU573u/7cTJSpQlTsQalK+FMErVeu5+AIpM+ee7xmopmmaFTADJDGftGeaJaEzQhWyCZF7JKsSH6C7uZAEn6duRQIFSLlSX1VQBzgqwvm0XIRRUUKGN9smnHJiBckHwNBBZTmvBiGQZpm4KjOeRQsZeBmi36uRO5GilJu9vZkRysSGfot7+EIpiOUMJRGaWGu69Ju69nu/2Zio0hu7+ha9n7YvQpkSefABTpwLTuy2pHaU8uUSc/mpKdg0pAoSn5BjyEsqC6sRZPRmmTIKkgIKSAy71Nt8hBu0UPFyJnwkbBqsbyqw4ktXPQXDjWsQ2qMrnjlF/SsInSC6oIlzPfwTeJC6iv8cxCMxA19LXsQAbDkDst7oUftyuyihAU68yeH6EFPMCtHSqipBI8WXdwrEJJEaiR/GEDlmwZyFj6DCKVW0RbkXtmu8ldIpnX56FI/Frr8yx4qEtH0ZvktLvsQEw+g7dcz0WEi3kmFsEu8ZC0CRyIpcvyYhnzwndB7cLY2axnW6Lx+VyhhRApwcxZdam4R4myKVTnPpcHuMEGaikFuJLeL8fVSyL2yyy7H0wRiay278FMLFrvL8GCkszN77CE6qE13sYMj8zD4GKWiYs80oE+9ZuohczdZcEnrQcxvroyPBqNyMCZUMCuH8zgvRxJqsyR8AEaoAfI+QlDBByjJoyin/aRLFkp1lCCX6TBGcqLMIuWm3TLv+LJ1oSsePekDAjEgGzVMJnRPMlsxpcsyGtKg40QlYe9VAMQMYXQUnkZrkhWEXWMQu0s0YBc7bahIakAQasNYfUAIP8QGZII7jtNJR9ZQTZNInKT3I+3AjoWIgbHSf6JL+vNOqY9TtpdcobNgJ8b0H3dRO/ZcN8QksE7dZoQtX3QkW7RPUnLoQwNUnQXsZKBILuEX6Vsmq1o14jRD7sNZqrQHi4LZFyQqkNm9zNpUKJFKJo6Uw9xWEG5b9nMuEPRTg2J+/nNjBvK8HzdQEC9mxWUxfEQu6YNXQPc2KDAEVoAcPIQMycBFb+1S4/0WtrnY6WyTSZc2b9VwRJZAESZAHam3AlcmkSDmgM7GIpRdPuc3GJuLQVvHBf00QYimdABDcQjHc3UvgjWHgCjF4PeXYOMFs41lMrqwVVm3Z0/0T1s3Znd0Q2r3hF9EMUObdr+ANIOEioAC6Ix3AJpEE6a3eecAPl0qbTgfTC8diq6W9sflsBNQVAODP0HmWAC7gxLImyRzQxn2kYHjQxMTgN+HgUilDXhHdsRDlmd0TWu0PEIAHEIDdC7Hhb8DhSvVkToVJHpFFjErerKzEB2oSJbDmdqDeEDGpo3YK8u0WiE3BRBJGOq4zuvzblxDgRY2Xpwg9SU3j3eurm7pRLf97lYd0mVsh5VIOFFvgAJLuAFuABAmx4dqND3BgBF2O6RPhAFWgBzMw6hDgBB8B0mHJqFSlxJhcEvzADyUA6279EKwQoEp66GqxOvjWx53WFUD7qhSay34uFUPbtIqtGAieEL7qvXKaSLh+ENQS4Vch3VEuzT/hAGow6VvwBJeO6fhwAEDQ6dpdEaI+AxBw7v6gBmMOQEe86kKZzBmRAfI+72+tCrb+0nGxOpCFQyvJFb/+zyI71EBOJscO7cmO7AVvEMv+7DMxvkpdmdTS6NUe5dRt3Viu5QqB6V5+Ee2wVE5lC2Ie3mNt5gth1q1OEn6gBPuQAUrw5pMKBScbF4z/W54s0sc4XRV6vucOQXZD/edGnuAHnxhB76KGzhOowISiBT1Got9QMfGxUA1aW91ZruHa3eUaIQzrs0n7wxGMiiKN6o0AQLK0TRI94Ad+EBGZkAtKKuNwsdsueUjnCe9LkfNE7RAC781NoSYMTxBETtBrcpV7ufcy4WBy/41RXSLSLhWO/vTUrch4gPEMsd0cQVjXRFEYAdIg29/RCYInsQM7YLK5ENdKOhduf5UzfLRX8e87PdR97vMlIvgC0feOMfS7t+zhWVdWSi3ExPRL4ejHAPUXXd2QrxBAoAVGwBGeEObvAwyWj5mNKra/UNb7Mk4m4fnWDxEDDAVqz+xy/9HHNq7b19JRvK8UfLDjOs+cQ433TBHVQ077huG0Tdt5PVGRhf+Nlsm9TR/lx8D4PwEQMyoMrABBzz+ECRUmNILEIZyFESVORFjrFaxXpV4Bs0XR48RJfECJ5HPrI0JQvwQ9YnnS5ccdMQf0GBDz5b8kGvJ80CDuw02gQYUOJepR0FGkgoQK4vMo6VFMfJQWpVo1KB8Al7Reupl1q1arYcVOPOp05U2zSB+NZdvW7dunU12uZOk001u4dY8OjStoE1OzeAUHjRWrWixZ1Qa7FUjQoMsnWyJvQcIW1uWMrziNnXRJ0KSRv1w+UwXF9Le3MVXvGGBKjiA/pmqu3kExA/+/ErlLKFnc2zdZpFL59m0Kms+m38kVfsXE9WXnr6CUT0eY1inap2upb+d+My7auizvdgdK1/xQp48m9XWKCRN5wYgRJ4YfFI/jClVcOtjCnz9bX0rBSDNOohGruZAwAc0lUE4BRRBWpOtNtdlqeymXDz7IZcP6OiSKqaeGcm8lEJNa7zPRPBwLq69uAmWrSbJSEa+ykMIuxBlzTC6pprwL75HxdIyIJfO0G6opv5JySiqmjhOyqPlkoe9Jie4jqIIZ9nNgyy3bqgUjTjITq7NJjJPwI5EefDA51YLKBQpVMoGCFSrrrO67D6VKKylQHpHKOTtvusQrsF4aNLpAqyL/kcQb1Ur0UarwdOlHICEtyywjhUIFRKf+igsTpjBBDtKJZIlSMUitJCjLk9Rw9VW3NCKQk82sIonMM41SU5BcdUwCig1VUSUXUnVk8ijhiFIpuLikYpKPFItdiMWtbuLkqwWlLe+pID/acy9tw6VI0pMo7dbO9Mw7V6gT+4pKEEzUg3dUbU2VkhdUH8XDl4H8wdKlH35QI+Af3AqnlDBp5SQdW0PqDJNeydqVTio12BBOYcXt8C8m/3ov0r545JEPcb8a1NqvAIjxkmuzInSZS14E5UUHZ5Z5ZgDcm+SRv35hZRKKuVvUrpes01OQTPTCdE8iM1HrWMCYJVlj36CW/6tcIsUjtcjrbI06VFChChWpSaSVUhZe0CZV1YHwcEkPuH/Qo2C3NCPwFQCsAi2kS5pjkFfA69Rww1xUYYbq+qQCleOwQMGEFT7ClnrkaCGNedAYXSSU0Mtl1mrmrfi4RHTSRx/9QRBHOeWS1eG9WjmlM/WWRExDZtZ22491FvHByP2oSKRJDY+uj60SNXKxkQ0u7E34SAXSWNKWfm1+CXL7JD2qgBvut3yBRWGEYalqkqgezvsk1B8MWkhm3oQzE2J5786svzb5a6yjHLydD/6Tipkay21OUIfSistMZjKbJdBzoBtFzE4hsgaBazqxu0nS0lW7C9JuUSVyVpP4p/+7/u1Ofm6xmo/SU6mtxU52VflE83YGKuRFToZgK16dEMOL6UHKH9Vrm0uq8MMZZA8vdgNfOKiyN9Hx6m8PclCd3lQ4Yf1khEJ7RLzg5Se2/OUUTRlJyF40ulEA0E6XO9RNgEFANB7wc53rXAMbKLNRgCKOHZQK6rajtNf9DoMbxB3uOpi7KbZFdyscV9ZaUqymZC0TU8vieiT3LuSVSUHNex6Vooc2D/CCVBXgV/Wu95EZhFKUgkEYrV6BiVoRhXx86IwgAOURkfCqiVQKlrBUEcjuHCdJm+haFpGCukf+ciQvqhMaz/eSL6bxgAtk4xfj6EDWeWYUykPdKe54wkf/oAI8GfxWH71pO1ziD0dzwSYh7ZS0DR7SLangmFkUFznyOZJ8T0Kb9DSpw2JwkpOf9MgMIOBPfwpGGJwQkMJSKRSR8E2JJ4mlmupUGlveMpzU2QSoqpgkc1rlGagLzoP6llB4ieRJW8lKKYBSil8AwHODUtkloOPSQdksZiqVZjJBkRX9zUwQD1wTdWIXCqA4zToaTFeN3FkikQXnWUmZqFVE5iOjausvRHLUYGAIqnhGRUHr4aqOcCilTG4yn/n0BT8pAgG0QgAPEBjMrGhlUqKQrpXAcElDF/qkiGasqdP5BS/DJqqMjsl1seQqr2KIiU7kaHOvfMkZr/UVTmRl/2bAmFmZAHBZl8ZIp/nbqWciCLijRMw3lAJqUIeKTbUwTS3AAxGSkJqsvX5onCcx6lm0pZcaBW8xoWKle3T2W1bOCG2YvOej/FEM5BajrC5Ja1oXY1BaLYMoo+NbZ+qa0zzOKBePEBYU1hXbxfASKjw7yid68wiXki2SvIrKJSrZIa+U9EmgfeB2VPGjJ/1RguANylNfEpfA2sk8SYnXbyr6GfIpaERapRd8ZJFJD4QVn8jll1knAoGCZHgx4TBoKSYhxqB4RqF0ZeiuRKsi79oywLLNXVLLwocHNkl5/PNTa5vFFIlSJxP1O8qBVywWVnrWdXybmeg8tNj5/jK75//Fr5CUZyP+LoVZ3iGqxurCvF3+xj295TKo3FPR+kjPA0vwgFiVi1wLS+RKA+kNJ3RxrWvVUFDkcykmjglLwPX0SSkW1o+BMs1vchCpgfamnu642r/srMGD+cVIPJMmkcQsofUpxWUBUArGqgi0+00OpUjh5BJGub9Tfsmx0kM1qi6OD59YXHJ8+xmtJlhB8BEzL5YgVl8U4x3LPcmaK9AbWACDVpO4VmJDrCBQrOfOFKlj4KgUp/vety1fK/SgRabfG7PHttRhhafqxxL7LZrRJElgZ0gCn1JUuhRnnG/6lrwYIIXn0zqytqhHrTwqWwdxTluc6+xHl+Q0L3K+9e3/JibxXurwAsJjNvOZf32S6nXSN7EgNicm0YkChdg4np1Lnt/dIRVLeyzd9KONrUZo3PGMO9Rgiah22SlxCwZi0LLZxn8B1+2o+9KZ9hCvOHpHCyZt3jnqi723he//Zkd+u3Sdl9uTnF3wj+AEL9t2FK7wJdwaKDAQAQy4U4Hk1oJfLvFFJ8v+GzgPu+qC+kx6Tzyt0HI6R32ONltOXm2U513uyllJuL98PF4mBxig6dtKMUFi6lz60sDAOdF39XHBZCLojxj6jJ7SI6OXera/U7r8OhUvjyXJdd99i4KnXqa1K0fhEcaA1l/CdRF0fTvHLUYtav/wj5Rd9774DTAw/05slh30JCJ+WOrHxVHIwyfaj4CCn5OebRfLeHJPntySlhQy+Pjd5eE+MCZI7xZggIqMN3Vczi+dbp53yOPJf4vkxeP86RQ98x1Hel07P0JeRu6iV3RdknwjawCUM9+IsAhbAgy4iQaAAQVUQBqgDn+wvVpoh3wiu93jvd8IPmJLhfSbCOLrm2WbiFDDK+5iBZETCwATBFWgC1ZgBW4KD/vZvhcsJ/ohrwPzHe7gGZ4JN7/4t3jZGd+4hE0go85INupINyNsPMt7vO1wv3hLss2bP+AIDipTElzaFL/4lrSAoZhji15QsN4iH4QbQAJsPQSshEqgARqAgQacjgdErv9aOAbc84jdUy7lcC+Luxbj8wjqSqK3UwgbnJHmY8HmY4vc2jt4+8Mb/IQrrCjQAz0S2cKxAAaVSTY2mo4jTLcnMTH2c4tPmLxWcDIegT97u7ybsBpRJJWO8ZQeq6J/S49dEIyB2yr3iAXlIEADdL2TaAAaaABe5EXqWAIIrIVaiEOKUC6xEzvloBWWIbZJQLyP2EOOoy0+eahHWEEWJMSnybEdQcT5mSq/qqLtsyhQiZ+3+IWZGkJiSg5OsIUjfBLQAK0lTBrJy4RPNJZQhEKGsrFSXK1TLJZWtB3y8rIwPJAti6deYIfkwCFbM8CbQACHvAAEaAAEoI6we8NicAn/sfMFYayF6bA4kzEU1ItGzmMqKqnGFaxGQvwWn+JG8kAF8QKVX6giVgQsv4iX7zuiIrscxkuOW7jEoLCAM0IYhAEATiA/lTrKBQIdmYm0mcGu9ZiZCNnEtpjHeazHl0AFC/qRdKILqsoaPlIScMJHPOugfYwq8HLJlXDEPfEYrAIztgjAMkmOMfMADKjLhrwAUfiCG4BIigzGYcRIjRRGC6zDx7qETthAhWAl47grPCPJJzFJllgfp7q/bXxCFXGFFqqfF2REKxKEvuqTR5gHtiC/z5kEJByMnkw3dgQKdjxCxZNEO2OmrSA/BVKgd4wZNYnKeKRKqzwJ95PHeKMU/9waHpK7tifDPLEEQX3UPCoUNV5qnva4KC8jOFV8xbCYhL/ohEnKQ7woAhMogjQogiJwiQiIgLz8Aja4AfMsT+U4rggURlykiGPcSOqIEY/UCul6RlYSnaigPyh7zJO8RnFKCm38Dfmrk22QyZh0HC/zlHgBPfsBsfG5KcK7BGccjFJgRw29CUM4PyNUPKMM0c6pTRKtTZ9rnt3MhFCgxwpiQuHEI+H8ym9ipOSUCDqSStcqi/lDS0yZzlcruF46oqyaJ98ggdiLPRiYyIUoTyZlUr08Az5oADb4giatUsEwAX/whyXIJ3/AyI0Uxu3oDI/0m49wmCRCzIQIQSHhrv9qVKewiAtrmiDKtJMWWsR/8zab2YQ++YQ+HKDPeREj6o0MzdBb6IiXYEcPfU1LE9GbKVFHVaAVjMcVXVFceIlWCM4XzVSvLM4+qlFmW85JYRqxrNOZ5Mypczm/qArT0xnfMMC6NAETeIkIwMsIoNK9jIDpKAZ2EMZjsD0v/dLteAWWySyXKtP9FEmjsEwVCQ8WRA0TZEm8wEJp2QZ4SUFvZAlQ0FM9DSlRqQpKhBHfKIVCHdebsAUAaM1ElcQzuilJDFGaOkqk1KkEAq2ZqZzkmFQVzQRueAlSmEcgmbz3w1TizI7oWyqpzLwbhaqqqlFTFZUfxaqo2IReKIpU8C3/8tmEgXSLq6vLA3yJhxSFC+DLXH1Dkr3Ik/hSMN2OZSgTmEJTM31K+3PMNY3MlYCCAV3YyqQdjVFEv+qTX4AYz3wQTDDHKioKWJCZGNnJxbCFcWXam7jEnmQ8nbO0RVUgiCk3E51XVjCv7cDXUAiFfXWJfvVXgX1RAMMtDQLL//TUiEjY/xJVtkWIF2xEeHlY97BOdskq9+iN1RuzjnWJiHTIiGwAimSHYziGV6iFd3CJxAVW7vBIMkHM/eyfPkUIpIpTvFoJVoCQgx1JpMDcThsq3tmE+6qiX2i0bHUdx1kPCQUKl3oRSxNUC7AFdrSAm4CFUoCGdtyrr+3dUAgA/36dx1BAobjlDrf1Tx0t3oRwBX+r279yIUj0CGf4rTKRhcW4Or9FwF3UxV2kyMM9hnLw1ZOFhS9J2e2AKZadhPy00ZBgJcYcl2OpXPJIwc1FwX6MwtsBDGzLX+XBlCnEWcTZhhjzmG31uXolCthlGQAIVMGwhdl94NvNXdW8UFzy3VAgBeAVW6qUPOU1XlClLbjt4OX9MvJpui/rXIQ4DgUjUsHAXjJ8iTSEATOUYep4h1dA3F7lyJNN3MQ9BvIADcjlToTYw/WgUfj9XDthwaNghVG42RmzsZC50UHaRHSS2SmCGJdrNPZqtE1oXZe4hF+IrKL8wLZw4Ac2VJewAP8JVs3YIoXedeMMPomxFV4Rpo7jlUZl7eBe4BkfJTi8fQmKs1ghHgvszbqbqISu4zoFrOEbbmST/QjyvQiLII9oSN+P4sD9DAn5vVx0SY9TKFCQwbsZtWKKqJ1tCydqmASVwGLHSTZQ+GOXgAbNKoV0bGALmF1iQOOT6EndtQWOaOMLDmYKCN4VlbzSquPkuGNvUUlklgjRO1VYPgnUU7DrXbj49AjYO1IRoEhZwOFXeGSPGJBXuGH4SF+WFb4h5p/2lV/PIOW5ox0jpgp3cqcPqufcspoPArBQNcvYcg8AqCjUdQ8v/ghMexFOoOC2eGBiuOWbUOOe7EldDidSmOj/C0aFYXaJVshXY27mZP5gNEkL2OLohZC1vxPAj4gFqqvmTCKzmxABEnjpl97m6aiFcrjhmgZnihhnndZh8sgsMuFOdd5P+VVTUDwhmwWy6wuZoxoZP3IJdDohUbvalIAYz4hmj6AGADgjYEBotpjdYVho230JWGBacS0FA9mrVphotb7ok2iFr83XYxbpwVDmZM1jjtZBUw2KVCAfYxuMvmXpl3BpmH5p6jiGcNBpcj4JcR7n+rA41CsTdB4ddTZEuEPiOllinR25Qry7RVkqJummfc7sKNuFbFWpq+3caLAzdHYLCyAG1x6GiPaIaMjdQrUFaIittFZrUmDrj3Br/6+V696g60+1a47uBV2izidZvdVraUmIAueOAhIobJ2uaR8+CcS+iA5xmDJx5YWQ7A9C0xQm7vq4LxKpL3qDVsutMnuTh2ydGYgBgIkVEgv46mH46psYhlKY3UK9bbRuhbROa972CN8u5rgG7rd4lpDmPKgx8IkQFZJObuIqs5cggSgoggp3burohprW6er+iOt+BQ/Zm8fu7noOLjxe2yep38A4b/H+B9pZcaP7hQ+bOWoY6Pqobxwfhoa2hWigXQeOLW7wb/+2hgCniAGfVAaHRQ/C0XtM8rZlxM+I3u5IGwgrrpMgAfHM8igo7A2nbsYlIhDvEMdO34MahQ9ymP+50J1AKSrdmhE/2ZN9zhoo/NlWruUZ4QEcx/Mdn13aPeum4gZcaIUgbwUUsFTfVVEnP3BkSXCPSGrKNnCLZVWvivCbqHBY9c7xnA7ERewO94hxDhPGDvGftq6EGIUymdw0l0IB4yMdAW3f5MpTtrdniJmrHWTy4AE8x3Udf4lscGAHvoVriK0AAHRcAPRCdwlcsOACT/SwcJb+KUt3dnJ5clgdqQZKf4kogFVtz3Tl2HQOd4mEIRAV8bCQDImEkGwzjVlkSRS1MO8ZObmOa7L5+wubaTQdwXV854E95/OwbqoAGHZcCABcOPaTSHY37l1mF6Qlp7IFT/iEOFWTho//6MEhCXOJbL+DbZduTgd3Ilrt7jBnTU7hoI5L2uofpmD3B7I+ooOaHzOkWLc3ajDgmbn3FeCBFaj5Pff1YN8rbvj3f+eGIHgJXKBohHd4IFt45ox2J6c6FO6N4cohi8cAE5B6f+D25PB2nQb3hAmTHDHn0Unhl41nG6WjRHmEGGMUy2N5clIasZTq8suRm4/7FbhvM6bdnW8qCvD5vI+El+CGg//ayjN6qnB2Rv/UhpefVUCFVdiOqWv6xTgbqD8J77wDDKD8WJ2OdrhunvaIraeVHEkF0Tn1uGzfoE51EbKTFGxxvkPvfzAkN+UODjAGY2D8egdv6nACuZ/7l/jq/2h44LufKArI++APAL53iQAI5qIX/KogfCY/fG1BhhaK/k9oIW2ajlONbxU5m3u5iSLgWMq/A+qohU4Y51hI7I/ofI8nj5EQfT6ghhKfBNBlNpMXe1B8sfulEdZPGl46tekACA4bkqFCtergQWP/FjJs6PAhxIgOf4FaBurXpWUSN3LsyNEJyJAeFw4jZsFCNFvXRrJs6fIlQwooKNCk8GBkgFCkQvEkBfMn0KBCh7bkI4gPUkEsBR1lypQo1JGoPlH9tOnqJqtVP2WKOhIT2LCbvBKNJeusLF4sTWBoi2GJCbIeX9Gt+8ojp7x65RK9NInPX8CCkf71eDQpH758H/85dar4J2OnjD1uErTpEeZHjxtuoEUL4edVoQ/SQrUZIkWL1ECBOv0ypMiRPIhds2DLwkrXuiWimNkbxU2PAUjt7Ln7OHKvRpEaZWm0sdLkLldl+hTq0abq2B9xpZr1+65Nq5CHFSudo9mzvGStfbvkLQbpdunGwqv3FafzHf/y5z+4cEfMLacfTM9JRuBDBjKlWUeZZJYZXwN9NiFpnomGEIarKHQca6qxhiBECogIkgIszXZSNLiB6FoQv/XWAU7E6aTTijWuuFxSzjXlmI0PUYXZj95pJaRWWVVFXnmYTNLjQrE4qd5aHmDgwRLvSVdLLPhpaZ9e+THJ0CWC+Rf/GFKGIZbYlxIp+JSN0LHJESqMXSYIg1GNU2GFnum554Wh0YJcaqCs1hqTIhp6BUvNlISSBcOkSdYDQQQRCQpBsDTcTpk+uulmAjY30nKNbXrZVVZ9N+RWqFY11nFJYsJqj09COZIJvEzJi5XJ1UIXJ1t21CV+nIY5JmFlBhgqmpw69IiBfHRVo5vRcZTZnHUSlQyetBij57bdbrunheNxWNFFgqZ5BbpXTJDooidloyxUD0QSxAMwxigjcfDqCxWOn3oUKo9paocVV0ZuVZ13vaS6oW5KlrfLl07KuhYvHlBpq3x19XrXr116+aiSfokpoJlNJbuvmycjGK1HmNF5/5m1Q4HGrbbaJrOBMd0m49m3nm1w3KCsgQLMo2A0QUZLPAwzzEnXELOvUAKk0EENLVFAHNY+Qb11gYf5G+CObzLpCnZGluodwtl9suFUqbaaZH1MdiLxWSxhUDEveceXnMa9HsNlrx8/Ool/nqocEcCHw+uUUZOtyHJH122HScxCiQZuzsYkk/kGG6DRxUKd9cywa0KTOw/XG62wdNNPp77bcK1k/TrtYIe6VNjSfsldVplcNtUmroj7kDFUuUKVabu5mqbET0aZtwe4SndMr51sjBd+e3E6CQBkevovsqm73Fjl0jErme4Sybld+UBdXjPON6MRQ0RCaJ7zZ60Ouv9a7RCtXpsFhOGo/m2GArKbHQETyBBkpW8jABMbk3jXneFxxHifcIV4lJekNKWiedWwW1ryVrGMWY8TuugE4IKlLMOR7FjPURy8RgEdPrACRElZUAMh8okHYccr3NIcGkaCs/vlTHmCOqICGaI0AArjXUnkiA5AAAKrteKA+XoiAQ/TFNyFbVQHS15HaIG8431CN65I0pK+1MHm2W09vKjGCPnWiVdYz3rY65K++BAmw4EPMa9TxY5ytDI3eSROlINQVGixuW1tgAMjiUHnFknBzVADE6yhRhqTuERiCCMaA8QiRECggyjqgCUGtKLWQEk7r32NI0wB2KZCURWEsQT/Fa6w5Spc8afTPKI8gugFB5sXN4/cLRbrqYYH5GNCTsxRF4DLi768x5wcJmiaMFzcmq7pmvM9BzMtY8yDvMIBbRmjc0EU4ubi97PTTKKSQqPGo04gzxO0ZHVMc5cqHzJKMyRilKX0iAFxccBW5JN2fBwJ47a4Ka1U51keyeUqPpHLT7TgNJ8QCyacwbxYrHGYHfGALKqBFrUk5xhzXCbHOOIxwXGKhZl0oDVr90LGnWeGjCljR1yWGYdC5Wbl7BxLBNK5zDlyM5ugyCXh+aV5ztNESzOJLZwISjOMUpRrKIMAOiCBNfhTlBvpgKRaVKmCvu6g/zIZBJlUquoYhCUQ/5XoQTbTy02ARRCYeJST5uYkloBUpLNCjpby8ooPdgyP+gIFC/s4oNrNMK2byURC6USnkTjoQTwlCi061zkOgG4kaBgqznapmE0AAKmguOtS5ZmABFChqR25AmxW4ASyklIHa2CAALZa1Y50wEUyIWvqzNqRVxqIU6gwmHVYYgxcYkgx2qArXTHh2BV1cG5z46tZsktSwJ40cM986Qr3yBzFGot2oEDrUbzpmpTRSZvL4uFlh4IGY7SgkfNjSQw+i7POmOMxv0BqLyoCIqbOkwpUGMMVbjEGAxNYnhCZABiM1oQmgAG4CxklV/c5klMi0ML7Ei5HphmwRyHXFS3JkP/wROuVR0wCuq/aVHVjcd2ReOAVskjPdo9Dx7zU0T4lBO8KB+PehYA4dYJghYIEqRhmRQZ91IzIDqkV36E0kgNWLqpnNZs50kVFSUilSDzlyWAHe8QJ+uABD7IxDH14+B9U9acpq9gTgrZZX6wc8gJzpyyEFQSnI+GA8DDU1qhM41Vi2QTEHpWKTjBaxnZ7xZNiQVju1pGZHqk0J4DMKVAEJkzkxbOyoPDCmYK6JdFKr+NYEuVwkuWzaOBADOjHEhegQb/f4vJQQLGJi2DiF7veVIOdes+o1vkf/7yUFWlU7CC38KwKUtZEqTLJjnQmQwkhiqmuYmhN22jRjUYhjY//4UHpnJCZjOa2Q5ipbnRvig+jcM73FEhqpDCZKC9sMvpgxZIHwUwuQng1rBfgEiF4bojGAIciiUINX/+3XACAF5mdWhuT5GbZl8oaTyzOqTsv5YbT7REyPjFolxhjFciw9irWCZOLarsym2ixshbtbXB7pMbjlmMdGY2XSrNb3vGW9ytNNmqYBNJNTf4JnbZzGb4sINYCf0kXhtqtCeGaJdtoJysEJYjV6BuL/xu2BW5hi1KUAhhlLwUASgEKAKx9GWwfGmsugYlLmE5ov3hE3V2udFVwKgDJ5gngMxGKTBD+EZXl4YOgkxn0eTyhjdN4RDgOqjV5eAPIoNCFckkL/xyw5IzQxYqhER3zTng7FdjVhcSciXNz03wj6+5EzxNY5P4RV+iM42Z6F3J7PnBzTY15PEwgq3RBgHE3Qzg+RyA5RM+AAzTqYMk5er2JZxz1F71+FdHy+b+ToMgWtrgF+G9RdmCQv/xsP3/dWWPJ9P+XFaz4xfvjD38/f+lq+OKJ4PNPeAfxH/H+x/epsddkQZ5DSJ5haNHHYVELbMvlZR5CuILwGISgGQ94YIUFYkIqJBqnyJjMtR5HeIAwqR5ynFCleWBErFumWZgBJpEqnMkDNYsWCUjQNRa9PQdQAEnSqddxHB8PDsFG5MNQ6QlCoMI2RNQ2wBU4ECERZtsvrP+Gr+margHDJihVPlHCMKgZitiG90GDLUDD2Zmd2a0dMMBd+pUha1BE1sXfI7DCI6jCJqgC36XJ1cwI4A3e4O1f4R2e/0kWOAVgtMASATbE7CHOA9WZG/AMA9LCyT0gBF5QVRzPLuxCtl3gi+lLB5IeS9xY84jgcTCauVnar8DeJKQgcA1iFuFI7qCVDIpYKg7dDYLTnGQFcvQgD3IEwdVMuBzENhQEKjzDM3zCL1KfVVDfVTDcUamfPFhYo1DcSXhfF9oCMEDj+AEAMLDdGI6hGdYdRSBVGrKhN75h1/VIT9Sh/uFh/+1hH/rhqSVOIArizw1XIRYbziADA6JYLtn/kiN+giSGR3hc4FVATQcuGl9Zl5Nw4m58YgldWqZNAuxZmCnKXu0hhip6StjgCLO00ks4yA5tZHLpBi3SQQocgQ/QokS0gRB0QQygZAxcGQegQX0xgtQpIi00XxFuQyNSwydgQ5s1A/eZRDOWgi3AAtmRXfkVJQCgH93RnTaWy5eVi/u5HxRwx6ZwAylkQnGQ4/4ZnuHp4eI1GQAGYJKNWCA+ZAHGY7FhQWg1IIZAID4eDyTqI6J9x1Uow9YEpAlKBC/oAifIWCwYpG6omyfe5UOIIkPGHgGRZQJdAg2qInq1IlFYBmaoTUd6ZA/SQQ0Ewkj24EaMwAJgQayt5JW5/yRMGpwiNt8q1OQ22OQz1EGx8QBuoIQtpAQ0WAA0QAMw2ObZrR3cXaNuluGgmBberSGp4N02KAsuyAj+maM5Il4OLp4fZlMgtaM7Nhs8SiTk3aJnLCJE2RIZOWIkRuKRpA7pdSBf7eXcpIJfugZCgqJKEU5hOuQ7Ahc3XaRE9ssr1Ru28V5lrM+UuQYtIl9LqMMqmGZB3NIRBuMn+FoxJuhVPIN0PiiEBld8wtRMtSNaamcu3ZJBkFF3ugLn0Q7pMVoqGOZC8IJ5clR6ngYK6tx+jOJ7luKEtpk6JiDS8V5k7BSBkORPYAsvilzbVAX1KegvsGaEFqmRtlSMRh4CPv+ZxrmBMSDDzqwCKkzIE4Wot7EEL8SCuaGndDCTi9rRfviFi8IndR5pVAgfH0pWf+4ggA4FIxxEEh4hNrjCOZipnd4pkyDmApklnmJRiDKaYEJENaSCufVll8Ie7LHnRkyCmJIiWelpnw6X4gnCJ/AB/UUqpmaqpoZYkkJEKm6qAo0noLKEXnJgJ6ToZmRaoo6iRzAq4ThqQUEqqDJEJqwJdhzFpc6qru6qncrqp/Lq63QCJiAqif6DLFjpjCGHl4oiS0WEe7onmY4XsKpP4/Qhq00rtmbrWHbqQ/yqtlqisCIqS3DUn6LqY6wb4QRqQzwr4URreX1rOoKTtX4rvdb/q4fJ6gMxqb1SF7Gqq0OQq8yZq2J46av660I8q1+4a6lhKu9JlpNVxr5GrMQmka9KpL5O7HmMKLGyBB11YLOqp3uqaquKabvCaJkC66n1Ya5iLMu2bLvJILwBYkERAREYqZIUpsEyBB0N66J9rIo+a0O26KsWq0FxK6g27Km5rNIu7aOsYIjF4MXSDs1Obc1C6M1C60iUg8YOq8+masiWLEc8K6zmk6z2aWWQj1gyrdqu7XmwkMfJYAxabD5NbRZkwdRaLbv2K+EsWmFqbN++qLK6J7MuJGG6Krsyas72T9n2aZrSKNs+LuTKRb+4oNuO2gslENXSrRTsQU7sgRTY/23mVu2yjWje9isGYmAqpMKwrm64Ei1ULOThvqpfkOzhjq0qLW6fIm3k7i7vdsqdNV7KvODM0mwcSIEjEIEjWK0oEuskkK7gFma6Ni9Dsmjgim30xu7hJqzJSmvvdq/3fq/uTW7lum3aPlHoRmjqLi/Orm/hRi+imp50hKxfcALtYi/hiKnCgq/+7i/kstCM/t67qtLdGumXPq/eqi/OCuR5EGb7ZtrsuuoDs6q78i8FV7DSstJE3hDcRq0F/wQCS6+SkN70Diuiwp5HSQezsuvVxq72tlkAdzAMx7AMzzAN17AN3zAO57AO7zAP97AP/zAQB7EQDzERF7ERHzESJ+uxEi8xEzexEz8xFEexFE8xFVexFV8xFmexFm8xF3exF38xGIexGI8xGZexGZ8xGqexGq8xG7exG78xHMexHM8xHdexHd8xHuexHu8xH/exH/8xIAeyIA8yIReyIR8yIieyIi8yIzeyIz8yJEeyJE8yJVeyJV8yJmeyJm8yJ3eyJ38yKIeyKI8yKZeyKZ8yKqeyKq8yK7eyK78yLMeyLM8yLdeyLd8yLueyLu8yL/eyL/8yMAezMA8zMRezMR8zMiezMi8zMzezMz8zNEezNE8zNVezNV8zNmezNm8zN3ezN38zOIezOI8zKQcEACH5BAkEAP8ALAAAAADUA9wAAAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MOL/x9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghihiYYIIwoeJJ6bIx4onCjIiTY+kiCKLNKLolow05pjii2eBAMJSJpYo5JAl6tjijCvyWFKQKuaIpJE6igXllDVGqSRFJT5iFAhmmPHjQpEE0AourbRCSisyBfmIkDISWSSTTsKZ5E+TdDLJJJzceecleNbZ5ySYdJInJ7G45A8ssLxSyyuMwlILooja8miikT7KaC218ETNipPQOMklLHbKIiicOoVjnCsi+eSUSGbF4qpUxv/K4ih8ACXrrbjmmquLKOnq66/ABnUkr0Jx6SWXCoU5JpmkNBtKAC1lEiSRw7rZpJEoPjkJT3p2262dftopbifkcsIJS4u+Aqmjjj6K6bvtvusupa9AkNOnneYbKh/6YqtUlbACK+tUAhd8Ck8FJ6ywlSXRuvDDAhPbU4woavnTsWZYwYAAZXCJrEEdRBJJEEGgYDIFKK9ELZPTuvnmta+qWKSnl+CUp7d6DoqnzpwIime5LNFL76LyEv2uMJgK7egrOfEJ6r6xzoiJUSmuCbGvDpsa8NVU4uQw12DHmjVJMIdtNsM7VSuxTj566aUENXQgQZdu+zgQAyk80MEDkTz/EMTIJXeAktUuy+wyyzOqujWntdaEs7jhkhs5uZTneYxKlkKarqKKYupL0bUgze6ktUh6EwB38hsxUTGvOvOpr8qZ8NpFnf0rKDbZrruRS+7u+5w8vRnkUG6v0eWXB4XJTQDclFkmKc+aZOKawh8u/CObbPIIJiViYvWRqbLp5IqYND4TznfayXOfg/Zs7iRMq+SLpOoiWvTnoOc/b+n2Op66qPoKIKuEUrbYJS5Op/haqhY2CtrZ6ne3GttMIOi7klBQdw68SctKNJS2HWshKAgALs7kLOihiWwro54gKLbCi7AJVqIy0UxupqdUpM9cOMQh5MwlKJb4gnPzipfn/0JHRF8I43Oiw9+7LGCT/63oaaLiE7+YFMMTAeUU4IPVm0aRERwtjkVDkdWMMOKrCV7QdhYcH9e+CDGfsFBIRbEbRMxUQlyM5BF4LBwcP8LGDKrkW9v6yQ+J5iiKGLEWn3NUMRynunwxxGHZ8knVWNYiGYnkVoLA4gO/CBJRxUomaMsJ78gWypuMEmEbxAodoReKE4Jkhdainkm4t0AWlU8QqYAJDe0ElGLECxa+qEgFjojI0OGBJgEURM0YMgmW9WQUp3ih8EbBRZRka4CoNJIERxIrUsGEDwrsCRZzlEYaSZKcPWkTB69CQla60iNuol6MVFK+mL0qkC1JX/p6Cf8vTFnkcwBFJDJV97SGeHEnmbTWm1wiO3umrWspGZhLSmlKinrEorlDZzaHhJUROisUdvzImlQoJIuxJHWVRNHUWpInyAFFiZhaZEUgUAxi+AKJ/YsJv7plPoVcwpmijOYGU2VGLYpySi4hFVJbglGanPKSOVrpQ83Zk+r58SkeDUUoSBHSjoy0RdTLhE6vGap8Ru6l8rrpRW5603dNkE966mlCDoqT8G2RD6yoKJQ0iC25sgRKMvyrRnXy1JCML52DJWy1VNks6DULnrDM0jplUs96gpElNxMXUCqQ1gpghK03FYZMYZIvPUlVIXwg1fBsgsU3cvSoTwpsUZv6R1j/MTWxOFlVOS+LMNzixLVXdcoqt8oNr+JxWH6NyarwmZJw1QmtnvOFZy9SAdAicrovESAwDKpaK9YkmtQ7UjV7W1iGqlGvvt0t8BRbI/UmF73r1ckGg9uU4baSI5kY6ZBMmtEnraSlmv0JZ4vpi5xapBjSYKs/SevEZS5EmUyqCRSm1aJobtJJaarSe3VaXvdWlbYaATEo05u7IXnXKnTU6n03EiN5TlYitJzeAuF0kX2ZaBMqATAvBUlgX/gjI3oALUBJ20g+OBi1FIYRH0gqiFHw95wA+2aHHQIlT2KRuRPRkSCw7GGeKPDEUKUqeXn7UBNjpbEqtgaLpTXSNU1k/xPXTNwLw7fhhTTzzkRtLuXItdkeG9giEKhuW30xg5cYuZFHTshPKzmTFaqtIw3Mln83Us9JCxbDEimgRCXiSTGfRMTftHSYbYlYT8s3i2f+6Iozol+rSQTOansZ4po0EUzguXynLUmd9txn0B5TI80QtDSKEcyJBhB3DFl0kRr9aIzQamVUMtHBMCIn2arkgPQ1CGBxpUlOT9mwNBove1/l3mxL2dQ5qZ4XrZfHeMISj/DOhFgn0rxWWKNMy8t3AAJAAX7vm9/coEC+cUFw5z1vqyreqkZa3cKIZFGdJvaijLjMEBOVz5Eo2TXlNgvaCvzZIjOoQHUFXeyTBpDiBv/prrVdItQhTbsirLDnnDFp7rkeViU3h0gfcZVpJ6EcJKAeSLjBSXSxFcy2pEQ3Q6JWS9jN2OkaDvpLWgbxWO/33fDOutafzBBubNVMzjvTsgpOcGtwo3n1JhOZwt5YUmQi4cHQSJbWJC2IhJeSlHy47HLdEAHyXSR75rOAO17ojXhcGiIXqFkbCYCGKHvlLClRy18sEeHZFepqlFlFkJ6S18X3wU1HlT2NpNSek/gjORL3IwX25Vwp9dsckfoX2Xg1n8yXwtZzWau3Hm+IOLbtYDe42gmudoMbP8WsVHEmSMFqybr5ITFWE51rOb3Y0hoipVVdL04S+E5wnK0VKLz/RtQgcpKX/I8BTDRCmhzhl7CCSKfg+kPadKpqM/2aFAm96pNO7vmzKnatE3VKZ3NR9Wmnp21ntG0W1Cr+l4B7ZXvIJU25RyS7x3vz1hCtgHC/B3zH14FhN1zJl3DQQm0qhEcPYTWEM2M4NldwwiS4pnM7tVPcF3gcN3Lh1xEzAAGIl2C+4Akmh2jcpSIwwWSCAAUT0UAtt27q1HSyY39Zpji9ImoLAXVjRIA68noQAXsdkXoN6IBatiQMSGVeqIU0gTgTeIZukl9a9xDJt4HA13YkBHbtBIcIp3xbdYEWUYLPR2UUU0l1dhCbMD6QpxCAYiKd8ncgEXjn8hP+IF3l/1cFHhFoIucLxSAMf5V+DaFyf0gSkSUI71dzBPFw4KMjrUUr4yRp0xczWVYlBniABREwEREkrZeF40Rm3OSKQjclrRdtu3grpQeGM+YQtAdBwjJzdqV7+9VmK9Rua+gQCVdCW/WGzSKH1AiHjpVwKrZwnVhzJlYx+XdLMoKICME4qWMSiggUjVh+FaAHHvEDECBdCrYSRTYJjccQmshQ7VYieSURSJh3q5WFMmMkLyeMOTcSqrKJA9GCeWZ6UveFXdYQu9iLUEIrEjl6ZLgRsmZuWnR/mKdlHUkUJXh1yzh3aigI0qKGj5Bf8sZ7bPiMpIB2zMMNuLA8+3Z2zHOTyf9wdvlmdmeHC/dmDWqGkSUlf+s3Z6B4EJ3gkQ+RfZ1ijnu2iD6BB+UXaOLHEVJpflVpEk4EKJmYUi6hCnMHZsIYadK3IzXGB1hkfbHoUL2jigZ1kGSkI/unaFJnEUEnlwSDfwQZjJCxjPD2EFr1dlr1TjnBjNzYjXJXkFOYL+XjfSRxjj8hiSIHAZD4ERWAeIP2R41Ej125UCzRZmtihBHxVd1IlFiyNWuZKg30kBXHls5WJT9nEF+mfqiHiwKReghJNTS2lwsUGaBpmgYRmCpGmDchLSWVm9pTUkdpZ1JIiJsZmxvRfUAhmR5XmR5RBebnC/HQXHGFCci2EKDQTHv/pBKZ8H5g+QiqsI8PkVARCHR+uJBUFmec6JpTWJdTqCrz92UWFE5iaJtF8TK5+Q9w2ZfN2BDyFgpv91gIpZx4iGR3F3s6Ap0EkTr1VBJ7lgqO6RPq6HHsCBIV4AkKlikZt1OXgAn1CJ7DwhLxl3VH+QitRWHASW2hF6C3KZ+jZiMGhWmJWYD9SXQWBCqjACrraZ9BMTODuH6sCBm/+RDyJpgKtxPytIcMQVI06hDgaIsKYWuNlKEhIZ2ROZWUGRJqcFPVVUy9oi8mmoniSXkmkQvnyQr5lQsRQZYnYmG905xIVksG6ZYNgacudC1duCLfaVhBemjz9zRY2hSvw6ZI/8qnjrGkznigWsV8CKWMDhGIRFKbNCKOWgpAjFmlE7FnusClPCGZEBCmDCEDqioDEaGDCiZdn5YvJXqiCqFagsA9K+FkqvAI5ulwRNgrMAOQqWKn7tl+OTqAZ9le4ygqu0g2oHIJtHKoK7JNT2GkjHoQiskYeZRHTNqkkxo8ltoQcJapF3VAE1pP/XJnF3cnjxkL5OKuQHGVgQYBHaoQq7qqEVEBzcBWhaSVJMqV9liI1yoSuZBfrMCrRxl/yrmcZOSnCIh3UGWs9+mfwuppZcRNl/A0tIkQGUt00SoVATmku/kYu9etB7p84KpfwugmH2FZKVJaFzeP5AOz7fqupP+6E2rwAz+gB2qgBltgr6uKD0BgA/jqEA6gB1VQBTk4A1lpWHpSottlj3zAPQMbErzKCgerCg06pQo7ntZUI0d6m6M4snzEl0vnsMk6Y9AqK/wJVYgqrdQkpCDrqKBHto3BcCb7diirE2ymQis7JCsITzhiazzVLyeCa1smoRmhC+7qrvHjE0iwBU8wuUgABwRxr6v6BjYABHDAB1qAD0SLuaqaEE+wBQ5wug6gBk+gawSVplJLtQx7EVCQtXj0ATqHsJ4opcAqZwXRXQCIiiJBSfFJtxuxIrWIlkV3K5cAlYb1rJ83V877sVHRJNwYsgQ6knkrb5RamPDmtQrBskD/R0WHWGSVxSn/k0skMaqN+7g9oQd4wLR6wLMLkbmhy6qtOonEoHgjoS+zmolUm1op4aboiZ6qYHfpmVAual56KqD1F2dCGLw40p9B8gvFijUs8lNp9LYO0bFGJrdR8T1V+4rWS7JzV3N4pJJ7mxMlKUtv+VofkQqncohb1ki3yi9air4W6q6My748gQf+IHJ4QK+pirkTQVNK9ArnB3Sg8imuC56wG7sVoQpQQMBQIKcneLCRZWgwc5BMuECKu3nC26c1Io7OFpEm0l0O00BNaRKHlqjjSCvOOxW4p5FPFxlDWXOhcMIHuhP51Yl/671b2CkzLGeYcHE4rBKdkAq6/8C4ugAUITeZqDrE9jsRbYVIwsDDqAcqmNC/yUY9oADFFMEKqjDKqhAKEKEKS/Zu6nlbAEO9VkcSffiP9RmOIfEkEvnFmXzB0hrHUjFfBKmXJCxZTJp1b7cTefxuublBgYt63JMvKLIJN8sSGLrIsdDIP3GVHifEJVEF+AMLlwwL+ytFfELGCfnJgvDJKPEBpJwJUwwRpwCWnhh/HIYrnmkSKRi2IrxA5FxjDRShoBx7zhuga/tEoFqkKeoQrlXQfpGMJxhvmYAKUNpqyUyBBnmIOKHI1GzNUQmm1kkSZWo/wCQSn8IvnDyF5ozOJwEFmeCmo6wBD8EM6JlQ/8wRG//phzFayxEsxpon0hiXO9Gbnxes0D+xWH8sy3ernMOsxxCtE5+gXyE8EJhafV/RCdUcC9Ucr+oYyQsBB0iABFrwT0Ekop30U4dIqwkh0yhtEqFQxVK8tQoxxQc7UswGtn44dTk9pafyFYf2rA9BTXst1BA4LetJ0dcLSw2t1Dzh1IfpwlxB1VVdDeiY1U17EEjgAFtw2QcwU4OEKOoSEuP7U2Y9jiXyyYM6Eh+w1m4KBczgzry6JrtahnJy059mt3mKo13x1xuLrc7rwVBxjINtZn2J1A6hkin5CKYMpZK12EKyzFrRCYxr1YVyzY4YaB2NEAeAuqf7sxUBL5ztDSD/cXHKBMAVN9q4ahJV7KYfkAsuPdy7erCZANivtGw1EcYNEU0qItvTOwmFmtsGAaS8HBUbtM8CAVx2LNwNccLwdtzy5dTzB75cAd1WDdnSrY6TXRBPoAapm+EXYQtLw9lAJ6uCENoH8VPn/NQbkQu5kN4obsAHe7BWfCO0zYIpUj5e0cFw7H8A0MHw3Vvk2po97hhXd9i9V6mMXXEkhd9PAd3PjdXl5w8VThAX3rNSvlaTwtnR8BGksie3moklntYjkQQont4fYLvrmZ4uiuRSEuMJIZ6qs+O1s9sP8awZy9tPQdQHbudAbuBTqnUKnm7KieRP3D0PDuESvtHq+GsK//EEOrvoP4ARttAolMJHcFXSPjXa52wSGiAOY57iq+0QBWvmrDCQbeFFAi62U9t/WvHXIj6OHTzncvzjD+bgeV7kCoGSeNTnudWJNEqEMz0UEG7VTO6IiE668Vvs9WoRlJIor1AKHlE+z+qdjmfppR0SGjDm1p4ED5ELooy1jyCab/Fwdmc4vU5AcC6Gc56xr07rZ42Ywa3u68fnPMFm7l6UejjuQGHVshAL+R7ZNjjsCVEFSBu/1U0R38wJnJ3EGDHS47zqBUHin7zKIvEB1V7tZD7cU2zmcyHrzDS1KvW8BDPnRhbnrY7uvQzr38vuj6Hx36t1bm0TzlelcMZCVv/D3FOh7/ouC4XeE/5QDOXnC/6OEDOgtEn75BFBKZzwCuayheHJxFELnkLi5SKhAVIv9RVvoFCwq+0sFylVpdJEtbicFOdO56il4zme7iWF0Cg/64Y93CyfTu9Wd1nYjYKgPaWOFNVw87LAC+gIj9X18wfBtEz7vhrxDo+O9K8QDphsl4QL2lz+9CVRAkkw9VKf7Vc/yqKc8fTncN14CTFC81AR9gHKLzl+CWVf8vtV1CZOGCqfELaekhODdcuZyshIFXcvC/mu94zI8zzv8w2RgxDwvh9XEUifKEfPCelAaXC19H3q8PauECWQB5GfBNBP+aR8+VpveZUXa4Xc/Dj/AfoPgTodXPoAbvIJ8avtDshn3fZVxeAw5m5LtibbBxXVYPu2j/s+0YjEVgHF4PcGARAQBA78V9DgQYQJFcLi9IrTQ04KJU40OImPRVB8AFA0KAiUR48cRY78VyLJyZMlSP5TBSWTKpgrZc6kWdOmSEF8cuasKWjnzow5N/HBdNPo0ZUaLy3lk3TS0ksAmiKlWlWhT6yCVmbFatXrV7BhuWol+UjQI7SPMoUVe9Yt2Zl8HukcixXTJ7Z5ScaSJYuXX71gKxTz9c5XMQgjIVRYLNCrr4YQOYWriunpJFCTNuI89fFj4IJ2ktgxmWTfypaqMrkE3dp1wp85p84cqhMT/12ffGzzofb6NdSlk5IuHXUpo2/kBcdu5To7+XPoI5eXPZt2bXSZaN2avSkIk6BNY4nafoQdLN+/gM3LHFyMcLEKIyvMp//VoUNOpSJSnYSZT+bNOPoPJFBaK+FABGXKJZeXoChvPQhr+m4nnW4Kqi6dTpFLuAip4gM4Dkd66pLiiuuQLa4elG66E1t0jUWcqkPrOhcVMku7s2765Da3JvTJx0l82qTGmdLjxQNeiJSoglrcOyw+keir7ytOGJKMKkH8y+ySkQb8CC69/NiHnwxKOI2kPHKBaU0l2zTILJ10A3Omj+KMMzZBLpGtQDdF+hCqEEUC7hKN+jzKJ7MQJf9JPEMbNQpGjtKyztEbqwPvqCDx/NG224IsylGE/uJFVFDbe88f+XyREqxoJOMEmFeQuijPLPkU0LOQWjNAiX38kOkDNddUBVQXg8TNu0Nzy8q25j4k9iClgltpUFCWAmBQ4wAARduoOtv2P6IIzAqUU3z6LDpEsaKRo+YstTSts45NtDk4ZZOTp2eRg5SiGyd1NN1EPVSWR6zC9dSnQBsV9cgkHfXHvVqeHMkXVSsOy1VOArwJk0uC7PhTdssVuU1gYVJz3XzXows3/uL9csI7c9Ptl2eV0sw5jkYcFDPjjAM3o4wI/YhQEpnSTTeLjh5lFFCOe27fieZVVlmppa7/C0M840z5Ra6YkxRlN7XrF+ebwvvROwphzjSnXRytxi8kG2704WIifgdKjijW25ewarGSk0s6KQXT8QDs8qNyWWlzQZMzyWXrCN8q2Cpl9fxJTpj/A7lP4ABImCJsowq96OKWqpbEjOQc5RTWO1uddWWd1rfrsqpONyup7dSdQnuPPppCyANrbqVKZyR2u+28+g6TRyb5Lkjos9wJE+oNNRJJUN9xr274Jt6b77BgwQ/wyYziGCPdpENckFNa2+H99xWEabVMPggeQqtzpJyuOgseV7ZLbI5I/wHOSm6hGaKNjilE+1ADM1IiQo2igbTSUwVB8pxK+SQ7V+Ngu2KG/zXfyeZ+eTnWnCgCMLU8CysZBMt3cPO8nCzPO3wYigBb9BckYc9R26tFk94xEsJQjDB50Q9EJrEfm3QKXCZUSLkQp7jAwG8A8FsJsICVC2aMEEK4IQ9YakMr8RBlaKf43ImwJZPMnE6BC2wgA4lDop/pxIKjAImenpZBsEUNdx282gdBGEImalFWtFtRv1TkqE0kqlI2rEyPZHYby1jGO84jkqg8sAQPgIp7tWhHN/BGkSA2qRh5eYXgXNWdjwXJVhR5BhRg8gH7gQV+7xuAKfwgCD+YYpbxmwg/+IEglQgSO7/QjY80GJZdWA5mdcKIRYQ2wGtFpYwT4UTTPhTNNf8aJ2hQaaN/crI61AXlI6N4GvLyqMd5ZXBZIBxL7uT0zkAK0yZ3qhB1ipevfq3wkGHJ1PMiSRQeQc9FOOTFEpagybr1sBafnEjdfBGxUeZlGeN7CiqdlxFGwkYQrGAFd/QixR5MkZciSUIeNKCBD2hAntj5xFtYppdwySloBNQN0TIanc5NkyLQIF9/eralamXGmaBYGgNPQUcLYiV1TfMJl5KDPEGcM2r51OcKAXa7DspFNvaK50rjEputKBItKZPcW0IBmkk8olPOmyEknUc27BzJA5c8qKMG08N2LHQkEVNoRPPiqk6sUiZ5mpVFRvIln0AxirNUUC6g8NhheRX/Oo8wmwwvJTxCdUaJHftP0G6anJ6JjkiCWB24ylmpAW61npI1ygfDCrCtldUurtnE8zwVLub157O+kWtB67qSBsCABtCpwDHwqleR8FWhgXHVJfLTE0L5R7EUOZZgP7qDmThuTVJ9FB91405llXCdWrUXWuLEXb2cbUJmc41Ph6YTi7xVKhHKlrVGa0HrtiYT+RwtV7vK2i7xjngpglxaviO2Y4JmE2mdRHioB1DqUdI8o5orBn47EhqIQMOVeE43emjcJu1VoT0EzTI6wYkjBlBCTAnaYXG3OFUEK7JWKZf/xHs53tFTUx7csf70RT20rXBIraFGZtinm6AQUHY4/92WaGuUE6D9ly3wMstZXUQhOQG4tQJeVNWCt0ezhOcReHGNJC8SSec5b7egYdgSLLwSBIgABnOGQQOSk9BjGNevFBkxiQMDC2AcMcWpoAnHPlSrkdQ4sYtzJZu8Mhc+Rtp/feRdH+HaGsSulyhqfQ1G5UjYjlXLPKK7lsZO1NSuJIfKj0DFk3en5ZvomDkvDh5lryq2fabXnxGmnmUIDR0KXxIDwK1EsYs9XOQUox15ZkeIk6tQWNSiNSh+SMcyNpM8Cc2wIkFsrogk45hYJX+UvrGkc9zjGEIHFImSYW29k+u8TKJc16rWn/4zOOhg81qj9ZKUwyIps7T6yq+Gdf9NZE0dWt/PLYn0zoQC5ppetBXN1OsEsJHk5mGTpAE0aEDHOX7nWuS5HLW48ET8dnJpt8bal3HqVoiWpZafcFyMFpZXym1unE+Njx6FjlYd/KNNXILnoNGTT4VGqDzlGyr7drVH/oNBgAu8RVhebcFlcqxLX0Vy8E6ZWTLBvJ+bzetlTnMkLdOf54zKtxkfCQIagAC4uz0578jzMV7hbI7cXXzicw0wHpLiI8rE0EfLb0JO8Z0vwbjmlMt5Vm0cXk2NO8HQUQVW3P0dd5tlunrhBJLrbbqY/8Zal8C3i/rtb7AAnOvrObfVaYL1Wa9QnlkJj9jPgnn0VkXNZu91cub/inG2iwQBFxDFDURxAQQkZ9mvyLOfOSK+V8ACFsfotHOfAoysK6SBP0u0uNrUaEdX5WqS6uhbJAXV5V0ebepPZG3VWhf83Yh5lp0Q8zD9lHqPaM1gIX1UmH5lQvIN1Rugg3O92Ks6diEweUIFIQGPdDEb2guMXtCtM3OeX3sNDDABDSyCIiCJCCi+CLiBL/iCC4gA5HgHWbC7dngF8OGIWog+GPSNSQCG4OiYlcgMJNs2jsCVc/m2NXElr2inp4KayRIzhtsjywuMZWCgbBM13+i/Uvi/FrmQyXsNVQA4K2sRO9kJA7w6/0kKBfSqd8MECJy/dNIJMgsLCNOtSXAG/9/QMDmbswswiAioQzu0wy+4gTMghKIhhDMAwTu8w7C4A3/AAAurAFQRiVeAwWjzDRRjOc0gCUJBsqeLEVxRvPDDEiLUi/yZOrMgw3nxkdrLid5gi6AyDs3AhNJrDQDIj6hAIi3sNqiTFFJ4sstZvS5MCC5CvX8QLy0LD9ywNQdknh+hniH7CgpMs02QBQzUwA30QBAUQRI0Qd84hnD4MOYbiUXcxlh5Qp/qD1ObiEmklewzCCe6ICURlkeYMYEpGFycsk3EDkUyQrRZHsviRZnQjG0yDmB4DQCIwn8MPZGwBWwaPdE5xW0JqqZZyKaRoeW5iDohF1p5jv2iRZlABf9DMj+rSSdJgzTIq8JcnIhdjL1U07JdqCwH/DliPLC0Okbd47VIeg25wjg4Iz7jQ77ksLsXLIdX2LOJ4MboAy1IhMWJkKDbqKAAu8R0dBDV2LyjCEYEbA1fJBJXqEdbMyZzAQmPcAWvAD1U1Cmw+McojEKZoEEAAIaz5JZTzCaoYEi11CaPkEguVLWK3K9aJIlQyCeAQxR4abx0WZnceMeQLIiRJImptLqvG8N6rEcgg8C28RCYtAzXkCsPeDOScLu4kzvkqAfm20aflAjo28bkGJHLAIBeEBRw0ZPCQwidUEoiUUd2RAp6SY7DVJLaoiEfwcp6NJtSlBVqkIrT2T//qigF4hTLlTCEUisFUuuctgwdhWyan2IqhvQWfEEOtZgRwTyIilS985M8v1yWwQwwZQHDAHQ9jAyy9wMy9aSe9/OQNEuFThBOpGAYQww+jti4jsPP5OBMu1vElMs7boSF5/jGACrHf9CQo/Q26srK1YSQNWGFKwxCrnBK0OjERrE1MftEu/iSdcOM7PQTngEFTACA3tSLsSTOVeQIgvQ//yvIaFIjatEm6GRIGiUXDn0O1cDOlSCFqOLO7kTC7yzP8NS+L1yU2PhQydqETFi4RHLI3fSONEyiSUgFNGsNyrRMDIMBY9PS5OiGzvTPkQjNRXwOFAsOn9rB8bCcFcmK/za5Qgg9BVWIJU0U0gqNRyLZhKEYRcwLMvVsuKMAqmxpDRRF0ZUoTgAotYCkt9CSphetURpFm6bpjFPQFkGAAoqsy0e4S5HYr+3EVENCsKqatEkDTLoYUgEpUvFMQlMtiJZSz/RsuCyxx5vYhYnDBDcMjJnEUpGoBDqjs+SoBV2wO56kPkUESnXrj8sAy38oOnJMVQV1kStUBY56hMcRP66ITam0mgIjw8W0Rw7VE/lMiGqqFszwO9AYVOJcCVsAyEMlPWAAyIRMyJ+qwf4AGi2JVFwRkmeAjkzAVE3liH7tTiqri/N7l40cL5BcVWjhMmf1MYX9h1Rwt9qyx/UDMv+ulJDd+w42myu6WgkYgEM4/FWgJFYAjYxuHNBkRbuJ8LRMWdOSrBEHgdBHYAV8TMCsoNDAwJGX3RqGWx7PkKGPSKsSRaMZVKNzRddCBciMSdGVCtjrbAW8vM6KfFjzKMAYSTiqLYiq3NM+JcP+QNKDkIVeSzNtwNW58i2PJQG1FQESEIFfjQVuJFmKWESTjY5USNaOEUiDKCw9MdB/+B+SmdmOOgWwtdl4EVXADMyC2cXqvFo2FaRtsIuGmxBy+Q+XRCNp6ph+NFGkJYl1bcV/3FzW6lfSzQSoHYm8xNSsjQ6rNVxFWV2EoFW0ORhjDI+amIReQLMLZAvKxKSVYFv/tQ3euYPbbZTbn7yPhsCOy7gIzFjZo+nbkbAcj2ifNlnHU+iowpW5dcIxDqKn3ylVl91ZQXqEpvkFxEMbb3nMfOSWAArHryiFdS1Odf1H0GVaeSrdfrUGvCRd44Fd2mRYP+GKy/Xfgoi4y+u1CDtNmdgF3To7s53J340CCZZgEtjPkdVG5D3Z54AG5mVe9/0HCXKgD2ZNpaJeJXkEKNiooTsK7/QgP+oghJM91qIGgBKXoArXfzgEngkgogQL+C2FWwDipKXfd9Uy/M0E/UXdgJ1aAvaN1pW5Y2liiWBMBBaEWJgJBJawvPAAv6CwlSCBKEiDMJbgnCTeRTReiaBb//wwD2Ttj4twXwZKHRfLyrDpqPITN52zqo/EkN/BWj2i05XaBGL6xIbEhGWYCWvxnAYdziBe11swoFtY2nQFsNINBdMlCVLg3xSSYtd4YpG0UwLO2F6rWSqNT0yoOL0gqLn6Yg5s5SjIyQsWCZN1iPWILjcuo0n0Gb/FjR4kEgg9C1ZYDTw+t3Lz3qzqEi+zOhFdZgJ6BNEdiSIbUVB45rCA31tw5KTt3NHNBEu2ZG7A5CXeZE4GjcJs2Jql2tpyMDWrWW2gODaDmyP5YhMognk2gVdGjv7cxv+kiIZA3vVYwg5uXtZ0IB3UXnRMR8Gd2eyF4hamtK3Ck5GwUKv7Bf/zNQ4CmQn9kEK2KAVosIV1tYVsHlQt62ZuzoRvVmL+zb1xbse5DN+EXel/WLBeA6gBjhC/kIW4kWdnNAFJgOVFhFs0VoiH8Of1uGXM0OKCCOH+SdVerpH9smOatcUoDmDYMkB5EDpMAJqsJhJbsACP9uiVgIUfJlQAI+lQCIWTFolMTmmYDgxPnmJQ5uTIxOHXiIVRgZuViIKdnufkCAdu5ISgFtfx6WHogJ4ORohRSBqtcdyovDKFrjypflwBSeYuxAgarRFb6GgLsAD7lYiPFumyPmvRTmuOWOvSbWuY2kLylGHURohpaDD1rOn1sGt4Xgl6zsAMNIHk4MmfBuz/kYgMiKCvgJbMvX3exv3ks+kTO55ZQcBW1iuhiN66wfwFzGAqvV2Prt5sr1bXsS4FC9AyUhDtUCAF0qYI0ybd1mYLgnPphV7dyY2wGuGLm5YbkaDnOzDEO9Bt5HgFuO1nDaamU4qQYkLWVdq+xXZdvzWPKxQblZ4dQEaIrTtnLQo6hlRW6NBuCyCG7yYJC7iFICZOkAaw8D5rUiCFACCJVihdcU5vmwuh1RYSFk+IjK0tF5HvLrbt+sSA/E6ObfTv3w5wCGnjo54N3znwBZ2cPlHhmU1w34A/kdDZFTbATWBIVljk58Dw7SYJD29kYAhx1irx8C7xEx+J8MbfGP+K//WmatY+83/4OgSma9CQBb6wa/rmCBMAPh3PSZPlBFTmCFexcN/IDEiCyIJQbPBlF8A0FCWfi2rtECePFEVy2C7sBRqF88DYbA0fBi8XCc72aCCOBvAGc1JABQrA5LM+bTaviiLnxRJqb9h9c0vXiznvizqniCJwM4y7Ax5X4+SVZSAX7vhymlX3NxxT9MqTlBbxSPG1kUh39RHK6oWM9bywgGEghmGwAGFYCa9u5FIAdREH81YgBTRA8ZLu1yxM9afsHZJ86ZRZhU9YheeAdReR81lfCRPAAF6wMF11jWPo537+cSNqkWYK9l4MIb+F6D7JBZpVpKmL6whfD2NYBf94T45lXkgXqfZhyHhiWAliyOyP3nDWCneRJ4VSH4lWOHVzR3eBsZN1l/AOcfe7UKtN+IQxowV9odJeU98IiQWe74srJol7Lyhh2/UMBviH6PMOseWLKHLfkY5EV/SFHxlHj+sl5UuXN4oWcAWMdIVP+ARUWIVMUAbkmHKGPOQTyXi033gOz+wfvgYtawW4j/uSF4mTN2uVH6StanliQQuaR4tE8ns8/YSZH/s3l+3o4HnEZ0aSMESGqUyfjgU+/2+JOPq/q5ECNXSDd1YmNw+FRvLIofpmb41VQAXSR4VP4PrT93rTR4UGtwqyZ8gW4QG0z/iVyAaPX1e3BzBuwIX/uLcGFCAJXDh10b77dL8TvW+Tvq+97cRT5m9+ytqEiaetN796tkD8nl8JDMihI7HP1lhEXeBzPv/xE0OxGomvpWf69FHz426TFMHZcvJjicCRGwkLWhj9TFB90z99VNB6/geIT6g+fVrl6h/ChAoXMmzoUCEmUBKpTfr18CLGjBh58BjGcZhGhBZsRbNlq9S1kCpXsmyZMAAuXK244UIREleonKEykXLp8yfQoEJX8hEkiE9RlUWNMh3qlCGmTYIeZdr0yOqjq1qtftrk9eunpxqjYipbVuzQWGrXqrzjgRevtx7Qauz0qhMnvJw0TuLkl9Mkuk75gJqE9DBiPhqP/xpNKljwIz6PjE5+7HIy06kaM2Ge/AitwYGoXI0uTRoV6k+kT6NGZbnhJomyA79uyfE2D5XDSNqygLI28IwBuNGkaVNjK1I6cwZv7lxw0cOClGY2+nyl1a/Zt171qrUreK/PzZqdfh3jWrYhMbyFK4vXebt5Oel6pfEvp0udzitNnNg8Rowtxd9PpzAlGYAEJrQUU59l5NlUgmwi1ioEoVKhaRdquOEqprkSlnOYUDMRYQo6tAIPK6iYW0jDWDCSSSmZCBw3w9l4XEY4KafTjD36+E90SCWIUXSZ/cgQd+Bt9VVVmWDiZHifGBMieWcd+U96aqmEAS+yvAfXebrMh/+XLnXNB9iVC/FhmH+HLVakYmleJIiBB/5YnXUPQljZU6q1pmGHga5iUKCkDYqaKxs4B8ovskmUpoqRrqDbiyZZEI2caFFgYwABBBFSAMuF0lOmpVoG55BzMtaUnKtkxdWrXnWFFUGrIETQJgR1RSV5B12ZZSxbdtnle/GNyUk19/WFF22lYtKmmxkJeJSpDlWnSqr84ZktQ5xFyKdTmXRoqCuEDnruKrRwgFCggC7qKCjzpOmEpJO22NtIFshYbVCbBuBvJKCOqhOp/Bos1FJCqjQZg9z2+MgnWXGW3SeC2NpQhblaGOIm5MmZSpZbylKNl8VedxdeKd/XiV7NZvr/7FFtapQwtQcnFCFlms3YcJ4YeeuZg04VBGhBtKSraEMtGB0oiMGJ6KicKzgx9dQq8aDvi/ra/BMFXXsdsEYBkLIjc1ubzRKq1FVX6lWccXZxRuDhCndtZJH1ccgheTByyfCdnDKZK7M8icuZQovUzNOeDSRmjWUy47YaZZXz40+hNu4qSGd0oaB0v/Y0KBHJSTXVKnlDTNa2ZLM4Syh07ToFD4TEzdjLsX77RUEiHhLPDs+I1atNYzSQrgIFt8smqXRs5ZUgp6eSB8eUbPJzYgK+V0bLDm4wH88mdsmbQS4+VWQMB00gw0bGvef5QnE+2ipTamQMuoM2R01EoCwT/+eVCjjhv/9Mh7qsrQ53GkEBAimAwA7MrnY8MiAEFxQzxyRubZkKRfCyohILFWQTvvpc8pYnvB+BzHnB0pssYpFC6jlHTHlRWUY6ob3CZWoUbfLdzYREQbONIjOYUdCqGiS5bwmick5JRrnOZQ2V0GJphAIOJholm17ISQFWvKJKVuAi1EWjgBF8SCQQGAQUfApUDhzVFyMooB0GCE+miljExBOSCn1IIJ9oQW28koqobMIZHyuhlvSWJb9Vj2Usy4vgtsc9mUkLTrfb1in40zDJ8GGEDpkc+YzolPp57iIbMJoTNfeYTTQqItRYhpwmoIArsBIMVhsG6lC3rzQ25P8BkQhCJBhoRuXwkpYGnCAbVWXBTGUFjgVRiWgK8qHXfKUsHctUKgB5Qo14KT3J+pshEZmRFyqSX6DwDw0bosOasa460dFkbRrXsPY95GcSQ4sT04UGlQwKlODopFikKBtMlIoMTWjCBFbSEQu46Bqz9KVCatCBB6RgJWKr3dgQerv/LCyIODQRHGVlyYd0aBfwu9BjXNExPWJiF9CMZixABj1ghcmQMMTIC/0STsNdAjEXBZIjcYeZhLGCnYLBU8JUIpWsaAUtyahnE5OhEjQko4n1xKdTfhFFRl2CGr7syBYt4EWJ9mtsXi0YV7fmH7UxqFoQy9VVVgKo1dBCMCP/1U6pogmyTkwzI7xg6XV04VJtwjRll5ip4RKTuKDirk6ZQYpPn2LRYW6GqJNB51DS1URjyC8kxmiiPdtKl8JQo1G/sOpVh3ENAoZVKBQgRXJ6WVqxCpZ3jWFVqcKziUxs1CEtcIWhKtQhseBAOxLaBBVPGs1OpEIlsnjFWnRR1+boVYbzMVNfCLe1b9a0Z3PKqU4TNkm6RAaoP1xJxMinQaPGjxaUFSVGsGBeZGDWaGi5RGw8GxuEekK0BI0GSFbLtVa0YmDM0K/NxhqS1w7IVLk6sJNWsgGDJPFclQXKrLzCxwk5i7jELW5IeIHc5LY0uny9iHMn8dez7S58jfni/2Gj892gwGxbEeInSyY3OcgKZQPJoOyNH5wRDpjXvIPaRrqGIg9V9IJRRgaARFE02hfld7Ug0IEZdKADlYgtOf0NBYAPJuDFTOumJjprxAayEvpxclDoXckqDizhr1QrFRZ2s0o07DzlxodZgNlPDKMr3dJOi38Q7PNrT9ySNfYOtjEm32y9zBLzGmMDG2jBPFXCY2OwN10dauJP6mBkI/8CGzA21QlCfQKBZoMYLsrXSKBRilsAoxTA0J9fAAAMAICiqqCg9SUKAy+JeBYUrCDlI6IioauoAjhQPvaUQ0IB/kI0J5l49k6e7TbHUtux4t2Ti/uc5Yxsmdtpqxauwv/NEjKja2nTWAUe59iVVHwCeV7ZRVT8aCpMvBnDGvGALpxH1zovaxJ4xoieR1xaOPkZgjTTLoMYNN6cHajLLk5sRjIxlewIorZBQUOjHQ1plnBAHZeNZ4dQoQ6VKOMXgiALKaNYljBUS9SizmI2Ti2MS13KJLe4eSlsAYxW7/zWy6A1NWgNilfveteC8PUvkq6KX6jC4kN5sg4kIIFE6ODJGomEvzrVCpnw98rOjra0ZYyzbDd8W2Xd9kO6TaRvV0tjGoPqQz65CmSsQhkgb3B7z4Vbgnzo3Ztwt1eUwS83v9m4KaVrLMp0HUNqjy9/JRxgUazDgv+5z0WKWaAP63D/AgcR4noSr1Qso/ENcAANMeC4Opxav22M5hPbGBrrX48NXG3iGZ0lZWwiIiLQZsrlCRiDyzXSBNLV6zbDsG80LAANW0BD1Tt/Prx+Qcpn/OIZ1n/GN5iRfXKQAx7igAcu4MENCgglylGWsg7WUAYJMCAFSAmCABgwdfTTP9kIUehCH6D/IIwRgbDzWqfQhEzIxFcph7Q9G1VgEtkVGNqJU2vNjO4omoKggsbgSku4QXvRAt3RnTKUmYbsnSvsQru5m7v1wibggMGwzHDZW0ZUA1294HIFB+PdGV9AnsCFlU1RXgR1l3RcXsL5YMI1HM0Axas4Vq5YBhqQHgcs4emx/0QXpJ7qbchqqMbsPcMuPENX/EKESZ9UJV3HyEOauJyoUUECDN8YUAEViGGoNYQY/FMTsNIVXJH/UE29eAMPZAMeGtSlREM0NN88QB/RJZ1EsMIvEKIhkhJnWMYapN/6LaL9CUcAdh2zkQ3YUQVnVFuDNI4PkZ2dNKADIkZ/ANPBQAzfOd1FXBYypGIqglz9jAZuhaBIEYQIIo8pHombraBKxAIMdoLiPQfjOZfjQV7kRZDa0RLNYB6qaN4kqZjCAAXwPNZ4IWHpxQAHdEEBuIQxqIOl6V3rqYZqYCEWyhbudUzogMLBjGEarmFI0IsdNgMxvOPM9YZJNB80AEM99v+crMkGrdFar3WhkbECoxQiQKqCVTyDILiGZUiZIz6icOBCAS7HASLgtFUbtrlYoTFGZHjiJ0bLmyDjwXTIJlxILT6EEGwApVGaBrLioTAYbu1C37kbCtrMLaqgcVkYy8QgcMxgX9Qg4dwgV+Xgal1CEB2cEK4Kz+hgS0gG0LxTbXQBE8ZAF4zAT1wWkJ1LanijCIYj7ZGSIPaC7ZmNGLKEN5wazUGD8jFfq7maWs7arAld0cGL7hUiKDzCXG7C0qkCJoCDsYGA1bFEACTHwHxdRCIgRV5bg3Bi2VmXRi6ITakEoNnMB2rWTwhBC1AaMlAW/YCch4hUmong4rwZceX/IuHd5Hm8goftGcABBuStVjFy1SMYCIII4X8cRfkITVFgm+eJRRfEAFS2gVA0FZCVBirInut9wuxpIa54oUWwjjoupnM+J0K0prWwncEYzZlNZmXSz2WhC26x5C7Yz+1MwmiyIHqMJ07WxiFB3r9dRMANo8E9INoBlTnRBWV0BlM2RwG0wTU+RTK0xofUUbhRn6zsQh1Ap4EeKOtIZ0M8JoJiQQuYZDIow8fpGO7QmwquJ0Y4Qyr4myGdx2n6G1+oJmr+JHwiKF1UDLZZhQQaDCMQyjbswjZsgyucg4nWqI1qWYnmDnXeKEJZqIXlokuF5nV8KIY6hJ6NqEQpKI+6/0RsNo7ErehjDIGUDsGSVqmV4mCOpt2OXikEYYK/cahKVIN42mR8CKOIhaiesWaWcmlIdJcPrdiMTOmUsimd1qnZKOlCdBlS2unW0BuHkudFOIMKEg6g5qSZFmlDEI4MISlCASWfSs5t4mZuNoecEoAPzOmjZqqm7syaLqhRQumm9oiffqlK3CKHuiddLKp68uRqDlynampnfEuwUQWFPYecyqkPEMAR1IAgPMAR0MGl3qqUhiqxFqtY4KlCDCWoGit/jGonfFpGmOaGEheqooWqKiqrMqovIWuddles2ueR4OoREICcMqu5nmtQOGpHFgm6Voufemm1/oO0mmqZmv9ptsZrgr6qnT6ceMmJsFJpuwaswHobKPLOlg5sj/gbvBaqQ8QCJ/jphnrood6rmhZsscbmYYGLv5Yrwnasx+KUxXJbl33sjyisDEErRizDl5LqkJopqrpsxXJkqErFqjQOyd4szsoJMAXJBGFezETGOC0r6xAB0TonoRIqvcGrDD3roi6toq5qy7osm0gt1cZsiRErESlmzm4t157Hzh7OfwTtnvoS0ZYtESzmJHip2ornhrZt2qbts4rn07aqL1Kt3RqGMK6J1Y4tnyLIpHYt4AauWHytTTlcD8ZMlpVtFuRAFpStJxLO2qrnygpj01IuoqLn3UrtmuQtvi4Otwr/LuiGbugSLtjOJjmlkdkqLgHkwBRQAB90wB5IQRY4QuoWbVi9LeRtKO5O7tNW7iScZ92IaOZqbueSmL6KLvImL9cSmn8sljnxbRrRLhFkARdIL9qubeQO79MSyLVqL+StCfS+p8wqL/mW7/L+4MFNnpBorX6l7nMK44bSm+6qavcCo4J0r8turtRu29War//+LwB7ou0GMAEXsAEfMAInsAIvMAM3sAM/MARHsARPMAVXsAVfMAZnsAZvMAd3sAd/MAiHsAiPMAmXsAmfMAqnsAqvMAu3sAu/MAzHsAzPMA3XsA3fMA7nsA7vMA/3sA//MBAHsRAPMREXsREfMRInprESLzETN7ETPzEUR7EUTzEVV7EVXzEWZ7EWbzEXd7EXfzEYh7EYjzEZl7EZnzEap7EarzEbt7EbvzEcx7EczzEd17Ed3zEe57Ee7zEf97Ef/zEgB7IgDzIhF7IhHzIiJ7IiLzIjN7IjPzIkR7IkTzIlV7IlXzImZ7ImbzInd7InfzIoh7IojzIpl7IpnzIqp7IqrzIrt7IrvzIsx7IszzIt1/IVBwQAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhgvBRIh8opmgiioIIMiJNKZ6o4oo0uhXjjDjy8SJtJbbYY445tjjjjiXJiKORR6ooo1hANumkjkRS9AgfjwRlBghYLhRJALjg0sqXrYQippjByMSiiUKueGKPbJ75JFCpdDLJJJ1wQuednMiJp55zpuKSL68EKugrsBRKKKGFJgqLLYq+UgtP1IzCByZ8zFkppZZWekmlKILi1JpPuhmqqKNkdeOoTyIJpU+oqrhpq7DG/2piSqrKauutOAaFZos+YXnlrwlt2aWXpBRb7JiZZNJKS4/8uKuQztJ45o+1DrkTnXraqe0kdnbi7bff0skJJyz5AssxhyZaCyzr1uIuu/CuG++hEOS06SScpjgnvvhWyi+Kmyp1Y7W4BjmrVAQX3KSLOyns8MMnSfrwxLYClaYgVerkKwhlCMCAFViCYIZBHUQSSRBBoKAyChS0TEEAFHATwEpUokmjj9CqqXPO0Z7K6SSX4ORtt3fKabSc2o47LrfcdsLSoYMKWoujVLvbLtWwINpuToIAbem//mY6Y4mYGCVjwhTjKLFTKEqcNqo4vS13q0WiPXfBtfpELcY5bf8MghUSdFCDBFeKnKVADKTQQQcPNH4yyiu7TEEkKOHs481qWs6m5Tb3rGK/J9o0p7ejk240tuB+mye35aj0bqBZa+0ou1bX4ou7wtRiS7vtsnsTAPzuC2S/OFJKFKp2U8wwUrcmH6tNd0ffZJHSV6+i3ptnvJPhVugQMkKRxBwAN9y0QqyxoaCSSSikmLTJ5p1Di7OJk7SISbOP3H+5tD4nWVPR+wKgtupEwDwZkBOvWMnUssZAdh2jdrS7Xe0guC5hsKte//vZv/61qXvlC0XGC0ryQGW9tq1qKCWE1fLMlMLqlaSFLuxJ/FaoMcOJTCEoGB83zkeKMYUiWet7Ifz/MLYrEz1CexRJksFmsi8+lQ51qQuXt1hSDNhprVDump3VJDhB3blLghaAXvCCNyN8UYoPoyAeiiwmqieVCiNjC9UbdZWqFMGxjdNjIQzv9sI67jFUqsLe5n7iK4uwz4fLEgnGLje/HoHkjKIC3QldEkA5xeInWWSXoyhSgdzlzmo10SAfgraQV7FoEnpD0SmQhCSRjEpIQLGZk0ACt5jkiic56qO1dJLLnkzJcljpoZjW176QEJFzjiwJJkiIovoJwk8vqSQqf1IMTa6rGBXxhTBudzth4IEmXuMUABqixknGLXP84xVK4qg2Gb7phW7DESjMqZJbNsyeitzlPa8n/0PNYeWQ61OWMZvFuWapJE1qrN8mollJoFRzgbaziC8kOFFhgPNemyIXQ/B5k1M8a2c0rGetQsfLWabkSZ5yCUfPqc+QrJSldnQnzpBIFWEGtJge0Ry0VAokQZStJQB0Gian1q4KWKQCE02qL4xqJjKSciGT4idOeNaiKa1yJk4KKVbVtsaWmLKXLHkp9MTaEbCWVKo70RxNp2LTH+KUIzqtqi1xtCmhriSoQOkiU7Op1NthNYCjbEi+SpQTaRlJqzBRIj0Tm8eXNGmaNGspTGM6EiRB9qyUbdjmEAuVtgaxIzqdEozc1K+WdMtoQOHiFzHS14nK5Gv4GudGIbnYl/+wwqOZ81FJo0XY0ZqVsb9dp2RvEtyPtNKdaNWJToM5zPUlciMYI+jlbmIkfHF2JFC0a09UW4u9VsQf0kBqUjEYTU5dAmiCVaNNcNsmQcxxn2er7UGBRNzi6jKzhSUrR/jHquHe5Jc4+2dzM/FWjGRCulWV70u6dqLSquS0U6TmBH2REfEm9VEwASx6GfJVBauEoOi8rk0kxcqYjDS/+nWpf0OZYo3wF7n4Lez81iqVAYeiTBtBEUEJWpFNYO7HHoYq8fC10JRk16G1W2pGfrDUiSLVuywRnqbSm6KUymSVayrRKGi8z4EBd8UbTRhJK+K/k4J5q2d2cZr1GOO4cU7/wM19LkYEkQkfHVHECNkEpXrmuRZdFiKpsC7xVBLF1FqtGK7NCAQqwGjxVoGhX3uqQkax54PFBMvye29GZGlfitRvZ0E2ZqcV4rwWI6TDXRVuciebalca6addbrVOEEwlOAc0FNC1c28h8r5nzW9gOqvfRDDx6aiGeiOF/gkXnbyRRjM60UAV3iSsrJCoJtPEH8WzYONLrTaO2SLTWlFLRo0QNCpsIvRVdZvHumY4vhrGsuYa/BBs5yPiz974ji6+H3FgfuN6IlzCBfli9rKXBeDgCJfZ+ALQCmuACX2e/aFAM0JvbRdks1RNE7B79OeGQNK6KUm2T25XDNspWSNV/1h0eJFK3rueN3gNuUSJ5mlxkhRREFe1yMX6RzdwMzOyN5KIzs4dEXkee9PtHoi54/nHo5PZSEI3WLhLLStBggrEcQ3tvvd94Ex8IiLlI4U1vER2XIzdGjssX/nAxHZjHcuHpEiWxDOhEcsZ9CG9ll/nYsRI/om76B/suEhEvt2JmtwfHFk0BJpMYaC+vFLUTojM+UBzE7t3fj53k8ZltWuJ5K2eplb65nE1T6f/g9xlTfrpmd70eH/kxQ5RFdXThr0ZZl2t+t4615MFkVaQgu1fIrv5umQ+4D8cfT5E1twLTJHlPmTni5Ql9D13poh8LWwnITxPKlALRE/0mxtxQP8FFv1sKKPk5fySdEIEsanSw2SVuSUzewGpQtMLBI9mVj2nlTQtVL/TIelWEkwHEebWekFnc/pngKGHbRh3ezOVe7pnb133EMEQCr73e79nfMBXLL53gW+XfD80d8nCDRmxSCVyRHjHIu3FItX2JEUWe83EKdmXOkBRAd73fR2RcuP3ZDMQZeflL5FXbvNUeS7BCoxUIlAwEe61MPvHc6mCbmNTc5tGQg/hd6LSgjlSekeHejmWdAp4JPflegnxharnWA54hlUVgf3WdVx2EG7HgRhoLF8Shx7odiCofED0WRdxYJhXhb8kS9bndyHkEJNwRvwyg+BSg0mFVIjXEYr/12jx4INfE4QHUXqbIoXGhTOrlIRC1yb8Q2Ja5lHQIjF203lVyH8nwYUDUS0RcSKsR4ALiBEDCICwwnoPg1smwT+wBlXs1IvSoyuggoZpSG/3hm9s+BDH8oZyiIEdqIw9JEzC5EN5yHsl+IDP1221NhH9AknLBIv8QmwmoX07YWFIBX4c8QMQQH4r53L9Mm0xBzCT4hL0ZmkQwTOYc3enmFVRh4rUc4CC9WOalo+xiFspEpC0lHRf5X934yyYmHkxQot4A2oVMxTEuEjSVWfNwobJgjGhwG9y129HdGDICI3sk3YwY5LcEDMK1wrjw5Jq13CtwA3B4HuowA3MZxEI/9aGBiGRF2GInGKKCrFBcxKOcfItQAEBNzh+HzED6fhsvqAHKoF+/iJYl3BeQIkSRphgOokQ3SYko3CVgIdHYLl+sahzYwOAgXQRfncKArluHjGLHhdP6sc2UAeRq7YY/BaSW0kQ0VgsuCBDCHaNjKRmxNM1DzFGfABNIwEucXKU3sdoLccReEB+SNUMKhFOcyJbUNVBY0kSHiVdbFl0jXSCe1mPI+V0OBKaI3GWdumWEWGLbRlYCHiX5eY2kjIVsLdRrPkYW/cQIEiCO1FxDrFMfVh3H3Rs9PMvJRELNPgT/tBkjNaDH6EHTclo4WVkj7dhC8F+oPBpLPEImHYKOf/3EFgWYgeZTmFJm3AVem20X8clWAR5m7PpmgWxdPSJFO+pm2UIGHSGb74Jd3+ZVnaHljjzgiU4I4O4EIEmPLsYEp2gC4nonNBZAea4EEiABAcAEUzZaNBmEhpGiTs5hJ2pSDn5mie4P6VZEfOnnuV2Iwa5X6HHWxxBW9emn+YWhshpQmK4FLtpo/dZGL3pED20PmISoLNmZ8fmT6CVm0LmL3ygXSDxoN7CnECBBxNaoQnxBE+ABHCgBQ/hAJSZVCjxoQ0xhJRnfxihCjiTCXzACib6a7kYTyNan2Xpef7IENGSU0yKhSkylx6xgPa5o0oho/+4n38RpA0xTGNipPL/FmAN4WPA9Kcz0gsJQWxj9I2C1xFSypyX5JzlVwHSqRBIsKVwcABagA8y4BAbymjN4AuRKRJewy8gWhAyN21zmoktskqqGXvzWDmqeH/8eJ4/CqzVJ6luMoavApurqSIvehAFOaxFwZCh5neRgagMEVBEepM1YYLqhKcD+qcat0KZ0o7NtEFoChFT2glU+hNW+mSgyhAXWqpaAASomqoNwaGGdxKxOpV4KnOTpxJQAJqYiHMzJlLthkfn2hD5yad/V1b5STySopCCqmYsSqeGGkvS8nx1eqj79hBANCbaShPcmqKak7CVOi3buCLkClv/0qAfoa4w26k+gQfjl44Q/wCVCwEHpWoE+PAGNiADQNsQamCz43edJbGvk6CZ1SaiJquEp4A/TxsR5ZmrK8FK8sV3v6qEB9ujMHoqMsJ0tti0PtqsO7mxGLskMHinjWGtCzF3YhKyMoE/Jhh736qn1HJGPrlBxGapYssQMauuQLEFDjC4W7AFSIAQQAu09GoDb4APB1ABRvCziZu4CPEEhTu4g/sEJSGV2qkQZjpPB2WRgsCJdOsjq6QKYWVYNHQ2fXarT1exSme2PoqwQOI2GuVKzBqbfcs1GZu2KlitHesQ08g+Aiq3FudrKkY2LLJnZqRBGqaYg8epsSCzPaEGeqAHP/ADauAADKEFWmAEQP/QuJE7uQwBB9l7vXowA49GEkhLDWU6KZcACg15EeDZLKzACikqEJcnPy6RluHGhLvbosU6uwFMELdiSqMwq13bNlUIl1CheRqrtoyxbzU3jQQWnPRWuroFEqlAP8pbP5jCLz4lPJ0AvSORCrqgC9NLvTzxnM4WqgkRr99rA5Jrrw1RBYxXC9vEvgGECUpLliJKK2qKMadAdw8BYFOSv7R0WFbYUzVqrLB7f2eTqVP4JB4Vn5visi4lMfLZEKPgwE9BqHiKOdWaex47vBisawS6wedJKct0RvbTNXTSEigcCypcDUDhD58KwwgRr6Y6rzb8EBUgDRdmUdgVQO6Ip9P/Rnnzq3NG+Aj4CxFQUEQo6Fj1dzYkIa2+27B6CiQEKYNhFbEBA4AdNhWHZXH2WMb2VsHJ4pH/lhN8mGAabD+K5FP0Uyk+ZcItoa52PL1VulSNxscHgQSGq7OmOhE/IA2IZjvugl3ol7TvG8QnoQqngL+PoKam6SNfOVet8m2ZvDNoGSNUnBGiGEkFTGajlM4PUZXweM7bqjMa6yyqfGdnnJd6iBM5GWp2p8TDNidaHBMrHAvVgMc/gZTuiqXDvAVbeqEZOhHixcywYJkhEasy98MIIaLyWzn4a4SqwAwPAQVPa2cz4TyNfBHvQy3hPMC0dIjE1UETa8Dt7KdMEW7x/1wjkHFn9Cy8IHnPN/EJxhtq0kUlJa0UAS3QVVoMB80QlqvQWnq4FFFyXAQLsPpyFR3NgpDRJwHJG63EgjDEsMRm/OfN8/UjDjElZ7KrW4FGm9LFujkKpmTKgAiDdcmbFpm/eZmXr9yobOytjtoVAS0LBO0TegzMFKrUhFu4mksROGw1FtDMIEHRggAMVg0KaC0SAasKkHzN9Qia/LyswZpYKJ22JTLOVZHOEXuKX4Wb8CzXKr22alzW+5bX+Bypj2qNfh3Qgd0T/oDUwIzQBvEE2+sAgrsFFtEMEPQKnvDYQDNKgmDRlVg/8qvAHZELma0KmUC6DGG8fBNKXy2yq/+tsAzWKV6Rzq9ShS790kcxdazNyY0xU3ZtjEasXDtWc0Ld11uxwrIA2Hl8pUqtBtsb3BdhNfCSQB/hNVns3AaB0ZVtTKqA2dh8xHcmCLcFF0N3jcs71MyTzugtEOzsNqYsP6hMxjf92g2xdfHNNYHph/tz29Ob33mMaE/2qr+tvf69vRdhg7ujLgX+g5cAjgwBCpggvzJnEh9wCg2O2UrMh/UbFxVehZvXFQvIzhoO12xS02K9GLZd4lzHE84H3peDj1nR4rEgC7yw39Dp2wXxBNibvdqLEe+yLoSy4/XT4wheENH9xCGRCblw5KqA3QuRC0a+SGR7FiCVj2tC2lH/MSMy7azwyNZP8VEWniZlXFUVvOVpRWu8ZjkJehVjPuZkXoO8XY4Ngb4/gL0YAQHvEjtS3RHThi90rrCgcOcmwefXnQsfbW/WzOQXI4WaR49XkS+j/I8Ru+HRStt8LemQkeXZbemz9ixcjXta4en5XeY/YYNIzXI3XAXoi7MXkQ7ygkXvwOo9Pko+LFh3Lt0boed8DhGZndlzEV/1KC0OhhXw2Lm8uNbEfjzPIpj23d4kvuz4JttTxa0RoT9oskx8YKBUUQ35Pe0vXgzvYIMybhAzoL4zoAfrixEN9AqlsOobMW2U8up4eucL/hGqsOd9fuLXauQ5zeS9+3xaqCaI/z7TLr3oBiEpbg2tRLE3Fgdge+3vlP58zM5Lb0aAo/k+/+wUDE/mn17txfD07+ALjbgQFV/1wsxJjMJAseDxGQE0XSPyUHXuJfEBUJALZn/yD0Hd+KumnR0WezPzBNFtmDB5Cp/oLl3nZXveVL4rs9ytjqGkCjv0ev3zgnXSmg7mUBELvMD01C7YT49oxYDmBQEBeMCUTLkRCwQLCFQKhpwRxOavhQjrsk4SGmD2pm/rDtHg93vNbQ8W0+K6Biy/8vNpGC5Dl5DzNk+rrs7ACMO/ZY28yW7sC2HiPuHz84txCH9nrhAVir/4HtD4uv34vhD5DWGzNssRDPQKCETgnv/ffpWC90on9iTxAaefCx/gsZjNCqrgpnTRbUqIcUoC9yhUlZIC/gSx+xlF5YS/fo0EEP8EDiRY0OBBhAkVLmTY0OFDiAkfCaJI8eEjjBkzReTYESHFiRMFdeQjiI/IiikFbfLY0iXEWLxk8fLA6+XNiBWK7Szmy19DfxAqQCCKc6CvV7A4vVoKzOgkQZf4XMJ0qaGgU6AEaTW68MOHXGFz5bkIJdMjVSO7rmXbVqDJinz4dNwEF1PJuHLlsnTb1+HUS1KtOhQ8dapfxBBVqr2asmRiyJEjL76YEeNGyS9DCgrZsiKmxSVLQs0ceaasmh5K39S501exnwwrzB5agS3/rFJMX5Xi9BTUJKmYADTko9V4ZGZfw36AqEoVRihQVk9HHNfkXI+LHYuW+4h6Xz4AAA8mHvjSqPDfM1N2aP2xevjxDbJvaPmy/IcnU3r3CFouxbpUGg1A/F7iRSaabCoQqFpcK8Y22Wibra3cmOLkQpyKuwS4SUAhzjiLIPtKOWYe0sC5R1h5bkEW84NLr5a0oug/0V78r8MWOxJslMDyGy+9HNdajD+G3GMsSCTdoo8h+x7BLEmCMKpook9esm5Gk+6i6K6SMIFyIZlSU+1Lgt7ZqRYzIVyoAl8kbCsc3izkJJ2bipsEOEw8ZKg4rEJMbMSvNHgoF+eei45MKLGc/5HI7BStcUapJjmlOEQRMu8SULBrSLDzxIMKAABAuUQ8UEAZxdSoojpllD61uoSiV6W6Di/4hmwPS9EewUvX/fAySVe8unuURtEqrVWlyix7ElGQUsrwM7v4uAs0qEATZBJjBzpQzGzNPPPBhtgU1xe3lLrwwuFe6vBOqrAtEpRTtjrSrw80qPerQQtFK5dsg3yxomdt9O9FqfRipd9/LgXA3YYAuDQwue7KVLBJ+Ki4Yr3kuhgwHnnkAz29QP5uyYVC81U77WpU+V/HTEK4NJIVanJZMjHZjDNNX9rkP9B67nLGaq/txViauDXW21oaVFMhX5p22q1aojn3QljUDf+OqnQX4jNePRErQQOw7RXUIVUyQREKVV5mcSKVGbXy30cFLK5rMsfb0Efz7B5P1FMu6fvv8/z2G1694P53UupiTqhlXG0sPG7HM+bucT/Vrs6xizjTqF/OBFwLk7p+njZiaaXF5HREi/ZgiTErraCdYpI+ZumEnH663Kk5KSUcl9a1k+7F4ZUXsq/DBvuhQgtlzvICcYar8pt2Nimrk63LVC5EzROPPIY4zbsw8A0Lf3zDJKecOpRcfkhRlNsPzfDJJWc+McURCmlzzuOSsq1NoBpw9NNBZRKn40MqoFQ0XixhCdmKXeySRjuE9OQ1TfMLb86Vit545mITIw4r5AX/PLckIQl5SIIGSIi85KVtfgVaGWf4h5dXyU1aWxkNlCbhMMFABAA8ghj5fCg+IBZsVrKqEXWqpxj3JTFl8DMf9FYoJGQ55H6aQ1iApuREo6RiRnXR0rQG2DPUBUl1GFjgQxoAAxHAoAHUKQbsktaNYjSkJz2pBbn6UgvdTW0ZntlQhyjFEFA8gmvzcosdREjCJJQAhcl7In5sVj1CGmUXMcSSVlSGMYa16IaBAQ5ESrEhHHpvKheLSsVOp6qSSGUUqwxcceRCPWdNx1brY58SlbgyygGskWxpGS3v57ZKNWtKwGSLtbaEiQGaToDSypEHnLkEMkKkEmiEAQwQMB0H/yatFhA8CB19UUfElGNqOMrOnfxIjYbIiGvES4IhRZiBRRZql/Kpi0iClZgZPq9GkyLc3VgEHE5yzyGi+o3E5iaqS5XqUjUSoEpOKRcZvWc1s8zcZizaOVs2rnAsk+g8ceI5KWqOii/TzxVdiE9BTAuZdyLgnSzGImeuLpoOOWMlbAoDGkxnCdpMWhwZErtvJi0xU7tEJ7IWkVKuC4QHEYQHj5OYDJRAqlLdx0NCgbZMmMWj8encyfjAl+pIxZ7EKpVcDFigTY4qZyziQ1Z0OdEo5ghyWzUKSBuzGZplC6NT6ihiNgFGZKbUdCstEGpWB00z0qABDaCBYrEpu3Zss/8hdeRpYix0CU4AoBMZRCq7rrVUgxQnXk2FjBL4EdXTQiQXZnFOXnEy2pYFq6TsI9bjMmYjw0VyMow7KWT8Z0mTbNCSaNVeJlmUKYpwRZZxbVEt6fpRzN1KShhh3s2u6KXIWOuUyfzi6bALnwQlEAMPQUADEHDexWLzFceoBXt9uhCeCnWom53EhYzrkKrc6TcC/cggQcsWJewjA/sIgWpTyBbYGgm3ufQVLrnzvCRSh5IqoW52Y4jcgvEpKvK5VCeDNCmKIG466dOtfP4Ty+e6pH5M7VxnmDdbnH2CM1WSDDKp5V1pTeKv8YkpNMfrkPNeQBSiOC822XsM9r5jsvH/hQxvMFtfTnSCI3eByob+SxA+aeVgkTGAHwwQEUIxci26YlsSg1VLjc7qxLxd1MiMWRGopDQzBZVLhqsiZ/h0+KgsMolWRLyaI/rLMcRMMRLj4ssprTATLa7IJibi6MwgM8fe9dnQvkNGDGDABCZwSASGHIEvROAGF4jAaoqB5GOUAxZKZghPYVGLyMQCylCeR0SmYtASE0RGMoJSmFE0ZpRB0kiQw9Vtia0dsK4mkCh5Mxb7kopMWTLacvkFfzOz0D0v6MLqW42UKuJa+UDY2YW+1aGlm+gn6ofEn8nMLkpHQBsj8zsiIIEI7A2DCxgkAvvm976/cIMz8IEQogh1/7/77RdN1EOBxVhCbOBbi1fU4tWSAQAn6tvHzkpLKlceCIi2Ipkd7IAjYpFnV4R9S3ELCH4ZXSugJwJYzlxiIpn5BUBdKSoNfedh2WahvDBxCvRdEdxcbTChyd0Yc98V3U+kcItBo6uhsyUVm9CiF71LnU0XoQhpSEND9k3wL7DhC18Qxb5L8w5tHuMV71VIxF898cgAw76cCAxnr9LHinFcIOrcMGRC/nfVMqNQUeeIyU5+JcSbrH0Nfh5XU5pSYwbo6TV+VagAU6r7Rqa4PMdPlgUxCvSJZOZBotFbj47U6CodJB79arMe/eZH0Dgx3Q3gF6eTwMOWsSEIEPK/L/9wTVMj+RXDZ3tCYJGUiMNaMsCxOCeqohhzRjudWEGLCv3yd1MYYACAbwgJNVDCsdVVOx48RYoy0lRGWxdlj3C0zRzt6JU4itvwYf+WFmOzx0cmlQidm7UTMyrtQZLkGp4RuyIBXJnT6wi7YpL0MTrL+YS6qKcteYRmW4nE2IV4SyZMOKvMGKMf270gQy8jY6/hO4aGOD4UNMHMuKHm86eGyK+pwIqGMJTo4Be3+LuQGwA/CABT2D7uU4ipKgERgqJFAbqJ8qoFwb+9MikCQYwb8iNMWZfVAMDA4Dz5YAXPC71mOcDSS8DCS70iacAU6xzQeTyb0S7nkb22kJZUWCn/ZOLAyKAJBcq0xFosO5wOiFO7cniFbjhB5IMFFZSMUrgTiyNE/LKYssq1jjPAxMDBkIOIDyiUsCDCijDC0oiblnM8AIEWNPwFivgFv4i2SHGV0qDCURHAD1LEvpiu0ZMrBPRCQ5sRWtoPcjslK+LEl+uZZOuKToA3ZNoEZ+jAoqFDmrIpGrCpSlCviCtBPxy+4ZvCi7sTKyyIqJAY0mCIBNM7o/hBh1gtVUAb64OulPA/xEiw+VsQZrO/nlmJdQwjtpCWiYkKULC7/8Mhh4kIYDDFHnIYl8IUf9yQDbEYgTQlVRnAAVSubhM9QQgFiPgE0Tu/i1q39xkW2foXWISI/zPLRISApNNzyPgzQ8g7JZ/ZhF28CdqzsQ6sCWjSPYaggWp6SRjAw/VyxkBsO2dMiumwuA0pxKvIu41rCFapCG1Uj7BoLRsUP1oEtAVsEVd4uZSiwMdrujN0hbUAjonZr2sDlSr0JFDaOYDSSoDCFIIKlVLJirK8ylcyyKFkC1ZcyMrQnIvKqMUDiQYroov8CzAsGRKDxaczHXYUSRxbx10wiq+Kt1TQyLYYI5ZcCDSyt3ubjm6YSWZkiJvEydXokJ0MDHQqGaq4uemrRChRBV8Lx5ugqMwwR1WkJ2mBSvuDFi76Kz4YzI9SK1HxMMgYlU+6R4eQB60MpYcxD4L6zf/ACM5SKU63kpHkAo3Qux+IYMUmacAllEsZuksXuadyWzpY/IQ34yLA9K6PzBBKGyDJSBBoah2GsLd6qzcRgMxl3MOaTIjKrJrpYJf6er6SESDpK5KU2DIkGU3CQz3mkgztMJZ6shanrAhPBIU8iQoHzA9/LKto0DxQcZhSeIhbWBh9/E3iBM5/JKji/FB5GcBT4M/SsI/UFIiziMjz24/olM68OFHqrMhZxM67lLEyjMCQpLQyFAQ17AhM6IQ2HKDMS0wxWUyFoDcSSNIknQ61u8n3RIjju0nquJCAqi/O7LOK+cx1ShJfM4sSQUrQhKu8RJRf+KtMEEmMOkOovDr/l3iV3wiVIWULe7yECiUMewyPUOFQ4USoKjROj5OYVKEIDwLF6UjR/XGIRbOok3jIpnNRw6NOvLRL4qAwSDWIv+pOHfVLd+SIXvCuLwrGxEiQZ3oIEYgCEogCVCUBPIyF4WNV5VuIynyF7/gNgLqTK3Wl1BRK0uLSMDOLoyzNFfMLEkNMRKHAiUDOFgORV/kujhgVzASFioMMh5lQcjSIzNIe4XxWTKkKBS3OqLCYPClOf/wbrCgObBgZJ8kIhmyIFMWotoRLFvW2K0KJsVoUGI3RGekrhTDNSiUIkgSsL3q8SxUE2eQIlqI0yBBVmngIEkiDKHBYVGVSVnXGV7XJ/6VYCvXQSXNi1tC6nt8g1kVsFShhBl9jBekAU1gpwDF9mU3wIMgLCTBCzs002A4JTmkFgFLA2WotiMyaVlEht8tQV0SdrnHr1+l4xUlNSqM9CFcQWMgzw/5hJo5wBh2dBPN0i5rYFgVpiIbVOq2LAiZ1RldtiOG7WFn9jlTgkHUhR1fyTP38ICgBi0JhhQaNRQg7GWBxsCY6iRk1vRV6BoOktK2YlFMoScL4RzpNDJzF2Xx8CGrVSnI7C0MlhaEVvf9cWv2zyOtcPcxNCBtNqUlY05DsCB2jNMNdC5qYiZpg2CIwAa0zAbBdDXZwxj0824VYirK1XSOiVf1anILJFP/QA6RKXMvvEM1HMIt71ZrtwBLYKj0H06eixbKl3CWtwIRfsBkQIUWDDRWH+Q3FzVmdfYhSEJXeBNp0PYtgqFzm7Fz4QNo9oVT2VYhdaD8z/KJJgMOGcIaTTIzTyNqHiIKsy7rpmN2brNiEwF3dgA9gMKd+3Mjf5QNCLZnkAgUSDZLWgoLj7Qo2c9SUCSnrKLSaU9BUNA78ZQh5yJNRSYVpxImcbeE6bZh8BJXMMl/JfYT0ZVeITN74XQv3Vd4A3WGm4qIcTQVLe4jTudQ4NYrTmImtZQgA3jQoDlsnbQgEZor4YGB24di3EI8YBFmBgK2s+JJTSB5LvAle0Q7rwqX/3NKf+gjWXdqETDlWn5vZgeKQZdjZm2jh8HUIW5hQUHnh5wqF87VhhxBk+wBiI9LcpEUxRE4IDbQxHYuIVEjbvyrYvpAFTGbih2hdE9C0TZNimqTim6RHCbOYi9HifyifWEE6eCFe6giz6iNNFSuzY+NgfT0IjkzA4lxQaCVYiOAEhQIFp0CMUijmUgAGQF4IP/5jGk5Xym0IQ7aMRlZKSX3fH57mgjhD0D3iiOjUDYSMTE6QTfZkDLgDTluNJpVShrgQ3SDlnORddjGI64nBMk6IthrALykbFWEFFVmLQKrlJeKtM2vja06xv4Lj7I2IebgEYNijxDBmY3ZcYPDj/2Teqho+i2dmiGi+D2yWjB7eVzfG5l4YLCFFZfyQhVjA5NV1iCLINJc+59JIZ2ekYrN15/k05Twhp4EQIjdd5I+LW7NRBX7W4cwdaGtm5AQcBdAwjjxBEogu5ofghInOWVC4hcjNhBpuhULWCCfpaI9WZP08Ga9eiIP9RSRB6XAeZ5cuZyat4ic9iJq26flUUHNaK1X+aR/2Wws2P7olveuAC5+O3ufSFWrIkzyx5AUBAFuA6IewhYle3Ir2KKyW3EzQamjm6rod6zoBa+UVa81GiGngTsgLErTO5Ifo5LW+g7ae4nXOnQKh1bvoTCy7nmVd5Hghk+d4Drr91ebRp//MXjdI7dZSEYQV/g5jvgWodgipXlxgsOpCm2wnqeytDtrL/eyW+Gh7hl7rRohL9dQgSemUxuSHuAMy8gBMmw5nRGCanpoFMSVT5h4NsZjPQzoChBIMplu6rWf8kD+CRmovpIZSCdckVo9iRm7kFl9gmGqcJbdQmGystgaHIAWuru7t5gjs3sheqnCD0E7v2rEWSQVMDu/TXh0S/8DMyF3cXe9zWZCPrZiAHIgqQ0QvTmVdJRMNQAtBeI7MpmYsCWyibiQ4DlcoMGn4KObFvgVbEN9jZtwkf24HzwRcKOQUlVwNX8N8hdFcrvKBmF8dzZFY+HIRdwgTWJ2iMVLIaNX/i5WydZYTuaYO33EpPdGQirnt7qlxMsEI/BaEk10Q/mYSFq3UXfhQBc2RUlhsW0Dyxj7mYlZsBp/sBo9yaMbq89VyHuZshchySv8H0PFOLwdz8RZzBFod9H6FTrCQWFBxDPmngfTeVEYuPllkhEwUvk6L5vLt/tZrWNzlQCJ0Wzj0Xm9sZC5mYGjyFGtwYw8FSNdoSafyTP+oLtxcwc4WV9iEVaCOTWdTFkkFME/ph8CAmlDdJpYMUpcT3T1g12YRarATUx4Jl+qzGZ+wH1+N52iqFIn3vnCut/Xv6UCGVejRGrvebs0RW7CAXi8FC3iIaAh2Iyc3UsiEY+cGKYdu/wpv9n19dh9nHldwyE84U/ZjP1lqQ+/Shg/fdlno9m/339Vgis2Ksre21qlR8+My5ffmkhexbXsv0XpPC/0+Fs9eCOCeDlTYhExwyE34BKOv9tII8lL5hRKOj4Hv9YF/CGh4amJ/LlIIBazHeohviIaXeIqvkwerTn2HkvrLCC4KCZL08Mz41w4feU/vdgTRZHQu9VLH2NY+lwEfGZfCGMk5R0sp6BwRJA8SibURt1uP9pvod6OHQMZf/I3f+NVA6HAd5gUZeIIn+IcgeEUvdHJrhazH+gCIcAfv6q93iQvH5UBLEod0kpWQEvhr/fejwKJH7MRgewqk/fjQ9rd3CP8MiPuZQG+6J/U2H4jcgXkWgUGX6vsZT/07FwnnuPlK73mQBnyXUPxNQIWhd3zt135UoMq1BwWEBv8WsXxbGIaqX4hDL4VoKOaDL7RcyPqr33qG6HoHL33TnxUYZRno94vVBwhBjx4J2jTwIEKDmxYu/PTvIcSIEidSrBhxEyaMGi1y7OixY6pYIkV+fLhEFkqUvEqy/KiLUydOLzl95GTzZsucOiWCmjSJD9CgQAXx+SjoKFFBO5cyhXiU4FFWTadO5EPU6tGPUJEqpRrxU6hNn8R+Kmv27CdUaF2F8spyEyhMoKjFdWvXlgULtobZYmkBmC3ApfraLWyXFOJQiLn/lSQVKhNkyIYnU648VahVlkOxdrXMdCCmgQJHIxxosOAjhgY9T9SYMSNrnSFHxmJ5MlbKlbElzoypS1fNmzZ375wEis9PzEM/cs5K3OsppI/4ZHre0Wpz5lwFFkYFGS34smrTkh9vHe4vUHFBWf9ILK+FYRb8loJmqxSw+e3bI3aMmEJJrWTyGGRt7XcggppdlVlJmyGVYEcGEUQQJgU9pZBpB43FEDLPMfTaJhBSlMpsJJXkAUq4yaKbdS918mInwHkkHCeTiMjRJckpB5R2SBV1I0uqRDdaZyIeNZRzHW2XpFfjnUUWeVGm9YwrqFSZljHP/bLJL5gAAxeQEVlA/8x7wxDDki22QHNLmtCEaVkr/ZGCCoAftRIKgZK9uWd72C3XIHYP8vkQaQKJJqFoj3zS4T8KNfSIh65tMg2fIVla24myVCMLbiw+5yKMnQQXU42DRnTcjjx6xNl0pnLEFSvRAXmkdFpJx51dip41Hq9qobJKlv+oVaWvWmKSHiibzMOnmc2eWVI0aqZZSjSu2hUnYnHW6dGdeRpoLbiF+cmgdtmZSmRoGWWCSVoVrdIQWZG6NiiJJJr4EYrV4BZLNfvFEuqLNb1ok43WXrKgcj0eGe5ErEyI1Ck3+iloR1tBVRiUZqGy8SqMTtRPWqt8IvJzmLAyl1yDDrMyy35Ja/+ffgwz1QrNpLQSzLYddRvZtzL7vFOg5K7aXJF7chUaKiWlNtZYqxCX0byVptKJSKmwlCK/sXhKHMAxCTxwwdamily5FP88ysNEqWLkVWZbxBWFGGv8CS0lBfPrr6s4vZtc6aXMZzYs8zAMS9H+ZUEp1/y8FC40O54zR90S2PPila+6YNGvEu3qU6Gt9pErUO7iUGzTQI2R1VKHRDVLHtDG7366AEyTRzGBzfC4QpXNpM8OE0kU2+ZWDHfmTWXi5MYluYP3Kr8Sl6x6oBQvYjbN8GA94SVdI220ilveEjeNt9L4IgHiOaCe36tf0bjTU5QUV66u+wi7BbHEdFqb7O3/Gf0fkr7n1KbGukzRpl/tkR2MYPKRTkwCJp24BMNQFZSk7M594IoOVPhAkAQlhVVGuRWk7PIu8bSrJFVqHgpjIxe4xIUag+IBDGPIEr5EQy/Q8N76PBIAXPAwfCgIkGMml8MhRqR9mtmcqwiyCQuxZHRo2QBrPoQRSlXqXwG8Wix0QZvYde1rLwobuDaju8v5SH1LatV+sBKoDXqkULyjSpRc8T+P6A2FeoOiZ7gUl19QY1l8WsEKeABIHrDkGhaIVg2rRUSOBCAA4XPkDz8SADxRknKL/J4RAbUdax1FIZmYY0d29QlXeOYTqVjIKTFhqgC+CFP4esXr9hOqSQRs/0YMhAkYrSXBCSoMeGYk0imAsjbibCVQb6xIop5iGBLqrW4mrOMqwLE/ymyCLqBYRpdMBchtroAlPLCFIdWEw0tOpJGOdGQQSjLJSlqSnItDmAUlgiS37SkTS0QIS5q3iWFZqTLKMOVCeoGJXZiqE6xM3UdkAcstHpCWXxSVLWtUKpnpCDu9jGe4HoE24u2GaEhiSSagMiHDiMxKHGPJBqBJC71Z5hep+MUy1PMLUzmBm90sSTMsYMjuuZMiFGgkBbgRgHR+hBuJoWRPzSgUjEJknsd804QO0hLyyPGkk8HIhsTiKoNyFaEekQUnRjJA6wCMlgJr4ERlljAyUnB9t/+iFVOZAr+54kppIq2rXUZmJVeQkiW0WOlKVzEOZxoGE6mgRnro4ionMLamTmBJTncKzqRK5KcUuCwFIlESowZRMZS13FqNgkRXYSKkpgElR4zBV5PqLWl2wcEmdrEQdml1lS+64omoplsZkdV2NYJoR3zLwJ91sEK9/NH6prOko4xiMvAj2lMtkolChbAwJc2baz+Sj7+uArB/NUyyjjUXasR1P05QQGMfWxL55CVa2fgsRDCL2Qds9qiehe/PQstWetYzNBlqCS1Yq9eOeWWEYlGNtQ7q1Y6A9V8OlqVvJ+FKjtwSl5VTVY8sSsTtYIcgyG3KxHx0JPrpxGJ4dUv/gPPGUpagAVjcBWywpkKNZ+ziF12iCwRdhV4F7JglgdtpNLIHXxSggAIoQAMK6CvJxJBiQPjNL2aOuElw2TM19GunRQK8CldsectWirFOkLGLMcf2wCGyVlcNyhKRtDJGsWtgA4frEZ9INJc9neuHc7jc5+a5JEdaqkeX8jDRUIZjzZymR9BAC2O4OLCLZoo8DmvjLf3iS+C6Ao8z7c1h7HR70WATMPBTH2AAAxSlUA8wOKEeuajnEj2JXvR+wYqTRS81qDENlgsTBCIHwcgsCQCTz5enyEDmEaYtDdxMnLY9r/HJgBojc0abRCtvwp45McYu6sjlOiKDFi1giTJW/yFbVIhFtrL9hDbA1QlMdHXNAnxwe8DmwI/AeRI5wu9zy4u7rfx5SVbRaAg1KIhRcJiuQYtuR6ZrqKNUZzJ2bGZO0GAMYyyau9LUmzrATQ1XgGIsNubSQvzoKjBcAdNXAANLVsBpndqihjC7xS1KIXP8kJrUALg5AGCt8+ixmhU2BsXJgu5zVfyiupVJwa6DEAklf4QC/VGMsIkdUmIf5NgHecqes84VDTp7aNAe2lwZVlrVNJwlyTghNNNex7/SotuB1dsorTTKTzhRtsoIl0EnkQq9X02AU+Ptc2AEZ+ByhM72trM7D+7OR2DQqSKmK62M2TY1TofrSxFEhYhkdP/DqLi7hC0JB9QxcWN0u7UXZ17aUfEMtSzkGZO2MdT4yDAwNKEJKGcJJYiRDZ0e0gL2WdOaQi18AIQaFKXeOfJjDXRQyHoTDnOYKjahimFaJgUPeEAHWkIBbNl32FM3dmkGffVla325Xb9OlDXJGYbZUzWb+PxHOLBtvXUbGXoLd7jtH25t79UVu/D/KJXZJuAAw7wIu5GIu3FVFu0HLQ0e4VmET+RIWlGW5CWVcjUHZ0yMg3DYBsaPXIHQQFjGi3WXMcRATgjBBkycO7Cd2m3ZNrzgNlDJJzzDM5RFbL3eL3wCNawDfq3cNUSDy0nLLQifqAED8eXc8cFaziUf8wH/naw9wvM9QvSxAmqFSbZ01mN4H/iFX1QlE7+VH4edH0foF/oZk8w4ig3uBKN1V8f8Vf21XWDZn7ZtGV/x1Sj9XxXa1rqt29WkGeARRwPWSAPR2+HdG3xNnr69U+4cHHTB1eRVXiJOBNZ1zuZNxq+wXTLgUU5wwDhsANu9XWvRIV9RSQ2WIshxCTUshLNlQzYIA+/lxbTMnMzZHC0a4RLCWnogCwulx8nwIiuMhio8wyNsg6sEQM2wUxaiD9WF3++Q39Yxm0D0mRg2VfpFW9gxzIbYYAnlhBtMHLCMHjJQXP11jNpxGV+N2egQoM9Mjd6pWUlYkQA94G4wEAPFGb3l/8jh4RuSSCM5SY+/Qd4/PpdXEM3FsIYn/tXoaWJOpOAnQtOv1OEokeIMfgI2TBomPIPIPZk3AJnL+Z59AAM0hBp+4BysHV8SJp+NPULRGcQvEJ0qYAIxWssxUlKBUJ1pRUaiINvVgSFdTaNFkOEYhpjPfMInkcU+LYUQjJ5SKqUbliMdIprM7J3frVmayWNs6EK9mdWcCaJP6GMHdZ0gBBOfiVHBCU1TfMK/bUclVsaiUZwxbMAGmOBSMKQcStM2rMI2uEJebsMn8GVZ1CA19MIz+CRhgoAOECYFViPYBYrPIINRpoUrgJlOzAEHpOBSIoP9gSL9KYL6NOBtUeVByf+ST4ymVU5EvRniZ3WQL00jGPJjU0wiJVrHN75lC6BBFzRFDLQAd9kRRMpRDZbFNkDC+pwAcZ4AYraEDoCAGSTncZITUP6k4vmMK3zSk0gmUwiBG3AAB7RACyRDC2zAty0SJvgEAy0YR7zCugUQ4rFGPZImvXHlel6SarpmcxrGdFjMVrQHGqQgXKIBB6CBC7gFB0wcLewfXprDJRVncdZnR+iAg+rAGjgogw7Rc7JPBf5MWNhgsUzoR4wnPapSSbCSYcWnZWTlBEKgIJ5oTxkTfXLoZSwXdZSddcBlf3JADHCAi3KEgiZAAlDBgrrogxqmFTBACkjAg+qAGeTo4lT/6PtE58+ghVrAn5JGhIc2IEuIqJyR1WiO5nsanldq2JR6xV0tyZkdCBrUpnbGQAy0QZgqaHFSQQKAwQr0qJsSJ4MmJwisQRkwQA0Y6ZGGqVopppKwqOWIkpQCqk/sHR+WhDPsoZW2x5aSJyF6KXw5SIsCahvB5u/cyJnaaAx0AZtiKkS8qY/aKaA+aIRKqKjijqBqjmp+T/4kz6pCxCSwG7uRqETkHT3iKmW0J5fOWaTiF6DNak4sV6JY3o2kaRcIwRQQ60O46aoiaXIeprOKTatC56t+j9xV6z/4xK2C6AI14KNq6ZaWpkREKq/m0LByK0eMqb/xSRd86ghIxBAM/4GomuqsMie7ukruSBlj7mtnjuetssQe7qpoliu9Icevfta6AqxE7NnDlCm41CvF2qvDXizGxgaTSuIGZuzieGuiXumuZmngoeukLmxibobHPkQjRuPPVCzFrqzMzixTbKw8qWYk0iyk1qq3ssRvbenBAi2wCi3DXuu+Pt5XMgzM+kAg1AABwKzORq3UVgVmTN6OWC38TK2pgCzPjqbAdm09+qqk7iy6lq3ZomxSVa3MTiIbyczSNi0dQK3Wzi3NLuLYANoErSZhEgHfEkHX/USk7p3ZCqzYdmW8+YTCKuzZIi7gkk2lGi3AClzOhgnM1ivdXm7dIkzeMhveNmff9v+ts/HseHotJpSu6aKr2JpnbCzu4gYF2q7oUmHuy8qt7Nbuxdrt3VYtmE5j32aBFHAB6OJX14ou8XLt2U7YczAu626p4hpu0aqs7bqtxUYv9R6tcswnPIkYhsHX5/YuF+RAH/BBAOxBDmSBI3Qv37pTrZpu6e7d147u4KYrZWwpPi6vvSnsk+1S9e4v//YvZbTPnwWNpert3vJtFmRB8D7Z+p7u6B7glk6Nh5IsA/pETzTv4qLmk5ml/24wB3fw3KKvB4ewCI8wCZdw16WvCaewCq8wC7ewC78wDMewDM8wDdewDd8wDuewDu8wD/ewD/8wEAexEA8xERexER8xEifcsRIvMRM3sRM/MRRHsRRPMRVXsRVfMRZnsRZvMRd3sRd/MRiHsRiPMRmXsRmfMRqnsRqvMRu3sRu/MRzHsRzPMR3XsR3fMR7nsR7vMR/3sR//MSAHsiAPMiEXsiEfMiInsiIvMiM3siM/MiRHsiRPMiVXsiVfMiZnsiZvMid3sid/MiiHsiiPMimXsimfMiqnsiqvMiu3siu/MizHsizPMi3Xsi3fMi7nsi7vMi/3si//MjAHszAPMzEXszEfMzInszIvMzM3szM/MzRHszRPMzVXszVfMzZn88oGBAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYoYmGC8GHiiXyUaCImJgoyIk0tqojijCm6JSONM7r44mwl9njijTgGuWNJNMp4I5BB8iFWkkwmOWRFggjyyE4ggGCGGSAo9EAAAXDTypetkBIKKWSGksmZaMrUYooqRulminD6mKSKkyj5UyeTTMLJJHhy0smfeuYJqJ94dhKLS7W8womfnCiqaKONvgKLo4tCWkqjpfAETJ158sEpp56GWicfl9jJVJNwohqkkVn9mKOqqOr/6BOsc9Jqa5MypnTrrrHyemJQUrqZU5VYYpnlQQ9QwCUuuIRJppihmBktmpk80kpLbbLppo9y+vrrTnnmuee4ge7ZCaPmLvrnKyzVwokukEb6yrz0QlrvopIqCgsnvuR0ySV1lmoiqKCKiqJS3iZs4lRIKowrTw5HrPBJo0hs8a5AufmIlDYRC4IEAjCgg7EGdfDAA5EEEQQKLKNAwcvKctMls81eq1Kc22ob587d2soiH5jghKegfBZd6J9IJ/0nvJ2w1Amlj+JbKb1Uz1tppZf6SzCso3pqlKsX01qxqUuZOHbYTVaME9psq0pkw23H7dPGG0c5pUxWVlllGQwE/8GAFXnnLZAEKXRg+Mknq4zCIizD/LLMMgeBUpQ6v8nttpZTTnmOcJ+IySQ2hWu00qSXfu4xKhVj79VQ2+so1VjPWwosN/0bbqioFkw2UHH7WiLCvdMq60zBF//tSJ0bb/HcmA9Pk7FWXGkGQpHEPDOZYYYZbbSPnBlK96GYVDeb5GO+M9BRYlK3IJsI8vP5qa66O0zhFsqn6YAizei5K90b6aX7CmC+8gWLAnJiUgjMVzFC5ymCbU13uhPKI9akPFiprSgVpFVNMtg7InGwbT6RkracR5O8YUkhi+AGs8D0rDKZyXvUysTbNJeiCWoufReZhIxG1TUUgU4mRrvf0f+QFkRCnSsVnGhXvGQHtdY5qoCTKoXVJtUomzTQgQLb2sBwNz+dZOtVKFJRRnZ1iqHED0e5ukjyaES84gnMW2vsokd69cEwuq0nzSNhTU6oke5Vq1qkGMkm+DA+OfUIJO87Y49+CBP74UkWP6EivjI1EWEkcFK2qInoPHUJhgCAi4zcCdjseLCQ2Ip3Z8QRSHqlphn1RJUkgaVOZLmT5skRKi9EU/hCkscSTfCWHUmFIOqEpGE2MohAuZekKiKpBNqiAjQp1e0A0JAsLgxio6TgKHRFQSHxpGeu9ODZZnQKYJqEjd9E50jUKcpwfrN5WMlELuXJyxFSboIqSWSOlvH/kvzxKZmrYxczETgpgQKxgaXqJEMMFsqbuAqcL0ml2a6ZkybdDG6j0CNK2FlRjq7Sne0sJU8yAc+rzJOeHxnhCF3Swy1+jqX+BEqirPaKWljEF7WAoqSEMRPRBawhpMLdLIvZopmMc0bbXJuTWmJRpoK0o0/9qEhDerxaltQq83wEKlJ6Q43FhEaTKFUqWpI/PMm0aja1iDCOoVOD0g9gnVLoQoI6qo6OU0VJ3eBS9Vokc54TjX41ZVRvgiQPTnWWgyXsVatyUhl2JHOUo4kOU8RDjZaEdGetF+ouktNa5LSmQATYFYEqTYrSZHMoKmdgnSpRvnrUJXu9WWJrUthY/87WtTXC42KpklXHbiRYqfqdFSHoNKVlll60u0g8OlsLWxyjX28FlVwVskWv1eSX2RIuNmn5Erg5lLsnea0VxdsR8uJ2tTDJI1Z6y5Fq5SxKOVmkUFWC2Z/MlF5pvQhOOwuL/LIUrpyq5m1XQkPylfEnq4oJKBoG1QFLtaoNhvCDTYvYH4UQc3fD6pm694hdasSe8KUIi3IWv0NaRHd82AR9kZaKptkXrRmpgGeZC93/dipPQB2VMYmnWvJlVCh9zStrHZyQbBqJwhKh0SkaalgJf5fIGDEvjKAMk/UJ6yox7PBGCKkx7UJkY5zrUYGd3BAW9dCyIamvT+47L//etP8WwpixMCDwEoCJNqzVvBHxDOnljGQXbBzxLlNrGxH4wYoibzzRgTdKZdhK+cONdvRhK5qzDFcFTRz2MEas3Ocyg/jPJO7aRApWV5QkrcVnTdSk3KzW/eI0HS8Ja1g5CVRXzeTP6FXIkVHLJDQ/pJudDu+jDRKxUYN3nZFmybHnmGxlN3slnDbRI+gWrGlbe9pSuva1/0itMVFEWQFQlrjDDTkueQlM2Wvh9qbF7WlXSyN221aSucWzN8lvxxAhda4z0okWIy3VNX1FjTECgVrg1BcIH7hK8mRn6y7kEnTatymNFGyIwC2Ow6auIlfyKolg/NCFnhEoJG6RjA+kjt7/RPakF5pBQaezkGLupd22zeF2xzBaEaFAK7ihQmussFlAR/eXWujCdevyj+7WtEWsjM+HDLJn9FYpWNnkcYORvCKndvGaA+7ZBW4k4QY3OEtlXSpqstxEI4+JIMopp5L3dWIU+SUFOW7yf6jq4wJLct2j3GiUp1wkdZ+o38lsExvKvJd007bi/dhtpS/k3EEPutBZSPR1szuGSHf8RNT7kM1BPUZrsndfI8JDTwlirCZRc08SxfpaeF0jevBFMcCucJTYWdZMPsgbK77Ry13d7h/n2d0pAkZuNprX8pMokyDyd5UT/iCDT+3vmX/86K8cJ4c//OIVz21Max4hASDF/+THL36iiwla02pslmnhZ047XczBLWqR9ekqFXd+aydRPU9mPOPXa8Qf0pBwCEdnK8FwuJdjLZJ7KAEKp9BVFCEIGYUr3WQrFeNrCHEkufVXVFYrSEYQSTJyHVhke+d21wd91leCHJEj1HeCFkg8nJZ9eURt1rZhmOdbDMEN4jd06FZ+zmJ+lpd+NYhpllYRJJUzzGdD8VNoRJVvZtZA+WdcL8Z10NQRvlABAshqJoF7DJdnKFgS8AeBQtZ54AQ2JRKBUdJjsMJ7Gvdsmxd4u7Zvy/drI1gRfDBOcqgwR+UtGug5DqF8dQQsMSdzMphtNFeIMfQQuMCDPZhuPahuP/8YhJj2bmO0WwoBZnJifxLRUikSNHL4KZxIElknU61XC1PIEXoQgFXoC9JQiighOnZWa104Eg14OZsHJECid70Whmdna00GJ792ZHywaIWWh7mGhiHIbLF4cihCjMojbGHUh8HXQUNRN9SIbdXibn6UjSdlJqQgT91ngwuRbmRiDV3SJRTgJTwHOa2ACyrULKRgDdbgLMHwLPMYDDi3EUwnhudzEaFyZA8xNKJiEv4WC38CFL7AdWLnERBQAQyZcFWgEgD2igwBcUE1fRgRc8eYEBCIhPHHd3F4hxbWi2rogYRGh0AijHM1hxNhcpdwNhcUFSYXehl5GDUniQ1hfrj/8EpG6BCWM5MPoU/u82uTwCIsonUi0WIESZAGyX8JuRB6AAEQMAMPwZBWaIW1RxKuiGcsVypp52zjM4S1Bowbk4JB8pJ9GEa6mFIbeFcaYYw+qYw+1IvotWxls4HB1YKEcY0b9hDaMyahwA08EW0O0T5w0nQfdosOMZQGc1lJ2Qm6sJT8d5UF8QMLWQEQgAcOUQWeQJVVyIolEZFa+XAlIloswQpW1oAREYE/IkYf0TB4eXJHQhIluYbJ+It61ocg+HxbtoGJZpHbpZse2JGQIQg0CJYJ4UJikpNWtS3GaYKeF2gzgmMN4QyfAzQOd5SxoAu6kJ2QOWOeeRCXCZUz/wABeuAQ/lCZVtgMKQGaoNAQFZNQvkkRGYU5ETGLX/SaK4lGIUc+8UmbrMlyrPJbdvSJu/iWHmk2DzEKRzUVMSmcj5GNNskQ0YJ+yulFVtZ5K9URxFSb/3BjnmKUIJEK2rmdh/ITMsZ/32kQ4RmVeOAEW9AQarCQC7mKKRoS7MmFpKkSrGA+zVlklmOWgEeX0JddyMOLDRGbj3VGIDkwtsWhFQmcR0EjBEpd3RIZ2BihC/GDFRpf9NkQMIefS8oHIEoQ1amYPMQiJCGi2RkLJeoTxXAMxeBZVcgQURmVM1AFmlCeDTEDltmQFfCQJnGjEykIEKdDBMZlvhQRImRvk/9jR/jpqEHqpEYKnbPFByCYmxxKh3bJhrOigkBFi5BxpT1qEOgXLTajE+53pBjGVSVSJwRanT60SaCSptrJpo9povxXDDVKEON5p1WgB8DqAA5hmZUZgCcBYGE1XRoJcZeApilhn26CknNlOYYZXl90lrOZpGm0UP44R4gpEJPFjJx6lhzakuP6mwZqdw7qGDM4bQ+Rfqb6TvKmqjvZET8jJ5iwQ7F6O5wypR+hprHwCm3aEydqcLrKEDPgq8D6AwzrEGrQpxVAo4EaLgBjdnM1ciMHpmM0i1RncTeUlrKJlmhGSudKpbXZcWrpKm55R5GKoDypkgi2gYYUGcR5be//+kITuhPu9SY82WUa6xAjNlnDtCJDu0VDmSfDVCeMyaavcKs+gVNxWgwH65RV8Kt6wLA/oAbCuqcyypDSIJVYCQqiY7G6xqz4dhIQuC3SqmuacwqPwArO9q0CgYGAFaTbmpLPqJZHMoZJoqwpC6UCIaRJEZMUR7N6OaoFkUvcuBPYxrOfOq9qSZSgN7Sg8jmyinojYShMO7A8IWNRO7UK8QPAerVqoLVa+xBQyZAQgHAloYX/AlQYCzQp0TxrmxBQQEjl4xLAGLjZ9HbI5iPk2iK1e5F42J9467KwmKlmlLfJ64uhqm3vGkOBhKqUeIFd+hGfUyKSiz5GiwneCzSf/zOmIcGmmwsUnut6c7oQavCrWVu6DvC+cOAQlAmxzbCrG6GFoakQsQtxs5szcPsQhvdLERWNsYWMwNu86YqLgAU/bGe8DLGgwQu4GDQj/ooQqWSl0OsQmPd9M/GC0Ai5HxEuRLk5xMQpmKsS5Mum1WC+Umuw9isQosuwWvu+W7AFB4C6qWuVPzAS+Eu2CVGooMC/k7Mt7SmG1Wt8D5V8bRKyOxPBIdaatKKAJQHBCOzATxYjEZyB7JrBDUGD3qOzR0xsYZwRQzlMrdpAFbwSmxsLK/wTUit7soeZ6ku67+sAW/AE8fsQDoCeCTcSyJq/y8oiXSk+YyzG2wKySEwrw/+bsge8i/8JxQVWIkUME1RcoAlsRtnyi5PaGIr3EF6MUjnhwfQKwtibJydMEyksC5D0E3A8e8UgxwqhBjL8vnh8wxExng05gCKBrJfgwxY8cpgwyESyPo+QCw8BrU+cXr0WJ86WKsH7yCkrxRG1qcoLZJn8spvMGJ2swXoJylzquAwhmF4hC68gC7GgyiwstbP3wv/gAFlLw0gwEDIwz6hbAfUre9ewyz7ltwdBqPkqzLK5o1fmENBah3vWa9N8sgX2FQ1asl50m0cKaKFKiIhLENvmzdh3vQxRyFRhztWgypy7ExXQDQLIzu48w1sQz/8wzywtAzC6mQLofx3By5P/TF0LFsxWrBANWDduy3xvMpZtFEY/O2GvCXo5HRQNXc2AuCYYOnfDycUMsWGZJq8DHc4cLRXnrMrobKLqrLoM8QQ0/AR4vNLz/AZvwNINUQU5zJCA6hEAgHuvu1A3PZKBZp+q8L/0WkNDLRKNfNDO+6nB5RXLOJcwe2Gh97Jt99SE6MmHy8G31mW/tj6E5BUfrdW8ABQOoAelW7ovuhBGcAAHoAVaYARAUNZAgAh/gA9n3dIufRBaUMN17ABqABJ7cnu+3M83DdAi8QhuGyxftnaUg9dtgTPo5XnJrBVBNQqlEqZHfVptQtdzyzM0m3ivyWEzCDEX2nmS3dw9Udmq/3zZP6EHeJCwelAFs70QB/AESIAEcBDaq/0GQAAEq93aC7EFWPurVbDDHiG2FFvTCTHXus1Lbks3vw3ObrGPmtzXrVKHQfUQpWKHUrGuC0Fve80X1Vjd1zhtjq0mXVbRsPnTFW4U3s0L4O0TFeDKCAfLCfEE7lvDKs3a9N0QuYxwWIgRWcnPBgHMlsrdBcHbPi4Iwr0QuYCoaxcX8GObpgfdT2Ei8CmHicagiR3R3GKlM/eaSOdu32RluYaRSt4Ulc0LHlDiBIu+ssfO/+C+dvwE8ozWEPEDqOgLwoBT+02xk3DbOW6dzkoSb4ttjwAFAHzVZPFnHruaIU4UE7Xcff/YmwwT5RuNM4WeF/HmrhqsbeB4E4ZX1QwxYunj21nx5bIg5p2rzrpq5u2b5hnhCQfnWcIgDRpK53ZeEMDsPjxOEITY00YM3HMh4RN+Iz+D3BWJ47r3RogeFQuN2M480fEGwBnePbpl4HmNOZ+AFd8N5qAu0u8g6qSO5p2NETIG5zM2067o3wghtoKwYI9+pHe957+9MagpFzKpqKoZJ9LsFCgy7Aul6FLheVqsawj+GBoD1F5K6TppQwCP2DRUItFeFVod5tWuEyf+xsVAgAshwzOsETMgDWH37fdLseXeEBhb7ue+EB/gtqqg7pMeLO0eF74XckZCkZjIoCdi73P/9UlMPuvpRW/GbmL+DtkOoW3E2eykDFTtE4MhnxO88N1hDhT+IOoR3xAL674bEQ++QAwzZgsSjxERiQnAThDkDgr5WhJQYJp77ueTbppAXvRXQUFdPhAUbnqTDfMT5eD4DpMxh6FTPpxVDsDX9vNAf9wGbz52k8ZJcfSy4AGGr/RMr+IJsbDtyxG2wH/9tfEMhwmvzvUgv2AlkQmmyQqsoApkf6R87uFoMbMKDH/9OO9fU/NzeTYy7xTmc+s67xjMWd17X+nYZ0+jNkGWmDkp9hRHH+aHj6sQr/gIYbWNvxGeEGeeNSmwlhHNGlfifhALNv1ojxDTVvJ3bcw8ufl+//8WhkRyhDm026vUvwmk1DX3UPGFsL/vjDH72k1ttq9YGq2o+cr7sv4IX78UYA78HgAQ/wQOJFjQ4EGECRUmrFCrWLF3vvwtFFilih49P35Q5EiwWK1asGrZetWR4iSUky5hAsWRzyZQgmKapGmQFatHqlSxonkKJytBgmoOJVrU6FE+gpImFVo0KNNJSpXy4XOKKp+jWbUepDqKDwCsHS9duspn0la0aQtSfdqUY9CnVNXOpVs3LVy4Jh8J2rs3k926eJU+Mopp6iOmSw3j5bML8OOCvDxMXuIB8twKD2v5KlaB44wqMzBunCvsVchXsGBtXalSZUuKoFjKdPtYFf+UnDpNfniE89Tey8GFH5wqtXbNZ4IuTTW8NO5TTMMB8yF7adQlk9S1J5XeXaBxph0RM/Ze3jxNwccV9uX7iPD5mu7h7t2UNS4fTIoFRTWMUlB9+I6SbDIPlqgJBhFEMC+zjyLyjKIZIrRID7p8Ua2W1GC5RiuULlGJJY5iElG9ujLBDYpMeOpIlZz4uilAGLNyTjH7BGlOKqZwrMqsGIvSbizsOuLDK7JAoeqSUybRDpRTLolpElCU3I8PUEAhS6lTrLrKJ6qAO8+4vN5irK3DwGuLLRwRKysxtsLq8c2C0tOLLzr/gnOhoPYKs8agMMlvKcXws/GlOzniZUAMDDT/KUFGy3vnoWI4e3ChGSCIELS6RIIlNU5WywpKlVoLUSbDYINMJ1RzMYlFnHqzs1BYEcJxsK2kigrNGe8zNVaurqMuyLeq087XNccqy9hjh1zTK6/aDMq8WUlEaLzn0ss11/TO1HEqN3mFT07x6PTLW4MwYY+vbo/aRMn+9os2KncJJXegAQtUlKMGREAQQRq888ehYtrpjCM8ILA0wroqIClDTmz5FMiVShk1JhAh+wCKVFUV7yf3VJmX3E1m5Q6tMUWmkluZPhboR+VMIgssYYf0laykkGy2qlG05NbZa08ZRVrInAXaoJLB5HlnQNc0Wsc2VS4PXDHZe1VlcelM/zcrTEJODK6kDMvPRj8/rjdRk2iAAYZKzq7EuyUAdmhShQyWewa7arFg01I6teAoKIHEBIC3RJzJ4lxSnXqh3m5SRRCNnYbVvRxHRktrPsbD71qaJ6Fm3l+1MwkA64CkbhQi19zuqmZLN/1aqZ4u7mqFyMxWsKRZz5HM1R3vDmqK+urr8I/na2/oojZZzGsblfIzP+YF6cTbAZcgu6MGaKCheuu9g7SWR+FmCIIK5AbslU47TcXTokId62+XfpFp8Mc+yKXw+Rvvfaeb3tMd1sjppMvIpSwHW6VKyll4xTJguQRi1iGd6o70o9PdTGm2g91lZIee2WUQUCIDE9eYxv+W/Q2Hd4gbnnv2twk95elZdUkFXybxCOR5bXlRQUmsoic9kyCgAQ1AgA4boD2QBGxgFKlAEcMHAcD4IjV561RJiuIkvwGOIu+jzWXkV79cfGBVuXnEKULIP2q1BTAx0VFMbqckucCqOtcxYEesdB0gwVEmziLLdXzFrKsIS4LaqiBk0qM/MUVLgzuj3ezadBWlfNGCHjSJCt0DSKepkJGPSV7Iluc1s+wnKoUikAcwgIEcIuACorhAD4HYoCEuxIhFRCJgYMEJTrwibxJ7IsTYR5GTVYl4W/kAM+rHjDzoBVW9UWSh+lScFU7Hgx40kiBOsZ/owKk6y0lgR2DWLFD/gA5JZEFjh1KCErNkUj9QWtcG+0hJwUByihk0JNMEGS3T7bKYRxmhQpKiJxOG0HIq5MMnFsk8Pw2qP+ySxZs8Kb1PmmSUEWAoKSPQHV8cAyTt6Ib3EOKLVVp0Lq8gHxOBkT4rjWUS0cTTiHZllw/I74rB7EiKhjnPO20NLwCi5EhPdrSpVBM+RoLjOeFjTtfhJVYThKld6pkQ9ozriykEUxshYzxoXs5r3+xRFEhwVRGQAAEIYWhXGfoFNjSCDV/walcvg4clVKAbjwIlRTCK0SJCJhqxhCUsJiEMovRtfVJcSC5TZrGUBpalHDERF+sSxkI6h4PX4hkiG3tPaI2J/4zCQWzSCNijaVInVijzqVEFM9TXdbaoRKFdI+nEF+A5ToP+DE4qHjFSdvXnkk41TxHSEIXbkoAiXb1BBG5wht72lqHD8Uc3NBMpjry1Ahi9TCnOB0tY5jWkK9EpcXQJP8AENrAaWBWqdKOWn7ETaatbnTtnNMHxPI2pT/HSZTZRR3fhqJnV7c5XjEVfGHE2qHuK6evkOdqalDZcUpvn7dirFNYG57Wy9dNIGxwgySwBoQq9AFm/UErtSVSitdCoQXzx4Q93WC3XgC4sZTkUvY4UvwTJJXbtooEPwBjGJTAJirw7lw4Wko8eLAshzWmyZZpHUIKBF0ktmCMjGUklif/8qTY1yz+U7TeZd3qO5ABMss92xJF8gel6Jcll4WAitrPdBB9ScZ7oJbQjPRQlm73TDZBsuBjJBfGHg0O+EpcCfR3pW5Qq1tcR/fcoGiA0oT9A4xV512Np8bK1fGyyeNqOg88xT8gQO6gpQ+YXlQPAKaoUTiptTsigA4BKYgXApUgZzP2d0ZXVwhh1JuSPo60cO40MmV3gx8HJw0QqaDscD/BCwtPD1w59+MPufETD3KMziOccHCaWuCZ9w8RKTooQv16bLoUuNKI5ouhFo8XA7ZT0j8v9zsT8VMfKae9lADAlqXJT0HOxr4f4GtMeSzmfrHaOq+8yyUDOB8CGCVn/OvMkr8v4qReCkuHzvEOgYZukAZWohPUqrj1Z1GLDIvbIhx3iC+GEI9qcKIUT+Tzdlk3x3SK6jAaS4PI8aCAD3dUJxl69TEGeW7E5n3T/nhIgpURJMIvpk3D8AwAj5ceM5am3qWGlJKtkWjhHjdF9rOxvegJ8nXiJdTFrfdqgWLKSwXHwVJf38GBL714UMdvZ3K49dhxD7iDhyGbsDnLhlJgTqeAETfSKn3vL+rranksSDH/4mSe65uHeyrj5sLhnAgUozqT8M78sPHbqaRM/u51oLTgeopMJMb+uC1OUTB0jeafpgX8TVWLyTFWDFpHzxrqsyRMuR/p7F44MKPLi/0tTu+xiefi5ZHc6SWyKIIhR+sqw3CX67IXY3e7Sca7eTdI36qS8pIK7zOENn4fEc6Rwi795lqXTP88rGIZ78T2dFtP1tABDRFcBVXcWuOKdJsXyrkvhZglZe60QMJdIJwD8jzw5nv+AodADPhy7JDHDBMcANsrAAMvoCBggAUbBwOabO+hTCJD4wFqQDr2DJVo6iSghiz+zp+tSkccoARd8wX0wifG7DcYLQMHwot3hMSpLHvY7pmPKDxgCjOUAICj5CumAmElgvR7Bj2daDv6DCwZcwqShPQAkmtuLGoGrQhRKnqGzkfXzmijcCgcbw00oKOGQBQJBvoXIqqvCKv/tOY1XkKh3qDsQDEHp6AROuARY0kM+W4nLIbw4ManLyAAX5AcXVIJVKRwUgYLygwtABAw+ehwELDiuiyEqHEAlsxJQ+Cjh+BV7q4kq6SY0ugRtqg71sRKqQCMrUQ7aSDIAojwn9I4vS631EC9HkzSr4zEQqkKj0EEt+7pV00KmCj0fDJmR+oQwNIqyy5peGw40pIwK5IisigKrsqo3xJBjeIUOTIg6tMMjzENY6oRHHIgPoRIqcQlBHMQMyAB+QMREHD9G/De8wMHz80VY+YRzocT0sCQYcgW1GCkjcRIlGY6vcA0lTIgq0SaFNJZSHJ3QeR9PWw54wZ2keL2ge0L/peII+bBFjiyaaikL+OPFrUu1X2QqkSSIT3ihrjFAS4yhR4hADjGeMYRJyJCF6IlGihABarwta+yOd4BDDPFGD6xD79BDTpiEPQwHiqg25knCwGnF4DAAJVCCEKiJ+bkxeYQLFiRI8Ei/8yizMusTGMILgvuPgkswGfk0KxmpTgQSp3MjKLo/ubyvIQGFUdDEKqGmoDsZIvPKf2MPmmi0jhxMeGKykxwK3DEt8ztMgdBHvrBES3q/W0ufS0qFybQLWXjGyTAJEkiDIiiCKADNN4PDbNxGhAhKkRDK4UDKo+SEajsJPzSSg1yLKomJrYQMUxiKq0SVRtQ/WbTHefkE/4OLIaCIiU84GTEMRVCgBj5YhuAgRZGaTYPghJCarrlcIOpokibRRChixSEUDCO5zanDJ0HLBMI8z8SaFcYcCsVKv2xZT4PYQkv7D2Z0QJZES6J4wOK7jFioF5xciNAsAhMQ0CgYzWw8jW7giNMQidMoD2AARz1EyoWotiKEEo6AEqjkld3MBFXQIizjOtVjDL+MERQKS7Eby/kEBaj6hazwkJiAoucktbEwibxcS+60zgUCADhCEibpUU+TDUcUhJ9JEkF4tyeUuoQwT0fDvI4ct/S8xMNsz0ZaL/hMiMh0QBk6pk1IRo4QPgc8s5rMTAIxiSgwATM10wLtjgN9hf9y0DiOYNCQUM3hAIVOQEo9BNOEoI5q249x/I7aFATxtIsdGNQdoIkrwo0sysqgCNSg4Zqr0531oxgD7IvFIKM+RcgqqTYrKUEhBACFdJkbhRhtQjknuS7lCCclURKkc5JnCjRQoMVFAkzc47rMMzjxmsLwqNJG2iDFFCpdTYhegKrl4TWw2Y9HwNOa0M+zC1PNJNMzNdMi8A6546hsPIY3TQ1sPQ8PAUfNUQgPsTYzQ8dKDY5BHYABGFSTSIIsygVmYAYPrRVJwr/SG5OiYon1o0Sio5hH4MShcMW/udQWzSbo/JxQ5cUSEgRYLYiN1JNfZbXW0TKwg1KRdAWwuVL/5fGTdSEKZ7ikTsAEMwSMzERDXvhYihDQM8WAaFVTjmLTOLzWDLFW82jNCJ0Eh+MK6jIM6RyIXPiG+nlXtCBUoDWFHpCDvfADUzhXoEVXg1CCfWDHF0wLFukLJ3VUJ0U/QbOWK3uGUoGLfBU6Ll2IKMnLS+BXu4DOschZgoAiKyk1g32kvQiFAcuTkGzYEC0O0zJJuqUIVPATGOIPsFnWmliX2WJWm/xPhUgDfzCBTzJT7+CFlaVWBV1ZDIEPzTnKT5SV1pDNEGEFT2MFgD0KQjUFUyDUjsiAlxMHGPNZPtHF8+KxD5q9/wovX/W3qFiwR5DUXzAMoijVlTDSx5BR/9Ah2FLsuyp8JP+J277I2yXUkV59WOWliBYyHiydhE2gSY6IBSytyVgQU14wiSL4pMW9A++oh8dtWYp43E2Bj2jwJg9xzoMox4BExzz53KwA2powkfnBCUYbTDTJlvZ8VFmhutGihkeAKkn1k19AVo6QB2pDOsgwW1IU3rHIJl6UD/mYk3N5XhjZGvekVw0WEmG9pE1Q4KWcIdJTi+3NTMnwXvBdXGktX5hdCI6KpfSFj21NibE9CKakEqecIsv7K3IlClWYQUYlikvzX/86r/KSp0s7yUsIGSgWBPfR2mQFlSp54LON4I6Qv1W9BE7FOrdtt4UwT/L8YHVLNyHxYP8zdgkZWp6vPYhewISOxYRegIwUtkmSXQjFVTsMEN/uqAVdKN/IpWGTO48TtOL35aawlV+lKOIemUGdUF16SiHW4d8eE61xY8xMNUDZOAVR6whooIZSpV+ikNEZ7QiWAB0rIVswDmOTIGO5XWMhY9403hpZ7gjLvNKsqYleGCkSpos7zkyTMAFewIB6oEA/lo4DpSs5PYhYelwYsVzX6GGCoFBQEa1WBFRyyQUTSRW1GA9KLszOwzlneQsDW89eUFFQcB/ZmFuDoIYkvMy5AABOkFGCPVtQIF4ADONHgFvCcttgvOVOVM80XkyBBtaX6L2wgZXtveNhLua0ayvpqIX/WCAfi1bQZ+aoGJlmgXTfgeDhIrxUv6LHWNGAXMAYnXBnptMRle5fJOXFUQgZEcEER4aPUhDY4O0I6iQ1AGBlf+Nnf6aITODng65Hu63l2S1qe6LeBnvj84iFYB7mYJtqiR6Ox42lGFYIE1vZHtEcDwGnggCVIpTXf3CmVpXY4VA0lQ7RNlHp96xSxMhd2QAFeYCVmy6Fge2Im0Y6TyXl/SHqlgJotFZqmjiv7BBgwhaIVZBe5GFoqG7oYS7cCPOOq9ZoiqCrGe6Ro5zmKCEI2DLHml4ZiwxtGOFmlH4E++kRkXFrxC5elnjtEw4Qep7tL1aIvc6mnq5gVw7s3U7s/8fg4OYFYN8eCFdg6gcrlMeG6jxWCAo8lMlW2ZWNJY4wMbp6E2/qEM+Wjewja8t7vXnh5lx4BNyowaqLlgE0aMbEhF/I1M4uFGAoBQCA79pOiJ7u6/jmxaF221cG6LUebh95ncPWOv8uiC3F2F2+k+SWhVgwCQywyUMpkBfmqE6w7IXAbPJ5k3n46lRtoyL0To74GTIi7QDJA/Eu8YQVMqHRyNauQvyYa+Nx71KI8fc2iVIABvt2mCrM70cYalLgbf0e8Hkti8O+HSA/iF1g7AOHk+SGagYf2Qfv3j+uaIsu5ISg7gt/E+rc8Euo43/wQ+XID45YDtogaV7JBA5lBf8WkeQAwRYVR2/GXG+WmOtCie/3hm+TeO/6nvHizW8e74hQCOMTL3KiUJohT2pBb0wHRO4Eb3IVtknvoOgp14Xpxmx97upves1/uBxWjG0Wy+aPQRE0R/MR9SNcaekVr8K5lvM7kfEYn2+EiG9Y1/N95vNH6HGO+PPePvTG25lCd96iWoVP8EfvoOP6VPTkZnBZqIaQhXJljm7zrXBKv5OjFDMc/gelU5LUowgx5y9e+QD8QfPBpgvckadMDpBVQIVVKA/1rk15ho86b3Uat3H4lvXaM3P3GGqTwPUf1/XGW5MAFyNFQgXhNBcoTvLhMJ44Np5puJNUiIWGZ/KOWIL/kFXhCKerrK7yKa/0HomSbxKEUtjLJTvvoPBr8/h2oCDvbzGTNjd04UDGTNjSTUBGVFCG7lj3TP3kHnl3el+IGI/vGnd1ADPzocZ3Pw/joOZ3GeF1pPb1j1kv8oT5F5cO4TMe48FPGHn4h0d2Zaf47rDojJ5ur9d4S08J54hNbHZzWMkFcMeJUQeMvYicled2u0DGAt6ETEBGqP8Eve9vtPgFmJCN9b4TaGh1WwB6g/h5VsdvezfzfN/xRwp0pHcJf/9FguYVhP26Aga7Ei1ggtN76Shw6bX6AEmFhs/6jmhwBed66fD6i75suoquQuF4UKsZPsVktH+c3hCEmms9/wG0JzVWC1Sw+y2t+xLdUr2P+Zh/BL0XfcD4e8An+ceI8cG3BZ9OCMT/efzecaFvhaLXcciP/L6a/AEs51hBxj8CO/YrYPUv0c8HfYOPEdJv+E5Y8Ih/hdSPhWqg7AnfarAHCE4CL/0raPAgwoQKFzJs+I/PpEl8IPIRxAcTH1B8HBYU5PEjx5AiRzJ8dOqRIFUpSbJs+dFjxZAoXwpq6fDRp0ePNvHc9Kknz08/hfoUKtQm0n+bQGECxRRT0qgNoZWyBcxWqZFWSwHjmlUq2LANM5Eta01kqEeZdKoV6/Yt3LgIJ9LdKLIuTLlhH1UUhPKv348oN3ncaXgTVL0Ke//2QuxKMdJUkmN1ijVyyStZsWJVqwZ54StOrzpx6tQppECBnSZ9TspJo0SJFgVNulSTI01Qrd+q1MnK4+6QNGNy7Pvyrc+dP4EGLSoUp1GiwQsubcqU1XSRt0pBwwpNaymvV7OTL0g2lFm0atc/Ku/+PcmKdUfKn20XPkNBhGnqLLzp7yOY6CRgT9kxxxN+CqXSSSqUWSaSB5tJ6Bl5x3CiS2kCoRbaQAk2dAldEk1E20TC0eQhSY+wohIrKKH4z3C3OWQcSG6ttdZyPUW3o0/OfULLdEstBcom1LxoUFUWRFMVeF5RdaRe6EkZCi7q3agTlFlmV1eJd9kHnJYw8gf/oGA8oWLeTj2dGVyaPPUyTZYLSlbZSBFKyFl5r4yW4SuopaZhmAXBhldt9zX0UkaBltQfK6fIiB9MMLXH0UzHuWXYUEQtp6krQP6zilGoHBWckE5tMk+WpVjQnS3fiVRVeMAAE42iYkmZSSihcIMWWWqRVSuwb8k34kgf1ReoIJgIFlgmmKyZkCuH+RRkT5hsoqWcctZ5py4PZvcKhhmextGfnBCkKCiXYMSlRCZaGqxBagVm0qT41VfjTTQ9CpZO//mEyU+hoLLKQurs8omoqDzb2i9N/QLKL1raEo0tFljwVUhUbceVBfBGleuUu4ZESllleXwyUlzu29CIx4bJ/18mIqVp2GO7MZcKtgxWhrNImt1J4beqqean0MBSJGJFk6ysEI26ofzPSScVBkWCkeLLsr5vSfsJwSElzDXXwTX8y9gSR2OxBbaMdPFWsz7dEsggByASySXH/DbeM+JFX6TEaalfmSINpeNurtyMrZwMjqTZK3fmSRrknIQUOSesGU1iy07PeOLTUAgitV+Gume1RTJl7ZZfQTkrEi2uIIyKKwtDRiTZ1FgOpcVnWzwSx12NlzfdcYcy98h2hwI88gmpzHd9oh/5SWF8Lb1QjzltIrtcbW6yy7VZTpI4zyEx7jh5pokrObkZVh4sJqNQlFGixb2kOcqngM4Hlu+dcv8vmJtzLhYq2jSqkIAKVKLqGmQ+8Yul/IIaRspSxa5hsWusLRq38J3akucQUoSCg6Qghcg4UreSabCEw/Kb/PqCwiwNyC/14sjghmKMz+ToE5PAgZZ0pq2ecWIzldFFec5nGqIJ5Ha1skhdbBMSGk0vWJUqTBMhMyKrvZAhTIyiTTJRve4RcGAIWwUqZggZnjSMGr9AVZYsIEELDKNjIhGGBYBBle6UsCEf9CApKEA3XJXleHVE3vK8pEIsQipAgfnESGL4iV1ABhXb60nNvDcnyYyEFz2sTCyASJ7SmKaTRFxfsMz1PlAQ8iHzA94THVVK1KnQOFUsyenc8p+hwC7/kWB0xSq2gUC5PMOMS6FGYtIoQWK0UStxbBU0aPVHhbTijh9Eg0hawUdcvXKZJzvhKv+BkkEq6j+B+c9IROUj7IkFB5/oxXIAFiYdKk4kvKBMZTqhyexw0nzjcsgk/mTEWvHhEkijnxURBTzPPRF/p9hN6Owjn5E8sX9iyUSmIDqSZMBuFRa1qGKekYoF/mIZD8zSMK5xjWEQc22tukV3lGnNgzTTmXoMiTRvdbeVPi2QS+xbNt3Tn/6QxDnXc51cmvMTRq4TfCOpRipG46AgdpKTIclnhvZZq9jwYX83fRfeTPKS3zg0LjBp3tXk9z+37AiRI7noRcHhKbgghmxF/4pYmEI6jGwMYxgm7U5KacpSUjSzmS/lSCtydR4/6vWae/MSEkunKEGsJXXZBOMnXCcUV0QyLOYc3MHMmkOjigSpSpUnU82Xz6eSJp9SVVQq+tIu3BjHeU/ziCqhaBKvIvFefWFJQ3MqOFEJRVQjyYdFaRFcjL7lF43hKDWIqiW6zpUHdhXJNSbWqlJQsLD/4EYr+mqNvzoksDK1rmHpkk2VufZIhPkLYUgi2cj6BHbkbInrDMe9RWo2Zwtqp/gaZBrKlKepq0GfQy7xX1AatlitLSEUjbXNsHwVpxNxEUu4ilWxIMM5tRwJGoS7Cg2vQh3JCMs2tudW4wIUStngwf+JnTuSbExMSdFQqV5xkd1WyBgF0YwbrsDrMS6Vl2m17ZKiBgO4+nJkFa7YBezANrC1tsQYuwBVZDVVq8R1Ipgc0YzOhlg+Tubzng2pHJhP+0fb1lEQo4itvnrcEOnV9ktITNlLIAyXKIsqdiTZwIY3TIs9b3gDSanDJrBRu038Ahi7kIeivMEDRXujGSMhRu5WZRVgbAcA4bE0AABwCQCAAgCyckqnOc2UUWPCOkoDBSuaIiABHaaacMEFrFuBXRuHBBc4tpvd2KJrwMykUoCZjb5w2lUdL4TH9LFpoDIBOJ64miFg3ARlIwsqXK6iBSMxhpF3ceRox1cZtWKnlR3/Igsqezk4kPtvuRcSkYgQmKY0UvPT+hMjY6lSFfGTN7DdnFjx6jZeBZ3pW5IcWd/eeRzG2POex3FRWlhbJJD4xTlDvIsFPsMniFbUClbAg4zzYCTNUJKSYAGNOMqq5CYHhqc5fYmVO0XUoH75kEDNClT/YuYzh3i/WYILbsAau0EQSQBAxse05Hotuz760fnDP2P1DeDEZhqXjn3YI7LlP81eiJErGlnKUhutyDAG2PmMDCOjletcj6y3vz0nTKSbIbJgZ9s/Y5pJoBs1pm33St+9zN+Y5IrzDvYUwdoyviSlIg1VzLQHvsuQcMAcBz84wlcxDuFqmBbmGMfkLyrZ/108o/Oc/8QzhPKLi2M846YfiT5sIUFbTAwaF7ygybmScmB0uvYtfznucf+wVLNiE73vvSqeAZkABIAbxg8ArTnCDQ4KFj24Zg/SdyrbYFN/kMN++kGQrbepB9nq/lo8RzagbVx2feFjz7MyVnF+zZu9/TgE1vcYlAoxK2Q0iQPwdEpD9y4/9e70N6FAWVOCAZ6xTFFi6VvfwJtDBEacXZ1UIEyUxU7DjQQWqAPYhd3jVR5a5dI2bMMndODmdR7o1U5lBYrpnd7awJGStEqryFHJiYengQLK2R4oUEPu5d7NgcIj6OAvPELNbYIqOKBUUAA3FB/x/RxadNCtOF9ZQP9f9DEgFFIfojCdYmEf1M3HXRhbsLhQvwihQoDRBl4UMtDCGJah+oUh+VnUIoFfoNBdKrBduDUE+GgZPe0fmD1V5dTG/2kQsK3QHymYsMUIWOVbYkmF4S1LzqnX1g3MezkEB9DCBlwg5PGZcIFDLuWSK2xDJn4g6AnFwWyC8MGLE6yAE5TiCpBENtQC2qRNKcDeyb0i7cUgqKmLukCMIODgywEOKzzDI3zD8FFAABBhAETCSAQAyQiPYPXKehid9P3aAEbhFFJhIi6T9rEMXiggivhLmzjdWYkhGX5jGZKhGYahkbmCMkxgsHwPJsxfHDIEZVBZf9lhROAhu+1h8vT/4TTCS25VHyG21vW1BP7E2T++BRgODLUhxQZEoiQiXCVeoi5pogdGZOdtwjbUwcmUIkY6AUvwwNm8WDRAAzRchaddmuzVnizKIO7NXO49jA6S0S+owktiwjZ8BgXUpE0S40jgAvPJVK5FX9ItS0GlWR9aoRVFXRYaZbAQhr+0F1K4gTGEoyRG5VNiWzhaFDK8jRuynT0axDtmWX+FGd3ZXZhZF04Rm73tT1CSDtNhY0jYG/UFRzAwIhh+mE3MAQco5AUm3DiAwzbwJV9mYnz9wi5sw/tdpAIcZikSJUlQAArYJAU8gGJSI1IWB17kY3aswlJughaVIEtgAQdgoFTm/+XYfZ0b5M1qvGGVjQQ8sR0dTodpsVvcIUQ94p0A3otiNhghViErPdFfZEfsgKFwoWNLCMFnGoPBjcP5cRguocIz6BIj5M1hRqcCRKZINCYKXCcFdAB11pEWCkc1KspPpIlQZAIb2oQQuAEH5AMacEALcAAHuIEQlBDdreMktCNoVNlqrEY8rltYcoQempZ1+eN2BodFFBRbkEcYkiEHiEUMsKcFqoPlGUNhJo8CXIGFXsF0DmhDRAIKBEEQXKd2aiggTeb2uYzHaBGzhWd5iqhsviE7jsSC7N88bhJ/jpZ/rhttUiPTsahiWA2NcNFlDkxw0YIx5AOPOgQYXEETWP9oExxpQjxAJHhoEOCkk9YUiVrjlzxN9eDEf6zokUYEatqngsTf/gWRPOIfQ/znjOrVvllmlR7EAVJhKLrHkBIpkS7omyYEGIBBE4CBGOSpQXTAAwxqCgBqeBFLFg6llgpQURhqQajji4rEgmilfpbPmfYff5Jly7jpm8rHPrIlZFDe4yUkNDlqQZABGYyBqf5DDaSAAKxqsHxnsYmXH8KLv2TKT4hRns5npIbEpObnVsKF/61pQ6hpsObNvoEqrCLgNslZgugZ2CXkBqDBAsCqtV6r0XDf9gFb3lRPdAwMoEJqfY5EaVDqsbrFa0ZEbB5EjZ7r29CqsjpqQgklp77/hTt8XSRuQAugARp0Abb+K8CiSHdSZpbmTU6UFbi+KSbUZ6kdK5hm6pbx57oahLEG6L4FbELMW695YXlEK6m6ZxdUa56eAMmegKmaAQjogBlgLJQMbInOBvLsSOxcWJUybH0e68LWaHmkK7Gmqc4W1rDoJsv6XejUirRywHrGQAx0wQi8acmWrKGmrA5MrQ6w7Iu47KG0afJoCth8gnCy6Pfc7LEuQ7vubNneKMSyKa1abUHMRF8ABrzEwAYgLQcs7QI0rUEMgd5uZ8lSQQIkABVAbZVSrQRIwBqobNWyLXzwWLLy2DWqUAllguuA4a4urOXmbLuum+XO389mR+bW/8Zq5Kw/5WHmairkKm6MPI171m3IMkHe6i3sYt/TkqzfToACAO7skiz2mQHiUu0aJIIEMIAAPIBHZEIKMIAElMHhUq0OgAAIKG5rOK70Tu/papAaeilHEIH20tTNNix9fq7mYu66mS34rps/+dPnaqp9QO9DSE/etMECLEAbsEBBwO4QEID9RubTBq7uvqkOHG7hrsHhrgH7usf09qNCYe2Aai8DrxTDNmxElJoES/ADy+i6TaxclK8Gd667KWoBA88Q+AAB+ID9inAg8IEASAEJ2+/eElvuRi3zJu4Hk0fLUO8BLxSPMnAWNPAyPXDOYq7lSuz+AeskeIvnbnC7ov/v+AItEhHeDNeR/RJAIOBv7FJn/zoqCPDu8z5xebSZ4P3Y4wIZUTIwGWeBFPQBH+wBF+wwGW8v8kSw93avHAdxzlaZu6IrEkNEjeoxeGkEDnMxFLPwEAAyIbMvXUiPPwYeITopA3MBE7AxETgwBCPxBS8sflDyulGEPz1drRZy3rCwJ4eyKK9qG0fyKJ8yKqeyKq8yK5MED7cyLMeyLM8yLdeyLd8yLueyLu8yL/eyL/8yMAezMA8zMRezMR8zMiezMi8zMzezMz8zNEezNE8zNVezNV8zNmezNm8zN3ezN38zOIezOI8zOZezOZ8zOqezOq8zO7ezO78zPMezPM+xMz3Xsz3fMz7nsz7vMz/3sz//M0AHtEAPNEEXtEEfNEIntEIvNEM3tEM/NERHtERPNEVXtEVfNEZntEZvNEd3tEd/NEiHtEiPNEmXtEmfNEqntEqvNEu3tEu/NEzHtEzPNE3XtE3fNE7ntE7vNE/3tE//NFAHtVAPNVEXtVEfNVIntVIvNVM3tVM/NVRHtVRPNVVXtVVfNVZntVZvNVd3tVd/NViHtViPNVmXtVm3ckAAACH5BAkEAP8ALAAAAADUA9wAAAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MOL/x9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghihiYYLwYeKJJQqSoomCjEjTiTDCWCKKbs0Y440muogVCFsJMgmOQAaZo44kCXnjikKKZeSSMRJZkYqZ2AQCCGZMmdADFAQQAC6tdEnKl1+GImYomZRZ5iOZoCnTjDayqCIfKsYZJ5xLtvjTJJ3gqWeenfDJSZ99/gloKi4dgwknfyLaiaKTcNLoJI0iKikApXByySs8AcPHJT/y8WOnnoba6SSX8OEUk6ji2GZWKNLJYqpGAv8F66y01pqSiaPUquuru54YlCCZqPgITVOaUWWVB2Gp5ZZethLmmGKaKe2ZpLTEJpxy0rnim0imWiJPeu4prp+OOrqooJ2w9Iqk664r6bvwxivpJLXkRCqkoBoJKiZK9ervVP7SaqdOARf8r0m5Glxrt7b+VOIjjwAbU7FmMCCABFRSWVAHDzwQSRAgoyAyBSRnGQA3J3PDZZfOkiLmStwimW2Kcs65LZOTCMIvTnzuCajP4+K5aKMsdfLKufImDe+55+bEqaieQgr1pzdeYlSrCsOa8Kl8JJw1qjh9LXaqJbk6tpBtBuyTsMIO29KxGZchwAMMWJFxsf9IUEMHKXD/3PEDQXws8uAla4myys1SgJKrNbuJ7cwp5vymjJOjPYlNkPasuc+Adt65LCoprfSipMPbLqI3cYqvqFKDPdTZvQ58FJNpjy27TLDnjmNJtet+9tpxQny7S8daoYPGBkVC8uEBsGxNK8G4TCaZ0qJpvZplc+vmnNoyLiwmKoKPCfhmYw3ktzQFPa7n7HeSSroquSv6/IjKz8krpdRb06f8j/ppqaXKl6+CsiuGfW0Uw5OVwHJXE9850FRFemDuEngTPkQseMSCW0KUx40OrqxlY5pWJkKBpjOlKRTZ097kKnc5i2DiR9cC0s5iEi48vZBP7eucueAXP/uNTmmXiBf+/zC3Ov4JIoBQM5EAgeK1Og3pIrQaxVB6BySMeAuCMZEgjEr1tbJpEXbAk5PbZoK8j1wPYlESySO6J7MndmQTMpLRp2RSw0lU4yevsJ/VJgKLd1UKU+nD1xwXAoCp+aSJsQoJFSmHxZ64ziOPfMmNHDnJCDZpJ7vryQU3iZU0QQyNaqQZtizoRpGkIoZK9FQvYLI5oBztXYCciA9L8Y5Atg4ADeFipyi5pFstEle8DJJJcJUkSV5yJ7XzIox8UkmeiFEQY6zKGSGmSMiRUiXki1HOIPWSnuHJlaaziB/vZ0tRNcSQOvllKVNiQF5hspiLWyQFT9JMgtUzJPfMST5xwv82YXXyjGmEpDXnWRJMvIpqPnKJ5njYk9PVzyKw6OO7YDETQXpqjwvZFNUI9suZJPImtdtaSz66kn3aJJMjQak9l6nJmkWTKmnyZJk+MsqZZfFEo+IDoYqGQ4byxKHktEge2VWKihaxqAzZVKgaWZPK8YqpuBPmSVUF1ZKWj0UjPWY6TdoRlepTqwS7oD+vEtNPorAjNZsTTUq0zVS2xH1C8+lOHGo0jKyrFO6iKA1VN8iFIPFHFazdjFbqVZhINaqFpSdYw8ZVjjT2RYvlp0v/KdOXWjFmJrLsTZfqKZbEtU+utF8s7Io/TvQRFsXY6+qQmlGqtRCycRSEFIMZWZb/HBa2tbXkAN+ZW8f2FrfrxIlY40TZTwY0I8JTob3gRLWqkuSzctXJUN0VS6He77qcUK3UXquQnHI3JotUYGJVAooqMvaxIEHvZlma0t961L24myxZjYs9jTwuRZp1iEGzddXvSmRqfJjhSaAb2uvmMSPFgMUrTvsK/bnkXts951+BiyKCnle97cXwQchmkSP5V7fBnSp8rThiw5ZYktDE4Hw/WV+MpDhbE3Hq4656IgFDJE+phJNKCIzH+7WruhBdcEQX7IuXQBhSGFWIRkM1k1OYdyPmOzFDZBxik/RuInHksEQEWGV8Stm2Gu5wmLPK3p0Md43/RGOLL0KzN/13/3vca1PadObchRjUtXUGSVzfF9o8tmsjeYyogsNhZHxxKskJEVWp3jtmhPQqI0fKc4bL7JDzwQrL4/UypS+8W5FkmsJhZJsFWSy8iJGaviL8BLRIgYuJBCFLJjuZ4XDxvOe1DEzSm16ZqEfC6wUrv//NFrAT/ao2UplyCY0Inm1MEvd1rs8G3ogvaqFgQTt4JYe+F6IRQrVFr9dVbLaROkmK6Tha9csKs/CGb/RhTXf6nF+8rbu7jJBxZ42KoW5bWqF5alSLEFrTa0VEKNBBZnFpZaRgGa4BTj0RypTfoMzIviECx1FqS7B12nISUdI5PuPxdK84BkeEAYtaNHjBLv/h66HP6dqbxtAix15grtSdEMGem0YPGdubvyzmTSs53vJO74mBHnTh7nvfpk5xv2M6remNqVoP4UYrcEH1qbPs6gvPta5FOE3hHfdJaYXInCvsOMZRld4G2a6nMLHTkrzv2T8xOXVFvhF/HMMW1FbwtVOS7ZUzJKeSLgkCuxf4RNt7YYVfN9ZuFSOaD8RI4s4yPCvNbsX6nNhEh1F5lfnujGa+0dY6elqT3m/rMV1auj5rQ5r3QYW37NZaj1bDzdR1Fmvkxdh6iPbMriIlc3lFm4CIEjdqEs+NNu4g3ztGfNHgiFK7Ap419CRY6/uLJj4krIi84w1y+IJNpIkpWpz/hqloo5/jyGvCBz1FNPz5T0N56O3HeU9e3GZ+B6/0vi7hv0eoeoZI3fUJp3AuE3upNy21Z3sYATEzJnyRh3YFwWUBdn3/kApLBVjF1yexAFrI52cK5hHCUAsgWHJ6tWOq43cZ9TQWaC1mgz4RQWNY0329tHOvchLJpHtP5hDhlXPqV26dh3nxJ4E9J3+eJ3nx9ivBM3piZWqlRmqn13Rk8hDO8nq4NoALx3BbR3uexGJpYl9hh4MNWBHmozMQ8UKpxGwggYGdkIFAIXd+pnwYgQcgCIJ454bPJX3btmH/A4RdVT7bRxAqgki8YobmZ2kyOIOc14OOZnZ8cArrdyO5/wIRTsZzPOiAAvGDnTVMMSKIBmGJeigTEZOFxpWFTbdru7ZqLoN6X6cQX3JrzyNrh0N1uMANCRcMzWINpBA9pMB/AzhCI8QRNjNsBWFQhHcRMCRHD9EL3lV8GZiBugAUxeBneUSHFzFtHxiCEECCSEYqDYFnLhGJl6cQp0B+s9VhHZV+kigRcpZ4NEZiMTKOf7eDLVhi7ocU7Ld4kIGKDzGFocANjiRKurd79lU+mmgQL7Rd0eURaZiGsdCMP/GMgdZgDQEBxVAL0OcQtTBtICgMdIcSgsQpuJRU/9NugreCEpEwY+dbVBWPMnKI16d9AXktIrmJ2sSSOniOzCSPjf8XGSL0ELgQJrkYADxxXyy4EJvAJmgGZW+ySw5hUSkoEgqZhgzpEw55ctI4EP4QhxfpEBUgDRfZlUXGkSWojQyhS5eoEuHYKn34D6fgZG3yiB/RO2l5VUUiZ5S3Kkgpj+X1jSiJiBuGSAAjj5EXGfo3Uw5BhV/SapgkX0llcZ2YEGvkKtzUEM6gdgO5EQkZCwu5hm34CrW0EBiJkRXJEL4wbRhZlR8BYSZYfaTSmFZkkjomdor4mkI3jwWhiJM2WA3BMBwhjDipl+/nmwTRRG4ZFfVok3sxmKmYEM8SCgnnTDVjg9ziEcXIl2m3XZOwSiNxmZjpjNAIkQvRDV6ZlQ3/UQWkeZHTBpZ9l0s+wmQqAQU3wwoRwZaOg4lhxpisiYOtYoPA+WZ2CW84dZ+Ut5+V6JdScSOV+XhpI5jVk4+mGJTP2RAXBG4esSL4khB64ik+0j/NtoyxcEfIJ3e10A4M4ZXF4AslqpWj6ZXXaBLahmQsd1FpyYUPWpNIIn71iSJO5mnuFKDUCYZctVRcZJz+2aMEcSK5MpxQcSSVlqCQMZjASBDMuWrOdF9e2GY0lZS9NxBkOHxkiGcxqREKiZnH5xMgCI2p5ZnmOZqjOQMoqqajOWCXkJ5/t545oxKQw4j/SHYqQZv/8FR0oqMCyqctyKQCAYFF1xEE2hCjkKhJ/wqYQpoXJWQ9D8FwUJdOM7oQjROjDSGMdMpWdGoid+alk3CgGJEKYioLoBN3x5BHx4BaI1qibloBX8kQ5OmmvhCaI9GiYtlaJuJtKCFb/giJ9sh45pYQkehUuAkShDqEAlqIbHIt4wZi1yeoRFGcQtgYkbqFhel0zGlmjVOl0CSbaMVc2AIpPsJWUDM+AVahJCGmmJmqUnlyq3qmChGrt3qrK8oQFVABzeCmbPpc2TYJH7kQbdWUVlZTeIqfKZIrCctOXvWYLnitXdWfzIpVNBVpszKSzdo1j0pYlNiny4qtZfWkA8GL01OpRgdj53Spe7hNwsiprtWlo9J2IuGusv/goVJZC6sKgvSaEGq6r7cKtGrgEBBwr7IqDSWhqwNbfexJg0IJiSqkqb8poduDNuJ6sYa4mDDSsHsJKyE7m0Q6EIvasV+1sfC4F6BIsgLBi2aCsjcxXEOpZCzLEalQsAAmPqNakDd0EjYLrz3xjMegs7XQswghq/t6uPsKAbiqEFWAuKPpCQAbp6lpoesZt3OZIuEodqKktooUZYdXIly7hyNGrSpJO7zypV07rWcblDm5smRrF1rIuSLktjYBt+poM57GlOjqWgdZEqcqC7ywhiB4DIFLuAdRtIh7uBAAAXpAtPvaDFs5qyFBKnFKKtSXaJ2yeb86tz/XZgAKaY3/Z7XbQhLpyKMW+5aokmw397GkKxRK6rrNKhhp+xD/thNFqbJJ1YUfMZmjmjM4NQk06xKnGgvB+6FxKL0IgQfJq7jLCwF44BAOoLhA6wuQKxKHVr13uIk/cgmWKxJp5Y5TVjlSK7pOlKy887WJ+LoG4WT7JSMZvKe9Gb+vA5gUi62kRr9Nh0z6i6k7/BGhihPviqoFTKZYObgMocDK28B4sLxV4BAzwMDSYKL/ChJ9RzTvWCraO0yKyRBrNL5rkr5glrUV+7HrZ8KgZr5kPMMbi8KKcWqTakK9qMNqBaEXN8JK8a68ALzOKLg8yxAzkMRPPAOCLMgO4MQVoLj3KhIA/9CiS0u5P5LFvLOAeTo5HoVxZgzDAlqDXTF+q5uYErqy4iaYN+wQvhbHljrHucm9WBELQpzHe6yz7WDEC6EHibu8gzwDVVAFetC8DaEGy/u8FWAPIVHFjcxt6wnJIxGOqlxvxca5LJnGgBq2AsHGV2Gt0lwUAImfZiPKCNgQZ2JWzhmdS7rMVSELBJzHQ/y3fCzLCkHLDQwBM6AGubzLevADhdwQTyzB+9rEp4nBAqueG/y9/3iEOdfFblYTJili15w2zsw1ZqvCNmEzV1tzvGLHxznK3kxq/SdZ4gyhm+sVrazHDRmHsWy8BqEH/tDAuPwPu/wDLq0GQ6uVvwy0ev/mz8CwjefqqyQxCsosWxABt6GrFsUKvwfNFdYMzUZ4cQorxjbczQyRtsnZVOS8iWKF1EqBqsDrAenMExOJlYt7ED+g0jPAy/UM0w6gBk/gED9wyIhbwR0RRAGbSwZ1ZzQ41bWJu3BRPppbo0bdRDnHqE9hdtDZ0Y6hhBFDvxodlGeWc5tr0UWB1Vq91TvR1SD4Dl9tEA6wxPA81gJx1mrgAKCNBA/xxId7qx8BAJZyL8V8EBzsv6h7ezYT1PU2XAKNFXyog89a2+67RQ8BiADD17k5Y44NqUq3facW1WtF27Ap0VshxFrtAUBRAVh5oke82TPwAwOxBaC9BWn9EBH/LMG+EMUeAdeHttoGAQqTUF51yjs9LQiyfRBppdtWgZYSqEIBthUnwkV/rVQ6/RTZHNyS/Bikt31QzRMGTVyDTdBZAdla/cqDS5ENscSCvMsEgQRPgARGEBFVMNPhna8aAdfUCwpyHWD9XU0qkrkDjeBxcXH1bUBaYaSbknNBWuJN8d9TVlPyXRdLaNxMOH8BvtQ1E3xXAby88NwOPpGXbRB4IMjzrBGafa8IjBGcgAkYbN4FUSpzneM1195ix+VyUWxAeDORY9vyGKRW7TDQqs0rIphKx7nH3Y8KnuDdI+RUwQt2XuRLcOQQzhCbrcvYjRAyEOhqXdpRHOUWIbkh/47TOYPMIOGecXIKbh4xyvzearEtHdy9rsLBfPAL8+01L7yJM67lUj2f8HYtbM42iK2F89fD5wS3JWJQDT0U6OwBSwDdDQmecZjkBbHkuFzPgB7ogh6R4L2mGwEKGMwpubSuBlUSUJB00ES/7i0nc9FG6LhCzFUi8AkwZt7bZi7qL2Lqah5+TRrnU9bjq47KYyh6mRXATJHHWr0EeQ4RNAADNMASxTCRE9kN/jCeLW3PBwHsbwDsRNvAaroRiB6nVk4QrY0JjG5G2WdqUJDiKD7tKxlslg6qzEWcugTCShbqv/3JN+7FAk7uC/HmPs49WKaA3htgJULn7V7kHoAB8f/uEJUgAjYPAyvxA2Oty3oQ0wqhBReOBEgABwfwD8B+9G9gBHegBTZw9MF+EEiwBdoN2p+tEZUiKZeQ8AOB3i/U8B7R7OEIMRHvhZI+3FyhmxLR2qGS5ZUT2GWe394+E8ql5n8KGc+ke+YeziqW8jqT2+TzCODT7h5A6zL/EA0AAzYvAvSuEniQ0imNB7y8ENst9d09EEdvA1qAD0ffy2pAz3rAzxixyJxiKdk1li8kCF6PVo8QjqzgzO4tVnUhwrE+EKLEm+bDFBwLTA4xCt0+FWep4iHvJpFx96Sc93ov7hPxCY9QjHT26jezC0gB8zE/8wxx+DBw/YufEtKNkfX/oOsEsdm77PME4fRPzxBqYKvieRGi3yhxKtfllfocwQqQ/vAPkQsvNvFzcSOzLxDPABCCRgmaxEeQIIMGEfJJiOnfQ4gRJU6kWNHiRYwT+VxiyDAjxI0MOfL5WNLkSZQVDyY8WPKRwoQpZc6kWdNmzYMHHwkyufPRz583hbrMKWjnJpsLDWJqyKcgpoNMHQ6lapKXLA9LMCwx2aASDbBfq5bsdqxYLbT+PkKYMaOKnh8VZcydi7JCM195a8HydPPSpL9/AXycJOiSIFAkx1J8dErVqUdQTLIyWnTxZcxCV3bkM5VmVIUrczJEiPBSZtQPQ3I8XbIjRwAinTIEPLtg/2zDoE5xLs2Zz8uOo1JjFJ2TaOmcL0ezRD565U7SMJUiHF49ddGWLn8aDWpdM3bFNpUXZpqQNNTCT71T5cXLQ1auJRvMRzC/wfqHZ8+irbC27du4FsvLl1oItMUvwAC7BJSPQJkkscSqe4QVVibMZDKfBIEMPw6Hm86jm3IqiDTRQlvIsw5nWg3EjwzzjY/YXuTNvEtGsXGUkILjA8cdSUxxs+w+Uq645lgyUqmOiARyxhSbRAk7nkrSqbILnXxyp+TCs2kTqDojCDmowtzENitP8sA9rTAwCQEELnCTTQ4rMAutYvrLCI+2ZoDrsir08gUWtGy6ZFBCOWmQDwi1xP8MikdUEeSxKIWsbKdTyrQUp96MUhTT4mDyUqFLMJnk0o9YE8mkGjkbKdVBN6qx1Rt3o01G3xY6ZZRHOiTSpKJq7TVTWhdCssToqCP12H+g7GnS7pC9qLJeq8LkkfSiwgQqQcL0siBnKXLPAwzCNcnNLyL44gIE4qxnv2PsxAgPttzSA7MB0YLFlnhqAoXQQYFpsLBQN10slwlZOaXCZYF6tFuGLdI0U2kTeqQ85wwCBaFJJnmmYZD4FbgiAF7lDEdTS17R5JFoTdIgXZs7aUkSoez1RWBrfpFjK5WVcjugcKYotN92WgyTTbKNyuhsr52EaPUaLiIKqEkgIaMIqi7/9wZCbjC36gi886ebJXwpps6P4GXrrcx8EWavWl4RpiZCAQPF34yYgjDSzBh9rOCegBLaZ8CPZHksppxDLknEDBq1YVdZO4mj2jgi+WTKTVZ55dJaDu3limUGD3PBbeYN8B+x43VSo0iPqGiZMUulMz64NDpMpdFb3Fmoo5BaBIy43loUQtjY2vfq/FmigrG7cfciCOBta17MPCGQbVjenikwBRnM6OLDLh6O0YIj43XCnVhRHecSR8uMtmwtRu7iET8us3GOTuLEsJD5hZUjJHOcnKGBSK5HxYoJh4AUJEl57ldGImBviiWsJZ1vPTprEepyJcFkQcs814HWta61/y1RMcUZyMpKuLQyrguUKwJu6tp6fFGPWuynGGtp3tlQUwthAMoWsIAFTTIWmAV9RFQX815qVEE+RklmZxVaGAYZlpgDym8oCkSMYaroFGQ1biMpWZVsRlKQL2asIwWJHxkD05nEHElzlnkZlpJDRfD0j4GfG5wTOcjGCmboghisjIliNxxqjUkq2VqaGCfxiBFe6j1LAJeaSsImN6ErXfgZWwxr0a6PVAACm2xLauzFw1f0UCbYG5T2MOIgIuINM6pgZaNUkYueUKgxe7RjFqEDNFVe5hGgoJaGCHgx2pCKflJ0EgE7JJ1cXkpwtbyjcaT0RlpKMI4LsQ6XOrO0EP+2z4OKRJO4Hkkf+3BIhvzJpCbjlRppAIqHtnhFLWTyw+wJEVFVHA4rVcEKVn4glhPa0GJ+E52YPSegwzIPAw0KrNJl6iDmk9CXiOXQ21lJi61xVhozZ8DiMGyZzMwMeExiECw1y4k5wdZoPmGdXlxTKiv1YCrK9K0SdgUsM6UBh5aAlmPQ6SP+MCeehlOLcPAQFpx4xSh/WMpDpbKe9swnr6BQIYRVBQoEdeDlrHpVzCHQO8iEWHV+cbhTNMeX83tV/bqFUAOaSKPD4mhHo3WcSXGUOcl5yUmtEyaCeLCQXLLSmd7jzY/QAAYwqMRgKyFOnOZ0hhmpgDn9AYHhVGD/h7AIJTSKipIEldKUF8EEEcO6VKZqoCeMwmcya2KiaSp0gTKqKomkAzRiru9wCGEdUqwDxZL2xkESJdQWu6XGtOIRWZshTVsx86vTFSWaI8WWGzfhE9tWZxNPwaYHp+vSFMEUsBmphAhEAAPvwgCxOC3QR3wBgcZusjrpCCUPOQELX6AkVIQCxWYtUt8qVsqITFWFaF1CIVlWhYqhIzBWDVxH/ChwkN75BUMulpM0/sK+6/EYRZEFxQImGGjLtZR5LmrcsSD3mcoF8W+gdWKmeGcXsPNgCDfRiRR5ACvgis9HwCsCEniXd5RMbC2WZxFfNDa91mFnKWBRCk4Y6iQK/9KsEFM54cXwt78mOSKAOUwT1C7QZsAKFoG5zJliKvASf5OuQQ5TxcQcJkVMBsxaWaIrE11ZosJCMIiH4sdlkRjEUCnac0k6muimhmge7EyLOyTjv9Y4IziW2u7EeYyc5vTHFQlyeieNGXvwsBRILsVlS/IgfkF5IqDo7EFEXZVc5IKVUMhFHqjcqMjIWSaznetcFVpQgBoufaKL7XWwlVsKpiaN9UXUPC3sHTYfm1QpY9EE1XpWttq5KqhNbnKk/Y/QuBFppQl0Zqpbu0lgdz2I/qtJRKA7EkTt0ZdUrHkrUOlLY8bISIZFKkrxOCZjgm4YGWK2Tk2VVAe81a++5/8Rp92r8mlIEJTB0oOhtKPpwLEoA2GgpR72cJ00OzPATBQmThFR60wifyLX6IrgLNxj+eraVMEzUdwo61oahHVFKalCur2YVGDz2+K2DlZmrGiMpDt3uuOQLyAN6RiaN8iVXk+nh5rke5dkvvt6UFLpmRqBs9q/H9EbPmGOEtQKBz+u1biT3NglKqaGGqZmiFRUgR+RXyI2yr6UaUJyTNNBu1grv/PhPnrir8dcTEUhz8RIenOqJE2vk9jFeny+SJOQIA1FmPzTHn30pGdkQEz3TjiQnOQkh0PqoA7VvyFCaqWm5gO5WD2rXV2SI7by7YnHDkPXoxyYDJfbvfp1H3//kZnuJSQxKBpO3GGjUVCQzLSp0bYgqpTFWvFdKMzp9UOaH3hmYqmkvQ+T4Yl2GZ0rLRWJrI4szP8eD0S+COtffxTG+4p2a35A78bPK0APdaljYkF/Mf1Dund11PiA1RvArcuIyGClTJi9KcKO/lsM4OiNbnkE1uEzKDG8KbkMmPg/4kMNB+EXlKAGBwkJ/QOF/GkV1rCiBSm2lEmU3SA1hjgFU2mZoni+j5g5iYsjgyIgT5kO6buJufo7PevBh/gE7MAr7vuJpdkExKOJFhs0kEMNWbiK9+CFyDOBIrBCE5AExGqnnGqHjyiGzYs31CAqokKyaCCM/Su9UkGz5aMK/wF8ww94vY9QBShAQAX8jrxbjweqvg5RQkGoraM5iKKBCsMDBWoQMH8rtgYcCiCCEfsZlJABAEmkn0GJnMrZCAyjM0TZDRdZxBDDDhrECJ45sRuEo2wDqI7APiGsCOoDQpRbxQm8lj80wllEmk1oPKHoBaZRmiVcjPOLwvQrCRIwAWIkxiIQp3aAv7ZZLIwokLwAQw7hhHBIsqGChTPECFDblyDaHjYcDg2Aww9IApNQNXtSxQTKCf1ythLxmV+gFgmckt4jqZ3AhFD8DEU8JLq7jA4UjJPQRkgkQX/UHxM8mVEQGRNUqMMou+oINgPEjuYrxfSxNQcyllVUEb8bMf9rq8iJAESjoMVBZCmhaMKc6znzwwoqLIk0MAEMKEYTECd2aCf4Y8aLKJACgcZoJMN6i7qLyMZQGQxuTD3USAIB/EYNKECMeKVyRMSiuEProDXVicd53DYiohZeEorCgJAF4bnMAAAFIbmS4ASuLEGAFEj9OZnke5WC5IhMPIgzs70JOjGTyASHJEWI/BXP8TCNtEj1wUidyMuK+ISJ8QkKNELawQS78qEm3MDLML+rwAqTSMk7UEli5JBuaJtXaCeZtAiajKH44pBo4ITPS7IDuYj50r+q256r1KrLEMqibM1xtCcoyARYujNtS0fvWCAM+qpekp2fADYX/EObIKL//6sOf/TKUtFGrhzLNAxISlwQ3dANAKivB7sVWwEYt/QOPWpDibg+kMqQuhww3tBOv/yZt/oI1DJHIfwED1K82SmcMDnMlOgFLvGgTiC/zIiFknTMkiiCcAkXE7gDDjmGy7zMQMkItEALsUkRMgQ9GCNN01TDnzS14SgBDciD1pTDjCBHe9In2szDrYqgWnqJd5yW7cuJX4CKejSJZYhOCNmt1ChB48wI/enAbESMGaWvgTQVwAgZ2YAQx/iRUcwz5TJFu9QyD/Oo8QS78syI80zSuimaSZCdQlM8ptgErTSJltqm1MhP8zMJ/sSAOwgXAMWPbgiHyxTQdPiIA0XQ/ya5vyTbN4oQuQSprzVEjCJCjQzIgyTQgCTQ09dkKiXCQ3TEKCMxrj57Lj/bNvRghV48JedEveFAzhjFCE6Qu0qEU76bkp1IUcZAUifNoiXFiCb91IzYBfZssUIjUZlIBUxg1VRgVVlIDfzMTy9NEzEN0AEVUHcy0DXtzA6xP9DLGJ2ciAd9kAbsHvyqjj5NAjtIAnEsCQ3QUFUIBdqzS9TyoyPRRPGECCzJPTtTT8SISpn5PZnouFE4RNQQy3ykCEnULCXrQdRxPrjiDlIF1Q3iy9Sp14+YhmzxPtrBJpl4hE64FlZ9wrGIBYQtSZNQySXQCg8Y0/U4BjMd0F1txv81rdgO4YRO4IRJSLJT28cFMViNIKI7DcokKIESONmTYLWk7LsiDc+7XA7EcQ20WrkxGUTv+8ODwIaUMAz9M80XlUQH8cmPKEGuxNSVy86+eSN9FSYHcsW+bNqSGMwm/MMrxYhYaDFWldVZ7dKSCNMSqgeI9Q4BHdBXyMyKAJQ1dZJpvASO1VhRA6IHIdqLmKdkHY4MKAE7KAF+yICTyIU6zIVMCNQQkZlrvSo6conXEkJq2I5pmR1B+AV0PYmfFQQAUMyqkLuxNIn82ZfoXEWFITMDfLltldrhWFya9VDTrRsqHTQrRQmtFVmqQNiEjdWSMAFGygpwwVWzxViLaKf/tXUSjU2yS+gEAEDaf/gLBcEEurUIPgiru8Xbvt0HlGBZBKQKyhAr8AzPHKwzlSgSjeSSCoEKUBjEZXiSjHkQPpwJod0/zs2fkPFEOwpdef0IuXy51Z0zbzVPscpfym1CLmlUikgFQegELsHF+0xY/FzYb0ET3jXbj4DJtvHdjHXbB+EExcysnjRPki1doQgBP0iJ1bMn2WQ56CAuOcqygIo+JgXfvGy4QeSlyf0IYGCF0pPfUYrO+DUJkYvfbexBntkJarVfaBEp/x27goJa7z1ii2ix+YQKlNgFLUUN2sXPWDCJO/ArB8aPsoXgjKAstvG0JgGGJOvYSTDeUcss//0jjG7kmIBjpVSrCuV4SO19WZld4olwowzTyGeYlvJFDCg+CWqAEQ+miVIgQUls3ouITkL5XCGk3yHOiEwIXfRk4jsbndR9RUuuiF04JOviq25JhSq+4ts9k/bIigce0I8A43YSJSup1LcFBU7AVMDQvw1uYaBkmCRItcBlSmWKOP69yPEcM6Kx00JuOkSWRM4FSEk830cO4kjGiEkO4k0eOx6k2Wer5oxoXQFuklEm5Y/AgKtoj/bgXaKCv1W+TFC6lEmghrdts4joQP0zDA4mIszFjB3IZ5R4JQ39rWgT1Yr51DE50Yv5BZ51lkPWYUW2CEZGZBzGoCBWxWn2G/9t/tAk+btsrmiLmAaieWL4JJVvNglxjsIoPMmItb9cjWB1BpRL4VgL5gR7i4haHhR6ZlJW6Kyb9o583umTWD3AhQJWcxbiwuPtDOhPDUz8umcnuQRgaNeFBhkdJkHklTa/MeKLmGij4FSNHgvUrSDp2GqM+IRUmM/pCuVRFmlZqAbGNGmyHVCiOgaVpizKWrZKHRQ0hghQq42nlghG/QVV+AXCvYydzuceoIAeGOwdyIi8TVlnfdZjqaptxc1P3YVLuGlMaMduYepI3OuJYOREnmo7OyK/IYWSmOieAWvUaMVM/jDUpgj1vBYl7AVnEeUqNokl4FK2to6yPedyUOn/ULpMUpkHt+U/eP4HGj0Mzj69v1aFTQhsfM5nUwiBAeDpj9gHZ9XTonQWVNzWjRLoXYrcqkSWWU7kYaVUYJC7kIEG0K1q0rbfqtbq1vZBIFHiY95kXSRrpU4RUd5vcM6I2y7JWMjt6jDbt/bt3z6WS1gG5ZWbh7Blp1CzbX4ynR5slPhpoM4EDnVaTBbFTqnXVPgqUtuEhx6O8ZbE8r6IUmhq9AZtEKvqR2jvjAiF945vzACuClJdGoeIQWOa2UbYVOiE/sYIDDC/Wa0GDnFrlDbwoUKW9K1ln2Rep3iQ/FYNIkKU9aDukwgFpmIF+NacN2thYf7UrxJxEXeW8T7k/xO3iBSPRGBIc6o2bRjHCBmfZDrP8cX4520WMRD7hF74aOt4BPmczx4XZSA3CQ+wYvw08vpDcjH+XbN18zEupB9yiH0JQRcVVensLMBJAtgkGHv9coBmjjJZhU9whQ754184UWdp6lI43nfNiFkGy+OF9Baf5kk2iTmnaDsXsA3Pc+dgplVAiJAKJA4JYCvdBPu0FP4u9JLAgCquBkVfD7c+5wg+51eg9RRxEA3mBFRyikuvW+ksWTdmKvHRcGERkh8s9mmRQCXchExYBfwI4MvehBm2lDbftDY3iVto9VbP90e2dVUMBYCv5F2v214H6K5SHUSdEhSbmG4eC3nnEv9TP5ZeAHIgv9qK4IVRjnayXVCiqnaUfnVSgae/KEhRMYzCIIxTkM76ThGCIUerdpKaufHNGY6i+YmFR1QJ3Hn8wARG5ZJUR5Z73zRsj4gzT/Gi56hMAPg4vwiBN+2CZznfSC5QZxgbpEtoEkRBQIX1aHdM0EU/t5JXpW2M95ZXkAXa5Xjd9vhGrwgyvEyRvxRSO6OM+RL+q2ciUh2YXzVhsvG67d/F+AR3D8x2l8BpcXclZPdN+ISwz4xN+IXHxwRqIFdSGXpoSPqHsIWh9/ceXPpHWPpMaHqLePrPj/mol4mbwcg9RhYi1Ho48ps/lMD1EOtAxwQEvpSL32+TkIX/Vzhr/OCFBQXujABWMmSY+SKjazoq81z56PWZJGoUQZjNDpstSclooXjHSdF57X8EwGz3xW98zID8x+8FyBf6TbsFzs8I9Cd6YHBl6fN80G+Fknh6Wz/96Zv6EbtXZwkpKgKIR4IEChq46aDAfwoXMmzo8CFEhpkO9tqEaVfEjBo3auwUK1WqjxwVengV6+TJkSo5HuP0yqVLjpxmwlxp82ZDapcmTeLTExPPSQD4cOQD6qggUDiXMmWoShWrR49OQWlqtSEfQVm1Cipa8GvXqwsHPtpU9uxZhAfXbvrU1q1Ylb8Ozp0b9y6wUtD0llJpqxTgUsBs3S1cOBPixK1G/4ZC/CjTY8OSJ1O2yucyZpVfs16ubHUg2NCiC0rFhOmsZ4dsK7pKfbMTyI+pVJYMGUtXLNcOX76suZGmb903eV7y6ZMnn+JFkYIKK/wqVFWPWEV9rnErZ+cZL4kufPa0WalS50789OiTILdv2656PnfTXFC/rHPcK/ivSlh78+al7x9xY4gtxlGAj0XmH4IJqoRZZiNtxpWCGo0GlnhStaWQhQgRJRwm6m3SizMRPgQbSCCpJItJtuVG3yud0PTKKzK9yImI1/V0443KbWRUUknVaJNUqggC1SM/ZneZdhERBFZhA4FX1kRtlWXWJ5+090+VWW6SiXvwHQSKPD8yBP/YXrYAoxI0t/BXCmFiUtZYgJngwlhikHHpJp70MdiZgwVll+dYoW0lUGsPVfkIJmZt8lyHbAHqUYmzjYRiSLitaF2LwMX4G3A0AroQNcgZx11PXjXX3KcZNXZKVI+ocmeEnP25kWgbxiXIJrielUl6mVz5UHlVotJlXZgAOhg0ttgCjUrRsJlXKdGkeheAmTQ24Eak1HngtN0WtqetOx6ZpJuiDcuRQbheqNsmu7Tl7qORSsqRLCjF4pF/nLhI0zEyAudtcTkKMomOGnHX4ynePnSKdFEVVFWEWslK7kNbbeadrmV9MhKVWZ7rGny/iLxonnotu6xKt5RiAbTXKGz/VbWNzUlgnYi9fHNT4Go2bqp8LHnaSKiQZdHGrinTbrufGJsniSWeeJJH+NKnL9Uxcfqvt5OAspNxoIQbEcKCJIyzQsyccsp0UlFsncRcfQ3Rkn42eRZ6JG/kSpbCClcXfEvjCYwFydpigUp5WRDtYGTjBGcoMo+kbc2KSz6Szg5mp1WquZLGB6wbKbpW0Z69+8kuu4TuprzzblRvKq+E1Em+Lsqui780KTwUcj157VWPSkkeSqtTTacgkpfzzuRd5pXVq0qoePzJx5VhUpfIp4u5rAXKSjvS4dAAEw3gk6/EeOPcPF5zKOKrD5HEDaLLc89fAc3xRFNuYkxqm7ii/3+70wCaOm1cB5tO0I5F+7Ld1RCYtdwZB11g8Z3kBCIkVoAGQUhqm884IqTQGMZCUFLJKjbhPOe5IhmpSVRdsEENQNkiGoOzAOFGMrjBDGZ769NI43JICvNxhBQBgtMNg6iQ9vGpKPD7lEAwUZBJWC8j9lOPZ6CHt/1hBFCTSMUAVacRWXDiI52QGqZo4qJNaaRTnvJWqG5klLc95IFre5l0BPKIUUwlF885BXaw88aGjMYwTzpI9DQCPSl+olCU2QQ2qGc3PLUQhjD0C8vMZAuXCTEijfNhKHb4uB9aq5I3rNz7irdHEZnlKwkZSZXaospFFqYFhXzlJn6FpyyaaP9STfuifzJ1wNrN5GY/ucxRHFgQVInvA2ijoClVoZvLYQZzfeJgYRQFJVZmZBWFdAUqsClLw1BjGyP7xTY+5UhHqiR7yUoWJT3pEB+ykxQB2CScOqlO8YFSXBYbpYi6oxLQtcUVRZLMLlBhuimmipawG8m9QPLFSz3nJQc8aBk7hTPd8QETbHTIPSE4uUycAjRi0worPOOzB81qJHEriGTSUpaVWAkVLl3FNrYZl198ghoje0aqYHgNCxAjhhwx57JKkc55LoSdmXTnSFrROGtlkqiTI+JF23hBlE7LowRRCS0OYrqkde4qrrSmK3axP5mK6YokgujqbolW4cgOaxH/3eXNlsGHU4BCa8ejqvqgQMGTdlQyfnKbn7Jikz4aBhWYqB9cVKLNVTCWsYYhHSIRiQ1qikmnw+BpOS0QDWiwbBhOZQgpQhvaUFBgJLhYqrVI8VnF1fM694zqjz5hsVOi8iCpzBItxKKMVYh1inibllkVqhJnkEhfa9VNJyYxk33JqK2K48mCHijEgSBTK3QciFgI8loM3oSwhTGPKhM7EneswhWMRUV5g4G/q1jzE9h4xiaegY1eTMsCw7jGMIZBDJVkw5HQiIZPPyta0ZaWI9zIobW6ulpvtTYjbfuKt0RD2Yi8y3n6c8sncrsUY5gXb2AVa7eCi8XhZhGX9FGu/3LHyJEUz2QSC74nPm/GBwp2lEJy666sLmgxweLkco+ALVPCC8iV0KKxjC3yKmixAabg4BPb+MQz4PsMV2CiDtPKL371q5KdApizsJghMNQEAGgBABRlBgYALnGJo4ACGGw+CiZAgYlLxLl3zVFicyySKNe0QrStsEaBN9LnHBI6wTWzU4USbUq1iQc0cWMmXhdsT/eJiyuR/pTmSBNjhtwWwx9exXo5sgFluKLDpi41MkKMRUyM2Jap4AQWj+ua5HKCxStebq1fDM3pntTGphSEw04BGa0IRJTbPdJSTppByWQCw1myiTGSLG1Qg2MVyKBFC1Sijm2gAhtPNp18P//RC0h0axjZyC8PPDuS/jpSP4EDMzDiLe94j7kUYwZAmtWs5jcfpcxs3gQoWCGygCcFFMr0TJ8T3goUjIQbmFxqPA+9LchIheKNnhDG/4pdSU+6iJXGjsJ05VGb4O2Vryx1h9GbZFoYwxi0eDkyjGzkU68CB97qBCayqJJYwDrWsk6NiyZB6583hMW5Xi2M1RnHUWR8QjD+67j+yhS17dqvnW6iRjgg7SK/vMjj6HqRW95yZCDDHOAAB7e3kfZSF1K+2ziHt4bhjWzwIN0q0cc4NauskwHDe2uS973NLPgyr5nfhmczKwKOCVZsgoKewUUrIt8KXDCcIwEYLaFRe2j/AyWa0Y5uutMvzfGK7WlBxlYYQeSoP5vg4C1TvKZ5Zc7YmHM95rafOWOznTUs8v5EZv0i0StDa6GbWCPKpZqLkV71Smoa9MbG4Lj02BRLL78wqDhP3lJtk667vPvGIPvXuy5783Ib5VPEBjZ2YWVv8cAbda/7SnrqyL2fbC/7Ecy8xzz4fh++/0dhVcABnIIVBuS1AjdM3iKoxFFlXpzUDOd13uf1Gui5zei5FoOYHrKhnqblCk68Hs3JnO113bXZnjKQ4Coogy+lQnDt3BX9nn8kFwy6yK1VzYJR39gQFR49mvMBFoP8mMfhRPOBXBS9xbPdRDIoGct1XxKyHC1c/9vLyR63ZdMugFU4vcz78cAK8MBKeMM1CEP2fKEtfBksxJvfzdu8mVmZEZ7h/QIoAFxSJJ7YIJ4qxNfj4YIdckMAVB5H4IJRZV6CNaB4IFqFkEavSSBYWEwFZkSDRYQoOZO3lFJZnMY/3UQ2FVJ5gaC1NaEmKiHM2Z4iTBTOfZHfbMQuJJcKtpp1DB+tyYTsKFcN3tOC1dgEalwzCeFnPN2mNUV75Q1ZcYTYJYMxAKPYcSKSNVa1rQIqcBuU2dzNYOEKPOMK2MQKOBKAdRk0cBabPItg6J+budnWCB6baQ0m+Bu/Jd4jgEIk4pRncAMusGMABEAkrMQ99NnDRZxj2P+JY3Seol3cBP5YIipi6VlOLd6MhejKuuDEJTZWzFkbMnjfMH6fyymZGzyX0OXcKGoE71lk8FFG0NUabNzaviTfZ1FfLq7PBo2UoDyYD0KIWCjRIUqMcORNloADU3CAMWzABtwkTj4k2T3h2RlZFZINJUDjM/6jTQQAHr4jPBrlPC0iRDAITN6MICTKd2CdSijCBijk95HdQ4pdC7SAEIgPT7DaJFxkRrSIReacf6BYrR1dRxwfdK2WDTJl86VkSfYJLlpH3rgUKqAgUyxADOCkYKpDy41DMqjDOJiDTyIDI4gPNDoBZDKlSrwjN1DAOz6AZHqSU0rVQBKkoqjLIxj/klW4AQdwABqgwVeWJhbMgRCVZVmaxs6FYgu+YFuiGCvWWlx+1sEUxA1mpmsQW3ZoF33szyDx5ZKJBWCWJgdsAGpuQD5MZBA5wQpAZmT6pkYEgGVSgHZipnV+UkAaUWcSpBLlSq6EZneOxFiymllGhL5opEg+x/DxxBllhEcGha59RW+eZ0pFXVasp2s4zyAx1ieEmn5GBHU6gQIoQIE+hHY2KAVw54Ky1nfSysQAGaCUhkCYBSakT4Q+BE/gnAqqxCmO5XuyFW7a5kZ0wk7g5n2yZIdm1/NZmoI8AgmhF3qNw4s6BGQmaILmqEI4KAqgQAf4qIxNqIRUaARlqEFO/6KP8kQqkKWItuCHvmBQ2OdGVOlOtKgjEulNrCRJiZ5/VCIyThuX/gOPKsAVXAGRUgAKsGmQDmmZdstmOoTbcMZTZeiUZAIm9KJ+liWIlmhGqCBQWGkqVmluZgTBVGkNPkicrgTGFY+YvJSRFRkaEGmCpmmaEmmQBmkQREIKNOq0zClW5JiFpopBKEqziVCTAgWUjoSgKuqJGepGKkSVuqVTWRp3gOqOkOTl3OV/SuqRKVlYviiaXkETHKumBmkkRMID1ICufgpUlqpCFA+lKY5anAdbWKV1uqZpAGpEJNegHipbySpHqCisjuSOPSvYTBVJMambcFtjdZ06bEAyLP9Ah6bpsYIBGGhqEHTqAzSruuaJqDIEuEhrqiBWeKkHei0ot6rlSLAqia6loV7CigVFliLdVjBdwFYMr45Ut8Try7WckhkDGgyrfhprE4DBBExAAvhovzJrB3SAAGysmwzsWNhstzyRs6WSKxCob75mt6rEMkBsclFplZaqoXqrJz2YwRJp+7zkyySDtHkfTpomB9jreebrypIBFfjoA8BsB9QAA5iBDugAzYpIwVLrkaxteK6PW2gMLxaSz0omt76m3SbtoKqna5al0SZtUGDCifrtxX7W6Z1toDAq2YBaEgpmC6BBDMRAAZynGOjrBJBBApwA5p7Ai/5rB6SAAFj/AQiULQgYboKkrema7pauD4BuyV4uLE4QAey2JsSyqmmEK95W1N4qrWckl9/2ru++GFSS7kJwhrviDAdwg8vh5GmWZgxg7UIMAfRCbyKOARmIweVmLuZ2qACkgNiSrQ6sQdmarfBax+k+H6leoDppCV++1OvCrvveUN2Ga+3Ob+3eyOzOqmSoYK36ru82reRE6/h6EhoI5gYwbxc47z9ErwKPHvaeABWMAcs2cIHqAAiYgQWXAQOkgASAb+iSbQCnRvmGMKQSFTKo3OzFwE24LxdkwfuqD9DmrZ/Kb1Acx8AEhRYJB4olaqLuBA/rcA8T6q1y1wdXUgEsgBG3QRsU/8AeKIQC00EgEMACSxr2UkECWC72Rmjolm0iZLAEhG/ZDjEI7wlU1SkPVqs6FYAQdIEQFEJGuK8bZwEX5AAgoIBWBMEe5MAKuzEROAIRyNgL02/dGirt6m5qyKfQ8W/S+sR83qotgrEQMcEevMAd+4AC+wAB1AAFHAEUK7D0LlgDZ6+P6oD3fu/oOrJrNNPTjnEtgmmEqjAXtPD6BDIn2C6OJC3ORQhuxqfgJm0FzpUpc1z0+gAld/I/SjCXZvEX/7Iy64Ye9/EyPzM03xAnD0E03xAFl3I1Z3NcuLE2d7M3T0v0frM4jzM5l7M5nzM6p7M6rzM7t7M7vzM8x7M8z/wzPdezPd8zPuezPu8zP/ezP/8zQAe0QA80QRe0QR80Qie0Qi80Qze0Qz80REe0RE80RVe0RV80Rme0Rm80R3e0R380SIe0SI80SZe0SZ80Sqe0Sq80S7e0S780TMe0TM80Tde0Td80Tue0Tu80T/e0T/80UAe1UA81URe1UR81Uie1Ui81Uze1Uz81VEe1VE81VVe1VV81Vme1Vm81V3e1V381WIe1WI81WZe1WZ81Wqe1Wq81W7e1W781XMe1XM81Xde1Xd81Xue1Xu81X/e1X/81YAe2YA82YRe2YR82Yie2Yi82Yze2Yz82ZEe2ZE82ZVe2ZV82ZldGQAAAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhgvBRIh8opqhiiSPSdEqKJ6ooIx9umWjjjDK2SJsgJZ7II443wqjiJDqWBOSRSKYoVpJM5lgkRY8IkklMIIBgBggLBUABLq1w2QoppIQSZiiZhGImmZlk8siabPL4iExBrihkjzLGKCMmJhL5EyeT9NlnJ392AqighBaaii4ulQMoJ4zy2SefkDbK6CSRTnIJJjxxkuIkfPTZKad+dsrHKKPS2FSTqOJoZ1aptuqkTymS/+rqjJfIKOusqaaEoqx2ovijkLi2Siewr/rE5povVWmllQlREAAu3Hj5JZhnnpkmmmkeq2aUobQUZ6/B1qkiT5MAWm6ggxaqrrosTVpopJLGy0kn89YLaTQ5YXIJp0MKAqqoovLLqVLhFoziVAbPKghPtybsMK4nPSwxxD+5uWa3KlV5pRUMCFDGsmYUlMIDkTwQRBAopEzByitzE8DL0bYiM5g0Y0vmSuBOjCMmJ2J6E71/lkvouUOba7SgnLBEr7mUykvpJZxATWnT8VKa074BZ/3vvyrWapTOuMrqFNiu4kT22UkamTPaZ/uUiSBsppmSsstKUEMHEphx5bIDpf/Qwd8PBB5JJCerjALLzsKMi7Q1m8kNSjcO6+ucPqKKJ478/mgT0UILyvm6oMeiUixAQ1puvUujbm+jVEfdyU37esovirPLyPXBQ62tsMRK6c72jAvX9PvwSpLkO/EPGxvlmjy2pPEaejNrUAcocOMsN9zIbE0wwdR8bZrgH8t83CZNTmzldvorCM/sm8hznOYDOUnwM3U+6Of2r5sKJ6KrRC+k/5MXpKAmQEk97RWb01rAtqbA4gGlVMhL1Ym+FkFUCa+CaDMSBslGv53AzWIdzNje9JaQIFCgFdj70rTGZLNsrUlNMBTflEjCh0eYyEd0smGJfFYRPB2PdvVLhef/OiHE/KlLiJ14hS6SqLR6UQppkkrd06LWKKnF6xI2+RSo+DUKBs6udqbyyQ9nlBGKBYVJMcKIBMMIkw22jYZJGqMbi6WTKH0wSjBRVkmkNL4ZhuSGPxpWj0DiQ9phTib2m0Q1fvK/RlLkivSqiew+xZBa0TEn8DuSSH44wZ9Y8COfbOMlb4IjDY7ygqe0iR2XF8KpbGt8m+yRLG9kEkyA0ZCT6AVM0KUnnzSyURWRVykkyTUsMgRguPNgk3QVRzZiMm0abBgZXzLNnZQSjuPqSTU96KYPYuURr5RSSGTJoxPZUCWXQ+b8+vSSzgkRKFGcl0UCyChjIlJUteqlQvhg/8lOWZNJ1PTdPzWpq5yRqpXMzOZAFSqSberEoTkpJyux8sq3vekj5LyhiVxSu3/5yyXq0idPXqG6pFXkFfTkBALvKTt77jNrD4VmTGSaxRmJzVtIcglESblTj1xzocncyfiY903xXbQjgvzRUTlqOxSloiXrAgpJ7fU6izhtJlrslEsTskBn0iR+qdQpQYW3tplm0qsRCytWe9qRn8aUoQ9dJR6vYtSlakSjGkVoSy5nS0NCFYmCkmqj6NU/q8oLkVgDVUMYyFMg6RVOZf0qkCTr1oQ68K1wBQlbUXnZOnZzrlY5FtwwtpFyBsmucDIkEFcS1Z9MtV4rteprO1GKWv/ExFIBG+YxQeW1mqztsZxVK+QmW1M5sWSzaxVuGZVr1szixKJwA21VRAtOjqwJkL7KCaf8BTDWAraqPkGpvWJrVV3E67ax02pDPiWq4K7ogcQNqJzQmto6rQS59XWuT5krSv3aRKLepGubqlvackq0IoGM3A19eBEFPjUlhSKdVOlJ3op0oxQqbVSFV2Kpli4WYCKl5lg9GV+c4perY2zwjHiYVv9S1sUbOXFzOxvRbsKNotGFmx8x8kED03chv1rRLOPEYoh0oqtFLgkRCwWUasRrw4/UxWtr285LJHarCOGnp36sEmnSuMECLXBlC2pciZwVoBO5JXA1y1+xtrn/ImNu7JdvwrxuFrWPBTbwmg9iIz3HKKN2mt9E8AQqW4Z4JEvuhIR/cowMMwrKj3ytSquMW0utd8tctiyMHSKuXKlRXCbetEEgGK6JlNiUc3Zvpu8qYxGLOiY97jF1oytD8IGPTNUSE5hQOBETuixmrbCGzFbIwmqVydbgfOHyhnpXH+951HQSJF6J1edDLwSXk0gyogm1RKm+4rWQnkgtHM0o27akwx3G8kEYC2sZvUjF1J4VvN/ManpzsknPLsghW5zqLM+x1RYBuEAwGFmexDrHFqurrRf+vTOF6eGtiAgFspe9Yc+sccbGFrLDOdToasTP+RaIDuUELtOGGSLY/7Y2SJa8xML25NsaDvdESErzUoCXw/uKHQAuHTCzVm7V+5Rjk246kZzdF+BkM7PA5x3UY/576aZu89OhjrMagpyVdVU2w4+d611H/CEVtzixi22trccw61HaMYIBeeOH2HBy6PPV2xMsP6ATRGB9wsSDlUw60iGK0RmmOUf88QpY0JwTtjh37GJ36VC1EVxwRhuLok71yL/3IWdOX6tGEZF9o7rp1546it6NzX6PWvSmp8nBAbzsrMNw67kWk5geQgFSiJ1mD4/91pN99qyH/Np2tNFDLvdzWb4USDxT+br9lPeTELHvLh8pzUl6jI4YHuYkNbdK0M1P3V47vcovn/99KU888r+63udfJlcdK3zMV17p6Ud96pd7/n/IH/Q1BrmNk6113sO+TNUSJg+hQtMyLbKXawC4e9uSLa8kWhkRJdiFcn82fwRBaJvSfg7RCZhgaOxkEs8XCyDobYEncxSBfSrlfSnBfZOAglw1Sa62K81jZr4zgc1EU+5Hb2sndafGELqDcu/Xefx1f3b3aSqibXzWaW4UFHZEa603PkyoLeC0cLiWawNoe7s2JmRXdhrHf3Ula78XdD6GeTS4CRQxP1nzUQ/BfH3yhRWhaCAYgoA3fSQ4Eb6AfaVQeBymhnu3T6ESfiNhdDLoZW/WTBJRcuIXhAo2KhRRJ53kEC//goPmN4T3FzF2YoSnh3pEEQpxE4Wj9Qia+ImfYCaZ8HCoQAqoEAoFGCYAaCYPcYU0wyUBgEJfEi3B0ArBICatYCYPp4qqiGueiCxiVk5i2Gf4BxFrODuT1xCpsEUdSBKp8IZw6BONJocfcQywAAucgI2wUAzb5yeMt1uO1xKQ13m/NYTrl1MoJ00mkT6ct17jGHB0h1oJcUuHSIH294M80WrzFRmreDMOgXtg8jj5mGAPYXLFCH+4lIZ+Yks3FxJu+Ibedni80BB1WAu+8BDfZnjXCAvd2Cf7woJZxnzm2FZLNwo5k4z0BzwjSXKfN4QTyIb+Jjk3uCktOZP2SBT6/zh+j4Frx/YQuLCLoSCQOuFs+WZyKKlGQRZyaihoJPGQ0dgT06hS38YQdfhteEiRhaeRsKB9JsF8ObdYIskSJqmTjviI+OhvwEOOl9dQvcJpZzkQ0yaJZnmQHJGTkEhi6Zc+/DiFaqcQ1EItuDCQBNkQQzaSC0F8NmKJBeEMnmJoSiYLz/iUPHEM2DeVC5GR1/gKXKkQtlB4nrmZJJFuHtl4inV0bzaXawlKOxh65jMScXYQkmOYCgGI63WXPph+t9JbUWGXk7OX39OKWIiKBheGnGZy+8VXQ9iHk+AMzgiN0bcTVjl9DFELGZmRDlEB1LmRmokSHpluDRE7nrISY/8ZJBFBm675mlnWlg3FX+pZl3Fik3SJfvFJEBBEdFCxYsUpJJHhib/5j8VGCoI5SA0RfI3IEb1iictIaNzFfCThnM+pE5RJjQuRmZqpmaCJEPaQlbVQC7BwkV2Zc6MJjrhlmuYEhMCCEubpdCoijzGGiPVXkGzFL/1km24Zf6VCKghDlkGnn5DBcK3YdcNpWsVpnD61Pt01EJeTd9mWd13VoM4JFBFqldW3EBz6mZrpodOpmVt5jSfRnV8povPpEeN5Q6cggWU2XMwFVmFqeRT4jgbanvfoaet5fqMgK/b5FPoIp43xenLzj0DKTULqjqYlmwxhgReITAskO0uabU7/KgsgKAtQGp2vMKUK0Q7fVqW1cAwXehC+IAxbWgu2sKkekW5fem19qBKaV54nqhIqeXxB1pt/xFxu6p5IOF8nWXprGqe3kqN5SaN6wacsehDWoos78TZEekzOBhLq80Wq5S8WuKR6508N6qjUGqnRyQ4McalbuaEb+g4O4QscGq62UAElkXNWZmVguWWoSozt6IjA0q7MpKdvF5c6SpKvhp4qpnllg6uS+JbP1KsvChgxpCYPIYq4BqCeFUj5xnYw6RAdhSLpxAd9taSJqkvTGguykLHWGp1ZGq7cuqEQ4BDC8LEbWq6WYmWWJqK6aRIHBavuOoEuMY5r1LAzeZTn/5giZYpRBoOG57krQ1invgpU/Rq0eLGABOsQDTeKQmWQQyqMILEJZngk6+OsCzkJezgSGJu1E8lokjqHxfCpJCsMDgEBFvmx0kASIHqu3xmWkFM5OesQNPiCcGerdAsK67kqtUm0fCZHL8lvuUpquYqTd5KfAfsXAxusBtFCCJsTEEgnTRuDmnVLKfKsDYkSWZuxWyuNkiqqA1EMHkuytUCuFAmuFjmyVTASUnOu6jZqnrKyexQjiGsQkiMIbxtqJKeS0WY8ClajMDJOaLRapmmPgEuoeDm5hIuBjhGFyfYQDEdaOLEJGfW4kKuafQUj5SITGJuxspC5PVEP0RkO3P9IpdsKuiXbEFVgkaQLrqgbNR65uvo2scRraugDEX+Go/3FfvCDojK2j75bSK05Y7kKtIULXwCLvI3Bf0fbEAy3uDhBTjaLECA3EqBChjehvZgLFN0Qne3AuQJBuiTrub7gC+HLEJ6AvmXrCSKRupZiUguxTvwUvzLYZ7FLEILQMDS7X/h2XDyqorTEloGLpsKrIva7m0EoSPwoPswrhQYXgQPKdjCMFBbMC9w7mVZJnZSaENj5sSAMriE8A98awiFcC2IbEgAQNTkHkgdxCQv6xPRLjGb6K8klLgUavGuaql6hj+ooFa0Wd/uJxEjLp85rNsRJmHr2FdorxZDKtd//RplXjBD+8LFcjL4hLLoMUQVgHMLFQMkeUcbmisYG8S9qfBKnEG2/N7c3jMN6S4T2CLN3zF8CfJNDscd5dcp6YVTM63+BTEqFLL20bBTbu70eMMU7cQxR+grdwBB4wK1cDAGX7AvSoMkKUQEVcMnS4MUfATUoCzXrBb8nYZR2C7fRxsb2Ks51ibe1+WetjJuprMupOZvYRc52YcsOoYl8GqDTuxCNK6BcwQsZG8weAKXFPMIJ4Q/pa5H/MMm+MM0VoAdfPM0ifLbXzCc5x8J86JG9PKQGfG3RVrts0WovUjnpLLx5vJs4BK/ufKzJ68cKLENLbGAot4Q/zBT8zAse/1DTGFyhlCnQCIEHkRzCAvHMCi3NDlEFCp3QCf0RnHyyfvgPi8qzxjMsPmh8cAFwvzLHWAG4D3EJpNJPCAPScEuM8FwX8rzS2tLSSjWMSnXRQjHTNf3PP9EN7UCZ1KnTCNHTHsrT0izNEMDQDeEPEADUPr3JEm0pnlwQzIcn5VPVkgiBGb0W+KpvcjLD95mbmLfVpTIVt/LAEAzW+0lrIaeJZW1NemaOQ6bZU8HWNs1o1LnadH0QkhzY/6DXEFABfu0QapDXCt3aF1HG6VbYBKHGTLqOJscKBeljYU0Vj61vfasVOVkrltTV5xfOxz0XrRdyRtWXqpSsMGqU070T/P/sz0sApattoQ3x2pqc1xCQ3qfbEDOQ3s/szNa8EQDQYVHj2wPBfKDQ3bK7y9I7F/XqzqDGKpti0gpRK6Ryp2Pj1YRJjGodz57tdiwdpE4rhjhkIhRsFTRd00vg1g8BAyIgAg2wEscQDlb8CrpdEJc8zQTR3umd3jOgBmNbAczs0B1hxh1WuQeR38H9uoFEv4MZF3rqdDSo33L2twb+3Hr8Z0XpK1a9GAkXcg1IYKI9yG75K4V04actCxqOARDh4R8uAgigEt2QqZP6Ct5KlWAs1ASBBy1eBTPA1wyhBrON29B8EexrRQ1BaJOQ3yUBCn5W3Pw91Wda5ZRD5C/GT5j/Z+CXneRMXpSz1OBiDUIQ3ibY/V9/Xp5EKbHndNptvQTh7RANAAOiLuqVoBLvoKllfuIEkeLQrAbt7eZ6oAcwzt7pndfSAOcYUU9P476/LbGXYugCEcEYPeFwIW0xbMobxatITpiKPsT3qeA8yOTJ/hifJdki54SVbumBCoSmxTOyZLVR8d0e4OkP0QCVUAk0QAPobuqontOji9sGUQXyHus/8ANPcJ213gywnesgyihgCQp7Duz/4GfEDc4uTRfmA5N5FSQ9stSCa0m8rm+W7boJ7rLRnruQsYTShc9MmO2+hV0wOXcOLLElguVLIcUa/ukN0QAsz/I0EOIpUQzE/8za757XB1EFelDvavADDuAQPzDbs+3Mdf5I59onO8cQAK8viE0Sp6BDPPLNhHzwc2HshfjO88UHJp8UMyqJlj0wjJ5d+QnHkGFgG68QTejxqqfdRTc/3m5yPsSoS+HP487lDoEAdn8BF2D3KiHzmunuVInbIWsQDqDzaqAGDnAADsHitq4RNm5lFJ0Q/gLwfP7UUh/1xB4XDG7tsCntKhnTmKWInJbfNMno+nzxfdbZduYQy+ZxYmTEFPEJDkxOPtQjWS8UwUzTGKDyDIEAF/AFX3ADeb/3M+/3C5HQso0QhW/4DnD4DuEALS7NIpwR9ZRzR9/CoJD0At/0ZOrjlf8vFz+n+Qbh55ETd5OjmD7h3MLbT0xJ0oFu9n1m2ohB9iFX7eD/Eo17+hYRbd4usXgCEJgECZokiA+mfwkVLmTY0OFDiBElKixSMU2aKBP/RYhwoyMbjx4jaCSpsVitYyhrvdNYwWUFfxAeInFQcwuSkv9mQHjpS5rMnA45XSI66RInjZNATcIEik9QqAkHCjo1sGTVqVajbuXa1etEPmENhkXYNSufgWin8imIls+lr3G3vuUz6m3JsHkBsA07ye4ktkT5Ar4E2PCkU3z5OM3LJ/EpuVuzTiWZ1rKgR24zG1w7WW3ns2LVRiZd+mvWR4JKpmb9KJNp2ArVzo67ya3/QMCY3HJmKwjTpNjB/5EgLsI4AocclSv/cubYGZHLOQr/Z+Ldkm7Z/Wn09RICUIdwnjzBGfS7S1++hn3lNHQSp/dJQf3WTT0hVqqqK09Nrd/+fwAbEm2suAri7SzOLONjkwAjy+uSukoSBMKwILzErsYezHDDDEcZBUIM7aKwwYXSGo2kzdb67LLOdnPxwBVbJHFGr1Dzb6KBWnuNxrlAe6o2gdRqK8GBdCNokl54jAoDDzBw0gSSIrhAlAi+6OiCkRosJiWVfOHOO/BIU4OnCtKrxcuuhipsqFKSou+SG2NjBT+tNCLylEeU1JO0sTjLLLL+YGTRMuD2xIuuu0gy/6pCRC9860JHifrQwkchBGWUxAbMq88fSbysUxwnU1BUFTc1dSwXG+PNUFYfEnU1zFprFS8iDSJNINzSChJXgzDxtaxZH/Jg2CYxKAkBBKa8ANkZi3nlGGjPbMml78KUSAZsSZqhAp6kSW+GNOEr7KikCMIETvvmnOoUViRcEYpg46VVLAIjs403ekX9TF6HKIWwJACIsnDSuujy1+DGRKTLLoU5BDXAT3NiMUZSFVT1xVTx5bdVG2FlDbONI8IsrUdSMw2TRwSaCteDBmLqyFRC/ofYJTBY4tgGkEWggQaaVSmlYr58CVyNsDWapJ58qUWacNe8pM2JmGIKXeryG/+IlTz3y0pmrhmaTS0GS0ux1tAOSlnmSv/FSzeBP1T4YEodRljusGhkUeIWKyYVY0Ez7DPOrht8tbJAQQ58oSAHNy2V23w7CDdfC/qtUHmJHdZYkhqohIYGaPDc51pCfwVNibjldgair5XhjTeOnmhMnrojpgKu2ntvEgCglkgpphaz7xE8qSpZwskO7zqz3dKKbRPM+CicbN1A2RhhuEpSChQATrFwQgshJfhDvpyiMC8MKRxlr8bsJhJYO0elWG8EY3RrtgSN97R4FAvP2v5/VtyNOpXhij5Sm8QjeueMeMmCWE4qCQ1gUIlKwOCBM8JDTGIyAz1oxCZb2MITHmL/NKPZQAuDAELrQCgDiHCwJg5QgxrKAxVbwAIWpWiPLeRTEKX8jhVUwZMqiMcf/snMIKmh18NMc6rOOMVE0gsW9aAysFNc6kIeegsV+zKYSWSRLVnUomEohL66zYhUQYFfGeG3IU5xJogAUlyoArU//oEmLZ+wj250k8VfvUyLmNDGrCzXpJJUwjgigAEhZ1SBd3SnO6mLSAtbWBPVrQ4IRrDB6rIlETio4Qeb1EMVMhgVWLTnKOQCy1JMaR9VCGKHO/Qhiui0xpDhy0RhE45mTES/qVDOUE7kl2MKZsT/3I1fgoKlfdookRwBEZae2dp/NnFHptixSLhqlQcUeLmS/xRykMZpVjuO8QqUBG0i3TEdIyFyQhSWxBM+MZMwaAcVAAwFPvFMCpwu0RRUqlKfuVgNVkxmmltuaiyFyxi+UjW/i3GKR/1JnuHsgxYDqShBwKRRpRIlr4KNSIz4w+iBAFfM0nhmNfoD6coQ9FHYdGJBk7DNbwjiG1/FbE/WvJwHSiIC4uRUBM1KCZfEKRFyugQPJMGWCYPiLaX5wha1iEp74KMm+SzGd9RJJdawBi+SrHJkYqtKviaKULqFVVWoaqj6POo8ii5uoqAgElqqpyeDqQ2jBbOLWSnTyzSCVDjHjEjJUKPXho5sILS0Dx7N5RupbUKXNLomsW5KgihAlv84zXrWs6Q1zpdUwJywqYI0zhS6WggDKrY7yiR0F5GDSJWJwnmEVTHzgauwZoelyVdY9QUjupE1sPWa0fwmOtgAOSVxfbrEn/TUPbnGa2ETstuKNmYiNeo1NnyFyBj1+rwirSxAvehNNH+lWJnSyJqNvSlGonBeElAWWkATGrX+04zQCqMWrxCGJ4IST/dwAgAaWQwOVxscVbRWwFjViFb/KRdmitWgYnUYqnSLUmPyzU8QMwhbP3U2HiE3rXuSKpw2HBzPwHFW0EWLdKfbGVhxFLDwE0iAPuHdPP6KR7JorE1JQoI0FAEjGOHpemvx04gENSYAkm9oayHD++aXlBL/US0+qYO1qj4iDxLCWmshHJXPgFVTfdMtgzG2Ibh+dS0Htk9L4TQVJf6CR2n7sJLc6la75miYsjQxbESKIuous2UVywxhhRPjaOJRvAq8ZklIUBFEZ4REzvrmN4EMkaB+B0AQkO9SZZiOnMjzPYWRj0CcYp9MsAJr7CLwRKoqCChcGSpZJrFH5RjQBXPKf7IMo5sHZd06Nu8yn56RUSC0l+mJz1Ybbaa8iFnnkJ7lh8Wus/NIFagTUQfGv/rNjGhMUxtrhAQmMEFFTKBoLTXa0V/qjqQBpDRhwGK+sMh0aY0CDDvNRxC8Fk6ARY012KLIqrN1UGhO8e/8zKkqWKHT/6cEisbOjOLYezpjjkpsnzObqCltNg3uBPZW5VaYucS+61wPhOxkW2bZcga5VARbMbBRJxUxhXF4AURjGvMi2xOJArdtXgSePmvcmCWntagDWli8Askk0bR+kTKRpXia4l6xt6gfwU99Q1nVQWH1KHqL0KkHKHlG0ht1wsJWt877v/+5+EXj5eClh1x5eB1QySODoJE71O2WeR7z+IMWP/OJ2qnI4i4aBHMF8qIkabC5zXNeC1m84tEPSU9mG2SPdAddhu0gemmHAu+J3FPpv1OFKpyeb4201qoi9or/SP8736adjSifzGbUHJuDKFGq7CtswAoz9llJdSAYp/Bfjf9NZ7fH5c7tU3HwdZXdrKCMZZjIe1yYTx/6/D3mNC5JEUxwBwyYIPs8na9KuJMecpLIF+CU4StOG5Gnjov3D2ErU9iKys53HgpQD73TsUYaVrfLU6nnF69UZlLk6zj8Azs4YSvaEw6LE5igAIaloAvD2KLcuARQkJSLg5TuGYUJNIi2WIxV4biB2JH8MSMR7JsiGpXgEz5l0xpmO8F/sLsACkAXNCDfKA0Y64VqeznAk4Xqc5Ls275F+yZwAqfvC6oZkSEZsoVXiAaNKK1xwT2HaL9zOb3SiL/OewTQm4hH8DzPk8IeKb7/EA2xCJlP6BWY8o3kM0MZxARXwL+mmBD/p9C//8AdPrC9dgOAgLnDS8BDAMAeX6tA8BkYgXkLUEgMUJC9jbufrABBLMSuEWzEv+ENLmRBkvCfuMs6ZLO71BKEZzJDgXimx/EVvwMSxfouHJSFWOAFHSSJNOBBJ7mDGXmHINw5oAI/l5iRI5O8GSIdiBCX21m/JzSX96MqKKDCUFgNLby/t6NEEgHDWgsZ2yggu+NEM2Qe5cOMA9yKR5BADhy2wqrAnJjACgzHCRzHcAxEELFAcnwLjdmoQMEb+PkYRhzBWVM9SXQIZeSvPKtHF8wR/9NEmCLFr8CElfOVXlis4IgFU4S5ktC+mnmSGekGdassXYSIM2m8dyKR/xkSOlhIhfPrF6PwtVvQCOgLRuGYv87LhPkzRi2MxFXrDDiEGKwzHgDMLv97hGd6ppfkCt9gqwzEPGmzvTwsCf1KwHIkR3AsR3+BFHIUDNmDDHYUQInIhPfhj5GJRxGcynrsinsMFd/LyodQGdZAGWr0FZh6GebzikkYyIH8D4QEvIW0mZrxAFckkZR4hcpiqomoSPCjkfErhVD6S4mwPNzxyYgQromzj1ygQihgyYWwty0stRqhH6dsEORJH/7ZBCIyEIHoj06cNztqvm/kQKcwSNgIx5IQxz2UwItbSqQMRADAwELEwCgqRKnKydVbwb7SnxjRH0bEpbxpPUv0Sv8BSUF87ErhhAjm2cRf4UTI8Q3Q1IheeKaYwgQEoo6EVEiSMAEPWILtlMsZqcu71IjP2ksaCTrzo6GjgwjBBAXChIhokjf7yINh7LxcoD9T6zyns88aSbirUxWQSpmUWZkAJUtB+AW2ss2SwAQDrTBVIM3SqEAnfAiiBIA+zEOlUM1xTBugJArx4QsIecCv45GOCUHB8iu/yhH9eTVHPM6oGD6waD0W1YhnSg2yfJx/9A2b3Ao8ojb7iIW2RMiF5AUMkDkGosv5skt1E8+kSg8l4YRX4IRQ6oSOXIj0w50IZYika8P/qM/5q8+SQMmTZAXINIusUDgxAisTY57+wMz/MsyuSWCF59wdPjDQpvDFB/VGktjQoJTE51HEiMgEqgzOGF1G4uRKZRrUidiFG13OT2wxqHCGvZuE6jxIH0XIWFhIYpG5m6FLu+zUiXwI0CJPGiGGUGoPwHyIUeLQ9nQV93NU6qhPWB1TiPgAKmQFPyVTiSIb6HIfQVC4/5nEmES2MWyKHYrGZBrEreDJOqUG6shDgbnShoDQ9DzBkxOEW30IQOWPa0VUDlOQuGNMblWIacBRaezETYhTiNg7X6EOS7VUTOUFmdvOh+xUu8RLifisitQTu0TP9oCIeGrCaYWILCXJkoRVLy0JVZhPz0vGk2o4+ZGopTsVejSeTYDT/4EInsGqk5zgA1YoxMNEQKCEVoZwVoGZUpCDx+D8mFgJ1yaaqG9l2ZxIBWtkzl+ZhqCIBekUyGskjU4wRXclCSaBV1Tc1AYBwk5dPIcI1cvikWtwqvYABpNlQqUIyYkQIIINjg/Ihaz9gCs0NShASdd4u71pMC9zi8pInom1n1/4hABNzp3EBDqiuomjhsmMDZItxNMESnqSxBINzmz9GJhtFfpJO4oJXKorw5zFhCTJCbJcOQeNjFTwWR8tiSGVBaEVPBLpBnp9BcrLS9BaWh5pjyd1KiVsCPe4vVV9wsXwtP/g2q39gCQoiWFczMWMjFRyxIBCo+SxE7T1SoH4hf+S6cxNENmG+A1T2tnIwFAJzNuLM1lkQ9liDL2qJDPDXTMXoRUvrF5kojaYQteG2IXfSIVzpY5OcIZKvVSghTmh/c7NtdeI+FxfQFoS4VenEopxUYrULd758BXijQtxcF2unTKSyITErEL97AqMzZsGYz3f4i9NOc6SMUBNBIVHiFuSoAaPxVvhyMOAwR7rubi9ZUETLRlUCEET1d4ws0wHRjEULolz7QVN5NGccAVM6ITFFY7IPV/KVV/LZd/N1QhwCh2lMZSmHd326MjTVYr9QrpW7d+vyIMP0ACu1QANKIkPAFP5I40dcrbbuq0s+5roQqbePc7hfQRQsDvqnYj/X5AaiONgD87TDXXeOisZOhaE6F3EOgbXFoYNv/mhfdljkgBfX5HOTeiEjemEHAbS9AU8zC3azT0GIP5c921SpwWGTsC0hSgKDg1Y9lOKnfyPEohiKabiksgDVSjg2vW4X2WyMT5OVyggMzRQPZ6RCbTD5SU6PHyaeqRjv7rjqDRRawXk3nIwd8leYXaVURzkjUmFVNDhRVbfGdncZ4lkdQudVuEEYHDagKXQwgAATFhiiShEz3TirxBlKo7dkijg+GO7VUatVmZRzJwPVlDQbeAX/bpDcJ4IO1STUpBjE+Pl4RlggJ7lY44LMAzOwi3oiXjlTxhklOEXZnZmjcCA/7aMOR/uVE52CPI7sklWEn6dBGBIhWXI5D4EhYwu3jZ0MvvQgDzQgCRw6ZxQZ/rsqAbGkXdmUUH4hDP+hXnjFzvEZ4CxvX72Z+ka6C81aoX+Qm/Vmj9O6oho6MSF6Gb20VSc6HaVhWq46E7VCHWLyI6mZJPmhFTAOAjNZ4GNvasNDnpIgiTIA7bmByuuz/iT1W5tO5te6kFlPp7+hXWVF+z5abOOiH7mYE4gar3KBID25acG6G11avxzWWD9OMeOCMwkyE244VmZ6kqlXKpGyEYOECB0Urvk6nUTwlYJh6N42k54K/WTwP7l33kT1K4oAbZOAtougZJIgvn82sa2tf+aZjIYCVfm22koQF4l+em/FspS2Ofc2eXEFuiSQezenuyvAGPsbWfqZgioPtdnkhfNnlyS8IBXkNzPBhCjFV1qFrpXCBZsfirTGul/UBPcyaHM87S0jo19uO0SsIN9yIlhROWu3aXfWuEORNRf+IVNQHDglZdLAIY9tMOSWO577mfn5mXFhohPQGzXCNvs5mNinsRa6fCv5O7ujpdOiIWpdjmJ8IB2PcXvdFLRXe+JMM/yi5ei++aEqECVjoh74knZ7ooM4IcSKIH+zglSkOtTJmil3l0sHFyWVfAylhdsfvCTdojlvnKorXA6vvCHyPDo5nARf2zRmJemNrGGLuH/GSHxs4yXiG5mQyaJhJToAMFo9J4IJFXveEFt2xkK6eHmPDwXjUi62G4QJdgHJYCKJKDCxDw7j2qf690TcNiENUxzKP9x+wAAB3fwKm+IK+/nLJdEDafjYBjgTJBuMA9zubiYeRG5//THZDLu5eFu8VUGE4/oWHhzjWDx80XfBrFLpxptO0fSoPPrTZvvZVC/pbBTLPXk++YXWI2/ANeTUcm6s6IRQLXJlDnXR5j0ADlXBB/eUJyVKdf0CL+Fof50Fgx1xC6JUCj1DZ9uVCejDCHzMD4cRnyeHG2Q7Y5OC26VZm7zkuAFFJdz84bxOpcI88RzeZmETuBmiztdeitM/2a3dBrJ2gJGyWBZuL76m7SFCjZtjZJJTu6meK6AcgR/hngpBWCAWnSfiKH2dMP+TzpG7FHXiHY3dXiP90PZlGLGbnkhIhEsHLjVd+6OznBvFUQGeDjfdV6fc4MHdomg12GXl5DW5Cwal29+3IWYDx+nkR34+qBIWPo85dx7EXx89NK4dmBOjbHURMxMTrZtkLU1+ZRn+ZaXiFIwd0+3IVDXcMQmBZK4eXfPeZ13YBUGiwfemJRBC6ukyo9hngbZhF0o+n5nlaRnZhWPCF7ghF2PZiOGevR70n3dmHuy+tvztUCnCgkk+a34etffgZwIBZOc3RHDJUcvcLnI1r6lY//MxHbuxva4D5BnSHDi9975hQaWj/l/KAVbOHe+T3e/f4RWCPxSr37CL3xWPnwxtmtjW5HGtxF/1PfJf2FuR3rMb+aS8IB/R/Gqdvpfl3GJgPHR5xdgEJiPPH1gy7zWggJQAIhM/wYSLGjwIMKEA3cw3DHAgJwBDXcoLBgiCUaMGuxU7OjxY0E+fAQJGinoo8iSJPmABPnIJMlHjwTJ3PTI5qacgnDezLSpJVCFzzb9IpozKFKkpYAthVaqJSxbpZYCs5D0Ktas/zJlesQ1UyuQob5+1Wr2LNq0V0WyZQkyJVy1aknSpTvTLklMeGNiktvx065NgTe58qu1U6rEiVv/yoqVqlMsyIY7HuNk+RWnVx8xW+YEa/JZAJM4Tbo06fQlTKY/gnoEihUmVqAPTuzhRyLDliU0atCQhN/slilVnvQ48njJuXfr2tTL8+YjTDdxfloVvOCmoUV/fboetGkpp1BvSXUazTv6hF+9CgSJaizZ9PLnn20rUjjykfTf5q0b0z8m3f2z3CYkpfeJYDl9osx+FWGC2GOpMAYhZLHQx1lmmX3U2WUNgiRaaailtppHrb3m2nwT5RaUKi2qkgsrqnhYkErIfeRfcmnheBNNMsm00ybWbUVdgekZxd0v28yIUHjhAWNLSxaUJ9U1S17HFXvtfURKJvBxZSWYVtrn/9aN+RUXJo106fUSHzP9hNAnMq0poHe7IDgYmgRNEiFiLXnASWSBXpghZpp5VGiGeR4EzCSgnIYaJgCQWREfrAgCyi9nytdQUh+EEqMqj0ChaYM1qvTRTDBNahZNePl4VEKbIKigkUe+mactwMACjS23RGlBKbc4VaWicn1CFlggcellKMU6e92Y+Jn6rH/RgdRfgXQGZ2dgdha7J2J9ghRoKoLOhyhmumxIKCfPEmTao6aBcsklKIFy6b3uKpRLi16pkkkuS+ann3H+rapVqzFpW9EjsyKICnpHDlVsKdHwags0LdmCMcalEKuvVl2ShYuyInMlI8gp12eftDY62/8mXUWiKh1NmGg5GzLcAnYrmg8q1klLvCQWroXn6sKhoR1lhmjKjcJLLyYHI3SpIKfkq3JBGqgCxSOhZkIqfSuVRHBHYq+k3H+PgIQg25tAfJ052RnFc5i8WowxVBzz+jHWSKHy1VgkbxnKWIX3fThS0V6LXI7FFvif1AlJN1N0Cxv2ySeuAFZdsREOHXS4jxUtH4adaOjRZYmCDKJpUNdr3L2gXI341pmEyopMHtJ1HNmUwtT4WTbZpfbash4r63WybvfJM8XavXHGIBGDsQV7I44U4YBzA1Ir2Rt+PfgdKY6Sme7C9FJLXxd4EybIBIeK5q7YiUPnED42IZ+jp4f/YYeod4aZylDzKEG8riOTYEXswIY1royKa1Xbj6qOQ7eE/O4+aqHcTm7WEVTIynifoEVwssO2ZxRGUU6xRTTwBpIURsMCKeRb+DqSvS6FYnsf4QYNCdesGPLQIOMzTvmoxZy+gMQ5QCLiZFaRucztYhfOSgUm+IQ/otGHQ/1TWuralbJlwEsk87IXvhSItVPE6BSqOMXXoJCel4jNZR4xWOSwEhMeWU4hHjxWHdMCP8xlp3nOQ6GUoveRa9jChS6EYQ8R4j3CBQAkuNAh4UiRyEn+sGxBdJbZZtISOU3HJpNpwSfg5wolTuOJUOzEg1riDNM9phNAO5cVk1YRK2qx/2mi8WIcC5LA2V3vA4KAgioEgTs+hMo7jGuLGBGSqpXkMimUqwnxPoIKDmIulHk8yzNQwTy2OauFhhSkR4YRjRZewwKInGRBCqfDRt6QFJCUJDp5WEnfESeZYMIRUGiSkwDBSi67WMUuXCG/EhYrij575Uci08r7zYdDpqvlLK3YNz6chg+gaOZAdmnPlH3gETESRIuEqUG5VJA4GA2Jwfyiz+hE8yPV1CYqVrFDY7lChJ9QkrOgQQxygrMj4rSAOc0Zz4RAMhSkYKdHuOFOoxp1qDGcp0KGQxd9JWyq7tnJrDqoFkXEVKAC3QUInWXQCLVEoQutomUeitCIcqhvov+5FCZA8ZHUUO0UPcxFJsxIE9ylyi/2MamB8nlMv2QCEwWyyUgrAlNtrmKactEm5nbxDGwQVFHRKGc5zwMSbwS1nM1w6kGWGkkbJpWp7oQnaBEH1YTUE3gF/V1LPdKcnCgoSGcxhkBXsYpRuoJBzxqruD6ySj5JCJZp5cRaFUJLxGFiEi25hCDi+sAedhR3liLJKSh3lrGZZGCaDIqZNpoU4eHkpARpbCg111hUhFUrunUFNrSpuQmiqbNCBUkz7HvOoYqWFEcFSQCM6t+mpla1LHsL48S7JIPFtiOGpW0HESSkpLTgve/NrSLclYo9+aysqUBuKy/kyrb6j8QFBoX/XmKHzuw+Irs4cu21mPlXZl6FmTQxb1BWmi2gNFaJPYZfMIyBFUa4YhvbWOI2doEKSLjLnMS4xpNb4o1hXKPKFiAGUKW0MaAyBRhOAcBUAAAMAIACAMvgxLxkBwzZsRnFbqaaYV+DqesEw7ShoACASdGKAZ+2qDo0GbK64qO7YLDQP1rOSr5bYPy0pWVWdReiFQ2STYTiwcaTlZ3cBxJj0CK3q0CGbnWrDPq560FRDK5HHBMuVKMHua4ezbpMnFpBTIJqckUnSKt6Cv/smi5cY7EqRiITqe6OLWMLbOLayAf6mgWaOWlwR2gR02nrNqa6ZURLNmDhzMHvyKg4h76c/wzlbEh5GIagsn2z3CspUQUY7n73u8UMADLTm15kBgU17n3vNgMA2mohBTMETAo8f4QCevbvnvv8Z654KdCDfvigX7wjZC8aiI1GcH5SBjO7BIVt/HzpEqujW1p8mhYmB3WoV6GMT6s81LRoAciai4nmFncznIjiJDrh3IaOOK2xtkwBU3vRFCu4b6rA3a57XRel1wXRJR3Yf+S4u5L4+yzQ7ElQaLGNUFt7FSQ3Odg3IHaxG4PTJA/11nfb42eswhwgg/I1hpGNYbTECXKnMpaxrO5A6g3e8JZ3mQNP7zYTnvC/4KVfguHfxRPcIxSwRisin/DFFxXQ6xE0xCOOaP+J16XiGGcLo2uUsrropegFUUaEI6u5ropylCnXrTFAffJPgxoZyHBDymY+c1SWdU/g2rl8XP1QiCq3M6Wp+NBJcuuh9ojzzk+Vsc2UkqywkdigQcVKZTLhlrze5WCnhdlpIXtOgxoc3d8GKrbhCmyDzJxU5sF+EzIMb8x9GBawf5aBmkJeQcPLfu8y4A3evhVe4bnGL8xGwu1ZKzSeR0QeLkje4imc9yCLV8gE5kFcVTnfo3me71wc+WRc7jUdjhVENWGOK8CPKKld95UcMogf+K1C7NECqTWN7m1YS/QCh7lScnmH6fRc0BVfZ/ygUzlK56VWMAnCKHCXBtZFd5n/VO8kBRN2V3A8U8NUXUV43ch9H/i5Q9l1IaeRH9itgvmJoUCBA9YQQzZcAw9MGVBQAvzNXdxBWf6p2wlNxf+NmbvN2+BdQpqhWGqAwibIGb4JwgGCBsLpWSugQEsEQCtwAwRaA+VJ4MJhSZZcYKG5yl60CgdaHOgtznCMoO6Q3k1cRSZU0wnylgqG2sq1YOx5Iae1AO5hzSTUIPB5xGM8yIjRh86RBi/G2mgI4VBdFF0sX2pd1xLiCLHBWFJ0VxNeB4LUhKxYYUVwmteBX9klgzFgoyt+IdiZgxjqFjjAHNa8nzesYVA4QTbwwDCs4/0FVQthDDRUDzT0n1MA4Jrt/9sAslk+ttkpYENwHOIDKmJLoEArPGDkRaBoTaLD+UhXNGTmtcrmoc8mis+Bkc+xgWIoNh2zfcQJctspplwLmlwXboAxkOQGtIAQIA4qzZwNgsQq+d6H6aLpPArxJQQv/iLy1doGLppMnEKl/IfZMKHo1YcTno13eEWcsM3bJAU2auPYlSRJQuU2GsM5GAM45APiyB0P6AMP8MBEJoXkOaBAfqVTrRZCwMVx9E3TuYlWSNsK0p4rtgAHpCT4zCJLIpFHnAbNxeR8zORpkMaGjAZOLhqtFSFZ/sheSKFcRCGNrVE0Ms8mlBJWCAEHlKQ6jF0LPOUGqEMyqAP4tQBWgv8PD2SDN3jDCqwAWQaF5D0gLgRBapZlRb4R7yijEN3FYV1TUFSmFybDBnBADMzBJE1CL+heLXYEDs7intTkdfjlo3zEXwpmxbXWa85HPTGj6aEF9vFRNW1fVixADHwnB4RnPnwnXfbQGpomJaDmdH4E5BUkLnCDa64nJcUmRV7k4eDFzI2ifLYEh+EcfyJnFClncAjmoxRnQgimZRgo8/3Ofl4H1R0TTexHKUbYL2QCdzaoQqzhCqSnemIoQjggN+BCAMSnh4KPWR4EWtImpEUXSTxOYpWontBiS2wYgArobOiczkFnXiYoYBImTBAjjG5XMp6Kh/hECWLOhQbpQGz/5WmugBMoaUGwJjdwQwBEApQezokaRI2kJeJUlRFdaUHY5cwpaELcol7aKGjg6HM6Jy/2aIERBybYFZjKUYoyoZVMRwlqzpwuaXo6gZ/OaYhSaQBU6Z5qHH1WxJaqqL78yJrUDG42qJg21w0i5yzu4HLm3JqiDoKSKTr9znUW6j8k6idKpJUYFshpjqZd6Wk6ASX8KZhyAz1QKTdQwAOAqr5kaUjMJkaGScz0SMNsJKTqnqSChF7qpaUGh5r+JZtmaoF5qq2iRHUmmKKUoilWR0xxwJX2aas+KZgGwHsGwKzW6rO+zKFGVRPuKq9KR6OyFLCuZ6Ry6kF0Ah+M6Wno/yKmksaxGkQnPA28JhJ0ic24Imr0Td28OsszWJNHwg8thCaMbqifKgC3Xim4DioF0GrAFguuEgRcjA0P1cxhKch0JKm7CitedsSG0VpzzkeBDqYBxUu/9pCqfCqYSl9cuAs1+VjXrUIwYGuJOunDKsCcTmwAVKy4XiyaZOxAtJGiqoxOuMmzPRuCpKp8rqTM8afMpax85GiBOufKIl8zGq2WItNwqAxAwdQJupzXJQPP7ue2OoECAO2ryioFoEDRFgQI6IAZgO18jAnf8i13KWYPRePTdtClBQN7mQUR1CVx0qvOXS2lTgJFFWu99uXKhghpVK4Ada2PrgSQ6i3BSv9jsRhuKL0e+GGj2PmmC0ynn/5sE0xAQZwA7MLufk5sxc5tBxgECJiBDuyuDugtevQt8PatUSZSUuKEgmAOtUJWTCUFETRv8yJOpJJsc+nl9OrevD6uLsKLy7ZOiGgv5lZc1OyO7/oQ1YWPMWzd2WZh2Z0uGnBAFyzAQQyB/A5Bav3sFVxBE4ABGQxE7PavfFLA0FYsCqBAENzuQOyuGawB7/bu+M5G8P4VWiJt3/DE02IOCrrcBgSF82YBEThC4vZN9D4KyeYcvUou1qZHKkTuc2Iu5l4uMMaTUDawU9FCMKRc6fLmBrTvIvhmGxTE/M4vaIEBGEwAEZMBGYjBGFD/AexSwRhMQAL07wm8Zgc8QAdUcQqkQA3UgAToLt5KQA0IQBns7t3mrQyT1AM/MHGkVmXSAmaeZHhywHhiQXkmhPPWcRbsQSYwAQfX8Qe7y7uOsLACqAg3LpqCxvZmLguvbCHD7Er4ZBk7FQdg42f2ZvvGQBcIwfu6ABMMxPz6AAEA8VBNgBAT8QQYsRgo8QlQQQKQASrH7mumwANQsRVjMQNw8RqUQQ0wQBjrwN0+sl+d8d9+YicWmMt54Um2QPu2RB1zwR5wgfMejghLbw2WsCAPK30kMjbnqGV4nq2hqy/ryxQUQBuMcwGMgDlPwR6wABPkwCfLLwHQQQq0QiAQ/4AP/DAoxxDEui3+NsH+/gMUR/F+osCszm0QRIIB/wMvKzACf/NkAPPA8s5XImzm+Fh7gQQfPy/06kUg62ViTK/LQu4iz8YyUNQtYfNpuNIkPMUmIiFDF1gBLEAXxPQCLMA4t8ELEMA//DAdHEE93zM6va0C4K/rEgQUY+giCDAKHPQBczEDt7RTt4Qx6FZ1ZDDzYvRTXzVWhw9Mh6cQ9LAP23NWTxIvhzVZl7VZnzWMgjVarzVbt7VbvzVcx7VczzVd17Vd3zVe57Ve7zVf97Vf/zVgB7ZgDzZhF7ZhHzZiJ7ZiLzZjN7ZjPzZkR7ZkTzZlV7ZlXzZmZ7ZmbzZnd8y2Z382aIe2aI82aZe2aZ82aqe2aq82a7e2a782bMe2bM82bde2bd82bue2bu82b/e2b/82cAe3cA83cRe3cR83cie3ci83cze3cz83dEe3dE83dVe3dV83dme3dm83d3e3d383eIe3eI83eZe3eZ83eqe3eq83e7e3e783fMe3fM83fde3fd83fue3fu83f/e3f/83gAe4gA84gRe4gR84gie4gi84gze4gz84hEe4hE84hVe4hV84hme4hm84h3e4h384iIe4iPNQQAAAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhfJRo4oknCsLHiDSdwscoKMZoolt8qKiijCYKwmJTIJhlY4043nhjipOoiMmOJeGo5JIzhsXkkygiWVEogmSyEgggmGFGjwlREAA3AeDSypitkGJmKJlkQkqamTyS5iNwximnnDKVKMiQMuKZ4pIqAtXJJJP8yUknfxZK6KGdDHqoLC7pwkmggAL6Z6CTRnrJJI9iOsmlnfDEiSCXlDgJH6OCMiqpqPJxKalOQelqjHhq/6Wknq/GCFSJMJ6Y64251urrryWmdGeQKP64Z55AzposrE8GlYkgcFqZkpZbbomQlwF8SSYpZZISirehhJsmmmxG22ac0KYr7Up6ClkrrTmmyBOkkiJq772HptLpSoYaikm+h2KaaKKQChooLDmdiuqoDKu6sKgQKwXsxLZKRfHEOu7U68Ucc3xSxyB7/FOVbj5CiklZbmmFAAxYsSWWBKXwwMyRBBEECjijQMHO2X6pLZndgktuuW1mnFK8zCr7I7xKTpLwpP3iS6i++gYaC6EsCfzoo5dsPejXA2uaaaST5hTqpWeryjCogih8YpFGhXzxja3KDSxOv25st8gjLf+7999Jr9hTKI+QG+5IWL5shhUSdFCDBFlimaVAKaTQweUzzxxEJDnjzDO23OAipphjnikum+uaVOzqTNt457Bv84HJk23bVDClUud+KC8qpfJoofXqjii9Bl9yE6AQK+x27FEOBXjHSjEtt/Ty1vT89UqWRD32IdPd0yPQ0nlS4lpKblAHOlPAzfrckGlNt+Gejvqc6NZfpUlLI+2usZgYKUj//auRsVbXtJrgTni5u1os+CW2Bm7NgZGK4O8ANahX2CR2EURew5BXsVvtTRB6u1jcuPcr65HwhEk6IQl9Ar45pSRy5jtIJMCEi9AFTWjxG1q55NSmZ7VQfCNxl53/hPSjI1lkdiZqWBLt5DSZHBBRukAgoaLIkkJ5rV6aChgnLnEp4omNE1u8oNtC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0EAFHZTQQg09lK2/FBOPj00K+xPRSCWdlNJBc2HGOShC6dG66uIsodJAlzKsyvMgDRXVVFVdldVWXX0V1lhlnZXWWm29Fddcdd2V1159/RXYYIUdlthijT0W2WSVXZbZZp19FtpopZ2W2mqtvRbbbLXdlttuvf0W3HDFHZfccs09F9101V2X3XbdfRfeeOWdl9567b0X33z13Zfffv39F+CABR6Y4IINPhiw4YQVXpjhhh1+GOKIJZ6Y4ootvhjjjDXemOOOPf4Y5JBFHpnkkk0+GeWUVV6Z5ZZdfhnmmGWemeaabb4Z55x13pnnnn3+GeighR6a6KKNPhrppJVemummnX4a6qilnprqqq2+Guustd6a6669/hrssMUem+yyzT4b7bTVXpvttt1+G+645Z6b7rrtvhvvvPXem+++/f4b8MAFH5zwwg0/HPHEFV+c8cYdfxzyyCVXNSAAIfkEBQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhgvBhIh+CTMKHiiam+MgkI9J04ow00uhWiSieWOKOOT4So0dmVIYJjYIUeeKQk7CoY44lYpJVBFC6V+OUVFYpFo9LEoljjkwWKciPFVnBwJhWDCTAA5GggAIFFHATQAC44NIKKa3MScqdoeSZZyaZhPLIn4AGCqiXf3opyCNeomjoloYq2qWRPc64o0xZZolliywOeaKKk2CCySSCpAIUBktgYKoJGJigahFpREECCSKI/1AJDQ0gcMGtX7QUSyeTdMLrr71O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\n","loading":"data:image/gif;base64,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4mVP9NkX3VMejKkmQ4RFaEFiL8Bw5JrENAZZZFJKFcOE7gSAHTx0ppILXYHylBBCy9k2W6GMplOgOQcW16gwyjUZ2Qd+neDjdZN2yqhCC3kqKjgDEjYqpRs12syVp7bq6quw0uJmrLTWauutuOaq66689urrr8AGK+ywxBZr7LHIJqvsssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghivuuOSWa+656Kar7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPH/xRhnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGet9dZcd+3112CHLfbYZJdt9tlop6322my37fbbcMct99x012333XjnrffefPft99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFdu+eWYZ6755px37vnn60rggASglw616BKg7oDprCet+gOqty770KqnPvropM+u+8621666A6vvLrzMqdeO+wRFTGA86sM333ESxUcv/e2opz7BBCIQMYMMIlCgvO3Ai377//i5O29+x8VTnzoF6Ytf/vnwn1y978zHbz/KEiwhwffXTzD6/QCU3/W8NwEKsC+ACAyYPFpkAFJIQAQFBAEFQPC+BFoQXwucx4lGgT0ReNCDFwwhvgQAks+ABEWieGARRLBCEYjwhfQiYXiytBVAhYICH+weDHf4LgEE4ADi+aF4BCCKFa6Qh0hMFzwC4EN4uCA8S2wiEUFhwCRacVtNZKIWfRiALsIjSwuQQQ6aAJ4gepGJ8EijGgWQhCu6sYdp1OIPDQAeF5xxjW/M476kyEQXZNGGegzkHrPYRTROUZCIzFcU1TiARDpSkSnCSgAeSUlIVpJ1GchkJi/JyXhp8v+TnQzlujSphE9mQJSoJJcpNcBKUKbyldkypSY1EBwSbEADstwkLHfJrFxmoJQZYOUGUKCCBbXyl77kpTJ7mUlWCvOYulymNKOVgQ1Y05m4POU0txkta3rTmtrkpjibRctvhnOc6FRWOW+Zzna6853wjKc850nPetrznvjMpz73yc9++vOfAA2oQAdK0IIa9KAITahCF8rQhjr0oRCNqEQn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"}
- /***/ }),
- /***/ "k2Sm":
- /***/ (function(module, exports, __webpack_require__) {
- var Buffer = __webpack_require__("X3l8").Buffer
- function encryptByte (self, byteParam, decrypt) {
- var pad
- var i = -1
- var len = 8
- var out = 0
- var bit, value
- while (++i < len) {
- pad = self._cipher.encryptBlock(self._prev)
- bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0
- value = pad[0] ^ bit
- out += ((value & 0x80) >> (i % 8))
- self._prev = shiftIn(self._prev, decrypt ? bit : value)
- }
- return out
- }
- function shiftIn (buffer, value) {
- var len = buffer.length
- var i = -1
- var out = Buffer.allocUnsafe(buffer.length)
- buffer = Buffer.concat([buffer, Buffer.from([value])])
- while (++i < len) {
- out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)
- }
- return out
- }
- exports.encrypt = function (self, chunk, decrypt) {
- var len = chunk.length
- var out = Buffer.allocUnsafe(len)
- var i = -1
- while (++i < len) {
- out[i] = encryptByte(self, chunk[i], decrypt)
- }
- return out
- }
- /***/ }),
- /***/ "kGlO":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__("THef");
- if(typeof content === 'string') content = [[module.i, content, '']];
- // Prepare cssTransformation
- var transform;
- var options = {"hmr":true}
- options.transform = transform
- // add the styles to the DOM
- var update = __webpack_require__("MTIv")(content, options);
- if(content.locals) module.exports = content.locals;
- // Hot Module Replacement
- if(false) {
- // When the styles change, update the <style> tags
- if(!content.locals) {
- module.hot.accept("!!../../node_modules/css-loader/index.js!./iconfont.css", function() {
- var newContent = require("!!../../node_modules/css-loader/index.js!./iconfont.css");
- if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
- update(newContent);
- });
- }
- // When the module is disposed, remove the <style> tags
- module.hot.dispose(function() { update(); });
- }
- /***/ }),
- /***/ "kJAH":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const encoders = __webpack_require__("SAez");
- const decoders = __webpack_require__("iLJX");
- const inherits = __webpack_require__("LC74");
- const api = exports;
- api.define = function define(name, body) {
- return new Entity(name, body);
- };
- function Entity(name, body) {
- this.name = name;
- this.body = body;
- this.decoders = {};
- this.encoders = {};
- }
- Entity.prototype._createNamed = function createNamed(Base) {
- const name = this.name;
- function Generated(entity) {
- this._initNamed(entity, name);
- }
- inherits(Generated, Base);
- Generated.prototype._initNamed = function _initNamed(entity, name) {
- Base.call(this, entity, name);
- };
- return new Generated(this);
- };
- Entity.prototype._getDecoder = function _getDecoder(enc) {
- enc = enc || 'der';
- // Lazily create decoder
- if (!this.decoders.hasOwnProperty(enc))
- this.decoders[enc] = this._createNamed(decoders[enc]);
- return this.decoders[enc];
- };
- Entity.prototype.decode = function decode(data, enc, options) {
- return this._getDecoder(enc).decode(data, options);
- };
- Entity.prototype._getEncoder = function _getEncoder(enc) {
- enc = enc || 'der';
- // Lazily create encoder
- if (!this.encoders.hasOwnProperty(enc))
- this.encoders[enc] = this._createNamed(encoders[enc]);
- return this.encoders[enc];
- };
- Entity.prototype.encode = function encode(data, enc, /* internal */ reporter) {
- return this._getEncoder(enc).encode(data, reporter);
- };
- /***/ }),
- /***/ "kkc6":
- /***/ (function(module, exports, __webpack_require__) {
- /* eslint-disable node/no-deprecated-api */
- var buffer = __webpack_require__("EuP9")
- var Buffer = buffer.Buffer
- // alternative to using Object.keys for old browsers
- function copyProps (src, dst) {
- for (var key in src) {
- dst[key] = src[key]
- }
- }
- if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
- module.exports = buffer
- } else {
- // Copy properties from require('buffer')
- copyProps(buffer, exports)
- exports.Buffer = SafeBuffer
- }
- function SafeBuffer (arg, encodingOrOffset, length) {
- return Buffer(arg, encodingOrOffset, length)
- }
- // Copy static methods from Buffer
- copyProps(Buffer, SafeBuffer)
- SafeBuffer.from = function (arg, encodingOrOffset, length) {
- if (typeof arg === 'number') {
- throw new TypeError('Argument must not be a number')
- }
- return Buffer(arg, encodingOrOffset, length)
- }
- SafeBuffer.alloc = function (size, fill, encoding) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- var buf = Buffer(size)
- if (fill !== undefined) {
- if (typeof encoding === 'string') {
- buf.fill(fill, encoding)
- } else {
- buf.fill(fill)
- }
- } else {
- buf.fill(0)
- }
- return buf
- }
- SafeBuffer.allocUnsafe = function (size) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- return Buffer(size)
- }
- SafeBuffer.allocUnsafeSlow = function (size) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- return buffer.SlowBuffer(size)
- }
- /***/ }),
- /***/ "kxE3":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(process) {
- var _Object$setPrototypeO;
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
- var finished = __webpack_require__("PcVv");
- var kLastResolve = Symbol('lastResolve');
- var kLastReject = Symbol('lastReject');
- var kError = Symbol('error');
- var kEnded = Symbol('ended');
- var kLastPromise = Symbol('lastPromise');
- var kHandlePromise = Symbol('handlePromise');
- var kStream = Symbol('stream');
- function createIterResult(value, done) {
- return {
- value: value,
- done: done
- };
- }
- function readAndResolve(iter) {
- var resolve = iter[kLastResolve];
- if (resolve !== null) {
- var data = iter[kStream].read();
- // we defer if data is null
- // we can be expecting either 'end' or
- // 'error'
- if (data !== null) {
- iter[kLastPromise] = null;
- iter[kLastResolve] = null;
- iter[kLastReject] = null;
- resolve(createIterResult(data, false));
- }
- }
- }
- function onReadable(iter) {
- // we wait for the next tick, because it might
- // emit an error with process.nextTick
- process.nextTick(readAndResolve, iter);
- }
- function wrapForNext(lastPromise, iter) {
- return function (resolve, reject) {
- lastPromise.then(function () {
- if (iter[kEnded]) {
- resolve(createIterResult(undefined, true));
- return;
- }
- iter[kHandlePromise](resolve, reject);
- }, reject);
- };
- }
- var AsyncIteratorPrototype = Object.getPrototypeOf(function () {});
- var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {
- get stream() {
- return this[kStream];
- },
- next: function next() {
- var _this = this;
- // if we have detected an error in the meanwhile
- // reject straight away
- var error = this[kError];
- if (error !== null) {
- return Promise.reject(error);
- }
- if (this[kEnded]) {
- return Promise.resolve(createIterResult(undefined, true));
- }
- if (this[kStream].destroyed) {
- // We need to defer via nextTick because if .destroy(err) is
- // called, the error will be emitted via nextTick, and
- // we cannot guarantee that there is no error lingering around
- // waiting to be emitted.
- return new Promise(function (resolve, reject) {
- process.nextTick(function () {
- if (_this[kError]) {
- reject(_this[kError]);
- } else {
- resolve(createIterResult(undefined, true));
- }
- });
- });
- }
- // if we have multiple next() calls
- // we will wait for the previous Promise to finish
- // this logic is optimized to support for await loops,
- // where next() is only called once at a time
- var lastPromise = this[kLastPromise];
- var promise;
- if (lastPromise) {
- promise = new Promise(wrapForNext(lastPromise, this));
- } else {
- // fast path needed to support multiple this.push()
- // without triggering the next() queue
- var data = this[kStream].read();
- if (data !== null) {
- return Promise.resolve(createIterResult(data, false));
- }
- promise = new Promise(this[kHandlePromise]);
- }
- this[kLastPromise] = promise;
- return promise;
- }
- }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {
- return this;
- }), _defineProperty(_Object$setPrototypeO, "return", function _return() {
- var _this2 = this;
- // destroy(err, cb) is a private API
- // we can guarantee we have that here, because we control the
- // Readable class this is attached to
- return new Promise(function (resolve, reject) {
- _this2[kStream].destroy(null, function (err) {
- if (err) {
- reject(err);
- return;
- }
- resolve(createIterResult(undefined, true));
- });
- });
- }), _Object$setPrototypeO), AsyncIteratorPrototype);
- var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {
- var _Object$create;
- var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {
- value: stream,
- writable: true
- }), _defineProperty(_Object$create, kLastResolve, {
- value: null,
- writable: true
- }), _defineProperty(_Object$create, kLastReject, {
- value: null,
- writable: true
- }), _defineProperty(_Object$create, kError, {
- value: null,
- writable: true
- }), _defineProperty(_Object$create, kEnded, {
- value: stream._readableState.endEmitted,
- writable: true
- }), _defineProperty(_Object$create, kHandlePromise, {
- value: function value(resolve, reject) {
- var data = iterator[kStream].read();
- if (data) {
- iterator[kLastPromise] = null;
- iterator[kLastResolve] = null;
- iterator[kLastReject] = null;
- resolve(createIterResult(data, false));
- } else {
- iterator[kLastResolve] = resolve;
- iterator[kLastReject] = reject;
- }
- },
- writable: true
- }), _Object$create));
- iterator[kLastPromise] = null;
- finished(stream, function (err) {
- if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {
- var reject = iterator[kLastReject];
- // reject if we are waiting for data in the Promise
- // returned by next() and store the error
- if (reject !== null) {
- iterator[kLastPromise] = null;
- iterator[kLastResolve] = null;
- iterator[kLastReject] = null;
- reject(err);
- }
- iterator[kError] = err;
- return;
- }
- var resolve = iterator[kLastResolve];
- if (resolve !== null) {
- iterator[kLastPromise] = null;
- iterator[kLastResolve] = null;
- iterator[kLastReject] = null;
- resolve(createIterResult(undefined, true));
- }
- iterator[kEnded] = true;
- });
- stream.on('readable', onReadable.bind(null, iterator));
- return iterator;
- };
- module.exports = createReadableStreamAsyncIterator;
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("W2nU")))
- /***/ }),
- /***/ "lQBd":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js
- // thanks to @Rantanen
- var asn = __webpack_require__("KDHK")
- var Time = asn.define('Time', function () {
- this.choice({
- utcTime: this.utctime(),
- generalTime: this.gentime()
- })
- })
- var AttributeTypeValue = asn.define('AttributeTypeValue', function () {
- this.seq().obj(
- this.key('type').objid(),
- this.key('value').any()
- )
- })
- var AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {
- this.seq().obj(
- this.key('algorithm').objid(),
- this.key('parameters').optional(),
- this.key('curve').objid().optional()
- )
- })
- var SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {
- this.seq().obj(
- this.key('algorithm').use(AlgorithmIdentifier),
- this.key('subjectPublicKey').bitstr()
- )
- })
- var RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {
- this.setof(AttributeTypeValue)
- })
- var RDNSequence = asn.define('RDNSequence', function () {
- this.seqof(RelativeDistinguishedName)
- })
- var Name = asn.define('Name', function () {
- this.choice({
- rdnSequence: this.use(RDNSequence)
- })
- })
- var Validity = asn.define('Validity', function () {
- this.seq().obj(
- this.key('notBefore').use(Time),
- this.key('notAfter').use(Time)
- )
- })
- var Extension = asn.define('Extension', function () {
- this.seq().obj(
- this.key('extnID').objid(),
- this.key('critical').bool().def(false),
- this.key('extnValue').octstr()
- )
- })
- var TBSCertificate = asn.define('TBSCertificate', function () {
- this.seq().obj(
- this.key('version').explicit(0).int().optional(),
- this.key('serialNumber').int(),
- this.key('signature').use(AlgorithmIdentifier),
- this.key('issuer').use(Name),
- this.key('validity').use(Validity),
- this.key('subject').use(Name),
- this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),
- this.key('issuerUniqueID').implicit(1).bitstr().optional(),
- this.key('subjectUniqueID').implicit(2).bitstr().optional(),
- this.key('extensions').explicit(3).seqof(Extension).optional()
- )
- })
- var X509Certificate = asn.define('X509Certificate', function () {
- this.seq().obj(
- this.key('tbsCertificate').use(TBSCertificate),
- this.key('signatureAlgorithm').use(AlgorithmIdentifier),
- this.key('signatureValue').bitstr()
- )
- })
- module.exports = X509Certificate
- /***/ }),
- /***/ "lUSU":
- /***/ (function(module, exports, __webpack_require__) {
- var xor = __webpack_require__("H2Pp")
- exports.encrypt = function (self, block) {
- var data = xor(block, self._prev)
- self._prev = self._cipher.encryptBlock(data)
- return self._prev
- }
- exports.decrypt = function (self, block) {
- var pad = self._prev
- self._prev = block
- var out = self._cipher.decryptBlock(block)
- return xor(out, pad)
- }
- /***/ }),
- /***/ "lXn8":
- /***/ (function(module, exports, __webpack_require__) {
- /**
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
- * in FIPS 180-2
- * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- *
- */
- var inherits = __webpack_require__("LC74")
- var Sha256 = __webpack_require__("zvjZ")
- var Hash = __webpack_require__("CzQx")
- var Buffer = __webpack_require__("X3l8").Buffer
- var W = new Array(64)
- function Sha224 () {
- this.init()
- this._w = W // new Array(64)
- Hash.call(this, 64, 56)
- }
- inherits(Sha224, Sha256)
- Sha224.prototype.init = function () {
- this._a = 0xc1059ed8
- this._b = 0x367cd507
- this._c = 0x3070dd17
- this._d = 0xf70e5939
- this._e = 0xffc00b31
- this._f = 0x68581511
- this._g = 0x64f98fa7
- this._h = 0xbefa4fa4
- return this
- }
- Sha224.prototype._hash = function () {
- var H = Buffer.allocUnsafe(28)
- H.writeInt32BE(this._a, 0)
- H.writeInt32BE(this._b, 4)
- H.writeInt32BE(this._c, 8)
- H.writeInt32BE(this._d, 12)
- H.writeInt32BE(this._e, 16)
- H.writeInt32BE(this._f, 20)
- H.writeInt32BE(this._g, 24)
- return H
- }
- module.exports = Sha224
- /***/ }),
- /***/ "lZ6o":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var elliptic = exports;
- elliptic.version = __webpack_require__("KYqO").version;
- elliptic.utils = __webpack_require__("TkWM");
- elliptic.rand = __webpack_require__("txgm");
- elliptic.curve = __webpack_require__("tRuz");
- elliptic.curves = __webpack_require__("hQ80");
- // Protocols
- elliptic.ec = __webpack_require__("F11g");
- elliptic.eddsa = __webpack_require__("+e0g");
- /***/ }),
- /***/ "mJPh":
- /***/ (function(module, exports) {
- /**
- * When source maps are enabled, `style-loader` uses a link element with a data-uri to
- * embed the css on the page. This breaks all relative urls because now they are relative to a
- * bundle instead of the current page.
- *
- * One solution is to only use full urls, but that may be impossible.
- *
- * Instead, this function "fixes" the relative urls to be absolute according to the current page location.
- *
- * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
- *
- */
- module.exports = function (css) {
- // get current location
- var location = typeof window !== "undefined" && window.location;
- if (!location) {
- throw new Error("fixUrls requires window.location");
- }
- // blank or null?
- if (!css || typeof css !== "string") {
- return css;
- }
- var baseUrl = location.protocol + "//" + location.host;
- var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
- // convert each url(...)
- /*
- This regular expression is just a way to recursively match brackets within
- a string.
- /url\s*\( = Match on the word "url" with any whitespace after it and then a parens
- ( = Start a capturing group
- (?: = Start a non-capturing group
- [^)(] = Match anything that isn't a parentheses
- | = OR
- \( = Match a start parentheses
- (?: = Start another non-capturing groups
- [^)(]+ = Match anything that isn't a parentheses
- | = OR
- \( = Match a start parentheses
- [^)(]* = Match anything that isn't a parentheses
- \) = Match a end parentheses
- ) = End Group
- *\) = Match anything and then a close parens
- ) = Close non-capturing group
- * = Match anything
- ) = Close capturing group
- \) = Match a close parens
- /gi = Get all matches, not the first. Be case insensitive.
- */
- var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
- // strip quotes (if they exist)
- var unquotedOrigUrl = origUrl
- .trim()
- .replace(/^"(.*)"$/, function(o, $1){ return $1; })
- .replace(/^'(.*)'$/, function(o, $1){ return $1; });
- // already a full url? no change
- if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(unquotedOrigUrl)) {
- return fullMatch;
- }
- // convert the url to a full url
- var newUrl;
- if (unquotedOrigUrl.indexOf("//") === 0) {
- //TODO: should we add protocol?
- newUrl = unquotedOrigUrl;
- } else if (unquotedOrigUrl.indexOf("/") === 0) {
- // path should be relative to the base url
- newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
- } else {
- // path should be relative to current directory
- newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
- }
- // send back the fixed url(...)
- return "url(" + JSON.stringify(newUrl) + ")";
- });
- // send back the fixed css
- return fixedCss;
- };
- /***/ }),
- /***/ "mfgY":
- /***/ (function(module, exports) {
- module.exports = {"Play":"播放","Pause":"暂停","Current Time":"当前时间","Duration":"时长","Remaining Time":"剩余时间","Stream Type":"媒体流类型","LIVE":"直播","Loaded":"加载完成","Progress":"进度","Fullscreen":"全屏","Non-Fullscreen":"退出全屏","Picture-in-Picture":"画中画","Exit Picture-in-Picture":"退出画中画","Mute":"静音","Unmute":"取消静音","Playback Rate":"播放速度","Subtitles":"字幕","subtitles off":"关闭字幕","Captions":"内嵌字幕","captions off":"关闭内嵌字幕","Chapters":"节目段落","Close Modal Dialog":"关闭弹窗","Descriptions":"描述","descriptions off":"关闭描述","Audio Track":"音轨","You aborted the media playback":"视频播放被终止","A network error caused the media download to fail part-way.":"网络错误导致视频下载中途失败。","The media could not be loaded, either because the server or network failed or because the format is not supported.":"视频因格式不支持或者服务器或网络的问题无法加载。","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。","No compatible source was found for this media.":"无法找到此视频兼容的源。","The media is encrypted and we do not have the keys to decrypt it.":"视频已加密,无法解密。","Play Video":"播放视频","Close":"关闭","Modal Window":"弹窗","This is a modal window":"这是一个弹窗","This modal can be closed by pressing the Escape key or activating the close button.":"可以按ESC按键或启用关闭按钮来关闭此弹窗。",", opens captions settings dialog":", 开启标题设置弹窗",", opens subtitles settings dialog":", 开启字幕设置弹窗",", opens descriptions settings dialog":", 开启描述设置弹窗",", selected":", 选择","captions settings":"字幕设定","Audio Player":"音频播放器","Video Player":"视频播放器","Replay":"重新播放","Progress Bar":"进度条","Volume Level":"音量","subtitles settings":"字幕设定","descriptions settings":"描述设定","Text":"文字","White":"白","Black":"黑","Red":"红","Green":"绿","Blue":"蓝","Yellow":"黄","Magenta":"紫红","Cyan":"青","Background":"背景","Window":"窗口","Transparent":"透明","Semi-Transparent":"半透明","Opaque":"不透明","Font Size":"字体尺寸","Text Edge Style":"字体边缘样式","None":"无","Raised":"浮雕","Depressed":"压低","Uniform":"均匀","Dropshadow":"下阴影","Font Family":"字体库","Proportional Sans-Serif":"比例无细体","Monospace Sans-Serif":"单间隔无细体","Proportional Serif":"比例细体","Monospace Serif":"单间隔细体","Casual":"舒适","Script":"手写体","Small Caps":"小型大写字体","Reset":"重置","restore all settings to the default values":"恢复全部设定至预设值","Done":"完成","Caption Settings Dialog":"字幕设定窗口","Beginning of dialog window. Escape will cancel and close the window.":"打开对话窗口。Escape键将取消并关闭对话窗口","End of dialog window.":"结束对话窗口","Seek to live, currently behind live":"尝试直播,当前为延时播放","Seek to live, currently playing live":"尝试直播,当前为实时播放","progress bar timing: currentTime={1} duration={2}":"{1}/{2}","{1} is loading.":"正在加载 {1}。"}
- /***/ }),
- /***/ "mypn":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
- "use strict";
- if (global.setImmediate) {
- return;
- }
- var nextHandle = 1; // Spec says greater than zero
- var tasksByHandle = {};
- var currentlyRunningATask = false;
- var doc = global.document;
- var registerImmediate;
- function setImmediate(callback) {
- // Callback can either be a function or a string
- if (typeof callback !== "function") {
- callback = new Function("" + callback);
- }
- // Copy function arguments
- var args = new Array(arguments.length - 1);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i + 1];
- }
- // Store and register the task
- var task = { callback: callback, args: args };
- tasksByHandle[nextHandle] = task;
- registerImmediate(nextHandle);
- return nextHandle++;
- }
- function clearImmediate(handle) {
- delete tasksByHandle[handle];
- }
- function run(task) {
- var callback = task.callback;
- var args = task.args;
- switch (args.length) {
- case 0:
- callback();
- break;
- case 1:
- callback(args[0]);
- break;
- case 2:
- callback(args[0], args[1]);
- break;
- case 3:
- callback(args[0], args[1], args[2]);
- break;
- default:
- callback.apply(undefined, args);
- break;
- }
- }
- function runIfPresent(handle) {
- // From the spec: "Wait until any invocations of this algorithm started before this one have completed."
- // So if we're currently running a task, we'll need to delay this invocation.
- if (currentlyRunningATask) {
- // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
- // "too much recursion" error.
- setTimeout(runIfPresent, 0, handle);
- } else {
- var task = tasksByHandle[handle];
- if (task) {
- currentlyRunningATask = true;
- try {
- run(task);
- } finally {
- clearImmediate(handle);
- currentlyRunningATask = false;
- }
- }
- }
- }
- function installNextTickImplementation() {
- registerImmediate = function(handle) {
- process.nextTick(function () { runIfPresent(handle); });
- };
- }
- function canUsePostMessage() {
- // The test against `importScripts` prevents this implementation from being installed inside a web worker,
- // where `global.postMessage` means something completely different and can't be used for this purpose.
- if (global.postMessage && !global.importScripts) {
- var postMessageIsAsynchronous = true;
- var oldOnMessage = global.onmessage;
- global.onmessage = function() {
- postMessageIsAsynchronous = false;
- };
- global.postMessage("", "*");
- global.onmessage = oldOnMessage;
- return postMessageIsAsynchronous;
- }
- }
- function installPostMessageImplementation() {
- // Installs an event handler on `global` for the `message` event: see
- // * https://developer.mozilla.org/en/DOM/window.postMessage
- // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
- var messagePrefix = "setImmediate$" + Math.random() + "$";
- var onGlobalMessage = function(event) {
- if (event.source === global &&
- typeof event.data === "string" &&
- event.data.indexOf(messagePrefix) === 0) {
- runIfPresent(+event.data.slice(messagePrefix.length));
- }
- };
- if (global.addEventListener) {
- global.addEventListener("message", onGlobalMessage, false);
- } else {
- global.attachEvent("onmessage", onGlobalMessage);
- }
- registerImmediate = function(handle) {
- global.postMessage(messagePrefix + handle, "*");
- };
- }
- function installMessageChannelImplementation() {
- var channel = new MessageChannel();
- channel.port1.onmessage = function(event) {
- var handle = event.data;
- runIfPresent(handle);
- };
- registerImmediate = function(handle) {
- channel.port2.postMessage(handle);
- };
- }
- function installReadyStateChangeImplementation() {
- var html = doc.documentElement;
- registerImmediate = function(handle) {
- // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
- // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
- var script = doc.createElement("script");
- script.onreadystatechange = function () {
- runIfPresent(handle);
- script.onreadystatechange = null;
- html.removeChild(script);
- script = null;
- };
- html.appendChild(script);
- };
- }
- function installSetTimeoutImplementation() {
- registerImmediate = function(handle) {
- setTimeout(runIfPresent, 0, handle);
- };
- }
- // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
- var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
- attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
- // Don't get fooled by e.g. browserify environments.
- if ({}.toString.call(global.process) === "[object process]") {
- // For Node.js before 0.9
- installNextTickImplementation();
- } else if (canUsePostMessage()) {
- // For non-IE10 modern browsers
- installPostMessageImplementation();
- } else if (global.MessageChannel) {
- // For web workers, where supported
- installMessageChannelImplementation();
- } else if (doc && "onreadystatechange" in doc.createElement("script")) {
- // For IE 6–8
- installReadyStateChangeImplementation();
- } else {
- // For older browsers
- installSetTimeoutImplementation();
- }
- attachTo.setImmediate = setImmediate;
- attachTo.clearImmediate = clearImmediate;
- }(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("W2nU")))
- /***/ }),
- /***/ "nj8S":
- /***/ (function(module, exports) {
- module.exports = "data:font/ttf;base64,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"
- /***/ }),
- /***/ "nyV4":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var assert = __webpack_require__("08Lv");
- var inherits = __webpack_require__("LC74");
- var proto = {};
- function CBCState(iv) {
- assert.equal(iv.length, 8, 'Invalid IV length');
- this.iv = new Array(8);
- for (var i = 0; i < this.iv.length; i++)
- this.iv[i] = iv[i];
- }
- function instantiate(Base) {
- function CBC(options) {
- Base.call(this, options);
- this._cbcInit();
- }
- inherits(CBC, Base);
- var keys = Object.keys(proto);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- CBC.prototype[key] = proto[key];
- }
- CBC.create = function create(options) {
- return new CBC(options);
- };
- return CBC;
- }
- exports.instantiate = instantiate;
- proto._cbcInit = function _cbcInit() {
- var state = new CBCState(this.options.iv);
- this._cbcState = state;
- };
- proto._update = function _update(inp, inOff, out, outOff) {
- var state = this._cbcState;
- var superProto = this.constructor.super_.prototype;
- var iv = state.iv;
- if (this.type === 'encrypt') {
- for (var i = 0; i < this.blockSize; i++)
- iv[i] ^= inp[inOff + i];
- superProto._update.call(this, iv, 0, out, outOff);
- for (var i = 0; i < this.blockSize; i++)
- iv[i] = out[outOff + i];
- } else {
- superProto._update.call(this, inp, inOff, out, outOff);
- for (var i = 0; i < this.blockSize; i++)
- out[outOff + i] ^= iv[i];
- for (var i = 0; i < this.blockSize; i++)
- iv[i] = inp[inOff + i];
- }
- };
- /***/ }),
- /***/ "o/zv":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(process) {// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,
- // backported and transplited with Babel, with backwards-compat fixes
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // resolves . and .. elements in a path array with directory names there
- // must be no slashes, empty elements, or device names (c:\) in the array
- // (so also no leading and trailing slashes - it does not distinguish
- // relative and absolute paths)
- function normalizeArray(parts, allowAboveRoot) {
- // if the path tries to go above the root, `up` ends up > 0
- var up = 0;
- for (var i = parts.length - 1; i >= 0; i--) {
- var last = parts[i];
- if (last === '.') {
- parts.splice(i, 1);
- } else if (last === '..') {
- parts.splice(i, 1);
- up++;
- } else if (up) {
- parts.splice(i, 1);
- up--;
- }
- }
- // if the path is allowed to go above the root, restore leading ..s
- if (allowAboveRoot) {
- for (; up--; up) {
- parts.unshift('..');
- }
- }
- return parts;
- }
- // path.resolve([from ...], to)
- // posix version
- exports.resolve = function() {
- var resolvedPath = '',
- resolvedAbsolute = false;
- for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
- var path = (i >= 0) ? arguments[i] : process.cwd();
- // Skip empty and invalid entries
- if (typeof path !== 'string') {
- throw new TypeError('Arguments to path.resolve must be strings');
- } else if (!path) {
- continue;
- }
- resolvedPath = path + '/' + resolvedPath;
- resolvedAbsolute = path.charAt(0) === '/';
- }
- // At this point the path should be resolved to a full absolute path, but
- // handle relative paths to be safe (might happen when process.cwd() fails)
- // Normalize the path
- resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
- return !!p;
- }), !resolvedAbsolute).join('/');
- return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
- };
- // path.normalize(path)
- // posix version
- exports.normalize = function(path) {
- var isAbsolute = exports.isAbsolute(path),
- trailingSlash = substr(path, -1) === '/';
- // Normalize the path
- path = normalizeArray(filter(path.split('/'), function(p) {
- return !!p;
- }), !isAbsolute).join('/');
- if (!path && !isAbsolute) {
- path = '.';
- }
- if (path && trailingSlash) {
- path += '/';
- }
- return (isAbsolute ? '/' : '') + path;
- };
- // posix version
- exports.isAbsolute = function(path) {
- return path.charAt(0) === '/';
- };
- // posix version
- exports.join = function() {
- var paths = Array.prototype.slice.call(arguments, 0);
- return exports.normalize(filter(paths, function(p, index) {
- if (typeof p !== 'string') {
- throw new TypeError('Arguments to path.join must be strings');
- }
- return p;
- }).join('/'));
- };
- // path.relative(from, to)
- // posix version
- exports.relative = function(from, to) {
- from = exports.resolve(from).substr(1);
- to = exports.resolve(to).substr(1);
- function trim(arr) {
- var start = 0;
- for (; start < arr.length; start++) {
- if (arr[start] !== '') break;
- }
- var end = arr.length - 1;
- for (; end >= 0; end--) {
- if (arr[end] !== '') break;
- }
- if (start > end) return [];
- return arr.slice(start, end - start + 1);
- }
- var fromParts = trim(from.split('/'));
- var toParts = trim(to.split('/'));
- var length = Math.min(fromParts.length, toParts.length);
- var samePartsLength = length;
- for (var i = 0; i < length; i++) {
- if (fromParts[i] !== toParts[i]) {
- samePartsLength = i;
- break;
- }
- }
- var outputParts = [];
- for (var i = samePartsLength; i < fromParts.length; i++) {
- outputParts.push('..');
- }
- outputParts = outputParts.concat(toParts.slice(samePartsLength));
- return outputParts.join('/');
- };
- exports.sep = '/';
- exports.delimiter = ':';
- exports.dirname = function (path) {
- if (typeof path !== 'string') path = path + '';
- if (path.length === 0) return '.';
- var code = path.charCodeAt(0);
- var hasRoot = code === 47 /*/*/;
- var end = -1;
- var matchedSlash = true;
- for (var i = path.length - 1; i >= 1; --i) {
- code = path.charCodeAt(i);
- if (code === 47 /*/*/) {
- if (!matchedSlash) {
- end = i;
- break;
- }
- } else {
- // We saw the first non-path separator
- matchedSlash = false;
- }
- }
- if (end === -1) return hasRoot ? '/' : '.';
- if (hasRoot && end === 1) {
- // return '//';
- // Backwards-compat fix:
- return '/';
- }
- return path.slice(0, end);
- };
- function basename(path) {
- if (typeof path !== 'string') path = path + '';
- var start = 0;
- var end = -1;
- var matchedSlash = true;
- var i;
- for (i = path.length - 1; i >= 0; --i) {
- if (path.charCodeAt(i) === 47 /*/*/) {
- // If we reached a path separator that was not part of a set of path
- // separators at the end of the string, stop now
- if (!matchedSlash) {
- start = i + 1;
- break;
- }
- } else if (end === -1) {
- // We saw the first non-path separator, mark this as the end of our
- // path component
- matchedSlash = false;
- end = i + 1;
- }
- }
- if (end === -1) return '';
- return path.slice(start, end);
- }
- // Uses a mixed approach for backwards-compatibility, as ext behavior changed
- // in new Node.js versions, so only basename() above is backported here
- exports.basename = function (path, ext) {
- var f = basename(path);
- if (ext && f.substr(-1 * ext.length) === ext) {
- f = f.substr(0, f.length - ext.length);
- }
- return f;
- };
- exports.extname = function (path) {
- if (typeof path !== 'string') path = path + '';
- var startDot = -1;
- var startPart = 0;
- var end = -1;
- var matchedSlash = true;
- // Track the state of characters (if any) we see before our first dot and
- // after any path separator we find
- var preDotState = 0;
- for (var i = path.length - 1; i >= 0; --i) {
- var code = path.charCodeAt(i);
- if (code === 47 /*/*/) {
- // If we reached a path separator that was not part of a set of path
- // separators at the end of the string, stop now
- if (!matchedSlash) {
- startPart = i + 1;
- break;
- }
- continue;
- }
- if (end === -1) {
- // We saw the first non-path separator, mark this as the end of our
- // extension
- matchedSlash = false;
- end = i + 1;
- }
- if (code === 46 /*.*/) {
- // If this is our first dot, mark it as the start of our extension
- if (startDot === -1)
- startDot = i;
- else if (preDotState !== 1)
- preDotState = 1;
- } else if (startDot !== -1) {
- // We saw a non-dot and non-path separator before our dot, so we should
- // have a good chance at having a non-empty extension
- preDotState = -1;
- }
- }
- if (startDot === -1 || end === -1 ||
- // We saw a non-dot character immediately before the dot
- preDotState === 0 ||
- // The (right-most) trimmed path component is exactly '..'
- preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
- return '';
- }
- return path.slice(startDot, end);
- };
- function filter (xs, f) {
- if (xs.filter) return xs.filter(f);
- var res = [];
- for (var i = 0; i < xs.length; i++) {
- if (f(xs[i], i, xs)) res.push(xs[i]);
- }
- return res;
- }
- // String.prototype.substr - negative index don't work in IE8
- var substr = 'ab'.substr(-1) === 'b'
- ? function (str, start, len) { return str.substr(start, len) }
- : function (str, start, len) {
- if (start < 0) start = str.length + start;
- return str.substr(start, len);
- }
- ;
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("W2nU")))
- /***/ }),
- /***/ "oFOW":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__("sUp0");
- if(typeof content === 'string') content = [[module.i, content, '']];
- if(content.locals) module.exports = content.locals;
- // add the styles to the DOM
- var update = __webpack_require__("rjj0")("41943140", content, true, {});
- /***/ }),
- /***/ "pOqu":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VideoJsMixins; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_assets_js_zh_CN_json__ = __webpack_require__("mfgY");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_assets_js_zh_CN_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_assets_js_zh_CN_json__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils__ = __webpack_require__("DHvs");
- var VideoJsMixins = {
- methods: {
- //TODO 配置中文
- initVideoJs: function initVideoJs() {
- videojs.addLanguage('zh-CN', __WEBPACK_IMPORTED_MODULE_0_assets_js_zh_CN_json___default.a);
- },
- //TODO 事件绑定
- setPlayerEventListener: function setPlayerEventListener(player) {
- var _this = this;
- if (player === null || this.isStreamH265) return;
- if (!this.isSafari) {
- player.on("loadstart", function () {
- return _this.easyPlayerLoadstart();
- });
- player.on("progress", function (e) {
- return _this.easyPlayerProgress(e);
- });
- player.on("loadedmetadata", function () {
- return _this.easyPlayerLoadedmetadata();
- });
- player.on("canplaythrough", function () {
- return _this.easyPlayerCanplaythrough();
- });
- player.on("waiting", function () {
- return _this.easyPlayerWaiting();
- });
- player.on("play", function (e) {
- return _this.easyPlayerPlay(e);
- });
- player.on("playing", function () {
- return _this.easyPlayerPlaying();
- });
- player.on("pause", function (e) {
- return _this.easyPlayerPause(e);
- });
- player.on("ended", function () {
- return _this.easyPlayerEnded();
- });
- player.on("error", function () {
- return _this.easyPlayerError();
- });
- player.on("seeking", function () {
- return _this.easyPlayerSeeking();
- });
- player.on("seeked", function () {
- return _this.easyPlayerSeeked();
- });
- player.on("ratechange", function () {
- return _this.easyPlayerRatechange();
- });
- player.on("timeupdate", function () {
- return _this.easyPlayerTimeupdate();
- });
- player.on("volumechange", function (e) {
- return _this.easyPlayerVolumechange(e);
- });
- player.on("stalled", function () {
- return _this.easyPlayerStalled();
- });
- player.on("fullscreenchange", function () {
- return _this.easyPlayerFullScreenChange();
- });
- this.setFlvPlayerListener(player);
- } else {
- player = this.$el.querySelector("video");
- // player.addEventListener("loadstart", () => this.easyPlayerLoadstart())
- // player.addEventListener("progress", (e) => this.easyPlayerProgress(e))
- // player.addEventListener("loadedmetadata", () => this.easyPlayerLoadedmetadata())
- // player.addEventListener("canplaythrough", () => this.easyPlayerCanplaythrough())
- // player.addEventListener("waiting", () => this.easyPlayerWaiting())
- // player.addEventListener("play", (e) => this.easyPlayerPlay(e))
- // player.addEventListener("playing", () => this.easyPlayerPlaying())
- // player.addEventListener("pause", (e) => this.easyPlayerPause(e))
- //
- // player.addEventListener("ended", () => this.easyPlayerEnded())
- // player.addEventListener("error", () => this.easyPlayerError())
- // player.addEventListener("seeking", () => this.easyPlayerSeeking())
- // player.addEventListener("seeked", () => this.easyPlayerSeeked())
- // player.addEventListener("ratechange", () => this.easyPlayerRatechange())
- //
- // player.addEventListener("timeupdate", () => this.easyPlayerTimeupdate())
- // player.addEventListener("volumechange", (e) => this.easyPlayerVolumechange(e))
- // player.addEventListener("stalled", () => this.easyPlayerStalled())
- // player.addEventListener("fullscreenchange", () => this.easyPlayerFullScreenChange())
- player.addEventListener('canplaythrough', function () {
- return _this.easyPlayerCanplaythrough();
- });
- }
- },
- setFlvPlayerListener: function setFlvPlayerListener(player) {
- var _this2 = this;
- if (player.tech_ && player.tech_.flvPlayer) {
- player.tech_.flvPlayer._emitter.on("encoded_265", function () {
- _this2.isStreamH265 = true;
- _this2.loading = false;
- });
- player.tech_.flvPlayer._emitter.on("source_ended", function () {
- _this2.easyPlayerEnded();
- });
- player.tech_.flvPlayer._emitter.on("changeFullScreen", function (isFull) {
- if (isFull) _this2.fullscreen();else _this2.exitFullscreen();
- });
- }
- },
- easyPlayerLoadstart: function easyPlayerLoadstart() {
- this.pause = false;
- this.loading = true;
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "视频开始加载");
- },
- easyPlayerPlay: function easyPlayerPlay(e) {
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "视频开始播放");
- this.$emit("play", e);
- },
- easyPlayerWaiting: function easyPlayerWaiting() {
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "等待数据");
- this.startWaitingTime = new Date().getTime();
- },
- easyPlayerCanplaythrough: function easyPlayerCanplaythrough() {
- if (this.isFirstPaused) this.isFirstPaused = false;
- if (this.loading) this.loading = false;
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "视频源数据加载完成");
- var vjsPosterEle = this.$el.querySelector('.vjs-poster');
- if (vjsPosterEle) this.$el.querySelector('.vjs-poster').classList = vjsPosterEle.getAttribute("class") + " vjs-poster-animation";
- if (this.isSafari) {
- if (this.live) this.$el.querySelector(".vjs-progress-control").style.opacity = 0;
- if (this.live) this.$el.querySelector(".vjs-remaining-time").style.opacity = 0;
- }
- },
- easyPlayerLoadedmetadata: function easyPlayerLoadedmetadata() {
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "获取资源长度完成", "\u52A0\u8F7D\u65F6\u957F" + (new Date().getTime() - this.startWaitingTime) / 1000 + "s");
- },
- easyPlayerPlaying: function easyPlayerPlaying() {
- this._playerPlaying = true;
- this.isCacheCleanUp = false; //初始化完成关闭表示
- this.restartSnapshot = null;
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "视频播放中");
- this.pause = false;
- },
- easyPlayerProgress: function easyPlayerProgress() {
- if (this.videoUrl.includes(".flv")) this.setFLVListener();
- },
- easyPlayerPause: function easyPlayerPause(e) {
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "暂停事件");
- this.pause = true;
- this.$emit("pause", e);
- },
- easyPlayerFullScreenChange: function easyPlayerFullScreenChange() {
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "视频全屏状态");
- },
- easyPlayerEnded: function easyPlayerEnded() {
- this.$emit("ended");
- if (this.reconnection) this.restartPlayer();
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "视频播放结束");
- },
- easyPlayerError: function easyPlayerError() {
- this.loading = false;
- this.$emit("error");
- if (this.reconnection) this.restartPlayer();
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "加载错误");
- },
- easyPlayerSeeking: function easyPlayerSeeking() {
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "视频跳转中");
- },
- easyPlayerSeeked: function easyPlayerSeeked() {
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "视频跳转结束");
- },
- easyPlayerRatechange: function easyPlayerRatechange() {
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "播放速率改变");
- },
- easyPlayerTimeupdate: function easyPlayerTimeupdate() {
- if (this.isStreamH265) return;
- if (this.loading) this.loading = false;
- var differTime = this.easyPlayer.buffered().end(0) - this.easyPlayer.currentTime();
- // //TODO 处理直播 flv 流延迟过长的问题
- if (this.videoUrl.includes('.flv') && this.live) {
- if (differTime < 10) return this.easyPlayer.playbackRate(1);
- if (differTime < 30) return this.easyPlayer.playbackRate(1.15);
- if (differTime < 60) return this.easyPlayer.playbackRate(1.25);
- if (differTime < 120) return this.easyPlayer.playbackRate(1.5);
- this.initPlayer();
- }
- this.$emit("timeupdate", this.easyPlayer.currentTime());
- },
- easyPlayerVolumechange: function easyPlayerVolumechange(e) {
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "音量改变");
- this.playerMuted = this.easyPlayer.muted();
- },
- easyPlayerStalled: function easyPlayerStalled() {
- __WEBPACK_IMPORTED_MODULE_1__utils__["a" /* Log */](this, this.debug, "网速异常");
- },
- //TODO 加载不同分辨率
- loadDefinitionStreams: function loadDefinitionStreams() {
- var _this3 = this;
- var player = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- if (!this.videoUrl.includes(".m3u8")) return; //只有m3u8 才会渲染多分辨率
- if (!this.resolution) return;
- var resolutionList = this.resolution.split(",");
- var srcList = [];
- resolutionList.forEach(function (res) {
- var src = '';
- if (res === 'yh') src = _this3.videoUrl;else src = _this3.videoUrl.replace(".m3u8", "_" + res + ".m3u8");
- srcList.push({
- src: src,
- res: res,
- type: 'application/x-mpegURL',
- label: _this3.resolutionDict[res]
- });
- });
- player.updateSrc(srcList);
- this.$nextTick(function () {
- _this3.$el.querySelector('.vjs-resolution-button-label').style = "position:absolute;left:10px;top:9px;";
- });
- }
- }
- };
- /***/ }),
- /***/ "pS+P":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var BN = __webpack_require__("geuY");
- var inherits = __webpack_require__("LC74");
- var Base = __webpack_require__("B6Bn");
- var utils = __webpack_require__("TkWM");
- function MontCurve(conf) {
- Base.call(this, 'mont', conf);
- this.a = new BN(conf.a, 16).toRed(this.red);
- this.b = new BN(conf.b, 16).toRed(this.red);
- this.i4 = new BN(4).toRed(this.red).redInvm();
- this.two = new BN(2).toRed(this.red);
- this.a24 = this.i4.redMul(this.a.redAdd(this.two));
- }
- inherits(MontCurve, Base);
- module.exports = MontCurve;
- MontCurve.prototype.validate = function validate(point) {
- var x = point.normalize().x;
- var x2 = x.redSqr();
- var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
- var y = rhs.redSqrt();
- return y.redSqr().cmp(rhs) === 0;
- };
- function Point(curve, x, z) {
- Base.BasePoint.call(this, curve, 'projective');
- if (x === null && z === null) {
- this.x = this.curve.one;
- this.z = this.curve.zero;
- } else {
- this.x = new BN(x, 16);
- this.z = new BN(z, 16);
- if (!this.x.red)
- this.x = this.x.toRed(this.curve.red);
- if (!this.z.red)
- this.z = this.z.toRed(this.curve.red);
- }
- }
- inherits(Point, Base.BasePoint);
- MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
- return this.point(utils.toArray(bytes, enc), 1);
- };
- MontCurve.prototype.point = function point(x, z) {
- return new Point(this, x, z);
- };
- MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
- return Point.fromJSON(this, obj);
- };
- Point.prototype.precompute = function precompute() {
- // No-op
- };
- Point.prototype._encode = function _encode() {
- return this.getX().toArray('be', this.curve.p.byteLength());
- };
- Point.fromJSON = function fromJSON(curve, obj) {
- return new Point(curve, obj[0], obj[1] || curve.one);
- };
- Point.prototype.inspect = function inspect() {
- if (this.isInfinity())
- return '<EC Point Infinity>';
- return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +
- ' z: ' + this.z.fromRed().toString(16, 2) + '>';
- };
- Point.prototype.isInfinity = function isInfinity() {
- // XXX This code assumes that zero is always zero in red
- return this.z.cmpn(0) === 0;
- };
- Point.prototype.dbl = function dbl() {
- // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3
- // 2M + 2S + 4A
- // A = X1 + Z1
- var a = this.x.redAdd(this.z);
- // AA = A^2
- var aa = a.redSqr();
- // B = X1 - Z1
- var b = this.x.redSub(this.z);
- // BB = B^2
- var bb = b.redSqr();
- // C = AA - BB
- var c = aa.redSub(bb);
- // X3 = AA * BB
- var nx = aa.redMul(bb);
- // Z3 = C * (BB + A24 * C)
- var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
- return this.curve.point(nx, nz);
- };
- Point.prototype.add = function add() {
- throw new Error('Not supported on Montgomery curve');
- };
- Point.prototype.diffAdd = function diffAdd(p, diff) {
- // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3
- // 4M + 2S + 6A
- // A = X2 + Z2
- var a = this.x.redAdd(this.z);
- // B = X2 - Z2
- var b = this.x.redSub(this.z);
- // C = X3 + Z3
- var c = p.x.redAdd(p.z);
- // D = X3 - Z3
- var d = p.x.redSub(p.z);
- // DA = D * A
- var da = d.redMul(a);
- // CB = C * B
- var cb = c.redMul(b);
- // X5 = Z1 * (DA + CB)^2
- var nx = diff.z.redMul(da.redAdd(cb).redSqr());
- // Z5 = X1 * (DA - CB)^2
- var nz = diff.x.redMul(da.redISub(cb).redSqr());
- return this.curve.point(nx, nz);
- };
- Point.prototype.mul = function mul(k) {
- var t = k.clone();
- var a = this; // (N / 2) * Q + Q
- var b = this.curve.point(null, null); // (N / 2) * Q
- var c = this; // Q
- for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))
- bits.push(t.andln(1));
- for (var i = bits.length - 1; i >= 0; i--) {
- if (bits[i] === 0) {
- // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q
- a = a.diffAdd(b, c);
- // N * Q = 2 * ((N / 2) * Q + Q))
- b = b.dbl();
- } else {
- // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)
- b = a.diffAdd(b, c);
- // N * Q + Q = 2 * ((N / 2) * Q + Q)
- a = a.dbl();
- }
- }
- return b;
- };
- Point.prototype.mulAdd = function mulAdd() {
- throw new Error('Not supported on Montgomery curve');
- };
- Point.prototype.jumlAdd = function jumlAdd() {
- throw new Error('Not supported on Montgomery curve');
- };
- Point.prototype.eq = function eq(other) {
- return this.getX().cmp(other.getX()) === 0;
- };
- Point.prototype.normalize = function normalize() {
- this.x = this.x.redMul(this.z.redInvm());
- this.z = this.curve.one;
- return this;
- };
- Point.prototype.getX = function getX() {
- // Normalize coordinates
- this.normalize();
- return this.x.fromRed();
- };
- /***/ }),
- /***/ "pn+s":
- /***/ (function(module, exports, __webpack_require__) {
- // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js
- var Buffer = __webpack_require__("X3l8").Buffer
- var createHmac = __webpack_require__("ARY+")
- var crt = __webpack_require__("jSRM")
- var EC = __webpack_require__("lZ6o").ec
- var BN = __webpack_require__("wuSB")
- var parseKeys = __webpack_require__("jkjm")
- var curves = __webpack_require__("QDfD")
- function sign (hash, key, hashType, signType, tag) {
- var priv = parseKeys(key)
- if (priv.curve) {
- // rsa keys can be interpreted as ecdsa ones in openssl
- if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')
- return ecSign(hash, priv)
- } else if (priv.type === 'dsa') {
- if (signType !== 'dsa') throw new Error('wrong private key type')
- return dsaSign(hash, priv, hashType)
- } else {
- if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')
- }
- hash = Buffer.concat([tag, hash])
- var len = priv.modulus.byteLength()
- var pad = [0, 1]
- while (hash.length + pad.length + 1 < len) pad.push(0xff)
- pad.push(0x00)
- var i = -1
- while (++i < hash.length) pad.push(hash[i])
- var out = crt(pad, priv)
- return out
- }
- function ecSign (hash, priv) {
- var curveId = curves[priv.curve.join('.')]
- if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))
- var curve = new EC(curveId)
- var key = curve.keyFromPrivate(priv.privateKey)
- var out = key.sign(hash)
- return Buffer.from(out.toDER())
- }
- function dsaSign (hash, priv, algo) {
- var x = priv.params.priv_key
- var p = priv.params.p
- var q = priv.params.q
- var g = priv.params.g
- var r = new BN(0)
- var k
- var H = bits2int(hash, q).mod(q)
- var s = false
- var kv = getKey(x, q, hash, algo)
- while (s === false) {
- k = makeKey(q, kv, algo)
- r = makeR(g, k, p, q)
- s = k.invm(q).imul(H.add(x.mul(r))).mod(q)
- if (s.cmpn(0) === 0) {
- s = false
- r = new BN(0)
- }
- }
- return toDER(r, s)
- }
- function toDER (r, s) {
- r = r.toArray()
- s = s.toArray()
- // Pad values
- if (r[0] & 0x80) r = [0].concat(r)
- if (s[0] & 0x80) s = [0].concat(s)
- var total = r.length + s.length + 4
- var res = [0x30, total, 0x02, r.length]
- res = res.concat(r, [0x02, s.length], s)
- return Buffer.from(res)
- }
- function getKey (x, q, hash, algo) {
- x = Buffer.from(x.toArray())
- if (x.length < q.byteLength()) {
- var zeros = Buffer.alloc(q.byteLength() - x.length)
- x = Buffer.concat([zeros, x])
- }
- var hlen = hash.length
- var hbits = bits2octets(hash, q)
- var v = Buffer.alloc(hlen)
- v.fill(1)
- var k = Buffer.alloc(hlen)
- k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()
- v = createHmac(algo, k).update(v).digest()
- k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()
- v = createHmac(algo, k).update(v).digest()
- return { k: k, v: v }
- }
- function bits2int (obits, q) {
- var bits = new BN(obits)
- var shift = (obits.length << 3) - q.bitLength()
- if (shift > 0) bits.ishrn(shift)
- return bits
- }
- function bits2octets (bits, q) {
- bits = bits2int(bits, q)
- bits = bits.mod(q)
- var out = Buffer.from(bits.toArray())
- if (out.length < q.byteLength()) {
- var zeros = Buffer.alloc(q.byteLength() - out.length)
- out = Buffer.concat([zeros, out])
- }
- return out
- }
- function makeKey (q, kv, algo) {
- var t
- var k
- do {
- t = Buffer.alloc(0)
- while (t.length * 8 < q.bitLength()) {
- kv.v = createHmac(algo, kv.k).update(kv.v).digest()
- t = Buffer.concat([t, kv.v])
- }
- k = bits2int(t, q)
- kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()
- kv.v = createHmac(algo, kv.k).update(kv.v).digest()
- } while (k.cmp(q) !== -1)
- return k
- }
- function makeR (g, k, p, q) {
- return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)
- }
- module.exports = sign
- module.exports.getKey = getKey
- module.exports.makeKey = makeKey
- /***/ }),
- /***/ "ps4E":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const inherits = __webpack_require__("LC74");
- const Buffer = __webpack_require__("Hwfm").Buffer;
- const Node = __webpack_require__("vugd");
- // Import DER constants
- const der = __webpack_require__("C1C2");
- function DEREncoder(entity) {
- this.enc = 'der';
- this.name = entity.name;
- this.entity = entity;
- // Construct base tree
- this.tree = new DERNode();
- this.tree._init(entity.body);
- }
- module.exports = DEREncoder;
- DEREncoder.prototype.encode = function encode(data, reporter) {
- return this.tree._encode(data, reporter).join();
- };
- // Tree methods
- function DERNode(parent) {
- Node.call(this, 'der', parent);
- }
- inherits(DERNode, Node);
- DERNode.prototype._encodeComposite = function encodeComposite(tag,
- primitive,
- cls,
- content) {
- const encodedTag = encodeTag(tag, primitive, cls, this.reporter);
- // Short form
- if (content.length < 0x80) {
- const header = Buffer.alloc(2);
- header[0] = encodedTag;
- header[1] = content.length;
- return this._createEncoderBuffer([ header, content ]);
- }
- // Long form
- // Count octets required to store length
- let lenOctets = 1;
- for (let i = content.length; i >= 0x100; i >>= 8)
- lenOctets++;
- const header = Buffer.alloc(1 + 1 + lenOctets);
- header[0] = encodedTag;
- header[1] = 0x80 | lenOctets;
- for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)
- header[i] = j & 0xff;
- return this._createEncoderBuffer([ header, content ]);
- };
- DERNode.prototype._encodeStr = function encodeStr(str, tag) {
- if (tag === 'bitstr') {
- return this._createEncoderBuffer([ str.unused | 0, str.data ]);
- } else if (tag === 'bmpstr') {
- const buf = Buffer.alloc(str.length * 2);
- for (let i = 0; i < str.length; i++) {
- buf.writeUInt16BE(str.charCodeAt(i), i * 2);
- }
- return this._createEncoderBuffer(buf);
- } else if (tag === 'numstr') {
- if (!this._isNumstr(str)) {
- return this.reporter.error('Encoding of string type: numstr supports ' +
- 'only digits and space');
- }
- return this._createEncoderBuffer(str);
- } else if (tag === 'printstr') {
- if (!this._isPrintstr(str)) {
- return this.reporter.error('Encoding of string type: printstr supports ' +
- 'only latin upper and lower case letters, ' +
- 'digits, space, apostrophe, left and rigth ' +
- 'parenthesis, plus sign, comma, hyphen, ' +
- 'dot, slash, colon, equal sign, ' +
- 'question mark');
- }
- return this._createEncoderBuffer(str);
- } else if (/str$/.test(tag)) {
- return this._createEncoderBuffer(str);
- } else if (tag === 'objDesc') {
- return this._createEncoderBuffer(str);
- } else {
- return this.reporter.error('Encoding of string type: ' + tag +
- ' unsupported');
- }
- };
- DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {
- if (typeof id === 'string') {
- if (!values)
- return this.reporter.error('string objid given, but no values map found');
- if (!values.hasOwnProperty(id))
- return this.reporter.error('objid not found in values map');
- id = values[id].split(/[\s.]+/g);
- for (let i = 0; i < id.length; i++)
- id[i] |= 0;
- } else if (Array.isArray(id)) {
- id = id.slice();
- for (let i = 0; i < id.length; i++)
- id[i] |= 0;
- }
- if (!Array.isArray(id)) {
- return this.reporter.error('objid() should be either array or string, ' +
- 'got: ' + JSON.stringify(id));
- }
- if (!relative) {
- if (id[1] >= 40)
- return this.reporter.error('Second objid identifier OOB');
- id.splice(0, 2, id[0] * 40 + id[1]);
- }
- // Count number of octets
- let size = 0;
- for (let i = 0; i < id.length; i++) {
- let ident = id[i];
- for (size++; ident >= 0x80; ident >>= 7)
- size++;
- }
- const objid = Buffer.alloc(size);
- let offset = objid.length - 1;
- for (let i = id.length - 1; i >= 0; i--) {
- let ident = id[i];
- objid[offset--] = ident & 0x7f;
- while ((ident >>= 7) > 0)
- objid[offset--] = 0x80 | (ident & 0x7f);
- }
- return this._createEncoderBuffer(objid);
- };
- function two(num) {
- if (num < 10)
- return '0' + num;
- else
- return num;
- }
- DERNode.prototype._encodeTime = function encodeTime(time, tag) {
- let str;
- const date = new Date(time);
- if (tag === 'gentime') {
- str = [
- two(date.getUTCFullYear()),
- two(date.getUTCMonth() + 1),
- two(date.getUTCDate()),
- two(date.getUTCHours()),
- two(date.getUTCMinutes()),
- two(date.getUTCSeconds()),
- 'Z'
- ].join('');
- } else if (tag === 'utctime') {
- str = [
- two(date.getUTCFullYear() % 100),
- two(date.getUTCMonth() + 1),
- two(date.getUTCDate()),
- two(date.getUTCHours()),
- two(date.getUTCMinutes()),
- two(date.getUTCSeconds()),
- 'Z'
- ].join('');
- } else {
- this.reporter.error('Encoding ' + tag + ' time is not supported yet');
- }
- return this._encodeStr(str, 'octstr');
- };
- DERNode.prototype._encodeNull = function encodeNull() {
- return this._createEncoderBuffer('');
- };
- DERNode.prototype._encodeInt = function encodeInt(num, values) {
- if (typeof num === 'string') {
- if (!values)
- return this.reporter.error('String int or enum given, but no values map');
- if (!values.hasOwnProperty(num)) {
- return this.reporter.error('Values map doesn\'t contain: ' +
- JSON.stringify(num));
- }
- num = values[num];
- }
- // Bignum, assume big endian
- if (typeof num !== 'number' && !Buffer.isBuffer(num)) {
- const numArray = num.toArray();
- if (!num.sign && numArray[0] & 0x80) {
- numArray.unshift(0);
- }
- num = Buffer.from(numArray);
- }
- if (Buffer.isBuffer(num)) {
- let size = num.length;
- if (num.length === 0)
- size++;
- const out = Buffer.alloc(size);
- num.copy(out);
- if (num.length === 0)
- out[0] = 0;
- return this._createEncoderBuffer(out);
- }
- if (num < 0x80)
- return this._createEncoderBuffer(num);
- if (num < 0x100)
- return this._createEncoderBuffer([0, num]);
- let size = 1;
- for (let i = num; i >= 0x100; i >>= 8)
- size++;
- const out = new Array(size);
- for (let i = out.length - 1; i >= 0; i--) {
- out[i] = num & 0xff;
- num >>= 8;
- }
- if(out[0] & 0x80) {
- out.unshift(0);
- }
- return this._createEncoderBuffer(Buffer.from(out));
- };
- DERNode.prototype._encodeBool = function encodeBool(value) {
- return this._createEncoderBuffer(value ? 0xff : 0);
- };
- DERNode.prototype._use = function use(entity, obj) {
- if (typeof entity === 'function')
- entity = entity(obj);
- return entity._getEncoder('der').tree;
- };
- DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {
- const state = this._baseState;
- let i;
- if (state['default'] === null)
- return false;
- const data = dataBuffer.join();
- if (state.defaultBuffer === undefined)
- state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();
- if (data.length !== state.defaultBuffer.length)
- return false;
- for (i=0; i < data.length; i++)
- if (data[i] !== state.defaultBuffer[i])
- return false;
- return true;
- };
- // Utility methods
- function encodeTag(tag, primitive, cls, reporter) {
- let res;
- if (tag === 'seqof')
- tag = 'seq';
- else if (tag === 'setof')
- tag = 'set';
- if (der.tagByName.hasOwnProperty(tag))
- res = der.tagByName[tag];
- else if (typeof tag === 'number' && (tag | 0) === tag)
- res = tag;
- else
- return reporter.error('Unknown tag: ' + tag);
- if (res >= 0x1f)
- return reporter.error('Multi-octet tag encoding unsupported');
- if (!primitive)
- res |= 0x20;
- res |= (der.tagClassByName[cls || 'universal'] << 6);
- return res;
- }
- /***/ }),
- /***/ "qHGM":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return WasmMixins; });
- var WasmMixins = {
- methods: {
- //TODO H265 初始化始播放器
- initH265Player: function initH265Player(code, reloadBool) {
- var _this = this;
- if (code === 12) {
- if (this.videoUrl.indexOf(".m3u8") !== -1) this.destroyPlayer();
- this.$nextTick(function () {
- if (_this.videoUrl.indexOf(".m3u8") === -1) _this.destroyPlayer();
- _this.initVideoEle();
- var videoEle = _this.$el.querySelector("video");
- videoEle.parentNode.appendChild(_this.easyPlayerLoadingEle); //解决全屏无法出现loading 的问题
- var video_url = _this.videoUrl;
- if (video_url.startsWith("app://.")) video_url = video_url.replace("app://.", _this.remoteHost);
- _this.easyPlayer = new flvjs.createPlayer({
- url: video_url,
- muted: _this.muted,
- hasAudio: _this.hasAudio,
- remoteHost: _this.remoteHost,
- recordMaxFileSize: _this.recordMaxFileSize
- }, { decodeType: flvjs.isSupported() ? 'auto' : 'sort', recordFileName: _this.recordFileName });
- _this.easyPlayer.attachMediaElement(videoEle);
- _this.easyPlayer.load();
- _this.easyPlayer.play();
- setTimeout(function () {
- return _this.loading = false;
- }, 3500);
- //TODO 处理265 hls 播放404
- _this.easyPlayer._emitter.on("source_ended", function () {
- _this.easyPlayerEnded();
- });
- _this.easyPlayer._emitter.on("timeupdate", function (currentTime) {
- _this.$emit("timeupdate", currentTime);
- });
- _this.easyPlayer._emitter.on("changeFullScreen", function (isFull) {
- if (isFull) _this.fullscreen();else _this.exitFullscreen();
- });
- });
- }
- },
- //TODO HLS 录像下载
- recordDownload: function recordDownload() {
- if (this._recordArrayBuffer.length === 0 || this._recordArrayBuffer.byteLength === 0) return;
- var cacheArrayBuffer = this._recordArrayBuffer.slice(0, this._recordOffset);
- var aEle = document.createElement('a');
- aEle.style.display = 'none';
- aEle.href = URL.createObjectURL(new Blob([cacheArrayBuffer], { type: 'video/mp4' }));
- aEle.download = this.recordFileName.includes(".mp4") ? this.recordFileName : this.recordFileName + "-" + this.dateFormat(new Date(), "YYYYMMDDhhmmss") + ".mp4";
- document.body.appendChild(aEle);
- aEle.click();
- window.URL.revokeObjectURL(aEle.href);
- document.body.removeChild(aEle);
- this._recordOffset = 0;
- this._recordArrayBuffer = [];
- this._cacheArrayBuffer = [];
- },
- _recordingUIChange: function _recordingUIChange() {
- this._recording = !this._recording;
- this.luXiangEle.title = this._recording ? "关闭录像" : "录像";
- this.luXiangEle.style.color = this._recording ? 'red' : 'white';
- if (this._recording) this._recordFileName = this.recordFileName ? this.recordFileName + ".mp4" : this.dateFormat(new Date(), "YYYYMMDDhhmmss") + ".mp4";
- if (this.videoUrl.includes(".flv")) this.easyPlayer.tech_.flvPlayer.startWebVideoRecord(this._recording ? 1 : 0, this._recordFileName, 1024 * 1024 * 100);
- },
- wasmFrame2Image: function wasmFrame2Image() {
- var _this2 = this;
- var keyframe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : './channel_1.raw';
- return new Promise(function (resolve, reject) {
- var bufferLength = void 0;
- if (keyframe === '') return resolve("");
- if (keyframe.startsWith("app://./")) keyframe = keyframe.replace("app://.", _this2.remoteHost);
- if (!keyframe.startsWith("http")) keyframe = "" + _this2.remoteHost + keyframe;
- fetch(keyframe, {
- method: "get",
- responseType: 'arraybuffer',
- keepalive: false,
- headers: { timeout: 10 }
- }).then(function (data) {
- return data.arrayBuffer();
- }).then(function (buffer) {
- bufferLength = parseInt(buffer.byteLength || '0');
- buffer = new Uint8Array(buffer);
- var mModule = window.easyPlayerWasmModule;
- var wasmKits = window.easyPlayerWasmKits;
- var offset = mModule._malloc(bufferLength);
- resolve(_this2.binaryToImageBase64(buffer, bufferLength, mModule, wasmKits, offset));
- }).catch(function (e) {
- console.log("i 帧 加载失败", e);
- resolve("");
- });
- });
- },
- binaryToImageBase64: function binaryToImageBase64(buffer, bufferLength, mModule, wasmKits, offset) {
- wasmKits.applyMemory();
- mModule.HEAP8.set(buffer, offset);
- var n = void 0;
- var outImageData = void 0,
- b64encoded = void 0;
- try {
- n = wasmKits.convertFrame2Image(0, offset, bufferLength, wasmKits.yuvData, 0);
- mModule._free(offset);
- wasmKits.freeMemory();
- outImageData = mModule.HEAPU8.subarray(wasmKits.yuvData, wasmKits.yuvData + n);
- /**
- * String.fromCharCode.apply(null, array) 显示 Maximum call stack size exceeded
- * 超过最大调用堆栈大小
- */
- var chunk = 8 * 1024,
- strData = '';
- var i = void 0;
- for (i = 0; i < outImageData.length / chunk; i++) {
- strData += String.fromCharCode.apply(null, outImageData.slice(i * chunk, (i + 1) * chunk));
- }
- strData += String.fromCharCode.apply(null, outImageData.slice(i * chunk));
- b64encoded = btoa(strData);
- } catch (e) {
- return '';
- }
- return "data:image/jpeg;base64," + b64encoded;
- }
- }
- };
- /***/ }),
- /***/ "qMAc":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("FZ+f")(undefined);
- // imports
- // module
- exports.push([module.i, ".video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.vjs-modal-dialog .vjs-modal-dialog-content{position:absolute;top:0;left:0;width:100%;height:100%}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.vjs-button>.vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,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) format(\"woff\");font-weight:400;font-style:normal}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder,.vjs-icon-play{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.vjs-icon-play:before{content:\"\\F101\"}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:\"\\F102\"}.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder,.vjs-icon-pause{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before,.vjs-icon-pause:before{content:\"\\F103\"}.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder,.vjs-icon-volume-mute{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before,.vjs-icon-volume-mute:before{content:\"\\F104\"}.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder,.vjs-icon-volume-low{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before,.vjs-icon-volume-low:before{content:\"\\F105\"}.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder,.vjs-icon-volume-mid{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before,.vjs-icon-volume-mid:before{content:\"\\F106\"}.video-js .vjs-mute-control .vjs-icon-placeholder,.vjs-icon-volume-high{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control .vjs-icon-placeholder:before,.vjs-icon-volume-high:before{content:\"\\F107\"}.video-js .vjs-fullscreen-control .vjs-icon-placeholder,.vjs-icon-fullscreen-enter{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before,.vjs-icon-fullscreen-enter:before{content:\"\\F108\"}.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder,.vjs-icon-fullscreen-exit{font-family:VideoJS;font-weight:400;font-style:normal}.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before,.vjs-icon-fullscreen-exit:before{content:\"\\F109\"}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:\"\\F10A\"}.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder,.vjs-icon-subtitles{font-family:VideoJS;font-weight:400;font-style:normal}.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before,.vjs-icon-subtitles:before{content:\"\\F10B\"}.video-js .vjs-captions-button .vjs-icon-placeholder,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.vjs-icon-captions{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-captions-button .vjs-icon-placeholder:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.vjs-icon-captions:before{content:\"\\F10C\"}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:\"\\F10D\"}.video-js .vjs-chapters-button .vjs-icon-placeholder,.vjs-icon-chapters{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-chapters-button .vjs-icon-placeholder:before,.vjs-icon-chapters:before{content:\"\\F10E\"}.vjs-icon-downloading{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-downloading:before{content:\"\\F10F\"}.vjs-icon-file-download{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download:before{content:\"\\F110\"}.vjs-icon-file-download-done{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download-done:before{content:\"\\F111\"}.vjs-icon-file-download-off{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download-off:before{content:\"\\F112\"}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:\"\\F113\"}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:\"\\F114\"}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:\"\\F115\"}.video-js .vjs-play-progress,.video-js .vjs-volume-level,.vjs-icon-circle,.vjs-seek-to-live-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-progress:before,.video-js .vjs-volume-level:before,.vjs-icon-circle:before,.vjs-seek-to-live-control .vjs-icon-placeholder:before{content:\"\\F116\"}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:\"\\F117\"}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:\"\\F118\"}.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder,.vjs-icon-cancel{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before,.vjs-icon-cancel:before{content:\"\\F119\"}.vjs-icon-repeat{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-repeat:before{content:\"\\F11A\"}.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder,.vjs-icon-replay{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before,.vjs-icon-replay:before{content:\"\\F11B\"}.video-js .vjs-skip-backward-5 .vjs-icon-placeholder,.vjs-icon-replay-5{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-skip-backward-5 .vjs-icon-placeholder:before,.vjs-icon-replay-5:before{content:\"\\F11C\"}.video-js .vjs-skip-backward-10 .vjs-icon-placeholder,.vjs-icon-replay-10{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-skip-backward-10 .vjs-icon-placeholder:before,.vjs-icon-replay-10:before{content:\"\\F11D\"}.video-js .vjs-skip-backward-30 .vjs-icon-placeholder,.vjs-icon-replay-30{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-skip-backward-30 .vjs-icon-placeholder:before,.vjs-icon-replay-30:before{content:\"\\F11E\"}.video-js .vjs-skip-forward-5 .vjs-icon-placeholder,.vjs-icon-forward-5{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-skip-forward-5 .vjs-icon-placeholder:before,.vjs-icon-forward-5:before{content:\"\\F11F\"}.video-js .vjs-skip-forward-10 .vjs-icon-placeholder,.vjs-icon-forward-10{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-skip-forward-10 .vjs-icon-placeholder:before,.vjs-icon-forward-10:before{content:\"\\F120\"}.video-js .vjs-skip-forward-30 .vjs-icon-placeholder,.vjs-icon-forward-30{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-skip-forward-30 .vjs-icon-placeholder:before,.vjs-icon-forward-30:before{content:\"\\F121\"}.video-js .vjs-audio-button .vjs-icon-placeholder,.vjs-icon-audio{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-audio-button .vjs-icon-placeholder:before,.vjs-icon-audio:before{content:\"\\F122\"}.vjs-icon-next-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-next-item:before{content:\"\\F123\"}.vjs-icon-previous-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-previous-item:before{content:\"\\F124\"}.vjs-icon-shuffle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-shuffle:before{content:\"\\F125\"}.vjs-icon-cast{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cast:before{content:\"\\F126\"}.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder,.vjs-icon-picture-in-picture-enter{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before,.vjs-icon-picture-in-picture-enter:before{content:\"\\F127\"}.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder,.vjs-icon-picture-in-picture-exit{font-family:VideoJS;font-weight:400;font-style:normal}.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before,.vjs-icon-picture-in-picture-exit:before{content:\"\\F128\"}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:\"\\F129\"}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:\"\\F12A\"}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:\"\\F12B\"}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:\"\\F12C\"}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:\"\\F12D\"}.video-js .vjs-descriptions-button .vjs-icon-placeholder,.vjs-icon-audio-description{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-descriptions-button .vjs-icon-placeholder:before,.vjs-icon-audio-description:before{content:\"\\F12E\"}.video-js{display:inline-block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;word-break:normal}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js[tabindex=\"-1\"]{outline:0}.video-js *,.video-js :after,.video-js :before{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin:0}.video-js.vjs-1-1,.video-js.vjs-4-3,.video-js.vjs-9-16,.video-js.vjs-16-9,.video-js.vjs-fluid{width:100%;max-width:100%}.video-js.vjs-1-1:not(.vjs-audio-only-mode),.video-js.vjs-4-3:not(.vjs-audio-only-mode),.video-js.vjs-9-16:not(.vjs-audio-only-mode),.video-js.vjs-16-9:not(.vjs-audio-only-mode),.video-js.vjs-fluid:not(.vjs-audio-only-mode){height:0}.video-js.vjs-16-9:not(.vjs-audio-only-mode){padding-top:56.25%}.video-js.vjs-4-3:not(.vjs-audio-only-mode){padding-top:75%}.video-js.vjs-9-16:not(.vjs-audio-only-mode){padding-top:177.7777777778%}.video-js.vjs-1-1:not(.vjs-audio-only-mode){padding-top:100%}.video-js.vjs-fill:not(.vjs-audio-only-mode),.video-js .vjs-tech{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0}.video-js.vjs-audio-only-mode .vjs-tech{display:none}body.vjs-full-window,body.vjs-pip-window{padding:0;margin:0;height:100%}.vjs-full-window .video-js.vjs-fullscreen,body.vjs-pip-window .video-js{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.video-js.vjs-fullscreen:not(.vjs-ios-native-fs),body.vjs-pip-window .video-js{width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-pip-container .vjs-pip-text{position:absolute;bottom:10%;font-size:2em;background-color:rgba(0,0,0,.7);padding:.5em;text-align:center;width:100%}.vjs-layout-small.vjs-pip-container .vjs-pip-text,.vjs-layout-tiny.vjs-pip-container .vjs-pip-text,.vjs-layout-x-small.vjs-pip-container .vjs-pip-text{bottom:0;font-size:1.4em}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.63332em;width:3em;display:block;position:absolute;top:50%;left:50%;padding:0;margin-top:-.81666em;margin-left:-1.5em;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2b333f;background-color:rgba(43,51,63,.7);border-radius:.3em;transition:all .4s}.video-js .vjs-big-play-button:focus,.video-js:hover .vjs-big-play-button{border-color:#fff;background-color:#73859f;background-color:rgba(115,133,159,.5);transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-error .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button{display:block}.video-js button{background:0 0;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vjs-control .vjs-button{width:100%;height:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:linear-gradient(180deg,rgba(0,0,0,.8),hsla(0,0%,100%,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:auto}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.js-focus-visible .vjs-menu li.vjs-menu-item:hover,.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:rgba(115,133,159,.5)}.js-focus-visible .vjs-menu li.vjs-selected:hover,.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.js-focus-visible .vjs-menu :not(.vjs-selected):focus:not(.focus-visible),.video-js .vjs-menu :not(.vjs-selected):focus:not(:focus-visible){background:0 0}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0;margin-bottom:1.5em;border-top-color:rgba(43,51,63,.7)}.vjs-pip-window .vjs-menu-button-popup .vjs-menu{left:unset;right:1em}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:rgba(43,51,63,.7);position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:5em}.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:10em}.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:14em}.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:25em}.vjs-menu-button-popup .vjs-menu.vjs-lock-showing,.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu{display:block}.video-js .vjs-menu-button-inline{transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline.vjs-slider-active,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline:hover{width:12em}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;transition:all .4s}.vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline:hover .vjs-menu{display:block;opacity:1}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2b333f;background-color:rgba(43,51,63,.7)}.vjs-audio-only-mode .vjs-control-bar,.vjs-has-started .vjs-control-bar{display:flex;visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;pointer-events:none;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-error .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar{display:none!important}.vjs-audio-only-mode.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar,.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible;pointer-events:auto}.video-js .vjs-control{position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;flex:none}.video-js .vjs-control.vjs-visible-text{width:auto;padding-left:1em;padding-right:1em}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.vjs-button>.vjs-icon-placeholder{display:block}.video-js .vjs-control:focus,.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before{text-shadow:0 0 1em #fff}.video-js :not(.vjs-visible-text)>.vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{cursor:pointer;flex:auto;display:flex;align-items:center;min-width:4em;touch-action:none}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-liveui .vjs-progress-control{display:flex;align-items:center}.video-js .vjs-progress-holder{flex:auto;transition:all .2s;height:.3em}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div,.video-js .vjs-progress-holder .vjs-play-progress{position:absolute;display:block;height:100%;margin:0;padding:0;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;position:absolute;right:-.5em;line-height:.35em;z-index:1}.video-js .vjs-load-progress{background:rgba(115,133,159,.5)}.video-js .vjs-load-progress div{background:rgba(115,133,159,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:hsla(0,0%,100%,.8);border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.video-js .vjs-progress-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:rgba(0,0,0,.8)}.video-js .vjs-slider{position:relative;cursor:pointer;padding:0;margin:0 .45em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#73859f;background-color:rgba(115,133,159,.5)}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{text-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control{cursor:pointer;flex:none}.video-js .vjs-volume-control{cursor:pointer;margin-right:1em;display:flex}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{visibility:visible;opacity:0;width:1px;height:1px;margin-left:-1px}.video-js .vjs-volume-panel{transition:width 1s}.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control{visibility:visible;opacity:1;position:relative;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s}.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal{width:5em;height:3em;margin-right:0}.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical{left:-3.5em;transition:left 0s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active{width:10em;transition:width .1s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only{width:4em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;width:3em;left:-3000em;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel{display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em;z-index:1}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em;z-index:1}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{line-height:.35em;right:-.5em}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{width:3em;height:8em;bottom:8em;background-color:#2b333f;background-color:rgba(43,51,63,.7)}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.video-js .vjs-volume-tooltip{background-color:#fff;background-color:hsla(0,0%,100%,.8);border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip,.video-js .vjs-volume-control:hover .vjs-volume-tooltip{display:block;font-size:1em;visibility:visible}.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip,.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip{left:1em;top:-12px}.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip{font-size:1em}.video-js .vjs-volume-control .vjs-mouse-display{display:none;position:absolute;width:100%;height:1px;background-color:#000;z-index:1}.video-js .vjs-volume-horizontal .vjs-mouse-display{width:1px;height:100%}.video-js .vjs-volume-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.vjs-mouse-display .vjs-volume-tooltip{color:#fff;background-color:#000;background-color:rgba(0,0,0,.8)}.vjs-poster{display:inline-block;vertical-align:middle;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-has-started .vjs-poster,.vjs-using-native-controls .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster,.vjs-has-started.vjs-audio-poster-mode .vjs-poster,.vjs-pip-container.vjs-has-started .vjs-poster{display:block}.vjs-poster img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.video-js .vjs-live-control{display:flex;align-items:flex-start;flex:auto;font-size:1em;line-height:3em}.video-js.vjs-liveui .vjs-live-control,.video-js:not(.vjs-live) .vjs-live-control{display:none}.video-js .vjs-seek-to-live-control{align-items:center;cursor:pointer;flex:none;display:inline-flex;height:100%;padding-left:.5em;padding-right:.5em;font-size:1em;line-height:3em;width:auto;min-width:4em}.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,.video-js:not(.vjs-live) .vjs-seek-to-live-control{display:none}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge{cursor:auto}.vjs-seek-to-live-control .vjs-icon-placeholder{margin-right:.5em;color:#888}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder{color:red}.video-js .vjs-time-control{flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.video-js .vjs-current-time,.video-js .vjs-duration,.vjs-live .vjs-time-control,.vjs-live .vjs-time-divider{display:none}.vjs-time-divider{display:none;line-height:3em}.video-js .vjs-play-control{cursor:pointer}.video-js .vjs-play-control .vjs-icon-placeholder{flex:none}.vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.video-js.vjs-controls-disabled .vjs-text-track-display,.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{transform:translateY(-3em)}.video-js.vjs-controls-disabled video::-webkit-media-text-track-display,.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{transform:translateY(-1.5em)}.video-js .vjs-picture-in-picture-control{cursor:pointer;flex:none}.video-js.vjs-audio-only-mode .vjs-picture-in-picture-control,.vjs-pip-window .vjs-picture-in-picture-control{display:none}.video-js .vjs-fullscreen-control{cursor:pointer;flex:none}.video-js.vjs-audio-only-mode .vjs-fullscreen-control,.vjs-pip-window .vjs-fullscreen-control{display:none}.vjs-playback-rate .vjs-playback-rate-value,.vjs-playback-rate>.vjs-menu-button{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-playback-rate .vjs-playback-rate-value{pointer-events:none;font-size:1.5em;line-height:2;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-error .vjs-error-display:before{color:#fff;content:\"X\";font-family:Arial,Helvetica,sans-serif;font-size:4em;left:0;line-height:1;margin-top:-.5em;position:absolute;text-shadow:.05em .05em .1em #000;text-align:center;top:50%;vertical-align:middle;width:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;opacity:.85;text-align:left;border:6px solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:50px;height:50px;border-radius:25px;visibility:hidden}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:block;animation:vjs-spinner-show 0s linear .3s forwards}.vjs-loading-spinner:after,.vjs-loading-spinner:before{content:\"\";position:absolute;margin:-6px;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before{animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;animation-delay:.44s}@keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{to{transform:rotate(1turn)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}.video-js.vjs-audio-only-mode .vjs-captions-button{display:none}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js.vjs-audio-only-mode .vjs-descriptions-button{display:none}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:\"\\F10C\";font-size:1.5em;line-height:inherit}.video-js.vjs-audio-only-mode .vjs-subs-caps-button{display:none}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:\" \\F12E\";font-size:1.5em;line-height:inherit}.video-js.vjs-layout-small .vjs-current-time,.video-js.vjs-layout-small .vjs-duration,.video-js.vjs-layout-small .vjs-playback-rate,.video-js.vjs-layout-small .vjs-remaining-time,.video-js.vjs-layout-small .vjs-time-divider,.video-js.vjs-layout-small .vjs-volume-control,.video-js.vjs-layout-tiny .vjs-current-time,.video-js.vjs-layout-tiny .vjs-duration,.video-js.vjs-layout-tiny .vjs-playback-rate,.video-js.vjs-layout-tiny .vjs-remaining-time,.video-js.vjs-layout-tiny .vjs-time-divider,.video-js.vjs-layout-tiny .vjs-volume-control,.video-js.vjs-layout-x-small .vjs-current-time,.video-js.vjs-layout-x-small .vjs-duration,.video-js.vjs-layout-x-small .vjs-playback-rate,.video-js.vjs-layout-x-small .vjs-remaining-time,.video-js.vjs-layout-x-small .vjs-time-divider,.video-js.vjs-layout-x-small .vjs-volume-control{display:none}.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover{width:auto}.video-js.vjs-layout-tiny .vjs-progress-control,.video-js.vjs-layout-x-small .vjs-progress-control{display:none}.video-js.vjs-layout-x-small .vjs-custom-control-spacer{flex:auto;display:block}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:rgba(43,51,63,.75);color:#fff;height:70%}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-controls,.vjs-text-track-settings .vjs-track-settings-font{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display:grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:20px 24px 0}.vjs-track-settings-controls .vjs-default-button{margin-bottom:20px}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:1/-1}.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content{grid-template-columns:1fr}}.vjs-track-setting>select{margin-right:1em;margin-bottom:.5em}.vjs-text-track-settings fieldset{margin:10px;border:none}.vjs-text-track-settings fieldset span{display:inline-block;padding:0 6px 8px}.vjs-text-track-settings fieldset span>select{max-width:7.3em}.vjs-text-track-settings legend{color:#fff;font-weight:700;font-size:14px}.vjs-text-track-settings .vjs-label{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);margin:0 5px 5px 0;border:0;height:1px;width:1px;overflow:hidden}.vjs-track-settings-controls button:active,.vjs-track-settings-controls button:focus{outline-style:solid;outline-width:medium;background-image:linear-gradient(0deg,#fff 88%,#73859f)}.vjs-track-settings-controls button:hover{color:rgba(43,51,63,.75)}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,#73859f);color:#2b333f;cursor:pointer;border-radius:2px}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}.vjs-title-bar{background:rgba(0,0,0,.9);background:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.7) 60%,transparent);font-size:1.2em;line-height:1.5;transition:opacity .1s;padding:.666em 1.333em 4em;pointer-events:none;position:absolute;top:0;width:100%}.vjs-title-bar-description,.vjs-title-bar-title{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vjs-title-bar-title{font-weight:700;margin-bottom:.333em}.vjs-playing.vjs-user-inactive .vjs-title-bar{opacity:0;transition:opacity 1s}.video-js .vjs-skip-backward-5,.video-js .vjs-skip-backward-10,.video-js .vjs-skip-backward-30,.video-js .vjs-skip-forward-5,.video-js .vjs-skip-forward-10,.video-js .vjs-skip-forward-30{cursor:pointer}@media print{.video-js>:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{position:absolute;top:0;left:0;width:100%;height:100%;border:none;z-index:-1000}.js-focus-visible .video-js :focus:not(.focus-visible),.video-js :focus:not(:focus-visible){outline:0}", ""]);
- // exports
- /***/ }),
- /***/ "qOYl":
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__("vzCy").EventEmitter;
- /***/ }),
- /***/ "r9kI":
- /***/ (function(module, exports) {
- module.exports = function () {
- throw new Error('Readable.from is not available in the browser')
- };
- /***/ }),
- /***/ "rIDh":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // a passthrough stream.
- // basically just the most minimal sort of Transform stream.
- // Every written chunk gets output as-is.
- module.exports = PassThrough;
- var Transform = __webpack_require__("/OYm");
- __webpack_require__("LC74")(PassThrough, Transform);
- function PassThrough(options) {
- if (!(this instanceof PassThrough)) return new PassThrough(options);
- Transform.call(this, options);
- }
- PassThrough.prototype._transform = function (chunk, encoding, cb) {
- cb(null, chunk);
- };
- /***/ }),
- /***/ "rOku":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global, process) {
- // limit of Crypto.getRandomValues()
- // https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
- var MAX_BYTES = 65536
- // Node supports requesting up to this number of bytes
- // https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48
- var MAX_UINT32 = 4294967295
- function oldBrowser () {
- throw new Error('Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11')
- }
- var Buffer = __webpack_require__("X3l8").Buffer
- var crypto = global.crypto || global.msCrypto
- if (crypto && crypto.getRandomValues) {
- module.exports = randomBytes
- } else {
- module.exports = oldBrowser
- }
- function randomBytes (size, cb) {
- // phantomjs needs to throw
- if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')
- var bytes = Buffer.allocUnsafe(size)
- if (size > 0) { // getRandomValues fails on IE if size == 0
- if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues
- // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
- for (var generated = 0; generated < size; generated += MAX_BYTES) {
- // buffer.slice automatically checks if the end is past the end of
- // the buffer so we don't have to here
- crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))
- }
- } else {
- crypto.getRandomValues(bytes)
- }
- }
- if (typeof cb === 'function') {
- return process.nextTick(function () {
- cb(null, bytes)
- })
- }
- return bytes
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("W2nU")))
- /***/ }),
- /***/ "reGU":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const inherits = __webpack_require__("LC74");
- const bignum = __webpack_require__("geuY");
- const DecoderBuffer = __webpack_require__("iTY7").DecoderBuffer;
- const Node = __webpack_require__("vugd");
- // Import DER constants
- const der = __webpack_require__("C1C2");
- function DERDecoder(entity) {
- this.enc = 'der';
- this.name = entity.name;
- this.entity = entity;
- // Construct base tree
- this.tree = new DERNode();
- this.tree._init(entity.body);
- }
- module.exports = DERDecoder;
- DERDecoder.prototype.decode = function decode(data, options) {
- if (!DecoderBuffer.isDecoderBuffer(data)) {
- data = new DecoderBuffer(data, options);
- }
- return this.tree._decode(data, options);
- };
- // Tree methods
- function DERNode(parent) {
- Node.call(this, 'der', parent);
- }
- inherits(DERNode, Node);
- DERNode.prototype._peekTag = function peekTag(buffer, tag, any) {
- if (buffer.isEmpty())
- return false;
- const state = buffer.save();
- const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: "' + tag + '"');
- if (buffer.isError(decodedTag))
- return decodedTag;
- buffer.restore(state);
- return decodedTag.tag === tag || decodedTag.tagStr === tag ||
- (decodedTag.tagStr + 'of') === tag || any;
- };
- DERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {
- const decodedTag = derDecodeTag(buffer,
- 'Failed to decode tag of "' + tag + '"');
- if (buffer.isError(decodedTag))
- return decodedTag;
- let len = derDecodeLen(buffer,
- decodedTag.primitive,
- 'Failed to get length of "' + tag + '"');
- // Failure
- if (buffer.isError(len))
- return len;
- if (!any &&
- decodedTag.tag !== tag &&
- decodedTag.tagStr !== tag &&
- decodedTag.tagStr + 'of' !== tag) {
- return buffer.error('Failed to match tag: "' + tag + '"');
- }
- if (decodedTag.primitive || len !== null)
- return buffer.skip(len, 'Failed to match body of: "' + tag + '"');
- // Indefinite length... find END tag
- const state = buffer.save();
- const res = this._skipUntilEnd(
- buffer,
- 'Failed to skip indefinite length body: "' + this.tag + '"');
- if (buffer.isError(res))
- return res;
- len = buffer.offset - state.offset;
- buffer.restore(state);
- return buffer.skip(len, 'Failed to match body of: "' + tag + '"');
- };
- DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {
- for (;;) {
- const tag = derDecodeTag(buffer, fail);
- if (buffer.isError(tag))
- return tag;
- const len = derDecodeLen(buffer, tag.primitive, fail);
- if (buffer.isError(len))
- return len;
- let res;
- if (tag.primitive || len !== null)
- res = buffer.skip(len);
- else
- res = this._skipUntilEnd(buffer, fail);
- // Failure
- if (buffer.isError(res))
- return res;
- if (tag.tagStr === 'end')
- break;
- }
- };
- DERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,
- options) {
- const result = [];
- while (!buffer.isEmpty()) {
- const possibleEnd = this._peekTag(buffer, 'end');
- if (buffer.isError(possibleEnd))
- return possibleEnd;
- const res = decoder.decode(buffer, 'der', options);
- if (buffer.isError(res) && possibleEnd)
- break;
- result.push(res);
- }
- return result;
- };
- DERNode.prototype._decodeStr = function decodeStr(buffer, tag) {
- if (tag === 'bitstr') {
- const unused = buffer.readUInt8();
- if (buffer.isError(unused))
- return unused;
- return { unused: unused, data: buffer.raw() };
- } else if (tag === 'bmpstr') {
- const raw = buffer.raw();
- if (raw.length % 2 === 1)
- return buffer.error('Decoding of string type: bmpstr length mismatch');
- let str = '';
- for (let i = 0; i < raw.length / 2; i++) {
- str += String.fromCharCode(raw.readUInt16BE(i * 2));
- }
- return str;
- } else if (tag === 'numstr') {
- const numstr = buffer.raw().toString('ascii');
- if (!this._isNumstr(numstr)) {
- return buffer.error('Decoding of string type: ' +
- 'numstr unsupported characters');
- }
- return numstr;
- } else if (tag === 'octstr') {
- return buffer.raw();
- } else if (tag === 'objDesc') {
- return buffer.raw();
- } else if (tag === 'printstr') {
- const printstr = buffer.raw().toString('ascii');
- if (!this._isPrintstr(printstr)) {
- return buffer.error('Decoding of string type: ' +
- 'printstr unsupported characters');
- }
- return printstr;
- } else if (/str$/.test(tag)) {
- return buffer.raw().toString();
- } else {
- return buffer.error('Decoding of string type: ' + tag + ' unsupported');
- }
- };
- DERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {
- let result;
- const identifiers = [];
- let ident = 0;
- let subident = 0;
- while (!buffer.isEmpty()) {
- subident = buffer.readUInt8();
- ident <<= 7;
- ident |= subident & 0x7f;
- if ((subident & 0x80) === 0) {
- identifiers.push(ident);
- ident = 0;
- }
- }
- if (subident & 0x80)
- identifiers.push(ident);
- const first = (identifiers[0] / 40) | 0;
- const second = identifiers[0] % 40;
- if (relative)
- result = identifiers;
- else
- result = [first, second].concat(identifiers.slice(1));
- if (values) {
- let tmp = values[result.join(' ')];
- if (tmp === undefined)
- tmp = values[result.join('.')];
- if (tmp !== undefined)
- result = tmp;
- }
- return result;
- };
- DERNode.prototype._decodeTime = function decodeTime(buffer, tag) {
- const str = buffer.raw().toString();
- let year;
- let mon;
- let day;
- let hour;
- let min;
- let sec;
- if (tag === 'gentime') {
- year = str.slice(0, 4) | 0;
- mon = str.slice(4, 6) | 0;
- day = str.slice(6, 8) | 0;
- hour = str.slice(8, 10) | 0;
- min = str.slice(10, 12) | 0;
- sec = str.slice(12, 14) | 0;
- } else if (tag === 'utctime') {
- year = str.slice(0, 2) | 0;
- mon = str.slice(2, 4) | 0;
- day = str.slice(4, 6) | 0;
- hour = str.slice(6, 8) | 0;
- min = str.slice(8, 10) | 0;
- sec = str.slice(10, 12) | 0;
- if (year < 70)
- year = 2000 + year;
- else
- year = 1900 + year;
- } else {
- return buffer.error('Decoding ' + tag + ' time is not supported yet');
- }
- return Date.UTC(year, mon - 1, day, hour, min, sec, 0);
- };
- DERNode.prototype._decodeNull = function decodeNull() {
- return null;
- };
- DERNode.prototype._decodeBool = function decodeBool(buffer) {
- const res = buffer.readUInt8();
- if (buffer.isError(res))
- return res;
- else
- return res !== 0;
- };
- DERNode.prototype._decodeInt = function decodeInt(buffer, values) {
- // Bigint, return as it is (assume big endian)
- const raw = buffer.raw();
- let res = new bignum(raw);
- if (values)
- res = values[res.toString(10)] || res;
- return res;
- };
- DERNode.prototype._use = function use(entity, obj) {
- if (typeof entity === 'function')
- entity = entity(obj);
- return entity._getDecoder('der').tree;
- };
- // Utility methods
- function derDecodeTag(buf, fail) {
- let tag = buf.readUInt8(fail);
- if (buf.isError(tag))
- return tag;
- const cls = der.tagClass[tag >> 6];
- const primitive = (tag & 0x20) === 0;
- // Multi-octet tag - load
- if ((tag & 0x1f) === 0x1f) {
- let oct = tag;
- tag = 0;
- while ((oct & 0x80) === 0x80) {
- oct = buf.readUInt8(fail);
- if (buf.isError(oct))
- return oct;
- tag <<= 7;
- tag |= oct & 0x7f;
- }
- } else {
- tag &= 0x1f;
- }
- const tagStr = der.tag[tag];
- return {
- cls: cls,
- primitive: primitive,
- tag: tag,
- tagStr: tagStr
- };
- }
- function derDecodeLen(buf, primitive, fail) {
- let len = buf.readUInt8(fail);
- if (buf.isError(len))
- return len;
- // Indefinite form
- if (!primitive && len === 0x80)
- return null;
- // Definite form
- if ((len & 0x80) === 0) {
- // Short form
- return len;
- }
- // Long form
- const num = len & 0x7f;
- if (num > 4)
- return buf.error('length octect is too long');
- len = 0;
- for (let i = 0; i < num; i++) {
- len <<= 8;
- const j = buf.readUInt8(fail);
- if (buf.isError(j))
- return j;
- len |= j;
- }
- return len;
- }
- /***/ }),
- /***/ "rjj0":
- /***/ (function(module, exports, __webpack_require__) {
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- Modified by Evan You @yyx990803
- */
- var hasDocument = typeof document !== 'undefined'
- if (typeof DEBUG !== 'undefined' && DEBUG) {
- if (!hasDocument) {
- throw new Error(
- 'vue-style-loader cannot be used in a non-browser environment. ' +
- "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
- ) }
- }
- var listToStyles = __webpack_require__("tTVk")
- /*
- type StyleObject = {
- id: number;
- parts: Array<StyleObjectPart>
- }
- type StyleObjectPart = {
- css: string;
- media: string;
- sourceMap: ?string
- }
- */
- var stylesInDom = {/*
- [id: number]: {
- id: number,
- refs: number,
- parts: Array<(obj?: StyleObjectPart) => void>
- }
- */}
- var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
- var singletonElement = null
- var singletonCounter = 0
- var isProduction = false
- var noop = function () {}
- var options = null
- var ssrIdKey = 'data-vue-ssr-id'
- // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
- // tags it will allow on a page
- var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())
- module.exports = function (parentId, list, _isProduction, _options) {
- isProduction = _isProduction
- options = _options || {}
- var styles = listToStyles(parentId, list)
- addStylesToDom(styles)
- return function update (newList) {
- var mayRemove = []
- for (var i = 0; i < styles.length; i++) {
- var item = styles[i]
- var domStyle = stylesInDom[item.id]
- domStyle.refs--
- mayRemove.push(domStyle)
- }
- if (newList) {
- styles = listToStyles(parentId, newList)
- addStylesToDom(styles)
- } else {
- styles = []
- }
- for (var i = 0; i < mayRemove.length; i++) {
- var domStyle = mayRemove[i]
- if (domStyle.refs === 0) {
- for (var j = 0; j < domStyle.parts.length; j++) {
- domStyle.parts[j]()
- }
- delete stylesInDom[domStyle.id]
- }
- }
- }
- }
- function addStylesToDom (styles /* Array<StyleObject> */) {
- for (var i = 0; i < styles.length; i++) {
- var item = styles[i]
- var domStyle = stylesInDom[item.id]
- if (domStyle) {
- domStyle.refs++
- for (var j = 0; j < domStyle.parts.length; j++) {
- domStyle.parts[j](item.parts[j])
- }
- for (; j < item.parts.length; j++) {
- domStyle.parts.push(addStyle(item.parts[j]))
- }
- if (domStyle.parts.length > item.parts.length) {
- domStyle.parts.length = item.parts.length
- }
- } else {
- var parts = []
- for (var j = 0; j < item.parts.length; j++) {
- parts.push(addStyle(item.parts[j]))
- }
- stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
- }
- }
- }
- function createStyleElement () {
- var styleElement = document.createElement('style')
- styleElement.type = 'text/css'
- head.appendChild(styleElement)
- return styleElement
- }
- function addStyle (obj /* StyleObjectPart */) {
- var update, remove
- var styleElement = document.querySelector('style[' + ssrIdKey + '~="' + obj.id + '"]')
- if (styleElement) {
- if (isProduction) {
- // has SSR styles and in production mode.
- // simply do nothing.
- return noop
- } else {
- // has SSR styles but in dev mode.
- // for some reason Chrome can't handle source map in server-rendered
- // style tags - source maps in <style> only works if the style tag is
- // created and inserted dynamically. So we remove the server rendered
- // styles and inject new ones.
- styleElement.parentNode.removeChild(styleElement)
- }
- }
- if (isOldIE) {
- // use singleton mode for IE9.
- var styleIndex = singletonCounter++
- styleElement = singletonElement || (singletonElement = createStyleElement())
- update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
- remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
- } else {
- // use multi-style-tag mode in all other cases
- styleElement = createStyleElement()
- update = applyToTag.bind(null, styleElement)
- remove = function () {
- styleElement.parentNode.removeChild(styleElement)
- }
- }
- update(obj)
- return function updateStyle (newObj /* StyleObjectPart */) {
- if (newObj) {
- if (newObj.css === obj.css &&
- newObj.media === obj.media &&
- newObj.sourceMap === obj.sourceMap) {
- return
- }
- update(obj = newObj)
- } else {
- remove()
- }
- }
- }
- var replaceText = (function () {
- var textStore = []
- return function (index, replacement) {
- textStore[index] = replacement
- return textStore.filter(Boolean).join('\n')
- }
- })()
- function applyToSingletonTag (styleElement, index, remove, obj) {
- var css = remove ? '' : obj.css
- if (styleElement.styleSheet) {
- styleElement.styleSheet.cssText = replaceText(index, css)
- } else {
- var cssNode = document.createTextNode(css)
- var childNodes = styleElement.childNodes
- if (childNodes[index]) styleElement.removeChild(childNodes[index])
- if (childNodes.length) {
- styleElement.insertBefore(cssNode, childNodes[index])
- } else {
- styleElement.appendChild(cssNode)
- }
- }
- }
- function applyToTag (styleElement, obj) {
- var css = obj.css
- var media = obj.media
- var sourceMap = obj.sourceMap
- if (media) {
- styleElement.setAttribute('media', media)
- }
- if (options.ssrId) {
- styleElement.setAttribute(ssrIdKey, obj.id)
- }
- if (sourceMap) {
- // https://developer.chrome.com/devtools/docs/javascript-debugging
- // this makes source maps inside style tags work properly in Chrome
- css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
- // http://stackoverflow.com/a/26603875
- css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
- }
- if (styleElement.styleSheet) {
- styleElement.styleSheet.cssText = css
- } else {
- while (styleElement.firstChild) {
- styleElement.removeChild(styleElement.firstChild)
- }
- styleElement.appendChild(document.createTextNode(css))
- }
- }
- /***/ }),
- /***/ "sHTV":
- /***/ (function(module, exports) {
- module.exports = "data:font/woff;base64,d09GRgABAAAAAASwAAsAAAAABwAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY9JUk9Y21hcAAAAYAAAABLAAABcOfXt7dnbHlmAAABzAAAAPkAAAEIO5HVdGhlYWQAAALIAAAALwAAADYXkug7aGhlYQAAAvgAAAAeAAAAJAj1BLpobXR4AAADGAAAAAgAAAAICTcAAGxvY2EAAAMgAAAABgAAAAYAhAAAbWF4cAAAAygAAAAgAAAAIAERAGBuYW1lAAADSAAAAUUAAAJtPlT+fXBvc3QAAASQAAAAIAAAADHm7Ml9eJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BkmcM4gYGVgYOpk+kMAwNDP4RmfM1gxMjBwMDEwMrMgBUEpLmmMDg8W/9sPXPD/waGGOYGhgagMCNIDgArIA3deJxjYGBgZWBgYAZiHSBmYWBgDGFgZAABP6AoI1icmYELLM7CoARWwwISf7b+/38YCeSzgEkGRjaGUcADJmWgPHBYQTADIwDU5wwlAHicHYtBSsNAGIX/N9NYnMVIOtOGplSIgWRXRxFdFJqI0BxAsBKhWSQ7F4J7V84FXHStK5c9gRfwCp7BE6itTtx873+P7yeP6PfJC/gdBXRIUyrokghxmsTRwR5iia6/jyCa4cyfgOsdNyepP8MUxxmiYOBy0Pec5iwnOWeC1B2uSrT/ulVOT5LO68uVkNtdKa6fTcZYZjraZEDGQ/X9qYfAUK+lWOBjIeRahZv35pFzW9e2ZbFkbFn8Ew8XUinZgotSiBL50ebW5EBu2Mqc/3zpMNRspUeiLMVI3zDb1JYxWzd2e49qXlRAVcwrvKE3VmrcI6I/6dgx8wAAAHicY2BkYGAA4pl/1zyO57f5ysDNwgACN9cFySPo/xNZxZnzgVwOBiaQKABRNwruAHicY2BkYGBu+N/AEMNqzgAErOIMjAyogAkATkoCuwAABAAAAAU3AAAAAAAAAIQAAAABAAAAAgBUAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAeJxlj01OwzAQhV/6B6QSqqhgh+QFYgEo/RGrblhUavdddN+mTpsqiSPHrdQDcB6OwAk4AtyAO/BIJ5s2lsffvHljTwDc4Acejt8t95E9XDI7cg0XuBeuU38QbpBfhJto41W4Rf1N2MczpsJtdGF5g9e4YvaEd2EPHXwI13CNT+E69S/hBvlbuIk7/Aq30PHqwj7mXle4jUcv9sdWL5xeqeVBxaHJIpM5v4KZXu+Sha3S6pxrW8QmU4OgX0lTnWlb3VPs10PnIhVZk6oJqzpJjMqt2erQBRvn8lGvF4kehCblWGP+tsYCjnEFhSUOjDFCGGSIyujoO1Vm9K+xQ8Jee1Y9zed0WxTU/3OFAQL0z1xTurLSeTpPgT1fG1J1dCtuy56UNJFezUkSskJe1rZUQuoBNmVXjhF6XNGJPyhnSP8ACVpuyAAAAHicY2BigAAuBuyAiZGJkZmBvSAzuaS0KJWBAQAUyAMZ"
- /***/ }),
- /***/ "sOR5":
- /***/ (function(module, exports) {
- var toString = {}.toString;
- module.exports = Array.isArray || function (arr) {
- return toString.call(arr) == '[object Array]';
- };
- /***/ }),
- /***/ "sUp0":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("FZ+f")(undefined);
- // imports
- exports.i(__webpack_require__("bMvd"), "");
- // module
- exports.push([module.i, ".easy-player[data-v-7512d01a]{position:relative;width:100%;height:100%;background-color:#000}.easy-video-player-inner[data-v-7512d01a]{-ms-flex:1;flex:1;width:100%;height:100%}.wrapper[data-v-7512d01a]{height:100%}.block[data-v-7512d01a],.wrapper[data-v-7512d01a]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.block[data-v-7512d01a]{width:120px;height:120px;background-color:#fff;-ms-flex-direction:column;flex-direction:column}.easy-player-right-menu[data-v-7512d01a]{width:200px;border:none;font-size:12px;background:rgba(28,28,28,.9);transition:opacity .1s cubic-bezier(0,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.easy-player-right-menu .menu-item[data-v-7512d01a]{height:38px;line-height:38px;font-weight:700;border-bottom:1px solid hsla(0,0%,100%,.12);display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.easy-player-right-menu .menu-item a[data-v-7512d01a]{color:#eee;text-decoration:none}.message-view[data-v-7512d01a]{position:absolute;top:10px;left:10px;z-index:9999;background:rgba(33,33,33,.9);border-radius:4px;color:#fff;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;font-size:14px}.message-view .title[data-v-7512d01a]{line-height:30px;border-bottom:1px solid hsla(0,0%,100%,.12);width:240px;text-align:center}.message-view .content[data-v-7512d01a]{height:200px;width:240px;overflow:hidden;font-size:12px;padding:5px;background:rgba(33,33,33,.9);position:absolute}.message-view .content .message[data-v-7512d01a]{position:absolute;left:5px}.copy-right[data-v-7512d01a]{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.easy-player-loading-text[data-v-7512d01a]{text-align:left;position:absolute;left:12px;bottom:36px;color:hsla(0,0%,100%,.6);font-size:12px;pointer-events:none;opacity:1;transition:opacity 1s cubic-bezier(0,0,.2,1);max-height:200px;overflow:hidden}.video-title[data-v-7512d01a]{position:absolute;top:5px;right:5px;color:#fff;background-color:hsla(0,0%,50%,.5);border-radius:2px;padding:2px 5px;max-width:120px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.vjs-menu-button-popup .vjs-menu[data-v-7512d01a]{width:4em}.vjs-resolution-button .vjs-resolution-button-staticlabel[data-v-7512d01a]:before{font-family:iconfont!important;font-size:1.8em;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.vjs-resolution-button .vjs-resolution-button-label[data-v-7512d01a]{font-size:1em;line-height:3em;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;box-sizing:inherit;font-family:Arial,Helvetica,sans-serif}.vjs-resolution-button ul.vjs-menu-content[data-v-7512d01a]{width:4em!important}.vjs-resolution-button .vjs-menu[data-v-7512d01a]{left:0}.vjs-resolution-button .vjs-menu li[data-v-7512d01a]{text-transform:none;font-size:1em;font-family:Arial,Helvetica,sans-serif}.easy-player-poster[data-v-7512d01a]{position:absolute;left:0;top:0;right:0;bottom:0;z-index:888;opacity:0;background-size:100% 100%}", ""]);
- // exports
- /***/ }),
- /***/ "tRuz":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var curve = exports;
- curve.base = __webpack_require__("B6Bn");
- curve.short = __webpack_require__("wrMp");
- curve.mont = __webpack_require__("pS+P");
- curve.edwards = __webpack_require__("24Y6");
- /***/ }),
- /***/ "tTVk":
- /***/ (function(module, exports) {
- /**
- * Translates the list format produced by css-loader into something
- * easier to manipulate.
- */
- module.exports = function listToStyles (parentId, list) {
- var styles = []
- var newStyles = {}
- for (var i = 0; i < list.length; i++) {
- var item = list[i]
- var id = item[0]
- var css = item[1]
- var media = item[2]
- var sourceMap = item[3]
- var part = {
- id: parentId + ':' + i,
- css: css,
- media: media,
- sourceMap: sourceMap
- }
- if (!newStyles[id]) {
- styles.push(newStyles[id] = { id: id, parts: [part] })
- } else {
- newStyles[id].parts.push(part)
- }
- }
- return styles
- }
- /***/ }),
- /***/ "tXf9":
- /***/ (function(module, exports, __webpack_require__) {
- var ciphers = __webpack_require__("bSQl")
- var deciphers = __webpack_require__("+jDU")
- var modes = __webpack_require__("6ZSt")
- function getCiphers () {
- return Object.keys(modes)
- }
- exports.createCipher = exports.Cipher = ciphers.createCipher
- exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv
- exports.createDecipher = exports.Decipher = deciphers.createDecipher
- exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv
- exports.listCiphers = exports.getCiphers = getCiphers
- /***/ }),
- /***/ "tpuU":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = exports;
- function toArray(msg, enc) {
- if (Array.isArray(msg))
- return msg.slice();
- if (!msg)
- return [];
- var res = [];
- if (typeof msg !== 'string') {
- for (var i = 0; i < msg.length; i++)
- res[i] = msg[i] | 0;
- return res;
- }
- if (enc === 'hex') {
- msg = msg.replace(/[^a-z0-9]+/ig, '');
- if (msg.length % 2 !== 0)
- msg = '0' + msg;
- for (var i = 0; i < msg.length; i += 2)
- res.push(parseInt(msg[i] + msg[i + 1], 16));
- } else {
- for (var i = 0; i < msg.length; i++) {
- var c = msg.charCodeAt(i);
- var hi = c >> 8;
- var lo = c & 0xff;
- if (hi)
- res.push(hi, lo);
- else
- res.push(lo);
- }
- }
- return res;
- }
- utils.toArray = toArray;
- function zero2(word) {
- if (word.length === 1)
- return '0' + word;
- else
- return word;
- }
- utils.zero2 = zero2;
- function toHex(msg) {
- var res = '';
- for (var i = 0; i < msg.length; i++)
- res += zero2(msg[i].toString(16));
- return res;
- }
- utils.toHex = toHex;
- utils.encode = function encode(arr, enc) {
- if (enc === 'hex')
- return toHex(arr);
- else
- return arr;
- };
- /***/ }),
- /***/ "txgm":
- /***/ (function(module, exports, __webpack_require__) {
- var r;
- module.exports = function rand(len) {
- if (!r)
- r = new Rand(null);
- return r.generate(len);
- };
- function Rand(rand) {
- this.rand = rand;
- }
- module.exports.Rand = Rand;
- Rand.prototype.generate = function generate(len) {
- return this._rand(len);
- };
- // Emulate crypto API using randy
- Rand.prototype._rand = function _rand(n) {
- if (this.rand.getBytes)
- return this.rand.getBytes(n);
- var res = new Uint8Array(n);
- for (var i = 0; i < res.length; i++)
- res[i] = this.rand.getByte();
- return res;
- };
- if (typeof self === 'object') {
- if (self.crypto && self.crypto.getRandomValues) {
- // Modern browsers
- Rand.prototype._rand = function _rand(n) {
- var arr = new Uint8Array(n);
- self.crypto.getRandomValues(arr);
- return arr;
- };
- } else if (self.msCrypto && self.msCrypto.getRandomValues) {
- // IE
- Rand.prototype._rand = function _rand(n) {
- var arr = new Uint8Array(n);
- self.msCrypto.getRandomValues(arr);
- return arr;
- };
- // Safari's WebWorkers do not have `crypto`
- } else if (typeof window === 'object') {
- // Old junk
- Rand.prototype._rand = function() {
- throw new Error('Not implemented yet');
- };
- }
- } else {
- // Node.js or Web worker with no crypto support
- try {
- var crypto = __webpack_require__(6);
- if (typeof crypto.randomBytes !== 'function')
- throw new Error('Not supported');
- Rand.prototype._rand = function _rand(n) {
- return crypto.randomBytes(n);
- };
- } catch (e) {
- }
- }
- /***/ }),
- /***/ "uDof":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // A bit simpler than readable streams.
- // Implement an async ._write(chunk, encoding, cb), and it'll handle all
- // the drain event emission and buffering.
- module.exports = Writable;
- /* <replacement> */
- function WriteReq(chunk, encoding, cb) {
- this.chunk = chunk;
- this.encoding = encoding;
- this.callback = cb;
- this.next = null;
- }
- // It seems a linked list but it is not
- // there will be only 2 of these for each stream
- function CorkedRequest(state) {
- var _this = this;
- this.next = null;
- this.entry = null;
- this.finish = function () {
- onCorkedFinish(_this, state);
- };
- }
- /* </replacement> */
- /*<replacement>*/
- var Duplex;
- /*</replacement>*/
- Writable.WritableState = WritableState;
- /*<replacement>*/
- var internalUtil = {
- deprecate: __webpack_require__("iP15")
- };
- /*</replacement>*/
- /*<replacement>*/
- var Stream = __webpack_require__("qOYl");
- /*</replacement>*/
- var Buffer = __webpack_require__("EuP9").Buffer;
- var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};
- function _uint8ArrayToBuffer(chunk) {
- return Buffer.from(chunk);
- }
- function _isUint8Array(obj) {
- return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
- }
- var destroyImpl = __webpack_require__("0IYo");
- var _require = __webpack_require__("iqpV"),
- getHighWaterMark = _require.getHighWaterMark;
- var _require$codes = __webpack_require__("3U89").codes,
- ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,
- ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,
- ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,
- ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,
- ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,
- ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,
- ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,
- ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;
- var errorOrDestroy = destroyImpl.errorOrDestroy;
- __webpack_require__("LC74")(Writable, Stream);
- function nop() {}
- function WritableState(options, stream, isDuplex) {
- Duplex = Duplex || __webpack_require__("PhfM");
- options = options || {};
- // Duplex streams are both readable and writable, but share
- // the same options object.
- // However, some cases require setting options to different
- // values for the readable and the writable sides of the duplex stream,
- // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.
- if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;
- // object stream flag to indicate whether or not this stream
- // contains buffers or objects.
- this.objectMode = !!options.objectMode;
- if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
- // the point at which write() starts returning false
- // Note: 0 is a valid value, means that we always return false if
- // the entire buffer is not flushed immediately on write()
- this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);
- // if _final has been called
- this.finalCalled = false;
- // drain event flag.
- this.needDrain = false;
- // at the start of calling end()
- this.ending = false;
- // when end() has been called, and returned
- this.ended = false;
- // when 'finish' is emitted
- this.finished = false;
- // has it been destroyed
- this.destroyed = false;
- // should we decode strings into buffers before passing to _write?
- // this is here so that some node-core streams can optimize string
- // handling at a lower level.
- var noDecode = options.decodeStrings === false;
- this.decodeStrings = !noDecode;
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
- // not an actual buffer we keep track of, but a measurement
- // of how much we're waiting to get pushed to some underlying
- // socket or file.
- this.length = 0;
- // a flag to see when we're in the middle of a write.
- this.writing = false;
- // when true all writes will be buffered until .uncork() call
- this.corked = 0;
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
- // a flag to know if we're processing previously buffered items, which
- // may call the _write() callback in the same tick, so that we don't
- // end up in an overlapped onwrite situation.
- this.bufferProcessing = false;
- // the callback that's passed to _write(chunk,cb)
- this.onwrite = function (er) {
- onwrite(stream, er);
- };
- // the callback that the user supplies to write(chunk,encoding,cb)
- this.writecb = null;
- // the amount that is being written when _write is called.
- this.writelen = 0;
- this.bufferedRequest = null;
- this.lastBufferedRequest = null;
- // number of pending user-supplied write callbacks
- // this must be 0 before 'finish' can be emitted
- this.pendingcb = 0;
- // emit prefinish if the only thing we're waiting for is _write cbs
- // This is relevant for synchronous Transform streams
- this.prefinished = false;
- // True if the error was already emitted and should not be thrown again
- this.errorEmitted = false;
- // Should close be emitted on destroy. Defaults to true.
- this.emitClose = options.emitClose !== false;
- // Should .destroy() be called after 'finish' (and potentially 'end')
- this.autoDestroy = !!options.autoDestroy;
- // count buffered requests
- this.bufferedRequestCount = 0;
- // allocate the first CorkedRequest, there is always
- // one allocated and free to use, and we maintain at most two
- this.corkedRequestsFree = new CorkedRequest(this);
- }
- WritableState.prototype.getBuffer = function getBuffer() {
- var current = this.bufferedRequest;
- var out = [];
- while (current) {
- out.push(current);
- current = current.next;
- }
- return out;
- };
- (function () {
- try {
- Object.defineProperty(WritableState.prototype, 'buffer', {
- get: internalUtil.deprecate(function writableStateBufferGetter() {
- return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
- });
- } catch (_) {}
- })();
- // Test _writableState for inheritance to account for Duplex streams,
- // whose prototype chain only points to Readable.
- var realHasInstance;
- if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
- realHasInstance = Function.prototype[Symbol.hasInstance];
- Object.defineProperty(Writable, Symbol.hasInstance, {
- value: function value(object) {
- if (realHasInstance.call(this, object)) return true;
- if (this !== Writable) return false;
- return object && object._writableState instanceof WritableState;
- }
- });
- } else {
- realHasInstance = function realHasInstance(object) {
- return object instanceof this;
- };
- }
- function Writable(options) {
- Duplex = Duplex || __webpack_require__("PhfM");
- // Writable ctor is applied to Duplexes, too.
- // `realHasInstance` is necessary because using plain `instanceof`
- // would return false, as no `_writableState` property is attached.
- // Trying to use the custom `instanceof` for Writable here will also break the
- // Node.js LazyTransform implementation, which has a non-trivial getter for
- // `_writableState` that would lead to infinite recursion.
- // Checking for a Stream.Duplex instance is faster here instead of inside
- // the WritableState constructor, at least with V8 6.5
- var isDuplex = this instanceof Duplex;
- if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);
- this._writableState = new WritableState(options, this, isDuplex);
- // legacy.
- this.writable = true;
- if (options) {
- if (typeof options.write === 'function') this._write = options.write;
- if (typeof options.writev === 'function') this._writev = options.writev;
- if (typeof options.destroy === 'function') this._destroy = options.destroy;
- if (typeof options.final === 'function') this._final = options.final;
- }
- Stream.call(this);
- }
- // Otherwise people can pipe Writable streams, which is just wrong.
- Writable.prototype.pipe = function () {
- errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());
- };
- function writeAfterEnd(stream, cb) {
- var er = new ERR_STREAM_WRITE_AFTER_END();
- // TODO: defer error events consistently everywhere, not just the cb
- errorOrDestroy(stream, er);
- process.nextTick(cb, er);
- }
- // Checks that a user-supplied chunk is valid, especially for the particular
- // mode the stream is in. Currently this means that `null` is never accepted
- // and undefined/non-string values are only allowed in object mode.
- function validChunk(stream, state, chunk, cb) {
- var er;
- if (chunk === null) {
- er = new ERR_STREAM_NULL_VALUES();
- } else if (typeof chunk !== 'string' && !state.objectMode) {
- er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);
- }
- if (er) {
- errorOrDestroy(stream, er);
- process.nextTick(cb, er);
- return false;
- }
- return true;
- }
- Writable.prototype.write = function (chunk, encoding, cb) {
- var state = this._writableState;
- var ret = false;
- var isBuf = !state.objectMode && _isUint8Array(chunk);
- if (isBuf && !Buffer.isBuffer(chunk)) {
- chunk = _uint8ArrayToBuffer(chunk);
- }
- if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
- if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
- if (typeof cb !== 'function') cb = nop;
- if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
- state.pendingcb++;
- ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
- }
- return ret;
- };
- Writable.prototype.cork = function () {
- this._writableState.corked++;
- };
- Writable.prototype.uncork = function () {
- var state = this._writableState;
- if (state.corked) {
- state.corked--;
- if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
- }
- };
- Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
- // node::ParseEncoding() requires lower case.
- if (typeof encoding === 'string') encoding = encoding.toLowerCase();
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);
- this._writableState.defaultEncoding = encoding;
- return this;
- };
- Object.defineProperty(Writable.prototype, 'writableBuffer', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState && this._writableState.getBuffer();
- }
- });
- function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
- chunk = Buffer.from(chunk, encoding);
- }
- return chunk;
- }
- Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState.highWaterMark;
- }
- });
- // if we're already writing something, then just put this
- // in the queue, and wait our turn. Otherwise, call _write
- // If we return false, then we need a drain event, so set that flag.
- function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
- if (!isBuf) {
- var newChunk = decodeChunk(state, chunk, encoding);
- if (chunk !== newChunk) {
- isBuf = true;
- encoding = 'buffer';
- chunk = newChunk;
- }
- }
- var len = state.objectMode ? 1 : chunk.length;
- state.length += len;
- var ret = state.length < state.highWaterMark;
- // we must ensure that previous needDrain will not be reset to false.
- if (!ret) state.needDrain = true;
- if (state.writing || state.corked) {
- var last = state.lastBufferedRequest;
- state.lastBufferedRequest = {
- chunk: chunk,
- encoding: encoding,
- isBuf: isBuf,
- callback: cb,
- next: null
- };
- if (last) {
- last.next = state.lastBufferedRequest;
- } else {
- state.bufferedRequest = state.lastBufferedRequest;
- }
- state.bufferedRequestCount += 1;
- } else {
- doWrite(stream, state, false, len, chunk, encoding, cb);
- }
- return ret;
- }
- function doWrite(stream, state, writev, len, chunk, encoding, cb) {
- state.writelen = len;
- state.writecb = cb;
- state.writing = true;
- state.sync = true;
- if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
- state.sync = false;
- }
- function onwriteError(stream, state, sync, er, cb) {
- --state.pendingcb;
- if (sync) {
- // defer the callback if we are being called synchronously
- // to avoid piling up things on the stack
- process.nextTick(cb, er);
- // this can emit finish, and it will always happen
- // after error
- process.nextTick(finishMaybe, stream, state);
- stream._writableState.errorEmitted = true;
- errorOrDestroy(stream, er);
- } else {
- // the caller expect this to happen before if
- // it is async
- cb(er);
- stream._writableState.errorEmitted = true;
- errorOrDestroy(stream, er);
- // this can emit finish, but finish must
- // always follow error
- finishMaybe(stream, state);
- }
- }
- function onwriteStateUpdate(state) {
- state.writing = false;
- state.writecb = null;
- state.length -= state.writelen;
- state.writelen = 0;
- }
- function onwrite(stream, er) {
- var state = stream._writableState;
- var sync = state.sync;
- var cb = state.writecb;
- if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();
- onwriteStateUpdate(state);
- if (er) onwriteError(stream, state, sync, er, cb);else {
- // Check if we're actually ready to finish, but don't emit yet
- var finished = needFinish(state) || stream.destroyed;
- if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
- clearBuffer(stream, state);
- }
- if (sync) {
- process.nextTick(afterWrite, stream, state, finished, cb);
- } else {
- afterWrite(stream, state, finished, cb);
- }
- }
- }
- function afterWrite(stream, state, finished, cb) {
- if (!finished) onwriteDrain(stream, state);
- state.pendingcb--;
- cb();
- finishMaybe(stream, state);
- }
- // Must force callback to be called on nextTick, so that we don't
- // emit 'drain' before the write() consumer gets the 'false' return
- // value, and has a chance to attach a 'drain' listener.
- function onwriteDrain(stream, state) {
- if (state.length === 0 && state.needDrain) {
- state.needDrain = false;
- stream.emit('drain');
- }
- }
- // if there's something in the buffer waiting, then process it
- function clearBuffer(stream, state) {
- state.bufferProcessing = true;
- var entry = state.bufferedRequest;
- if (stream._writev && entry && entry.next) {
- // Fast case, write everything using _writev()
- var l = state.bufferedRequestCount;
- var buffer = new Array(l);
- var holder = state.corkedRequestsFree;
- holder.entry = entry;
- var count = 0;
- var allBuffers = true;
- while (entry) {
- buffer[count] = entry;
- if (!entry.isBuf) allBuffers = false;
- entry = entry.next;
- count += 1;
- }
- buffer.allBuffers = allBuffers;
- doWrite(stream, state, true, state.length, buffer, '', holder.finish);
- // doWrite is almost always async, defer these to save a bit of time
- // as the hot path ends with doWrite
- state.pendingcb++;
- state.lastBufferedRequest = null;
- if (holder.next) {
- state.corkedRequestsFree = holder.next;
- holder.next = null;
- } else {
- state.corkedRequestsFree = new CorkedRequest(state);
- }
- state.bufferedRequestCount = 0;
- } else {
- // Slow case, write chunks one-by-one
- while (entry) {
- var chunk = entry.chunk;
- var encoding = entry.encoding;
- var cb = entry.callback;
- var len = state.objectMode ? 1 : chunk.length;
- doWrite(stream, state, false, len, chunk, encoding, cb);
- entry = entry.next;
- state.bufferedRequestCount--;
- // if we didn't call the onwrite immediately, then
- // it means that we need to wait until it does.
- // also, that means that the chunk and cb are currently
- // being processed, so move the buffer counter past them.
- if (state.writing) {
- break;
- }
- }
- if (entry === null) state.lastBufferedRequest = null;
- }
- state.bufferedRequest = entry;
- state.bufferProcessing = false;
- }
- Writable.prototype._write = function (chunk, encoding, cb) {
- cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));
- };
- Writable.prototype._writev = null;
- Writable.prototype.end = function (chunk, encoding, cb) {
- var state = this._writableState;
- if (typeof chunk === 'function') {
- cb = chunk;
- chunk = null;
- encoding = null;
- } else if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
- if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
- // .end() fully uncorks
- if (state.corked) {
- state.corked = 1;
- this.uncork();
- }
- // ignore unnecessary end() calls.
- if (!state.ending) endWritable(this, state, cb);
- return this;
- };
- Object.defineProperty(Writable.prototype, 'writableLength', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- return this._writableState.length;
- }
- });
- function needFinish(state) {
- return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
- }
- function callFinal(stream, state) {
- stream._final(function (err) {
- state.pendingcb--;
- if (err) {
- errorOrDestroy(stream, err);
- }
- state.prefinished = true;
- stream.emit('prefinish');
- finishMaybe(stream, state);
- });
- }
- function prefinish(stream, state) {
- if (!state.prefinished && !state.finalCalled) {
- if (typeof stream._final === 'function' && !state.destroyed) {
- state.pendingcb++;
- state.finalCalled = true;
- process.nextTick(callFinal, stream, state);
- } else {
- state.prefinished = true;
- stream.emit('prefinish');
- }
- }
- }
- function finishMaybe(stream, state) {
- var need = needFinish(state);
- if (need) {
- prefinish(stream, state);
- if (state.pendingcb === 0) {
- state.finished = true;
- stream.emit('finish');
- if (state.autoDestroy) {
- // In case of duplex streams we need a way to detect
- // if the readable side is ready for autoDestroy as well
- var rState = stream._readableState;
- if (!rState || rState.autoDestroy && rState.endEmitted) {
- stream.destroy();
- }
- }
- }
- }
- return need;
- }
- function endWritable(stream, state, cb) {
- state.ending = true;
- finishMaybe(stream, state);
- if (cb) {
- if (state.finished) process.nextTick(cb);else stream.once('finish', cb);
- }
- state.ended = true;
- stream.writable = false;
- }
- function onCorkedFinish(corkReq, state, err) {
- var entry = corkReq.entry;
- corkReq.entry = null;
- while (entry) {
- var cb = entry.callback;
- state.pendingcb--;
- cb(err);
- entry = entry.next;
- }
- // reuse the free corkReq.
- state.corkedRequestsFree.next = corkReq;
- }
- Object.defineProperty(Writable.prototype, 'destroyed', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function get() {
- if (this._writableState === undefined) {
- return false;
- }
- return this._writableState.destroyed;
- },
- set: function set(value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (!this._writableState) {
- return;
- }
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._writableState.destroyed = value;
- }
- });
- Writable.prototype.destroy = destroyImpl.destroy;
- Writable.prototype._undestroy = destroyImpl.undestroy;
- Writable.prototype._destroy = function (err, cb) {
- cb(err);
- };
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("DuR2"), __webpack_require__("W2nU")))
- /***/ }),
- /***/ "ujcs":
- /***/ (function(module, exports) {
- /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
- exports.read = function (buffer, offset, isLE, mLen, nBytes) {
- var e, m
- var eLen = (nBytes * 8) - mLen - 1
- var eMax = (1 << eLen) - 1
- var eBias = eMax >> 1
- var nBits = -7
- var i = isLE ? (nBytes - 1) : 0
- var d = isLE ? -1 : 1
- var s = buffer[offset + i]
- i += d
- e = s & ((1 << (-nBits)) - 1)
- s >>= (-nBits)
- nBits += eLen
- for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}
- m = e & ((1 << (-nBits)) - 1)
- e >>= (-nBits)
- nBits += mLen
- for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}
- if (e === 0) {
- e = 1 - eBias
- } else if (e === eMax) {
- return m ? NaN : ((s ? -1 : 1) * Infinity)
- } else {
- m = m + Math.pow(2, mLen)
- e = e - eBias
- }
- return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
- }
- exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
- var e, m, c
- var eLen = (nBytes * 8) - mLen - 1
- var eMax = (1 << eLen) - 1
- var eBias = eMax >> 1
- var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
- var i = isLE ? 0 : (nBytes - 1)
- var d = isLE ? 1 : -1
- var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
- value = Math.abs(value)
- if (isNaN(value) || value === Infinity) {
- m = isNaN(value) ? 1 : 0
- e = eMax
- } else {
- e = Math.floor(Math.log(value) / Math.LN2)
- if (value * (c = Math.pow(2, -e)) < 1) {
- e--
- c *= 2
- }
- if (e + eBias >= 1) {
- value += rt / c
- } else {
- value += rt * Math.pow(2, 1 - eBias)
- }
- if (value * c >= 2) {
- e++
- c /= 2
- }
- if (e + eBias >= eMax) {
- m = 0
- e = eMax
- } else if (e + eBias >= 1) {
- m = ((value * c) - 1) * Math.pow(2, mLen)
- e = e + eBias
- } else {
- m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
- e = 0
- }
- }
- for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
- e = (e << mLen) | m
- eLen += mLen
- for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
- buffer[offset + i - d] |= s * 128
- }
- /***/ }),
- /***/ "vWx2":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const inherits = __webpack_require__("LC74");
- const Buffer = __webpack_require__("Hwfm").Buffer;
- const DERDecoder = __webpack_require__("reGU");
- function PEMDecoder(entity) {
- DERDecoder.call(this, entity);
- this.enc = 'pem';
- }
- inherits(PEMDecoder, DERDecoder);
- module.exports = PEMDecoder;
- PEMDecoder.prototype.decode = function decode(data, options) {
- const lines = data.toString().split(/[\r\n]+/g);
- const label = options.label.toUpperCase();
- const re = /^-----(BEGIN|END) ([^-]+)-----$/;
- let start = -1;
- let end = -1;
- for (let i = 0; i < lines.length; i++) {
- const match = lines[i].match(re);
- if (match === null)
- continue;
- if (match[2] !== label)
- continue;
- if (start === -1) {
- if (match[1] !== 'BEGIN')
- break;
- start = i;
- } else {
- if (match[1] !== 'END')
- break;
- end = i;
- break;
- }
- }
- if (start === -1 || end === -1)
- throw new Error('PEM section not found for: ' + label);
- const base64 = lines.slice(start + 1, end).join('');
- // Remove excessive symbols
- base64.replace(/[^a-z0-9+/=]+/gi, '');
- const input = Buffer.from(base64, 'base64');
- return DERDecoder.prototype.decode.call(this, input, options);
- };
- /***/ }),
- /***/ "vugd":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- const Reporter = __webpack_require__("16On").Reporter;
- const EncoderBuffer = __webpack_require__("iTY7").EncoderBuffer;
- const DecoderBuffer = __webpack_require__("iTY7").DecoderBuffer;
- const assert = __webpack_require__("08Lv");
- // Supported tags
- const tags = [
- 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',
- 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',
- 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',
- 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'
- ];
- // Public methods list
- const methods = [
- 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',
- 'any', 'contains'
- ].concat(tags);
- // Overrided methods list
- const overrided = [
- '_peekTag', '_decodeTag', '_use',
- '_decodeStr', '_decodeObjid', '_decodeTime',
- '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',
- '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',
- '_encodeNull', '_encodeInt', '_encodeBool'
- ];
- function Node(enc, parent, name) {
- const state = {};
- this._baseState = state;
- state.name = name;
- state.enc = enc;
- state.parent = parent || null;
- state.children = null;
- // State
- state.tag = null;
- state.args = null;
- state.reverseArgs = null;
- state.choice = null;
- state.optional = false;
- state.any = false;
- state.obj = false;
- state.use = null;
- state.useDecoder = null;
- state.key = null;
- state['default'] = null;
- state.explicit = null;
- state.implicit = null;
- state.contains = null;
- // Should create new instance on each method
- if (!state.parent) {
- state.children = [];
- this._wrap();
- }
- }
- module.exports = Node;
- const stateProps = [
- 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',
- 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',
- 'implicit', 'contains'
- ];
- Node.prototype.clone = function clone() {
- const state = this._baseState;
- const cstate = {};
- stateProps.forEach(function(prop) {
- cstate[prop] = state[prop];
- });
- const res = new this.constructor(cstate.parent);
- res._baseState = cstate;
- return res;
- };
- Node.prototype._wrap = function wrap() {
- const state = this._baseState;
- methods.forEach(function(method) {
- this[method] = function _wrappedMethod() {
- const clone = new this.constructor(this);
- state.children.push(clone);
- return clone[method].apply(clone, arguments);
- };
- }, this);
- };
- Node.prototype._init = function init(body) {
- const state = this._baseState;
- assert(state.parent === null);
- body.call(this);
- // Filter children
- state.children = state.children.filter(function(child) {
- return child._baseState.parent === this;
- }, this);
- assert.equal(state.children.length, 1, 'Root node can have only one child');
- };
- Node.prototype._useArgs = function useArgs(args) {
- const state = this._baseState;
- // Filter children and args
- const children = args.filter(function(arg) {
- return arg instanceof this.constructor;
- }, this);
- args = args.filter(function(arg) {
- return !(arg instanceof this.constructor);
- }, this);
- if (children.length !== 0) {
- assert(state.children === null);
- state.children = children;
- // Replace parent to maintain backward link
- children.forEach(function(child) {
- child._baseState.parent = this;
- }, this);
- }
- if (args.length !== 0) {
- assert(state.args === null);
- state.args = args;
- state.reverseArgs = args.map(function(arg) {
- if (typeof arg !== 'object' || arg.constructor !== Object)
- return arg;
- const res = {};
- Object.keys(arg).forEach(function(key) {
- if (key == (key | 0))
- key |= 0;
- const value = arg[key];
- res[value] = key;
- });
- return res;
- });
- }
- };
- //
- // Overrided methods
- //
- overrided.forEach(function(method) {
- Node.prototype[method] = function _overrided() {
- const state = this._baseState;
- throw new Error(method + ' not implemented for encoding: ' + state.enc);
- };
- });
- //
- // Public methods
- //
- tags.forEach(function(tag) {
- Node.prototype[tag] = function _tagMethod() {
- const state = this._baseState;
- const args = Array.prototype.slice.call(arguments);
- assert(state.tag === null);
- state.tag = tag;
- this._useArgs(args);
- return this;
- };
- });
- Node.prototype.use = function use(item) {
- assert(item);
- const state = this._baseState;
- assert(state.use === null);
- state.use = item;
- return this;
- };
- Node.prototype.optional = function optional() {
- const state = this._baseState;
- state.optional = true;
- return this;
- };
- Node.prototype.def = function def(val) {
- const state = this._baseState;
- assert(state['default'] === null);
- state['default'] = val;
- state.optional = true;
- return this;
- };
- Node.prototype.explicit = function explicit(num) {
- const state = this._baseState;
- assert(state.explicit === null && state.implicit === null);
- state.explicit = num;
- return this;
- };
- Node.prototype.implicit = function implicit(num) {
- const state = this._baseState;
- assert(state.explicit === null && state.implicit === null);
- state.implicit = num;
- return this;
- };
- Node.prototype.obj = function obj() {
- const state = this._baseState;
- const args = Array.prototype.slice.call(arguments);
- state.obj = true;
- if (args.length !== 0)
- this._useArgs(args);
- return this;
- };
- Node.prototype.key = function key(newKey) {
- const state = this._baseState;
- assert(state.key === null);
- state.key = newKey;
- return this;
- };
- Node.prototype.any = function any() {
- const state = this._baseState;
- state.any = true;
- return this;
- };
- Node.prototype.choice = function choice(obj) {
- const state = this._baseState;
- assert(state.choice === null);
- state.choice = obj;
- this._useArgs(Object.keys(obj).map(function(key) {
- return obj[key];
- }));
- return this;
- };
- Node.prototype.contains = function contains(item) {
- const state = this._baseState;
- assert(state.use === null);
- state.contains = item;
- return this;
- };
- //
- // Decoding
- //
- Node.prototype._decode = function decode(input, options) {
- const state = this._baseState;
- // Decode root node
- if (state.parent === null)
- return input.wrapResult(state.children[0]._decode(input, options));
- let result = state['default'];
- let present = true;
- let prevKey = null;
- if (state.key !== null)
- prevKey = input.enterKey(state.key);
- // Check if tag is there
- if (state.optional) {
- let tag = null;
- if (state.explicit !== null)
- tag = state.explicit;
- else if (state.implicit !== null)
- tag = state.implicit;
- else if (state.tag !== null)
- tag = state.tag;
- if (tag === null && !state.any) {
- // Trial and Error
- const save = input.save();
- try {
- if (state.choice === null)
- this._decodeGeneric(state.tag, input, options);
- else
- this._decodeChoice(input, options);
- present = true;
- } catch (e) {
- present = false;
- }
- input.restore(save);
- } else {
- present = this._peekTag(input, tag, state.any);
- if (input.isError(present))
- return present;
- }
- }
- // Push object on stack
- let prevObj;
- if (state.obj && present)
- prevObj = input.enterObject();
- if (present) {
- // Unwrap explicit values
- if (state.explicit !== null) {
- const explicit = this._decodeTag(input, state.explicit);
- if (input.isError(explicit))
- return explicit;
- input = explicit;
- }
- const start = input.offset;
- // Unwrap implicit and normal values
- if (state.use === null && state.choice === null) {
- let save;
- if (state.any)
- save = input.save();
- const body = this._decodeTag(
- input,
- state.implicit !== null ? state.implicit : state.tag,
- state.any
- );
- if (input.isError(body))
- return body;
- if (state.any)
- result = input.raw(save);
- else
- input = body;
- }
- if (options && options.track && state.tag !== null)
- options.track(input.path(), start, input.length, 'tagged');
- if (options && options.track && state.tag !== null)
- options.track(input.path(), input.offset, input.length, 'content');
- // Select proper method for tag
- if (state.any) {
- // no-op
- } else if (state.choice === null) {
- result = this._decodeGeneric(state.tag, input, options);
- } else {
- result = this._decodeChoice(input, options);
- }
- if (input.isError(result))
- return result;
- // Decode children
- if (!state.any && state.choice === null && state.children !== null) {
- state.children.forEach(function decodeChildren(child) {
- // NOTE: We are ignoring errors here, to let parser continue with other
- // parts of encoded data
- child._decode(input, options);
- });
- }
- // Decode contained/encoded by schema, only in bit or octet strings
- if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {
- const data = new DecoderBuffer(result);
- result = this._getUse(state.contains, input._reporterState.obj)
- ._decode(data, options);
- }
- }
- // Pop object
- if (state.obj && present)
- result = input.leaveObject(prevObj);
- // Set key
- if (state.key !== null && (result !== null || present === true))
- input.leaveKey(prevKey, state.key, result);
- else if (prevKey !== null)
- input.exitKey(prevKey);
- return result;
- };
- Node.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {
- const state = this._baseState;
- if (tag === 'seq' || tag === 'set')
- return null;
- if (tag === 'seqof' || tag === 'setof')
- return this._decodeList(input, tag, state.args[0], options);
- else if (/str$/.test(tag))
- return this._decodeStr(input, tag, options);
- else if (tag === 'objid' && state.args)
- return this._decodeObjid(input, state.args[0], state.args[1], options);
- else if (tag === 'objid')
- return this._decodeObjid(input, null, null, options);
- else if (tag === 'gentime' || tag === 'utctime')
- return this._decodeTime(input, tag, options);
- else if (tag === 'null_')
- return this._decodeNull(input, options);
- else if (tag === 'bool')
- return this._decodeBool(input, options);
- else if (tag === 'objDesc')
- return this._decodeStr(input, tag, options);
- else if (tag === 'int' || tag === 'enum')
- return this._decodeInt(input, state.args && state.args[0], options);
- if (state.use !== null) {
- return this._getUse(state.use, input._reporterState.obj)
- ._decode(input, options);
- } else {
- return input.error('unknown tag: ' + tag);
- }
- };
- Node.prototype._getUse = function _getUse(entity, obj) {
- const state = this._baseState;
- // Create altered use decoder if implicit is set
- state.useDecoder = this._use(entity, obj);
- assert(state.useDecoder._baseState.parent === null);
- state.useDecoder = state.useDecoder._baseState.children[0];
- if (state.implicit !== state.useDecoder._baseState.implicit) {
- state.useDecoder = state.useDecoder.clone();
- state.useDecoder._baseState.implicit = state.implicit;
- }
- return state.useDecoder;
- };
- Node.prototype._decodeChoice = function decodeChoice(input, options) {
- const state = this._baseState;
- let result = null;
- let match = false;
- Object.keys(state.choice).some(function(key) {
- const save = input.save();
- const node = state.choice[key];
- try {
- const value = node._decode(input, options);
- if (input.isError(value))
- return false;
- result = { type: key, value: value };
- match = true;
- } catch (e) {
- input.restore(save);
- return false;
- }
- return true;
- }, this);
- if (!match)
- return input.error('Choice not matched');
- return result;
- };
- //
- // Encoding
- //
- Node.prototype._createEncoderBuffer = function createEncoderBuffer(data) {
- return new EncoderBuffer(data, this.reporter);
- };
- Node.prototype._encode = function encode(data, reporter, parent) {
- const state = this._baseState;
- if (state['default'] !== null && state['default'] === data)
- return;
- const result = this._encodeValue(data, reporter, parent);
- if (result === undefined)
- return;
- if (this._skipDefault(result, reporter, parent))
- return;
- return result;
- };
- Node.prototype._encodeValue = function encode(data, reporter, parent) {
- const state = this._baseState;
- // Decode root node
- if (state.parent === null)
- return state.children[0]._encode(data, reporter || new Reporter());
- let result = null;
- // Set reporter to share it with a child class
- this.reporter = reporter;
- // Check if data is there
- if (state.optional && data === undefined) {
- if (state['default'] !== null)
- data = state['default'];
- else
- return;
- }
- // Encode children first
- let content = null;
- let primitive = false;
- if (state.any) {
- // Anything that was given is translated to buffer
- result = this._createEncoderBuffer(data);
- } else if (state.choice) {
- result = this._encodeChoice(data, reporter);
- } else if (state.contains) {
- content = this._getUse(state.contains, parent)._encode(data, reporter);
- primitive = true;
- } else if (state.children) {
- content = state.children.map(function(child) {
- if (child._baseState.tag === 'null_')
- return child._encode(null, reporter, data);
- if (child._baseState.key === null)
- return reporter.error('Child should have a key');
- const prevKey = reporter.enterKey(child._baseState.key);
- if (typeof data !== 'object')
- return reporter.error('Child expected, but input is not object');
- const res = child._encode(data[child._baseState.key], reporter, data);
- reporter.leaveKey(prevKey);
- return res;
- }, this).filter(function(child) {
- return child;
- });
- content = this._createEncoderBuffer(content);
- } else {
- if (state.tag === 'seqof' || state.tag === 'setof') {
- // TODO(indutny): this should be thrown on DSL level
- if (!(state.args && state.args.length === 1))
- return reporter.error('Too many args for : ' + state.tag);
- if (!Array.isArray(data))
- return reporter.error('seqof/setof, but data is not Array');
- const child = this.clone();
- child._baseState.implicit = null;
- content = this._createEncoderBuffer(data.map(function(item) {
- const state = this._baseState;
- return this._getUse(state.args[0], data)._encode(item, reporter);
- }, child));
- } else if (state.use !== null) {
- result = this._getUse(state.use, parent)._encode(data, reporter);
- } else {
- content = this._encodePrimitive(state.tag, data);
- primitive = true;
- }
- }
- // Encode data itself
- if (!state.any && state.choice === null) {
- const tag = state.implicit !== null ? state.implicit : state.tag;
- const cls = state.implicit === null ? 'universal' : 'context';
- if (tag === null) {
- if (state.use === null)
- reporter.error('Tag could be omitted only for .use()');
- } else {
- if (state.use === null)
- result = this._encodeComposite(tag, primitive, cls, content);
- }
- }
- // Wrap in explicit
- if (state.explicit !== null)
- result = this._encodeComposite(state.explicit, false, 'context', result);
- return result;
- };
- Node.prototype._encodeChoice = function encodeChoice(data, reporter) {
- const state = this._baseState;
- const node = state.choice[data.type];
- if (!node) {
- assert(
- false,
- data.type + ' not found in ' +
- JSON.stringify(Object.keys(state.choice)));
- }
- return node._encode(data.value, reporter);
- };
- Node.prototype._encodePrimitive = function encodePrimitive(tag, data) {
- const state = this._baseState;
- if (/str$/.test(tag))
- return this._encodeStr(data, tag);
- else if (tag === 'objid' && state.args)
- return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);
- else if (tag === 'objid')
- return this._encodeObjid(data, null, null);
- else if (tag === 'gentime' || tag === 'utctime')
- return this._encodeTime(data, tag);
- else if (tag === 'null_')
- return this._encodeNull();
- else if (tag === 'int' || tag === 'enum')
- return this._encodeInt(data, state.args && state.reverseArgs[0]);
- else if (tag === 'bool')
- return this._encodeBool(data);
- else if (tag === 'objDesc')
- return this._encodeStr(data, tag);
- else
- throw new Error('Unsupported tag: ' + tag);
- };
- Node.prototype._isNumstr = function isNumstr(str) {
- return /^[0-9 ]*$/.test(str);
- };
- Node.prototype._isPrintstr = function isPrintstr(str) {
- return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);
- };
- /***/ }),
- /***/ "vzCy":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- var R = typeof Reflect === 'object' ? Reflect : null
- var ReflectApply = R && typeof R.apply === 'function'
- ? R.apply
- : function ReflectApply(target, receiver, args) {
- return Function.prototype.apply.call(target, receiver, args);
- }
- var ReflectOwnKeys
- if (R && typeof R.ownKeys === 'function') {
- ReflectOwnKeys = R.ownKeys
- } else if (Object.getOwnPropertySymbols) {
- ReflectOwnKeys = function ReflectOwnKeys(target) {
- return Object.getOwnPropertyNames(target)
- .concat(Object.getOwnPropertySymbols(target));
- };
- } else {
- ReflectOwnKeys = function ReflectOwnKeys(target) {
- return Object.getOwnPropertyNames(target);
- };
- }
- function ProcessEmitWarning(warning) {
- if (console && console.warn) console.warn(warning);
- }
- var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
- return value !== value;
- }
- function EventEmitter() {
- EventEmitter.init.call(this);
- }
- module.exports = EventEmitter;
- module.exports.once = once;
- // Backwards-compat with node 0.10.x
- EventEmitter.EventEmitter = EventEmitter;
- EventEmitter.prototype._events = undefined;
- EventEmitter.prototype._eventsCount = 0;
- EventEmitter.prototype._maxListeners = undefined;
- // By default EventEmitters will print a warning if more than 10 listeners are
- // added to it. This is a useful default which helps finding memory leaks.
- var defaultMaxListeners = 10;
- function checkListener(listener) {
- if (typeof listener !== 'function') {
- throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
- }
- }
- Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
- enumerable: true,
- get: function() {
- return defaultMaxListeners;
- },
- set: function(arg) {
- if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
- throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
- }
- defaultMaxListeners = arg;
- }
- });
- EventEmitter.init = function() {
- if (this._events === undefined ||
- this._events === Object.getPrototypeOf(this)._events) {
- this._events = Object.create(null);
- this._eventsCount = 0;
- }
- this._maxListeners = this._maxListeners || undefined;
- };
- // Obviously not all Emitters should be limited to 10. This function allows
- // that to be increased. Set to zero for unlimited.
- EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
- if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
- throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
- }
- this._maxListeners = n;
- return this;
- };
- function _getMaxListeners(that) {
- if (that._maxListeners === undefined)
- return EventEmitter.defaultMaxListeners;
- return that._maxListeners;
- }
- EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
- return _getMaxListeners(this);
- };
- EventEmitter.prototype.emit = function emit(type) {
- var args = [];
- for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);
- var doError = (type === 'error');
- var events = this._events;
- if (events !== undefined)
- doError = (doError && events.error === undefined);
- else if (!doError)
- return false;
- // If there is no 'error' event listener then throw.
- if (doError) {
- var er;
- if (args.length > 0)
- er = args[0];
- if (er instanceof Error) {
- // Note: The comments on the `throw` lines are intentional, they show
- // up in Node's output if this results in an unhandled exception.
- throw er; // Unhandled 'error' event
- }
- // At least give some kind of context to the user
- var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
- err.context = er;
- throw err; // Unhandled 'error' event
- }
- var handler = events[type];
- if (handler === undefined)
- return false;
- if (typeof handler === 'function') {
- ReflectApply(handler, this, args);
- } else {
- var len = handler.length;
- var listeners = arrayClone(handler, len);
- for (var i = 0; i < len; ++i)
- ReflectApply(listeners[i], this, args);
- }
- return true;
- };
- function _addListener(target, type, listener, prepend) {
- var m;
- var events;
- var existing;
- checkListener(listener);
- events = target._events;
- if (events === undefined) {
- events = target._events = Object.create(null);
- target._eventsCount = 0;
- } else {
- // To avoid recursion in the case that type === "newListener"! Before
- // adding it to the listeners, first emit "newListener".
- if (events.newListener !== undefined) {
- target.emit('newListener', type,
- listener.listener ? listener.listener : listener);
- // Re-assign `events` because a newListener handler could have caused the
- // this._events to be assigned to a new object
- events = target._events;
- }
- existing = events[type];
- }
- if (existing === undefined) {
- // Optimize the case of one listener. Don't need the extra array object.
- existing = events[type] = listener;
- ++target._eventsCount;
- } else {
- if (typeof existing === 'function') {
- // Adding the second element, need to change to array.
- existing = events[type] =
- prepend ? [listener, existing] : [existing, listener];
- // If we've already got an array, just append.
- } else if (prepend) {
- existing.unshift(listener);
- } else {
- existing.push(listener);
- }
- // Check for listener leak
- m = _getMaxListeners(target);
- if (m > 0 && existing.length > m && !existing.warned) {
- existing.warned = true;
- // No error code for this since it is a Warning
- // eslint-disable-next-line no-restricted-syntax
- var w = new Error('Possible EventEmitter memory leak detected. ' +
- existing.length + ' ' + String(type) + ' listeners ' +
- 'added. Use emitter.setMaxListeners() to ' +
- 'increase limit');
- w.name = 'MaxListenersExceededWarning';
- w.emitter = target;
- w.type = type;
- w.count = existing.length;
- ProcessEmitWarning(w);
- }
- }
- return target;
- }
- EventEmitter.prototype.addListener = function addListener(type, listener) {
- return _addListener(this, type, listener, false);
- };
- EventEmitter.prototype.on = EventEmitter.prototype.addListener;
- EventEmitter.prototype.prependListener =
- function prependListener(type, listener) {
- return _addListener(this, type, listener, true);
- };
- function onceWrapper() {
- if (!this.fired) {
- this.target.removeListener(this.type, this.wrapFn);
- this.fired = true;
- if (arguments.length === 0)
- return this.listener.call(this.target);
- return this.listener.apply(this.target, arguments);
- }
- }
- function _onceWrap(target, type, listener) {
- var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };
- var wrapped = onceWrapper.bind(state);
- wrapped.listener = listener;
- state.wrapFn = wrapped;
- return wrapped;
- }
- EventEmitter.prototype.once = function once(type, listener) {
- checkListener(listener);
- this.on(type, _onceWrap(this, type, listener));
- return this;
- };
- EventEmitter.prototype.prependOnceListener =
- function prependOnceListener(type, listener) {
- checkListener(listener);
- this.prependListener(type, _onceWrap(this, type, listener));
- return this;
- };
- // Emits a 'removeListener' event if and only if the listener was removed.
- EventEmitter.prototype.removeListener =
- function removeListener(type, listener) {
- var list, events, position, i, originalListener;
- checkListener(listener);
- events = this._events;
- if (events === undefined)
- return this;
- list = events[type];
- if (list === undefined)
- return this;
- if (list === listener || list.listener === listener) {
- if (--this._eventsCount === 0)
- this._events = Object.create(null);
- else {
- delete events[type];
- if (events.removeListener)
- this.emit('removeListener', type, list.listener || listener);
- }
- } else if (typeof list !== 'function') {
- position = -1;
- for (i = list.length - 1; i >= 0; i--) {
- if (list[i] === listener || list[i].listener === listener) {
- originalListener = list[i].listener;
- position = i;
- break;
- }
- }
- if (position < 0)
- return this;
- if (position === 0)
- list.shift();
- else {
- spliceOne(list, position);
- }
- if (list.length === 1)
- events[type] = list[0];
- if (events.removeListener !== undefined)
- this.emit('removeListener', type, originalListener || listener);
- }
- return this;
- };
- EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
- EventEmitter.prototype.removeAllListeners =
- function removeAllListeners(type) {
- var listeners, events, i;
- events = this._events;
- if (events === undefined)
- return this;
- // not listening for removeListener, no need to emit
- if (events.removeListener === undefined) {
- if (arguments.length === 0) {
- this._events = Object.create(null);
- this._eventsCount = 0;
- } else if (events[type] !== undefined) {
- if (--this._eventsCount === 0)
- this._events = Object.create(null);
- else
- delete events[type];
- }
- return this;
- }
- // emit removeListener for all listeners on all events
- if (arguments.length === 0) {
- var keys = Object.keys(events);
- var key;
- for (i = 0; i < keys.length; ++i) {
- key = keys[i];
- if (key === 'removeListener') continue;
- this.removeAllListeners(key);
- }
- this.removeAllListeners('removeListener');
- this._events = Object.create(null);
- this._eventsCount = 0;
- return this;
- }
- listeners = events[type];
- if (typeof listeners === 'function') {
- this.removeListener(type, listeners);
- } else if (listeners !== undefined) {
- // LIFO order
- for (i = listeners.length - 1; i >= 0; i--) {
- this.removeListener(type, listeners[i]);
- }
- }
- return this;
- };
- function _listeners(target, type, unwrap) {
- var events = target._events;
- if (events === undefined)
- return [];
- var evlistener = events[type];
- if (evlistener === undefined)
- return [];
- if (typeof evlistener === 'function')
- return unwrap ? [evlistener.listener || evlistener] : [evlistener];
- return unwrap ?
- unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
- }
- EventEmitter.prototype.listeners = function listeners(type) {
- return _listeners(this, type, true);
- };
- EventEmitter.prototype.rawListeners = function rawListeners(type) {
- return _listeners(this, type, false);
- };
- EventEmitter.listenerCount = function(emitter, type) {
- if (typeof emitter.listenerCount === 'function') {
- return emitter.listenerCount(type);
- } else {
- return listenerCount.call(emitter, type);
- }
- };
- EventEmitter.prototype.listenerCount = listenerCount;
- function listenerCount(type) {
- var events = this._events;
- if (events !== undefined) {
- var evlistener = events[type];
- if (typeof evlistener === 'function') {
- return 1;
- } else if (evlistener !== undefined) {
- return evlistener.length;
- }
- }
- return 0;
- }
- EventEmitter.prototype.eventNames = function eventNames() {
- return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
- };
- function arrayClone(arr, n) {
- var copy = new Array(n);
- for (var i = 0; i < n; ++i)
- copy[i] = arr[i];
- return copy;
- }
- function spliceOne(list, index) {
- for (; index + 1 < list.length; index++)
- list[index] = list[index + 1];
- list.pop();
- }
- function unwrapListeners(arr) {
- var ret = new Array(arr.length);
- for (var i = 0; i < ret.length; ++i) {
- ret[i] = arr[i].listener || arr[i];
- }
- return ret;
- }
- function once(emitter, name) {
- return new Promise(function (resolve, reject) {
- function errorListener(err) {
- emitter.removeListener(name, resolver);
- reject(err);
- }
- function resolver() {
- if (typeof emitter.removeListener === 'function') {
- emitter.removeListener('error', errorListener);
- }
- resolve([].slice.call(arguments));
- };
- eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });
- if (name !== 'error') {
- addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });
- }
- });
- }
- function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
- if (typeof emitter.on === 'function') {
- eventTargetAgnosticAddListener(emitter, 'error', handler, flags);
- }
- }
- function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
- if (typeof emitter.on === 'function') {
- if (flags.once) {
- emitter.once(name, listener);
- } else {
- emitter.on(name, listener);
- }
- } else if (typeof emitter.addEventListener === 'function') {
- // EventTarget does not have `error` event semantics like Node
- // EventEmitters, we do not listen for `error` events here.
- emitter.addEventListener(name, function wrapListener(arg) {
- // IE does not have builtin `{ once: true }` support so we
- // have to do it manually.
- if (flags.once) {
- emitter.removeEventListener(name, wrapListener);
- }
- listener(arg);
- });
- } else {
- throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);
- }
- }
- /***/ }),
- /***/ "w2Cf":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- // Copyright Joyent, Inc. and other Node contributors.
- //
- // Permission is hereby granted, free of charge, to any person obtaining a
- // copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to permit
- // persons to whom the Software is furnished to do so, subject to the
- // following conditions:
- //
- // The above copyright notice and this permission notice shall be included
- // in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
- // a passthrough stream.
- // basically just the most minimal sort of Transform stream.
- // Every written chunk gets output as-is.
- module.exports = PassThrough;
- var Transform = __webpack_require__("Q51I");
- __webpack_require__("LC74")(PassThrough, Transform);
- function PassThrough(options) {
- if (!(this instanceof PassThrough)) return new PassThrough(options);
- Transform.call(this, options);
- }
- PassThrough.prototype._transform = function (chunk, encoding, cb) {
- cb(null, chunk);
- };
- /***/ }),
- /***/ "w3EX":
- /***/ (function(module, exports) {
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
- var EPlayer = { Player: null, VideoElement: null, BitBuffer: null, Source: {}, Demuxer: {}, Decoder: {}, Renderer: {}, AudioOutput: {}, Now: function Now() {
- return window.performance ? window.performance.now() / 1e3 : Date.now() / 1e3;
- }, CreateVideoElements: function CreateVideoElements() {
- for (var t = document.querySelectorAll(".eplayer"), e = 0; e < t.length; e++) {
- new EPlayer.VideoElement(t[e]);
- }
- }, Fill: function Fill(t, e) {
- if (t.fill) t.fill(e);else for (var i = 0; i < t.length; i++) {
- t[i] = e;
- }
- } };"complete" === document.readyState ? EPlayer.CreateVideoElements() : document.addEventListener("DOMContentLoaded", EPlayer.CreateVideoElements), EPlayer.VideoElement = function () {
- "use strict";
- var t = function t(e) {
- var i = e.dataset.url;if (!i) throw "VideoElement has no `data-url` attribute";var s = function s(t, e) {
- for (var i in e) {
- t.style[i] = e[i];
- }
- };this.container = e, s(this.container, { display: "inline-block", position: "relative", minWidth: "80px", minHeight: "80px" }), this.canvas = document.createElement("canvas"), this.canvas.width = 960, this.canvas.height = 540, s(this.canvas, { display: "block", width: "100%" }), this.container.appendChild(this.canvas), this.playButton = document.createElement("div"), this.playButton.innerHTML = t.PLAY_BUTTON, s(this.playButton, { zIndex: 2, position: "absolute", top: "0", bottom: "0", left: "0", right: "0", maxWidth: "75px", maxHeight: "75px", margin: "auto", opacity: "0.7", cursor: "pointer" }), this.container.appendChild(this.playButton);var r = { canvas: this.canvas };for (var o in e.dataset) {
- try {
- r[o] = JSON.parse(e.dataset[o]);
- } catch (t) {
- r[o] = e.dataset[o];
- }
- }if (this.player = new EPlayer.Player(i, r), e.playerInstance = this.player, !r.poster || r.autoplay || this.player.options.streaming || (r.decodeFirstFrame = !1, this.poster = new Image(), this.poster.src = r.poster, this.poster.addEventListener("load", this.posterLoaded), s(this.poster, { display: "block", zIndex: 1, position: "absolute", top: 0, left: 0, bottom: 0, right: 0 }), this.container.appendChild(this.poster)), this.player.options.streaming || this.container.addEventListener("click", this.onClick.bind(this)), (r.autoplay || this.player.options.streaming) && (this.playButton.style.display = "none"), this.player.audioOut && !this.player.audioOut.unlocked) {
- var n = this.container;(r.autoplay || this.player.options.streaming) && (this.unmuteButton = document.createElement("div"), this.unmuteButton.innerHTML = t.UNMUTE_BUTTON, s(this.unmuteButton, { zIndex: 2, position: "absolute", bottom: "10px", right: "20px", width: "75px", height: "75px", margin: "auto", opacity: "0.7", cursor: "pointer" }), this.container.appendChild(this.unmuteButton), n = this.unmuteButton), this.unlockAudioBound = this.onUnlockAudio.bind(this, n), n.addEventListener("touchstart", this.unlockAudioBound, !1), n.addEventListener("click", this.unlockAudioBound, !0);
- }
- };return t.prototype.onUnlockAudio = function (t, e) {
- this.unmuteButton && (e.preventDefault(), e.stopPropagation()), this.player.audioOut.unlock(function () {
- this.unmuteButton && (this.unmuteButton.style.display = "none"), t.removeEventListener("touchstart", this.unlockAudioBound), t.removeEventListener("click", this.unlockAudioBound);
- }.bind(this));
- }, t.prototype.onClick = function (t) {
- this.player.isPlaying ? (this.player.pause(), this.playButton.style.display = "block") : (this.player.play(), this.playButton.style.display = "none", this.poster && (this.poster.style.display = "none"));
- }, t.PLAY_BUTTON = '<svg style="max-width: 75px; max-height: 75px;" viewBox="0 0 200 200" alt="Play video"><circle cx="100" cy="100" r="90" fill="none" stroke-width="15" stroke="#fff"/><polygon points="70, 55 70, 145 145, 100" fill="#fff"/></svg>', t.UNMUTE_BUTTON = '<svg style="max-width: 75px; max-height: 75px;" viewBox="0 0 75 75"><polygon class="audio-speaker" stroke="none" fill="#fff" points="39,13 22,28 6,28 6,47 21,47 39,62 39,13"/><g stroke="#fff" stroke-width="5"><path d="M 49,50 69,26"/><path d="M 69,50 49,26"/></g></svg>', t;
- }(), EPlayer.Player = function () {
- "use strict";
- var t = function t(_t, e) {
- this.options = e || {}, e.source ? (this.source = new e.source(_t, e), e.streaming = !!this.source.streaming) : _t.match(/^wss?:\/\//) ? (this.source = new EPlayer.Source.WebSocket(_t, e), e.streaming = !0) : !1 !== e.progressive ? (this.source = new EPlayer.Source.AjaxProgressive(_t, e), e.streaming = !1) : (this.source = new EPlayer.Source.Ajax(_t, e), e.streaming = !1), this.maxAudioLag = e.maxAudioLag || .25, this.loop = !1 !== e.loop, this.autoplay = !!e.autoplay || e.streaming, this.demuxer = new EPlayer.Demuxer.TS(e), this.source.connect(this.demuxer), !1 !== e.video && (this.video = new EPlayer.Decoder.MPEG1Video(e), this.renderer = !e.disableGl && EPlayer.Renderer.WebGL.IsSupported() ? new EPlayer.Renderer.WebGL(e) : new EPlayer.Renderer.Canvas2D(e), this.demuxer.connect(EPlayer.Demuxer.TS.STREAM.VIDEO_1, this.video), this.video.connect(this.renderer)), !1 !== e.audio && EPlayer.AudioOutput.WebAudio.IsSupported() && (this.audio = new EPlayer.Decoder.MP2Audio(e), this.audioOut = new EPlayer.AudioOutput.WebAudio(e), this.demuxer.connect(EPlayer.Demuxer.TS.STREAM.AUDIO_1, this.audio), this.audio.connect(this.audioOut)), Object.defineProperty(this, "currentTime", { get: this.getCurrentTime, set: this.setCurrentTime }), Object.defineProperty(this, "volume", { get: this.getVolume, set: this.setVolume }), this.unpauseOnShow = !1, !1 !== e.pauseWhenHidden && document.addEventListener("visibilitychange", this.showHide.bind(this)), this.source.start(), this.autoplay && this.play();
- };return t.prototype.showHide = function (t) {
- "hidden" === document.visibilityState ? (this.unpauseOnShow = this.wantsToPlay, this.pause()) : this.unpauseOnShow && this.play();
- }, t.prototype.play = function (t) {
- this.animationId = requestAnimationFrame(this.update.bind(this)), this.wantsToPlay = !0;
- }, t.prototype.pause = function (t) {
- cancelAnimationFrame(this.animationId), this.wantsToPlay = !1, this.isPlaying = !1, this.audio && this.audio.canPlay && (this.audioOut.stop(), this.seek(this.currentTime));
- }, t.prototype.getVolume = function () {
- return this.audioOut ? this.audioOut.volume : 0;
- }, t.prototype.setVolume = function (t) {
- this.audioOut && (this.audioOut.volume = t);
- }, t.prototype.stop = function (t) {
- this.pause(), this.seek(0), this.video && !1 !== this.options.decodeFirstFrame && this.video.decode();
- }, t.prototype.destroy = function () {
- this.pause(), this.source.destroy(), this.renderer.destroy(), this.audioOut.destroy();
- }, t.prototype.seek = function (t) {
- var e = this.audio && this.audio.canPlay ? this.audio.startTime : this.video.startTime;this.video && this.video.seek(t + e), this.audio && this.audio.seek(t + e), this.startTime = EPlayer.Now() - t;
- }, t.prototype.getCurrentTime = function () {
- return this.audio && this.audio.canPlay ? this.audio.currentTime - this.audio.startTime : this.video.currentTime - this.video.startTime;
- }, t.prototype.setCurrentTime = function (t) {
- this.seek(t);
- }, t.prototype.update = function () {
- if (this.animationId = requestAnimationFrame(this.update.bind(this)), !this.source.established) return void (this.renderer && this.renderer.renderProgress(this.source.progress));this.isPlaying || (this.isPlaying = !0, this.startTime = EPlayer.Now() - this.currentTime), this.options.streaming ? this.updateForStreaming() : this.updateForStaticFile();
- }, t.prototype.updateForStreaming = function () {
- if (this.video && this.video.decode(), this.audio) {
- var t = !1;do {
- this.audioOut.enqueuedTime > this.maxAudioLag && (this.audioOut.resetEnqueuedTime(), this.audioOut.enabled = !1), t = this.audio.decode();
- } while (t);this.audioOut.enabled = !0;
- }
- }, t.prototype.updateForStaticFile = function () {
- var t = !1,
- e = 0;if (this.audio && this.audio.canPlay) {
- for (; !t && this.audio.decodedTime - this.audio.currentTime < .25;) {
- t = !this.audio.decode();
- }this.video && this.video.currentTime < this.audio.currentTime && (t = !this.video.decode()), e = this.demuxer.currentTime - this.audio.currentTime;
- } else if (this.video) {
- var i = EPlayer.Now() - this.startTime + this.video.startTime,
- s = i - this.video.currentTime,
- r = 1 / this.video.frameRate;this.video && s > 0 && (s > 2 * r && (this.startTime += s), t = !this.video.decode()), e = this.demuxer.currentTime - i;
- }this.source.resume(e), t && this.source.completed && (this.loop ? this.seek(0) : this.pause());
- }, t;
- }(), EPlayer.BitBuffer = function () {
- "use strict";
- var t = function t(e, i) {
- "object" == (typeof e === "undefined" ? "undefined" : _typeof(e)) ? (this.bytes = e instanceof Uint8Array ? e : new Uint8Array(e), this.byteLength = this.bytes.length) : (this.bytes = new Uint8Array(e || 1048576), this.byteLength = 0), this.mode = i || t.MODE.EXPAND, this.index = 0;
- };return t.prototype.resize = function (t) {
- var e = new Uint8Array(t);0 !== this.byteLength && (this.byteLength = Math.min(this.byteLength, t), e.set(this.bytes, 0, this.byteLength)), this.bytes = e, this.index = Math.min(this.index, this.byteLength << 3);
- }, t.prototype.evict = function (t) {
- var e = this.index >> 3,
- i = this.bytes.length - this.byteLength;if (this.index === this.byteLength << 3 || t > i + e) return this.byteLength = 0, void (this.index = 0);0 !== e && (this.bytes.copyWithin ? this.bytes.copyWithin(0, e, this.byteLength) : this.bytes.set(this.bytes.subarray(e, this.byteLength)), this.byteLength = this.byteLength - e, this.index -= e << 3);
- }, t.prototype.write = function (e) {
- var i = "object" == _typeof(e[0]),
- s = 0,
- r = this.bytes.length - this.byteLength;if (i) for (var s = 0, o = 0; o < e.length; o++) {
- s += e[o].byteLength;
- } else s = e.byteLength;if (s > r) if (this.mode === t.MODE.EXPAND) {
- var n = Math.max(2 * this.bytes.length, s - r);this.resize(n);
- } else this.evict(s);if (i) for (var o = 0; o < e.length; o++) {
- this.appendSingleBuffer(e[o]);
- } else this.appendSingleBuffer(e);
- }, t.prototype.appendSingleBuffer = function (t) {
- t = t instanceof Uint8Array ? t : new Uint8Array(t), this.bytes.set(t, this.byteLength), this.byteLength += t.length;
- }, t.prototype.findNextStartCode = function () {
- for (var t = this.index + 7 >> 3; t < this.byteLength; t++) {
- if (0 == this.bytes[t] && 0 == this.bytes[t + 1] && 1 == this.bytes[t + 2]) return this.index = t + 4 << 3, this.bytes[t + 3];
- }return this.index = this.byteLength << 3, -1;
- }, t.prototype.findStartCode = function (t) {
- for (var e = 0;;) {
- if ((e = this.findNextStartCode()) === t || -1 === e) return e;
- }return -1;
- }, t.prototype.nextBytesAreStartCode = function () {
- var t = this.index + 7 >> 3;return t >= this.byteLength || 0 == this.bytes[t] && 0 == this.bytes[t + 1] && 1 == this.bytes[t + 2];
- }, t.prototype.peek = function (t) {
- for (var e = this.index, i = 0; t;) {
- var s = this.bytes[e >> 3],
- r = 8 - (7 & e),
- o = r < t ? r : t,
- n = r - o;i = i << o | (s & 255 >> 8 - o << n) >> n, e += o, t -= o;
- }return i;
- }, t.prototype.read = function (t) {
- var e = this.peek(t);return this.index += t, e;
- }, t.prototype.skip = function (t) {
- return this.index += t;
- }, t.prototype.rewind = function (t) {
- this.index = Math.max(this.index - t, 0);
- }, t.prototype.has = function (t) {
- return (this.byteLength << 3) - this.index >= t;
- }, t.MODE = { EVICT: 1, EXPAND: 2 }, t;
- }(), EPlayer.Source.Ajax = function () {
- "use strict";
- var t = function t(_t2, e) {
- this.url = _t2, this.destination = null, this.request = null, this.completed = !1, this.established = !1, this.progress = 0;
- };return t.prototype.connect = function (t) {
- this.destination = t;
- }, t.prototype.start = function () {
- this.request = new XMLHttpRequest(), this.request.onreadystatechange = function () {
- this.request.readyState === this.request.DONE && 200 === this.request.status && this.onLoad(this.request.response);
- }.bind(this), this.request.onprogress = this.onProgress.bind(this), this.request.open("GET", this.url), this.request.responseType = "arraybuffer", this.request.send();
- }, t.prototype.resume = function (t) {}, t.prototype.destroy = function () {
- this.request.abort();
- }, t.prototype.onProgress = function (t) {
- this.progress = t.loaded / t.total;
- }, t.prototype.onLoad = function (t) {
- this.established = !0, this.completed = !0, this.progress = 1, this.destination && this.destination.write(t);
- }, t;
- }(), EPlayer.Source.AjaxProgressive = function () {
- "use strict";
- var t = function t(_t3, e) {
- this.url = _t3, this.destination = null, this.request = null, this.completed = !1, this.established = !1, this.progress = 0, this.fileSize = 0, this.loadedSize = 0, this.chunkSize = e.chunkSize || 1048576, this.isLoading = !1, this.loadStartTime = 0, this.throttled = !1 !== e.throttled, this.aborted = !1;
- };return t.prototype.connect = function (t) {
- this.destination = t;
- }, t.prototype.start = function () {
- this.request = new XMLHttpRequest(), this.request.onreadystatechange = function () {
- this.request.readyState === this.request.DONE && (this.fileSize = parseInt(this.request.getResponseHeader("Content-Length")), this.loadNextChunk());
- }.bind(this), this.request.onprogress = this.onProgress.bind(this), this.request.open("HEAD", this.url), this.request.send();
- }, t.prototype.resume = function (t) {
- if (!this.isLoading && this.throttled) {
- 8 * this.loadTime + 2 > t && this.loadNextChunk();
- }
- }, t.prototype.destroy = function () {
- this.request.abort(), this.aborted = !0;
- }, t.prototype.loadNextChunk = function () {
- var t = this.loadedSize,
- e = Math.min(this.loadedSize + this.chunkSize - 1, this.fileSize - 1);if (t >= this.fileSize || this.aborted) return void (this.completed = !0);this.isLoading = !0, this.loadStartTime = EPlayer.Now(), this.request = new XMLHttpRequest(), this.request.onreadystatechange = function () {
- this.request.readyState === this.request.DONE && this.request.status >= 200 && this.request.status < 300 ? this.onChunkLoad(this.request.response) : this.request.readyState === this.request.DONE && this.loadFails++ < 3 && this.loadNextChunk();
- }.bind(this), 0 === t && (this.request.onprogress = this.onProgress.bind(this)), this.request.open("GET", this.url + "?" + t + "-" + e), this.request.setRequestHeader("Range", "bytes=" + t + "-" + e), this.request.responseType = "arraybuffer", this.request.send();
- }, t.prototype.onProgress = function (t) {
- this.progress = t.loaded / t.total;
- }, t.prototype.onChunkLoad = function (t) {
- this.established = !0, this.progress = 1, this.loadedSize += t.byteLength, this.loadFails = 0, this.isLoading = !1, this.destination && this.destination.write(t), this.loadTime = EPlayer.Now() - this.loadStartTime, this.throttled || this.loadNextChunk();
- }, t;
- }(), EPlayer.Source.WebSocket = function () {
- "use strict";
- var t = function t(_t4, e) {
- this.url = _t4, this.options = e, this.socket = null, this.callbacks = { connect: [], data: [] }, this.destination = null, this.reconnectInterval = void 0 !== e.reconnectInterval ? e.reconnectInterval : 5, this.shouldAttemptReconnect = !!this.reconnectInterval, this.completed = !1, this.established = !1, this.progress = 0, this.reconnectTimeoutId = 0;
- };return t.prototype.connect = function (t) {
- this.destination = t;
- }, t.prototype.destroy = function () {
- clearTimeout(this.reconnectTimeoutId), this.shouldAttemptReconnect = !1, this.socket.close();
- }, t.prototype.start = function () {
- this.shouldAttemptReconnect = !!this.reconnectInterval, this.progress = 0, this.established = !1, this.socket = new WebSocket(this.url, this.options.protocols || null), this.socket.binaryType = "arraybuffer", this.socket.onmessage = this.onMessage.bind(this), this.socket.onopen = this.onOpen.bind(this), this.socket.onerror = this.onClose.bind(this), this.socket.onclose = this.onClose.bind(this);
- }, t.prototype.resume = function (t) {}, t.prototype.onOpen = function () {
- this.progress = 1, this.established = !0;
- }, t.prototype.onClose = function () {
- this.shouldAttemptReconnect && (clearTimeout(this.reconnectTimeoutId), this.reconnectTimeoutId = setTimeout(function () {
- this.start();
- }.bind(this), 1e3 * this.reconnectInterval));
- }, t.prototype.onMessage = function (t) {
- this.destination && this.destination.write(t.data);
- }, t;
- }(), EPlayer.Demuxer.TS = function () {
- "use strict";
- var t = function t(_t5) {
- this.bits = null, this.leftoverBytes = null, this.guessVideoFrameEnd = !0, this.pidsToStreamIds = {}, this.pesPacketInfo = {}, this.startTime = 0, this.currentTime = 0;
- };return t.prototype.connect = function (t, e) {
- this.pesPacketInfo[t] = { destination: e, currentLength: 0, totalLength: 0, pts: 0, buffers: [] };
- }, t.prototype.write = function (t) {
- if (this.leftoverBytes) {
- var e = t.byteLength + this.leftoverBytes.byteLength;this.bits = new EPlayer.BitBuffer(e), this.bits.write([this.leftoverBytes, t]);
- } else this.bits = new EPlayer.BitBuffer(t);for (; this.bits.has(1504) && this.parsePacket();) {}var i = this.bits.byteLength - (this.bits.index >> 3);this.leftoverBytes = i > 0 ? this.bits.bytes.subarray(this.bits.index >> 3) : null;
- }, t.prototype.parsePacket = function () {
- if (71 !== this.bits.read(8) && !this.resync()) return !1;var t = 187 + (this.bits.index >> 3),
- e = (this.bits.read(1), this.bits.read(1)),
- i = (this.bits.read(1), this.bits.read(13)),
- s = (this.bits.read(2), this.bits.read(2)),
- r = (this.bits.read(4), this.pidsToStreamIds[i]);if (e && r) {
- var o = this.pesPacketInfo[r];o && o.currentLength && this.packetComplete(o);
- }if (1 & s) {
- if (2 & s) {
- var n = this.bits.read(8);this.bits.skip(n << 3);
- }if (e && this.bits.nextBytesAreStartCode()) {
- this.bits.skip(24), r = this.bits.read(8), this.pidsToStreamIds[i] = r;var a = this.bits.read(16);this.bits.skip(8);var h = this.bits.read(2);this.bits.skip(6);var d = this.bits.read(8),
- c = this.bits.index + (d << 3),
- o = this.pesPacketInfo[r];if (o) {
- var u = 0;if (2 & h) {
- this.bits.skip(4);var p = this.bits.read(3);this.bits.skip(1);var l = this.bits.read(15);this.bits.skip(1);var f = this.bits.read(15);this.bits.skip(1), u = (1073741824 * p + 32768 * l + f) / 9e4, this.currentTime = u, -1 === this.startTime && (this.startTime = u);
- }var m = a ? a - d - 3 : 0;this.packetStart(o, u, m);
- }this.bits.index = c;
- }if (r) {
- var o = this.pesPacketInfo[r];if (o) {
- var b = this.bits.index >> 3,
- T = this.packetAddData(o, b, t),
- y = !e && 2 & s;(T || this.guessVideoFrameEnd && y) && this.packetComplete(o);
- }
- }
- }return this.bits.index = t << 3, !0;
- }, t.prototype.resync = function () {
- if (!this.bits.has(9024)) return !1;for (var t = this.bits.index >> 3, e = 0; e < 187; e++) {
- if (71 === this.bits.bytes[t + e]) {
- for (var i = !0, s = 1; s < 5; s++) {
- if (71 !== this.bits.bytes[t + e + 188 * s]) {
- i = !1;break;
- }
- }if (i) return this.bits.index = t + e + 1 << 3, !0;
- }
- }return console.warn("EPlayer: Possible garbage data. Skipping."), this.bits.skip(1496), !1;
- }, t.prototype.packetStart = function (t, e, i) {
- t.totalLength = i, t.currentLength = 0, t.pts = e;
- }, t.prototype.packetAddData = function (t, e, i) {
- return t.buffers.push(this.bits.bytes.subarray(e, i)), t.currentLength += i - e, 0 !== t.totalLength && t.currentLength >= t.totalLength;
- }, t.prototype.packetComplete = function (t) {
- t.destination.write(t.pts, t.buffers), t.totalLength = 0, t.currentLength = 0, t.buffers = [];
- }, t.STREAM = { PACK_HEADER: 186, SYSTEM_HEADER: 187, PROGRAM_MAP: 188, PRIVATE_1: 189, PADDING: 190, PRIVATE_2: 191, AUDIO_1: 192, VIDEO_1: 224, DIRECTORY: 255 }, t;
- }(), EPlayer.Decoder.Base = function () {
- "use strict";
- var t = function t(_t6) {
- this.destination = null, this.canPlay = !1, this.collectTimestamps = !_t6.streaming, this.timestamps = [], this.timestampIndex = 0, this.startTime = 0, this.decodedTime = 0, Object.defineProperty(this, "currentTime", { get: this.getCurrentTime });
- };return t.prototype.connect = function (t) {
- this.destination = t;
- }, t.prototype.write = function (t, e) {
- this.collectTimestamps && (0 === this.timestamps.length && (this.startTime = t, this.decodedTime = t), this.timestamps.push({ index: this.bits.byteLength << 3, time: t })), this.bits.write(e), this.canPlay = !0;
- }, t.prototype.seek = function (t) {
- if (this.collectTimestamps) {
- this.timestampIndex = 0;for (var e = 0; e < this.timestamps.length && !(this.timestamps[e].time > t); e++) {
- this.timestampIndex = e;
- }var i = this.timestamps[this.timestampIndex];i ? (this.bits.index = i.index, this.decodedTime = i.time) : (this.bits.index = 0, this.decodedTime = this.startTime);
- }
- }, t.prototype.decode = function () {
- this.advanceDecodedTime(0);
- }, t.prototype.advanceDecodedTime = function (t) {
- if (this.collectTimestamps) {
- for (var e = -1, i = this.timestampIndex; i < this.timestamps.length && !(this.timestamps[i].index > this.bits.index); i++) {
- e = i;
- }if (-1 !== e && e !== this.timestampIndex) return this.timestampIndex = e, void (this.decodedTime = this.timestamps[this.timestampIndex].time);
- }this.decodedTime += t;
- }, t.prototype.getCurrentTime = function () {
- return this.decodedTime;
- }, t;
- }(), EPlayer.Decoder.MPEG1Video = function () {
- "use strict";
- var t = function t(_t7) {
- EPlayer.Decoder.Base.call(this, _t7);var e = _t7.videoBufferSize || 524288,
- i = _t7.streaming ? EPlayer.BitBuffer.MODE.EVICT : EPlayer.BitBuffer.MODE.EXPAND;this.bits = new EPlayer.BitBuffer(e, i), this.customIntraQuantMatrix = new Uint8Array(64), this.customNonIntraQuantMatrix = new Uint8Array(64), this.blockData = new Int32Array(64), this.currentFrame = 0, this.decodeFirstFrame = !1 !== _t7.decodeFirstFrame;
- };return t.prototype = Object.create(EPlayer.Decoder.Base.prototype), t.prototype.constructor = t, t.prototype.write = function (e, i) {
- if (EPlayer.Decoder.Base.prototype.write.call(this, e, i), !this.hasSequenceHeader) {
- if (-1 === this.bits.findStartCode(t.START.SEQUENCE)) return !1;this.decodeSequenceHeader(), this.decodeFirstFrame && this.decode();
- }
- }, t.prototype.decode = function () {
- if (!this.hasSequenceHeader) return !1;if (-1 === this.bits.findStartCode(t.START.PICTURE)) {
- this.bits.byteLength, this.bits.index;return !1;
- }return this.decodePicture(), this.advanceDecodedTime(1 / this.frameRate), !0;
- }, t.prototype.readHuffman = function (t) {
- var e = 0;do {
- e = t[e + this.bits.read(1)];
- } while (e >= 0 && 0 !== t[e]);return t[e + 2];
- }, t.prototype.frameRate = 30, t.prototype.decodeSequenceHeader = function () {
- var e = this.bits.read(12),
- i = this.bits.read(12);if (this.bits.skip(4), this.frameRate = t.PICTURE_RATE[this.bits.read(4)], this.bits.skip(30), e === this.width && i === this.height || (this.width = e, this.height = i, this.initBuffers(), this.destination && this.destination.resize(e, i)), this.bits.read(1)) {
- for (var s = 0; s < 64; s++) {
- this.customIntraQuantMatrix[t.ZIG_ZAG[s]] = this.bits.read(8);
- }this.intraQuantMatrix = this.customIntraQuantMatrix;
- }if (this.bits.read(1)) {
- for (var s = 0; s < 64; s++) {
- var r = t.ZIG_ZAG[s];this.customNonIntraQuantMatrix[r] = this.bits.read(8);
- }this.nonIntraQuantMatrix = this.customNonIntraQuantMatrix;
- }this.hasSequenceHeader = !0;
- }, t.prototype.initBuffers = function () {
- this.intraQuantMatrix = t.DEFAULT_INTRA_QUANT_MATRIX, this.nonIntraQuantMatrix = t.DEFAULT_NON_INTRA_QUANT_MATRIX, this.mbWidth = this.width + 15 >> 4, this.mbHeight = this.height + 15 >> 4, this.mbSize = this.mbWidth * this.mbHeight, this.codedWidth = this.mbWidth << 4, this.codedHeight = this.mbHeight << 4, this.codedSize = this.codedWidth * this.codedHeight, this.halfWidth = this.mbWidth << 3, this.halfHeight = this.mbHeight << 3, this.currentY = new Uint8ClampedArray(this.codedSize), this.currentY32 = new Uint32Array(this.currentY.buffer), this.currentCr = new Uint8ClampedArray(this.codedSize >> 2), this.currentCr32 = new Uint32Array(this.currentCr.buffer), this.currentCb = new Uint8ClampedArray(this.codedSize >> 2), this.currentCb32 = new Uint32Array(this.currentCb.buffer), this.forwardY = new Uint8ClampedArray(this.codedSize), this.forwardY32 = new Uint32Array(this.forwardY.buffer), this.forwardCr = new Uint8ClampedArray(this.codedSize >> 2), this.forwardCr32 = new Uint32Array(this.forwardCr.buffer), this.forwardCb = new Uint8ClampedArray(this.codedSize >> 2), this.forwardCb32 = new Uint32Array(this.forwardCb.buffer);
- }, t.prototype.currentY = null, t.prototype.currentCr = null, t.prototype.currentCb = null, t.prototype.pictureType = 0, t.prototype.forwardY = null, t.prototype.forwardCr = null, t.prototype.forwardCb = null, t.prototype.fullPelForward = !1, t.prototype.forwardFCode = 0, t.prototype.forwardRSize = 0, t.prototype.forwardF = 0, t.prototype.decodePicture = function (e) {
- if (this.currentFrame++, this.bits.skip(10), this.pictureType = this.bits.read(3), this.bits.skip(16), !(this.pictureType <= 0 || this.pictureType >= t.PICTURE_TYPE.B)) {
- if (this.pictureType === t.PICTURE_TYPE.PREDICTIVE) {
- if (this.fullPelForward = this.bits.read(1), this.forwardFCode = this.bits.read(3), 0 === this.forwardFCode) return;this.forwardRSize = this.forwardFCode - 1, this.forwardF = 1 << this.forwardRSize;
- }var i = 0;do {
- i = this.bits.findNextStartCode();
- } while (i === t.START.EXTENSION || i === t.START.USER_DATA);for (; i >= t.START.SLICE_FIRST && i <= t.START.SLICE_LAST;) {
- this.decodeSlice(255 & i), i = this.bits.findNextStartCode();
- }if (-1 !== i && this.bits.rewind(32), this.destination && this.destination.render(this.currentY, this.currentCr, this.currentCb), this.pictureType === t.PICTURE_TYPE.INTRA || this.pictureType === t.PICTURE_TYPE.PREDICTIVE) {
- var s = this.forwardY,
- r = this.forwardY32,
- o = this.forwardCr,
- n = this.forwardCr32,
- a = this.forwardCb,
- h = this.forwardCb32;this.forwardY = this.currentY, this.forwardY32 = this.currentY32, this.forwardCr = this.currentCr, this.forwardCr32 = this.currentCr32, this.forwardCb = this.currentCb, this.forwardCb32 = this.currentCb32, this.currentY = s, this.currentY32 = r, this.currentCr = o, this.currentCr32 = n, this.currentCb = a, this.currentCb32 = h;
- }
- }
- }, t.prototype.quantizerScale = 0, t.prototype.sliceBegin = !1, t.prototype.decodeSlice = function (t) {
- for (this.sliceBegin = !0, this.macroblockAddress = (t - 1) * this.mbWidth - 1, this.motionFwH = this.motionFwHPrev = 0, this.motionFwV = this.motionFwVPrev = 0, this.dcPredictorY = 128, this.dcPredictorCr = 128, this.dcPredictorCb = 128, this.quantizerScale = this.bits.read(5); this.bits.read(1);) {
- this.bits.skip(8);
- }do {
- this.decodeMacroblock();
- } while (!this.bits.nextBytesAreStartCode());
- }, t.prototype.macroblockAddress = 0, t.prototype.mbRow = 0, t.prototype.mbCol = 0, t.prototype.macroblockType = 0, t.prototype.macroblockIntra = !1, t.prototype.macroblockMotFw = !1, t.prototype.motionFwH = 0, t.prototype.motionFwV = 0, t.prototype.motionFwHPrev = 0, t.prototype.motionFwVPrev = 0, t.prototype.decodeMacroblock = function () {
- for (var e = 0, i = this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT); 34 === i;) {
- i = this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);
- }for (; 35 === i;) {
- e += 33, i = this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);
- }if (e += i, this.sliceBegin) this.sliceBegin = !1, this.macroblockAddress += e;else {
- if (this.macroblockAddress + e >= this.mbSize) return;for (e > 1 && (this.dcPredictorY = 128, this.dcPredictorCr = 128, this.dcPredictorCb = 128, this.pictureType === t.PICTURE_TYPE.PREDICTIVE && (this.motionFwH = this.motionFwHPrev = 0, this.motionFwV = this.motionFwVPrev = 0)); e > 1;) {
- this.macroblockAddress++, this.mbRow = this.macroblockAddress / this.mbWidth | 0, this.mbCol = this.macroblockAddress % this.mbWidth, this.copyMacroblock(this.motionFwH, this.motionFwV, this.forwardY, this.forwardCr, this.forwardCb), e--;
- }this.macroblockAddress++;
- }this.mbRow = this.macroblockAddress / this.mbWidth | 0, this.mbCol = this.macroblockAddress % this.mbWidth;var s = t.MACROBLOCK_TYPE[this.pictureType];this.macroblockType = this.readHuffman(s), this.macroblockIntra = 1 & this.macroblockType, this.macroblockMotFw = 8 & this.macroblockType, 0 != (16 & this.macroblockType) && (this.quantizerScale = this.bits.read(5)), this.macroblockIntra ? (this.motionFwH = this.motionFwHPrev = 0, this.motionFwV = this.motionFwVPrev = 0) : (this.dcPredictorY = 128, this.dcPredictorCr = 128, this.dcPredictorCb = 128, this.decodeMotionVectors(), this.copyMacroblock(this.motionFwH, this.motionFwV, this.forwardY, this.forwardCr, this.forwardCb));for (var r = 0 != (2 & this.macroblockType) ? this.readHuffman(t.CODE_BLOCK_PATTERN) : this.macroblockIntra ? 63 : 0, o = 0, n = 32; o < 6; o++) {
- 0 != (r & n) && this.decodeBlock(o), n >>= 1;
- }
- }, t.prototype.decodeMotionVectors = function () {
- var e,
- i,
- s = 0;this.macroblockMotFw ? (e = this.readHuffman(t.MOTION), 0 !== e && 1 !== this.forwardF ? (s = this.bits.read(this.forwardRSize), i = (Math.abs(e) - 1 << this.forwardRSize) + s + 1, e < 0 && (i = -i)) : i = e, this.motionFwHPrev += i, this.motionFwHPrev > (this.forwardF << 4) - 1 ? this.motionFwHPrev -= this.forwardF << 5 : this.motionFwHPrev < -this.forwardF << 4 && (this.motionFwHPrev += this.forwardF << 5), this.motionFwH = this.motionFwHPrev, this.fullPelForward && (this.motionFwH <<= 1), e = this.readHuffman(t.MOTION), 0 !== e && 1 !== this.forwardF ? (s = this.bits.read(this.forwardRSize), i = (Math.abs(e) - 1 << this.forwardRSize) + s + 1, e < 0 && (i = -i)) : i = e, this.motionFwVPrev += i, this.motionFwVPrev > (this.forwardF << 4) - 1 ? this.motionFwVPrev -= this.forwardF << 5 : this.motionFwVPrev < -this.forwardF << 4 && (this.motionFwVPrev += this.forwardF << 5), this.motionFwV = this.motionFwVPrev, this.fullPelForward && (this.motionFwV <<= 1)) : this.pictureType === t.PICTURE_TYPE.PREDICTIVE && (this.motionFwH = this.motionFwHPrev = 0, this.motionFwV = this.motionFwVPrev = 0);
- }, t.prototype.copyMacroblock = function (t, e, i, s, r) {
- var o,
- n,
- a,
- h,
- d,
- c,
- u,
- p,
- l,
- f = this.currentY32,
- m = this.currentCb32,
- b = this.currentCr32;o = this.codedWidth, n = o - 16, a = t >> 1, h = e >> 1, d = 1 == (1 & t), c = 1 == (1 & e), u = ((this.mbRow << 4) + h) * o + (this.mbCol << 4) + a, p = this.mbRow * o + this.mbCol << 2, l = p + (o << 2);var T, y, g, v;if (d) {
- if (c) for (; p < l;) {
- for (y = i[u] + i[u + o], u++, T = 0; T < 4; T++) {
- g = i[u] + i[u + o], u++, v = y + g + 2 >> 2 & 255, y = i[u] + i[u + o], u++, v |= y + g + 2 << 6 & 65280, g = i[u] + i[u + o], u++, v |= y + g + 2 << 14 & 16711680, y = i[u] + i[u + o], u++, v |= y + g + 2 << 22 & 4278190080, f[p++] = v;
- }p += n >> 2, u += n - 1;
- } else for (; p < l;) {
- for (y = i[u++], T = 0; T < 4; T++) {
- g = i[u++], v = y + g + 1 >> 1 & 255, y = i[u++], v |= y + g + 1 << 7 & 65280, g = i[u++], v |= y + g + 1 << 15 & 16711680, y = i[u++], v |= y + g + 1 << 23 & 4278190080, f[p++] = v;
- }p += n >> 2, u += n - 1;
- }
- } else if (c) for (; p < l;) {
- for (T = 0; T < 4; T++) {
- v = i[u] + i[u + o] + 1 >> 1 & 255, u++, v |= i[u] + i[u + o] + 1 << 7 & 65280, u++, v |= i[u] + i[u + o] + 1 << 15 & 16711680, u++, v |= i[u] + i[u + o] + 1 << 23 & 4278190080, u++, f[p++] = v;
- }p += n >> 2, u += n;
- } else for (; p < l;) {
- for (T = 0; T < 4; T++) {
- v = i[u], u++, v |= i[u] << 8, u++, v |= i[u] << 16, u++, v |= i[u] << 24, u++, f[p++] = v;
- }p += n >> 2, u += n;
- }o = this.halfWidth, n = o - 8, a = t / 2 >> 1, h = e / 2 >> 1, d = 1 == (t / 2 & 1), c = 1 == (e / 2 & 1), u = ((this.mbRow << 3) + h) * o + (this.mbCol << 3) + a, p = this.mbRow * o + this.mbCol << 1, l = p + (o << 1);var A, w, E, C, S, x;if (d) {
- if (c) for (; p < l;) {
- for (A = s[u] + s[u + o], C = r[u] + r[u + o], u++, T = 0; T < 2; T++) {
- w = s[u] + s[u + o], S = r[u] + r[u + o], u++, E = A + w + 2 >> 2 & 255, x = C + S + 2 >> 2 & 255, A = s[u] + s[u + o], C = r[u] + r[u + o], u++, E |= A + w + 2 << 6 & 65280, x |= C + S + 2 << 6 & 65280, w = s[u] + s[u + o], S = r[u] + r[u + o], u++, E |= A + w + 2 << 14 & 16711680, x |= C + S + 2 << 14 & 16711680, A = s[u] + s[u + o], C = r[u] + r[u + o], u++, E |= A + w + 2 << 22 & 4278190080, x |= C + S + 2 << 22 & 4278190080, b[p] = E, m[p] = x, p++;
- }p += n >> 2, u += n - 1;
- } else for (; p < l;) {
- for (A = s[u], C = r[u], u++, T = 0; T < 2; T++) {
- w = s[u], S = r[u++], E = A + w + 1 >> 1 & 255, x = C + S + 1 >> 1 & 255, A = s[u], C = r[u++], E |= A + w + 1 << 7 & 65280, x |= C + S + 1 << 7 & 65280, w = s[u], S = r[u++], E |= A + w + 1 << 15 & 16711680, x |= C + S + 1 << 15 & 16711680, A = s[u], C = r[u++], E |= A + w + 1 << 23 & 4278190080, x |= C + S + 1 << 23 & 4278190080, b[p] = E, m[p] = x, p++;
- }p += n >> 2, u += n - 1;
- }
- } else if (c) for (; p < l;) {
- for (T = 0; T < 2; T++) {
- E = s[u] + s[u + o] + 1 >> 1 & 255, x = r[u] + r[u + o] + 1 >> 1 & 255, u++, E |= s[u] + s[u + o] + 1 << 7 & 65280, x |= r[u] + r[u + o] + 1 << 7 & 65280, u++, E |= s[u] + s[u + o] + 1 << 15 & 16711680, x |= r[u] + r[u + o] + 1 << 15 & 16711680, u++, E |= s[u] + s[u + o] + 1 << 23 & 4278190080, x |= r[u] + r[u + o] + 1 << 23 & 4278190080, u++, b[p] = E, m[p] = x, p++;
- }p += n >> 2, u += n;
- } else for (; p < l;) {
- for (T = 0; T < 2; T++) {
- E = s[u], x = r[u], u++, E |= s[u] << 8, x |= r[u] << 8, u++, E |= s[u] << 16, x |= r[u] << 16, u++, E |= s[u] << 24, x |= r[u] << 24, u++, b[p] = E, m[p] = x, p++;
- }p += n >> 2, u += n;
- }
- }, t.prototype.dcPredictorY = 0, t.prototype.dcPredictorCr = 0, t.prototype.dcPredictorCb = 0, t.prototype.blockData = null, t.prototype.decodeBlock = function (e) {
- var i,
- s = 0;if (this.macroblockIntra) {
- var r, o;if (e < 4 ? (r = this.dcPredictorY, o = this.readHuffman(t.DCT_DC_SIZE_LUMINANCE)) : (r = 4 === e ? this.dcPredictorCr : this.dcPredictorCb, o = this.readHuffman(t.DCT_DC_SIZE_CHROMINANCE)), o > 0) {
- var n = this.bits.read(o);this.blockData[0] = 0 != (n & 1 << o - 1) ? r + n : r + (-1 << o | n + 1);
- } else this.blockData[0] = r;e < 4 ? this.dcPredictorY = this.blockData[0] : 4 === e ? this.dcPredictorCr = this.blockData[0] : this.dcPredictorCb = this.blockData[0], this.blockData[0] <<= 8, i = this.intraQuantMatrix, s = 1;
- } else i = this.nonIntraQuantMatrix;for (var a = 0;;) {
- var h = 0,
- d = this.readHuffman(t.DCT_COEFF);if (1 === d && s > 0 && 0 === this.bits.read(1)) break;65535 === d ? (h = this.bits.read(6), a = this.bits.read(8), 0 === a ? a = this.bits.read(8) : 128 === a ? a = this.bits.read(8) - 256 : a > 128 && (a -= 256)) : (h = d >> 8, a = 255 & d, this.bits.read(1) && (a = -a)), s += h;var c = t.ZIG_ZAG[s];s++, a <<= 1, this.macroblockIntra || (a += a < 0 ? -1 : 1), a = a * this.quantizerScale * i[c] >> 4, 0 == (1 & a) && (a -= a > 0 ? 1 : -1), a > 2047 ? a = 2047 : a < -2048 && (a = -2048), this.blockData[c] = a * t.PREMULTIPLIER_MATRIX[c];
- }var u, p, l;e < 4 ? (u = this.currentY, l = this.codedWidth - 8, p = this.mbRow * this.codedWidth + this.mbCol << 4, 0 != (1 & e) && (p += 8), 0 != (2 & e) && (p += this.codedWidth << 3)) : (u = 4 === e ? this.currentCb : this.currentCr, l = (this.codedWidth >> 1) - 8, p = (this.mbRow * this.codedWidth << 2) + (this.mbCol << 3)), this.macroblockIntra ? 1 === s ? (t.CopyValueToDestination(this.blockData[0] + 128 >> 8, u, p, l), this.blockData[0] = 0) : (t.IDCT(this.blockData), t.CopyBlockToDestination(this.blockData, u, p, l), EPlayer.Fill(this.blockData, 0)) : 1 === s ? (t.AddValueToDestination(this.blockData[0] + 128 >> 8, u, p, l), this.blockData[0] = 0) : (t.IDCT(this.blockData), t.AddBlockToDestination(this.blockData, u, p, l), EPlayer.Fill(this.blockData, 0)), s = 0;
- }, t.CopyBlockToDestination = function (t, e, i, s) {
- for (var r = 0; r < 64; r += 8, i += s + 8) {
- e[i + 0] = t[r + 0], e[i + 1] = t[r + 1], e[i + 2] = t[r + 2], e[i + 3] = t[r + 3], e[i + 4] = t[r + 4], e[i + 5] = t[r + 5], e[i + 6] = t[r + 6], e[i + 7] = t[r + 7];
- }
- }, t.AddBlockToDestination = function (t, e, i, s) {
- for (var r = 0; r < 64; r += 8, i += s + 8) {
- e[i + 0] += t[r + 0], e[i + 1] += t[r + 1], e[i + 2] += t[r + 2], e[i + 3] += t[r + 3], e[i + 4] += t[r + 4], e[i + 5] += t[r + 5], e[i + 6] += t[r + 6], e[i + 7] += t[r + 7];
- }
- }, t.CopyValueToDestination = function (t, e, i, s) {
- for (var r = 0; r < 64; r += 8, i += s + 8) {
- e[i + 0] = t, e[i + 1] = t, e[i + 2] = t, e[i + 3] = t, e[i + 4] = t, e[i + 5] = t, e[i + 6] = t, e[i + 7] = t;
- }
- }, t.AddValueToDestination = function (t, e, i, s) {
- for (var r = 0; r < 64; r += 8, i += s + 8) {
- e[i + 0] += t, e[i + 1] += t, e[i + 2] += t, e[i + 3] += t, e[i + 4] += t, e[i + 5] += t, e[i + 6] += t, e[i + 7] += t;
- }
- }, t.IDCT = function (t) {
- for (var e, i, s, r, o, n, a, h, d, c, u, p, l, f, m, b, T, y, g = 0; g < 8; ++g) {
- e = t[32 + g], i = t[16 + g] + t[48 + g], s = t[40 + g] - t[24 + g], n = t[8 + g] + t[56 + g], a = t[24 + g] + t[40 + g], r = t[8 + g] - t[56 + g], o = n + a, h = t[0 + g], l = (473 * r - 196 * s + 128 >> 8) - o, d = l - (362 * (n - a) + 128 >> 8), c = h - e, u = (362 * (t[16 + g] - t[48 + g]) + 128 >> 8) - i, p = h + e, f = c + u, m = p + i, b = c - u, T = p - i, y = -d - (473 * s + 196 * r + 128 >> 8), t[0 + g] = o + m, t[8 + g] = l + f, t[16 + g] = b - d, t[24 + g] = T - y, t[32 + g] = T + y, t[40 + g] = d + b, t[48 + g] = f - l, t[56 + g] = m - o;
- }for (var g = 0; g < 64; g += 8) {
- e = t[4 + g], i = t[2 + g] + t[6 + g], s = t[5 + g] - t[3 + g], n = t[1 + g] + t[7 + g], a = t[3 + g] + t[5 + g], r = t[1 + g] - t[7 + g], o = n + a, h = t[0 + g], l = (473 * r - 196 * s + 128 >> 8) - o, d = l - (362 * (n - a) + 128 >> 8), c = h - e, u = (362 * (t[2 + g] - t[6 + g]) + 128 >> 8) - i, p = h + e, f = c + u, m = p + i, b = c - u, T = p - i, y = -d - (473 * s + 196 * r + 128 >> 8), t[0 + g] = o + m + 128 >> 8, t[1 + g] = l + f + 128 >> 8, t[2 + g] = b - d + 128 >> 8, t[3 + g] = T - y + 128 >> 8, t[4 + g] = T + y + 128 >> 8, t[5 + g] = d + b + 128 >> 8, t[6 + g] = f - l + 128 >> 8, t[7 + g] = m - o + 128 >> 8;
- }
- }, t.PICTURE_RATE = [0, 23.976, 24, 25, 29.97, 30, 50, 59.94, 60, 0, 0, 0, 0, 0, 0, 0], t.ZIG_ZAG = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]), t.DEFAULT_INTRA_QUANT_MATRIX = new Uint8Array([8, 16, 19, 22, 26, 27, 29, 34, 16, 16, 22, 24, 27, 29, 34, 37, 19, 22, 26, 27, 29, 34, 34, 38, 22, 22, 26, 27, 29, 34, 37, 40, 22, 26, 27, 29, 32, 35, 40, 48, 26, 27, 29, 32, 35, 40, 48, 58, 26, 27, 29, 34, 38, 46, 56, 69, 27, 29, 35, 38, 46, 56, 69, 83]), t.DEFAULT_NON_INTRA_QUANT_MATRIX = new Uint8Array([16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]), t.PREMULTIPLIER_MATRIX = new Uint8Array([32, 44, 42, 38, 32, 25, 17, 9, 44, 62, 58, 52, 44, 35, 24, 12, 42, 58, 55, 49, 42, 33, 23, 12, 38, 52, 49, 44, 38, 30, 20, 10, 32, 44, 42, 38, 32, 25, 17, 9, 25, 35, 33, 30, 25, 20, 14, 7, 17, 24, 23, 20, 17, 14, 9, 5, 9, 12, 12, 10, 9, 7, 5, 2]), t.MACROBLOCK_ADDRESS_INCREMENT = new Int16Array([3, 6, 0, 9, 12, 0, 0, 0, 1, 15, 18, 0, 21, 24, 0, 27, 30, 0, 33, 36, 0, 0, 0, 3, 0, 0, 2, 39, 42, 0, 45, 48, 0, 0, 0, 5, 0, 0, 4, 51, 54, 0, 57, 60, 0, 0, 0, 7, 0, 0, 6, 63, 66, 0, 69, 72, 0, 75, 78, 0, 81, 84, 0, -1, 87, 0, -1, 90, 0, 93, 96, 0, 99, 102, 0, 105, 108, 0, 111, 114, 0, 0, 0, 9, 0, 0, 8, 117, 120, 0, 123, 126, 0, 129, 132, 0, 135, 138, 0, 0, 0, 15, 0, 0, 14, 0, 0, 13, 0, 0, 12, 0, 0, 11, 0, 0, 10, 141, -1, 0, -1, 144, 0, 147, 150, 0, 153, 156, 0, 159, 162, 0, 165, 168, 0, 171, 174, 0, 177, 180, 0, 183, -1, 0, -1, 186, 0, 189, 192, 0, 195, 198, 0, 201, 204, 0, 207, 210, 0, 213, 216, 0, 219, 222, 0, 0, 0, 21, 0, 0, 20, 0, 0, 19, 0, 0, 18, 0, 0, 17, 0, 0, 16, 0, 0, 35, 0, 0, 34, 0, 0, 33, 0, 0, 32, 0, 0, 31, 0, 0, 30, 0, 0, 29, 0, 0, 28, 0, 0, 27, 0, 0, 26, 0, 0, 25, 0, 0, 24, 0, 0, 23, 0, 0, 22]), t.MACROBLOCK_TYPE_INTRA = new Int8Array([3, 6, 0, -1, 9, 0, 0, 0, 1, 0, 0, 17]), t.MACROBLOCK_TYPE_PREDICTIVE = new Int8Array([3, 6, 0, 9, 12, 0, 0, 0, 10, 15, 18, 0, 0, 0, 2, 21, 24, 0, 0, 0, 8, 27, 30, 0, 33, 36, 0, -1, 39, 0, 0, 0, 18, 0, 0, 26, 0, 0, 1, 0, 0, 17]), t.MACROBLOCK_TYPE_B = new Int8Array([3, 6, 0, 9, 15, 0, 12, 18, 0, 24, 21, 0, 0, 0, 12, 27, 30, 0, 0, 0, 14, 39, 42, 0, 36, 33, 0, 0, 0, 4, 0, 0, 6, 54, 48, 0, 45, 51, 0, 0, 0, 8, 0, 0, 10, -1, 57, 0, 0, 0, 1, 60, 63, 0, 0, 0, 30, 0, 0, 17, 0, 0, 22, 0, 0, 26]), t.MACROBLOCK_TYPE = [null, t.MACROBLOCK_TYPE_INTRA, t.MACROBLOCK_TYPE_PREDICTIVE, t.MACROBLOCK_TYPE_B], t.CODE_BLOCK_PATTERN = new Int16Array([6, 3, 0, 9, 18, 0, 12, 15, 0, 24, 33, 0, 36, 39, 0, 27, 21, 0, 30, 42, 0, 60, 57, 0, 54, 48, 0, 69, 51, 0, 81, 75, 0, 63, 84, 0, 45, 66, 0, 72, 78, 0, 0, 0, 60, 105, 120, 0, 132, 144, 0, 114, 108, 0, 126, 141, 0, 87, 93, 0, 117, 96, 0, 0, 0, 32, 135, 138, 0, 99, 123, 0, 129, 102, 0, 0, 0, 4, 90, 111, 0, 0, 0, 8, 0, 0, 16, 0, 0, 44, 150, 168, 0, 0, 0, 28, 0, 0, 52, 0, 0, 62, 183, 177, 0, 156, 180, 0, 0, 0, 1, 165, 162, 0, 0, 0, 61, 0, 0, 56, 171, 174, 0, 0, 0, 2, 0, 0, 40, 153, 186, 0, 0, 0, 48, 192, 189, 0, 147, 159, 0, 0, 0, 20, 0, 0, 12, 240, 249, 0, 0, 0, 63, 231, 225, 0, 195, 219, 0, 252, 198, 0, 0, 0, 24, 0, 0, 36, 0, 0, 3, 207, 261, 0, 243, 237, 0, 204, 213, 0, 210, 234, 0, 201, 228, 0, 216, 222, 0, 258, 255, 0, 264, 246, 0, -1, 282, 0, 285, 291, 0, 0, 0, 33, 0, 0, 9, 318, 330, 0, 306, 348, 0, 0, 0, 5, 0, 0, 10, 279, 267, 0, 0, 0, 6, 0, 0, 18, 0, 0, 17, 0, 0, 34, 339, 357, 0, 309, 312, 0, 270, 276, 0, 327, 321, 0, 351, 354, 0, 303, 297, 0, 294, 288, 0, 300, 273, 0, 342, 345, 0, 315, 324, 0, 336, 333, 0, 363, 375, 0, 0, 0, 41, 0, 0, 14, 0, 0, 21, 372, 366, 0, 360, 369, 0, 0, 0, 11, 0, 0, 19, 0, 0, 7, 0, 0, 35, 0, 0, 13, 0, 0, 50, 0, 0, 49, 0, 0, 58, 0, 0, 37, 0, 0, 25, 0, 0, 45, 0, 0, 57, 0, 0, 26, 0, 0, 29, 0, 0, 38, 0, 0, 53, 0, 0, 23, 0, 0, 43, 0, 0, 46, 0, 0, 42, 0, 0, 22, 0, 0, 54, 0, 0, 51, 0, 0, 15, 0, 0, 30, 0, 0, 39, 0, 0, 47, 0, 0, 55, 0, 0, 27, 0, 0, 59, 0, 0, 31]), t.MOTION = new Int16Array([3, 6, 0, 12, 9, 0, 0, 0, 0, 18, 15, 0, 24, 21, 0, 0, 0, -1, 0, 0, 1, 27, 30, 0, 36, 33, 0, 0, 0, 2, 0, 0, -2, 42, 45, 0, 48, 39, 0, 60, 54, 0, 0, 0, 3, 0, 0, -3, 51, 57, 0, -1, 69, 0, 81, 75, 0, 78, 63, 0, 72, 66, 0, 96, 84, 0, 87, 93, 0, -1, 99, 0, 108, 105, 0, 0, 0, -4, 90, 102, 0, 0, 0, 4, 0, 0, -7, 0, 0, 5, 111, 123, 0, 0, 0, -5, 0, 0, 7, 114, 120, 0, 126, 117, 0, 0, 0, -6, 0, 0, 6, 153, 162, 0, 150, 147, 0, 135, 138, 0, 156, 141, 0, 129, 159, 0, 132, 144, 0, 0, 0, 10, 0, 0, 9, 0, 0, 8, 0, 0, -8, 171, 198, 0, 0, 0, -9, 180, 192, 0, 168, 183, 0, 165, 186, 0, 174, 189, 0, 0, 0, -10, 177, 195, 0, 0, 0, 12, 0, 0, 16, 0, 0, 13, 0, 0, 14, 0, 0, 11, 0, 0, 15, 0, 0, -16, 0, 0, -12, 0, 0, -14, 0, 0, -15, 0, 0, -11, 0, 0, -13]), t.DCT_DC_SIZE_LUMINANCE = new Int8Array([6, 3, 0, 18, 15, 0, 9, 12, 0, 0, 0, 1, 0, 0, 2, 27, 24, 0, 21, 30, 0, 0, 0, 0, 36, 33, 0, 0, 0, 4, 0, 0, 3, 39, 42, 0, 0, 0, 5, 0, 0, 6, 48, 45, 0, 51, -1, 0, 0, 0, 7, 0, 0, 8]), t.DCT_DC_SIZE_CHROMINANCE = new Int8Array([6, 3, 0, 12, 9, 0, 18, 15, 0, 24, 21, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 30, 27, 0, 0, 0, 3, 36, 33, 0, 0, 0, 4, 42, 39, 0, 0, 0, 5, 48, 45, 0, 0, 0, 6, 51, -1, 0, 0, 0, 7, 0, 0, 8]), t.DCT_COEFF = new Int32Array([3, 6, 0, 12, 9, 0, 0, 0, 1, 21, 24, 0, 18, 15, 0, 39, 27, 0, 33, 30, 0, 42, 36, 0, 0, 0, 257, 60, 66, 0, 54, 63, 0, 48, 57, 0, 0, 0, 513, 51, 45, 0, 0, 0, 2, 0, 0, 3, 81, 75, 0, 87, 93, 0, 72, 78, 0, 96, 90, 0, 0, 0, 1025, 69, 84, 0, 0, 0, 769, 0, 0, 258, 0, 0, 1793, 0, 0, 65535, 0, 0, 1537, 111, 108, 0, 0, 0, 1281, 105, 102, 0, 117, 114, 0, 99, 126, 0, 120, 123, 0, 156, 150, 0, 162, 159, 0, 144, 147, 0, 129, 135, 0, 138, 132, 0, 0, 0, 2049, 0, 0, 4, 0, 0, 514, 0, 0, 2305, 153, 141, 0, 165, 171, 0, 180, 168, 0, 177, 174, 0, 183, 186, 0, 0, 0, 2561, 0, 0, 3329, 0, 0, 6, 0, 0, 259, 0, 0, 5, 0, 0, 770, 0, 0, 2817, 0, 0, 3073, 228, 225, 0, 201, 210, 0, 219, 213, 0, 234, 222, 0, 216, 231, 0, 207, 192, 0, 204, 189, 0, 198, 195, 0, 243, 261, 0, 273, 240, 0, 246, 237, 0, 249, 258, 0, 279, 276, 0, 252, 255, 0, 270, 282, 0, 264, 267, 0, 0, 0, 515, 0, 0, 260, 0, 0, 7, 0, 0, 1026, 0, 0, 1282, 0, 0, 4097, 0, 0, 3841, 0, 0, 3585, 315, 321, 0, 333, 342, 0, 312, 291, 0, 375, 357, 0, 288, 294, 0, -1, 369, 0, 285, 303, 0, 318, 363, 0, 297, 306, 0, 339, 309, 0, 336, 348, 0, 330, 300, 0, 372, 345, 0, 351, 366, 0, 327, 354, 0, 360, 324, 0, 381, 408, 0, 417, 420, 0, 390, 378, 0, 435, 438, 0, 384, 387, 0, 0, 0, 2050, 396, 402, 0, 465, 462, 0, 0, 0, 8, 411, 399, 0, 429, 432, 0, 453, 414, 0, 426, 423, 0, 0, 0, 10, 0, 0, 9, 0, 0, 11, 0, 0, 5377, 0, 0, 1538, 0, 0, 771, 0, 0, 5121, 0, 0, 1794, 0, 0, 4353, 0, 0, 4609, 0, 0, 4865, 444, 456, 0, 0, 0, 1027, 459, 450, 0, 0, 0, 261, 393, 405, 0, 0, 0, 516, 447, 441, 0, 516, 519, 0, 486, 474, 0, 510, 483, 0, 504, 498, 0, 471, 537, 0, 507, 501, 0, 522, 513, 0, 534, 531, 0, 468, 477, 0, 492, 495, 0, 549, 546, 0, 525, 528, 0, 0, 0, 263, 0, 0, 2562, 0, 0, 2306, 0, 0, 5633, 0, 0, 5889, 0, 0, 6401, 0, 0, 6145, 0, 0, 1283, 0, 0, 772, 0, 0, 13, 0, 0, 12, 0, 0, 14, 0, 0, 15, 0, 0, 517, 0, 0, 6657, 0, 0, 262, 540, 543, 0, 480, 489, 0, 588, 597, 0, 0, 0, 27, 609, 555, 0, 606, 603, 0, 0, 0, 19, 0, 0, 22, 591, 621, 0, 0, 0, 18, 573, 576, 0, 564, 570, 0, 0, 0, 20, 552, 582, 0, 0, 0, 21, 558, 579, 0, 0, 0, 23, 612, 594, 0, 0, 0, 25, 0, 0, 24, 600, 615, 0, 0, 0, 31, 0, 0, 30, 0, 0, 28, 0, 0, 29, 0, 0, 26, 0, 0, 17, 0, 0, 16, 567, 618, 0, 561, 585, 0, 654, 633, 0, 0, 0, 37, 645, 648, 0, 0, 0, 36, 630, 636, 0, 0, 0, 34, 639, 627, 0, 663, 666, 0, 657, 624, 0, 651, 642, 0, 669, 660, 0, 0, 0, 35, 0, 0, 267, 0, 0, 40, 0, 0, 268, 0, 0, 266, 0, 0, 32, 0, 0, 264, 0, 0, 265, 0, 0, 38, 0, 0, 269, 0, 0, 270, 0, 0, 33, 0, 0, 39, 0, 0, 7937, 0, 0, 6913, 0, 0, 7681, 0, 0, 4098, 0, 0, 7425, 0, 0, 7169, 0, 0, 271, 0, 0, 274, 0, 0, 273, 0, 0, 272, 0, 0, 1539, 0, 0, 2818, 0, 0, 3586, 0, 0, 3330, 0, 0, 3074, 0, 0, 3842]), t.PICTURE_TYPE = { INTRA: 1, PREDICTIVE: 2, B: 3 }, t.START = { SEQUENCE: 179, SLICE_FIRST: 1, SLICE_LAST: 175, PICTURE: 0, EXTENSION: 181, USER_DATA: 178 }, t;
- }(), EPlayer.Decoder.MP2Audio = function () {
- "use strict";
- var t = function t(e) {
- EPlayer.Decoder.Base.call(this, e);var i = e.audioBufferSize || 131072,
- s = e.streaming ? EPlayer.BitBuffer.MODE.EVICT : EPlayer.BitBuffer.MODE.EXPAND;this.bits = new EPlayer.BitBuffer(i, s), this.left = new Float32Array(1152), this.right = new Float32Array(1152), this.sampleRate = 44100, this.D = new Float32Array(1024), this.D.set(t.SYNTHESIS_WINDOW, 0), this.D.set(t.SYNTHESIS_WINDOW, 512), this.V = new Float32Array(1024), this.U = new Int32Array(32), this.VPos = 0, this.allocation = [new Array(32), new Array(32)], this.scaleFactorInfo = [new Uint8Array(32), new Uint8Array(32)], this.scaleFactor = [new Array(32), new Array(32)], this.sample = [new Array(32), new Array(32)];for (var r = 0; r < 2; r++) {
- for (var o = 0; o < 32; o++) {
- this.scaleFactor[r][o] = [0, 0, 0], this.sample[r][o] = [0, 0, 0];
- }
- }
- };return t.prototype = Object.create(EPlayer.Decoder.Base.prototype), t.prototype.constructor = t, t.prototype.decode = function () {
- var t = this.bits.index >> 3;if (t >= this.bits.byteLength) return !1;var e = this.decodeFrame(this.left, this.right);return this.bits.index = t + e << 3, !!e && (this.destination && this.destination.play(this.sampleRate, this.left, this.right), this.advanceDecodedTime(this.left.length / this.sampleRate), !0);
- }, t.prototype.getCurrentTime = function () {
- var t = this.destination ? this.destination.enqueuedTime : 0;return this.decodedTime - t;
- }, t.prototype.decodeFrame = function (e, i) {
- var s = this.bits.read(11),
- r = this.bits.read(2),
- o = this.bits.read(2),
- n = !this.bits.read(1);if (s !== t.FRAME_SYNC || r !== t.VERSION.MPEG_1 || o !== t.LAYER.II) return 0;var a = this.bits.read(4) - 1;if (a > 13) return 0;var h = this.bits.read(2),
- d = t.SAMPLE_RATE[h];if (3 === h) return 0;r === t.VERSION.MPEG_2 && (h += 4, a += 14);var c = this.bits.read(1),
- u = (this.bits.read(1), this.bits.read(2)),
- p = 0;u === t.MODE.JOINT_STEREO ? p = this.bits.read(2) + 1 << 2 : (this.bits.skip(2), p = u === t.MODE.MONO ? 0 : 32), this.bits.skip(4), n && this.bits.skip(16);var l = t.BIT_RATE[a],
- d = t.SAMPLE_RATE[h],
- f = 144e3 * l / d + c | 0,
- m = 0,
- b = 0;if (r === t.VERSION.MPEG_2) m = 2, b = 30;else {
- var T = u === t.MODE.MONO ? 0 : 1,
- y = t.QUANT_LUT_STEP_1[T][a];m = t.QUANT_LUT_STEP_2[y][h], b = 63 & m, m >>= 6;
- }p > b && (p = b);for (var g = 0; g < p; g++) {
- this.allocation[0][g] = this.readAllocation(g, m), this.allocation[1][g] = this.readAllocation(g, m);
- }for (var g = p; g < b; g++) {
- this.allocation[0][g] = this.allocation[1][g] = this.readAllocation(g, m);
- }for (var v = u === t.MODE.MONO ? 1 : 2, g = 0; g < b; g++) {
- for (A = 0; A < v; A++) {
- this.allocation[A][g] && (this.scaleFactorInfo[A][g] = this.bits.read(2));
- }u === t.MODE.MONO && (this.scaleFactorInfo[1][g] = this.scaleFactorInfo[0][g]);
- }for (var g = 0; g < b; g++) {
- for (var A = 0; A < v; A++) {
- if (this.allocation[A][g]) {
- var w = this.scaleFactor[A][g];switch (this.scaleFactorInfo[A][g]) {case 0:
- w[0] = this.bits.read(6), w[1] = this.bits.read(6), w[2] = this.bits.read(6);break;case 1:
- w[0] = w[1] = this.bits.read(6), w[2] = this.bits.read(6);break;case 2:
- w[0] = w[1] = w[2] = this.bits.read(6);break;case 3:
- w[0] = this.bits.read(6), w[1] = w[2] = this.bits.read(6);}
- }
- }u === t.MODE.MONO && (this.scaleFactor[1][g][0] = this.scaleFactor[0][g][0], this.scaleFactor[1][g][1] = this.scaleFactor[0][g][1], this.scaleFactor[1][g][2] = this.scaleFactor[0][g][2]);
- }for (var E = 0, C = 0; C < 3; C++) {
- for (var S = 0; S < 4; S++) {
- for (var g = 0; g < p; g++) {
- this.readSamples(0, g, C), this.readSamples(1, g, C);
- }for (var g = p; g < b; g++) {
- this.readSamples(0, g, C), this.sample[1][g][0] = this.sample[0][g][0], this.sample[1][g][1] = this.sample[0][g][1], this.sample[1][g][2] = this.sample[0][g][2];
- }for (var g = b; g < 32; g++) {
- this.sample[0][g][0] = 0, this.sample[0][g][1] = 0, this.sample[0][g][2] = 0, this.sample[1][g][0] = 0, this.sample[1][g][1] = 0, this.sample[1][g][2] = 0;
- }for (var x = 0; x < 3; x++) {
- this.VPos = this.VPos - 64 & 1023;for (var A = 0; A < 2; A++) {
- t.MatrixTransform(this.sample[A], x, this.V, this.VPos), EPlayer.Fill(this.U, 0);for (var I = 512 - (this.VPos >> 1), P = this.VPos % 128 >> 1; P < 1024;) {
- for (var R = 0; R < 32; ++R) {
- this.U[R] += this.D[I++] * this.V[P++];
- }P += 96, I += 32;
- }for (P = 1120 - P, I -= 480; P < 1024;) {
- for (var R = 0; R < 32; ++R) {
- this.U[R] += this.D[I++] * this.V[P++];
- }P += 96, I += 32;
- }for (var _ = 0 === A ? e : i, M = 0; M < 32; M++) {
- _[E + M] = this.U[M] / 2147418112;
- }
- }E += 32;
- }
- }
- }return this.sampleRate = d, f;
- }, t.prototype.readAllocation = function (e, i) {
- var s = t.QUANT_LUT_STEP_3[i][e],
- r = t.QUANT_LUT_STEP4[15 & s][this.bits.read(s >> 4)];return r ? t.QUANT_TAB[r - 1] : 0;
- }, t.prototype.readSamples = function (e, i, s) {
- var r = this.allocation[e][i],
- o = this.scaleFactor[e][i][s],
- n = this.sample[e][i],
- a = 0;if (!r) return void (n[0] = n[1] = n[2] = 0);if (63 === o) o = 0;else {
- var h = o / 3 | 0;o = t.SCALEFACTOR_BASE[o % 3] + (1 << h >> 1) >> h;
- }var d = r.levels;r.group ? (a = this.bits.read(r.bits), n[0] = a % d, a = a / d | 0, n[1] = a % d, n[2] = a / d | 0) : (n[0] = this.bits.read(r.bits), n[1] = this.bits.read(r.bits), n[2] = this.bits.read(r.bits));var c = 65536 / (d + 1) | 0;d = (d + 1 >> 1) - 1, a = (d - n[0]) * c, n[0] = a * (o >> 12) + (a * (4095 & o) + 2048 >> 12) >> 12, a = (d - n[1]) * c, n[1] = a * (o >> 12) + (a * (4095 & o) + 2048 >> 12) >> 12, a = (d - n[2]) * c, n[2] = a * (o >> 12) + (a * (4095 & o) + 2048 >> 12) >> 12;
- }, t.MatrixTransform = function (t, e, i, s) {
- var r, o, n, a, h, d, c, u, p, l, f, m, b, T, y, g, v, A, w, E, C, S, x, I, P, R, _, M, k, D, N, F, L;r = t[0][e] + t[31][e], o = .500602998235 * (t[0][e] - t[31][e]), n = t[1][e] + t[30][e], a = .505470959898 * (t[1][e] - t[30][e]), h = t[2][e] + t[29][e], d = .515447309923 * (t[2][e] - t[29][e]), c = t[3][e] + t[28][e], u = .53104259109 * (t[3][e] - t[28][e]), p = t[4][e] + t[27][e], l = .553103896034 * (t[4][e] - t[27][e]), f = t[5][e] + t[26][e], m = .582934968206 * (t[5][e] - t[26][e]), b = t[6][e] + t[25][e], T = .622504123036 * (t[6][e] - t[25][e]), y = t[7][e] + t[24][e], g = .674808341455 * (t[7][e] - t[24][e]), v = t[8][e] + t[23][e], A = .744536271002 * (t[8][e] - t[23][e]), w = t[9][e] + t[22][e], E = .839349645416 * (t[9][e] - t[22][e]), C = t[10][e] + t[21][e], S = .972568237862 * (t[10][e] - t[21][e]), x = t[11][e] + t[20][e], I = 1.16943993343 * (t[11][e] - t[20][e]), P = t[12][e] + t[19][e], R = 1.48416461631 * (t[12][e] - t[19][e]), _ = t[13][e] + t[18][e], M = 2.05778100995 * (t[13][e] - t[18][e]), k = t[14][e] + t[17][e], D = 3.40760841847 * (t[14][e] - t[17][e]), N = t[15][e] + t[16][e], F = 10.1900081235 * (t[15][e] - t[16][e]), L = r + N, N = .502419286188 * (r - N), r = n + k, k = .52249861494 * (n - k), n = h + _, _ = .566944034816 * (h - _), h = c + P, P = .64682178336 * (c - P), c = p + x, x = .788154623451 * (p - x), p = f + C, C = 1.06067768599 * (f - C), f = b + w, w = 1.72244709824 * (b - w), b = y + v, v = 5.10114861869 * (y - v), y = L + b, b = .509795579104 * (L - b), L = r + f, r = .601344886935 * (r - f), f = n + p, p = .899976223136 * (n - p), n = h + c, c = 2.56291544774 * (h - c), h = y + n, y = .541196100146 * (y - n), n = L + f, f = 1.30656296488 * (L - f), L = h + n, h = .707106781187 * (h - n), n = y + f, y = .707106781187 * (y - f), n += y, f = b + c, b = .541196100146 * (b - c), c = r + p, p = 1.30656296488 * (r - p), r = f + c, c = .707106781187 * (f - c), f = b + p, b = .707106781187 * (b - p), f += b, r += f, f += c, c += b, p = N + v, N = .509795579104 * (N - v), v = k + w, k = .601344886935 * (k - w), w = _ + C, C = .899976223136 * (_ - C), _ = P + x, x = 2.56291544774 * (P - x), P = p + _, p = .541196100146 * (p - _), _ = v + w, w = 1.30656296488 * (v - w), v = P + _, _ = .707106781187 * (P - _), P = p + w, w = .707106781187 * (p - w), P += w, p = N + x, N = .541196100146 * (N - x), x = k + C, C = 1.30656296488 * (k - C), k = p + x, x = .707106781187 * (p - x), p = N + C, N = .707106781187 * (N - C), p += N, k += p, p += x, x += N, v += k, k += P, P += p, p += _, _ += x, x += w, w += N, C = o + F, o = .502419286188 * (o - F), F = a + D, a = .52249861494 * (a - D), D = d + M, M = .566944034816 * (d - M), d = u + R, u = .64682178336 * (u - R), R = l + I, l = .788154623451 * (l - I), I = m + S, S = 1.06067768599 * (m - S), m = T + E, E = 1.72244709824 * (T - E), T = g + A, g = 5.10114861869 * (g - A), A = C + T, T = .509795579104 * (C - T), C = F + m, F = .601344886935 * (F - m), m = D + I, I = .899976223136 * (D - I), D = d + R, R = 2.56291544774 * (d - R), d = A + D, A = .541196100146 * (A - D), D = C + m, m = 1.30656296488 * (C - m), C = d + D, D = .707106781187 * (d - D), d = A + m, m = .707106781187 * (A - m), d += m, A = T + R, R = .541196100146 * (T - R), T = F + I, I = 1.30656296488 * (F - I), F = A + T, T = .707106781187 * (A - T), A = R + I, I = .707106781187 * (R - I), A += I, F += A, A += T, R = T + I, T = o + g, o = .509795579104 * (o - g), g = a + E, a = .601344886935 * (a - E), E = M + S, S = .899976223136 * (M - S), M = u + l, l = 2.56291544774 * (u - l), u = T + M, T = .541196100146 * (T - M), M = g + E, E = 1.30656296488 * (g - E), g = u + M, M = .707106781187 * (u - M), u = T + E, E = .707106781187 * (T - E), u += E, T = o + l, o = .541196100146 * (o - l), l = a + S, S = 1.30656296488 * (a - S), a = T + l, l = .707106781187 * (T - l), T = o + S, o = .707106781187 * (o - S), T += o, a += T, T += l, l += o, g += a, a += u, u += T, T += M, M += l, l += E, E += o, C += g, g += F, F += a, a += d, d += u, u += A;A += T, T += D, D += M, M += R, R += l, l += m, m += E, E += I, I += o, i[s + 48] = -L, i[s + 49] = i[s + 47] = -C, i[s + 50] = i[s + 46] = -v, i[s + 51] = i[s + 45] = -g, i[s + 52] = i[s + 44] = -r, i[s + 53] = i[s + 43] = -F, i[s + 54] = i[s + 42] = -k, i[s + 55] = i[s + 41] = -a, i[s + 56] = i[s + 40] = -n, i[s + 57] = i[s + 39] = -d, i[s + 58] = i[s + 38] = -P, i[s + 59] = i[s + 37] = -u, i[s + 60] = i[s + 36] = -f, i[s + 61] = i[s + 35] = -A, i[s + 62] = i[s + 34] = -p, i[s + 63] = i[s + 33] = -T, i[s + 32] = -h, i[s + 0] = h, i[s + 31] = -D, i[s + 1] = D, i[s + 30] = -_, i[s + 2] = _, i[s + 29] = -M, i[s + 3] = M, i[s + 28] = -c, i[s + 4] = c, i[s + 27] = -R, i[s + 5] = R, i[s + 26] = -x, i[s + 6] = x, i[s + 25] = -l, i[s + 7] = l, i[s + 24] = -y, i[s + 8] = y, i[s + 23] = -m, i[s + 9] = m, i[s + 22] = -w, i[s + 10] = w, i[s + 21] = -E, i[s + 11] = E, i[s + 20] = -b, i[s + 12] = b, i[s + 19] = -I, i[s + 13] = I, i[s + 18] = -N, i[s + 14] = N, i[s + 17] = -o, i[s + 15] = o, i[s + 16] = 0;
- }, t.FRAME_SYNC = 2047, t.VERSION = { MPEG_2_5: 0, MPEG_2: 2, MPEG_1: 3 }, t.LAYER = { III: 1, II: 2, I: 3 }, t.MODE = { STEREO: 0, JOINT_STEREO: 1, DUAL_CHANNEL: 2, MONO: 3 }, t.SAMPLE_RATE = new Uint16Array([44100, 48e3, 32e3, 0, 22050, 24e3, 16e3, 0]), t.BIT_RATE = new Uint16Array([32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160]), t.SCALEFACTOR_BASE = new Uint32Array([33554432, 26632170, 21137968]), t.SYNTHESIS_WINDOW = new Float32Array([0, -.5, -.5, -.5, -.5, -.5, -.5, -1, -1, -1, -1, -1.5, -1.5, -2, -2, -2.5, -2.5, -3, -3.5, -3.5, -4, -4.5, -5, -5.5, -6.5, -7, -8, -8.5, -9.5, -10.5, -12, -13, -14.5, -15.5, -17.5, -19, -20.5, -22.5, -24.5, -26.5, -29, -31.5, -34, -36.5, -39.5, -42.5, -45.5, -48.5, -52, -55.5, -58.5, -62.5, -66, -69.5, -73.5, -77, -80.5, -84.5, -88, -91.5, -95, -98, -101, -104, 106.5, 109, 111, 112.5, 113.5, 114, 114, 113.5, 112, 110.5, 107.5, 104, 100, 94.5, 88.5, 81.5, 73, 63.5, 53, 41.5, 28.5, 14.5, -1, -18, -36, -55.5, -76.5, -98.5, -122, -147, -173.5, -200.5, -229.5, -259.5, -290.5, -322.5, -355.5, -389.5, -424, -459.5, -495.5, -532, -568.5, -605, -641.5, -678, -714, -749, -783.5, -817, -849, -879.5, -908.5, -935, -959.5, -981, -1000.5, -1016, -1028.5, -1037.5, -1042.5, -1043.5, -1040, -1031.5, 1018.5, 1e3, 976, 946.5, 911, 869.5, 822, 767.5, 707, 640, 565.5, 485, 397, 302.5, 201, 92.5, -22.5, -144, -272.5, -407, -547.5, -694, -846, -1003, -1165, -1331.5, -1502, -1675.5, -1852.5, -2031.5, -2212.5, -2394, -2576.5, -2758.5, -2939.5, -3118.5, -3294.5, -3467.5, -3635.5, -3798.5, -3955, -4104.5, -4245.5, -4377.5, -4499, -4609.5, -4708, -4792.5, -4863.5, -4919, -4958, -4979.5, -4983, -4967.5, -4931.5, -4875, -4796, -4694.5, -4569.5, -4420, -4246, -4046, -3820, -3567, 3287, 2979.5, 2644, 2280.5, 1888, 1467.5, 1018.5, 541, 35, -499, -1061, -1650, -2266.5, -2909, -3577, -4270, -4987.5, -5727.5, -6490, -7274, -8077.5, -8899.5, -9739, -10594.5, -11464.5, -12347, -13241, -14144.5, -15056, -15973.5, -16895.5, -17820, -18744.5, -19668, -20588, -21503, -22410.5, -23308.5, -24195, -25068.5, -25926.5, -26767, -27589, -28389, -29166.5, -29919, -30644.5, -31342, -32009.5, -32645, -33247, -33814.5, -34346, -34839.5, -35295, -35710, -36084.5, -36417.5, -36707.5, -36954, -37156.5, -37315, -37428, -37496, 37519, 37496, 37428, 37315, 37156.5, 36954, 36707.5, 36417.5, 36084.5, 35710, 35295, 34839.5, 34346, 33814.5, 33247, 32645, 32009.5, 31342, 30644.5, 29919, 29166.5, 28389, 27589, 26767, 25926.5, 25068.5, 24195, 23308.5, 22410.5, 21503, 20588, 19668, 18744.5, 17820, 16895.5, 15973.5, 15056, 14144.5, 13241, 12347, 11464.5, 10594.5, 9739, 8899.5, 8077.5, 7274, 6490, 5727.5, 4987.5, 4270, 3577, 2909, 2266.5, 1650, 1061, 499, -35, -541, -1018.5, -1467.5, -1888, -2280.5, -2644, -2979.5, 3287, 3567, 3820, 4046, 4246, 4420, 4569.5, 4694.5, 4796, 4875, 4931.5, 4967.5, 4983, 4979.5, 4958, 4919, 4863.5, 4792.5, 4708, 4609.5, 4499, 4377.5, 4245.5, 4104.5, 3955, 3798.5, 3635.5, 3467.5, 3294.5, 3118.5, 2939.5, 2758.5, 2576.5, 2394, 2212.5, 2031.5, 1852.5, 1675.5, 1502, 1331.5, 1165, 1003, 846, 694, 547.5, 407, 272.5, 144, 22.5, -92.5, -201, -302.5, -397, -485, -565.5, -640, -707, -767.5, -822, -869.5, -911, -946.5, -976, -1e3, 1018.5, 1031.5, 1040, 1043.5, 1042.5, 1037.5, 1028.5, 1016, 1000.5, 981, 959.5, 935, 908.5, 879.5, 849, 817, 783.5, 749, 714, 678, 641.5, 605, 568.5, 532, 495.5, 459.5, 424, 389.5, 355.5, 322.5, 290.5, 259.5, 229.5, 200.5, 173.5, 147, 122, 98.5, 76.5, 55.5, 36, 18, 1, -14.5, -28.5, -41.5, -53, -63.5, -73, -81.5, -88.5, -94.5, -100, -104, -107.5, -110.5, -112, -113.5, -114, -114, -113.5, -112.5, -111, -109, 106.5, 104, 101, 98, 95, 91.5, 88, 84.5, 80.5, 77, 73.5, 69.5, 66, 62.5, 58.5, 55.5, 52, 48.5, 45.5, 42.5, 39.5, 36.5, 34, 31.5, 29, 26.5, 24.5, 22.5, 20.5, 19, 17.5, 15.5, 14.5, 13, 12, 10.5, 9.5, 8.5, 8, 7, 6.5, 5.5, 5, 4.5, 4, 3.5, 3.5, 3, 2.5, 2.5, 2, 2, 1.5, 1.5, 1, 1, 1, 1, .5, .5, .5, .5, .5, .5]), t.QUANT_LUT_STEP_1 = [[0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2], [0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2]], t.QUANT_TAB = { A: 91, B: 94, C: 8, D: 12 }, t.QUANT_LUT_STEP_2 = [[t.QUANT_TAB.C, t.QUANT_TAB.C, t.QUANT_TAB.D], [t.QUANT_TAB.A, t.QUANT_TAB.A, t.QUANT_TAB.A], [t.QUANT_TAB.B, t.QUANT_TAB.A, t.QUANT_TAB.B]], t.QUANT_LUT_STEP_3 = [[68, 68, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52], [67, 67, 67, 66, 66, 66, 66, 66, 66, 66, 66, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 32, 32, 32, 32, 32, 32, 32], [69, 69, 69, 69, 52, 52, 52, 52, 52, 52, 52, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36]], t.QUANT_LUT_STEP4 = [[0, 1, 2, 17], [0, 1, 2, 3, 4, 5, 6, 17], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17], [0, 1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]], t.QUANT_TAB = [{ levels: 3, group: 1, bits: 5 }, { levels: 5, group: 1, bits: 7 }, { levels: 7, group: 0, bits: 3 }, { levels: 9, group: 1, bits: 10 }, { levels: 15, group: 0, bits: 4 }, { levels: 31, group: 0, bits: 5 }, { levels: 63, group: 0, bits: 6 }, { levels: 127, group: 0, bits: 7 }, { levels: 255, group: 0, bits: 8 }, { levels: 511, group: 0, bits: 9 }, { levels: 1023, group: 0, bits: 10 }, { levels: 2047, group: 0, bits: 11 }, { levels: 4095, group: 0, bits: 12 }, { levels: 8191, group: 0, bits: 13 }, { levels: 16383, group: 0, bits: 14 }, { levels: 32767, group: 0, bits: 15 }, { levels: 65535, group: 0, bits: 16 }], t;
- }(), EPlayer.Renderer.WebGL = function () {
- "use strict";
- var t = function t(e) {
- this.canvas = e.canvas || document.createElement("canvas"), this.width = this.canvas.width, this.height = this.canvas.height, this.enabled = !0;var i = { preserveDrawingBuffer: !!e.preserveDrawingBuffer, alpha: !1, depth: !1, stencil: !1, antialias: !1 };if (this.gl = this.canvas.getContext("webgl", i) || this.canvas.getContext("experimental-webgl", i), !this.gl) throw new Error("Failed to get WebGL Context");var s = this.gl,
- r = null;this.vertexBuffer = s.createBuffer();var o = new Float32Array([0, 0, 0, 1, 1, 0, 1, 1]);s.bindBuffer(s.ARRAY_BUFFER, this.vertexBuffer), s.bufferData(s.ARRAY_BUFFER, o, s.STATIC_DRAW), this.program = this.createProgram(t.SHADER.VERTEX_IDENTITY, t.SHADER.FRAGMENT_YCRCB_TO_RGBA), r = s.getAttribLocation(this.program, "vertex"), s.enableVertexAttribArray(r), s.vertexAttribPointer(r, 2, s.FLOAT, !1, 0, 0), this.textureY = this.createTexture(0, "textureY"), this.textureCb = this.createTexture(1, "textureCb"), this.textureCr = this.createTexture(2, "textureCr"), this.loadingProgram = this.createProgram(t.SHADER.VERTEX_IDENTITY, t.SHADER.FRAGMENT_LOADING), r = s.getAttribLocation(this.loadingProgram, "vertex"), s.enableVertexAttribArray(r), s.vertexAttribPointer(r, 2, s.FLOAT, !1, 0, 0), this.shouldCreateUnclampedViews = !this.allowsClampedTextureData();
- };return t.prototype.destroy = function () {
- var t = this.gl;t.deleteTexture(this.textureY), t.deleteTexture(this.textureCb), t.deleteTexture(this.textureCr), t.deleteProgram(this.program), t.deleteProgram(this.loadingProgram), t.deleteBuffer(this.vertexBuffer);
- }, t.prototype.resize = function (t, e) {
- this.width = 0 | t, this.height = 0 | e, this.canvas.width = this.width, this.canvas.height = this.height, this.gl.useProgram(this.program), this.gl.viewport(0, 0, this.width, this.height);
- }, t.prototype.createTexture = function (t, e) {
- var i = this.gl,
- s = i.createTexture();return i.bindTexture(i.TEXTURE_2D, s), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_MAG_FILTER, i.LINEAR), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_MIN_FILTER, i.LINEAR), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_WRAP_S, i.CLAMP_TO_EDGE), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_WRAP_T, i.CLAMP_TO_EDGE), i.uniform1i(i.getUniformLocation(this.program, e), t), s;
- }, t.prototype.createProgram = function (t, e) {
- var i = this.gl,
- s = i.createProgram();return i.attachShader(s, this.compileShader(i.VERTEX_SHADER, t)), i.attachShader(s, this.compileShader(i.FRAGMENT_SHADER, e)), i.linkProgram(s), i.useProgram(s), s;
- }, t.prototype.compileShader = function (t, e) {
- var i = this.gl,
- s = i.createShader(t);if (i.shaderSource(s, e), i.compileShader(s), !i.getShaderParameter(s, i.COMPILE_STATUS)) throw new Error(i.getShaderInfoLog(s));return s;
- }, t.prototype.allowsClampedTextureData = function () {
- var t = this.gl,
- e = t.createTexture();return t.bindTexture(t.TEXTURE_2D, e), t.texImage2D(t.TEXTURE_2D, 0, t.LUMINANCE, 1, 1, 0, t.LUMINANCE, t.UNSIGNED_BYTE, new Uint8ClampedArray([0])), 0 === t.getError();
- }, t.prototype.renderProgress = function (t) {
- var e = this.gl;e.useProgram(this.loadingProgram);var i = e.getUniformLocation(this.loadingProgram, "progress");e.uniform1f(i, t), e.drawArrays(e.TRIANGLE_STRIP, 0, 4);
- }, t.prototype.render = function (t, e, i) {
- if (this.enabled) {
- var s = this.gl,
- r = this.width + 15 >> 4 << 4,
- o = this.height,
- n = r >> 1,
- a = o >> 1;this.shouldCreateUnclampedViews && (t = new Uint8Array(t.buffer), e = new Uint8Array(e.buffer), i = new Uint8Array(i.buffer)), s.useProgram(this.program), this.updateTexture(s.TEXTURE0, this.textureY, r, o, t), this.updateTexture(s.TEXTURE1, this.textureCb, n, a, e), this.updateTexture(s.TEXTURE2, this.textureCr, n, a, i), s.drawArrays(s.TRIANGLE_STRIP, 0, 4);
- }
- }, t.prototype.updateTexture = function (t, e, i, s, r) {
- var o = this.gl;o.activeTexture(t), o.bindTexture(o.TEXTURE_2D, e), o.texImage2D(o.TEXTURE_2D, 0, o.LUMINANCE, i, s, 0, o.LUMINANCE, o.UNSIGNED_BYTE, r);
- }, t.IsSupported = function () {
- try {
- if (!window.WebGLRenderingContext) return !1;var t = document.createElement("canvas");return !(!t.getContext("webgl") && !t.getContext("experimental-webgl"));
- } catch (t) {
- return !1;
- }
- }, t.SHADER = { FRAGMENT_YCRCB_TO_RGBA: ["precision mediump float;", "uniform sampler2D textureY;", "uniform sampler2D textureCb;", "uniform sampler2D textureCr;", "varying vec2 texCoord;", "mat4 rec601 = mat4(", "1.16438, 0.00000, 1.59603, -0.87079,", "1.16438, -0.39176, -0.81297, 0.52959,", "1.16438, 2.01723, 0.00000, -1.08139,", "0, 0, 0, 1", ");", "void main() {", "float y = texture2D(textureY, texCoord).r;", "float cb = texture2D(textureCb, texCoord).r;", "float cr = texture2D(textureCr, texCoord).r;", "gl_FragColor = vec4(y, cr, cb, 1.0) * rec601;", "}"].join("\n"), FRAGMENT_LOADING: ["precision mediump float;", "uniform float progress;", "varying vec2 texCoord;", "void main() {", "float c = ceil(progress-(1.0-texCoord.y));", "gl_FragColor = vec4(c,c,c,1);", "}"].join("\n"), VERTEX_IDENTITY: ["attribute vec2 vertex;", "varying vec2 texCoord;", "void main() {", "texCoord = vertex;", "gl_Position = vec4((vertex * 2.0 - 1.0) * vec2(1, -1), 0.0, 1.0);", "}"].join("\n") }, t;
- }(), EPlayer.Renderer.Canvas2D = function () {
- "use strict";
- var t = function t(_t8) {
- this.canvas = _t8.canvas || document.createElement("canvas"), this.width = this.canvas.width, this.height = this.canvas.height, this.enabled = !0, this.context = this.canvas.getContext("2d");
- };return t.prototype.destroy = function () {}, t.prototype.resize = function (t, e) {
- this.width = 0 | t, this.height = 0 | e, this.canvas.width = this.width, this.canvas.height = this.height, this.imageData = this.context.getImageData(0, 0, this.width, this.height), EPlayer.Fill(this.imageData.data, 255);
- }, t.prototype.renderProgress = function (t) {
- var e = this.canvas.width,
- i = this.canvas.height,
- s = this.context;s.fillStyle = "#222", s.fillRect(0, 0, e, i), s.fillStyle = "#fff", s.fillRect(0, i - i * t, e, i * t);
- }, t.prototype.render = function (t, e, i) {
- this.YCbCrToRGBA(t, e, i, this.imageData.data), this.context.putImageData(this.imageData, 0, 0);
- }, t.prototype.YCbCrToRGBA = function (t, e, i, s) {
- if (this.enabled) for (var r, o, n, a, h, d = this.width + 15 >> 4 << 4, c = d >> 1, u = 0, p = d, l = d + (d - this.width), f = 0, m = c - (this.width >> 1), b = 0, T = 4 * this.width, y = 4 * this.width, g = this.width >> 1, v = this.height >> 1, A = 0; A < v; A++) {
- for (var w = 0; w < g; w++) {
- r = e[f], o = i[f], f++, n = r + (103 * r >> 8) - 179, a = (88 * o >> 8) - 44 + (183 * r >> 8) - 91, h = o + (198 * o >> 8) - 227;var E = t[u++],
- C = t[u++];s[b] = E + n, s[b + 1] = E - a, s[b + 2] = E + h, s[b + 4] = C + n, s[b + 5] = C - a, s[b + 6] = C + h, b += 8;var S = t[p++],
- x = t[p++];s[T] = S + n, s[T + 1] = S - a, s[T + 2] = S + h, s[T + 4] = x + n, s[T + 5] = x - a, s[T + 6] = x + h, T += 8;
- }u += l, p += l, b += y, T += y, f += m;
- }
- }, t;
- }(), EPlayer.AudioOutput.WebAudio = function () {
- "use strict";
- var t = function t(e) {
- this.context = t.CachedContext = t.CachedContext || new (window.AudioContext || window.webkitAudioContext)(), this.gain = this.context.createGain(), this.destination = this.gain, this.gain.connect(this.context.destination), this.context._connections = (this.context._connections || 0) + 1, this.startTime = 0, this.buffer = null, this.wallclockStartTime = 0, this.volume = 1, this.enabled = !0, this.unlocked = !t.NeedsUnlocking(), Object.defineProperty(this, "enqueuedTime", { get: this.getEnqueuedTime });
- };return t.prototype.destroy = function () {
- this.gain.disconnect(), 0 === --this.context._connections && (this.context.close(), t.CachedContext = null);
- }, t.prototype.play = function (t, e, i) {
- if (this.enabled) {
- if (!this.unlocked) {
- var s = EPlayer.Now();return this.wallclockStartTime < s && (this.wallclockStartTime = s), void (this.wallclockStartTime += e.length / t);
- }this.gain.gain.value = this.volume;var r = this.context.createBuffer(2, e.length, t);r.getChannelData(0).set(e), r.getChannelData(1).set(i);var o = this.context.createBufferSource();o.buffer = r, o.connect(this.destination);var n = this.context.currentTime,
- a = r.duration;this.startTime < n && (this.startTime = n, this.wallclockStartTime = EPlayer.Now()), o.start(this.startTime), this.startTime += a, this.wallclockStartTime += a;
- }
- }, t.prototype.stop = function () {
- this.gain.gain.value = 0;
- }, t.prototype.getEnqueuedTime = function () {
- return Math.max(this.wallclockStartTime - EPlayer.Now(), 0);
- }, t.prototype.resetEnqueuedTime = function () {
- this.startTime = this.context.currentTime, this.wallclockStartTime = EPlayer.Now();
- }, t.prototype.unlock = function (t) {
- if (this.unlocked) return void (t && t());this.unlockCallback = t;var e = this.context.createBuffer(1, 1, 22050),
- i = this.context.createBufferSource();i.buffer = e, i.connect(this.destination), i.start(0), setTimeout(this.checkIfUnlocked.bind(this, i, 0), 0);
- }, t.prototype.checkIfUnlocked = function (t, e) {
- t.playbackState === t.PLAYING_STATE || t.playbackState === t.FINISHED_STATE ? (this.unlocked = !0, this.unlockCallback && (this.unlockCallback(), this.unlockCallback = null)) : e < 10 && setTimeout(this.checkIfUnlocked.bind(this, t, e + 1), 100);
- }, t.NeedsUnlocking = function () {
- return (/iPhone|iPad|iPod/i.test(navigator.userAgent)
- );
- }, t.IsSupported = function () {
- return window.AudioContext || window.webkitAudioContext;
- }, t.CachedContext = null, t;
- }();
- /*** EXPORTS FROM exports-loader ***/
- module.exports = EPlayer;
- /***/ }),
- /***/ "wrMp":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var utils = __webpack_require__("TkWM");
- var BN = __webpack_require__("geuY");
- var inherits = __webpack_require__("LC74");
- var Base = __webpack_require__("B6Bn");
- var assert = utils.assert;
- function ShortCurve(conf) {
- Base.call(this, 'short', conf);
- this.a = new BN(conf.a, 16).toRed(this.red);
- this.b = new BN(conf.b, 16).toRed(this.red);
- this.tinv = this.two.redInvm();
- this.zeroA = this.a.fromRed().cmpn(0) === 0;
- this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;
- // If the curve is endomorphic, precalculate beta and lambda
- this.endo = this._getEndomorphism(conf);
- this._endoWnafT1 = new Array(4);
- this._endoWnafT2 = new Array(4);
- }
- inherits(ShortCurve, Base);
- module.exports = ShortCurve;
- ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
- // No efficient endomorphism
- if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)
- return;
- // Compute beta and lambda, that lambda * P = (beta * Px; Py)
- var beta;
- var lambda;
- if (conf.beta) {
- beta = new BN(conf.beta, 16).toRed(this.red);
- } else {
- var betas = this._getEndoRoots(this.p);
- // Choose the smallest beta
- beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];
- beta = beta.toRed(this.red);
- }
- if (conf.lambda) {
- lambda = new BN(conf.lambda, 16);
- } else {
- // Choose the lambda that is matching selected beta
- var lambdas = this._getEndoRoots(this.n);
- if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {
- lambda = lambdas[0];
- } else {
- lambda = lambdas[1];
- assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);
- }
- }
- // Get basis vectors, used for balanced length-two representation
- var basis;
- if (conf.basis) {
- basis = conf.basis.map(function(vec) {
- return {
- a: new BN(vec.a, 16),
- b: new BN(vec.b, 16),
- };
- });
- } else {
- basis = this._getEndoBasis(lambda);
- }
- return {
- beta: beta,
- lambda: lambda,
- basis: basis,
- };
- };
- ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
- // Find roots of for x^2 + x + 1 in F
- // Root = (-1 +- Sqrt(-3)) / 2
- //
- var red = num === this.p ? this.red : BN.mont(num);
- var tinv = new BN(2).toRed(red).redInvm();
- var ntinv = tinv.redNeg();
- var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);
- var l1 = ntinv.redAdd(s).fromRed();
- var l2 = ntinv.redSub(s).fromRed();
- return [ l1, l2 ];
- };
- ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
- // aprxSqrt >= sqrt(this.n)
- var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));
- // 3.74
- // Run EGCD, until r(L + 1) < aprxSqrt
- var u = lambda;
- var v = this.n.clone();
- var x1 = new BN(1);
- var y1 = new BN(0);
- var x2 = new BN(0);
- var y2 = new BN(1);
- // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)
- var a0;
- var b0;
- // First vector
- var a1;
- var b1;
- // Second vector
- var a2;
- var b2;
- var prevR;
- var i = 0;
- var r;
- var x;
- while (u.cmpn(0) !== 0) {
- var q = v.div(u);
- r = v.sub(q.mul(u));
- x = x2.sub(q.mul(x1));
- var y = y2.sub(q.mul(y1));
- if (!a1 && r.cmp(aprxSqrt) < 0) {
- a0 = prevR.neg();
- b0 = x1;
- a1 = r.neg();
- b1 = x;
- } else if (a1 && ++i === 2) {
- break;
- }
- prevR = r;
- v = u;
- u = r;
- x2 = x1;
- x1 = x;
- y2 = y1;
- y1 = y;
- }
- a2 = r.neg();
- b2 = x;
- var len1 = a1.sqr().add(b1.sqr());
- var len2 = a2.sqr().add(b2.sqr());
- if (len2.cmp(len1) >= 0) {
- a2 = a0;
- b2 = b0;
- }
- // Normalize signs
- if (a1.negative) {
- a1 = a1.neg();
- b1 = b1.neg();
- }
- if (a2.negative) {
- a2 = a2.neg();
- b2 = b2.neg();
- }
- return [
- { a: a1, b: b1 },
- { a: a2, b: b2 },
- ];
- };
- ShortCurve.prototype._endoSplit = function _endoSplit(k) {
- var basis = this.endo.basis;
- var v1 = basis[0];
- var v2 = basis[1];
- var c1 = v2.b.mul(k).divRound(this.n);
- var c2 = v1.b.neg().mul(k).divRound(this.n);
- var p1 = c1.mul(v1.a);
- var p2 = c2.mul(v2.a);
- var q1 = c1.mul(v1.b);
- var q2 = c2.mul(v2.b);
- // Calculate answer
- var k1 = k.sub(p1).sub(p2);
- var k2 = q1.add(q2).neg();
- return { k1: k1, k2: k2 };
- };
- ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
- x = new BN(x, 16);
- if (!x.red)
- x = x.toRed(this.red);
- var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
- var y = y2.redSqrt();
- if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)
- throw new Error('invalid point');
- // XXX Is there any way to tell if the number is odd without converting it
- // to non-red form?
- var isOdd = y.fromRed().isOdd();
- if (odd && !isOdd || !odd && isOdd)
- y = y.redNeg();
- return this.point(x, y);
- };
- ShortCurve.prototype.validate = function validate(point) {
- if (point.inf)
- return true;
- var x = point.x;
- var y = point.y;
- var ax = this.a.redMul(x);
- var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
- return y.redSqr().redISub(rhs).cmpn(0) === 0;
- };
- ShortCurve.prototype._endoWnafMulAdd =
- function _endoWnafMulAdd(points, coeffs, jacobianResult) {
- var npoints = this._endoWnafT1;
- var ncoeffs = this._endoWnafT2;
- for (var i = 0; i < points.length; i++) {
- var split = this._endoSplit(coeffs[i]);
- var p = points[i];
- var beta = p._getBeta();
- if (split.k1.negative) {
- split.k1.ineg();
- p = p.neg(true);
- }
- if (split.k2.negative) {
- split.k2.ineg();
- beta = beta.neg(true);
- }
- npoints[i * 2] = p;
- npoints[i * 2 + 1] = beta;
- ncoeffs[i * 2] = split.k1;
- ncoeffs[i * 2 + 1] = split.k2;
- }
- var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);
- // Clean-up references to points and coefficients
- for (var j = 0; j < i * 2; j++) {
- npoints[j] = null;
- ncoeffs[j] = null;
- }
- return res;
- };
- function Point(curve, x, y, isRed) {
- Base.BasePoint.call(this, curve, 'affine');
- if (x === null && y === null) {
- this.x = null;
- this.y = null;
- this.inf = true;
- } else {
- this.x = new BN(x, 16);
- this.y = new BN(y, 16);
- // Force redgomery representation when loading from JSON
- if (isRed) {
- this.x.forceRed(this.curve.red);
- this.y.forceRed(this.curve.red);
- }
- if (!this.x.red)
- this.x = this.x.toRed(this.curve.red);
- if (!this.y.red)
- this.y = this.y.toRed(this.curve.red);
- this.inf = false;
- }
- }
- inherits(Point, Base.BasePoint);
- ShortCurve.prototype.point = function point(x, y, isRed) {
- return new Point(this, x, y, isRed);
- };
- ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
- return Point.fromJSON(this, obj, red);
- };
- Point.prototype._getBeta = function _getBeta() {
- if (!this.curve.endo)
- return;
- var pre = this.precomputed;
- if (pre && pre.beta)
- return pre.beta;
- var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
- if (pre) {
- var curve = this.curve;
- var endoMul = function(p) {
- return curve.point(p.x.redMul(curve.endo.beta), p.y);
- };
- pre.beta = beta;
- beta.precomputed = {
- beta: null,
- naf: pre.naf && {
- wnd: pre.naf.wnd,
- points: pre.naf.points.map(endoMul),
- },
- doubles: pre.doubles && {
- step: pre.doubles.step,
- points: pre.doubles.points.map(endoMul),
- },
- };
- }
- return beta;
- };
- Point.prototype.toJSON = function toJSON() {
- if (!this.precomputed)
- return [ this.x, this.y ];
- return [ this.x, this.y, this.precomputed && {
- doubles: this.precomputed.doubles && {
- step: this.precomputed.doubles.step,
- points: this.precomputed.doubles.points.slice(1),
- },
- naf: this.precomputed.naf && {
- wnd: this.precomputed.naf.wnd,
- points: this.precomputed.naf.points.slice(1),
- },
- } ];
- };
- Point.fromJSON = function fromJSON(curve, obj, red) {
- if (typeof obj === 'string')
- obj = JSON.parse(obj);
- var res = curve.point(obj[0], obj[1], red);
- if (!obj[2])
- return res;
- function obj2point(obj) {
- return curve.point(obj[0], obj[1], red);
- }
- var pre = obj[2];
- res.precomputed = {
- beta: null,
- doubles: pre.doubles && {
- step: pre.doubles.step,
- points: [ res ].concat(pre.doubles.points.map(obj2point)),
- },
- naf: pre.naf && {
- wnd: pre.naf.wnd,
- points: [ res ].concat(pre.naf.points.map(obj2point)),
- },
- };
- return res;
- };
- Point.prototype.inspect = function inspect() {
- if (this.isInfinity())
- return '<EC Point Infinity>';
- return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +
- ' y: ' + this.y.fromRed().toString(16, 2) + '>';
- };
- Point.prototype.isInfinity = function isInfinity() {
- return this.inf;
- };
- Point.prototype.add = function add(p) {
- // O + P = P
- if (this.inf)
- return p;
- // P + O = P
- if (p.inf)
- return this;
- // P + P = 2P
- if (this.eq(p))
- return this.dbl();
- // P + (-P) = O
- if (this.neg().eq(p))
- return this.curve.point(null, null);
- // P + Q = O
- if (this.x.cmp(p.x) === 0)
- return this.curve.point(null, null);
- var c = this.y.redSub(p.y);
- if (c.cmpn(0) !== 0)
- c = c.redMul(this.x.redSub(p.x).redInvm());
- var nx = c.redSqr().redISub(this.x).redISub(p.x);
- var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
- return this.curve.point(nx, ny);
- };
- Point.prototype.dbl = function dbl() {
- if (this.inf)
- return this;
- // 2P = O
- var ys1 = this.y.redAdd(this.y);
- if (ys1.cmpn(0) === 0)
- return this.curve.point(null, null);
- var a = this.curve.a;
- var x2 = this.x.redSqr();
- var dyinv = ys1.redInvm();
- var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
- var nx = c.redSqr().redISub(this.x.redAdd(this.x));
- var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
- return this.curve.point(nx, ny);
- };
- Point.prototype.getX = function getX() {
- return this.x.fromRed();
- };
- Point.prototype.getY = function getY() {
- return this.y.fromRed();
- };
- Point.prototype.mul = function mul(k) {
- k = new BN(k, 16);
- if (this.isInfinity())
- return this;
- else if (this._hasDoubles(k))
- return this.curve._fixedNafMul(this, k);
- else if (this.curve.endo)
- return this.curve._endoWnafMulAdd([ this ], [ k ]);
- else
- return this.curve._wnafMul(this, k);
- };
- Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
- var points = [ this, p2 ];
- var coeffs = [ k1, k2 ];
- if (this.curve.endo)
- return this.curve._endoWnafMulAdd(points, coeffs);
- else
- return this.curve._wnafMulAdd(1, points, coeffs, 2);
- };
- Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
- var points = [ this, p2 ];
- var coeffs = [ k1, k2 ];
- if (this.curve.endo)
- return this.curve._endoWnafMulAdd(points, coeffs, true);
- else
- return this.curve._wnafMulAdd(1, points, coeffs, 2, true);
- };
- Point.prototype.eq = function eq(p) {
- return this === p ||
- this.inf === p.inf &&
- (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);
- };
- Point.prototype.neg = function neg(_precompute) {
- if (this.inf)
- return this;
- var res = this.curve.point(this.x, this.y.redNeg());
- if (_precompute && this.precomputed) {
- var pre = this.precomputed;
- var negate = function(p) {
- return p.neg();
- };
- res.precomputed = {
- naf: pre.naf && {
- wnd: pre.naf.wnd,
- points: pre.naf.points.map(negate),
- },
- doubles: pre.doubles && {
- step: pre.doubles.step,
- points: pre.doubles.points.map(negate),
- },
- };
- }
- return res;
- };
- Point.prototype.toJ = function toJ() {
- if (this.inf)
- return this.curve.jpoint(null, null, null);
- var res = this.curve.jpoint(this.x, this.y, this.curve.one);
- return res;
- };
- function JPoint(curve, x, y, z) {
- Base.BasePoint.call(this, curve, 'jacobian');
- if (x === null && y === null && z === null) {
- this.x = this.curve.one;
- this.y = this.curve.one;
- this.z = new BN(0);
- } else {
- this.x = new BN(x, 16);
- this.y = new BN(y, 16);
- this.z = new BN(z, 16);
- }
- if (!this.x.red)
- this.x = this.x.toRed(this.curve.red);
- if (!this.y.red)
- this.y = this.y.toRed(this.curve.red);
- if (!this.z.red)
- this.z = this.z.toRed(this.curve.red);
- this.zOne = this.z === this.curve.one;
- }
- inherits(JPoint, Base.BasePoint);
- ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
- return new JPoint(this, x, y, z);
- };
- JPoint.prototype.toP = function toP() {
- if (this.isInfinity())
- return this.curve.point(null, null);
- var zinv = this.z.redInvm();
- var zinv2 = zinv.redSqr();
- var ax = this.x.redMul(zinv2);
- var ay = this.y.redMul(zinv2).redMul(zinv);
- return this.curve.point(ax, ay);
- };
- JPoint.prototype.neg = function neg() {
- return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
- };
- JPoint.prototype.add = function add(p) {
- // O + P = P
- if (this.isInfinity())
- return p;
- // P + O = P
- if (p.isInfinity())
- return this;
- // 12M + 4S + 7A
- var pz2 = p.z.redSqr();
- var z2 = this.z.redSqr();
- var u1 = this.x.redMul(pz2);
- var u2 = p.x.redMul(z2);
- var s1 = this.y.redMul(pz2.redMul(p.z));
- var s2 = p.y.redMul(z2.redMul(this.z));
- var h = u1.redSub(u2);
- var r = s1.redSub(s2);
- if (h.cmpn(0) === 0) {
- if (r.cmpn(0) !== 0)
- return this.curve.jpoint(null, null, null);
- else
- return this.dbl();
- }
- var h2 = h.redSqr();
- var h3 = h2.redMul(h);
- var v = u1.redMul(h2);
- var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
- var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
- var nz = this.z.redMul(p.z).redMul(h);
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype.mixedAdd = function mixedAdd(p) {
- // O + P = P
- if (this.isInfinity())
- return p.toJ();
- // P + O = P
- if (p.isInfinity())
- return this;
- // 8M + 3S + 7A
- var z2 = this.z.redSqr();
- var u1 = this.x;
- var u2 = p.x.redMul(z2);
- var s1 = this.y;
- var s2 = p.y.redMul(z2).redMul(this.z);
- var h = u1.redSub(u2);
- var r = s1.redSub(s2);
- if (h.cmpn(0) === 0) {
- if (r.cmpn(0) !== 0)
- return this.curve.jpoint(null, null, null);
- else
- return this.dbl();
- }
- var h2 = h.redSqr();
- var h3 = h2.redMul(h);
- var v = u1.redMul(h2);
- var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
- var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
- var nz = this.z.redMul(h);
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype.dblp = function dblp(pow) {
- if (pow === 0)
- return this;
- if (this.isInfinity())
- return this;
- if (!pow)
- return this.dbl();
- var i;
- if (this.curve.zeroA || this.curve.threeA) {
- var r = this;
- for (i = 0; i < pow; i++)
- r = r.dbl();
- return r;
- }
- // 1M + 2S + 1A + N * (4S + 5M + 8A)
- // N = 1 => 6M + 6S + 9A
- var a = this.curve.a;
- var tinv = this.curve.tinv;
- var jx = this.x;
- var jy = this.y;
- var jz = this.z;
- var jz4 = jz.redSqr().redSqr();
- // Reuse results
- var jyd = jy.redAdd(jy);
- for (i = 0; i < pow; i++) {
- var jx2 = jx.redSqr();
- var jyd2 = jyd.redSqr();
- var jyd4 = jyd2.redSqr();
- var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
- var t1 = jx.redMul(jyd2);
- var nx = c.redSqr().redISub(t1.redAdd(t1));
- var t2 = t1.redISub(nx);
- var dny = c.redMul(t2);
- dny = dny.redIAdd(dny).redISub(jyd4);
- var nz = jyd.redMul(jz);
- if (i + 1 < pow)
- jz4 = jz4.redMul(jyd4);
- jx = nx;
- jz = nz;
- jyd = dny;
- }
- return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
- };
- JPoint.prototype.dbl = function dbl() {
- if (this.isInfinity())
- return this;
- if (this.curve.zeroA)
- return this._zeroDbl();
- else if (this.curve.threeA)
- return this._threeDbl();
- else
- return this._dbl();
- };
- JPoint.prototype._zeroDbl = function _zeroDbl() {
- var nx;
- var ny;
- var nz;
- // Z = 1
- if (this.zOne) {
- // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html
- // #doubling-mdbl-2007-bl
- // 1M + 5S + 14A
- // XX = X1^2
- var xx = this.x.redSqr();
- // YY = Y1^2
- var yy = this.y.redSqr();
- // YYYY = YY^2
- var yyyy = yy.redSqr();
- // S = 2 * ((X1 + YY)^2 - XX - YYYY)
- var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
- s = s.redIAdd(s);
- // M = 3 * XX + a; a = 0
- var m = xx.redAdd(xx).redIAdd(xx);
- // T = M ^ 2 - 2*S
- var t = m.redSqr().redISub(s).redISub(s);
- // 8 * YYYY
- var yyyy8 = yyyy.redIAdd(yyyy);
- yyyy8 = yyyy8.redIAdd(yyyy8);
- yyyy8 = yyyy8.redIAdd(yyyy8);
- // X3 = T
- nx = t;
- // Y3 = M * (S - T) - 8 * YYYY
- ny = m.redMul(s.redISub(t)).redISub(yyyy8);
- // Z3 = 2*Y1
- nz = this.y.redAdd(this.y);
- } else {
- // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html
- // #doubling-dbl-2009-l
- // 2M + 5S + 13A
- // A = X1^2
- var a = this.x.redSqr();
- // B = Y1^2
- var b = this.y.redSqr();
- // C = B^2
- var c = b.redSqr();
- // D = 2 * ((X1 + B)^2 - A - C)
- var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
- d = d.redIAdd(d);
- // E = 3 * A
- var e = a.redAdd(a).redIAdd(a);
- // F = E^2
- var f = e.redSqr();
- // 8 * C
- var c8 = c.redIAdd(c);
- c8 = c8.redIAdd(c8);
- c8 = c8.redIAdd(c8);
- // X3 = F - 2 * D
- nx = f.redISub(d).redISub(d);
- // Y3 = E * (D - X3) - 8 * C
- ny = e.redMul(d.redISub(nx)).redISub(c8);
- // Z3 = 2 * Y1 * Z1
- nz = this.y.redMul(this.z);
- nz = nz.redIAdd(nz);
- }
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype._threeDbl = function _threeDbl() {
- var nx;
- var ny;
- var nz;
- // Z = 1
- if (this.zOne) {
- // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html
- // #doubling-mdbl-2007-bl
- // 1M + 5S + 15A
- // XX = X1^2
- var xx = this.x.redSqr();
- // YY = Y1^2
- var yy = this.y.redSqr();
- // YYYY = YY^2
- var yyyy = yy.redSqr();
- // S = 2 * ((X1 + YY)^2 - XX - YYYY)
- var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
- s = s.redIAdd(s);
- // M = 3 * XX + a
- var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
- // T = M^2 - 2 * S
- var t = m.redSqr().redISub(s).redISub(s);
- // X3 = T
- nx = t;
- // Y3 = M * (S - T) - 8 * YYYY
- var yyyy8 = yyyy.redIAdd(yyyy);
- yyyy8 = yyyy8.redIAdd(yyyy8);
- yyyy8 = yyyy8.redIAdd(yyyy8);
- ny = m.redMul(s.redISub(t)).redISub(yyyy8);
- // Z3 = 2 * Y1
- nz = this.y.redAdd(this.y);
- } else {
- // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b
- // 3M + 5S
- // delta = Z1^2
- var delta = this.z.redSqr();
- // gamma = Y1^2
- var gamma = this.y.redSqr();
- // beta = X1 * gamma
- var beta = this.x.redMul(gamma);
- // alpha = 3 * (X1 - delta) * (X1 + delta)
- var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
- alpha = alpha.redAdd(alpha).redIAdd(alpha);
- // X3 = alpha^2 - 8 * beta
- var beta4 = beta.redIAdd(beta);
- beta4 = beta4.redIAdd(beta4);
- var beta8 = beta4.redAdd(beta4);
- nx = alpha.redSqr().redISub(beta8);
- // Z3 = (Y1 + Z1)^2 - gamma - delta
- nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
- // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2
- var ggamma8 = gamma.redSqr();
- ggamma8 = ggamma8.redIAdd(ggamma8);
- ggamma8 = ggamma8.redIAdd(ggamma8);
- ggamma8 = ggamma8.redIAdd(ggamma8);
- ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
- }
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype._dbl = function _dbl() {
- var a = this.curve.a;
- // 4M + 6S + 10A
- var jx = this.x;
- var jy = this.y;
- var jz = this.z;
- var jz4 = jz.redSqr().redSqr();
- var jx2 = jx.redSqr();
- var jy2 = jy.redSqr();
- var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
- var jxd4 = jx.redAdd(jx);
- jxd4 = jxd4.redIAdd(jxd4);
- var t1 = jxd4.redMul(jy2);
- var nx = c.redSqr().redISub(t1.redAdd(t1));
- var t2 = t1.redISub(nx);
- var jyd8 = jy2.redSqr();
- jyd8 = jyd8.redIAdd(jyd8);
- jyd8 = jyd8.redIAdd(jyd8);
- jyd8 = jyd8.redIAdd(jyd8);
- var ny = c.redMul(t2).redISub(jyd8);
- var nz = jy.redAdd(jy).redMul(jz);
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype.trpl = function trpl() {
- if (!this.curve.zeroA)
- return this.dbl().add(this);
- // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl
- // 5M + 10S + ...
- // XX = X1^2
- var xx = this.x.redSqr();
- // YY = Y1^2
- var yy = this.y.redSqr();
- // ZZ = Z1^2
- var zz = this.z.redSqr();
- // YYYY = YY^2
- var yyyy = yy.redSqr();
- // M = 3 * XX + a * ZZ2; a = 0
- var m = xx.redAdd(xx).redIAdd(xx);
- // MM = M^2
- var mm = m.redSqr();
- // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM
- var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
- e = e.redIAdd(e);
- e = e.redAdd(e).redIAdd(e);
- e = e.redISub(mm);
- // EE = E^2
- var ee = e.redSqr();
- // T = 16*YYYY
- var t = yyyy.redIAdd(yyyy);
- t = t.redIAdd(t);
- t = t.redIAdd(t);
- t = t.redIAdd(t);
- // U = (M + E)^2 - MM - EE - T
- var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
- // X3 = 4 * (X1 * EE - 4 * YY * U)
- var yyu4 = yy.redMul(u);
- yyu4 = yyu4.redIAdd(yyu4);
- yyu4 = yyu4.redIAdd(yyu4);
- var nx = this.x.redMul(ee).redISub(yyu4);
- nx = nx.redIAdd(nx);
- nx = nx.redIAdd(nx);
- // Y3 = 8 * Y1 * (U * (T - U) - E * EE)
- var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
- ny = ny.redIAdd(ny);
- ny = ny.redIAdd(ny);
- ny = ny.redIAdd(ny);
- // Z3 = (Z1 + E)^2 - ZZ - EE
- var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype.mul = function mul(k, kbase) {
- k = new BN(k, kbase);
- return this.curve._wnafMul(this, k);
- };
- JPoint.prototype.eq = function eq(p) {
- if (p.type === 'affine')
- return this.eq(p.toJ());
- if (this === p)
- return true;
- // x1 * z2^2 == x2 * z1^2
- var z2 = this.z.redSqr();
- var pz2 = p.z.redSqr();
- if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)
- return false;
- // y1 * z2^3 == y2 * z1^3
- var z3 = z2.redMul(this.z);
- var pz3 = pz2.redMul(p.z);
- return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;
- };
- JPoint.prototype.eqXToP = function eqXToP(x) {
- var zs = this.z.redSqr();
- var rx = x.toRed(this.curve.red).redMul(zs);
- if (this.x.cmp(rx) === 0)
- return true;
- var xc = x.clone();
- var t = this.curve.redN.redMul(zs);
- for (;;) {
- xc.iadd(this.curve.n);
- if (xc.cmp(this.curve.p) >= 0)
- return false;
- rx.redIAdd(t);
- if (this.x.cmp(rx) === 0)
- return true;
- }
- };
- JPoint.prototype.inspect = function inspect() {
- if (this.isInfinity())
- return '<EC JPoint Infinity>';
- return '<EC JPoint x: ' + this.x.toString(16, 2) +
- ' y: ' + this.y.toString(16, 2) +
- ' z: ' + this.z.toString(16, 2) + '>';
- };
- JPoint.prototype.isInfinity = function isInfinity() {
- // XXX This code assumes that zero is always zero in red
- return this.z.cmpn(0) === 0;
- };
- /***/ }),
- /***/ "wuSB":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {
- 'use strict';
- // Utils
- function assert (val, msg) {
- if (!val) throw new Error(msg || 'Assertion failed');
- }
- // Could use `inherits` module, but don't want to move from single file
- // architecture yet.
- function inherits (ctor, superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- TempCtor.prototype = superCtor.prototype;
- ctor.prototype = new TempCtor();
- ctor.prototype.constructor = ctor;
- }
- // BN
- function BN (number, base, endian) {
- if (BN.isBN(number)) {
- return number;
- }
- this.negative = 0;
- this.words = null;
- this.length = 0;
- // Reduction context
- this.red = null;
- if (number !== null) {
- if (base === 'le' || base === 'be') {
- endian = base;
- base = 10;
- }
- this._init(number || 0, base || 10, endian || 'be');
- }
- }
- if (typeof module === 'object') {
- module.exports = BN;
- } else {
- exports.BN = BN;
- }
- BN.BN = BN;
- BN.wordSize = 26;
- var Buffer;
- try {
- if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {
- Buffer = window.Buffer;
- } else {
- Buffer = __webpack_require__(10).Buffer;
- }
- } catch (e) {
- }
- BN.isBN = function isBN (num) {
- if (num instanceof BN) {
- return true;
- }
- return num !== null && typeof num === 'object' &&
- num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
- };
- BN.max = function max (left, right) {
- if (left.cmp(right) > 0) return left;
- return right;
- };
- BN.min = function min (left, right) {
- if (left.cmp(right) < 0) return left;
- return right;
- };
- BN.prototype._init = function init (number, base, endian) {
- if (typeof number === 'number') {
- return this._initNumber(number, base, endian);
- }
- if (typeof number === 'object') {
- return this._initArray(number, base, endian);
- }
- if (base === 'hex') {
- base = 16;
- }
- assert(base === (base | 0) && base >= 2 && base <= 36);
- number = number.toString().replace(/\s+/g, '');
- var start = 0;
- if (number[0] === '-') {
- start++;
- this.negative = 1;
- }
- if (start < number.length) {
- if (base === 16) {
- this._parseHex(number, start, endian);
- } else {
- this._parseBase(number, base, start);
- if (endian === 'le') {
- this._initArray(this.toArray(), base, endian);
- }
- }
- }
- };
- BN.prototype._initNumber = function _initNumber (number, base, endian) {
- if (number < 0) {
- this.negative = 1;
- number = -number;
- }
- if (number < 0x4000000) {
- this.words = [number & 0x3ffffff];
- this.length = 1;
- } else if (number < 0x10000000000000) {
- this.words = [
- number & 0x3ffffff,
- (number / 0x4000000) & 0x3ffffff
- ];
- this.length = 2;
- } else {
- assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)
- this.words = [
- number & 0x3ffffff,
- (number / 0x4000000) & 0x3ffffff,
- 1
- ];
- this.length = 3;
- }
- if (endian !== 'le') return;
- // Reverse the bytes
- this._initArray(this.toArray(), base, endian);
- };
- BN.prototype._initArray = function _initArray (number, base, endian) {
- // Perhaps a Uint8Array
- assert(typeof number.length === 'number');
- if (number.length <= 0) {
- this.words = [0];
- this.length = 1;
- return this;
- }
- this.length = Math.ceil(number.length / 3);
- this.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) {
- this.words[i] = 0;
- }
- var j, w;
- var off = 0;
- if (endian === 'be') {
- for (i = number.length - 1, j = 0; i >= 0; i -= 3) {
- w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);
- this.words[j] |= (w << off) & 0x3ffffff;
- this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;
- off += 24;
- if (off >= 26) {
- off -= 26;
- j++;
- }
- }
- } else if (endian === 'le') {
- for (i = 0, j = 0; i < number.length; i += 3) {
- w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);
- this.words[j] |= (w << off) & 0x3ffffff;
- this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;
- off += 24;
- if (off >= 26) {
- off -= 26;
- j++;
- }
- }
- }
- return this._strip();
- };
- function parseHex4Bits (string, index) {
- var c = string.charCodeAt(index);
- // '0' - '9'
- if (c >= 48 && c <= 57) {
- return c - 48;
- // 'A' - 'F'
- } else if (c >= 65 && c <= 70) {
- return c - 55;
- // 'a' - 'f'
- } else if (c >= 97 && c <= 102) {
- return c - 87;
- } else {
- assert(false, 'Invalid character in ' + string);
- }
- }
- function parseHexByte (string, lowerBound, index) {
- var r = parseHex4Bits(string, index);
- if (index - 1 >= lowerBound) {
- r |= parseHex4Bits(string, index - 1) << 4;
- }
- return r;
- }
- BN.prototype._parseHex = function _parseHex (number, start, endian) {
- // Create possibly bigger array to ensure that it fits the number
- this.length = Math.ceil((number.length - start) / 6);
- this.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) {
- this.words[i] = 0;
- }
- // 24-bits chunks
- var off = 0;
- var j = 0;
- var w;
- if (endian === 'be') {
- for (i = number.length - 1; i >= start; i -= 2) {
- w = parseHexByte(number, start, i) << off;
- this.words[j] |= w & 0x3ffffff;
- if (off >= 18) {
- off -= 18;
- j += 1;
- this.words[j] |= w >>> 26;
- } else {
- off += 8;
- }
- }
- } else {
- var parseLength = number.length - start;
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {
- w = parseHexByte(number, start, i) << off;
- this.words[j] |= w & 0x3ffffff;
- if (off >= 18) {
- off -= 18;
- j += 1;
- this.words[j] |= w >>> 26;
- } else {
- off += 8;
- }
- }
- }
- this._strip();
- };
- function parseBase (str, start, end, mul) {
- var r = 0;
- var b = 0;
- var len = Math.min(str.length, end);
- for (var i = start; i < len; i++) {
- var c = str.charCodeAt(i) - 48;
- r *= mul;
- // 'a'
- if (c >= 49) {
- b = c - 49 + 0xa;
- // 'A'
- } else if (c >= 17) {
- b = c - 17 + 0xa;
- // '0' - '9'
- } else {
- b = c;
- }
- assert(c >= 0 && b < mul, 'Invalid character');
- r += b;
- }
- return r;
- }
- BN.prototype._parseBase = function _parseBase (number, base, start) {
- // Initialize as zero
- this.words = [0];
- this.length = 1;
- // Find length of limb in base
- for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {
- limbLen++;
- }
- limbLen--;
- limbPow = (limbPow / base) | 0;
- var total = number.length - start;
- var mod = total % limbLen;
- var end = Math.min(total, total - mod) + start;
- var word = 0;
- for (var i = start; i < end; i += limbLen) {
- word = parseBase(number, i, i + limbLen, base);
- this.imuln(limbPow);
- if (this.words[0] + word < 0x4000000) {
- this.words[0] += word;
- } else {
- this._iaddn(word);
- }
- }
- if (mod !== 0) {
- var pow = 1;
- word = parseBase(number, i, number.length, base);
- for (i = 0; i < mod; i++) {
- pow *= base;
- }
- this.imuln(pow);
- if (this.words[0] + word < 0x4000000) {
- this.words[0] += word;
- } else {
- this._iaddn(word);
- }
- }
- this._strip();
- };
- BN.prototype.copy = function copy (dest) {
- dest.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) {
- dest.words[i] = this.words[i];
- }
- dest.length = this.length;
- dest.negative = this.negative;
- dest.red = this.red;
- };
- function move (dest, src) {
- dest.words = src.words;
- dest.length = src.length;
- dest.negative = src.negative;
- dest.red = src.red;
- }
- BN.prototype._move = function _move (dest) {
- move(dest, this);
- };
- BN.prototype.clone = function clone () {
- var r = new BN(null);
- this.copy(r);
- return r;
- };
- BN.prototype._expand = function _expand (size) {
- while (this.length < size) {
- this.words[this.length++] = 0;
- }
- return this;
- };
- // Remove leading `0` from `this`
- BN.prototype._strip = function strip () {
- while (this.length > 1 && this.words[this.length - 1] === 0) {
- this.length--;
- }
- return this._normSign();
- };
- BN.prototype._normSign = function _normSign () {
- // -0 = 0
- if (this.length === 1 && this.words[0] === 0) {
- this.negative = 0;
- }
- return this;
- };
- // Check Symbol.for because not everywhere where Symbol defined
- // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility
- if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {
- try {
- BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;
- } catch (e) {
- BN.prototype.inspect = inspect;
- }
- } else {
- BN.prototype.inspect = inspect;
- }
- function inspect () {
- return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';
- }
- /*
- var zeros = [];
- var groupSizes = [];
- var groupBases = [];
- var s = '';
- var i = -1;
- while (++i < BN.wordSize) {
- zeros[i] = s;
- s += '0';
- }
- groupSizes[0] = 0;
- groupSizes[1] = 0;
- groupBases[0] = 0;
- groupBases[1] = 0;
- var base = 2 - 1;
- while (++base < 36 + 1) {
- var groupSize = 0;
- var groupBase = 1;
- while (groupBase < (1 << BN.wordSize) / base) {
- groupBase *= base;
- groupSize += 1;
- }
- groupSizes[base] = groupSize;
- groupBases[base] = groupBase;
- }
- */
- var zeros = [
- '',
- '0',
- '00',
- '000',
- '0000',
- '00000',
- '000000',
- '0000000',
- '00000000',
- '000000000',
- '0000000000',
- '00000000000',
- '000000000000',
- '0000000000000',
- '00000000000000',
- '000000000000000',
- '0000000000000000',
- '00000000000000000',
- '000000000000000000',
- '0000000000000000000',
- '00000000000000000000',
- '000000000000000000000',
- '0000000000000000000000',
- '00000000000000000000000',
- '000000000000000000000000',
- '0000000000000000000000000'
- ];
- var groupSizes = [
- 0, 0,
- 25, 16, 12, 11, 10, 9, 8,
- 8, 7, 7, 7, 7, 6, 6,
- 6, 6, 6, 6, 6, 5, 5,
- 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5
- ];
- var groupBases = [
- 0, 0,
- 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,
- 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,
- 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,
- 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,
- 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176
- ];
- BN.prototype.toString = function toString (base, padding) {
- base = base || 10;
- padding = padding | 0 || 1;
- var out;
- if (base === 16 || base === 'hex') {
- out = '';
- var off = 0;
- var carry = 0;
- for (var i = 0; i < this.length; i++) {
- var w = this.words[i];
- var word = (((w << off) | carry) & 0xffffff).toString(16);
- carry = (w >>> (24 - off)) & 0xffffff;
- off += 2;
- if (off >= 26) {
- off -= 26;
- i--;
- }
- if (carry !== 0 || i !== this.length - 1) {
- out = zeros[6 - word.length] + word + out;
- } else {
- out = word + out;
- }
- }
- if (carry !== 0) {
- out = carry.toString(16) + out;
- }
- while (out.length % padding !== 0) {
- out = '0' + out;
- }
- if (this.negative !== 0) {
- out = '-' + out;
- }
- return out;
- }
- if (base === (base | 0) && base >= 2 && base <= 36) {
- // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
- var groupSize = groupSizes[base];
- // var groupBase = Math.pow(base, groupSize);
- var groupBase = groupBases[base];
- out = '';
- var c = this.clone();
- c.negative = 0;
- while (!c.isZero()) {
- var r = c.modrn(groupBase).toString(base);
- c = c.idivn(groupBase);
- if (!c.isZero()) {
- out = zeros[groupSize - r.length] + r + out;
- } else {
- out = r + out;
- }
- }
- if (this.isZero()) {
- out = '0' + out;
- }
- while (out.length % padding !== 0) {
- out = '0' + out;
- }
- if (this.negative !== 0) {
- out = '-' + out;
- }
- return out;
- }
- assert(false, 'Base should be between 2 and 36');
- };
- BN.prototype.toNumber = function toNumber () {
- var ret = this.words[0];
- if (this.length === 2) {
- ret += this.words[1] * 0x4000000;
- } else if (this.length === 3 && this.words[2] === 0x01) {
- // NOTE: at this stage it is known that the top bit is set
- ret += 0x10000000000000 + (this.words[1] * 0x4000000);
- } else if (this.length > 2) {
- assert(false, 'Number can only safely store up to 53 bits');
- }
- return (this.negative !== 0) ? -ret : ret;
- };
- BN.prototype.toJSON = function toJSON () {
- return this.toString(16, 2);
- };
- if (Buffer) {
- BN.prototype.toBuffer = function toBuffer (endian, length) {
- return this.toArrayLike(Buffer, endian, length);
- };
- }
- BN.prototype.toArray = function toArray (endian, length) {
- return this.toArrayLike(Array, endian, length);
- };
- var allocate = function allocate (ArrayType, size) {
- if (ArrayType.allocUnsafe) {
- return ArrayType.allocUnsafe(size);
- }
- return new ArrayType(size);
- };
- BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
- this._strip();
- var byteLength = this.byteLength();
- var reqLength = length || Math.max(1, byteLength);
- assert(byteLength <= reqLength, 'byte array longer than desired length');
- assert(reqLength > 0, 'Requested array length <= 0');
- var res = allocate(ArrayType, reqLength);
- var postfix = endian === 'le' ? 'LE' : 'BE';
- this['_toArrayLike' + postfix](res, byteLength);
- return res;
- };
- BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {
- var position = 0;
- var carry = 0;
- for (var i = 0, shift = 0; i < this.length; i++) {
- var word = (this.words[i] << shift) | carry;
- res[position++] = word & 0xff;
- if (position < res.length) {
- res[position++] = (word >> 8) & 0xff;
- }
- if (position < res.length) {
- res[position++] = (word >> 16) & 0xff;
- }
- if (shift === 6) {
- if (position < res.length) {
- res[position++] = (word >> 24) & 0xff;
- }
- carry = 0;
- shift = 0;
- } else {
- carry = word >>> 24;
- shift += 2;
- }
- }
- if (position < res.length) {
- res[position++] = carry;
- while (position < res.length) {
- res[position++] = 0;
- }
- }
- };
- BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {
- var position = res.length - 1;
- var carry = 0;
- for (var i = 0, shift = 0; i < this.length; i++) {
- var word = (this.words[i] << shift) | carry;
- res[position--] = word & 0xff;
- if (position >= 0) {
- res[position--] = (word >> 8) & 0xff;
- }
- if (position >= 0) {
- res[position--] = (word >> 16) & 0xff;
- }
- if (shift === 6) {
- if (position >= 0) {
- res[position--] = (word >> 24) & 0xff;
- }
- carry = 0;
- shift = 0;
- } else {
- carry = word >>> 24;
- shift += 2;
- }
- }
- if (position >= 0) {
- res[position--] = carry;
- while (position >= 0) {
- res[position--] = 0;
- }
- }
- };
- if (Math.clz32) {
- BN.prototype._countBits = function _countBits (w) {
- return 32 - Math.clz32(w);
- };
- } else {
- BN.prototype._countBits = function _countBits (w) {
- var t = w;
- var r = 0;
- if (t >= 0x1000) {
- r += 13;
- t >>>= 13;
- }
- if (t >= 0x40) {
- r += 7;
- t >>>= 7;
- }
- if (t >= 0x8) {
- r += 4;
- t >>>= 4;
- }
- if (t >= 0x02) {
- r += 2;
- t >>>= 2;
- }
- return r + t;
- };
- }
- BN.prototype._zeroBits = function _zeroBits (w) {
- // Short-cut
- if (w === 0) return 26;
- var t = w;
- var r = 0;
- if ((t & 0x1fff) === 0) {
- r += 13;
- t >>>= 13;
- }
- if ((t & 0x7f) === 0) {
- r += 7;
- t >>>= 7;
- }
- if ((t & 0xf) === 0) {
- r += 4;
- t >>>= 4;
- }
- if ((t & 0x3) === 0) {
- r += 2;
- t >>>= 2;
- }
- if ((t & 0x1) === 0) {
- r++;
- }
- return r;
- };
- // Return number of used bits in a BN
- BN.prototype.bitLength = function bitLength () {
- var w = this.words[this.length - 1];
- var hi = this._countBits(w);
- return (this.length - 1) * 26 + hi;
- };
- function toBitArray (num) {
- var w = new Array(num.bitLength());
- for (var bit = 0; bit < w.length; bit++) {
- var off = (bit / 26) | 0;
- var wbit = bit % 26;
- w[bit] = (num.words[off] >>> wbit) & 0x01;
- }
- return w;
- }
- // Number of trailing zero bits
- BN.prototype.zeroBits = function zeroBits () {
- if (this.isZero()) return 0;
- var r = 0;
- for (var i = 0; i < this.length; i++) {
- var b = this._zeroBits(this.words[i]);
- r += b;
- if (b !== 26) break;
- }
- return r;
- };
- BN.prototype.byteLength = function byteLength () {
- return Math.ceil(this.bitLength() / 8);
- };
- BN.prototype.toTwos = function toTwos (width) {
- if (this.negative !== 0) {
- return this.abs().inotn(width).iaddn(1);
- }
- return this.clone();
- };
- BN.prototype.fromTwos = function fromTwos (width) {
- if (this.testn(width - 1)) {
- return this.notn(width).iaddn(1).ineg();
- }
- return this.clone();
- };
- BN.prototype.isNeg = function isNeg () {
- return this.negative !== 0;
- };
- // Return negative clone of `this`
- BN.prototype.neg = function neg () {
- return this.clone().ineg();
- };
- BN.prototype.ineg = function ineg () {
- if (!this.isZero()) {
- this.negative ^= 1;
- }
- return this;
- };
- // Or `num` with `this` in-place
- BN.prototype.iuor = function iuor (num) {
- while (this.length < num.length) {
- this.words[this.length++] = 0;
- }
- for (var i = 0; i < num.length; i++) {
- this.words[i] = this.words[i] | num.words[i];
- }
- return this._strip();
- };
- BN.prototype.ior = function ior (num) {
- assert((this.negative | num.negative) === 0);
- return this.iuor(num);
- };
- // Or `num` with `this`
- BN.prototype.or = function or (num) {
- if (this.length > num.length) return this.clone().ior(num);
- return num.clone().ior(this);
- };
- BN.prototype.uor = function uor (num) {
- if (this.length > num.length) return this.clone().iuor(num);
- return num.clone().iuor(this);
- };
- // And `num` with `this` in-place
- BN.prototype.iuand = function iuand (num) {
- // b = min-length(num, this)
- var b;
- if (this.length > num.length) {
- b = num;
- } else {
- b = this;
- }
- for (var i = 0; i < b.length; i++) {
- this.words[i] = this.words[i] & num.words[i];
- }
- this.length = b.length;
- return this._strip();
- };
- BN.prototype.iand = function iand (num) {
- assert((this.negative | num.negative) === 0);
- return this.iuand(num);
- };
- // And `num` with `this`
- BN.prototype.and = function and (num) {
- if (this.length > num.length) return this.clone().iand(num);
- return num.clone().iand(this);
- };
- BN.prototype.uand = function uand (num) {
- if (this.length > num.length) return this.clone().iuand(num);
- return num.clone().iuand(this);
- };
- // Xor `num` with `this` in-place
- BN.prototype.iuxor = function iuxor (num) {
- // a.length > b.length
- var a;
- var b;
- if (this.length > num.length) {
- a = this;
- b = num;
- } else {
- a = num;
- b = this;
- }
- for (var i = 0; i < b.length; i++) {
- this.words[i] = a.words[i] ^ b.words[i];
- }
- if (this !== a) {
- for (; i < a.length; i++) {
- this.words[i] = a.words[i];
- }
- }
- this.length = a.length;
- return this._strip();
- };
- BN.prototype.ixor = function ixor (num) {
- assert((this.negative | num.negative) === 0);
- return this.iuxor(num);
- };
- // Xor `num` with `this`
- BN.prototype.xor = function xor (num) {
- if (this.length > num.length) return this.clone().ixor(num);
- return num.clone().ixor(this);
- };
- BN.prototype.uxor = function uxor (num) {
- if (this.length > num.length) return this.clone().iuxor(num);
- return num.clone().iuxor(this);
- };
- // Not ``this`` with ``width`` bitwidth
- BN.prototype.inotn = function inotn (width) {
- assert(typeof width === 'number' && width >= 0);
- var bytesNeeded = Math.ceil(width / 26) | 0;
- var bitsLeft = width % 26;
- // Extend the buffer with leading zeroes
- this._expand(bytesNeeded);
- if (bitsLeft > 0) {
- bytesNeeded--;
- }
- // Handle complete words
- for (var i = 0; i < bytesNeeded; i++) {
- this.words[i] = ~this.words[i] & 0x3ffffff;
- }
- // Handle the residue
- if (bitsLeft > 0) {
- this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));
- }
- // And remove leading zeroes
- return this._strip();
- };
- BN.prototype.notn = function notn (width) {
- return this.clone().inotn(width);
- };
- // Set `bit` of `this`
- BN.prototype.setn = function setn (bit, val) {
- assert(typeof bit === 'number' && bit >= 0);
- var off = (bit / 26) | 0;
- var wbit = bit % 26;
- this._expand(off + 1);
- if (val) {
- this.words[off] = this.words[off] | (1 << wbit);
- } else {
- this.words[off] = this.words[off] & ~(1 << wbit);
- }
- return this._strip();
- };
- // Add `num` to `this` in-place
- BN.prototype.iadd = function iadd (num) {
- var r;
- // negative + positive
- if (this.negative !== 0 && num.negative === 0) {
- this.negative = 0;
- r = this.isub(num);
- this.negative ^= 1;
- return this._normSign();
- // positive + negative
- } else if (this.negative === 0 && num.negative !== 0) {
- num.negative = 0;
- r = this.isub(num);
- num.negative = 1;
- return r._normSign();
- }
- // a.length > b.length
- var a, b;
- if (this.length > num.length) {
- a = this;
- b = num;
- } else {
- a = num;
- b = this;
- }
- var carry = 0;
- for (var i = 0; i < b.length; i++) {
- r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
- this.words[i] = r & 0x3ffffff;
- carry = r >>> 26;
- }
- for (; carry !== 0 && i < a.length; i++) {
- r = (a.words[i] | 0) + carry;
- this.words[i] = r & 0x3ffffff;
- carry = r >>> 26;
- }
- this.length = a.length;
- if (carry !== 0) {
- this.words[this.length] = carry;
- this.length++;
- // Copy the rest of the words
- } else if (a !== this) {
- for (; i < a.length; i++) {
- this.words[i] = a.words[i];
- }
- }
- return this;
- };
- // Add `num` to `this`
- BN.prototype.add = function add (num) {
- var res;
- if (num.negative !== 0 && this.negative === 0) {
- num.negative = 0;
- res = this.sub(num);
- num.negative ^= 1;
- return res;
- } else if (num.negative === 0 && this.negative !== 0) {
- this.negative = 0;
- res = num.sub(this);
- this.negative = 1;
- return res;
- }
- if (this.length > num.length) return this.clone().iadd(num);
- return num.clone().iadd(this);
- };
- // Subtract `num` from `this` in-place
- BN.prototype.isub = function isub (num) {
- // this - (-num) = this + num
- if (num.negative !== 0) {
- num.negative = 0;
- var r = this.iadd(num);
- num.negative = 1;
- return r._normSign();
- // -this - num = -(this + num)
- } else if (this.negative !== 0) {
- this.negative = 0;
- this.iadd(num);
- this.negative = 1;
- return this._normSign();
- }
- // At this point both numbers are positive
- var cmp = this.cmp(num);
- // Optimization - zeroify
- if (cmp === 0) {
- this.negative = 0;
- this.length = 1;
- this.words[0] = 0;
- return this;
- }
- // a > b
- var a, b;
- if (cmp > 0) {
- a = this;
- b = num;
- } else {
- a = num;
- b = this;
- }
- var carry = 0;
- for (var i = 0; i < b.length; i++) {
- r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
- carry = r >> 26;
- this.words[i] = r & 0x3ffffff;
- }
- for (; carry !== 0 && i < a.length; i++) {
- r = (a.words[i] | 0) + carry;
- carry = r >> 26;
- this.words[i] = r & 0x3ffffff;
- }
- // Copy rest of the words
- if (carry === 0 && i < a.length && a !== this) {
- for (; i < a.length; i++) {
- this.words[i] = a.words[i];
- }
- }
- this.length = Math.max(this.length, i);
- if (a !== this) {
- this.negative = 1;
- }
- return this._strip();
- };
- // Subtract `num` from `this`
- BN.prototype.sub = function sub (num) {
- return this.clone().isub(num);
- };
- function smallMulTo (self, num, out) {
- out.negative = num.negative ^ self.negative;
- var len = (self.length + num.length) | 0;
- out.length = len;
- len = (len - 1) | 0;
- // Peel one iteration (compiler can't do it, because of code complexity)
- var a = self.words[0] | 0;
- var b = num.words[0] | 0;
- var r = a * b;
- var lo = r & 0x3ffffff;
- var carry = (r / 0x4000000) | 0;
- out.words[0] = lo;
- for (var k = 1; k < len; k++) {
- // Sum all words with the same `i + j = k` and accumulate `ncarry`,
- // note that ncarry could be >= 0x3ffffff
- var ncarry = carry >>> 26;
- var rword = carry & 0x3ffffff;
- var maxJ = Math.min(k, num.length - 1);
- for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
- var i = (k - j) | 0;
- a = self.words[i] | 0;
- b = num.words[j] | 0;
- r = a * b + rword;
- ncarry += (r / 0x4000000) | 0;
- rword = r & 0x3ffffff;
- }
- out.words[k] = rword | 0;
- carry = ncarry | 0;
- }
- if (carry !== 0) {
- out.words[k] = carry | 0;
- } else {
- out.length--;
- }
- return out._strip();
- }
- // TODO(indutny): it may be reasonable to omit it for users who don't need
- // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit
- // multiplication (like elliptic secp256k1).
- var comb10MulTo = function comb10MulTo (self, num, out) {
- var a = self.words;
- var b = num.words;
- var o = out.words;
- var c = 0;
- var lo;
- var mid;
- var hi;
- var a0 = a[0] | 0;
- var al0 = a0 & 0x1fff;
- var ah0 = a0 >>> 13;
- var a1 = a[1] | 0;
- var al1 = a1 & 0x1fff;
- var ah1 = a1 >>> 13;
- var a2 = a[2] | 0;
- var al2 = a2 & 0x1fff;
- var ah2 = a2 >>> 13;
- var a3 = a[3] | 0;
- var al3 = a3 & 0x1fff;
- var ah3 = a3 >>> 13;
- var a4 = a[4] | 0;
- var al4 = a4 & 0x1fff;
- var ah4 = a4 >>> 13;
- var a5 = a[5] | 0;
- var al5 = a5 & 0x1fff;
- var ah5 = a5 >>> 13;
- var a6 = a[6] | 0;
- var al6 = a6 & 0x1fff;
- var ah6 = a6 >>> 13;
- var a7 = a[7] | 0;
- var al7 = a7 & 0x1fff;
- var ah7 = a7 >>> 13;
- var a8 = a[8] | 0;
- var al8 = a8 & 0x1fff;
- var ah8 = a8 >>> 13;
- var a9 = a[9] | 0;
- var al9 = a9 & 0x1fff;
- var ah9 = a9 >>> 13;
- var b0 = b[0] | 0;
- var bl0 = b0 & 0x1fff;
- var bh0 = b0 >>> 13;
- var b1 = b[1] | 0;
- var bl1 = b1 & 0x1fff;
- var bh1 = b1 >>> 13;
- var b2 = b[2] | 0;
- var bl2 = b2 & 0x1fff;
- var bh2 = b2 >>> 13;
- var b3 = b[3] | 0;
- var bl3 = b3 & 0x1fff;
- var bh3 = b3 >>> 13;
- var b4 = b[4] | 0;
- var bl4 = b4 & 0x1fff;
- var bh4 = b4 >>> 13;
- var b5 = b[5] | 0;
- var bl5 = b5 & 0x1fff;
- var bh5 = b5 >>> 13;
- var b6 = b[6] | 0;
- var bl6 = b6 & 0x1fff;
- var bh6 = b6 >>> 13;
- var b7 = b[7] | 0;
- var bl7 = b7 & 0x1fff;
- var bh7 = b7 >>> 13;
- var b8 = b[8] | 0;
- var bl8 = b8 & 0x1fff;
- var bh8 = b8 >>> 13;
- var b9 = b[9] | 0;
- var bl9 = b9 & 0x1fff;
- var bh9 = b9 >>> 13;
- out.negative = self.negative ^ num.negative;
- out.length = 19;
- /* k = 0 */
- lo = Math.imul(al0, bl0);
- mid = Math.imul(al0, bh0);
- mid = (mid + Math.imul(ah0, bl0)) | 0;
- hi = Math.imul(ah0, bh0);
- var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;
- w0 &= 0x3ffffff;
- /* k = 1 */
- lo = Math.imul(al1, bl0);
- mid = Math.imul(al1, bh0);
- mid = (mid + Math.imul(ah1, bl0)) | 0;
- hi = Math.imul(ah1, bh0);
- lo = (lo + Math.imul(al0, bl1)) | 0;
- mid = (mid + Math.imul(al0, bh1)) | 0;
- mid = (mid + Math.imul(ah0, bl1)) | 0;
- hi = (hi + Math.imul(ah0, bh1)) | 0;
- var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;
- w1 &= 0x3ffffff;
- /* k = 2 */
- lo = Math.imul(al2, bl0);
- mid = Math.imul(al2, bh0);
- mid = (mid + Math.imul(ah2, bl0)) | 0;
- hi = Math.imul(ah2, bh0);
- lo = (lo + Math.imul(al1, bl1)) | 0;
- mid = (mid + Math.imul(al1, bh1)) | 0;
- mid = (mid + Math.imul(ah1, bl1)) | 0;
- hi = (hi + Math.imul(ah1, bh1)) | 0;
- lo = (lo + Math.imul(al0, bl2)) | 0;
- mid = (mid + Math.imul(al0, bh2)) | 0;
- mid = (mid + Math.imul(ah0, bl2)) | 0;
- hi = (hi + Math.imul(ah0, bh2)) | 0;
- var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;
- w2 &= 0x3ffffff;
- /* k = 3 */
- lo = Math.imul(al3, bl0);
- mid = Math.imul(al3, bh0);
- mid = (mid + Math.imul(ah3, bl0)) | 0;
- hi = Math.imul(ah3, bh0);
- lo = (lo + Math.imul(al2, bl1)) | 0;
- mid = (mid + Math.imul(al2, bh1)) | 0;
- mid = (mid + Math.imul(ah2, bl1)) | 0;
- hi = (hi + Math.imul(ah2, bh1)) | 0;
- lo = (lo + Math.imul(al1, bl2)) | 0;
- mid = (mid + Math.imul(al1, bh2)) | 0;
- mid = (mid + Math.imul(ah1, bl2)) | 0;
- hi = (hi + Math.imul(ah1, bh2)) | 0;
- lo = (lo + Math.imul(al0, bl3)) | 0;
- mid = (mid + Math.imul(al0, bh3)) | 0;
- mid = (mid + Math.imul(ah0, bl3)) | 0;
- hi = (hi + Math.imul(ah0, bh3)) | 0;
- var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;
- w3 &= 0x3ffffff;
- /* k = 4 */
- lo = Math.imul(al4, bl0);
- mid = Math.imul(al4, bh0);
- mid = (mid + Math.imul(ah4, bl0)) | 0;
- hi = Math.imul(ah4, bh0);
- lo = (lo + Math.imul(al3, bl1)) | 0;
- mid = (mid + Math.imul(al3, bh1)) | 0;
- mid = (mid + Math.imul(ah3, bl1)) | 0;
- hi = (hi + Math.imul(ah3, bh1)) | 0;
- lo = (lo + Math.imul(al2, bl2)) | 0;
- mid = (mid + Math.imul(al2, bh2)) | 0;
- mid = (mid + Math.imul(ah2, bl2)) | 0;
- hi = (hi + Math.imul(ah2, bh2)) | 0;
- lo = (lo + Math.imul(al1, bl3)) | 0;
- mid = (mid + Math.imul(al1, bh3)) | 0;
- mid = (mid + Math.imul(ah1, bl3)) | 0;
- hi = (hi + Math.imul(ah1, bh3)) | 0;
- lo = (lo + Math.imul(al0, bl4)) | 0;
- mid = (mid + Math.imul(al0, bh4)) | 0;
- mid = (mid + Math.imul(ah0, bl4)) | 0;
- hi = (hi + Math.imul(ah0, bh4)) | 0;
- var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;
- w4 &= 0x3ffffff;
- /* k = 5 */
- lo = Math.imul(al5, bl0);
- mid = Math.imul(al5, bh0);
- mid = (mid + Math.imul(ah5, bl0)) | 0;
- hi = Math.imul(ah5, bh0);
- lo = (lo + Math.imul(al4, bl1)) | 0;
- mid = (mid + Math.imul(al4, bh1)) | 0;
- mid = (mid + Math.imul(ah4, bl1)) | 0;
- hi = (hi + Math.imul(ah4, bh1)) | 0;
- lo = (lo + Math.imul(al3, bl2)) | 0;
- mid = (mid + Math.imul(al3, bh2)) | 0;
- mid = (mid + Math.imul(ah3, bl2)) | 0;
- hi = (hi + Math.imul(ah3, bh2)) | 0;
- lo = (lo + Math.imul(al2, bl3)) | 0;
- mid = (mid + Math.imul(al2, bh3)) | 0;
- mid = (mid + Math.imul(ah2, bl3)) | 0;
- hi = (hi + Math.imul(ah2, bh3)) | 0;
- lo = (lo + Math.imul(al1, bl4)) | 0;
- mid = (mid + Math.imul(al1, bh4)) | 0;
- mid = (mid + Math.imul(ah1, bl4)) | 0;
- hi = (hi + Math.imul(ah1, bh4)) | 0;
- lo = (lo + Math.imul(al0, bl5)) | 0;
- mid = (mid + Math.imul(al0, bh5)) | 0;
- mid = (mid + Math.imul(ah0, bl5)) | 0;
- hi = (hi + Math.imul(ah0, bh5)) | 0;
- var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;
- w5 &= 0x3ffffff;
- /* k = 6 */
- lo = Math.imul(al6, bl0);
- mid = Math.imul(al6, bh0);
- mid = (mid + Math.imul(ah6, bl0)) | 0;
- hi = Math.imul(ah6, bh0);
- lo = (lo + Math.imul(al5, bl1)) | 0;
- mid = (mid + Math.imul(al5, bh1)) | 0;
- mid = (mid + Math.imul(ah5, bl1)) | 0;
- hi = (hi + Math.imul(ah5, bh1)) | 0;
- lo = (lo + Math.imul(al4, bl2)) | 0;
- mid = (mid + Math.imul(al4, bh2)) | 0;
- mid = (mid + Math.imul(ah4, bl2)) | 0;
- hi = (hi + Math.imul(ah4, bh2)) | 0;
- lo = (lo + Math.imul(al3, bl3)) | 0;
- mid = (mid + Math.imul(al3, bh3)) | 0;
- mid = (mid + Math.imul(ah3, bl3)) | 0;
- hi = (hi + Math.imul(ah3, bh3)) | 0;
- lo = (lo + Math.imul(al2, bl4)) | 0;
- mid = (mid + Math.imul(al2, bh4)) | 0;
- mid = (mid + Math.imul(ah2, bl4)) | 0;
- hi = (hi + Math.imul(ah2, bh4)) | 0;
- lo = (lo + Math.imul(al1, bl5)) | 0;
- mid = (mid + Math.imul(al1, bh5)) | 0;
- mid = (mid + Math.imul(ah1, bl5)) | 0;
- hi = (hi + Math.imul(ah1, bh5)) | 0;
- lo = (lo + Math.imul(al0, bl6)) | 0;
- mid = (mid + Math.imul(al0, bh6)) | 0;
- mid = (mid + Math.imul(ah0, bl6)) | 0;
- hi = (hi + Math.imul(ah0, bh6)) | 0;
- var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;
- w6 &= 0x3ffffff;
- /* k = 7 */
- lo = Math.imul(al7, bl0);
- mid = Math.imul(al7, bh0);
- mid = (mid + Math.imul(ah7, bl0)) | 0;
- hi = Math.imul(ah7, bh0);
- lo = (lo + Math.imul(al6, bl1)) | 0;
- mid = (mid + Math.imul(al6, bh1)) | 0;
- mid = (mid + Math.imul(ah6, bl1)) | 0;
- hi = (hi + Math.imul(ah6, bh1)) | 0;
- lo = (lo + Math.imul(al5, bl2)) | 0;
- mid = (mid + Math.imul(al5, bh2)) | 0;
- mid = (mid + Math.imul(ah5, bl2)) | 0;
- hi = (hi + Math.imul(ah5, bh2)) | 0;
- lo = (lo + Math.imul(al4, bl3)) | 0;
- mid = (mid + Math.imul(al4, bh3)) | 0;
- mid = (mid + Math.imul(ah4, bl3)) | 0;
- hi = (hi + Math.imul(ah4, bh3)) | 0;
- lo = (lo + Math.imul(al3, bl4)) | 0;
- mid = (mid + Math.imul(al3, bh4)) | 0;
- mid = (mid + Math.imul(ah3, bl4)) | 0;
- hi = (hi + Math.imul(ah3, bh4)) | 0;
- lo = (lo + Math.imul(al2, bl5)) | 0;
- mid = (mid + Math.imul(al2, bh5)) | 0;
- mid = (mid + Math.imul(ah2, bl5)) | 0;
- hi = (hi + Math.imul(ah2, bh5)) | 0;
- lo = (lo + Math.imul(al1, bl6)) | 0;
- mid = (mid + Math.imul(al1, bh6)) | 0;
- mid = (mid + Math.imul(ah1, bl6)) | 0;
- hi = (hi + Math.imul(ah1, bh6)) | 0;
- lo = (lo + Math.imul(al0, bl7)) | 0;
- mid = (mid + Math.imul(al0, bh7)) | 0;
- mid = (mid + Math.imul(ah0, bl7)) | 0;
- hi = (hi + Math.imul(ah0, bh7)) | 0;
- var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;
- w7 &= 0x3ffffff;
- /* k = 8 */
- lo = Math.imul(al8, bl0);
- mid = Math.imul(al8, bh0);
- mid = (mid + Math.imul(ah8, bl0)) | 0;
- hi = Math.imul(ah8, bh0);
- lo = (lo + Math.imul(al7, bl1)) | 0;
- mid = (mid + Math.imul(al7, bh1)) | 0;
- mid = (mid + Math.imul(ah7, bl1)) | 0;
- hi = (hi + Math.imul(ah7, bh1)) | 0;
- lo = (lo + Math.imul(al6, bl2)) | 0;
- mid = (mid + Math.imul(al6, bh2)) | 0;
- mid = (mid + Math.imul(ah6, bl2)) | 0;
- hi = (hi + Math.imul(ah6, bh2)) | 0;
- lo = (lo + Math.imul(al5, bl3)) | 0;
- mid = (mid + Math.imul(al5, bh3)) | 0;
- mid = (mid + Math.imul(ah5, bl3)) | 0;
- hi = (hi + Math.imul(ah5, bh3)) | 0;
- lo = (lo + Math.imul(al4, bl4)) | 0;
- mid = (mid + Math.imul(al4, bh4)) | 0;
- mid = (mid + Math.imul(ah4, bl4)) | 0;
- hi = (hi + Math.imul(ah4, bh4)) | 0;
- lo = (lo + Math.imul(al3, bl5)) | 0;
- mid = (mid + Math.imul(al3, bh5)) | 0;
- mid = (mid + Math.imul(ah3, bl5)) | 0;
- hi = (hi + Math.imul(ah3, bh5)) | 0;
- lo = (lo + Math.imul(al2, bl6)) | 0;
- mid = (mid + Math.imul(al2, bh6)) | 0;
- mid = (mid + Math.imul(ah2, bl6)) | 0;
- hi = (hi + Math.imul(ah2, bh6)) | 0;
- lo = (lo + Math.imul(al1, bl7)) | 0;
- mid = (mid + Math.imul(al1, bh7)) | 0;
- mid = (mid + Math.imul(ah1, bl7)) | 0;
- hi = (hi + Math.imul(ah1, bh7)) | 0;
- lo = (lo + Math.imul(al0, bl8)) | 0;
- mid = (mid + Math.imul(al0, bh8)) | 0;
- mid = (mid + Math.imul(ah0, bl8)) | 0;
- hi = (hi + Math.imul(ah0, bh8)) | 0;
- var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;
- w8 &= 0x3ffffff;
- /* k = 9 */
- lo = Math.imul(al9, bl0);
- mid = Math.imul(al9, bh0);
- mid = (mid + Math.imul(ah9, bl0)) | 0;
- hi = Math.imul(ah9, bh0);
- lo = (lo + Math.imul(al8, bl1)) | 0;
- mid = (mid + Math.imul(al8, bh1)) | 0;
- mid = (mid + Math.imul(ah8, bl1)) | 0;
- hi = (hi + Math.imul(ah8, bh1)) | 0;
- lo = (lo + Math.imul(al7, bl2)) | 0;
- mid = (mid + Math.imul(al7, bh2)) | 0;
- mid = (mid + Math.imul(ah7, bl2)) | 0;
- hi = (hi + Math.imul(ah7, bh2)) | 0;
- lo = (lo + Math.imul(al6, bl3)) | 0;
- mid = (mid + Math.imul(al6, bh3)) | 0;
- mid = (mid + Math.imul(ah6, bl3)) | 0;
- hi = (hi + Math.imul(ah6, bh3)) | 0;
- lo = (lo + Math.imul(al5, bl4)) | 0;
- mid = (mid + Math.imul(al5, bh4)) | 0;
- mid = (mid + Math.imul(ah5, bl4)) | 0;
- hi = (hi + Math.imul(ah5, bh4)) | 0;
- lo = (lo + Math.imul(al4, bl5)) | 0;
- mid = (mid + Math.imul(al4, bh5)) | 0;
- mid = (mid + Math.imul(ah4, bl5)) | 0;
- hi = (hi + Math.imul(ah4, bh5)) | 0;
- lo = (lo + Math.imul(al3, bl6)) | 0;
- mid = (mid + Math.imul(al3, bh6)) | 0;
- mid = (mid + Math.imul(ah3, bl6)) | 0;
- hi = (hi + Math.imul(ah3, bh6)) | 0;
- lo = (lo + Math.imul(al2, bl7)) | 0;
- mid = (mid + Math.imul(al2, bh7)) | 0;
- mid = (mid + Math.imul(ah2, bl7)) | 0;
- hi = (hi + Math.imul(ah2, bh7)) | 0;
- lo = (lo + Math.imul(al1, bl8)) | 0;
- mid = (mid + Math.imul(al1, bh8)) | 0;
- mid = (mid + Math.imul(ah1, bl8)) | 0;
- hi = (hi + Math.imul(ah1, bh8)) | 0;
- lo = (lo + Math.imul(al0, bl9)) | 0;
- mid = (mid + Math.imul(al0, bh9)) | 0;
- mid = (mid + Math.imul(ah0, bl9)) | 0;
- hi = (hi + Math.imul(ah0, bh9)) | 0;
- var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;
- w9 &= 0x3ffffff;
- /* k = 10 */
- lo = Math.imul(al9, bl1);
- mid = Math.imul(al9, bh1);
- mid = (mid + Math.imul(ah9, bl1)) | 0;
- hi = Math.imul(ah9, bh1);
- lo = (lo + Math.imul(al8, bl2)) | 0;
- mid = (mid + Math.imul(al8, bh2)) | 0;
- mid = (mid + Math.imul(ah8, bl2)) | 0;
- hi = (hi + Math.imul(ah8, bh2)) | 0;
- lo = (lo + Math.imul(al7, bl3)) | 0;
- mid = (mid + Math.imul(al7, bh3)) | 0;
- mid = (mid + Math.imul(ah7, bl3)) | 0;
- hi = (hi + Math.imul(ah7, bh3)) | 0;
- lo = (lo + Math.imul(al6, bl4)) | 0;
- mid = (mid + Math.imul(al6, bh4)) | 0;
- mid = (mid + Math.imul(ah6, bl4)) | 0;
- hi = (hi + Math.imul(ah6, bh4)) | 0;
- lo = (lo + Math.imul(al5, bl5)) | 0;
- mid = (mid + Math.imul(al5, bh5)) | 0;
- mid = (mid + Math.imul(ah5, bl5)) | 0;
- hi = (hi + Math.imul(ah5, bh5)) | 0;
- lo = (lo + Math.imul(al4, bl6)) | 0;
- mid = (mid + Math.imul(al4, bh6)) | 0;
- mid = (mid + Math.imul(ah4, bl6)) | 0;
- hi = (hi + Math.imul(ah4, bh6)) | 0;
- lo = (lo + Math.imul(al3, bl7)) | 0;
- mid = (mid + Math.imul(al3, bh7)) | 0;
- mid = (mid + Math.imul(ah3, bl7)) | 0;
- hi = (hi + Math.imul(ah3, bh7)) | 0;
- lo = (lo + Math.imul(al2, bl8)) | 0;
- mid = (mid + Math.imul(al2, bh8)) | 0;
- mid = (mid + Math.imul(ah2, bl8)) | 0;
- hi = (hi + Math.imul(ah2, bh8)) | 0;
- lo = (lo + Math.imul(al1, bl9)) | 0;
- mid = (mid + Math.imul(al1, bh9)) | 0;
- mid = (mid + Math.imul(ah1, bl9)) | 0;
- hi = (hi + Math.imul(ah1, bh9)) | 0;
- var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;
- w10 &= 0x3ffffff;
- /* k = 11 */
- lo = Math.imul(al9, bl2);
- mid = Math.imul(al9, bh2);
- mid = (mid + Math.imul(ah9, bl2)) | 0;
- hi = Math.imul(ah9, bh2);
- lo = (lo + Math.imul(al8, bl3)) | 0;
- mid = (mid + Math.imul(al8, bh3)) | 0;
- mid = (mid + Math.imul(ah8, bl3)) | 0;
- hi = (hi + Math.imul(ah8, bh3)) | 0;
- lo = (lo + Math.imul(al7, bl4)) | 0;
- mid = (mid + Math.imul(al7, bh4)) | 0;
- mid = (mid + Math.imul(ah7, bl4)) | 0;
- hi = (hi + Math.imul(ah7, bh4)) | 0;
- lo = (lo + Math.imul(al6, bl5)) | 0;
- mid = (mid + Math.imul(al6, bh5)) | 0;
- mid = (mid + Math.imul(ah6, bl5)) | 0;
- hi = (hi + Math.imul(ah6, bh5)) | 0;
- lo = (lo + Math.imul(al5, bl6)) | 0;
- mid = (mid + Math.imul(al5, bh6)) | 0;
- mid = (mid + Math.imul(ah5, bl6)) | 0;
- hi = (hi + Math.imul(ah5, bh6)) | 0;
- lo = (lo + Math.imul(al4, bl7)) | 0;
- mid = (mid + Math.imul(al4, bh7)) | 0;
- mid = (mid + Math.imul(ah4, bl7)) | 0;
- hi = (hi + Math.imul(ah4, bh7)) | 0;
- lo = (lo + Math.imul(al3, bl8)) | 0;
- mid = (mid + Math.imul(al3, bh8)) | 0;
- mid = (mid + Math.imul(ah3, bl8)) | 0;
- hi = (hi + Math.imul(ah3, bh8)) | 0;
- lo = (lo + Math.imul(al2, bl9)) | 0;
- mid = (mid + Math.imul(al2, bh9)) | 0;
- mid = (mid + Math.imul(ah2, bl9)) | 0;
- hi = (hi + Math.imul(ah2, bh9)) | 0;
- var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;
- w11 &= 0x3ffffff;
- /* k = 12 */
- lo = Math.imul(al9, bl3);
- mid = Math.imul(al9, bh3);
- mid = (mid + Math.imul(ah9, bl3)) | 0;
- hi = Math.imul(ah9, bh3);
- lo = (lo + Math.imul(al8, bl4)) | 0;
- mid = (mid + Math.imul(al8, bh4)) | 0;
- mid = (mid + Math.imul(ah8, bl4)) | 0;
- hi = (hi + Math.imul(ah8, bh4)) | 0;
- lo = (lo + Math.imul(al7, bl5)) | 0;
- mid = (mid + Math.imul(al7, bh5)) | 0;
- mid = (mid + Math.imul(ah7, bl5)) | 0;
- hi = (hi + Math.imul(ah7, bh5)) | 0;
- lo = (lo + Math.imul(al6, bl6)) | 0;
- mid = (mid + Math.imul(al6, bh6)) | 0;
- mid = (mid + Math.imul(ah6, bl6)) | 0;
- hi = (hi + Math.imul(ah6, bh6)) | 0;
- lo = (lo + Math.imul(al5, bl7)) | 0;
- mid = (mid + Math.imul(al5, bh7)) | 0;
- mid = (mid + Math.imul(ah5, bl7)) | 0;
- hi = (hi + Math.imul(ah5, bh7)) | 0;
- lo = (lo + Math.imul(al4, bl8)) | 0;
- mid = (mid + Math.imul(al4, bh8)) | 0;
- mid = (mid + Math.imul(ah4, bl8)) | 0;
- hi = (hi + Math.imul(ah4, bh8)) | 0;
- lo = (lo + Math.imul(al3, bl9)) | 0;
- mid = (mid + Math.imul(al3, bh9)) | 0;
- mid = (mid + Math.imul(ah3, bl9)) | 0;
- hi = (hi + Math.imul(ah3, bh9)) | 0;
- var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;
- w12 &= 0x3ffffff;
- /* k = 13 */
- lo = Math.imul(al9, bl4);
- mid = Math.imul(al9, bh4);
- mid = (mid + Math.imul(ah9, bl4)) | 0;
- hi = Math.imul(ah9, bh4);
- lo = (lo + Math.imul(al8, bl5)) | 0;
- mid = (mid + Math.imul(al8, bh5)) | 0;
- mid = (mid + Math.imul(ah8, bl5)) | 0;
- hi = (hi + Math.imul(ah8, bh5)) | 0;
- lo = (lo + Math.imul(al7, bl6)) | 0;
- mid = (mid + Math.imul(al7, bh6)) | 0;
- mid = (mid + Math.imul(ah7, bl6)) | 0;
- hi = (hi + Math.imul(ah7, bh6)) | 0;
- lo = (lo + Math.imul(al6, bl7)) | 0;
- mid = (mid + Math.imul(al6, bh7)) | 0;
- mid = (mid + Math.imul(ah6, bl7)) | 0;
- hi = (hi + Math.imul(ah6, bh7)) | 0;
- lo = (lo + Math.imul(al5, bl8)) | 0;
- mid = (mid + Math.imul(al5, bh8)) | 0;
- mid = (mid + Math.imul(ah5, bl8)) | 0;
- hi = (hi + Math.imul(ah5, bh8)) | 0;
- lo = (lo + Math.imul(al4, bl9)) | 0;
- mid = (mid + Math.imul(al4, bh9)) | 0;
- mid = (mid + Math.imul(ah4, bl9)) | 0;
- hi = (hi + Math.imul(ah4, bh9)) | 0;
- var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;
- w13 &= 0x3ffffff;
- /* k = 14 */
- lo = Math.imul(al9, bl5);
- mid = Math.imul(al9, bh5);
- mid = (mid + Math.imul(ah9, bl5)) | 0;
- hi = Math.imul(ah9, bh5);
- lo = (lo + Math.imul(al8, bl6)) | 0;
- mid = (mid + Math.imul(al8, bh6)) | 0;
- mid = (mid + Math.imul(ah8, bl6)) | 0;
- hi = (hi + Math.imul(ah8, bh6)) | 0;
- lo = (lo + Math.imul(al7, bl7)) | 0;
- mid = (mid + Math.imul(al7, bh7)) | 0;
- mid = (mid + Math.imul(ah7, bl7)) | 0;
- hi = (hi + Math.imul(ah7, bh7)) | 0;
- lo = (lo + Math.imul(al6, bl8)) | 0;
- mid = (mid + Math.imul(al6, bh8)) | 0;
- mid = (mid + Math.imul(ah6, bl8)) | 0;
- hi = (hi + Math.imul(ah6, bh8)) | 0;
- lo = (lo + Math.imul(al5, bl9)) | 0;
- mid = (mid + Math.imul(al5, bh9)) | 0;
- mid = (mid + Math.imul(ah5, bl9)) | 0;
- hi = (hi + Math.imul(ah5, bh9)) | 0;
- var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;
- w14 &= 0x3ffffff;
- /* k = 15 */
- lo = Math.imul(al9, bl6);
- mid = Math.imul(al9, bh6);
- mid = (mid + Math.imul(ah9, bl6)) | 0;
- hi = Math.imul(ah9, bh6);
- lo = (lo + Math.imul(al8, bl7)) | 0;
- mid = (mid + Math.imul(al8, bh7)) | 0;
- mid = (mid + Math.imul(ah8, bl7)) | 0;
- hi = (hi + Math.imul(ah8, bh7)) | 0;
- lo = (lo + Math.imul(al7, bl8)) | 0;
- mid = (mid + Math.imul(al7, bh8)) | 0;
- mid = (mid + Math.imul(ah7, bl8)) | 0;
- hi = (hi + Math.imul(ah7, bh8)) | 0;
- lo = (lo + Math.imul(al6, bl9)) | 0;
- mid = (mid + Math.imul(al6, bh9)) | 0;
- mid = (mid + Math.imul(ah6, bl9)) | 0;
- hi = (hi + Math.imul(ah6, bh9)) | 0;
- var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;
- w15 &= 0x3ffffff;
- /* k = 16 */
- lo = Math.imul(al9, bl7);
- mid = Math.imul(al9, bh7);
- mid = (mid + Math.imul(ah9, bl7)) | 0;
- hi = Math.imul(ah9, bh7);
- lo = (lo + Math.imul(al8, bl8)) | 0;
- mid = (mid + Math.imul(al8, bh8)) | 0;
- mid = (mid + Math.imul(ah8, bl8)) | 0;
- hi = (hi + Math.imul(ah8, bh8)) | 0;
- lo = (lo + Math.imul(al7, bl9)) | 0;
- mid = (mid + Math.imul(al7, bh9)) | 0;
- mid = (mid + Math.imul(ah7, bl9)) | 0;
- hi = (hi + Math.imul(ah7, bh9)) | 0;
- var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;
- w16 &= 0x3ffffff;
- /* k = 17 */
- lo = Math.imul(al9, bl8);
- mid = Math.imul(al9, bh8);
- mid = (mid + Math.imul(ah9, bl8)) | 0;
- hi = Math.imul(ah9, bh8);
- lo = (lo + Math.imul(al8, bl9)) | 0;
- mid = (mid + Math.imul(al8, bh9)) | 0;
- mid = (mid + Math.imul(ah8, bl9)) | 0;
- hi = (hi + Math.imul(ah8, bh9)) | 0;
- var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;
- w17 &= 0x3ffffff;
- /* k = 18 */
- lo = Math.imul(al9, bl9);
- mid = Math.imul(al9, bh9);
- mid = (mid + Math.imul(ah9, bl9)) | 0;
- hi = Math.imul(ah9, bh9);
- var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
- c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;
- w18 &= 0x3ffffff;
- o[0] = w0;
- o[1] = w1;
- o[2] = w2;
- o[3] = w3;
- o[4] = w4;
- o[5] = w5;
- o[6] = w6;
- o[7] = w7;
- o[8] = w8;
- o[9] = w9;
- o[10] = w10;
- o[11] = w11;
- o[12] = w12;
- o[13] = w13;
- o[14] = w14;
- o[15] = w15;
- o[16] = w16;
- o[17] = w17;
- o[18] = w18;
- if (c !== 0) {
- o[19] = c;
- out.length++;
- }
- return out;
- };
- // Polyfill comb
- if (!Math.imul) {
- comb10MulTo = smallMulTo;
- }
- function bigMulTo (self, num, out) {
- out.negative = num.negative ^ self.negative;
- out.length = self.length + num.length;
- var carry = 0;
- var hncarry = 0;
- for (var k = 0; k < out.length - 1; k++) {
- // Sum all words with the same `i + j = k` and accumulate `ncarry`,
- // note that ncarry could be >= 0x3ffffff
- var ncarry = hncarry;
- hncarry = 0;
- var rword = carry & 0x3ffffff;
- var maxJ = Math.min(k, num.length - 1);
- for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
- var i = k - j;
- var a = self.words[i] | 0;
- var b = num.words[j] | 0;
- var r = a * b;
- var lo = r & 0x3ffffff;
- ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;
- lo = (lo + rword) | 0;
- rword = lo & 0x3ffffff;
- ncarry = (ncarry + (lo >>> 26)) | 0;
- hncarry += ncarry >>> 26;
- ncarry &= 0x3ffffff;
- }
- out.words[k] = rword;
- carry = ncarry;
- ncarry = hncarry;
- }
- if (carry !== 0) {
- out.words[k] = carry;
- } else {
- out.length--;
- }
- return out._strip();
- }
- function jumboMulTo (self, num, out) {
- // Temporary disable, see https://github.com/indutny/bn.js/issues/211
- // var fftm = new FFTM();
- // return fftm.mulp(self, num, out);
- return bigMulTo(self, num, out);
- }
- BN.prototype.mulTo = function mulTo (num, out) {
- var res;
- var len = this.length + num.length;
- if (this.length === 10 && num.length === 10) {
- res = comb10MulTo(this, num, out);
- } else if (len < 63) {
- res = smallMulTo(this, num, out);
- } else if (len < 1024) {
- res = bigMulTo(this, num, out);
- } else {
- res = jumboMulTo(this, num, out);
- }
- return res;
- };
- // Cooley-Tukey algorithm for FFT
- // slightly revisited to rely on looping instead of recursion
- function FFTM (x, y) {
- this.x = x;
- this.y = y;
- }
- FFTM.prototype.makeRBT = function makeRBT (N) {
- var t = new Array(N);
- var l = BN.prototype._countBits(N) - 1;
- for (var i = 0; i < N; i++) {
- t[i] = this.revBin(i, l, N);
- }
- return t;
- };
- // Returns binary-reversed representation of `x`
- FFTM.prototype.revBin = function revBin (x, l, N) {
- if (x === 0 || x === N - 1) return x;
- var rb = 0;
- for (var i = 0; i < l; i++) {
- rb |= (x & 1) << (l - i - 1);
- x >>= 1;
- }
- return rb;
- };
- // Performs "tweedling" phase, therefore 'emulating'
- // behaviour of the recursive algorithm
- FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
- for (var i = 0; i < N; i++) {
- rtws[i] = rws[rbt[i]];
- itws[i] = iws[rbt[i]];
- }
- };
- FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
- this.permute(rbt, rws, iws, rtws, itws, N);
- for (var s = 1; s < N; s <<= 1) {
- var l = s << 1;
- var rtwdf = Math.cos(2 * Math.PI / l);
- var itwdf = Math.sin(2 * Math.PI / l);
- for (var p = 0; p < N; p += l) {
- var rtwdf_ = rtwdf;
- var itwdf_ = itwdf;
- for (var j = 0; j < s; j++) {
- var re = rtws[p + j];
- var ie = itws[p + j];
- var ro = rtws[p + j + s];
- var io = itws[p + j + s];
- var rx = rtwdf_ * ro - itwdf_ * io;
- io = rtwdf_ * io + itwdf_ * ro;
- ro = rx;
- rtws[p + j] = re + ro;
- itws[p + j] = ie + io;
- rtws[p + j + s] = re - ro;
- itws[p + j + s] = ie - io;
- /* jshint maxdepth : false */
- if (j !== l) {
- rx = rtwdf * rtwdf_ - itwdf * itwdf_;
- itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
- rtwdf_ = rx;
- }
- }
- }
- }
- };
- FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
- var N = Math.max(m, n) | 1;
- var odd = N & 1;
- var i = 0;
- for (N = N / 2 | 0; N; N = N >>> 1) {
- i++;
- }
- return 1 << i + 1 + odd;
- };
- FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
- if (N <= 1) return;
- for (var i = 0; i < N / 2; i++) {
- var t = rws[i];
- rws[i] = rws[N - i - 1];
- rws[N - i - 1] = t;
- t = iws[i];
- iws[i] = -iws[N - i - 1];
- iws[N - i - 1] = -t;
- }
- };
- FFTM.prototype.normalize13b = function normalize13b (ws, N) {
- var carry = 0;
- for (var i = 0; i < N / 2; i++) {
- var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +
- Math.round(ws[2 * i] / N) +
- carry;
- ws[i] = w & 0x3ffffff;
- if (w < 0x4000000) {
- carry = 0;
- } else {
- carry = w / 0x4000000 | 0;
- }
- }
- return ws;
- };
- FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
- var carry = 0;
- for (var i = 0; i < len; i++) {
- carry = carry + (ws[i] | 0);
- rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;
- rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;
- }
- // Pad with zeroes
- for (i = 2 * len; i < N; ++i) {
- rws[i] = 0;
- }
- assert(carry === 0);
- assert((carry & ~0x1fff) === 0);
- };
- FFTM.prototype.stub = function stub (N) {
- var ph = new Array(N);
- for (var i = 0; i < N; i++) {
- ph[i] = 0;
- }
- return ph;
- };
- FFTM.prototype.mulp = function mulp (x, y, out) {
- var N = 2 * this.guessLen13b(x.length, y.length);
- var rbt = this.makeRBT(N);
- var _ = this.stub(N);
- var rws = new Array(N);
- var rwst = new Array(N);
- var iwst = new Array(N);
- var nrws = new Array(N);
- var nrwst = new Array(N);
- var niwst = new Array(N);
- var rmws = out.words;
- rmws.length = N;
- this.convert13b(x.words, x.length, rws, N);
- this.convert13b(y.words, y.length, nrws, N);
- this.transform(rws, _, rwst, iwst, N, rbt);
- this.transform(nrws, _, nrwst, niwst, N, rbt);
- for (var i = 0; i < N; i++) {
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
- iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
- rwst[i] = rx;
- }
- this.conjugate(rwst, iwst, N);
- this.transform(rwst, iwst, rmws, _, N, rbt);
- this.conjugate(rmws, _, N);
- this.normalize13b(rmws, N);
- out.negative = x.negative ^ y.negative;
- out.length = x.length + y.length;
- return out._strip();
- };
- // Multiply `this` by `num`
- BN.prototype.mul = function mul (num) {
- var out = new BN(null);
- out.words = new Array(this.length + num.length);
- return this.mulTo(num, out);
- };
- // Multiply employing FFT
- BN.prototype.mulf = function mulf (num) {
- var out = new BN(null);
- out.words = new Array(this.length + num.length);
- return jumboMulTo(this, num, out);
- };
- // In-place Multiplication
- BN.prototype.imul = function imul (num) {
- return this.clone().mulTo(num, this);
- };
- BN.prototype.imuln = function imuln (num) {
- var isNegNum = num < 0;
- if (isNegNum) num = -num;
- assert(typeof num === 'number');
- assert(num < 0x4000000);
- // Carry
- var carry = 0;
- for (var i = 0; i < this.length; i++) {
- var w = (this.words[i] | 0) * num;
- var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);
- carry >>= 26;
- carry += (w / 0x4000000) | 0;
- // NOTE: lo is 27bit maximum
- carry += lo >>> 26;
- this.words[i] = lo & 0x3ffffff;
- }
- if (carry !== 0) {
- this.words[i] = carry;
- this.length++;
- }
- return isNegNum ? this.ineg() : this;
- };
- BN.prototype.muln = function muln (num) {
- return this.clone().imuln(num);
- };
- // `this` * `this`
- BN.prototype.sqr = function sqr () {
- return this.mul(this);
- };
- // `this` * `this` in-place
- BN.prototype.isqr = function isqr () {
- return this.imul(this.clone());
- };
- // Math.pow(`this`, `num`)
- BN.prototype.pow = function pow (num) {
- var w = toBitArray(num);
- if (w.length === 0) return new BN(1);
- // Skip leading zeroes
- var res = this;
- for (var i = 0; i < w.length; i++, res = res.sqr()) {
- if (w[i] !== 0) break;
- }
- if (++i < w.length) {
- for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
- if (w[i] === 0) continue;
- res = res.mul(q);
- }
- }
- return res;
- };
- // Shift-left in-place
- BN.prototype.iushln = function iushln (bits) {
- assert(typeof bits === 'number' && bits >= 0);
- var r = bits % 26;
- var s = (bits - r) / 26;
- var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);
- var i;
- if (r !== 0) {
- var carry = 0;
- for (i = 0; i < this.length; i++) {
- var newCarry = this.words[i] & carryMask;
- var c = ((this.words[i] | 0) - newCarry) << r;
- this.words[i] = c | carry;
- carry = newCarry >>> (26 - r);
- }
- if (carry) {
- this.words[i] = carry;
- this.length++;
- }
- }
- if (s !== 0) {
- for (i = this.length - 1; i >= 0; i--) {
- this.words[i + s] = this.words[i];
- }
- for (i = 0; i < s; i++) {
- this.words[i] = 0;
- }
- this.length += s;
- }
- return this._strip();
- };
- BN.prototype.ishln = function ishln (bits) {
- // TODO(indutny): implement me
- assert(this.negative === 0);
- return this.iushln(bits);
- };
- // Shift-right in-place
- // NOTE: `hint` is a lowest bit before trailing zeroes
- // NOTE: if `extended` is present - it will be filled with destroyed bits
- BN.prototype.iushrn = function iushrn (bits, hint, extended) {
- assert(typeof bits === 'number' && bits >= 0);
- var h;
- if (hint) {
- h = (hint - (hint % 26)) / 26;
- } else {
- h = 0;
- }
- var r = bits % 26;
- var s = Math.min((bits - r) / 26, this.length);
- var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);
- var maskedWords = extended;
- h -= s;
- h = Math.max(0, h);
- // Extended mode, copy masked part
- if (maskedWords) {
- for (var i = 0; i < s; i++) {
- maskedWords.words[i] = this.words[i];
- }
- maskedWords.length = s;
- }
- if (s === 0) {
- // No-op, we should not move anything at all
- } else if (this.length > s) {
- this.length -= s;
- for (i = 0; i < this.length; i++) {
- this.words[i] = this.words[i + s];
- }
- } else {
- this.words[0] = 0;
- this.length = 1;
- }
- var carry = 0;
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
- var word = this.words[i] | 0;
- this.words[i] = (carry << (26 - r)) | (word >>> r);
- carry = word & mask;
- }
- // Push carried bits as a mask
- if (maskedWords && carry !== 0) {
- maskedWords.words[maskedWords.length++] = carry;
- }
- if (this.length === 0) {
- this.words[0] = 0;
- this.length = 1;
- }
- return this._strip();
- };
- BN.prototype.ishrn = function ishrn (bits, hint, extended) {
- // TODO(indutny): implement me
- assert(this.negative === 0);
- return this.iushrn(bits, hint, extended);
- };
- // Shift-left
- BN.prototype.shln = function shln (bits) {
- return this.clone().ishln(bits);
- };
- BN.prototype.ushln = function ushln (bits) {
- return this.clone().iushln(bits);
- };
- // Shift-right
- BN.prototype.shrn = function shrn (bits) {
- return this.clone().ishrn(bits);
- };
- BN.prototype.ushrn = function ushrn (bits) {
- return this.clone().iushrn(bits);
- };
- // Test if n bit is set
- BN.prototype.testn = function testn (bit) {
- assert(typeof bit === 'number' && bit >= 0);
- var r = bit % 26;
- var s = (bit - r) / 26;
- var q = 1 << r;
- // Fast case: bit is much higher than all existing words
- if (this.length <= s) return false;
- // Check bit and return
- var w = this.words[s];
- return !!(w & q);
- };
- // Return only lowers bits of number (in-place)
- BN.prototype.imaskn = function imaskn (bits) {
- assert(typeof bits === 'number' && bits >= 0);
- var r = bits % 26;
- var s = (bits - r) / 26;
- assert(this.negative === 0, 'imaskn works only with positive numbers');
- if (this.length <= s) {
- return this;
- }
- if (r !== 0) {
- s++;
- }
- this.length = Math.min(s, this.length);
- if (r !== 0) {
- var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);
- this.words[this.length - 1] &= mask;
- }
- return this._strip();
- };
- // Return only lowers bits of number
- BN.prototype.maskn = function maskn (bits) {
- return this.clone().imaskn(bits);
- };
- // Add plain number `num` to `this`
- BN.prototype.iaddn = function iaddn (num) {
- assert(typeof num === 'number');
- assert(num < 0x4000000);
- if (num < 0) return this.isubn(-num);
- // Possible sign change
- if (this.negative !== 0) {
- if (this.length === 1 && (this.words[0] | 0) <= num) {
- this.words[0] = num - (this.words[0] | 0);
- this.negative = 0;
- return this;
- }
- this.negative = 0;
- this.isubn(num);
- this.negative = 1;
- return this;
- }
- // Add without checks
- return this._iaddn(num);
- };
- BN.prototype._iaddn = function _iaddn (num) {
- this.words[0] += num;
- // Carry
- for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {
- this.words[i] -= 0x4000000;
- if (i === this.length - 1) {
- this.words[i + 1] = 1;
- } else {
- this.words[i + 1]++;
- }
- }
- this.length = Math.max(this.length, i + 1);
- return this;
- };
- // Subtract plain number `num` from `this`
- BN.prototype.isubn = function isubn (num) {
- assert(typeof num === 'number');
- assert(num < 0x4000000);
- if (num < 0) return this.iaddn(-num);
- if (this.negative !== 0) {
- this.negative = 0;
- this.iaddn(num);
- this.negative = 1;
- return this;
- }
- this.words[0] -= num;
- if (this.length === 1 && this.words[0] < 0) {
- this.words[0] = -this.words[0];
- this.negative = 1;
- } else {
- // Carry
- for (var i = 0; i < this.length && this.words[i] < 0; i++) {
- this.words[i] += 0x4000000;
- this.words[i + 1] -= 1;
- }
- }
- return this._strip();
- };
- BN.prototype.addn = function addn (num) {
- return this.clone().iaddn(num);
- };
- BN.prototype.subn = function subn (num) {
- return this.clone().isubn(num);
- };
- BN.prototype.iabs = function iabs () {
- this.negative = 0;
- return this;
- };
- BN.prototype.abs = function abs () {
- return this.clone().iabs();
- };
- BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
- var len = num.length + shift;
- var i;
- this._expand(len);
- var w;
- var carry = 0;
- for (i = 0; i < num.length; i++) {
- w = (this.words[i + shift] | 0) + carry;
- var right = (num.words[i] | 0) * mul;
- w -= right & 0x3ffffff;
- carry = (w >> 26) - ((right / 0x4000000) | 0);
- this.words[i + shift] = w & 0x3ffffff;
- }
- for (; i < this.length - shift; i++) {
- w = (this.words[i + shift] | 0) + carry;
- carry = w >> 26;
- this.words[i + shift] = w & 0x3ffffff;
- }
- if (carry === 0) return this._strip();
- // Subtraction overflow
- assert(carry === -1);
- carry = 0;
- for (i = 0; i < this.length; i++) {
- w = -(this.words[i] | 0) + carry;
- carry = w >> 26;
- this.words[i] = w & 0x3ffffff;
- }
- this.negative = 1;
- return this._strip();
- };
- BN.prototype._wordDiv = function _wordDiv (num, mode) {
- var shift = this.length - num.length;
- var a = this.clone();
- var b = num;
- // Normalize
- var bhi = b.words[b.length - 1] | 0;
- var bhiBits = this._countBits(bhi);
- shift = 26 - bhiBits;
- if (shift !== 0) {
- b = b.ushln(shift);
- a.iushln(shift);
- bhi = b.words[b.length - 1] | 0;
- }
- // Initialize quotient
- var m = a.length - b.length;
- var q;
- if (mode !== 'mod') {
- q = new BN(null);
- q.length = m + 1;
- q.words = new Array(q.length);
- for (var i = 0; i < q.length; i++) {
- q.words[i] = 0;
- }
- }
- var diff = a.clone()._ishlnsubmul(b, 1, m);
- if (diff.negative === 0) {
- a = diff;
- if (q) {
- q.words[m] = 1;
- }
- }
- for (var j = m - 1; j >= 0; j--) {
- var qj = (a.words[b.length + j] | 0) * 0x4000000 +
- (a.words[b.length + j - 1] | 0);
- // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max
- // (0x7ffffff)
- qj = Math.min((qj / bhi) | 0, 0x3ffffff);
- a._ishlnsubmul(b, qj, j);
- while (a.negative !== 0) {
- qj--;
- a.negative = 0;
- a._ishlnsubmul(b, 1, j);
- if (!a.isZero()) {
- a.negative ^= 1;
- }
- }
- if (q) {
- q.words[j] = qj;
- }
- }
- if (q) {
- q._strip();
- }
- a._strip();
- // Denormalize
- if (mode !== 'div' && shift !== 0) {
- a.iushrn(shift);
- }
- return {
- div: q || null,
- mod: a
- };
- };
- // NOTE: 1) `mode` can be set to `mod` to request mod only,
- // to `div` to request div only, or be absent to
- // request both div & mod
- // 2) `positive` is true if unsigned mod is requested
- BN.prototype.divmod = function divmod (num, mode, positive) {
- assert(!num.isZero());
- if (this.isZero()) {
- return {
- div: new BN(0),
- mod: new BN(0)
- };
- }
- var div, mod, res;
- if (this.negative !== 0 && num.negative === 0) {
- res = this.neg().divmod(num, mode);
- if (mode !== 'mod') {
- div = res.div.neg();
- }
- if (mode !== 'div') {
- mod = res.mod.neg();
- if (positive && mod.negative !== 0) {
- mod.iadd(num);
- }
- }
- return {
- div: div,
- mod: mod
- };
- }
- if (this.negative === 0 && num.negative !== 0) {
- res = this.divmod(num.neg(), mode);
- if (mode !== 'mod') {
- div = res.div.neg();
- }
- return {
- div: div,
- mod: res.mod
- };
- }
- if ((this.negative & num.negative) !== 0) {
- res = this.neg().divmod(num.neg(), mode);
- if (mode !== 'div') {
- mod = res.mod.neg();
- if (positive && mod.negative !== 0) {
- mod.isub(num);
- }
- }
- return {
- div: res.div,
- mod: mod
- };
- }
- // Both numbers are positive at this point
- // Strip both numbers to approximate shift value
- if (num.length > this.length || this.cmp(num) < 0) {
- return {
- div: new BN(0),
- mod: this
- };
- }
- // Very short reduction
- if (num.length === 1) {
- if (mode === 'div') {
- return {
- div: this.divn(num.words[0]),
- mod: null
- };
- }
- if (mode === 'mod') {
- return {
- div: null,
- mod: new BN(this.modrn(num.words[0]))
- };
- }
- return {
- div: this.divn(num.words[0]),
- mod: new BN(this.modrn(num.words[0]))
- };
- }
- return this._wordDiv(num, mode);
- };
- // Find `this` / `num`
- BN.prototype.div = function div (num) {
- return this.divmod(num, 'div', false).div;
- };
- // Find `this` % `num`
- BN.prototype.mod = function mod (num) {
- return this.divmod(num, 'mod', false).mod;
- };
- BN.prototype.umod = function umod (num) {
- return this.divmod(num, 'mod', true).mod;
- };
- // Find Round(`this` / `num`)
- BN.prototype.divRound = function divRound (num) {
- var dm = this.divmod(num);
- // Fast case - exact division
- if (dm.mod.isZero()) return dm.div;
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
- var half = num.ushrn(1);
- var r2 = num.andln(1);
- var cmp = mod.cmp(half);
- // Round down
- if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;
- // Round up
- return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
- };
- BN.prototype.modrn = function modrn (num) {
- var isNegNum = num < 0;
- if (isNegNum) num = -num;
- assert(num <= 0x3ffffff);
- var p = (1 << 26) % num;
- var acc = 0;
- for (var i = this.length - 1; i >= 0; i--) {
- acc = (p * acc + (this.words[i] | 0)) % num;
- }
- return isNegNum ? -acc : acc;
- };
- // WARNING: DEPRECATED
- BN.prototype.modn = function modn (num) {
- return this.modrn(num);
- };
- // In-place division by number
- BN.prototype.idivn = function idivn (num) {
- var isNegNum = num < 0;
- if (isNegNum) num = -num;
- assert(num <= 0x3ffffff);
- var carry = 0;
- for (var i = this.length - 1; i >= 0; i--) {
- var w = (this.words[i] | 0) + carry * 0x4000000;
- this.words[i] = (w / num) | 0;
- carry = w % num;
- }
- this._strip();
- return isNegNum ? this.ineg() : this;
- };
- BN.prototype.divn = function divn (num) {
- return this.clone().idivn(num);
- };
- BN.prototype.egcd = function egcd (p) {
- assert(p.negative === 0);
- assert(!p.isZero());
- var x = this;
- var y = p.clone();
- if (x.negative !== 0) {
- x = x.umod(p);
- } else {
- x = x.clone();
- }
- // A * x + B * y = x
- var A = new BN(1);
- var B = new BN(0);
- // C * x + D * y = y
- var C = new BN(0);
- var D = new BN(1);
- var g = 0;
- while (x.isEven() && y.isEven()) {
- x.iushrn(1);
- y.iushrn(1);
- ++g;
- }
- var yp = y.clone();
- var xp = x.clone();
- while (!x.isZero()) {
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) {
- x.iushrn(i);
- while (i-- > 0) {
- if (A.isOdd() || B.isOdd()) {
- A.iadd(yp);
- B.isub(xp);
- }
- A.iushrn(1);
- B.iushrn(1);
- }
- }
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) {
- y.iushrn(j);
- while (j-- > 0) {
- if (C.isOdd() || D.isOdd()) {
- C.iadd(yp);
- D.isub(xp);
- }
- C.iushrn(1);
- D.iushrn(1);
- }
- }
- if (x.cmp(y) >= 0) {
- x.isub(y);
- A.isub(C);
- B.isub(D);
- } else {
- y.isub(x);
- C.isub(A);
- D.isub(B);
- }
- }
- return {
- a: C,
- b: D,
- gcd: y.iushln(g)
- };
- };
- // This is reduced incarnation of the binary EEA
- // above, designated to invert members of the
- // _prime_ fields F(p) at a maximal speed
- BN.prototype._invmp = function _invmp (p) {
- assert(p.negative === 0);
- assert(!p.isZero());
- var a = this;
- var b = p.clone();
- if (a.negative !== 0) {
- a = a.umod(p);
- } else {
- a = a.clone();
- }
- var x1 = new BN(1);
- var x2 = new BN(0);
- var delta = b.clone();
- while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) {
- a.iushrn(i);
- while (i-- > 0) {
- if (x1.isOdd()) {
- x1.iadd(delta);
- }
- x1.iushrn(1);
- }
- }
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) {
- b.iushrn(j);
- while (j-- > 0) {
- if (x2.isOdd()) {
- x2.iadd(delta);
- }
- x2.iushrn(1);
- }
- }
- if (a.cmp(b) >= 0) {
- a.isub(b);
- x1.isub(x2);
- } else {
- b.isub(a);
- x2.isub(x1);
- }
- }
- var res;
- if (a.cmpn(1) === 0) {
- res = x1;
- } else {
- res = x2;
- }
- if (res.cmpn(0) < 0) {
- res.iadd(p);
- }
- return res;
- };
- BN.prototype.gcd = function gcd (num) {
- if (this.isZero()) return num.abs();
- if (num.isZero()) return this.abs();
- var a = this.clone();
- var b = num.clone();
- a.negative = 0;
- b.negative = 0;
- // Remove common factor of two
- for (var shift = 0; a.isEven() && b.isEven(); shift++) {
- a.iushrn(1);
- b.iushrn(1);
- }
- do {
- while (a.isEven()) {
- a.iushrn(1);
- }
- while (b.isEven()) {
- b.iushrn(1);
- }
- var r = a.cmp(b);
- if (r < 0) {
- // Swap `a` and `b` to make `a` always bigger than `b`
- var t = a;
- a = b;
- b = t;
- } else if (r === 0 || b.cmpn(1) === 0) {
- break;
- }
- a.isub(b);
- } while (true);
- return b.iushln(shift);
- };
- // Invert number in the field F(num)
- BN.prototype.invm = function invm (num) {
- return this.egcd(num).a.umod(num);
- };
- BN.prototype.isEven = function isEven () {
- return (this.words[0] & 1) === 0;
- };
- BN.prototype.isOdd = function isOdd () {
- return (this.words[0] & 1) === 1;
- };
- // And first word and num
- BN.prototype.andln = function andln (num) {
- return this.words[0] & num;
- };
- // Increment at the bit position in-line
- BN.prototype.bincn = function bincn (bit) {
- assert(typeof bit === 'number');
- var r = bit % 26;
- var s = (bit - r) / 26;
- var q = 1 << r;
- // Fast case: bit is much higher than all existing words
- if (this.length <= s) {
- this._expand(s + 1);
- this.words[s] |= q;
- return this;
- }
- // Add bit and propagate, if needed
- var carry = q;
- for (var i = s; carry !== 0 && i < this.length; i++) {
- var w = this.words[i] | 0;
- w += carry;
- carry = w >>> 26;
- w &= 0x3ffffff;
- this.words[i] = w;
- }
- if (carry !== 0) {
- this.words[i] = carry;
- this.length++;
- }
- return this;
- };
- BN.prototype.isZero = function isZero () {
- return this.length === 1 && this.words[0] === 0;
- };
- BN.prototype.cmpn = function cmpn (num) {
- var negative = num < 0;
- if (this.negative !== 0 && !negative) return -1;
- if (this.negative === 0 && negative) return 1;
- this._strip();
- var res;
- if (this.length > 1) {
- res = 1;
- } else {
- if (negative) {
- num = -num;
- }
- assert(num <= 0x3ffffff, 'Number is too big');
- var w = this.words[0] | 0;
- res = w === num ? 0 : w < num ? -1 : 1;
- }
- if (this.negative !== 0) return -res | 0;
- return res;
- };
- // Compare two numbers and return:
- // 1 - if `this` > `num`
- // 0 - if `this` == `num`
- // -1 - if `this` < `num`
- BN.prototype.cmp = function cmp (num) {
- if (this.negative !== 0 && num.negative === 0) return -1;
- if (this.negative === 0 && num.negative !== 0) return 1;
- var res = this.ucmp(num);
- if (this.negative !== 0) return -res | 0;
- return res;
- };
- // Unsigned comparison
- BN.prototype.ucmp = function ucmp (num) {
- // At this point both numbers have the same sign
- if (this.length > num.length) return 1;
- if (this.length < num.length) return -1;
- var res = 0;
- for (var i = this.length - 1; i >= 0; i--) {
- var a = this.words[i] | 0;
- var b = num.words[i] | 0;
- if (a === b) continue;
- if (a < b) {
- res = -1;
- } else if (a > b) {
- res = 1;
- }
- break;
- }
- return res;
- };
- BN.prototype.gtn = function gtn (num) {
- return this.cmpn(num) === 1;
- };
- BN.prototype.gt = function gt (num) {
- return this.cmp(num) === 1;
- };
- BN.prototype.gten = function gten (num) {
- return this.cmpn(num) >= 0;
- };
- BN.prototype.gte = function gte (num) {
- return this.cmp(num) >= 0;
- };
- BN.prototype.ltn = function ltn (num) {
- return this.cmpn(num) === -1;
- };
- BN.prototype.lt = function lt (num) {
- return this.cmp(num) === -1;
- };
- BN.prototype.lten = function lten (num) {
- return this.cmpn(num) <= 0;
- };
- BN.prototype.lte = function lte (num) {
- return this.cmp(num) <= 0;
- };
- BN.prototype.eqn = function eqn (num) {
- return this.cmpn(num) === 0;
- };
- BN.prototype.eq = function eq (num) {
- return this.cmp(num) === 0;
- };
- //
- // A reduce context, could be using montgomery or something better, depending
- // on the `m` itself.
- //
- BN.red = function red (num) {
- return new Red(num);
- };
- BN.prototype.toRed = function toRed (ctx) {
- assert(!this.red, 'Already a number in reduction context');
- assert(this.negative === 0, 'red works only with positives');
- return ctx.convertTo(this)._forceRed(ctx);
- };
- BN.prototype.fromRed = function fromRed () {
- assert(this.red, 'fromRed works only with numbers in reduction context');
- return this.red.convertFrom(this);
- };
- BN.prototype._forceRed = function _forceRed (ctx) {
- this.red = ctx;
- return this;
- };
- BN.prototype.forceRed = function forceRed (ctx) {
- assert(!this.red, 'Already a number in reduction context');
- return this._forceRed(ctx);
- };
- BN.prototype.redAdd = function redAdd (num) {
- assert(this.red, 'redAdd works only with red numbers');
- return this.red.add(this, num);
- };
- BN.prototype.redIAdd = function redIAdd (num) {
- assert(this.red, 'redIAdd works only with red numbers');
- return this.red.iadd(this, num);
- };
- BN.prototype.redSub = function redSub (num) {
- assert(this.red, 'redSub works only with red numbers');
- return this.red.sub(this, num);
- };
- BN.prototype.redISub = function redISub (num) {
- assert(this.red, 'redISub works only with red numbers');
- return this.red.isub(this, num);
- };
- BN.prototype.redShl = function redShl (num) {
- assert(this.red, 'redShl works only with red numbers');
- return this.red.shl(this, num);
- };
- BN.prototype.redMul = function redMul (num) {
- assert(this.red, 'redMul works only with red numbers');
- this.red._verify2(this, num);
- return this.red.mul(this, num);
- };
- BN.prototype.redIMul = function redIMul (num) {
- assert(this.red, 'redMul works only with red numbers');
- this.red._verify2(this, num);
- return this.red.imul(this, num);
- };
- BN.prototype.redSqr = function redSqr () {
- assert(this.red, 'redSqr works only with red numbers');
- this.red._verify1(this);
- return this.red.sqr(this);
- };
- BN.prototype.redISqr = function redISqr () {
- assert(this.red, 'redISqr works only with red numbers');
- this.red._verify1(this);
- return this.red.isqr(this);
- };
- // Square root over p
- BN.prototype.redSqrt = function redSqrt () {
- assert(this.red, 'redSqrt works only with red numbers');
- this.red._verify1(this);
- return this.red.sqrt(this);
- };
- BN.prototype.redInvm = function redInvm () {
- assert(this.red, 'redInvm works only with red numbers');
- this.red._verify1(this);
- return this.red.invm(this);
- };
- // Return negative clone of `this` % `red modulo`
- BN.prototype.redNeg = function redNeg () {
- assert(this.red, 'redNeg works only with red numbers');
- this.red._verify1(this);
- return this.red.neg(this);
- };
- BN.prototype.redPow = function redPow (num) {
- assert(this.red && !num.red, 'redPow(normalNum)');
- this.red._verify1(this);
- return this.red.pow(this, num);
- };
- // Prime numbers with efficient reduction
- var primes = {
- k256: null,
- p224: null,
- p192: null,
- p25519: null
- };
- // Pseudo-Mersenne prime
- function MPrime (name, p) {
- // P = 2 ^ N - K
- this.name = name;
- this.p = new BN(p, 16);
- this.n = this.p.bitLength();
- this.k = new BN(1).iushln(this.n).isub(this.p);
- this.tmp = this._tmp();
- }
- MPrime.prototype._tmp = function _tmp () {
- var tmp = new BN(null);
- tmp.words = new Array(Math.ceil(this.n / 13));
- return tmp;
- };
- MPrime.prototype.ireduce = function ireduce (num) {
- // Assumes that `num` is less than `P^2`
- // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
- var r = num;
- var rlen;
- do {
- this.split(r, this.tmp);
- r = this.imulK(r);
- r = r.iadd(this.tmp);
- rlen = r.bitLength();
- } while (rlen > this.n);
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
- if (cmp === 0) {
- r.words[0] = 0;
- r.length = 1;
- } else if (cmp > 0) {
- r.isub(this.p);
- } else {
- if (r.strip !== undefined) {
- // r is a BN v4 instance
- r.strip();
- } else {
- // r is a BN v5 instance
- r._strip();
- }
- }
- return r;
- };
- MPrime.prototype.split = function split (input, out) {
- input.iushrn(this.n, 0, out);
- };
- MPrime.prototype.imulK = function imulK (num) {
- return num.imul(this.k);
- };
- function K256 () {
- MPrime.call(
- this,
- 'k256',
- 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
- }
- inherits(K256, MPrime);
- K256.prototype.split = function split (input, output) {
- // 256 = 9 * 26 + 22
- var mask = 0x3fffff;
- var outLen = Math.min(input.length, 9);
- for (var i = 0; i < outLen; i++) {
- output.words[i] = input.words[i];
- }
- output.length = outLen;
- if (input.length <= 9) {
- input.words[0] = 0;
- input.length = 1;
- return;
- }
- // Shift by 9 limbs
- var prev = input.words[9];
- output.words[output.length++] = prev & mask;
- for (i = 10; i < input.length; i++) {
- var next = input.words[i] | 0;
- input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);
- prev = next;
- }
- prev >>>= 22;
- input.words[i - 10] = prev;
- if (prev === 0 && input.length > 10) {
- input.length -= 10;
- } else {
- input.length -= 9;
- }
- };
- K256.prototype.imulK = function imulK (num) {
- // K = 0x1000003d1 = [ 0x40, 0x3d1 ]
- num.words[num.length] = 0;
- num.words[num.length + 1] = 0;
- num.length += 2;
- // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390
- var lo = 0;
- for (var i = 0; i < num.length; i++) {
- var w = num.words[i] | 0;
- lo += w * 0x3d1;
- num.words[i] = lo & 0x3ffffff;
- lo = w * 0x40 + ((lo / 0x4000000) | 0);
- }
- // Fast length reduction
- if (num.words[num.length - 1] === 0) {
- num.length--;
- if (num.words[num.length - 1] === 0) {
- num.length--;
- }
- }
- return num;
- };
- function P224 () {
- MPrime.call(
- this,
- 'p224',
- 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');
- }
- inherits(P224, MPrime);
- function P192 () {
- MPrime.call(
- this,
- 'p192',
- 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
- }
- inherits(P192, MPrime);
- function P25519 () {
- // 2 ^ 255 - 19
- MPrime.call(
- this,
- '25519',
- '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
- }
- inherits(P25519, MPrime);
- P25519.prototype.imulK = function imulK (num) {
- // K = 0x13
- var carry = 0;
- for (var i = 0; i < num.length; i++) {
- var hi = (num.words[i] | 0) * 0x13 + carry;
- var lo = hi & 0x3ffffff;
- hi >>>= 26;
- num.words[i] = lo;
- carry = hi;
- }
- if (carry !== 0) {
- num.words[num.length++] = carry;
- }
- return num;
- };
- // Exported mostly for testing purposes, use plain name instead
- BN._prime = function prime (name) {
- // Cached version of prime
- if (primes[name]) return primes[name];
- var prime;
- if (name === 'k256') {
- prime = new K256();
- } else if (name === 'p224') {
- prime = new P224();
- } else if (name === 'p192') {
- prime = new P192();
- } else if (name === 'p25519') {
- prime = new P25519();
- } else {
- throw new Error('Unknown prime ' + name);
- }
- primes[name] = prime;
- return prime;
- };
- //
- // Base reduction engine
- //
- function Red (m) {
- if (typeof m === 'string') {
- var prime = BN._prime(m);
- this.m = prime.p;
- this.prime = prime;
- } else {
- assert(m.gtn(1), 'modulus must be greater than 1');
- this.m = m;
- this.prime = null;
- }
- }
- Red.prototype._verify1 = function _verify1 (a) {
- assert(a.negative === 0, 'red works only with positives');
- assert(a.red, 'red works only with red numbers');
- };
- Red.prototype._verify2 = function _verify2 (a, b) {
- assert((a.negative | b.negative) === 0, 'red works only with positives');
- assert(a.red && a.red === b.red,
- 'red works only with red numbers');
- };
- Red.prototype.imod = function imod (a) {
- if (this.prime) return this.prime.ireduce(a)._forceRed(this);
- move(a, a.umod(this.m)._forceRed(this));
- return a;
- };
- Red.prototype.neg = function neg (a) {
- if (a.isZero()) {
- return a.clone();
- }
- return this.m.sub(a)._forceRed(this);
- };
- Red.prototype.add = function add (a, b) {
- this._verify2(a, b);
- var res = a.add(b);
- if (res.cmp(this.m) >= 0) {
- res.isub(this.m);
- }
- return res._forceRed(this);
- };
- Red.prototype.iadd = function iadd (a, b) {
- this._verify2(a, b);
- var res = a.iadd(b);
- if (res.cmp(this.m) >= 0) {
- res.isub(this.m);
- }
- return res;
- };
- Red.prototype.sub = function sub (a, b) {
- this._verify2(a, b);
- var res = a.sub(b);
- if (res.cmpn(0) < 0) {
- res.iadd(this.m);
- }
- return res._forceRed(this);
- };
- Red.prototype.isub = function isub (a, b) {
- this._verify2(a, b);
- var res = a.isub(b);
- if (res.cmpn(0) < 0) {
- res.iadd(this.m);
- }
- return res;
- };
- Red.prototype.shl = function shl (a, num) {
- this._verify1(a);
- return this.imod(a.ushln(num));
- };
- Red.prototype.imul = function imul (a, b) {
- this._verify2(a, b);
- return this.imod(a.imul(b));
- };
- Red.prototype.mul = function mul (a, b) {
- this._verify2(a, b);
- return this.imod(a.mul(b));
- };
- Red.prototype.isqr = function isqr (a) {
- return this.imul(a, a.clone());
- };
- Red.prototype.sqr = function sqr (a) {
- return this.mul(a, a);
- };
- Red.prototype.sqrt = function sqrt (a) {
- if (a.isZero()) return a.clone();
- var mod3 = this.m.andln(3);
- assert(mod3 % 2 === 1);
- // Fast case
- if (mod3 === 3) {
- var pow = this.m.add(new BN(1)).iushrn(2);
- return this.pow(a, pow);
- }
- // Tonelli-Shanks algorithm (Totally unoptimized and slow)
- //
- // Find Q and S, that Q * 2 ^ S = (P - 1)
- var q = this.m.subn(1);
- var s = 0;
- while (!q.isZero() && q.andln(1) === 0) {
- s++;
- q.iushrn(1);
- }
- assert(!q.isZero());
- var one = new BN(1).toRed(this);
- var nOne = one.redNeg();
- // Find quadratic non-residue
- // NOTE: Max is such because of generalized Riemann hypothesis.
- var lpow = this.m.subn(1).iushrn(1);
- var z = this.m.bitLength();
- z = new BN(2 * z * z).toRed(this);
- while (this.pow(z, lpow).cmp(nOne) !== 0) {
- z.redIAdd(nOne);
- }
- var c = this.pow(z, q);
- var r = this.pow(a, q.addn(1).iushrn(1));
- var t = this.pow(a, q);
- var m = s;
- while (t.cmp(one) !== 0) {
- var tmp = t;
- for (var i = 0; tmp.cmp(one) !== 0; i++) {
- tmp = tmp.redSqr();
- }
- assert(i < m);
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
- r = r.redMul(b);
- c = b.redSqr();
- t = t.redMul(c);
- m = i;
- }
- return r;
- };
- Red.prototype.invm = function invm (a) {
- var inv = a._invmp(this.m);
- if (inv.negative !== 0) {
- inv.negative = 0;
- return this.imod(inv).redNeg();
- } else {
- return this.imod(inv);
- }
- };
- Red.prototype.pow = function pow (a, num) {
- if (num.isZero()) return new BN(1).toRed(this);
- if (num.cmpn(1) === 0) return a.clone();
- var windowSize = 4;
- var wnd = new Array(1 << windowSize);
- wnd[0] = new BN(1).toRed(this);
- wnd[1] = a;
- for (var i = 2; i < wnd.length; i++) {
- wnd[i] = this.mul(wnd[i - 1], a);
- }
- var res = wnd[0];
- var current = 0;
- var currentLen = 0;
- var start = num.bitLength() % 26;
- if (start === 0) {
- start = 26;
- }
- for (i = num.length - 1; i >= 0; i--) {
- var word = num.words[i];
- for (var j = start - 1; j >= 0; j--) {
- var bit = (word >> j) & 1;
- if (res !== wnd[0]) {
- res = this.sqr(res);
- }
- if (bit === 0 && current === 0) {
- currentLen = 0;
- continue;
- }
- current <<= 1;
- current |= bit;
- currentLen++;
- if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
- res = this.mul(res, wnd[current]);
- currentLen = 0;
- current = 0;
- }
- start = 26;
- }
- return res;
- };
- Red.prototype.convertTo = function convertTo (num) {
- var r = num.umod(this.m);
- return r === num ? r.clone() : r;
- };
- Red.prototype.convertFrom = function convertFrom (num) {
- var res = num.clone();
- res.red = null;
- return res;
- };
- //
- // Montgomery method engine
- //
- BN.mont = function mont (num) {
- return new Mont(num);
- };
- function Mont (m) {
- Red.call(this, m);
- this.shift = this.m.bitLength();
- if (this.shift % 26 !== 0) {
- this.shift += 26 - (this.shift % 26);
- }
- this.r = new BN(1).iushln(this.shift);
- this.r2 = this.imod(this.r.sqr());
- this.rinv = this.r._invmp(this.m);
- this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
- this.minv = this.minv.umod(this.r);
- this.minv = this.r.sub(this.minv);
- }
- inherits(Mont, Red);
- Mont.prototype.convertTo = function convertTo (num) {
- return this.imod(num.ushln(this.shift));
- };
- Mont.prototype.convertFrom = function convertFrom (num) {
- var r = this.imod(num.mul(this.rinv));
- r.red = null;
- return r;
- };
- Mont.prototype.imul = function imul (a, b) {
- if (a.isZero() || b.isZero()) {
- a.words[0] = 0;
- a.length = 1;
- return a;
- }
- var t = a.imul(b);
- var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
- var u = t.isub(c).iushrn(this.shift);
- var res = u;
- if (u.cmp(this.m) >= 0) {
- res = u.isub(this.m);
- } else if (u.cmpn(0) < 0) {
- res = u.iadd(this.m);
- }
- return res._forceRed(this);
- };
- Mont.prototype.mul = function mul (a, b) {
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
- var t = a.mul(b);
- var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
- var u = t.isub(c).iushrn(this.shift);
- var res = u;
- if (u.cmp(this.m) >= 0) {
- res = u.isub(this.m);
- } else if (u.cmpn(0) < 0) {
- res = u.iadd(this.m);
- }
- return res._forceRed(this);
- };
- Mont.prototype.invm = function invm (a) {
- // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R
- var res = this.imod(a._invmp(this.m).mul(this.r2));
- return res._forceRed(this);
- };
- })(typeof module === 'undefined' || module, this);
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("3IRH")(module)))
- /***/ }),
- /***/ "x0Ha":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /*<replacement>*/
- var pna = __webpack_require__("ypnx");
- /*</replacement>*/
- // undocumented cb() API, needed for core, not for public API
- function destroy(err, cb) {
- var _this = this;
- var readableDestroyed = this._readableState && this._readableState.destroyed;
- var writableDestroyed = this._writableState && this._writableState.destroyed;
- if (readableDestroyed || writableDestroyed) {
- if (cb) {
- cb(err);
- } else if (err) {
- if (!this._writableState) {
- pna.nextTick(emitErrorNT, this, err);
- } else if (!this._writableState.errorEmitted) {
- this._writableState.errorEmitted = true;
- pna.nextTick(emitErrorNT, this, err);
- }
- }
- return this;
- }
- // we set destroyed to true before firing error callbacks in order
- // to make it re-entrance safe in case destroy() is called within callbacks
- if (this._readableState) {
- this._readableState.destroyed = true;
- }
- // if this is a duplex stream mark the writable part as destroyed as well
- if (this._writableState) {
- this._writableState.destroyed = true;
- }
- this._destroy(err || null, function (err) {
- if (!cb && err) {
- if (!_this._writableState) {
- pna.nextTick(emitErrorNT, _this, err);
- } else if (!_this._writableState.errorEmitted) {
- _this._writableState.errorEmitted = true;
- pna.nextTick(emitErrorNT, _this, err);
- }
- } else if (cb) {
- cb(err);
- }
- });
- return this;
- }
- function undestroy() {
- if (this._readableState) {
- this._readableState.destroyed = false;
- this._readableState.reading = false;
- this._readableState.ended = false;
- this._readableState.endEmitted = false;
- }
- if (this._writableState) {
- this._writableState.destroyed = false;
- this._writableState.ended = false;
- this._writableState.ending = false;
- this._writableState.finalCalled = false;
- this._writableState.prefinished = false;
- this._writableState.finished = false;
- this._writableState.errorEmitted = false;
- }
- }
- function emitErrorNT(self, err) {
- self.emit('error', err);
- }
- module.exports = {
- destroy: destroy,
- undestroy: undestroy
- };
- /***/ }),
- /***/ "xWCr":
- /***/ (function(module, exports) {
- module.exports = function () {
- throw new Error('Readable.from is not available in the browser')
- };
- /***/ }),
- /***/ "xXuq":
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__("vzCy").EventEmitter;
- /***/ }),
- /***/ "yDvu":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var Buffer = __webpack_require__("X3l8").Buffer
- var Transform = __webpack_require__("dCRq").Transform
- var inherits = __webpack_require__("LC74")
- function throwIfNotStringOrBuffer (val, prefix) {
- if (!Buffer.isBuffer(val) && typeof val !== 'string') {
- throw new TypeError(prefix + ' must be a string or a buffer')
- }
- }
- function HashBase (blockSize) {
- Transform.call(this)
- this._block = Buffer.allocUnsafe(blockSize)
- this._blockSize = blockSize
- this._blockOffset = 0
- this._length = [0, 0, 0, 0]
- this._finalized = false
- }
- inherits(HashBase, Transform)
- HashBase.prototype._transform = function (chunk, encoding, callback) {
- var error = null
- try {
- this.update(chunk, encoding)
- } catch (err) {
- error = err
- }
- callback(error)
- }
- HashBase.prototype._flush = function (callback) {
- var error = null
- try {
- this.push(this.digest())
- } catch (err) {
- error = err
- }
- callback(error)
- }
- HashBase.prototype.update = function (data, encoding) {
- throwIfNotStringOrBuffer(data, 'Data')
- if (this._finalized) throw new Error('Digest already called')
- if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
- // consume data
- var block = this._block
- var offset = 0
- while (this._blockOffset + data.length - offset >= this._blockSize) {
- for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
- this._update()
- this._blockOffset = 0
- }
- while (offset < data.length) block[this._blockOffset++] = data[offset++]
- // update length
- for (var j = 0, carry = data.length * 8; carry > 0; ++j) {
- this._length[j] += carry
- carry = (this._length[j] / 0x0100000000) | 0
- if (carry > 0) this._length[j] -= 0x0100000000 * carry
- }
- return this
- }
- HashBase.prototype._update = function () {
- throw new Error('_update is not implemented')
- }
- HashBase.prototype.digest = function (encoding) {
- if (this._finalized) throw new Error('Digest already called')
- this._finalized = true
- var digest = this._digest()
- if (encoding !== undefined) digest = digest.toString(encoding)
- // reset state
- this._block.fill(0)
- this._blockOffset = 0
- for (var i = 0; i < 4; ++i) this._length[i] = 0
- return digest
- }
- HashBase.prototype._digest = function () {
- throw new Error('_digest is not implemented')
- }
- module.exports = HashBase
- /***/ }),
- /***/ "yMmo":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var BN = __webpack_require__("geuY");
- var utils = __webpack_require__("TkWM");
- var assert = utils.assert;
- function KeyPair(ec, options) {
- this.ec = ec;
- this.priv = null;
- this.pub = null;
- // KeyPair(ec, { priv: ..., pub: ... })
- if (options.priv)
- this._importPrivate(options.priv, options.privEnc);
- if (options.pub)
- this._importPublic(options.pub, options.pubEnc);
- }
- module.exports = KeyPair;
- KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
- if (pub instanceof KeyPair)
- return pub;
- return new KeyPair(ec, {
- pub: pub,
- pubEnc: enc,
- });
- };
- KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
- if (priv instanceof KeyPair)
- return priv;
- return new KeyPair(ec, {
- priv: priv,
- privEnc: enc,
- });
- };
- KeyPair.prototype.validate = function validate() {
- var pub = this.getPublic();
- if (pub.isInfinity())
- return { result: false, reason: 'Invalid public key' };
- if (!pub.validate())
- return { result: false, reason: 'Public key is not a point' };
- if (!pub.mul(this.ec.curve.n).isInfinity())
- return { result: false, reason: 'Public key * N != O' };
- return { result: true, reason: null };
- };
- KeyPair.prototype.getPublic = function getPublic(compact, enc) {
- // compact is optional argument
- if (typeof compact === 'string') {
- enc = compact;
- compact = null;
- }
- if (!this.pub)
- this.pub = this.ec.g.mul(this.priv);
- if (!enc)
- return this.pub;
- return this.pub.encode(enc, compact);
- };
- KeyPair.prototype.getPrivate = function getPrivate(enc) {
- if (enc === 'hex')
- return this.priv.toString(16, 2);
- else
- return this.priv;
- };
- KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
- this.priv = new BN(key, enc || 16);
- // Ensure that the priv won't be bigger than n, otherwise we may fail
- // in fixed multiplication method
- this.priv = this.priv.umod(this.ec.curve.n);
- };
- KeyPair.prototype._importPublic = function _importPublic(key, enc) {
- if (key.x || key.y) {
- // Montgomery points only have an `x` coordinate.
- // Weierstrass/Edwards points on the other hand have both `x` and
- // `y` coordinates.
- if (this.ec.curve.type === 'mont') {
- assert(key.x, 'Need x coordinate');
- } else if (this.ec.curve.type === 'short' ||
- this.ec.curve.type === 'edwards') {
- assert(key.x && key.y, 'Need both x and y coordinate');
- }
- this.pub = this.ec.curve.point(key.x, key.y);
- return;
- }
- this.pub = this.ec.curve.decodePoint(key, enc);
- };
- // ECDH
- KeyPair.prototype.derive = function derive(pub) {
- if(!pub.validate()) {
- assert(pub.validate(), 'public point not validated');
- }
- return pub.mul(this.priv).getX();
- };
- // ECDSA
- KeyPair.prototype.sign = function sign(msg, enc, options) {
- return this.ec.sign(msg, this, enc, options);
- };
- KeyPair.prototype.verify = function verify(msg, signature) {
- return this.ec.verify(msg, signature, this);
- };
- KeyPair.prototype.inspect = function inspect() {
- return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) +
- ' pub: ' + (this.pub && this.pub.inspect()) + ' >';
- };
- /***/ }),
- /***/ "ypnx":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(process) {
- if (typeof process === 'undefined' ||
- !process.version ||
- process.version.indexOf('v0.') === 0 ||
- process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
- module.exports = { nextTick: nextTick };
- } else {
- module.exports = process
- }
- function nextTick(fn, arg1, arg2, arg3) {
- if (typeof fn !== 'function') {
- throw new TypeError('"callback" argument must be a function');
- }
- var len = arguments.length;
- var args, i;
- switch (len) {
- case 0:
- case 1:
- return process.nextTick(fn);
- case 2:
- return process.nextTick(function afterTickOne() {
- fn.call(null, arg1);
- });
- case 3:
- return process.nextTick(function afterTickTwo() {
- fn.call(null, arg1, arg2);
- });
- case 4:
- return process.nextTick(function afterTickThree() {
- fn.call(null, arg1, arg2, arg3);
- });
- default:
- args = new Array(len - 1);
- i = 0;
- while (i < args.length) {
- args[i++] = arguments[i];
- }
- return process.nextTick(function afterTick() {
- fn.apply(null, args);
- });
- }
- }
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("W2nU")))
- /***/ }),
- /***/ "ytBe":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_EasyPlayer_vue__ = __webpack_require__("a4Og");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7512d01a_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_EasyPlayer_vue__ = __webpack_require__("X1+k");
- function injectStyle (ssrContext) {
- __webpack_require__("8RE6")
- __webpack_require__("oFOW")
- }
- var normalizeComponent = __webpack_require__("VU/8")
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = injectStyle
- /* scopeId */
- var __vue_scopeId__ = "data-v-7512d01a"
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = normalizeComponent(
- __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_EasyPlayer_vue__["a" /* default */],
- __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7512d01a_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_EasyPlayer_vue__["a" /* default */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- /* harmony default export */ __webpack_exports__["a"] = (Component.exports);
- /***/ }),
- /***/ "z+8S":
- /***/ (function(module, exports, __webpack_require__) {
- var Buffer = __webpack_require__("X3l8").Buffer
- var Transform = __webpack_require__("9DG0").Transform
- var StringDecoder = __webpack_require__("X4X3").StringDecoder
- var inherits = __webpack_require__("LC74")
- function CipherBase (hashMode) {
- Transform.call(this)
- this.hashMode = typeof hashMode === 'string'
- if (this.hashMode) {
- this[hashMode] = this._finalOrDigest
- } else {
- this.final = this._finalOrDigest
- }
- if (this._final) {
- this.__final = this._final
- this._final = null
- }
- this._decoder = null
- this._encoding = null
- }
- inherits(CipherBase, Transform)
- CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
- if (typeof data === 'string') {
- data = Buffer.from(data, inputEnc)
- }
- var outData = this._update(data)
- if (this.hashMode) return this
- if (outputEnc) {
- outData = this._toString(outData, outputEnc)
- }
- return outData
- }
- CipherBase.prototype.setAutoPadding = function () {}
- CipherBase.prototype.getAuthTag = function () {
- throw new Error('trying to get auth tag in unsupported state')
- }
- CipherBase.prototype.setAuthTag = function () {
- throw new Error('trying to set auth tag in unsupported state')
- }
- CipherBase.prototype.setAAD = function () {
- throw new Error('trying to set aad in unsupported state')
- }
- CipherBase.prototype._transform = function (data, _, next) {
- var err
- try {
- if (this.hashMode) {
- this._update(data)
- } else {
- this.push(this._update(data))
- }
- } catch (e) {
- err = e
- } finally {
- next(err)
- }
- }
- CipherBase.prototype._flush = function (done) {
- var err
- try {
- this.push(this.__final())
- } catch (e) {
- err = e
- }
- done(err)
- }
- CipherBase.prototype._finalOrDigest = function (outputEnc) {
- var outData = this.__final() || Buffer.alloc(0)
- if (outputEnc) {
- outData = this._toString(outData, outputEnc, true)
- }
- return outData
- }
- CipherBase.prototype._toString = function (value, enc, fin) {
- if (!this._decoder) {
- this._decoder = new StringDecoder(enc)
- this._encoding = enc
- }
- if (this._encoding !== enc) throw new Error('can\'t switch encodings')
- var out = this._decoder.write(value)
- if (fin) {
- out += this._decoder.end()
- }
- return out
- }
- module.exports = CipherBase
- /***/ }),
- /***/ "zLEk":
- /***/ (function(module, exports) {
- module.exports = "data:font/woff2;base64,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"
- /***/ }),
- /***/ "zOO0":
- /***/ (function(module, exports) {
- module.exports = function xor (a, b) {
- var len = a.length
- var i = -1
- while (++i < len) {
- a[i] ^= b[i]
- }
- return a
- }
- /***/ }),
- /***/ "zvjZ":
- /***/ (function(module, exports, __webpack_require__) {
- /**
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
- * in FIPS 180-2
- * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- *
- */
- var inherits = __webpack_require__("LC74")
- var Hash = __webpack_require__("CzQx")
- var Buffer = __webpack_require__("X3l8").Buffer
- var K = [
- 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
- 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
- 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
- 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
- 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
- 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
- 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
- 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
- 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
- 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
- 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
- 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
- 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
- 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
- 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
- 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
- ]
- var W = new Array(64)
- function Sha256 () {
- this.init()
- this._w = W // new Array(64)
- Hash.call(this, 64, 56)
- }
- inherits(Sha256, Hash)
- Sha256.prototype.init = function () {
- this._a = 0x6a09e667
- this._b = 0xbb67ae85
- this._c = 0x3c6ef372
- this._d = 0xa54ff53a
- this._e = 0x510e527f
- this._f = 0x9b05688c
- this._g = 0x1f83d9ab
- this._h = 0x5be0cd19
- return this
- }
- function ch (x, y, z) {
- return z ^ (x & (y ^ z))
- }
- function maj (x, y, z) {
- return (x & y) | (z & (x | y))
- }
- function sigma0 (x) {
- return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)
- }
- function sigma1 (x) {
- return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)
- }
- function gamma0 (x) {
- return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)
- }
- function gamma1 (x) {
- return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)
- }
- Sha256.prototype._update = function (M) {
- var W = this._w
- var a = this._a | 0
- var b = this._b | 0
- var c = this._c | 0
- var d = this._d | 0
- var e = this._e | 0
- var f = this._f | 0
- var g = this._g | 0
- var h = this._h | 0
- for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
- for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0
- for (var j = 0; j < 64; ++j) {
- var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0
- var T2 = (sigma0(a) + maj(a, b, c)) | 0
- h = g
- g = f
- f = e
- e = (d + T1) | 0
- d = c
- c = b
- b = a
- a = (T1 + T2) | 0
- }
- this._a = (a + this._a) | 0
- this._b = (b + this._b) | 0
- this._c = (c + this._c) | 0
- this._d = (d + this._d) | 0
- this._e = (e + this._e) | 0
- this._f = (f + this._f) | 0
- this._g = (g + this._g) | 0
- this._h = (h + this._h) | 0
- }
- Sha256.prototype._hash = function () {
- var H = Buffer.allocUnsafe(32)
- H.writeInt32BE(this._a, 0)
- H.writeInt32BE(this._b, 4)
- H.writeInt32BE(this._c, 8)
- H.writeInt32BE(this._d, 12)
- H.writeInt32BE(this._e, 16)
- H.writeInt32BE(this._f, 20)
- H.writeInt32BE(this._g, 24)
- H.writeInt32BE(this._h, 28)
- return H
- }
- module.exports = Sha256
- /***/ })
- /******/ });
|