index.js 1.9 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871
  1. (function webpackUniversalModuleDefinition(root, factory) {
  2. if(typeof exports === 'object' && typeof module === 'object')
  3. module.exports = factory();
  4. else if(typeof define === 'function' && define.amd)
  5. define([], factory);
  6. else if(typeof exports === 'object')
  7. exports["d3v4pp"] = factory();
  8. else
  9. root["d3v4pp"] = factory();
  10. })(this, () => {
  11. return /******/ (() => { // webpackBootstrap
  12. /******/ var __webpack_modules__ = ({
  13. /***/ "./node_modules/autosize/dist/autosize.js":
  14. /*!************************************************!*\
  15. !*** ./node_modules/autosize/dist/autosize.js ***!
  16. \************************************************/
  17. /***/ (function(module, exports) {
  18. var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
  19. autosize 4.0.4
  20. license: MIT
  21. http://www.jacklmoore.com/autosize
  22. */
  23. (function (global, factory) {
  24. if (true) {
  25. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
  26. __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
  27. (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
  28. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  29. } else { var mod; }
  30. })(this, function (module, exports) {
  31. 'use strict';
  32. var map = typeof Map === "function" ? new Map() : function () {
  33. var keys = [];
  34. var values = [];
  35. return {
  36. has: function has(key) {
  37. return keys.indexOf(key) > -1;
  38. },
  39. get: function get(key) {
  40. return values[keys.indexOf(key)];
  41. },
  42. set: function set(key, value) {
  43. if (keys.indexOf(key) === -1) {
  44. keys.push(key);
  45. values.push(value);
  46. }
  47. },
  48. delete: function _delete(key) {
  49. var index = keys.indexOf(key);
  50. if (index > -1) {
  51. keys.splice(index, 1);
  52. values.splice(index, 1);
  53. }
  54. }
  55. };
  56. }();
  57. var createEvent = function createEvent(name) {
  58. return new Event(name, { bubbles: true });
  59. };
  60. try {
  61. new Event('test');
  62. } catch (e) {
  63. // IE does not support `new Event()`
  64. createEvent = function createEvent(name) {
  65. var evt = document.createEvent('Event');
  66. evt.initEvent(name, true, false);
  67. return evt;
  68. };
  69. }
  70. function assign(ta) {
  71. if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;
  72. var heightOffset = null;
  73. var clientWidth = null;
  74. var cachedHeight = null;
  75. function init() {
  76. var style = window.getComputedStyle(ta, null);
  77. if (style.resize === 'vertical') {
  78. ta.style.resize = 'none';
  79. } else if (style.resize === 'both') {
  80. ta.style.resize = 'horizontal';
  81. }
  82. if (style.boxSizing === 'content-box') {
  83. heightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));
  84. } else {
  85. heightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);
  86. }
  87. // Fix when a textarea is not on document body and heightOffset is Not a Number
  88. if (isNaN(heightOffset)) {
  89. heightOffset = 0;
  90. }
  91. update();
  92. }
  93. function changeOverflow(value) {
  94. {
  95. // Chrome/Safari-specific fix:
  96. // When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space
  97. // made available by removing the scrollbar. The following forces the necessary text reflow.
  98. var width = ta.style.width;
  99. ta.style.width = '0px';
  100. // Force reflow:
  101. /* jshint ignore:start */
  102. ta.offsetWidth;
  103. /* jshint ignore:end */
  104. ta.style.width = width;
  105. }
  106. ta.style.overflowY = value;
  107. }
  108. function getParentOverflows(el) {
  109. var arr = [];
  110. while (el && el.parentNode && el.parentNode instanceof Element) {
  111. if (el.parentNode.scrollTop) {
  112. arr.push({
  113. node: el.parentNode,
  114. scrollTop: el.parentNode.scrollTop
  115. });
  116. }
  117. el = el.parentNode;
  118. }
  119. return arr;
  120. }
  121. function resize() {
  122. if (ta.scrollHeight === 0) {
  123. // If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.
  124. return;
  125. }
  126. var overflows = getParentOverflows(ta);
  127. var docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)
  128. ta.style.height = '';
  129. ta.style.height = ta.scrollHeight + heightOffset + 'px';
  130. // used to check if an update is actually necessary on window.resize
  131. clientWidth = ta.clientWidth;
  132. // prevents scroll-position jumping
  133. overflows.forEach(function (el) {
  134. el.node.scrollTop = el.scrollTop;
  135. });
  136. if (docTop) {
  137. document.documentElement.scrollTop = docTop;
  138. }
  139. }
  140. function update() {
  141. resize();
  142. var styleHeight = Math.round(parseFloat(ta.style.height));
  143. var computed = window.getComputedStyle(ta, null);
  144. // Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box
  145. var actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;
  146. // The actual height not matching the style height (set via the resize method) indicates that
  147. // the max-height has been exceeded, in which case the overflow should be allowed.
  148. if (actualHeight < styleHeight) {
  149. if (computed.overflowY === 'hidden') {
  150. changeOverflow('scroll');
  151. resize();
  152. actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
  153. }
  154. } else {
  155. // Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.
  156. if (computed.overflowY !== 'hidden') {
  157. changeOverflow('hidden');
  158. resize();
  159. actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
  160. }
  161. }
  162. if (cachedHeight !== actualHeight) {
  163. cachedHeight = actualHeight;
  164. var evt = createEvent('autosize:resized');
  165. try {
  166. ta.dispatchEvent(evt);
  167. } catch (err) {
  168. // Firefox will throw an error on dispatchEvent for a detached element
  169. // https://bugzilla.mozilla.org/show_bug.cgi?id=889376
  170. }
  171. }
  172. }
  173. var pageResize = function pageResize() {
  174. if (ta.clientWidth !== clientWidth) {
  175. update();
  176. }
  177. };
  178. var destroy = function (style) {
  179. window.removeEventListener('resize', pageResize, false);
  180. ta.removeEventListener('input', update, false);
  181. ta.removeEventListener('keyup', update, false);
  182. ta.removeEventListener('autosize:destroy', destroy, false);
  183. ta.removeEventListener('autosize:update', update, false);
  184. Object.keys(style).forEach(function (key) {
  185. ta.style[key] = style[key];
  186. });
  187. map.delete(ta);
  188. }.bind(ta, {
  189. height: ta.style.height,
  190. resize: ta.style.resize,
  191. overflowY: ta.style.overflowY,
  192. overflowX: ta.style.overflowX,
  193. wordWrap: ta.style.wordWrap
  194. });
  195. ta.addEventListener('autosize:destroy', destroy, false);
  196. // IE9 does not fire onpropertychange or oninput for deletions,
  197. // so binding to onkeyup to catch most of those events.
  198. // There is no way that I know of to detect something like 'cut' in IE9.
  199. if ('onpropertychange' in ta && 'oninput' in ta) {
  200. ta.addEventListener('keyup', update, false);
  201. }
  202. window.addEventListener('resize', pageResize, false);
  203. ta.addEventListener('input', update, false);
  204. ta.addEventListener('autosize:update', update, false);
  205. ta.style.overflowX = 'hidden';
  206. ta.style.wordWrap = 'break-word';
  207. map.set(ta, {
  208. destroy: destroy,
  209. update: update
  210. });
  211. init();
  212. }
  213. function destroy(ta) {
  214. var methods = map.get(ta);
  215. if (methods) {
  216. methods.destroy();
  217. }
  218. }
  219. function update(ta) {
  220. var methods = map.get(ta);
  221. if (methods) {
  222. methods.update();
  223. }
  224. }
  225. var autosize = null;
  226. // Do nothing in Node.js environment and IE8 (or lower)
  227. if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {
  228. autosize = function autosize(el) {
  229. return el;
  230. };
  231. autosize.destroy = function (el) {
  232. return el;
  233. };
  234. autosize.update = function (el) {
  235. return el;
  236. };
  237. } else {
  238. autosize = function autosize(el, options) {
  239. if (el) {
  240. Array.prototype.forEach.call(el.length ? el : [el], function (x) {
  241. return assign(x, options);
  242. });
  243. }
  244. return el;
  245. };
  246. autosize.destroy = function (el) {
  247. if (el) {
  248. Array.prototype.forEach.call(el.length ? el : [el], destroy);
  249. }
  250. return el;
  251. };
  252. autosize.update = function (el) {
  253. if (el) {
  254. Array.prototype.forEach.call(el.length ? el : [el], update);
  255. }
  256. return el;
  257. };
  258. }
  259. exports.default = autosize;
  260. module.exports = exports['default'];
  261. });
  262. /***/ }),
  263. /***/ "./node_modules/computed-style/dist/computedStyle.commonjs.js":
  264. /*!********************************************************************!*\
  265. !*** ./node_modules/computed-style/dist/computedStyle.commonjs.js ***!
  266. \********************************************************************/
  267. /***/ ((module) => {
  268. // DEV: We don't use var but favor parameters since these play nicer with minification
  269. function computedStyle(el, prop, getComputedStyle, style) {
  270. getComputedStyle = window.getComputedStyle;
  271. style =
  272. // If we have getComputedStyle
  273. getComputedStyle ?
  274. // Query it
  275. // TODO: From CSS-Query notes, we might need (node, null) for FF
  276. getComputedStyle(el) :
  277. // Otherwise, we are in IE and use currentStyle
  278. el.currentStyle;
  279. if (style) {
  280. return style
  281. [
  282. // Switch to camelCase for CSSOM
  283. // DEV: Grabbed from jQuery
  284. // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194
  285. // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597
  286. prop.replace(/-(\w)/gi, function (word, letter) {
  287. return letter.toUpperCase();
  288. })
  289. ];
  290. }
  291. }
  292. module.exports = computedStyle;
  293. /***/ }),
  294. /***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/sass/d3v4pp.scss":
  295. /*!***************************************************************************************************************************************!*\
  296. !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/sass/d3v4pp.scss ***!
  297. \***************************************************************************************************************************************/
  298. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  299. "use strict";
  300. __webpack_require__.r(__webpack_exports__);
  301. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  302. /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
  303. /* harmony export */ });
  304. /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
  305. /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
  306. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
  307. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
  308. // Imports
  309. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
  310. ___CSS_LOADER_EXPORT___.push([module.id, "@import url(https://fonts.googleapis.com/css?family=Ubuntu);"]);
  311. // Module
  312. ___CSS_LOADER_EXPORT___.push([module.id, `@charset "UTF-8";
  313. .webo {
  314. background-color: #0062d6 !important;
  315. }
  316. .webo-text {
  317. color: #0062d6 !important;
  318. }
  319. .webo-waves .waves-ripple {
  320. background-color: #0062d6 !important;
  321. }
  322. .webo.chawlaw {
  323. background-color: #f39b43 !important;
  324. }
  325. .webo-text.text-chawlaw {
  326. color: #f39b43 !important;
  327. }
  328. .webo-waves.waves-chawlaw .waves-ripple {
  329. background-color: #f39b43 !important;
  330. }
  331. .webo.second {
  332. background-color: #0077FA !important;
  333. }
  334. .webo-text.text-second {
  335. color: #0077FA !important;
  336. }
  337. .webo-waves.waves-second .waves-ripple {
  338. background-color: #0077FA !important;
  339. }
  340. .webo.third {
  341. background-color: #09bddd !important;
  342. }
  343. .webo-text.text-third {
  344. color: #09bddd !important;
  345. }
  346. .webo-waves.waves-third .waves-ripple {
  347. background-color: #09bddd !important;
  348. }
  349. .webo.fourth {
  350. background-color: #cbe7fe !important;
  351. }
  352. .webo-text.text-fourth {
  353. color: #cbe7fe !important;
  354. }
  355. .webo-waves.waves-fourth .waves-ripple {
  356. background-color: #cbe7fe !important;
  357. }
  358. .webo.lighten-5 {
  359. background-color: #bbdefb !important;
  360. }
  361. .webo-text.text-lighten-5 {
  362. color: #bbdefb !important;
  363. }
  364. .webo-waves.waves-lighten-5 .waves-ripple {
  365. background-color: #bbdefb !important;
  366. }
  367. .webo.lighten-4 {
  368. background-color: #42a5f5 !important;
  369. }
  370. .webo-text.text-lighten-4 {
  371. color: #42a5f5 !important;
  372. }
  373. .webo-waves.waves-lighten-4 .waves-ripple {
  374. background-color: #42a5f5 !important;
  375. }
  376. .webo.lighten-3 {
  377. background-color: #7986cb !important;
  378. }
  379. .webo-text.text-lighten-3 {
  380. color: #7986cb !important;
  381. }
  382. .webo-waves.waves-lighten-3 .waves-ripple {
  383. background-color: #7986cb !important;
  384. }
  385. .webo.lighten-2 {
  386. background-color: #512da8 !important;
  387. }
  388. .webo-text.text-lighten-2 {
  389. color: #512da8 !important;
  390. }
  391. .webo-waves.waves-lighten-2 .waves-ripple {
  392. background-color: #512da8 !important;
  393. }
  394. .webo.lighten-1 {
  395. background-color: #283593 !important;
  396. }
  397. .webo-text.text-lighten-1 {
  398. color: #283593 !important;
  399. }
  400. .webo-waves.waves-lighten-1 .waves-ripple {
  401. background-color: #283593 !important;
  402. }
  403. .webo.darken-1 {
  404. background-color: #d0181e !important;
  405. }
  406. .webo-text.text-darken-1 {
  407. color: #d0181e !important;
  408. }
  409. .webo-waves.waves-darken-1 .waves-ripple {
  410. background-color: #d0181e !important;
  411. }
  412. .webo.darken-2 {
  413. background-color: #b9151b !important;
  414. }
  415. .webo-text.text-darken-2 {
  416. color: #b9151b !important;
  417. }
  418. .webo-waves.waves-darken-2 .waves-ripple {
  419. background-color: #b9151b !important;
  420. }
  421. .webo.darken-3 {
  422. background-color: #a21318 !important;
  423. }
  424. .webo-text.text-darken-3 {
  425. color: #a21318 !important;
  426. }
  427. .webo-waves.waves-darken-3 .waves-ripple {
  428. background-color: #a21318 !important;
  429. }
  430. .webo.b- {
  431. background-color: #49ce5f !important;
  432. }
  433. .webo-text.text-b- {
  434. color: #49ce5f !important;
  435. }
  436. .webo-waves.waves-b- .waves-ripple {
  437. background-color: #49ce5f !important;
  438. }
  439. .webo.darken-4 {
  440. background-color: #8b1014 !important;
  441. }
  442. .webo-text.text-darken-4 {
  443. color: #8b1014 !important;
  444. }
  445. .webo-waves.waves-darken-4 .waves-ripple {
  446. background-color: #8b1014 !important;
  447. }
  448. .red {
  449. background-color: #f44336 !important;
  450. }
  451. .red-text {
  452. color: #f44336 !important;
  453. }
  454. .red-waves .waves-ripple {
  455. background-color: #f44336 !important;
  456. }
  457. .red.lighten-5 {
  458. background-color: #ffebee !important;
  459. }
  460. .red-text.text-lighten-5 {
  461. color: #ffebee !important;
  462. }
  463. .red-waves.waves-lighten-5 .waves-ripple {
  464. background-color: #ffebee !important;
  465. }
  466. .red.lighten-4 {
  467. background-color: #ffcdd2 !important;
  468. }
  469. .red-text.text-lighten-4 {
  470. color: #ffcdd2 !important;
  471. }
  472. .red-waves.waves-lighten-4 .waves-ripple {
  473. background-color: #ffcdd2 !important;
  474. }
  475. .red.lighten-3 {
  476. background-color: #ef9a9a !important;
  477. }
  478. .red-text.text-lighten-3 {
  479. color: #ef9a9a !important;
  480. }
  481. .red-waves.waves-lighten-3 .waves-ripple {
  482. background-color: #ef9a9a !important;
  483. }
  484. .red.lighten-2 {
  485. background-color: #e57373 !important;
  486. }
  487. .red-text.text-lighten-2 {
  488. color: #e57373 !important;
  489. }
  490. .red-waves.waves-lighten-2 .waves-ripple {
  491. background-color: #e57373 !important;
  492. }
  493. .red.lighten-1 {
  494. background-color: #ef5350 !important;
  495. }
  496. .red-text.text-lighten-1 {
  497. color: #ef5350 !important;
  498. }
  499. .red-waves.waves-lighten-1 .waves-ripple {
  500. background-color: #ef5350 !important;
  501. }
  502. .red.darken-1 {
  503. background-color: #e53935 !important;
  504. }
  505. .red-text.text-darken-1 {
  506. color: #e53935 !important;
  507. }
  508. .red-waves.waves-darken-1 .waves-ripple {
  509. background-color: #e53935 !important;
  510. }
  511. .red.darken-2 {
  512. background-color: #d32f2f !important;
  513. }
  514. .red-text.text-darken-2 {
  515. color: #d32f2f !important;
  516. }
  517. .red-waves.waves-darken-2 .waves-ripple {
  518. background-color: #d32f2f !important;
  519. }
  520. .red.darken-3 {
  521. background-color: #c62828 !important;
  522. }
  523. .red-text.text-darken-3 {
  524. color: #c62828 !important;
  525. }
  526. .red-waves.waves-darken-3 .waves-ripple {
  527. background-color: #c62828 !important;
  528. }
  529. .red.darken-4 {
  530. background-color: #b71c1c !important;
  531. }
  532. .red-text.text-darken-4 {
  533. color: #b71c1c !important;
  534. }
  535. .red-waves.waves-darken-4 .waves-ripple {
  536. background-color: #b71c1c !important;
  537. }
  538. .red.accent-1 {
  539. background-color: #ff8a80 !important;
  540. }
  541. .red-text.text-accent-1 {
  542. color: #ff8a80 !important;
  543. }
  544. .red-waves.waves-accent-1 .waves-ripple {
  545. background-color: #ff8a80 !important;
  546. }
  547. .red.accent-2 {
  548. background-color: #ff5252 !important;
  549. }
  550. .red-text.text-accent-2 {
  551. color: #ff5252 !important;
  552. }
  553. .red-waves.waves-accent-2 .waves-ripple {
  554. background-color: #ff5252 !important;
  555. }
  556. .red.accent-3 {
  557. background-color: #ff1744 !important;
  558. }
  559. .red-text.text-accent-3 {
  560. color: #ff1744 !important;
  561. }
  562. .red-waves.waves-accent-3 .waves-ripple {
  563. background-color: #ff1744 !important;
  564. }
  565. .red.accent-4 {
  566. background-color: #d50000 !important;
  567. }
  568. .red-text.text-accent-4 {
  569. color: #d50000 !important;
  570. }
  571. .red-waves.waves-accent-4 .waves-ripple {
  572. background-color: #d50000 !important;
  573. }
  574. .pink {
  575. background-color: #e91e63 !important;
  576. }
  577. .pink-text {
  578. color: #e91e63 !important;
  579. }
  580. .pink-waves .waves-ripple {
  581. background-color: #e91e63 !important;
  582. }
  583. .pink.lighten-5 {
  584. background-color: #fce4ec !important;
  585. }
  586. .pink-text.text-lighten-5 {
  587. color: #fce4ec !important;
  588. }
  589. .pink-waves.waves-lighten-5 .waves-ripple {
  590. background-color: #fce4ec !important;
  591. }
  592. .pink.lighten-4 {
  593. background-color: #f8bbd0 !important;
  594. }
  595. .pink-text.text-lighten-4 {
  596. color: #f8bbd0 !important;
  597. }
  598. .pink-waves.waves-lighten-4 .waves-ripple {
  599. background-color: #f8bbd0 !important;
  600. }
  601. .pink.lighten-3 {
  602. background-color: #f48fb1 !important;
  603. }
  604. .pink-text.text-lighten-3 {
  605. color: #f48fb1 !important;
  606. }
  607. .pink-waves.waves-lighten-3 .waves-ripple {
  608. background-color: #f48fb1 !important;
  609. }
  610. .pink.lighten-2 {
  611. background-color: #f06292 !important;
  612. }
  613. .pink-text.text-lighten-2 {
  614. color: #f06292 !important;
  615. }
  616. .pink-waves.waves-lighten-2 .waves-ripple {
  617. background-color: #f06292 !important;
  618. }
  619. .pink.lighten-1 {
  620. background-color: #ec407a !important;
  621. }
  622. .pink-text.text-lighten-1 {
  623. color: #ec407a !important;
  624. }
  625. .pink-waves.waves-lighten-1 .waves-ripple {
  626. background-color: #ec407a !important;
  627. }
  628. .pink.darken-1 {
  629. background-color: #d81b60 !important;
  630. }
  631. .pink-text.text-darken-1 {
  632. color: #d81b60 !important;
  633. }
  634. .pink-waves.waves-darken-1 .waves-ripple {
  635. background-color: #d81b60 !important;
  636. }
  637. .pink.darken-2 {
  638. background-color: #c2185b !important;
  639. }
  640. .pink-text.text-darken-2 {
  641. color: #c2185b !important;
  642. }
  643. .pink-waves.waves-darken-2 .waves-ripple {
  644. background-color: #c2185b !important;
  645. }
  646. .pink.darken-3 {
  647. background-color: #ad1457 !important;
  648. }
  649. .pink-text.text-darken-3 {
  650. color: #ad1457 !important;
  651. }
  652. .pink-waves.waves-darken-3 .waves-ripple {
  653. background-color: #ad1457 !important;
  654. }
  655. .pink.darken-4 {
  656. background-color: #880e4f !important;
  657. }
  658. .pink-text.text-darken-4 {
  659. color: #880e4f !important;
  660. }
  661. .pink-waves.waves-darken-4 .waves-ripple {
  662. background-color: #880e4f !important;
  663. }
  664. .pink.accent-1 {
  665. background-color: #ff80ab !important;
  666. }
  667. .pink-text.text-accent-1 {
  668. color: #ff80ab !important;
  669. }
  670. .pink-waves.waves-accent-1 .waves-ripple {
  671. background-color: #ff80ab !important;
  672. }
  673. .pink.accent-2 {
  674. background-color: #ff4081 !important;
  675. }
  676. .pink-text.text-accent-2 {
  677. color: #ff4081 !important;
  678. }
  679. .pink-waves.waves-accent-2 .waves-ripple {
  680. background-color: #ff4081 !important;
  681. }
  682. .pink.accent-3 {
  683. background-color: #f50057 !important;
  684. }
  685. .pink-text.text-accent-3 {
  686. color: #f50057 !important;
  687. }
  688. .pink-waves.waves-accent-3 .waves-ripple {
  689. background-color: #f50057 !important;
  690. }
  691. .pink.accent-4 {
  692. background-color: #c51162 !important;
  693. }
  694. .pink-text.text-accent-4 {
  695. color: #c51162 !important;
  696. }
  697. .pink-waves.waves-accent-4 .waves-ripple {
  698. background-color: #c51162 !important;
  699. }
  700. .purple {
  701. background-color: #9c27b0 !important;
  702. }
  703. .purple-text {
  704. color: #9c27b0 !important;
  705. }
  706. .purple-waves .waves-ripple {
  707. background-color: #9c27b0 !important;
  708. }
  709. .purple.lighten-5 {
  710. background-color: #f3e5f5 !important;
  711. }
  712. .purple-text.text-lighten-5 {
  713. color: #f3e5f5 !important;
  714. }
  715. .purple-waves.waves-lighten-5 .waves-ripple {
  716. background-color: #f3e5f5 !important;
  717. }
  718. .purple.lighten-4 {
  719. background-color: #e1bee7 !important;
  720. }
  721. .purple-text.text-lighten-4 {
  722. color: #e1bee7 !important;
  723. }
  724. .purple-waves.waves-lighten-4 .waves-ripple {
  725. background-color: #e1bee7 !important;
  726. }
  727. .purple.lighten-3 {
  728. background-color: #ce93d8 !important;
  729. }
  730. .purple-text.text-lighten-3 {
  731. color: #ce93d8 !important;
  732. }
  733. .purple-waves.waves-lighten-3 .waves-ripple {
  734. background-color: #ce93d8 !important;
  735. }
  736. .purple.lighten-2 {
  737. background-color: #ba68c8 !important;
  738. }
  739. .purple-text.text-lighten-2 {
  740. color: #ba68c8 !important;
  741. }
  742. .purple-waves.waves-lighten-2 .waves-ripple {
  743. background-color: #ba68c8 !important;
  744. }
  745. .purple.lighten-1 {
  746. background-color: #ab47bc !important;
  747. }
  748. .purple-text.text-lighten-1 {
  749. color: #ab47bc !important;
  750. }
  751. .purple-waves.waves-lighten-1 .waves-ripple {
  752. background-color: #ab47bc !important;
  753. }
  754. .purple.darken-1 {
  755. background-color: #8e24aa !important;
  756. }
  757. .purple-text.text-darken-1 {
  758. color: #8e24aa !important;
  759. }
  760. .purple-waves.waves-darken-1 .waves-ripple {
  761. background-color: #8e24aa !important;
  762. }
  763. .purple.darken-2 {
  764. background-color: #7b1fa2 !important;
  765. }
  766. .purple-text.text-darken-2 {
  767. color: #7b1fa2 !important;
  768. }
  769. .purple-waves.waves-darken-2 .waves-ripple {
  770. background-color: #7b1fa2 !important;
  771. }
  772. .purple.darken-3 {
  773. background-color: #6a1b9a !important;
  774. }
  775. .purple-text.text-darken-3 {
  776. color: #6a1b9a !important;
  777. }
  778. .purple-waves.waves-darken-3 .waves-ripple {
  779. background-color: #6a1b9a !important;
  780. }
  781. .purple.darken-4 {
  782. background-color: #4a148c !important;
  783. }
  784. .purple-text.text-darken-4 {
  785. color: #4a148c !important;
  786. }
  787. .purple-waves.waves-darken-4 .waves-ripple {
  788. background-color: #4a148c !important;
  789. }
  790. .purple.accent-1 {
  791. background-color: #ea80fc !important;
  792. }
  793. .purple-text.text-accent-1 {
  794. color: #ea80fc !important;
  795. }
  796. .purple-waves.waves-accent-1 .waves-ripple {
  797. background-color: #ea80fc !important;
  798. }
  799. .purple.accent-2 {
  800. background-color: #e040fb !important;
  801. }
  802. .purple-text.text-accent-2 {
  803. color: #e040fb !important;
  804. }
  805. .purple-waves.waves-accent-2 .waves-ripple {
  806. background-color: #e040fb !important;
  807. }
  808. .purple.accent-3 {
  809. background-color: #d500f9 !important;
  810. }
  811. .purple-text.text-accent-3 {
  812. color: #d500f9 !important;
  813. }
  814. .purple-waves.waves-accent-3 .waves-ripple {
  815. background-color: #d500f9 !important;
  816. }
  817. .purple.accent-4 {
  818. background-color: #aa00ff !important;
  819. }
  820. .purple-text.text-accent-4 {
  821. color: #aa00ff !important;
  822. }
  823. .purple-waves.waves-accent-4 .waves-ripple {
  824. background-color: #aa00ff !important;
  825. }
  826. .deep-purple {
  827. background-color: #673ab7 !important;
  828. }
  829. .deep-purple-text {
  830. color: #673ab7 !important;
  831. }
  832. .deep-purple-waves .waves-ripple {
  833. background-color: #673ab7 !important;
  834. }
  835. .deep-purple.lighten-5 {
  836. background-color: #ede7f6 !important;
  837. }
  838. .deep-purple-text.text-lighten-5 {
  839. color: #ede7f6 !important;
  840. }
  841. .deep-purple-waves.waves-lighten-5 .waves-ripple {
  842. background-color: #ede7f6 !important;
  843. }
  844. .deep-purple.lighten-4 {
  845. background-color: #d1c4e9 !important;
  846. }
  847. .deep-purple-text.text-lighten-4 {
  848. color: #d1c4e9 !important;
  849. }
  850. .deep-purple-waves.waves-lighten-4 .waves-ripple {
  851. background-color: #d1c4e9 !important;
  852. }
  853. .deep-purple.lighten-3 {
  854. background-color: #b39ddb !important;
  855. }
  856. .deep-purple-text.text-lighten-3 {
  857. color: #b39ddb !important;
  858. }
  859. .deep-purple-waves.waves-lighten-3 .waves-ripple {
  860. background-color: #b39ddb !important;
  861. }
  862. .deep-purple.lighten-2 {
  863. background-color: #9575cd !important;
  864. }
  865. .deep-purple-text.text-lighten-2 {
  866. color: #9575cd !important;
  867. }
  868. .deep-purple-waves.waves-lighten-2 .waves-ripple {
  869. background-color: #9575cd !important;
  870. }
  871. .deep-purple.lighten-1 {
  872. background-color: #7e57c2 !important;
  873. }
  874. .deep-purple-text.text-lighten-1 {
  875. color: #7e57c2 !important;
  876. }
  877. .deep-purple-waves.waves-lighten-1 .waves-ripple {
  878. background-color: #7e57c2 !important;
  879. }
  880. .deep-purple.darken-1 {
  881. background-color: #5e35b1 !important;
  882. }
  883. .deep-purple-text.text-darken-1 {
  884. color: #5e35b1 !important;
  885. }
  886. .deep-purple-waves.waves-darken-1 .waves-ripple {
  887. background-color: #5e35b1 !important;
  888. }
  889. .deep-purple.darken-2 {
  890. background-color: #512da8 !important;
  891. }
  892. .deep-purple-text.text-darken-2 {
  893. color: #512da8 !important;
  894. }
  895. .deep-purple-waves.waves-darken-2 .waves-ripple {
  896. background-color: #512da8 !important;
  897. }
  898. .deep-purple.darken-3 {
  899. background-color: #4527a0 !important;
  900. }
  901. .deep-purple-text.text-darken-3 {
  902. color: #4527a0 !important;
  903. }
  904. .deep-purple-waves.waves-darken-3 .waves-ripple {
  905. background-color: #4527a0 !important;
  906. }
  907. .deep-purple.darken-4 {
  908. background-color: #311b92 !important;
  909. }
  910. .deep-purple-text.text-darken-4 {
  911. color: #311b92 !important;
  912. }
  913. .deep-purple-waves.waves-darken-4 .waves-ripple {
  914. background-color: #311b92 !important;
  915. }
  916. .deep-purple.accent-1 {
  917. background-color: #b388ff !important;
  918. }
  919. .deep-purple-text.text-accent-1 {
  920. color: #b388ff !important;
  921. }
  922. .deep-purple-waves.waves-accent-1 .waves-ripple {
  923. background-color: #b388ff !important;
  924. }
  925. .deep-purple.accent-2 {
  926. background-color: #7c4dff !important;
  927. }
  928. .deep-purple-text.text-accent-2 {
  929. color: #7c4dff !important;
  930. }
  931. .deep-purple-waves.waves-accent-2 .waves-ripple {
  932. background-color: #7c4dff !important;
  933. }
  934. .deep-purple.accent-3 {
  935. background-color: #651fff !important;
  936. }
  937. .deep-purple-text.text-accent-3 {
  938. color: #651fff !important;
  939. }
  940. .deep-purple-waves.waves-accent-3 .waves-ripple {
  941. background-color: #651fff !important;
  942. }
  943. .deep-purple.accent-4 {
  944. background-color: #6200ea !important;
  945. }
  946. .deep-purple-text.text-accent-4 {
  947. color: #6200ea !important;
  948. }
  949. .deep-purple-waves.waves-accent-4 .waves-ripple {
  950. background-color: #6200ea !important;
  951. }
  952. .indigo {
  953. background-color: #3f51b5 !important;
  954. }
  955. .indigo-text {
  956. color: #3f51b5 !important;
  957. }
  958. .indigo-waves .waves-ripple {
  959. background-color: #3f51b5 !important;
  960. }
  961. .indigo.lighten-5 {
  962. background-color: #e8eaf6 !important;
  963. }
  964. .indigo-text.text-lighten-5 {
  965. color: #e8eaf6 !important;
  966. }
  967. .indigo-waves.waves-lighten-5 .waves-ripple {
  968. background-color: #e8eaf6 !important;
  969. }
  970. .indigo.lighten-4 {
  971. background-color: #c5cae9 !important;
  972. }
  973. .indigo-text.text-lighten-4 {
  974. color: #c5cae9 !important;
  975. }
  976. .indigo-waves.waves-lighten-4 .waves-ripple {
  977. background-color: #c5cae9 !important;
  978. }
  979. .indigo.lighten-3 {
  980. background-color: #9fa8da !important;
  981. }
  982. .indigo-text.text-lighten-3 {
  983. color: #9fa8da !important;
  984. }
  985. .indigo-waves.waves-lighten-3 .waves-ripple {
  986. background-color: #9fa8da !important;
  987. }
  988. .indigo.lighten-2 {
  989. background-color: #7986cb !important;
  990. }
  991. .indigo-text.text-lighten-2 {
  992. color: #7986cb !important;
  993. }
  994. .indigo-waves.waves-lighten-2 .waves-ripple {
  995. background-color: #7986cb !important;
  996. }
  997. .indigo.lighten-1 {
  998. background-color: #5c6bc0 !important;
  999. }
  1000. .indigo-text.text-lighten-1 {
  1001. color: #5c6bc0 !important;
  1002. }
  1003. .indigo-waves.waves-lighten-1 .waves-ripple {
  1004. background-color: #5c6bc0 !important;
  1005. }
  1006. .indigo.darken-1 {
  1007. background-color: #3949ab !important;
  1008. }
  1009. .indigo-text.text-darken-1 {
  1010. color: #3949ab !important;
  1011. }
  1012. .indigo-waves.waves-darken-1 .waves-ripple {
  1013. background-color: #3949ab !important;
  1014. }
  1015. .indigo.darken-2 {
  1016. background-color: #303f9f !important;
  1017. }
  1018. .indigo-text.text-darken-2 {
  1019. color: #303f9f !important;
  1020. }
  1021. .indigo-waves.waves-darken-2 .waves-ripple {
  1022. background-color: #303f9f !important;
  1023. }
  1024. .indigo.darken-3 {
  1025. background-color: #283593 !important;
  1026. }
  1027. .indigo-text.text-darken-3 {
  1028. color: #283593 !important;
  1029. }
  1030. .indigo-waves.waves-darken-3 .waves-ripple {
  1031. background-color: #283593 !important;
  1032. }
  1033. .indigo.darken-4 {
  1034. background-color: #1a237e !important;
  1035. }
  1036. .indigo-text.text-darken-4 {
  1037. color: #1a237e !important;
  1038. }
  1039. .indigo-waves.waves-darken-4 .waves-ripple {
  1040. background-color: #1a237e !important;
  1041. }
  1042. .indigo.accent-1 {
  1043. background-color: #8c9eff !important;
  1044. }
  1045. .indigo-text.text-accent-1 {
  1046. color: #8c9eff !important;
  1047. }
  1048. .indigo-waves.waves-accent-1 .waves-ripple {
  1049. background-color: #8c9eff !important;
  1050. }
  1051. .indigo.accent-2 {
  1052. background-color: #536dfe !important;
  1053. }
  1054. .indigo-text.text-accent-2 {
  1055. color: #536dfe !important;
  1056. }
  1057. .indigo-waves.waves-accent-2 .waves-ripple {
  1058. background-color: #536dfe !important;
  1059. }
  1060. .indigo.accent-3 {
  1061. background-color: #3d5afe !important;
  1062. }
  1063. .indigo-text.text-accent-3 {
  1064. color: #3d5afe !important;
  1065. }
  1066. .indigo-waves.waves-accent-3 .waves-ripple {
  1067. background-color: #3d5afe !important;
  1068. }
  1069. .indigo.accent-4 {
  1070. background-color: #304ffe !important;
  1071. }
  1072. .indigo-text.text-accent-4 {
  1073. color: #304ffe !important;
  1074. }
  1075. .indigo-waves.waves-accent-4 .waves-ripple {
  1076. background-color: #304ffe !important;
  1077. }
  1078. .blue {
  1079. background-color: #2196f3 !important;
  1080. }
  1081. .blue-text {
  1082. color: #2196f3 !important;
  1083. }
  1084. .blue-waves .waves-ripple {
  1085. background-color: #2196f3 !important;
  1086. }
  1087. .blue.lighten-5 {
  1088. background-color: #e3f2fd !important;
  1089. }
  1090. .blue-text.text-lighten-5 {
  1091. color: #e3f2fd !important;
  1092. }
  1093. .blue-waves.waves-lighten-5 .waves-ripple {
  1094. background-color: #e3f2fd !important;
  1095. }
  1096. .blue.lighten-4 {
  1097. background-color: #bbdefb !important;
  1098. }
  1099. .blue-text.text-lighten-4 {
  1100. color: #bbdefb !important;
  1101. }
  1102. .blue-waves.waves-lighten-4 .waves-ripple {
  1103. background-color: #bbdefb !important;
  1104. }
  1105. .blue.lighten-3 {
  1106. background-color: #90caf9 !important;
  1107. }
  1108. .blue-text.text-lighten-3 {
  1109. color: #90caf9 !important;
  1110. }
  1111. .blue-waves.waves-lighten-3 .waves-ripple {
  1112. background-color: #90caf9 !important;
  1113. }
  1114. .blue.lighten-2 {
  1115. background-color: #64b5f6 !important;
  1116. }
  1117. .blue-text.text-lighten-2 {
  1118. color: #64b5f6 !important;
  1119. }
  1120. .blue-waves.waves-lighten-2 .waves-ripple {
  1121. background-color: #64b5f6 !important;
  1122. }
  1123. .blue.lighten-1 {
  1124. background-color: #42a5f5 !important;
  1125. }
  1126. .blue-text.text-lighten-1 {
  1127. color: #42a5f5 !important;
  1128. }
  1129. .blue-waves.waves-lighten-1 .waves-ripple {
  1130. background-color: #42a5f5 !important;
  1131. }
  1132. .blue.darken-1 {
  1133. background-color: #1e88e5 !important;
  1134. }
  1135. .blue-text.text-darken-1 {
  1136. color: #1e88e5 !important;
  1137. }
  1138. .blue-waves.waves-darken-1 .waves-ripple {
  1139. background-color: #1e88e5 !important;
  1140. }
  1141. .blue.darken-2 {
  1142. background-color: #1976d2 !important;
  1143. }
  1144. .blue-text.text-darken-2 {
  1145. color: #1976d2 !important;
  1146. }
  1147. .blue-waves.waves-darken-2 .waves-ripple {
  1148. background-color: #1976d2 !important;
  1149. }
  1150. .blue.darken-3 {
  1151. background-color: #1565c0 !important;
  1152. }
  1153. .blue-text.text-darken-3 {
  1154. color: #1565c0 !important;
  1155. }
  1156. .blue-waves.waves-darken-3 .waves-ripple {
  1157. background-color: #1565c0 !important;
  1158. }
  1159. .blue.darken-4 {
  1160. background-color: #0d47a1 !important;
  1161. }
  1162. .blue-text.text-darken-4 {
  1163. color: #0d47a1 !important;
  1164. }
  1165. .blue-waves.waves-darken-4 .waves-ripple {
  1166. background-color: #0d47a1 !important;
  1167. }
  1168. .blue.accent-1 {
  1169. background-color: #82b1ff !important;
  1170. }
  1171. .blue-text.text-accent-1 {
  1172. color: #82b1ff !important;
  1173. }
  1174. .blue-waves.waves-accent-1 .waves-ripple {
  1175. background-color: #82b1ff !important;
  1176. }
  1177. .blue.accent-2 {
  1178. background-color: #448aff !important;
  1179. }
  1180. .blue-text.text-accent-2 {
  1181. color: #448aff !important;
  1182. }
  1183. .blue-waves.waves-accent-2 .waves-ripple {
  1184. background-color: #448aff !important;
  1185. }
  1186. .blue.accent-3 {
  1187. background-color: #2979ff !important;
  1188. }
  1189. .blue-text.text-accent-3 {
  1190. color: #2979ff !important;
  1191. }
  1192. .blue-waves.waves-accent-3 .waves-ripple {
  1193. background-color: #2979ff !important;
  1194. }
  1195. .blue.accent-4 {
  1196. background-color: #2962ff !important;
  1197. }
  1198. .blue-text.text-accent-4 {
  1199. color: #2962ff !important;
  1200. }
  1201. .blue-waves.waves-accent-4 .waves-ripple {
  1202. background-color: #2962ff !important;
  1203. }
  1204. .light-blue {
  1205. background-color: #03a9f4 !important;
  1206. }
  1207. .light-blue-text {
  1208. color: #03a9f4 !important;
  1209. }
  1210. .light-blue-waves .waves-ripple {
  1211. background-color: #03a9f4 !important;
  1212. }
  1213. .light-blue.lighten-5 {
  1214. background-color: #e1f5fe !important;
  1215. }
  1216. .light-blue-text.text-lighten-5 {
  1217. color: #e1f5fe !important;
  1218. }
  1219. .light-blue-waves.waves-lighten-5 .waves-ripple {
  1220. background-color: #e1f5fe !important;
  1221. }
  1222. .light-blue.lighten-4 {
  1223. background-color: #b3e5fc !important;
  1224. }
  1225. .light-blue-text.text-lighten-4 {
  1226. color: #b3e5fc !important;
  1227. }
  1228. .light-blue-waves.waves-lighten-4 .waves-ripple {
  1229. background-color: #b3e5fc !important;
  1230. }
  1231. .light-blue.lighten-3 {
  1232. background-color: #81d4fa !important;
  1233. }
  1234. .light-blue-text.text-lighten-3 {
  1235. color: #81d4fa !important;
  1236. }
  1237. .light-blue-waves.waves-lighten-3 .waves-ripple {
  1238. background-color: #81d4fa !important;
  1239. }
  1240. .light-blue.lighten-2 {
  1241. background-color: #4fc3f7 !important;
  1242. }
  1243. .light-blue-text.text-lighten-2 {
  1244. color: #4fc3f7 !important;
  1245. }
  1246. .light-blue-waves.waves-lighten-2 .waves-ripple {
  1247. background-color: #4fc3f7 !important;
  1248. }
  1249. .light-blue.lighten-1 {
  1250. background-color: #29b6f6 !important;
  1251. }
  1252. .light-blue-text.text-lighten-1 {
  1253. color: #29b6f6 !important;
  1254. }
  1255. .light-blue-waves.waves-lighten-1 .waves-ripple {
  1256. background-color: #29b6f6 !important;
  1257. }
  1258. .light-blue.darken-1 {
  1259. background-color: #039be5 !important;
  1260. }
  1261. .light-blue-text.text-darken-1 {
  1262. color: #039be5 !important;
  1263. }
  1264. .light-blue-waves.waves-darken-1 .waves-ripple {
  1265. background-color: #039be5 !important;
  1266. }
  1267. .light-blue.darken-2 {
  1268. background-color: #0288d1 !important;
  1269. }
  1270. .light-blue-text.text-darken-2 {
  1271. color: #0288d1 !important;
  1272. }
  1273. .light-blue-waves.waves-darken-2 .waves-ripple {
  1274. background-color: #0288d1 !important;
  1275. }
  1276. .light-blue.darken-3 {
  1277. background-color: #0277bd !important;
  1278. }
  1279. .light-blue-text.text-darken-3 {
  1280. color: #0277bd !important;
  1281. }
  1282. .light-blue-waves.waves-darken-3 .waves-ripple {
  1283. background-color: #0277bd !important;
  1284. }
  1285. .light-blue.darken-4 {
  1286. background-color: #01579b !important;
  1287. }
  1288. .light-blue-text.text-darken-4 {
  1289. color: #01579b !important;
  1290. }
  1291. .light-blue-waves.waves-darken-4 .waves-ripple {
  1292. background-color: #01579b !important;
  1293. }
  1294. .light-blue.accent-1 {
  1295. background-color: #80d8ff !important;
  1296. }
  1297. .light-blue-text.text-accent-1 {
  1298. color: #80d8ff !important;
  1299. }
  1300. .light-blue-waves.waves-accent-1 .waves-ripple {
  1301. background-color: #80d8ff !important;
  1302. }
  1303. .light-blue.accent-2 {
  1304. background-color: #40c4ff !important;
  1305. }
  1306. .light-blue-text.text-accent-2 {
  1307. color: #40c4ff !important;
  1308. }
  1309. .light-blue-waves.waves-accent-2 .waves-ripple {
  1310. background-color: #40c4ff !important;
  1311. }
  1312. .light-blue.accent-3 {
  1313. background-color: #00b0ff !important;
  1314. }
  1315. .light-blue-text.text-accent-3 {
  1316. color: #00b0ff !important;
  1317. }
  1318. .light-blue-waves.waves-accent-3 .waves-ripple {
  1319. background-color: #00b0ff !important;
  1320. }
  1321. .light-blue.accent-4 {
  1322. background-color: #0091ea !important;
  1323. }
  1324. .light-blue-text.text-accent-4 {
  1325. color: #0091ea !important;
  1326. }
  1327. .light-blue-waves.waves-accent-4 .waves-ripple {
  1328. background-color: #0091ea !important;
  1329. }
  1330. .cyan {
  1331. background-color: #00bcd4 !important;
  1332. }
  1333. .cyan-text {
  1334. color: #00bcd4 !important;
  1335. }
  1336. .cyan-waves .waves-ripple {
  1337. background-color: #00bcd4 !important;
  1338. }
  1339. .cyan.lighten-5 {
  1340. background-color: #e0f7fa !important;
  1341. }
  1342. .cyan-text.text-lighten-5 {
  1343. color: #e0f7fa !important;
  1344. }
  1345. .cyan-waves.waves-lighten-5 .waves-ripple {
  1346. background-color: #e0f7fa !important;
  1347. }
  1348. .cyan.lighten-4 {
  1349. background-color: #b2ebf2 !important;
  1350. }
  1351. .cyan-text.text-lighten-4 {
  1352. color: #b2ebf2 !important;
  1353. }
  1354. .cyan-waves.waves-lighten-4 .waves-ripple {
  1355. background-color: #b2ebf2 !important;
  1356. }
  1357. .cyan.lighten-3 {
  1358. background-color: #80deea !important;
  1359. }
  1360. .cyan-text.text-lighten-3 {
  1361. color: #80deea !important;
  1362. }
  1363. .cyan-waves.waves-lighten-3 .waves-ripple {
  1364. background-color: #80deea !important;
  1365. }
  1366. .cyan.lighten-2 {
  1367. background-color: #4dd0e1 !important;
  1368. }
  1369. .cyan-text.text-lighten-2 {
  1370. color: #4dd0e1 !important;
  1371. }
  1372. .cyan-waves.waves-lighten-2 .waves-ripple {
  1373. background-color: #4dd0e1 !important;
  1374. }
  1375. .cyan.lighten-1 {
  1376. background-color: #26c6da !important;
  1377. }
  1378. .cyan-text.text-lighten-1 {
  1379. color: #26c6da !important;
  1380. }
  1381. .cyan-waves.waves-lighten-1 .waves-ripple {
  1382. background-color: #26c6da !important;
  1383. }
  1384. .cyan.darken-1 {
  1385. background-color: #00acc1 !important;
  1386. }
  1387. .cyan-text.text-darken-1 {
  1388. color: #00acc1 !important;
  1389. }
  1390. .cyan-waves.waves-darken-1 .waves-ripple {
  1391. background-color: #00acc1 !important;
  1392. }
  1393. .cyan.darken-2 {
  1394. background-color: #0097a7 !important;
  1395. }
  1396. .cyan-text.text-darken-2 {
  1397. color: #0097a7 !important;
  1398. }
  1399. .cyan-waves.waves-darken-2 .waves-ripple {
  1400. background-color: #0097a7 !important;
  1401. }
  1402. .cyan.darken-3 {
  1403. background-color: #00838f !important;
  1404. }
  1405. .cyan-text.text-darken-3 {
  1406. color: #00838f !important;
  1407. }
  1408. .cyan-waves.waves-darken-3 .waves-ripple {
  1409. background-color: #00838f !important;
  1410. }
  1411. .cyan.darken-4 {
  1412. background-color: #006064 !important;
  1413. }
  1414. .cyan-text.text-darken-4 {
  1415. color: #006064 !important;
  1416. }
  1417. .cyan-waves.waves-darken-4 .waves-ripple {
  1418. background-color: #006064 !important;
  1419. }
  1420. .cyan.accent-1 {
  1421. background-color: #84ffff !important;
  1422. }
  1423. .cyan-text.text-accent-1 {
  1424. color: #84ffff !important;
  1425. }
  1426. .cyan-waves.waves-accent-1 .waves-ripple {
  1427. background-color: #84ffff !important;
  1428. }
  1429. .cyan.accent-2 {
  1430. background-color: #18ffff !important;
  1431. }
  1432. .cyan-text.text-accent-2 {
  1433. color: #18ffff !important;
  1434. }
  1435. .cyan-waves.waves-accent-2 .waves-ripple {
  1436. background-color: #18ffff !important;
  1437. }
  1438. .cyan.accent-3 {
  1439. background-color: #00e5ff !important;
  1440. }
  1441. .cyan-text.text-accent-3 {
  1442. color: #00e5ff !important;
  1443. }
  1444. .cyan-waves.waves-accent-3 .waves-ripple {
  1445. background-color: #00e5ff !important;
  1446. }
  1447. .cyan.accent-4 {
  1448. background-color: #00b8d4 !important;
  1449. }
  1450. .cyan-text.text-accent-4 {
  1451. color: #00b8d4 !important;
  1452. }
  1453. .cyan-waves.waves-accent-4 .waves-ripple {
  1454. background-color: #00b8d4 !important;
  1455. }
  1456. .teal {
  1457. background-color: #009688 !important;
  1458. }
  1459. .teal-text {
  1460. color: #009688 !important;
  1461. }
  1462. .teal-waves .waves-ripple {
  1463. background-color: #009688 !important;
  1464. }
  1465. .teal.lighten-5 {
  1466. background-color: #e0f2f1 !important;
  1467. }
  1468. .teal-text.text-lighten-5 {
  1469. color: #e0f2f1 !important;
  1470. }
  1471. .teal-waves.waves-lighten-5 .waves-ripple {
  1472. background-color: #e0f2f1 !important;
  1473. }
  1474. .teal.lighten-4 {
  1475. background-color: #b2dfdb !important;
  1476. }
  1477. .teal-text.text-lighten-4 {
  1478. color: #b2dfdb !important;
  1479. }
  1480. .teal-waves.waves-lighten-4 .waves-ripple {
  1481. background-color: #b2dfdb !important;
  1482. }
  1483. .teal.lighten-3 {
  1484. background-color: #80cbc4 !important;
  1485. }
  1486. .teal-text.text-lighten-3 {
  1487. color: #80cbc4 !important;
  1488. }
  1489. .teal-waves.waves-lighten-3 .waves-ripple {
  1490. background-color: #80cbc4 !important;
  1491. }
  1492. .teal.lighten-2 {
  1493. background-color: #4db6ac !important;
  1494. }
  1495. .teal-text.text-lighten-2 {
  1496. color: #4db6ac !important;
  1497. }
  1498. .teal-waves.waves-lighten-2 .waves-ripple {
  1499. background-color: #4db6ac !important;
  1500. }
  1501. .teal.lighten-1 {
  1502. background-color: #26a69a !important;
  1503. }
  1504. .teal-text.text-lighten-1 {
  1505. color: #26a69a !important;
  1506. }
  1507. .teal-waves.waves-lighten-1 .waves-ripple {
  1508. background-color: #26a69a !important;
  1509. }
  1510. .teal.darken-1 {
  1511. background-color: #00897b !important;
  1512. }
  1513. .teal-text.text-darken-1 {
  1514. color: #00897b !important;
  1515. }
  1516. .teal-waves.waves-darken-1 .waves-ripple {
  1517. background-color: #00897b !important;
  1518. }
  1519. .teal.darken-2 {
  1520. background-color: #00796b !important;
  1521. }
  1522. .teal-text.text-darken-2 {
  1523. color: #00796b !important;
  1524. }
  1525. .teal-waves.waves-darken-2 .waves-ripple {
  1526. background-color: #00796b !important;
  1527. }
  1528. .teal.darken-3 {
  1529. background-color: #00695c !important;
  1530. }
  1531. .teal-text.text-darken-3 {
  1532. color: #00695c !important;
  1533. }
  1534. .teal-waves.waves-darken-3 .waves-ripple {
  1535. background-color: #00695c !important;
  1536. }
  1537. .teal.darken-4 {
  1538. background-color: #004d40 !important;
  1539. }
  1540. .teal-text.text-darken-4 {
  1541. color: #004d40 !important;
  1542. }
  1543. .teal-waves.waves-darken-4 .waves-ripple {
  1544. background-color: #004d40 !important;
  1545. }
  1546. .teal.accent-1 {
  1547. background-color: #a7ffeb !important;
  1548. }
  1549. .teal-text.text-accent-1 {
  1550. color: #a7ffeb !important;
  1551. }
  1552. .teal-waves.waves-accent-1 .waves-ripple {
  1553. background-color: #a7ffeb !important;
  1554. }
  1555. .teal.accent-2 {
  1556. background-color: #64ffda !important;
  1557. }
  1558. .teal-text.text-accent-2 {
  1559. color: #64ffda !important;
  1560. }
  1561. .teal-waves.waves-accent-2 .waves-ripple {
  1562. background-color: #64ffda !important;
  1563. }
  1564. .teal.accent-3 {
  1565. background-color: #1de9b6 !important;
  1566. }
  1567. .teal-text.text-accent-3 {
  1568. color: #1de9b6 !important;
  1569. }
  1570. .teal-waves.waves-accent-3 .waves-ripple {
  1571. background-color: #1de9b6 !important;
  1572. }
  1573. .teal.accent-4 {
  1574. background-color: #00bfa5 !important;
  1575. }
  1576. .teal-text.text-accent-4 {
  1577. color: #00bfa5 !important;
  1578. }
  1579. .teal-waves.waves-accent-4 .waves-ripple {
  1580. background-color: #00bfa5 !important;
  1581. }
  1582. .green {
  1583. background-color: #4caf50 !important;
  1584. }
  1585. .green-text {
  1586. color: #4caf50 !important;
  1587. }
  1588. .green-waves .waves-ripple {
  1589. background-color: #4caf50 !important;
  1590. }
  1591. .green.lighten-5 {
  1592. background-color: #e8f5e9 !important;
  1593. }
  1594. .green-text.text-lighten-5 {
  1595. color: #e8f5e9 !important;
  1596. }
  1597. .green-waves.waves-lighten-5 .waves-ripple {
  1598. background-color: #e8f5e9 !important;
  1599. }
  1600. .green.lighten-4 {
  1601. background-color: #c8e6c9 !important;
  1602. }
  1603. .green-text.text-lighten-4 {
  1604. color: #c8e6c9 !important;
  1605. }
  1606. .green-waves.waves-lighten-4 .waves-ripple {
  1607. background-color: #c8e6c9 !important;
  1608. }
  1609. .green.lighten-3 {
  1610. background-color: #a5d6a7 !important;
  1611. }
  1612. .green-text.text-lighten-3 {
  1613. color: #a5d6a7 !important;
  1614. }
  1615. .green-waves.waves-lighten-3 .waves-ripple {
  1616. background-color: #a5d6a7 !important;
  1617. }
  1618. .green.lighten-2 {
  1619. background-color: #81c784 !important;
  1620. }
  1621. .green-text.text-lighten-2 {
  1622. color: #81c784 !important;
  1623. }
  1624. .green-waves.waves-lighten-2 .waves-ripple {
  1625. background-color: #81c784 !important;
  1626. }
  1627. .green.lighten-1 {
  1628. background-color: #66bb6a !important;
  1629. }
  1630. .green-text.text-lighten-1 {
  1631. color: #66bb6a !important;
  1632. }
  1633. .green-waves.waves-lighten-1 .waves-ripple {
  1634. background-color: #66bb6a !important;
  1635. }
  1636. .green.darken-1 {
  1637. background-color: #43a047 !important;
  1638. }
  1639. .green-text.text-darken-1 {
  1640. color: #43a047 !important;
  1641. }
  1642. .green-waves.waves-darken-1 .waves-ripple {
  1643. background-color: #43a047 !important;
  1644. }
  1645. .green.darken-2 {
  1646. background-color: #388e3c !important;
  1647. }
  1648. .green-text.text-darken-2 {
  1649. color: #388e3c !important;
  1650. }
  1651. .green-waves.waves-darken-2 .waves-ripple {
  1652. background-color: #388e3c !important;
  1653. }
  1654. .green.darken-3 {
  1655. background-color: #2e7d32 !important;
  1656. }
  1657. .green-text.text-darken-3 {
  1658. color: #2e7d32 !important;
  1659. }
  1660. .green-waves.waves-darken-3 .waves-ripple {
  1661. background-color: #2e7d32 !important;
  1662. }
  1663. .green.darken-4 {
  1664. background-color: #1b5e20 !important;
  1665. }
  1666. .green-text.text-darken-4 {
  1667. color: #1b5e20 !important;
  1668. }
  1669. .green-waves.waves-darken-4 .waves-ripple {
  1670. background-color: #1b5e20 !important;
  1671. }
  1672. .green.accent-1 {
  1673. background-color: #b9f6ca !important;
  1674. }
  1675. .green-text.text-accent-1 {
  1676. color: #b9f6ca !important;
  1677. }
  1678. .green-waves.waves-accent-1 .waves-ripple {
  1679. background-color: #b9f6ca !important;
  1680. }
  1681. .green.accent-2 {
  1682. background-color: #69f0ae !important;
  1683. }
  1684. .green-text.text-accent-2 {
  1685. color: #69f0ae !important;
  1686. }
  1687. .green-waves.waves-accent-2 .waves-ripple {
  1688. background-color: #69f0ae !important;
  1689. }
  1690. .green.accent-3 {
  1691. background-color: #00e676 !important;
  1692. }
  1693. .green-text.text-accent-3 {
  1694. color: #00e676 !important;
  1695. }
  1696. .green-waves.waves-accent-3 .waves-ripple {
  1697. background-color: #00e676 !important;
  1698. }
  1699. .green.accent-4 {
  1700. background-color: #00c853 !important;
  1701. }
  1702. .green-text.text-accent-4 {
  1703. color: #00c853 !important;
  1704. }
  1705. .green-waves.waves-accent-4 .waves-ripple {
  1706. background-color: #00c853 !important;
  1707. }
  1708. .light-green {
  1709. background-color: #8bc34a !important;
  1710. }
  1711. .light-green-text {
  1712. color: #8bc34a !important;
  1713. }
  1714. .light-green-waves .waves-ripple {
  1715. background-color: #8bc34a !important;
  1716. }
  1717. .light-green.lighten-5 {
  1718. background-color: #f1f8e9 !important;
  1719. }
  1720. .light-green-text.text-lighten-5 {
  1721. color: #f1f8e9 !important;
  1722. }
  1723. .light-green-waves.waves-lighten-5 .waves-ripple {
  1724. background-color: #f1f8e9 !important;
  1725. }
  1726. .light-green.lighten-4 {
  1727. background-color: #dcedc8 !important;
  1728. }
  1729. .light-green-text.text-lighten-4 {
  1730. color: #dcedc8 !important;
  1731. }
  1732. .light-green-waves.waves-lighten-4 .waves-ripple {
  1733. background-color: #dcedc8 !important;
  1734. }
  1735. .light-green.lighten-3 {
  1736. background-color: #c5e1a5 !important;
  1737. }
  1738. .light-green-text.text-lighten-3 {
  1739. color: #c5e1a5 !important;
  1740. }
  1741. .light-green-waves.waves-lighten-3 .waves-ripple {
  1742. background-color: #c5e1a5 !important;
  1743. }
  1744. .light-green.lighten-2 {
  1745. background-color: #aed581 !important;
  1746. }
  1747. .light-green-text.text-lighten-2 {
  1748. color: #aed581 !important;
  1749. }
  1750. .light-green-waves.waves-lighten-2 .waves-ripple {
  1751. background-color: #aed581 !important;
  1752. }
  1753. .light-green.lighten-1 {
  1754. background-color: #9ccc65 !important;
  1755. }
  1756. .light-green-text.text-lighten-1 {
  1757. color: #9ccc65 !important;
  1758. }
  1759. .light-green-waves.waves-lighten-1 .waves-ripple {
  1760. background-color: #9ccc65 !important;
  1761. }
  1762. .light-green.darken-1 {
  1763. background-color: #7cb342 !important;
  1764. }
  1765. .light-green-text.text-darken-1 {
  1766. color: #7cb342 !important;
  1767. }
  1768. .light-green-waves.waves-darken-1 .waves-ripple {
  1769. background-color: #7cb342 !important;
  1770. }
  1771. .light-green.darken-2 {
  1772. background-color: #689f38 !important;
  1773. }
  1774. .light-green-text.text-darken-2 {
  1775. color: #689f38 !important;
  1776. }
  1777. .light-green-waves.waves-darken-2 .waves-ripple {
  1778. background-color: #689f38 !important;
  1779. }
  1780. .light-green.darken-3 {
  1781. background-color: #558b2f !important;
  1782. }
  1783. .light-green-text.text-darken-3 {
  1784. color: #558b2f !important;
  1785. }
  1786. .light-green-waves.waves-darken-3 .waves-ripple {
  1787. background-color: #558b2f !important;
  1788. }
  1789. .light-green.darken-4 {
  1790. background-color: #33691e !important;
  1791. }
  1792. .light-green-text.text-darken-4 {
  1793. color: #33691e !important;
  1794. }
  1795. .light-green-waves.waves-darken-4 .waves-ripple {
  1796. background-color: #33691e !important;
  1797. }
  1798. .light-green.accent-1 {
  1799. background-color: #ccff90 !important;
  1800. }
  1801. .light-green-text.text-accent-1 {
  1802. color: #ccff90 !important;
  1803. }
  1804. .light-green-waves.waves-accent-1 .waves-ripple {
  1805. background-color: #ccff90 !important;
  1806. }
  1807. .light-green.accent-2 {
  1808. background-color: #b2ff59 !important;
  1809. }
  1810. .light-green-text.text-accent-2 {
  1811. color: #b2ff59 !important;
  1812. }
  1813. .light-green-waves.waves-accent-2 .waves-ripple {
  1814. background-color: #b2ff59 !important;
  1815. }
  1816. .light-green.accent-3 {
  1817. background-color: #76ff03 !important;
  1818. }
  1819. .light-green-text.text-accent-3 {
  1820. color: #76ff03 !important;
  1821. }
  1822. .light-green-waves.waves-accent-3 .waves-ripple {
  1823. background-color: #76ff03 !important;
  1824. }
  1825. .light-green.accent-4 {
  1826. background-color: #64dd17 !important;
  1827. }
  1828. .light-green-text.text-accent-4 {
  1829. color: #64dd17 !important;
  1830. }
  1831. .light-green-waves.waves-accent-4 .waves-ripple {
  1832. background-color: #64dd17 !important;
  1833. }
  1834. .lime {
  1835. background-color: #cddc39 !important;
  1836. }
  1837. .lime-text {
  1838. color: #cddc39 !important;
  1839. }
  1840. .lime-waves .waves-ripple {
  1841. background-color: #cddc39 !important;
  1842. }
  1843. .lime.lighten-5 {
  1844. background-color: #f9fbe7 !important;
  1845. }
  1846. .lime-text.text-lighten-5 {
  1847. color: #f9fbe7 !important;
  1848. }
  1849. .lime-waves.waves-lighten-5 .waves-ripple {
  1850. background-color: #f9fbe7 !important;
  1851. }
  1852. .lime.lighten-4 {
  1853. background-color: #f0f4c3 !important;
  1854. }
  1855. .lime-text.text-lighten-4 {
  1856. color: #f0f4c3 !important;
  1857. }
  1858. .lime-waves.waves-lighten-4 .waves-ripple {
  1859. background-color: #f0f4c3 !important;
  1860. }
  1861. .lime.lighten-3 {
  1862. background-color: #e6ee9c !important;
  1863. }
  1864. .lime-text.text-lighten-3 {
  1865. color: #e6ee9c !important;
  1866. }
  1867. .lime-waves.waves-lighten-3 .waves-ripple {
  1868. background-color: #e6ee9c !important;
  1869. }
  1870. .lime.lighten-2 {
  1871. background-color: #dce775 !important;
  1872. }
  1873. .lime-text.text-lighten-2 {
  1874. color: #dce775 !important;
  1875. }
  1876. .lime-waves.waves-lighten-2 .waves-ripple {
  1877. background-color: #dce775 !important;
  1878. }
  1879. .lime.lighten-1 {
  1880. background-color: #d4e157 !important;
  1881. }
  1882. .lime-text.text-lighten-1 {
  1883. color: #d4e157 !important;
  1884. }
  1885. .lime-waves.waves-lighten-1 .waves-ripple {
  1886. background-color: #d4e157 !important;
  1887. }
  1888. .lime.darken-1 {
  1889. background-color: #c0ca33 !important;
  1890. }
  1891. .lime-text.text-darken-1 {
  1892. color: #c0ca33 !important;
  1893. }
  1894. .lime-waves.waves-darken-1 .waves-ripple {
  1895. background-color: #c0ca33 !important;
  1896. }
  1897. .lime.darken-2 {
  1898. background-color: #afb42b !important;
  1899. }
  1900. .lime-text.text-darken-2 {
  1901. color: #afb42b !important;
  1902. }
  1903. .lime-waves.waves-darken-2 .waves-ripple {
  1904. background-color: #afb42b !important;
  1905. }
  1906. .lime.darken-3 {
  1907. background-color: #9e9d24 !important;
  1908. }
  1909. .lime-text.text-darken-3 {
  1910. color: #9e9d24 !important;
  1911. }
  1912. .lime-waves.waves-darken-3 .waves-ripple {
  1913. background-color: #9e9d24 !important;
  1914. }
  1915. .lime.darken-4 {
  1916. background-color: #827717 !important;
  1917. }
  1918. .lime-text.text-darken-4 {
  1919. color: #827717 !important;
  1920. }
  1921. .lime-waves.waves-darken-4 .waves-ripple {
  1922. background-color: #827717 !important;
  1923. }
  1924. .lime.accent-1 {
  1925. background-color: #f4ff81 !important;
  1926. }
  1927. .lime-text.text-accent-1 {
  1928. color: #f4ff81 !important;
  1929. }
  1930. .lime-waves.waves-accent-1 .waves-ripple {
  1931. background-color: #f4ff81 !important;
  1932. }
  1933. .lime.accent-2 {
  1934. background-color: #eeff41 !important;
  1935. }
  1936. .lime-text.text-accent-2 {
  1937. color: #eeff41 !important;
  1938. }
  1939. .lime-waves.waves-accent-2 .waves-ripple {
  1940. background-color: #eeff41 !important;
  1941. }
  1942. .lime.accent-3 {
  1943. background-color: #c6ff00 !important;
  1944. }
  1945. .lime-text.text-accent-3 {
  1946. color: #c6ff00 !important;
  1947. }
  1948. .lime-waves.waves-accent-3 .waves-ripple {
  1949. background-color: #c6ff00 !important;
  1950. }
  1951. .lime.accent-4 {
  1952. background-color: #aeea00 !important;
  1953. }
  1954. .lime-text.text-accent-4 {
  1955. color: #aeea00 !important;
  1956. }
  1957. .lime-waves.waves-accent-4 .waves-ripple {
  1958. background-color: #aeea00 !important;
  1959. }
  1960. .yellow {
  1961. background-color: #ffeb3b !important;
  1962. }
  1963. .yellow-text {
  1964. color: #ffeb3b !important;
  1965. }
  1966. .yellow-waves .waves-ripple {
  1967. background-color: #ffeb3b !important;
  1968. }
  1969. .yellow.lighten-5 {
  1970. background-color: #fffde7 !important;
  1971. }
  1972. .yellow-text.text-lighten-5 {
  1973. color: #fffde7 !important;
  1974. }
  1975. .yellow-waves.waves-lighten-5 .waves-ripple {
  1976. background-color: #fffde7 !important;
  1977. }
  1978. .yellow.lighten-4 {
  1979. background-color: #fff9c4 !important;
  1980. }
  1981. .yellow-text.text-lighten-4 {
  1982. color: #fff9c4 !important;
  1983. }
  1984. .yellow-waves.waves-lighten-4 .waves-ripple {
  1985. background-color: #fff9c4 !important;
  1986. }
  1987. .yellow.lighten-3 {
  1988. background-color: #fff59d !important;
  1989. }
  1990. .yellow-text.text-lighten-3 {
  1991. color: #fff59d !important;
  1992. }
  1993. .yellow-waves.waves-lighten-3 .waves-ripple {
  1994. background-color: #fff59d !important;
  1995. }
  1996. .yellow.lighten-2 {
  1997. background-color: #fff176 !important;
  1998. }
  1999. .yellow-text.text-lighten-2 {
  2000. color: #fff176 !important;
  2001. }
  2002. .yellow-waves.waves-lighten-2 .waves-ripple {
  2003. background-color: #fff176 !important;
  2004. }
  2005. .yellow.lighten-1 {
  2006. background-color: #ffee58 !important;
  2007. }
  2008. .yellow-text.text-lighten-1 {
  2009. color: #ffee58 !important;
  2010. }
  2011. .yellow-waves.waves-lighten-1 .waves-ripple {
  2012. background-color: #ffee58 !important;
  2013. }
  2014. .yellow.darken-1 {
  2015. background-color: #fdd835 !important;
  2016. }
  2017. .yellow-text.text-darken-1 {
  2018. color: #fdd835 !important;
  2019. }
  2020. .yellow-waves.waves-darken-1 .waves-ripple {
  2021. background-color: #fdd835 !important;
  2022. }
  2023. .yellow.darken-2 {
  2024. background-color: #fbc02d !important;
  2025. }
  2026. .yellow-text.text-darken-2 {
  2027. color: #fbc02d !important;
  2028. }
  2029. .yellow-waves.waves-darken-2 .waves-ripple {
  2030. background-color: #fbc02d !important;
  2031. }
  2032. .yellow.darken-3 {
  2033. background-color: #f9a825 !important;
  2034. }
  2035. .yellow-text.text-darken-3 {
  2036. color: #f9a825 !important;
  2037. }
  2038. .yellow-waves.waves-darken-3 .waves-ripple {
  2039. background-color: #f9a825 !important;
  2040. }
  2041. .yellow.darken-4 {
  2042. background-color: #f57f17 !important;
  2043. }
  2044. .yellow-text.text-darken-4 {
  2045. color: #f57f17 !important;
  2046. }
  2047. .yellow-waves.waves-darken-4 .waves-ripple {
  2048. background-color: #f57f17 !important;
  2049. }
  2050. .yellow.accent-1 {
  2051. background-color: #ffff8d !important;
  2052. }
  2053. .yellow-text.text-accent-1 {
  2054. color: #ffff8d !important;
  2055. }
  2056. .yellow-waves.waves-accent-1 .waves-ripple {
  2057. background-color: #ffff8d !important;
  2058. }
  2059. .yellow.accent-2 {
  2060. background-color: #ffff00 !important;
  2061. }
  2062. .yellow-text.text-accent-2 {
  2063. color: #ffff00 !important;
  2064. }
  2065. .yellow-waves.waves-accent-2 .waves-ripple {
  2066. background-color: #ffff00 !important;
  2067. }
  2068. .yellow.accent-3 {
  2069. background-color: #ffea00 !important;
  2070. }
  2071. .yellow-text.text-accent-3 {
  2072. color: #ffea00 !important;
  2073. }
  2074. .yellow-waves.waves-accent-3 .waves-ripple {
  2075. background-color: #ffea00 !important;
  2076. }
  2077. .yellow.accent-4 {
  2078. background-color: #ffd600 !important;
  2079. }
  2080. .yellow-text.text-accent-4 {
  2081. color: #ffd600 !important;
  2082. }
  2083. .yellow-waves.waves-accent-4 .waves-ripple {
  2084. background-color: #ffd600 !important;
  2085. }
  2086. .amber {
  2087. background-color: #ffc107 !important;
  2088. }
  2089. .amber-text {
  2090. color: #ffc107 !important;
  2091. }
  2092. .amber-waves .waves-ripple {
  2093. background-color: #ffc107 !important;
  2094. }
  2095. .amber.lighten-5 {
  2096. background-color: #fff8e1 !important;
  2097. }
  2098. .amber-text.text-lighten-5 {
  2099. color: #fff8e1 !important;
  2100. }
  2101. .amber-waves.waves-lighten-5 .waves-ripple {
  2102. background-color: #fff8e1 !important;
  2103. }
  2104. .amber.lighten-4 {
  2105. background-color: #ffecb3 !important;
  2106. }
  2107. .amber-text.text-lighten-4 {
  2108. color: #ffecb3 !important;
  2109. }
  2110. .amber-waves.waves-lighten-4 .waves-ripple {
  2111. background-color: #ffecb3 !important;
  2112. }
  2113. .amber.lighten-3 {
  2114. background-color: #ffe082 !important;
  2115. }
  2116. .amber-text.text-lighten-3 {
  2117. color: #ffe082 !important;
  2118. }
  2119. .amber-waves.waves-lighten-3 .waves-ripple {
  2120. background-color: #ffe082 !important;
  2121. }
  2122. .amber.lighten-2 {
  2123. background-color: #ffd54f !important;
  2124. }
  2125. .amber-text.text-lighten-2 {
  2126. color: #ffd54f !important;
  2127. }
  2128. .amber-waves.waves-lighten-2 .waves-ripple {
  2129. background-color: #ffd54f !important;
  2130. }
  2131. .amber.lighten-1 {
  2132. background-color: #ffca28 !important;
  2133. }
  2134. .amber-text.text-lighten-1 {
  2135. color: #ffca28 !important;
  2136. }
  2137. .amber-waves.waves-lighten-1 .waves-ripple {
  2138. background-color: #ffca28 !important;
  2139. }
  2140. .amber.darken-1 {
  2141. background-color: #ffb300 !important;
  2142. }
  2143. .amber-text.text-darken-1 {
  2144. color: #ffb300 !important;
  2145. }
  2146. .amber-waves.waves-darken-1 .waves-ripple {
  2147. background-color: #ffb300 !important;
  2148. }
  2149. .amber.darken-2 {
  2150. background-color: #ffa000 !important;
  2151. }
  2152. .amber-text.text-darken-2 {
  2153. color: #ffa000 !important;
  2154. }
  2155. .amber-waves.waves-darken-2 .waves-ripple {
  2156. background-color: #ffa000 !important;
  2157. }
  2158. .amber.darken-3 {
  2159. background-color: #ff8f00 !important;
  2160. }
  2161. .amber-text.text-darken-3 {
  2162. color: #ff8f00 !important;
  2163. }
  2164. .amber-waves.waves-darken-3 .waves-ripple {
  2165. background-color: #ff8f00 !important;
  2166. }
  2167. .amber.darken-4 {
  2168. background-color: #ff6f00 !important;
  2169. }
  2170. .amber-text.text-darken-4 {
  2171. color: #ff6f00 !important;
  2172. }
  2173. .amber-waves.waves-darken-4 .waves-ripple {
  2174. background-color: #ff6f00 !important;
  2175. }
  2176. .amber.accent-1 {
  2177. background-color: #ffe57f !important;
  2178. }
  2179. .amber-text.text-accent-1 {
  2180. color: #ffe57f !important;
  2181. }
  2182. .amber-waves.waves-accent-1 .waves-ripple {
  2183. background-color: #ffe57f !important;
  2184. }
  2185. .amber.accent-2 {
  2186. background-color: #ffd740 !important;
  2187. }
  2188. .amber-text.text-accent-2 {
  2189. color: #ffd740 !important;
  2190. }
  2191. .amber-waves.waves-accent-2 .waves-ripple {
  2192. background-color: #ffd740 !important;
  2193. }
  2194. .amber.accent-3 {
  2195. background-color: #ffc400 !important;
  2196. }
  2197. .amber-text.text-accent-3 {
  2198. color: #ffc400 !important;
  2199. }
  2200. .amber-waves.waves-accent-3 .waves-ripple {
  2201. background-color: #ffc400 !important;
  2202. }
  2203. .amber.accent-4 {
  2204. background-color: #ffab00 !important;
  2205. }
  2206. .amber-text.text-accent-4 {
  2207. color: #ffab00 !important;
  2208. }
  2209. .amber-waves.waves-accent-4 .waves-ripple {
  2210. background-color: #ffab00 !important;
  2211. }
  2212. .orange {
  2213. background-color: #ff9800 !important;
  2214. }
  2215. .orange-text {
  2216. color: #ff9800 !important;
  2217. }
  2218. .orange-waves .waves-ripple {
  2219. background-color: #ff9800 !important;
  2220. }
  2221. .orange.lighten-5 {
  2222. background-color: #fff3e0 !important;
  2223. }
  2224. .orange-text.text-lighten-5 {
  2225. color: #fff3e0 !important;
  2226. }
  2227. .orange-waves.waves-lighten-5 .waves-ripple {
  2228. background-color: #fff3e0 !important;
  2229. }
  2230. .orange.lighten-4 {
  2231. background-color: #ffe0b2 !important;
  2232. }
  2233. .orange-text.text-lighten-4 {
  2234. color: #ffe0b2 !important;
  2235. }
  2236. .orange-waves.waves-lighten-4 .waves-ripple {
  2237. background-color: #ffe0b2 !important;
  2238. }
  2239. .orange.lighten-3 {
  2240. background-color: #ffcc80 !important;
  2241. }
  2242. .orange-text.text-lighten-3 {
  2243. color: #ffcc80 !important;
  2244. }
  2245. .orange-waves.waves-lighten-3 .waves-ripple {
  2246. background-color: #ffcc80 !important;
  2247. }
  2248. .orange.lighten-2 {
  2249. background-color: #ffb74d !important;
  2250. }
  2251. .orange-text.text-lighten-2 {
  2252. color: #ffb74d !important;
  2253. }
  2254. .orange-waves.waves-lighten-2 .waves-ripple {
  2255. background-color: #ffb74d !important;
  2256. }
  2257. .orange.lighten-1 {
  2258. background-color: #ffa726 !important;
  2259. }
  2260. .orange-text.text-lighten-1 {
  2261. color: #ffa726 !important;
  2262. }
  2263. .orange-waves.waves-lighten-1 .waves-ripple {
  2264. background-color: #ffa726 !important;
  2265. }
  2266. .orange.darken-1 {
  2267. background-color: #fb8c00 !important;
  2268. }
  2269. .orange-text.text-darken-1 {
  2270. color: #fb8c00 !important;
  2271. }
  2272. .orange-waves.waves-darken-1 .waves-ripple {
  2273. background-color: #fb8c00 !important;
  2274. }
  2275. .orange.darken-2 {
  2276. background-color: #f57c00 !important;
  2277. }
  2278. .orange-text.text-darken-2 {
  2279. color: #f57c00 !important;
  2280. }
  2281. .orange-waves.waves-darken-2 .waves-ripple {
  2282. background-color: #f57c00 !important;
  2283. }
  2284. .orange.darken-3 {
  2285. background-color: #ef6c00 !important;
  2286. }
  2287. .orange-text.text-darken-3 {
  2288. color: #ef6c00 !important;
  2289. }
  2290. .orange-waves.waves-darken-3 .waves-ripple {
  2291. background-color: #ef6c00 !important;
  2292. }
  2293. .orange.darken-4 {
  2294. background-color: #e65100 !important;
  2295. }
  2296. .orange-text.text-darken-4 {
  2297. color: #e65100 !important;
  2298. }
  2299. .orange-waves.waves-darken-4 .waves-ripple {
  2300. background-color: #e65100 !important;
  2301. }
  2302. .orange.accent-1 {
  2303. background-color: #ffd180 !important;
  2304. }
  2305. .orange-text.text-accent-1 {
  2306. color: #ffd180 !important;
  2307. }
  2308. .orange-waves.waves-accent-1 .waves-ripple {
  2309. background-color: #ffd180 !important;
  2310. }
  2311. .orange.accent-2 {
  2312. background-color: #ffab40 !important;
  2313. }
  2314. .orange-text.text-accent-2 {
  2315. color: #ffab40 !important;
  2316. }
  2317. .orange-waves.waves-accent-2 .waves-ripple {
  2318. background-color: #ffab40 !important;
  2319. }
  2320. .orange.accent-3 {
  2321. background-color: #ff9100 !important;
  2322. }
  2323. .orange-text.text-accent-3 {
  2324. color: #ff9100 !important;
  2325. }
  2326. .orange-waves.waves-accent-3 .waves-ripple {
  2327. background-color: #ff9100 !important;
  2328. }
  2329. .orange.accent-4 {
  2330. background-color: #ff6d00 !important;
  2331. }
  2332. .orange-text.text-accent-4 {
  2333. color: #ff6d00 !important;
  2334. }
  2335. .orange-waves.waves-accent-4 .waves-ripple {
  2336. background-color: #ff6d00 !important;
  2337. }
  2338. .deep-orange {
  2339. background-color: #ff5722 !important;
  2340. }
  2341. .deep-orange-text {
  2342. color: #ff5722 !important;
  2343. }
  2344. .deep-orange-waves .waves-ripple {
  2345. background-color: #ff5722 !important;
  2346. }
  2347. .deep-orange.lighten-5 {
  2348. background-color: #fbe9e7 !important;
  2349. }
  2350. .deep-orange-text.text-lighten-5 {
  2351. color: #fbe9e7 !important;
  2352. }
  2353. .deep-orange-waves.waves-lighten-5 .waves-ripple {
  2354. background-color: #fbe9e7 !important;
  2355. }
  2356. .deep-orange.lighten-4 {
  2357. background-color: #ffccbc !important;
  2358. }
  2359. .deep-orange-text.text-lighten-4 {
  2360. color: #ffccbc !important;
  2361. }
  2362. .deep-orange-waves.waves-lighten-4 .waves-ripple {
  2363. background-color: #ffccbc !important;
  2364. }
  2365. .deep-orange.lighten-3 {
  2366. background-color: #ffab91 !important;
  2367. }
  2368. .deep-orange-text.text-lighten-3 {
  2369. color: #ffab91 !important;
  2370. }
  2371. .deep-orange-waves.waves-lighten-3 .waves-ripple {
  2372. background-color: #ffab91 !important;
  2373. }
  2374. .deep-orange.lighten-2 {
  2375. background-color: #ff8a65 !important;
  2376. }
  2377. .deep-orange-text.text-lighten-2 {
  2378. color: #ff8a65 !important;
  2379. }
  2380. .deep-orange-waves.waves-lighten-2 .waves-ripple {
  2381. background-color: #ff8a65 !important;
  2382. }
  2383. .deep-orange.lighten-1 {
  2384. background-color: #ff7043 !important;
  2385. }
  2386. .deep-orange-text.text-lighten-1 {
  2387. color: #ff7043 !important;
  2388. }
  2389. .deep-orange-waves.waves-lighten-1 .waves-ripple {
  2390. background-color: #ff7043 !important;
  2391. }
  2392. .deep-orange.darken-1 {
  2393. background-color: #f4511e !important;
  2394. }
  2395. .deep-orange-text.text-darken-1 {
  2396. color: #f4511e !important;
  2397. }
  2398. .deep-orange-waves.waves-darken-1 .waves-ripple {
  2399. background-color: #f4511e !important;
  2400. }
  2401. .deep-orange.darken-2 {
  2402. background-color: #e64a19 !important;
  2403. }
  2404. .deep-orange-text.text-darken-2 {
  2405. color: #e64a19 !important;
  2406. }
  2407. .deep-orange-waves.waves-darken-2 .waves-ripple {
  2408. background-color: #e64a19 !important;
  2409. }
  2410. .deep-orange.darken-3 {
  2411. background-color: #d84315 !important;
  2412. }
  2413. .deep-orange-text.text-darken-3 {
  2414. color: #d84315 !important;
  2415. }
  2416. .deep-orange-waves.waves-darken-3 .waves-ripple {
  2417. background-color: #d84315 !important;
  2418. }
  2419. .deep-orange.darken-4 {
  2420. background-color: #bf360c !important;
  2421. }
  2422. .deep-orange-text.text-darken-4 {
  2423. color: #bf360c !important;
  2424. }
  2425. .deep-orange-waves.waves-darken-4 .waves-ripple {
  2426. background-color: #bf360c !important;
  2427. }
  2428. .deep-orange.accent-1 {
  2429. background-color: #ff9e80 !important;
  2430. }
  2431. .deep-orange-text.text-accent-1 {
  2432. color: #ff9e80 !important;
  2433. }
  2434. .deep-orange-waves.waves-accent-1 .waves-ripple {
  2435. background-color: #ff9e80 !important;
  2436. }
  2437. .deep-orange.accent-2 {
  2438. background-color: #ff6e40 !important;
  2439. }
  2440. .deep-orange-text.text-accent-2 {
  2441. color: #ff6e40 !important;
  2442. }
  2443. .deep-orange-waves.waves-accent-2 .waves-ripple {
  2444. background-color: #ff6e40 !important;
  2445. }
  2446. .deep-orange.accent-3 {
  2447. background-color: #ff3d00 !important;
  2448. }
  2449. .deep-orange-text.text-accent-3 {
  2450. color: #ff3d00 !important;
  2451. }
  2452. .deep-orange-waves.waves-accent-3 .waves-ripple {
  2453. background-color: #ff3d00 !important;
  2454. }
  2455. .deep-orange.accent-4 {
  2456. background-color: #dd2c00 !important;
  2457. }
  2458. .deep-orange-text.text-accent-4 {
  2459. color: #dd2c00 !important;
  2460. }
  2461. .deep-orange-waves.waves-accent-4 .waves-ripple {
  2462. background-color: #dd2c00 !important;
  2463. }
  2464. .brown {
  2465. background-color: #795548 !important;
  2466. }
  2467. .brown-text {
  2468. color: #795548 !important;
  2469. }
  2470. .brown-waves .waves-ripple {
  2471. background-color: #795548 !important;
  2472. }
  2473. .brown.lighten-5 {
  2474. background-color: #efebe9 !important;
  2475. }
  2476. .brown-text.text-lighten-5 {
  2477. color: #efebe9 !important;
  2478. }
  2479. .brown-waves.waves-lighten-5 .waves-ripple {
  2480. background-color: #efebe9 !important;
  2481. }
  2482. .brown.lighten-4 {
  2483. background-color: #d7ccc8 !important;
  2484. }
  2485. .brown-text.text-lighten-4 {
  2486. color: #d7ccc8 !important;
  2487. }
  2488. .brown-waves.waves-lighten-4 .waves-ripple {
  2489. background-color: #d7ccc8 !important;
  2490. }
  2491. .brown.lighten-3 {
  2492. background-color: #bcaaa4 !important;
  2493. }
  2494. .brown-text.text-lighten-3 {
  2495. color: #bcaaa4 !important;
  2496. }
  2497. .brown-waves.waves-lighten-3 .waves-ripple {
  2498. background-color: #bcaaa4 !important;
  2499. }
  2500. .brown.lighten-2 {
  2501. background-color: #a1887f !important;
  2502. }
  2503. .brown-text.text-lighten-2 {
  2504. color: #a1887f !important;
  2505. }
  2506. .brown-waves.waves-lighten-2 .waves-ripple {
  2507. background-color: #a1887f !important;
  2508. }
  2509. .brown.lighten-1 {
  2510. background-color: #8d6e63 !important;
  2511. }
  2512. .brown-text.text-lighten-1 {
  2513. color: #8d6e63 !important;
  2514. }
  2515. .brown-waves.waves-lighten-1 .waves-ripple {
  2516. background-color: #8d6e63 !important;
  2517. }
  2518. .brown.darken-1 {
  2519. background-color: #6d4c41 !important;
  2520. }
  2521. .brown-text.text-darken-1 {
  2522. color: #6d4c41 !important;
  2523. }
  2524. .brown-waves.waves-darken-1 .waves-ripple {
  2525. background-color: #6d4c41 !important;
  2526. }
  2527. .brown.darken-2 {
  2528. background-color: #5d4037 !important;
  2529. }
  2530. .brown-text.text-darken-2 {
  2531. color: #5d4037 !important;
  2532. }
  2533. .brown-waves.waves-darken-2 .waves-ripple {
  2534. background-color: #5d4037 !important;
  2535. }
  2536. .brown.darken-3 {
  2537. background-color: #4e342e !important;
  2538. }
  2539. .brown-text.text-darken-3 {
  2540. color: #4e342e !important;
  2541. }
  2542. .brown-waves.waves-darken-3 .waves-ripple {
  2543. background-color: #4e342e !important;
  2544. }
  2545. .brown.darken-4 {
  2546. background-color: #3e2723 !important;
  2547. }
  2548. .brown-text.text-darken-4 {
  2549. color: #3e2723 !important;
  2550. }
  2551. .brown-waves.waves-darken-4 .waves-ripple {
  2552. background-color: #3e2723 !important;
  2553. }
  2554. .blue-grey {
  2555. background-color: #607d8b !important;
  2556. }
  2557. .blue-grey-text {
  2558. color: #607d8b !important;
  2559. }
  2560. .blue-grey-waves .waves-ripple {
  2561. background-color: #607d8b !important;
  2562. }
  2563. .blue-grey.lighten-5 {
  2564. background-color: #eceff1 !important;
  2565. }
  2566. .blue-grey-text.text-lighten-5 {
  2567. color: #eceff1 !important;
  2568. }
  2569. .blue-grey-waves.waves-lighten-5 .waves-ripple {
  2570. background-color: #eceff1 !important;
  2571. }
  2572. .blue-grey.lighten-4 {
  2573. background-color: #cfd8dc !important;
  2574. }
  2575. .blue-grey-text.text-lighten-4 {
  2576. color: #cfd8dc !important;
  2577. }
  2578. .blue-grey-waves.waves-lighten-4 .waves-ripple {
  2579. background-color: #cfd8dc !important;
  2580. }
  2581. .blue-grey.lighten-3 {
  2582. background-color: #b0bec5 !important;
  2583. }
  2584. .blue-grey-text.text-lighten-3 {
  2585. color: #b0bec5 !important;
  2586. }
  2587. .blue-grey-waves.waves-lighten-3 .waves-ripple {
  2588. background-color: #b0bec5 !important;
  2589. }
  2590. .blue-grey.lighten-2 {
  2591. background-color: #90a4ae !important;
  2592. }
  2593. .blue-grey-text.text-lighten-2 {
  2594. color: #90a4ae !important;
  2595. }
  2596. .blue-grey-waves.waves-lighten-2 .waves-ripple {
  2597. background-color: #90a4ae !important;
  2598. }
  2599. .blue-grey.lighten-1 {
  2600. background-color: #78909c !important;
  2601. }
  2602. .blue-grey-text.text-lighten-1 {
  2603. color: #78909c !important;
  2604. }
  2605. .blue-grey-waves.waves-lighten-1 .waves-ripple {
  2606. background-color: #78909c !important;
  2607. }
  2608. .blue-grey.darken-1 {
  2609. background-color: #546e7a !important;
  2610. }
  2611. .blue-grey-text.text-darken-1 {
  2612. color: #546e7a !important;
  2613. }
  2614. .blue-grey-waves.waves-darken-1 .waves-ripple {
  2615. background-color: #546e7a !important;
  2616. }
  2617. .blue-grey.darken-2 {
  2618. background-color: #455a64 !important;
  2619. }
  2620. .blue-grey-text.text-darken-2 {
  2621. color: #455a64 !important;
  2622. }
  2623. .blue-grey-waves.waves-darken-2 .waves-ripple {
  2624. background-color: #455a64 !important;
  2625. }
  2626. .blue-grey.darken-3 {
  2627. background-color: #37474f !important;
  2628. }
  2629. .blue-grey-text.text-darken-3 {
  2630. color: #37474f !important;
  2631. }
  2632. .blue-grey-waves.waves-darken-3 .waves-ripple {
  2633. background-color: #37474f !important;
  2634. }
  2635. .blue-grey.darken-4 {
  2636. background-color: #263238 !important;
  2637. }
  2638. .blue-grey-text.text-darken-4 {
  2639. color: #263238 !important;
  2640. }
  2641. .blue-grey-waves.waves-darken-4 .waves-ripple {
  2642. background-color: #263238 !important;
  2643. }
  2644. .grey {
  2645. background-color: #9e9e9e !important;
  2646. }
  2647. .grey-text {
  2648. color: #9e9e9e !important;
  2649. }
  2650. .grey-waves .waves-ripple {
  2651. background-color: #9e9e9e !important;
  2652. }
  2653. .grey.lighten-5 {
  2654. background-color: #fafafa !important;
  2655. }
  2656. .grey-text.text-lighten-5 {
  2657. color: #fafafa !important;
  2658. }
  2659. .grey-waves.waves-lighten-5 .waves-ripple {
  2660. background-color: #fafafa !important;
  2661. }
  2662. .grey.lighten-4 {
  2663. background-color: #f5f5f5 !important;
  2664. }
  2665. .grey-text.text-lighten-4 {
  2666. color: #f5f5f5 !important;
  2667. }
  2668. .grey-waves.waves-lighten-4 .waves-ripple {
  2669. background-color: #f5f5f5 !important;
  2670. }
  2671. .grey.lighten-3 {
  2672. background-color: #eeeeee !important;
  2673. }
  2674. .grey-text.text-lighten-3 {
  2675. color: #eeeeee !important;
  2676. }
  2677. .grey-waves.waves-lighten-3 .waves-ripple {
  2678. background-color: #eeeeee !important;
  2679. }
  2680. .grey.lighten-2 {
  2681. background-color: #e0e0e0 !important;
  2682. }
  2683. .grey-text.text-lighten-2 {
  2684. color: #e0e0e0 !important;
  2685. }
  2686. .grey-waves.waves-lighten-2 .waves-ripple {
  2687. background-color: #e0e0e0 !important;
  2688. }
  2689. .grey.lighten-1 {
  2690. background-color: #bdbdbd !important;
  2691. }
  2692. .grey-text.text-lighten-1 {
  2693. color: #bdbdbd !important;
  2694. }
  2695. .grey-waves.waves-lighten-1 .waves-ripple {
  2696. background-color: #bdbdbd !important;
  2697. }
  2698. .grey.darken-1 {
  2699. background-color: #757575 !important;
  2700. }
  2701. .grey-text.text-darken-1 {
  2702. color: #757575 !important;
  2703. }
  2704. .grey-waves.waves-darken-1 .waves-ripple {
  2705. background-color: #757575 !important;
  2706. }
  2707. .grey.darken-2 {
  2708. background-color: #616161 !important;
  2709. }
  2710. .grey-text.text-darken-2 {
  2711. color: #616161 !important;
  2712. }
  2713. .grey-waves.waves-darken-2 .waves-ripple {
  2714. background-color: #616161 !important;
  2715. }
  2716. .grey.darken-3 {
  2717. background-color: #424242 !important;
  2718. }
  2719. .grey-text.text-darken-3 {
  2720. color: #424242 !important;
  2721. }
  2722. .grey-waves.waves-darken-3 .waves-ripple {
  2723. background-color: #424242 !important;
  2724. }
  2725. .grey.darken-4 {
  2726. background-color: #212121 !important;
  2727. }
  2728. .grey-text.text-darken-4 {
  2729. color: #212121 !important;
  2730. }
  2731. .grey-waves.waves-darken-4 .waves-ripple {
  2732. background-color: #212121 !important;
  2733. }
  2734. .black {
  2735. background-color: #000000 !important;
  2736. }
  2737. .black-text {
  2738. color: #000000 !important;
  2739. }
  2740. .white {
  2741. background-color: #ffffff !important;
  2742. }
  2743. .white-text {
  2744. color: #ffffff !important;
  2745. }
  2746. .transparent {
  2747. background-color: transparent !important;
  2748. }
  2749. .transparent-text {
  2750. color: transparent !important;
  2751. }
  2752. /**
  2753. * prism.js Twilight theme
  2754. * Based (more or less) on the Twilight theme originally of Textmate fame.
  2755. * @author Remy Bach
  2756. */
  2757. code[class*=language-],
  2758. pre[class*=language-] {
  2759. color: white;
  2760. background: none;
  2761. font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;
  2762. text-align: left;
  2763. text-shadow: 0 -0.1em 0.2em black;
  2764. white-space: pre;
  2765. word-spacing: normal;
  2766. word-break: normal;
  2767. word-wrap: normal;
  2768. line-height: 1.5;
  2769. -moz-tab-size: 4;
  2770. -o-tab-size: 4;
  2771. tab-size: 4;
  2772. -webkit-hyphens: none;
  2773. -moz-hyphens: none;
  2774. -ms-hyphens: none;
  2775. hyphens: none;
  2776. }
  2777. pre[class*=language-],
  2778. :not(pre) > code[class*=language-] {
  2779. background: hsl(0, 0%, 8%); /* #141414 */
  2780. }
  2781. /* Code blocks */
  2782. pre[class*=language-] {
  2783. border-radius: 0.5em;
  2784. border: 0.3em solid hsl(0, 0%, 33%); /* #282A2B */
  2785. box-shadow: 1px 1px 0.5em black inset;
  2786. margin: 0.5em 0;
  2787. overflow: auto;
  2788. padding: 1em;
  2789. }
  2790. pre[class*=language-]::-moz-selection {
  2791. /* Firefox */
  2792. background: hsl(200, 4%, 16%); /* #282A2B */
  2793. }
  2794. pre[class*=language-]::selection {
  2795. /* Safari */
  2796. background: hsl(200, 4%, 16%); /* #282A2B */
  2797. }
  2798. /* Text Selection colour */
  2799. pre[class*=language-]::-moz-selection, pre[class*=language-] ::-moz-selection,
  2800. code[class*=language-]::-moz-selection, code[class*=language-] ::-moz-selection {
  2801. text-shadow: none;
  2802. background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */
  2803. }
  2804. pre[class*=language-]::selection, pre[class*=language-] ::selection,
  2805. code[class*=language-]::selection, code[class*=language-] ::selection {
  2806. text-shadow: none;
  2807. background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */
  2808. }
  2809. /* Inline code */
  2810. :not(pre) > code[class*=language-] {
  2811. border-radius: 0.3em;
  2812. border: 0.13em solid hsl(0, 0%, 33%); /* #545454 */
  2813. box-shadow: 1px 1px 0.3em -0.1em black inset;
  2814. padding: 0.15em 0.2em 0.05em;
  2815. white-space: normal;
  2816. }
  2817. .token.comment,
  2818. .token.prolog,
  2819. .token.doctype,
  2820. .token.cdata {
  2821. color: hsl(0, 0%, 47%); /* #777777 */
  2822. }
  2823. .token.punctuation {
  2824. opacity: 0.7;
  2825. }
  2826. .namespace {
  2827. opacity: 0.7;
  2828. }
  2829. .token.tag,
  2830. .token.boolean,
  2831. .token.number,
  2832. .token.deleted {
  2833. color: hsl(14, 58%, 55%); /* #CF6A4C */
  2834. }
  2835. .token.keyword,
  2836. .token.property,
  2837. .token.selector,
  2838. .token.constant,
  2839. .token.symbol,
  2840. .token.builtin {
  2841. color: hsl(53, 89%, 79%); /* #F9EE98 */
  2842. }
  2843. .token.attr-name,
  2844. .token.attr-value,
  2845. .token.string,
  2846. .token.char,
  2847. .token.operator,
  2848. .token.entity,
  2849. .token.url,
  2850. .language-css .token.string,
  2851. .style .token.string,
  2852. .token.variable,
  2853. .token.inserted {
  2854. color: hsl(76, 21%, 52%); /* #8F9D6A */
  2855. }
  2856. .token.atrule {
  2857. color: hsl(218, 22%, 55%); /* #7587A6 */
  2858. }
  2859. .token.regex,
  2860. .token.important {
  2861. color: hsl(42, 75%, 65%); /* #E9C062 */
  2862. }
  2863. .token.important,
  2864. .token.bold {
  2865. font-weight: bold;
  2866. }
  2867. .token.italic {
  2868. font-style: italic;
  2869. }
  2870. .token.entity {
  2871. cursor: help;
  2872. }
  2873. pre[data-line] {
  2874. padding: 1em 0 1em 3em;
  2875. position: relative;
  2876. }
  2877. /* Markup */
  2878. .language-markup .token.tag,
  2879. .language-markup .token.attr-name,
  2880. .language-markup .token.punctuation {
  2881. color: hsl(33, 33%, 52%); /* #AC885B */
  2882. }
  2883. /* Make the tokens sit above the line highlight so the colours don't look faded. */
  2884. .token {
  2885. position: relative;
  2886. z-index: 1;
  2887. }
  2888. .line-highlight {
  2889. background: hsla(0, 0%, 33%, 0.25); /* #545454 */
  2890. background: linear-gradient(to right, hsla(0, 0%, 33%, 0.1) 70%, hsla(0, 0%, 33%, 0)); /* #545454 */
  2891. border-bottom: 1px dashed hsl(0, 0%, 33%); /* #545454 */
  2892. border-top: 1px dashed hsl(0, 0%, 33%); /* #545454 */
  2893. left: 0;
  2894. line-height: inherit;
  2895. margin-top: 0.75em; /* Same as .prism’s padding-top */
  2896. padding: inherit 0;
  2897. pointer-events: none;
  2898. position: absolute;
  2899. right: 0;
  2900. white-space: pre;
  2901. z-index: 0;
  2902. }
  2903. .line-highlight:before,
  2904. .line-highlight[data-end]:after {
  2905. background-color: hsl(215, 15%, 59%); /* #8794A6 */
  2906. border-radius: 999px;
  2907. box-shadow: 0 1px white;
  2908. color: hsl(24, 20%, 95%); /* #F5F2F0 */
  2909. content: attr(data-start);
  2910. font: bold 65%/1.5 sans-serif;
  2911. left: 0.6em;
  2912. min-width: 1em;
  2913. padding: 0 0.5em;
  2914. position: absolute;
  2915. text-align: center;
  2916. text-shadow: none;
  2917. top: 0.4em;
  2918. vertical-align: 0.3em;
  2919. }
  2920. .line-highlight[data-end]:after {
  2921. bottom: 0.4em;
  2922. content: attr(data-end);
  2923. top: auto;
  2924. }
  2925. .window {
  2926. font-family: "Ubuntu", sans-serif;
  2927. font-size: 17px;
  2928. width: 600px;
  2929. margin: 75px auto;
  2930. background: #2c3e50;
  2931. height: 350px;
  2932. border-radius: 5px;
  2933. display: relative;
  2934. box-shadow: 10px 10px 10px #888888;
  2935. }
  2936. .afterclose {
  2937. color: #34495e;
  2938. display: none;
  2939. text-align: center;
  2940. }
  2941. .open {
  2942. color: #fff;
  2943. padding: 15px;
  2944. background: #2ecc71;
  2945. border-radius: 4px;
  2946. border: none;
  2947. }
  2948. .bash {
  2949. width: 600px;
  2950. background: #34495e;
  2951. height: 310px;
  2952. border-radius: 5px;
  2953. top: 40px;
  2954. display: absolute;
  2955. color: #fff;
  2956. text-align: left;
  2957. }
  2958. .bash .command::before {
  2959. content: "user@machine \$ : ";
  2960. color: #2ecc71;
  2961. }
  2962. .bash .resulta::before {
  2963. content: ">>";
  2964. color: #2ecc71;
  2965. }
  2966. /* effected by controllers */
  2967. .windowmax {
  2968. width: 100%;
  2969. margin: auto;
  2970. background: #2c3e50;
  2971. height: 1000px;
  2972. border-radius: 5px;
  2973. display: relative;
  2974. }
  2975. .windowmin {
  2976. width: 300px;
  2977. height: 45px;
  2978. background: #2c3e50;
  2979. border-radius: 5px;
  2980. bottom: 0;
  2981. position: fixed;
  2982. }
  2983. .bashmax {
  2984. display: absolute;
  2985. width: 100%;
  2986. background: #34495e;
  2987. height: 960px;
  2988. border-radius: 5px;
  2989. bottom: 0;
  2990. color: #fff;
  2991. }
  2992. /* !--end--! */
  2993. .buttons {
  2994. width: 15px;
  2995. height: 15px;
  2996. border-radius: 50%;
  2997. float: right;
  2998. margin: 13px 4px;
  2999. border: none;
  3000. }
  3001. .close {
  3002. background: #e74c3c;
  3003. }
  3004. .maximize {
  3005. background: #f1c40f;
  3006. }
  3007. .minimize {
  3008. background: #2ecc71;
  3009. }
  3010. .result {
  3011. display: none;
  3012. }
  3013. .controls {
  3014. height: 40px;
  3015. top: 0;
  3016. }
  3017. .title {
  3018. color: #fff;
  3019. font-weight: bold;
  3020. padding: 10px;
  3021. }
  3022. .material-tooltip {
  3023. padding: 10px 8px;
  3024. font-size: 1rem;
  3025. z-index: 2000;
  3026. border-radius: 2px;
  3027. color: #fff;
  3028. min-height: 36px;
  3029. line-height: 120%;
  3030. opacity: 0;
  3031. position: absolute;
  3032. text-align: center;
  3033. max-width: calc(100% - 4px);
  3034. overflow: hidden;
  3035. left: 0;
  3036. top: 0;
  3037. pointer-events: none;
  3038. visibility: hidden;
  3039. background-color: #323232;
  3040. }
  3041. .backdrop {
  3042. position: absolute;
  3043. opacity: 0;
  3044. height: 7px;
  3045. width: 14px;
  3046. border-radius: 0 0 50% 50%;
  3047. background-color: #323232;
  3048. z-index: -1;
  3049. transform-origin: 50% 0%;
  3050. visibility: hidden;
  3051. }
  3052. .shadow-0 {
  3053. box-shadow: none !important;
  3054. }
  3055. /* 2dp elevation modified*/
  3056. .shadow-1, nav, .dropdown-content, .card, .card-panel, .btn-floating, .btn, .btn-small, .btn-large, .collapsible {
  3057. box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
  3058. }
  3059. .shadow-1-half, .btn-floating:hover, .btn:hover, .btn-small:hover, .btn-large:hover {
  3060. box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2);
  3061. }
  3062. /* 6dp elevation modified*/
  3063. .shadow-2 {
  3064. box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
  3065. }
  3066. /* 12dp elevation modified*/
  3067. .shadow-3 {
  3068. box-shadow: 0 8px 17px 2px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);
  3069. }
  3070. /* 16dp elevation */
  3071. .shadow-4 {
  3072. box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -7px rgba(0, 0, 0, 0.2);
  3073. }
  3074. /* 24dp elevation */
  3075. .shadow-5, .modal {
  3076. box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2);
  3077. }
  3078. /* 24dp elevation */
  3079. .invert-shadow-5 {
  3080. box-shadow: 38px 0 0 0 rgba(0, 0, 0, 0.14), 46px 0 0 0 rgba(0, 0, 0, 0.12), 15px 0 0 0 rgba(0, 0, 0, 0.2);
  3081. }
  3082. .hoverable {
  3083. transition: box-shadow 0.25s;
  3084. }
  3085. .hoverable:hover {
  3086. box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  3087. }
  3088. /*!
  3089. * Waves v0.6.0
  3090. * http://fian.my.id/Waves
  3091. *
  3092. * Copyright 2014 Alfiana E. Sibuea and other contributors
  3093. * Released under the MIT license
  3094. * https://github.com/fians/Waves/blob/master/LICENSE
  3095. */
  3096. .waves-effect {
  3097. position: relative;
  3098. cursor: pointer;
  3099. display: inline-block;
  3100. overflow: hidden;
  3101. user-select: none;
  3102. -webkit-tap-highlight-color: transparent;
  3103. vertical-align: middle;
  3104. z-index: 1;
  3105. transition: 0.3s ease-out;
  3106. }
  3107. .waves-effect .waves-ripple {
  3108. position: absolute;
  3109. border-radius: 50%;
  3110. width: 20px;
  3111. height: 20px;
  3112. margin-top: -10px;
  3113. margin-left: -10px;
  3114. opacity: 0;
  3115. background: rgba(0, 0, 0, 0.2);
  3116. transition: all 0.7s ease-out;
  3117. transition-property: transform, opacity;
  3118. transform: scale(0);
  3119. pointer-events: none;
  3120. }
  3121. .waves-effect.waves-light .waves-ripple {
  3122. background-color: rgba(255, 255, 255, 0.45);
  3123. }
  3124. .waves-effect.waves-red .waves-ripple {
  3125. background-color: rgba(244, 67, 54, 0.7);
  3126. }
  3127. .waves-effect.waves-yellow .waves-ripple {
  3128. background-color: rgba(255, 235, 59, 0.7);
  3129. }
  3130. .waves-effect.waves-orange .waves-ripple {
  3131. background-color: rgba(255, 152, 0, 0.7);
  3132. }
  3133. .waves-effect.waves-purple .waves-ripple {
  3134. background-color: rgba(156, 39, 176, 0.7);
  3135. }
  3136. .waves-effect.waves-green .waves-ripple {
  3137. background-color: rgba(76, 175, 80, 0.7);
  3138. }
  3139. .waves-effect.waves-teal .waves-ripple {
  3140. background-color: rgba(0, 150, 136, 0.7);
  3141. }
  3142. .waves-effect input[type=button], .waves-effect input[type=reset], .waves-effect input[type=submit] {
  3143. border: 0;
  3144. font-style: normal;
  3145. font-size: inherit;
  3146. text-transform: inherit;
  3147. background: none;
  3148. }
  3149. .waves-effect img {
  3150. position: relative;
  3151. z-index: -1;
  3152. }
  3153. .waves-notransition {
  3154. transition: none !important;
  3155. }
  3156. .waves-circle {
  3157. transform: translateZ(0);
  3158. -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
  3159. }
  3160. .waves-input-wrapper {
  3161. border-radius: 0.2em;
  3162. vertical-align: bottom;
  3163. }
  3164. .waves-input-wrapper .waves-button-input {
  3165. position: relative;
  3166. top: 0;
  3167. left: 0;
  3168. z-index: 1;
  3169. }
  3170. .waves-circle {
  3171. text-align: center;
  3172. width: 2.5em;
  3173. height: 2.5em;
  3174. line-height: 2.5em;
  3175. border-radius: 50%;
  3176. -webkit-mask-image: none;
  3177. }
  3178. .waves-block {
  3179. display: block;
  3180. }
  3181. /* Firefox Bug: link not triggered */
  3182. .waves-effect .waves-ripple {
  3183. z-index: -1;
  3184. }
  3185. .modal {
  3186. position: fixed;
  3187. left: 0;
  3188. right: 0;
  3189. background-color: #fafafa;
  3190. padding: 0;
  3191. max-height: 70%;
  3192. width: 55%;
  3193. margin: auto;
  3194. overflow-y: auto;
  3195. border-radius: 2px;
  3196. will-change: top, opacity;
  3197. }
  3198. .modal:focus {
  3199. outline: none;
  3200. }
  3201. @media only screen and (max-width : 992px) {
  3202. .modal {
  3203. width: 80%;
  3204. }
  3205. }
  3206. .modal h1, .modal h2, .modal h3, .modal h4 {
  3207. margin-top: 0;
  3208. }
  3209. .modal .modal-content {
  3210. padding: 24px;
  3211. }
  3212. .modal .modal-close {
  3213. cursor: pointer;
  3214. }
  3215. .modal .modal-footer {
  3216. border-radius: 0 0 2px 2px;
  3217. background-color: #fafafa;
  3218. padding: 4px 6px;
  3219. height: 56px;
  3220. width: 100%;
  3221. text-align: right;
  3222. }
  3223. .modal .modal-footer .btn, .modal .modal-footer .btn-small, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {
  3224. margin: 6px 0;
  3225. }
  3226. .modal .modal-header {
  3227. border-radius: 2px 2px 0 0;
  3228. background-color: #fafafa;
  3229. padding: 6px 4px;
  3230. height: 56px;
  3231. width: 100%;
  3232. text-align: right;
  3233. }
  3234. .modal .modal-header .btn, .modal .modal-header .btn-small, .modal .modal-header .btn-large, .modal .modal-header .btn-flat {
  3235. margin: 6px 0;
  3236. }
  3237. .modal-overlay {
  3238. position: fixed;
  3239. z-index: 999;
  3240. top: -25%;
  3241. left: 0;
  3242. bottom: 0;
  3243. right: 0;
  3244. height: 125%;
  3245. width: 100%;
  3246. background: #000;
  3247. display: none;
  3248. will-change: opacity;
  3249. }
  3250. .modal.modal-fixed-footer {
  3251. padding: 0;
  3252. height: 70%;
  3253. }
  3254. .modal.modal-fixed-footer .modal-content {
  3255. position: absolute;
  3256. height: calc(100% - 56px);
  3257. max-height: 100%;
  3258. width: 100%;
  3259. overflow-y: auto;
  3260. }
  3261. .modal.modal-fixed-footer .modal-footer {
  3262. border-top: 1px solid rgba(0, 0, 0, 0.1);
  3263. position: absolute;
  3264. bottom: 0;
  3265. }
  3266. .modal.bottom-sheet {
  3267. top: auto;
  3268. bottom: -100%;
  3269. margin: 0;
  3270. width: 100%;
  3271. max-height: 45%;
  3272. border-radius: 0;
  3273. will-change: bottom, opacity;
  3274. }
  3275. html,
  3276. body,
  3277. #root {
  3278. margin: 0;
  3279. height: 100%;
  3280. }
  3281. * {
  3282. margin: 0;
  3283. padding: 0;
  3284. box-sizing: border-box;
  3285. }
  3286. .noselect {
  3287. -webkit-touch-callout: none; /* iOS Safari */
  3288. -webkit-user-select: none; /* Safari */
  3289. -khtml-user-select: none; /* Konqueror HTML */
  3290. -moz-user-select: none; /* Old versions of Firefox */
  3291. -ms-user-select: none; /* Internet Explorer/Edge */
  3292. user-select: none;
  3293. /* Non-prefixed version, currently
  3294. supported by Chrome, Edge, Opera and Firefox */
  3295. }
  3296. ul:not(.browser-default) {
  3297. padding-left: 0;
  3298. list-style-type: none;
  3299. }
  3300. ul:not(.browser-default) > li {
  3301. list-style-type: none;
  3302. }
  3303. a {
  3304. color: #039be5;
  3305. text-decoration: none;
  3306. -webkit-tap-highlight-color: transparent;
  3307. }
  3308. .w-100 {
  3309. width: 100%;
  3310. }
  3311. .right-align {
  3312. text-align: right;
  3313. }
  3314. .center-align {
  3315. text-align: center;
  3316. }
  3317. .v-center {
  3318. display: flex;
  3319. align-items: center;
  3320. }
  3321. .mb1 {
  3322. margin-bottom: 10px;
  3323. }
  3324. .collection {
  3325. margin: 0.3333333333rem 0 0.6666666667rem 0;
  3326. border: 1px solid #e0e0e0;
  3327. border-radius: 2px;
  3328. overflow: hidden;
  3329. position: relative;
  3330. }
  3331. .collection .collection-item {
  3332. background-color: #fff;
  3333. line-height: 1.5rem;
  3334. padding: 10px 20px;
  3335. margin: 0;
  3336. border-bottom: 1px solid #e0e0e0;
  3337. }
  3338. .collection .collection-item.hover:hover {
  3339. background-color: #ddd;
  3340. }
  3341. .collection .collection-item.avatar {
  3342. min-height: 84px;
  3343. padding-left: 72px;
  3344. position: relative;
  3345. }
  3346. .collection .collection-item.avatar:not(.circle-clipper) > .circle,
  3347. .collection .collection-item.avatar :not(.circle-clipper) > .circle {
  3348. position: absolute;
  3349. width: 42px;
  3350. height: 42px;
  3351. overflow: hidden;
  3352. left: 15px;
  3353. display: inline-block;
  3354. vertical-align: middle;
  3355. }
  3356. .collection .collection-item.avatar i.circle {
  3357. font-size: 18px;
  3358. line-height: 42px;
  3359. color: #fff;
  3360. background-color: #999;
  3361. text-align: center;
  3362. }
  3363. .collection .collection-item.avatar .title {
  3364. font-size: 16px;
  3365. }
  3366. .collection .collection-item.avatar p {
  3367. margin: 0;
  3368. }
  3369. .collection .collection-item.avatar .secondary-content {
  3370. position: absolute;
  3371. top: 16px;
  3372. right: 16px;
  3373. }
  3374. .collection .collection-item:last-child {
  3375. border-bottom: none;
  3376. }
  3377. .collection .collection-item.active {
  3378. background-color: #26a69a;
  3379. color: rgb(234.25, 250.25, 248.75);
  3380. }
  3381. .collection .collection-item.active .secondary-content {
  3382. color: #fff;
  3383. }
  3384. .collection a.collection-item {
  3385. display: block;
  3386. transition: 0.25s;
  3387. color: #26a69a;
  3388. }
  3389. .collection a.collection-item:not(.active):hover {
  3390. background-color: #ddd;
  3391. }
  3392. .collection.with-header .collection-header {
  3393. background-color: #fff;
  3394. border-bottom: 1px solid #e0e0e0;
  3395. padding: 10px 20px;
  3396. }
  3397. .collection.with-header .collection-item {
  3398. padding-left: 30px;
  3399. }
  3400. .collection.with-header .collection-item.avatar {
  3401. padding-left: 72px;
  3402. }
  3403. .secondary-content {
  3404. float: right;
  3405. color: #26a69a;
  3406. }
  3407. .collapsible .collection {
  3408. margin: 0;
  3409. border: none;
  3410. }
  3411. .modal-overlay {
  3412. position: fixed;
  3413. top: 0;
  3414. left: 0;
  3415. right: 0;
  3416. height: 100vh;
  3417. width: 100vw;
  3418. padding: 20px 0 20px 0;
  3419. background-color: rgba(0, 0, 0, 0.5);
  3420. z-index: 999;
  3421. display: flex;
  3422. justify-content: center;
  3423. }
  3424. .modal-overlay .innerform {
  3425. max-width: 650px;
  3426. }
  3427. .modal-overlay .innerform form {
  3428. overflow: hidden;
  3429. }
  3430. /*********************
  3431. Media Query Classes
  3432. **********************/
  3433. @media only screen and (max-width : 600px) {
  3434. .hide-on-small-only, .hide-on-small-and-down {
  3435. display: none !important;
  3436. }
  3437. }
  3438. @media only screen and (max-width : 992px) {
  3439. .hide-on-med-and-down {
  3440. display: none !important;
  3441. }
  3442. }
  3443. @media only screen and (min-width : 601px) {
  3444. .hide-on-med-and-up {
  3445. display: none !important;
  3446. }
  3447. }
  3448. @media only screen and (min-width: 600px) and (max-width: 992px) {
  3449. .hide-on-med-only {
  3450. display: none !important;
  3451. }
  3452. }
  3453. @media only screen and (min-width : 993px) {
  3454. .hide-on-large-only {
  3455. display: none !important;
  3456. }
  3457. }
  3458. @media only screen and (min-width : 1201px) {
  3459. .hide-on-extra-large-only {
  3460. display: none !important;
  3461. }
  3462. }
  3463. @media only screen and (min-width : 1201px) {
  3464. .show-on-extra-large {
  3465. display: block !important;
  3466. }
  3467. }
  3468. @media only screen and (min-width : 993px) {
  3469. .show-on-large {
  3470. display: block !important;
  3471. }
  3472. }
  3473. @media only screen and (min-width: 600px) and (max-width: 992px) {
  3474. .show-on-medium {
  3475. display: block !important;
  3476. }
  3477. }
  3478. @media only screen and (max-width : 600px) {
  3479. .show-on-small {
  3480. display: block !important;
  3481. }
  3482. }
  3483. @media only screen and (min-width : 601px) {
  3484. .show-on-medium-and-up {
  3485. display: block !important;
  3486. }
  3487. }
  3488. @media only screen and (max-width : 992px) {
  3489. .show-on-medium-and-down {
  3490. display: block !important;
  3491. }
  3492. }
  3493. @media only screen and (max-width : 600px) {
  3494. .center-on-small-only {
  3495. text-align: center;
  3496. }
  3497. }
  3498. /*******************
  3499. Utility Classes
  3500. *******************/
  3501. .hide {
  3502. display: none !important;
  3503. }
  3504. .left-align {
  3505. text-align: left;
  3506. }
  3507. .right-align {
  3508. text-align: right;
  3509. }
  3510. .center, .center-align {
  3511. text-align: center;
  3512. }
  3513. .left {
  3514. float: left !important;
  3515. }
  3516. .right {
  3517. float: right !important;
  3518. }
  3519. .no-select {
  3520. user-select: none;
  3521. }
  3522. .circle {
  3523. border-radius: 50%;
  3524. }
  3525. .center-block {
  3526. display: block;
  3527. margin-left: auto;
  3528. margin-right: auto;
  3529. }
  3530. .truncate {
  3531. display: block;
  3532. white-space: nowrap;
  3533. overflow: hidden;
  3534. text-overflow: ellipsis;
  3535. }
  3536. .no-padding {
  3537. padding: 0 !important;
  3538. }
  3539. span.badge {
  3540. min-width: 3rem;
  3541. padding: 0 6px;
  3542. margin-left: 14px;
  3543. text-align: center;
  3544. font-size: 1rem;
  3545. line-height: 22px;
  3546. height: 22px;
  3547. color: #757575;
  3548. float: right;
  3549. box-sizing: border-box;
  3550. }
  3551. span.badge.new {
  3552. font-weight: 300;
  3553. font-size: 0.8rem;
  3554. color: #fff;
  3555. background-color: #26a69a;
  3556. border-radius: 2px;
  3557. }
  3558. span.badge.new:after {
  3559. content: " new";
  3560. }
  3561. span.badge[data-badge-caption]::after {
  3562. content: " " attr(data-badge-caption);
  3563. }
  3564. nav ul a span.badge {
  3565. display: inline-block;
  3566. float: none;
  3567. margin-left: 4px;
  3568. line-height: 22px;
  3569. height: 22px;
  3570. -webkit-font-smoothing: auto;
  3571. }
  3572. .collection-item span.badge {
  3573. margin-top: calc(0.75rem - 11px);
  3574. }
  3575. .collapsible span.badge {
  3576. margin-left: auto;
  3577. }
  3578. .sidenav span.badge {
  3579. margin-top: 11.5px;
  3580. }
  3581. table span.badge {
  3582. display: inline-block;
  3583. float: none;
  3584. margin-left: auto;
  3585. }
  3586. .chip {
  3587. display: inline-block;
  3588. height: 32px;
  3589. font-size: 13px;
  3590. font-weight: 500;
  3591. color: rgba(0, 0, 0, 0.6);
  3592. line-height: 32px;
  3593. padding: 0 12px;
  3594. border-radius: 16px;
  3595. background-color: #e4e4e4;
  3596. margin-bottom: 5px;
  3597. margin-right: 5px;
  3598. }
  3599. .chip:focus {
  3600. outline: none;
  3601. background-color: #26a69a;
  3602. color: #fff;
  3603. }
  3604. .chip > img {
  3605. float: left;
  3606. margin: 0 8px 0 -12px;
  3607. height: 32px;
  3608. width: 32px;
  3609. border-radius: 50%;
  3610. }
  3611. .chip .close {
  3612. cursor: pointer;
  3613. float: right;
  3614. font-size: 16px;
  3615. line-height: 32px;
  3616. padding-left: 8px;
  3617. }
  3618. .chips {
  3619. border: none;
  3620. border-bottom: 1px solid #9e9e9e;
  3621. box-shadow: none;
  3622. margin: 0 0 8px 0;
  3623. min-height: 45px;
  3624. outline: none;
  3625. transition: all 0.3s;
  3626. }
  3627. .chips.focus {
  3628. border-bottom: 1px solid #26a69a;
  3629. box-shadow: 0 1px 0 0 #26a69a;
  3630. }
  3631. .chips:hover {
  3632. cursor: text;
  3633. }
  3634. .chips .input {
  3635. background: none;
  3636. border: 0;
  3637. color: rgba(0, 0, 0, 0.6);
  3638. display: inline-block;
  3639. font-size: 16px;
  3640. height: 56px;
  3641. line-height: 32px;
  3642. outline: 0;
  3643. margin: 0;
  3644. padding: 0 !important;
  3645. width: 120px !important;
  3646. }
  3647. .chips .input:focus {
  3648. border: 0 !important;
  3649. box-shadow: none !important;
  3650. }
  3651. .chips .autocomplete-content {
  3652. margin-top: 0;
  3653. margin-bottom: 0;
  3654. }
  3655. .prefix ~ .chips {
  3656. margin-left: 3rem;
  3657. width: 92%;
  3658. width: calc(100% - 3rem);
  3659. }
  3660. .chips:empty ~ label {
  3661. font-size: 0.8rem;
  3662. transform: translateY(-140%);
  3663. }
  3664. .collapsible {
  3665. border-top: 1px solid #ddd;
  3666. border-right: 1px solid #ddd;
  3667. border-left: 1px solid #ddd;
  3668. margin: 0.3333333333rem 0 0.6666666667rem 0;
  3669. }
  3670. .collapsible-header {
  3671. display: flex;
  3672. cursor: pointer;
  3673. -webkit-tap-highlight-color: transparent;
  3674. line-height: 1.5;
  3675. padding: 1rem;
  3676. background-color: #fff;
  3677. border-bottom: 1px solid #ddd;
  3678. }
  3679. .collapsible-header:focus {
  3680. outline: 0;
  3681. }
  3682. .collapsible-header i {
  3683. width: 2rem;
  3684. font-size: 1.6rem;
  3685. display: inline-block;
  3686. text-align: center;
  3687. margin-right: 1rem;
  3688. }
  3689. .keyboard-focused .collapsible-header:focus {
  3690. background-color: #eee;
  3691. }
  3692. .collapsible-body {
  3693. display: none;
  3694. border-bottom: 1px solid #ddd;
  3695. box-sizing: border-box;
  3696. padding: 2rem;
  3697. }
  3698. .sidenav .collapsible,
  3699. .sidenav.fixed .collapsible {
  3700. border: none;
  3701. box-shadow: none;
  3702. }
  3703. .sidenav .collapsible li,
  3704. .sidenav.fixed .collapsible li {
  3705. padding: 0;
  3706. }
  3707. .sidenav .collapsible-header,
  3708. .sidenav.fixed .collapsible-header {
  3709. background-color: transparent;
  3710. border: none;
  3711. line-height: inherit;
  3712. height: inherit;
  3713. padding: 0 15px;
  3714. }
  3715. .sidenav .collapsible-header:hover,
  3716. .sidenav.fixed .collapsible-header:hover {
  3717. background-color: rgba(0, 0, 0, 0.05);
  3718. }
  3719. .sidenav .collapsible-header i,
  3720. .sidenav.fixed .collapsible-header i {
  3721. line-height: inherit;
  3722. }
  3723. .sidenav .collapsible-body,
  3724. .sidenav.fixed .collapsible-body {
  3725. border: 0;
  3726. background-color: #fff;
  3727. }
  3728. .sidenav .collapsible-body li a,
  3729. .sidenav.fixed .collapsible-body li a {
  3730. padding: 0 22.5px 0 30px;
  3731. }
  3732. .collapsible.popout {
  3733. border: none;
  3734. box-shadow: none;
  3735. }
  3736. .collapsible.popout > li {
  3737. box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
  3738. margin: 0 24px;
  3739. transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  3740. }
  3741. .collapsible.popout > li.active {
  3742. box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
  3743. margin: 16px 0;
  3744. }
  3745. .collection {
  3746. margin: 0.3333333333rem 0 0.6666666667rem 0;
  3747. border: 1px solid #e0e0e0;
  3748. border-radius: 2px;
  3749. overflow: hidden;
  3750. position: relative;
  3751. }
  3752. .collection .collection-item {
  3753. background-color: #fff;
  3754. line-height: 1.5rem;
  3755. padding: 10px 20px;
  3756. margin: 0;
  3757. border-bottom: 1px solid #e0e0e0;
  3758. }
  3759. .collection .collection-item.avatar {
  3760. min-height: 84px;
  3761. padding-left: 72px;
  3762. position: relative;
  3763. }
  3764. .collection .collection-item.avatar:not(.circle-clipper) > .circle,
  3765. .collection .collection-item.avatar :not(.circle-clipper) > .circle {
  3766. position: absolute;
  3767. width: 42px;
  3768. height: 42px;
  3769. overflow: hidden;
  3770. left: 15px;
  3771. display: inline-block;
  3772. vertical-align: middle;
  3773. }
  3774. .collection .collection-item.avatar i.circle {
  3775. font-size: 18px;
  3776. line-height: 42px;
  3777. color: #fff;
  3778. background-color: #999;
  3779. text-align: center;
  3780. }
  3781. .collection .collection-item.avatar .title {
  3782. font-size: 16px;
  3783. }
  3784. .collection .collection-item.avatar p {
  3785. margin: 0;
  3786. }
  3787. .collection .collection-item.avatar .secondary-content {
  3788. position: absolute;
  3789. top: 16px;
  3790. right: 16px;
  3791. }
  3792. .collection .collection-item:last-child {
  3793. border-bottom: none;
  3794. }
  3795. .collection .collection-item.active {
  3796. background-color: #26a69a;
  3797. color: rgb(234.25, 250.25, 248.75);
  3798. }
  3799. .collection .collection-item.active .secondary-content {
  3800. color: #fff;
  3801. }
  3802. .collection a.collection-item {
  3803. display: block;
  3804. transition: 0.25s;
  3805. color: #26a69a;
  3806. }
  3807. .collection a.collection-item:not(.active):hover {
  3808. background-color: #ddd;
  3809. }
  3810. .collection.with-header .collection-header {
  3811. background-color: #fff;
  3812. border-bottom: 1px solid #e0e0e0;
  3813. padding: 10px 20px;
  3814. }
  3815. .collection.with-header .collection-item {
  3816. padding-left: 30px;
  3817. }
  3818. .collection.with-header .collection-item.avatar {
  3819. padding-left: 72px;
  3820. }
  3821. .collection .secondary-content {
  3822. float: right;
  3823. color: #26a69a;
  3824. }
  3825. select:focus {
  3826. outline: 1px solid rgb(201.05, 242.65, 238.75);
  3827. }
  3828. button:focus {
  3829. outline: none;
  3830. background-color: rgb(41.8, 182.6, 169.4);
  3831. }
  3832. label {
  3833. font-size: 0.8rem;
  3834. color: #9e9e9e;
  3835. }
  3836. /* Text Inputs + Textarea
  3837. ========================================================================== */
  3838. /* Style Placeholders */
  3839. ::placeholder {
  3840. color: #d1d1d1;
  3841. }
  3842. /* Text inputs */
  3843. input:not([type]),
  3844. input[type=text]:not(.browser-default),
  3845. input[type=password]:not(.browser-default),
  3846. input[type=email]:not(.browser-default),
  3847. input[type=url]:not(.browser-default),
  3848. input[type=time]:not(.browser-default),
  3849. input[type=date]:not(.browser-default),
  3850. input[type=datetime]:not(.browser-default),
  3851. input[type=datetime-local]:not(.browser-default),
  3852. input[type=tel]:not(.browser-default),
  3853. input[type=number]:not(.browser-default),
  3854. input[type=search]:not(.browser-default),
  3855. textarea.textarea {
  3856. background-color: transparent;
  3857. border: none;
  3858. border-bottom: 1px solid #9e9e9e;
  3859. border-radius: 0;
  3860. outline: none;
  3861. height: 56px;
  3862. width: 100%;
  3863. font-size: 16px;
  3864. margin: 0 0 8px 0;
  3865. padding: 0;
  3866. box-shadow: none;
  3867. box-sizing: content-box;
  3868. transition: box-shadow 0.3s, border 0.3s;
  3869. }
  3870. input:not([type]):disabled, input:not([type])[readonly=readonly],
  3871. input[type=text]:not(.browser-default):disabled,
  3872. input[type=text]:not(.browser-default)[readonly=readonly],
  3873. input[type=password]:not(.browser-default):disabled,
  3874. input[type=password]:not(.browser-default)[readonly=readonly],
  3875. input[type=email]:not(.browser-default):disabled,
  3876. input[type=email]:not(.browser-default)[readonly=readonly],
  3877. input[type=url]:not(.browser-default):disabled,
  3878. input[type=url]:not(.browser-default)[readonly=readonly],
  3879. input[type=time]:not(.browser-default):disabled,
  3880. input[type=time]:not(.browser-default)[readonly=readonly],
  3881. input[type=date]:not(.browser-default):disabled,
  3882. input[type=date]:not(.browser-default)[readonly=readonly],
  3883. input[type=datetime]:not(.browser-default):disabled,
  3884. input[type=datetime]:not(.browser-default)[readonly=readonly],
  3885. input[type=datetime-local]:not(.browser-default):disabled,
  3886. input[type=datetime-local]:not(.browser-default)[readonly=readonly],
  3887. input[type=tel]:not(.browser-default):disabled,
  3888. input[type=tel]:not(.browser-default)[readonly=readonly],
  3889. input[type=number]:not(.browser-default):disabled,
  3890. input[type=number]:not(.browser-default)[readonly=readonly],
  3891. input[type=search]:not(.browser-default):disabled,
  3892. input[type=search]:not(.browser-default)[readonly=readonly],
  3893. textarea.textarea:disabled,
  3894. textarea.textarea[readonly=readonly] {
  3895. color: rgba(0, 0, 0, 0.42);
  3896. border-bottom: 1px dotted rgba(0, 0, 0, 0.42);
  3897. }
  3898. input:not([type]):disabled + label, input:not([type])[readonly=readonly] + label,
  3899. input[type=text]:not(.browser-default):disabled + label,
  3900. input[type=text]:not(.browser-default)[readonly=readonly] + label,
  3901. input[type=password]:not(.browser-default):disabled + label,
  3902. input[type=password]:not(.browser-default)[readonly=readonly] + label,
  3903. input[type=email]:not(.browser-default):disabled + label,
  3904. input[type=email]:not(.browser-default)[readonly=readonly] + label,
  3905. input[type=url]:not(.browser-default):disabled + label,
  3906. input[type=url]:not(.browser-default)[readonly=readonly] + label,
  3907. input[type=time]:not(.browser-default):disabled + label,
  3908. input[type=time]:not(.browser-default)[readonly=readonly] + label,
  3909. input[type=date]:not(.browser-default):disabled + label,
  3910. input[type=date]:not(.browser-default)[readonly=readonly] + label,
  3911. input[type=datetime]:not(.browser-default):disabled + label,
  3912. input[type=datetime]:not(.browser-default)[readonly=readonly] + label,
  3913. input[type=datetime-local]:not(.browser-default):disabled + label,
  3914. input[type=datetime-local]:not(.browser-default)[readonly=readonly] + label,
  3915. input[type=tel]:not(.browser-default):disabled + label,
  3916. input[type=tel]:not(.browser-default)[readonly=readonly] + label,
  3917. input[type=number]:not(.browser-default):disabled + label,
  3918. input[type=number]:not(.browser-default)[readonly=readonly] + label,
  3919. input[type=search]:not(.browser-default):disabled + label,
  3920. input[type=search]:not(.browser-default)[readonly=readonly] + label,
  3921. textarea.textarea:disabled + label,
  3922. textarea.textarea[readonly=readonly] + label {
  3923. color: rgba(0, 0, 0, 0.42);
  3924. }
  3925. input:not([type]):focus:not([readonly]),
  3926. input[type=text]:not(.browser-default):focus:not([readonly]),
  3927. input[type=password]:not(.browser-default):focus:not([readonly]),
  3928. input[type=email]:not(.browser-default):focus:not([readonly]),
  3929. input[type=url]:not(.browser-default):focus:not([readonly]),
  3930. input[type=time]:not(.browser-default):focus:not([readonly]),
  3931. input[type=date]:not(.browser-default):focus:not([readonly]),
  3932. input[type=datetime]:not(.browser-default):focus:not([readonly]),
  3933. input[type=datetime-local]:not(.browser-default):focus:not([readonly]),
  3934. input[type=tel]:not(.browser-default):focus:not([readonly]),
  3935. input[type=number]:not(.browser-default):focus:not([readonly]),
  3936. input[type=search]:not(.browser-default):focus:not([readonly]),
  3937. textarea.textarea:focus:not([readonly]) {
  3938. border-bottom: 1px solid #26a69a;
  3939. box-shadow: 0 1px 0 0 #26a69a;
  3940. }
  3941. input:not([type]):focus:not([readonly]) + label,
  3942. input[type=text]:not(.browser-default):focus:not([readonly]) + label,
  3943. input[type=password]:not(.browser-default):focus:not([readonly]) + label,
  3944. input[type=email]:not(.browser-default):focus:not([readonly]) + label,
  3945. input[type=url]:not(.browser-default):focus:not([readonly]) + label,
  3946. input[type=time]:not(.browser-default):focus:not([readonly]) + label,
  3947. input[type=date]:not(.browser-default):focus:not([readonly]) + label,
  3948. input[type=datetime]:not(.browser-default):focus:not([readonly]) + label,
  3949. input[type=datetime-local]:not(.browser-default):focus:not([readonly]) + label,
  3950. input[type=tel]:not(.browser-default):focus:not([readonly]) + label,
  3951. input[type=number]:not(.browser-default):focus:not([readonly]) + label,
  3952. input[type=search]:not(.browser-default):focus:not([readonly]) + label,
  3953. textarea.textarea:focus:not([readonly]) + label {
  3954. color: #26a69a;
  3955. }
  3956. input:not([type]):focus.valid ~ label,
  3957. input[type=text]:not(.browser-default):focus.valid ~ label,
  3958. input[type=password]:not(.browser-default):focus.valid ~ label,
  3959. input[type=email]:not(.browser-default):focus.valid ~ label,
  3960. input[type=url]:not(.browser-default):focus.valid ~ label,
  3961. input[type=time]:not(.browser-default):focus.valid ~ label,
  3962. input[type=date]:not(.browser-default):focus.valid ~ label,
  3963. input[type=datetime]:not(.browser-default):focus.valid ~ label,
  3964. input[type=datetime-local]:not(.browser-default):focus.valid ~ label,
  3965. input[type=tel]:not(.browser-default):focus.valid ~ label,
  3966. input[type=number]:not(.browser-default):focus.valid ~ label,
  3967. input[type=search]:not(.browser-default):focus.valid ~ label,
  3968. textarea.textarea:focus.valid ~ label {
  3969. color: #4caf50;
  3970. }
  3971. input:not([type]):focus.invalid ~ label,
  3972. input[type=text]:not(.browser-default):focus.invalid ~ label,
  3973. input[type=password]:not(.browser-default):focus.invalid ~ label,
  3974. input[type=email]:not(.browser-default):focus.invalid ~ label,
  3975. input[type=url]:not(.browser-default):focus.invalid ~ label,
  3976. input[type=time]:not(.browser-default):focus.invalid ~ label,
  3977. input[type=date]:not(.browser-default):focus.invalid ~ label,
  3978. input[type=datetime]:not(.browser-default):focus.invalid ~ label,
  3979. input[type=datetime-local]:not(.browser-default):focus.invalid ~ label,
  3980. input[type=tel]:not(.browser-default):focus.invalid ~ label,
  3981. input[type=number]:not(.browser-default):focus.invalid ~ label,
  3982. input[type=search]:not(.browser-default):focus.invalid ~ label,
  3983. textarea.textarea:focus.invalid ~ label {
  3984. color: #f44336;
  3985. }
  3986. input:not([type]).validate + label,
  3987. input[type=text]:not(.browser-default).validate + label,
  3988. input[type=password]:not(.browser-default).validate + label,
  3989. input[type=email]:not(.browser-default).validate + label,
  3990. input[type=url]:not(.browser-default).validate + label,
  3991. input[type=time]:not(.browser-default).validate + label,
  3992. input[type=date]:not(.browser-default).validate + label,
  3993. input[type=datetime]:not(.browser-default).validate + label,
  3994. input[type=datetime-local]:not(.browser-default).validate + label,
  3995. input[type=tel]:not(.browser-default).validate + label,
  3996. input[type=number]:not(.browser-default).validate + label,
  3997. input[type=search]:not(.browser-default).validate + label,
  3998. textarea.textarea.validate + label {
  3999. width: 100%;
  4000. }
  4001. /* Validation Sass Placeholders */
  4002. .select-wrapper.valid > input.select-dropdown, input:not([type]).valid, input:not([type]):focus.valid,
  4003. input[type=text]:not(.browser-default).valid,
  4004. input[type=text]:not(.browser-default):focus.valid,
  4005. input[type=password]:not(.browser-default).valid,
  4006. input[type=password]:not(.browser-default):focus.valid,
  4007. input[type=email]:not(.browser-default).valid,
  4008. input[type=email]:not(.browser-default):focus.valid,
  4009. input[type=url]:not(.browser-default).valid,
  4010. input[type=url]:not(.browser-default):focus.valid,
  4011. input[type=time]:not(.browser-default).valid,
  4012. input[type=time]:not(.browser-default):focus.valid,
  4013. input[type=date]:not(.browser-default).valid,
  4014. input[type=date]:not(.browser-default):focus.valid,
  4015. input[type=datetime]:not(.browser-default).valid,
  4016. input[type=datetime]:not(.browser-default):focus.valid,
  4017. input[type=datetime-local]:not(.browser-default).valid,
  4018. input[type=datetime-local]:not(.browser-default):focus.valid,
  4019. input[type=tel]:not(.browser-default).valid,
  4020. input[type=tel]:not(.browser-default):focus.valid,
  4021. input[type=number]:not(.browser-default).valid,
  4022. input[type=number]:not(.browser-default):focus.valid,
  4023. input[type=search]:not(.browser-default).valid,
  4024. input[type=search]:not(.browser-default):focus.valid,
  4025. textarea.textarea.valid,
  4026. textarea.textarea:focus.valid {
  4027. border-bottom: 1px solid #4caf50;
  4028. box-shadow: 0 1px 0 0 #4caf50;
  4029. }
  4030. .select-wrapper.invalid > input.select-dropdown, .select-wrapper.invalid > input.select-dropdown:focus, input:not([type]).invalid, input:not([type]):focus.invalid,
  4031. input[type=text]:not(.browser-default).invalid,
  4032. input[type=text]:not(.browser-default):focus.invalid,
  4033. input[type=password]:not(.browser-default).invalid,
  4034. input[type=password]:not(.browser-default):focus.invalid,
  4035. input[type=email]:not(.browser-default).invalid,
  4036. input[type=email]:not(.browser-default):focus.invalid,
  4037. input[type=url]:not(.browser-default).invalid,
  4038. input[type=url]:not(.browser-default):focus.invalid,
  4039. input[type=time]:not(.browser-default).invalid,
  4040. input[type=time]:not(.browser-default):focus.invalid,
  4041. input[type=date]:not(.browser-default).invalid,
  4042. input[type=date]:not(.browser-default):focus.invalid,
  4043. input[type=datetime]:not(.browser-default).invalid,
  4044. input[type=datetime]:not(.browser-default):focus.invalid,
  4045. input[type=datetime-local]:not(.browser-default).invalid,
  4046. input[type=datetime-local]:not(.browser-default):focus.invalid,
  4047. input[type=tel]:not(.browser-default).invalid,
  4048. input[type=tel]:not(.browser-default):focus.invalid,
  4049. input[type=number]:not(.browser-default).invalid,
  4050. input[type=number]:not(.browser-default):focus.invalid,
  4051. input[type=search]:not(.browser-default).invalid,
  4052. input[type=search]:not(.browser-default):focus.invalid,
  4053. textarea.textarea.invalid,
  4054. textarea.textarea:focus.invalid {
  4055. border-bottom: 1px solid #f44336;
  4056. box-shadow: 0 1px 0 0 #f44336;
  4057. }
  4058. .select-wrapper.valid .helper-text[data-success], .select-wrapper.invalid ~ .helper-text[data-error], input:not([type]).valid ~ .helper-text[data-success], input:not([type]):focus.valid ~ .helper-text[data-success], input:not([type]).invalid ~ .helper-text[data-error], input:not([type]):focus.invalid ~ .helper-text[data-error],
  4059. input[type=text]:not(.browser-default).valid ~ .helper-text[data-success],
  4060. input[type=text]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4061. input[type=text]:not(.browser-default).invalid ~ .helper-text[data-error],
  4062. input[type=text]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4063. input[type=password]:not(.browser-default).valid ~ .helper-text[data-success],
  4064. input[type=password]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4065. input[type=password]:not(.browser-default).invalid ~ .helper-text[data-error],
  4066. input[type=password]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4067. input[type=email]:not(.browser-default).valid ~ .helper-text[data-success],
  4068. input[type=email]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4069. input[type=email]:not(.browser-default).invalid ~ .helper-text[data-error],
  4070. input[type=email]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4071. input[type=url]:not(.browser-default).valid ~ .helper-text[data-success],
  4072. input[type=url]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4073. input[type=url]:not(.browser-default).invalid ~ .helper-text[data-error],
  4074. input[type=url]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4075. input[type=time]:not(.browser-default).valid ~ .helper-text[data-success],
  4076. input[type=time]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4077. input[type=time]:not(.browser-default).invalid ~ .helper-text[data-error],
  4078. input[type=time]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4079. input[type=date]:not(.browser-default).valid ~ .helper-text[data-success],
  4080. input[type=date]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4081. input[type=date]:not(.browser-default).invalid ~ .helper-text[data-error],
  4082. input[type=date]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4083. input[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success],
  4084. input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4085. input[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error],
  4086. input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4087. input[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success],
  4088. input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4089. input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error],
  4090. input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4091. input[type=tel]:not(.browser-default).valid ~ .helper-text[data-success],
  4092. input[type=tel]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4093. input[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error],
  4094. input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4095. input[type=number]:not(.browser-default).valid ~ .helper-text[data-success],
  4096. input[type=number]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4097. input[type=number]:not(.browser-default).invalid ~ .helper-text[data-error],
  4098. input[type=number]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4099. input[type=search]:not(.browser-default).valid ~ .helper-text[data-success],
  4100. input[type=search]:not(.browser-default):focus.valid ~ .helper-text[data-success],
  4101. input[type=search]:not(.browser-default).invalid ~ .helper-text[data-error],
  4102. input[type=search]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
  4103. textarea.textarea.valid ~ .helper-text[data-success],
  4104. textarea.textarea:focus.valid ~ .helper-text[data-success],
  4105. textarea.textarea.invalid ~ .helper-text[data-error],
  4106. textarea.textarea:focus.invalid ~ .helper-text[data-error] {
  4107. color: transparent;
  4108. user-select: none;
  4109. pointer-events: none;
  4110. }
  4111. .select-wrapper.valid ~ .helper-text:after, input:not([type]).valid ~ .helper-text:after, input:not([type]):focus.valid ~ .helper-text:after,
  4112. input[type=text]:not(.browser-default).valid ~ .helper-text:after,
  4113. input[type=text]:not(.browser-default):focus.valid ~ .helper-text:after,
  4114. input[type=password]:not(.browser-default).valid ~ .helper-text:after,
  4115. input[type=password]:not(.browser-default):focus.valid ~ .helper-text:after,
  4116. input[type=email]:not(.browser-default).valid ~ .helper-text:after,
  4117. input[type=email]:not(.browser-default):focus.valid ~ .helper-text:after,
  4118. input[type=url]:not(.browser-default).valid ~ .helper-text:after,
  4119. input[type=url]:not(.browser-default):focus.valid ~ .helper-text:after,
  4120. input[type=time]:not(.browser-default).valid ~ .helper-text:after,
  4121. input[type=time]:not(.browser-default):focus.valid ~ .helper-text:after,
  4122. input[type=date]:not(.browser-default).valid ~ .helper-text:after,
  4123. input[type=date]:not(.browser-default):focus.valid ~ .helper-text:after,
  4124. input[type=datetime]:not(.browser-default).valid ~ .helper-text:after,
  4125. input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after,
  4126. input[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after,
  4127. input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after,
  4128. input[type=tel]:not(.browser-default).valid ~ .helper-text:after,
  4129. input[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after,
  4130. input[type=number]:not(.browser-default).valid ~ .helper-text:after,
  4131. input[type=number]:not(.browser-default):focus.valid ~ .helper-text:after,
  4132. input[type=search]:not(.browser-default).valid ~ .helper-text:after,
  4133. input[type=search]:not(.browser-default):focus.valid ~ .helper-text:after,
  4134. textarea.textarea.valid ~ .helper-text:after,
  4135. textarea.textarea:focus.valid ~ .helper-text:after {
  4136. content: attr(data-success);
  4137. color: #4caf50;
  4138. }
  4139. .select-wrapper.invalid ~ .helper-text:after, input:not([type]).invalid ~ .helper-text:after, input:not([type]):focus.invalid ~ .helper-text:after,
  4140. input[type=text]:not(.browser-default).invalid ~ .helper-text:after,
  4141. input[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4142. input[type=password]:not(.browser-default).invalid ~ .helper-text:after,
  4143. input[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4144. input[type=email]:not(.browser-default).invalid ~ .helper-text:after,
  4145. input[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4146. input[type=url]:not(.browser-default).invalid ~ .helper-text:after,
  4147. input[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4148. input[type=time]:not(.browser-default).invalid ~ .helper-text:after,
  4149. input[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4150. input[type=date]:not(.browser-default).invalid ~ .helper-text:after,
  4151. input[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4152. input[type=datetime]:not(.browser-default).invalid ~ .helper-text:after,
  4153. input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4154. input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after,
  4155. input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4156. input[type=tel]:not(.browser-default).invalid ~ .helper-text:after,
  4157. input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4158. input[type=number]:not(.browser-default).invalid ~ .helper-text:after,
  4159. input[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4160. input[type=search]:not(.browser-default).invalid ~ .helper-text:after,
  4161. input[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after,
  4162. textarea.textarea.invalid ~ .helper-text:after,
  4163. textarea.textarea:focus.invalid ~ .helper-text:after {
  4164. content: attr(data-error);
  4165. color: #f44336;
  4166. }
  4167. .select-wrapper + label:after, input:not([type]) + label:after,
  4168. input[type=text]:not(.browser-default) + label:after,
  4169. input[type=password]:not(.browser-default) + label:after,
  4170. input[type=email]:not(.browser-default) + label:after,
  4171. input[type=url]:not(.browser-default) + label:after,
  4172. input[type=time]:not(.browser-default) + label:after,
  4173. input[type=date]:not(.browser-default) + label:after,
  4174. input[type=datetime]:not(.browser-default) + label:after,
  4175. input[type=datetime-local]:not(.browser-default) + label:after,
  4176. input[type=tel]:not(.browser-default) + label:after,
  4177. input[type=number]:not(.browser-default) + label:after,
  4178. input[type=search]:not(.browser-default) + label:after,
  4179. textarea.textarea + label:after {
  4180. display: block;
  4181. content: "";
  4182. position: absolute;
  4183. top: 100%;
  4184. left: 0;
  4185. opacity: 0;
  4186. transition: 0.2s opacity ease-out, 0.2s color ease-out;
  4187. }
  4188. .input-field {
  4189. position: relative;
  4190. margin-top: 1rem;
  4191. margin-bottom: 1rem;
  4192. }
  4193. .input-field.inline {
  4194. display: inline-block;
  4195. vertical-align: middle;
  4196. margin-left: 5px;
  4197. }
  4198. .input-field.inline input,
  4199. .input-field.inline .select-dropdown {
  4200. margin-bottom: 1rem;
  4201. }
  4202. .input-field.col label {
  4203. left: 0.5rem;
  4204. }
  4205. .input-field.col .prefix ~ label,
  4206. .input-field.col .prefix ~ .validate ~ label {
  4207. width: calc(100% - 3rem - 1rem);
  4208. }
  4209. .input-field > label {
  4210. color: #9e9e9e;
  4211. position: absolute;
  4212. top: 0;
  4213. left: 0;
  4214. font-size: 1rem;
  4215. cursor: text;
  4216. transition: transform 0.2s ease-out, color 0.2s ease-out;
  4217. transform-origin: 0% 100%;
  4218. text-align: initial;
  4219. transform: translateY(12px);
  4220. }
  4221. .input-field > label:not(.label-icon).active {
  4222. transform: translateY(-14px) scale(0.8);
  4223. transform-origin: 0 0;
  4224. }
  4225. .input-field > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label, .input-field > input[type=date]:not(.browser-default) + label, .input-field > input[type=time]:not(.browser-default) + label {
  4226. transform: translateY(-14px) scale(0.8);
  4227. transform-origin: 0 0;
  4228. }
  4229. .input-field .helper-text {
  4230. position: relative;
  4231. min-height: 18px;
  4232. display: block;
  4233. font-size: 12px;
  4234. color: rgba(0, 0, 0, 0.54);
  4235. }
  4236. .input-field .helper-text::after {
  4237. opacity: 1;
  4238. position: absolute;
  4239. top: 0;
  4240. left: 0;
  4241. }
  4242. .input-field .prefix {
  4243. position: absolute;
  4244. width: 56px;
  4245. font-size: 2rem;
  4246. transition: color 0.2s;
  4247. }
  4248. .input-field .prefix.active {
  4249. color: #26a69a;
  4250. }
  4251. .input-field .prefix ~ input,
  4252. .input-field .prefix ~ textarea,
  4253. .input-field .prefix ~ label,
  4254. .input-field .prefix ~ .validate ~ label,
  4255. .input-field .prefix ~ .helper-text,
  4256. .input-field .prefix ~ .autocomplete-content {
  4257. margin-left: 3rem;
  4258. width: 92%;
  4259. width: calc(100% - 3rem);
  4260. }
  4261. .input-field .prefix ~ label {
  4262. margin-left: 3rem;
  4263. }
  4264. @media only screen and (max-width : 992px) {
  4265. .input-field .prefix ~ input {
  4266. width: 86%;
  4267. width: calc(100% - 3rem);
  4268. }
  4269. }
  4270. @media only screen and (max-width : 600px) {
  4271. .input-field .prefix ~ input {
  4272. width: 80%;
  4273. width: calc(100% - 3rem);
  4274. }
  4275. }
  4276. /* Search Field */
  4277. .input-field input[type=search] {
  4278. display: block;
  4279. line-height: inherit;
  4280. transition: 0.3s background-color;
  4281. }
  4282. .nav-wrapper .input-field input[type=search] {
  4283. height: inherit;
  4284. padding-left: 4rem;
  4285. width: calc(100% - 4rem);
  4286. border: 0;
  4287. box-shadow: none;
  4288. }
  4289. .input-field input[type=search]:focus:not(.browser-default) {
  4290. background-color: #fff;
  4291. border: 0;
  4292. box-shadow: none;
  4293. color: #444;
  4294. }
  4295. .input-field input[type=search]:focus:not(.browser-default) + label i, .input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close, .input-field input[type=search]:focus:not(.browser-default) ~ .material-icons {
  4296. color: #444;
  4297. }
  4298. .input-field input[type=search] + .label-icon {
  4299. transform: none;
  4300. left: 1rem;
  4301. }
  4302. .input-field input[type=search] ~ .mdi-navigation-close, .input-field input[type=search] ~ .material-icons {
  4303. position: absolute;
  4304. top: 0;
  4305. right: 1rem;
  4306. color: transparent;
  4307. cursor: pointer;
  4308. font-size: 2rem;
  4309. transition: 0.3s color;
  4310. }
  4311. /* Textarea */
  4312. textarea {
  4313. width: 100%;
  4314. height: 56px;
  4315. background-color: transparent;
  4316. }
  4317. textarea.textarea {
  4318. line-height: normal;
  4319. overflow-y: hidden; /* prevents scroll bar flash */
  4320. padding: 0.8rem 0 0.8rem 0; /* prevents text jump on Enter keypress */
  4321. resize: none;
  4322. min-height: 56px;
  4323. box-sizing: border-box;
  4324. }
  4325. .hiddendiv {
  4326. visibility: hidden;
  4327. white-space: pre-wrap;
  4328. word-wrap: break-word;
  4329. overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */
  4330. padding-top: 1.2rem; /* prevents text jump on Enter keypress */
  4331. position: absolute;
  4332. top: 0;
  4333. z-index: -1;
  4334. }
  4335. /* Autocomplete */
  4336. .autocomplete-content li .highlight {
  4337. color: #444;
  4338. }
  4339. .autocomplete-content li img {
  4340. margin: 5px 15px;
  4341. }
  4342. /* Character Counter */
  4343. .character-counter {
  4344. min-height: 18px;
  4345. }
  4346. /* Radio Buttons
  4347. ========================================================================== */
  4348. [type=radio]:not(:checked),
  4349. [type=radio]:checked {
  4350. position: absolute;
  4351. opacity: 0;
  4352. pointer-events: none;
  4353. }
  4354. [type=radio]:not(:checked) + span,
  4355. [type=radio]:checked + span {
  4356. position: relative;
  4357. padding-left: 35px;
  4358. cursor: pointer;
  4359. display: inline-block;
  4360. height: 25px;
  4361. line-height: 25px;
  4362. font-size: 1rem;
  4363. transition: 0.28s ease;
  4364. user-select: none;
  4365. }
  4366. [type=radio] + span:before,
  4367. [type=radio] + span:after {
  4368. content: "";
  4369. position: absolute;
  4370. left: 0;
  4371. top: 0;
  4372. margin: 4px;
  4373. width: 16px;
  4374. height: 16px;
  4375. z-index: 0;
  4376. transition: 0.28s ease;
  4377. }
  4378. /* Unchecked styles */
  4379. [type=radio]:not(:checked) + span:before,
  4380. [type=radio]:not(:checked) + span:after,
  4381. [type=radio]:checked + span:before,
  4382. [type=radio]:checked + span:after,
  4383. [type=radio].with-gap:checked + span:before,
  4384. [type=radio].with-gap:checked + span:after {
  4385. border-radius: 50%;
  4386. }
  4387. [type=radio]:not(:checked) + span:before,
  4388. [type=radio]:not(:checked) + span:after {
  4389. border: 2px solid #5a5a5a;
  4390. }
  4391. [type=radio]:not(:checked) + span:after {
  4392. transform: scale(0);
  4393. }
  4394. /* Checked styles */
  4395. [type=radio]:checked + span:before {
  4396. border: 2px solid transparent;
  4397. }
  4398. [type=radio]:checked + span:after,
  4399. [type=radio].with-gap:checked + span:before,
  4400. [type=radio].with-gap:checked + span:after {
  4401. border: 2px solid #26a69a;
  4402. }
  4403. [type=radio]:checked + span:after,
  4404. [type=radio].with-gap:checked + span:after {
  4405. background-color: #26a69a;
  4406. }
  4407. [type=radio]:checked + span:after {
  4408. transform: scale(1.02);
  4409. }
  4410. /* Radio With gap */
  4411. [type=radio].with-gap:checked + span:after {
  4412. transform: scale(0.5);
  4413. }
  4414. /* Focused styles */
  4415. [type=radio].tabbed:focus + span:before {
  4416. box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
  4417. }
  4418. /* Disabled Radio With gap */
  4419. [type=radio].with-gap:disabled:checked + span:before {
  4420. border: 2px solid rgba(0, 0, 0, 0.42);
  4421. }
  4422. [type=radio].with-gap:disabled:checked + span:after {
  4423. border: none;
  4424. background-color: rgba(0, 0, 0, 0.42);
  4425. }
  4426. /* Disabled style */
  4427. [type=radio]:disabled:not(:checked) + span:before,
  4428. [type=radio]:disabled:checked + span:before {
  4429. background-color: transparent;
  4430. border-color: rgba(0, 0, 0, 0.42);
  4431. }
  4432. [type=radio]:disabled + span {
  4433. color: rgba(0, 0, 0, 0.42);
  4434. }
  4435. [type=radio]:disabled:not(:checked) + span:before {
  4436. border-color: rgba(0, 0, 0, 0.42);
  4437. }
  4438. [type=radio]:disabled:checked + span:after {
  4439. background-color: rgba(0, 0, 0, 0.42);
  4440. border-color: #949494;
  4441. }
  4442. /* Checkboxes
  4443. ========================================================================== */
  4444. /* Remove default checkbox */
  4445. [type=checkbox]:not(:checked),
  4446. [type=checkbox]:checked {
  4447. position: absolute;
  4448. opacity: 0;
  4449. pointer-events: none;
  4450. }
  4451. [type=checkbox] {
  4452. /* checkbox aspect */
  4453. }
  4454. [type=checkbox] + span:not(.lever) {
  4455. position: relative;
  4456. padding-left: 35px;
  4457. cursor: pointer;
  4458. display: inline-block;
  4459. height: 25px;
  4460. line-height: 25px;
  4461. font-size: 1rem;
  4462. user-select: none;
  4463. }
  4464. [type=checkbox] + span:not(.lever):before, [type=checkbox]:not(.filled-in) + span:not(.lever):after {
  4465. content: "";
  4466. position: absolute;
  4467. top: 0;
  4468. left: 0;
  4469. width: 18px;
  4470. height: 18px;
  4471. z-index: 0;
  4472. border: 2px solid #5a5a5a;
  4473. border-radius: 1px;
  4474. margin-top: 3px;
  4475. transition: 0.2s;
  4476. }
  4477. [type=checkbox]:not(.filled-in) + span:not(.lever):after {
  4478. border: 0;
  4479. transform: scale(0);
  4480. }
  4481. [type=checkbox]:not(:checked):disabled + span:not(.lever):before {
  4482. border: none;
  4483. background-color: rgba(0, 0, 0, 0.42);
  4484. }
  4485. [type=checkbox].tabbed:focus + span:not(.lever):after {
  4486. transform: scale(1);
  4487. border: 0;
  4488. border-radius: 50%;
  4489. box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
  4490. background-color: rgba(0, 0, 0, 0.1);
  4491. }
  4492. [type=checkbox]:checked + span:not(.lever):before {
  4493. top: -4px;
  4494. left: -5px;
  4495. width: 12px;
  4496. height: 22px;
  4497. border-top: 2px solid transparent;
  4498. border-left: 2px solid transparent;
  4499. border-right: 2px solid #26a69a;
  4500. border-bottom: 2px solid #26a69a;
  4501. transform: rotate(40deg);
  4502. backface-visibility: hidden;
  4503. transform-origin: 100% 100%;
  4504. }
  4505. [type=checkbox]:checked:disabled + span:before {
  4506. border-right: 2px solid rgba(0, 0, 0, 0.42);
  4507. border-bottom: 2px solid rgba(0, 0, 0, 0.42);
  4508. }
  4509. /* Indeterminate checkbox */
  4510. [type=checkbox]:indeterminate + span:not(.lever):before {
  4511. top: -11px;
  4512. left: -12px;
  4513. width: 10px;
  4514. height: 22px;
  4515. border-top: none;
  4516. border-left: none;
  4517. border-right: 2px solid #26a69a;
  4518. border-bottom: none;
  4519. transform: rotate(90deg);
  4520. backface-visibility: hidden;
  4521. transform-origin: 100% 100%;
  4522. }
  4523. [type=checkbox]:indeterminate:disabled + span:not(.lever):before {
  4524. border-right: 2px solid rgba(0, 0, 0, 0.42);
  4525. background-color: transparent;
  4526. }
  4527. [type=checkbox].filled-in + span:not(.lever):after {
  4528. border-radius: 2px;
  4529. }
  4530. [type=checkbox].filled-in + span:not(.lever):before,
  4531. [type=checkbox].filled-in + span:not(.lever):after {
  4532. content: "";
  4533. left: 0;
  4534. position: absolute;
  4535. /* .1s delay is for check animation */
  4536. transition: border 0.25s, background-color 0.25s, width 0.2s 0.1s, height 0.2s 0.1s, top 0.2s 0.1s, left 0.2s 0.1s;
  4537. z-index: 1;
  4538. }
  4539. [type=checkbox].filled-in:not(:checked) + span:not(.lever):before {
  4540. width: 0;
  4541. height: 0;
  4542. border: 3px solid transparent;
  4543. left: 6px;
  4544. top: 10px;
  4545. transform: rotateZ(37deg);
  4546. transform-origin: 100% 100%;
  4547. }
  4548. [type=checkbox].filled-in:not(:checked) + span:not(.lever):after {
  4549. height: 20px;
  4550. width: 20px;
  4551. background-color: transparent;
  4552. border: 2px solid #5a5a5a;
  4553. top: 0px;
  4554. z-index: 0;
  4555. }
  4556. [type=checkbox].filled-in:checked + span:not(.lever):before {
  4557. top: 0;
  4558. left: 1px;
  4559. width: 8px;
  4560. height: 13px;
  4561. border-top: 2px solid transparent;
  4562. border-left: 2px solid transparent;
  4563. border-right: 2px solid #fff;
  4564. border-bottom: 2px solid #fff;
  4565. transform: rotateZ(37deg);
  4566. transform-origin: 100% 100%;
  4567. }
  4568. [type=checkbox].filled-in:checked + span:not(.lever):after {
  4569. top: 0;
  4570. width: 20px;
  4571. height: 20px;
  4572. border: 2px solid #26a69a;
  4573. background-color: #26a69a;
  4574. z-index: 0;
  4575. }
  4576. [type=checkbox].filled-in.tabbed:focus + span:not(.lever):after {
  4577. border-radius: 2px;
  4578. border-color: #5a5a5a;
  4579. background-color: rgba(0, 0, 0, 0.1);
  4580. }
  4581. [type=checkbox].filled-in.tabbed:checked:focus + span:not(.lever):after {
  4582. border-radius: 2px;
  4583. background-color: #26a69a;
  4584. border-color: #26a69a;
  4585. }
  4586. [type=checkbox].filled-in:disabled:not(:checked) + span:not(.lever):before {
  4587. background-color: transparent;
  4588. border: 2px solid transparent;
  4589. }
  4590. [type=checkbox].filled-in:disabled:not(:checked) + span:not(.lever):after {
  4591. border-color: transparent;
  4592. background-color: #949494;
  4593. }
  4594. [type=checkbox].filled-in:disabled:checked + span:not(.lever):before {
  4595. background-color: transparent;
  4596. }
  4597. [type=checkbox].filled-in:disabled:checked + span:not(.lever):after {
  4598. background-color: #949494;
  4599. border-color: #949494;
  4600. }
  4601. /* Switch
  4602. ========================================================================== */
  4603. .switch,
  4604. .switch * {
  4605. -webkit-tap-highlight-color: transparent;
  4606. user-select: none;
  4607. }
  4608. .switch label {
  4609. cursor: pointer;
  4610. }
  4611. .switch label input[type=checkbox] {
  4612. opacity: 0;
  4613. width: 0;
  4614. height: 0;
  4615. }
  4616. .switch label input[type=checkbox]:checked + .lever {
  4617. background-color: rgb(132.0625, 199.4375, 193.12109375);
  4618. }
  4619. .switch label input[type=checkbox]:checked + .lever:before, .switch label input[type=checkbox]:checked + .lever:after {
  4620. left: 18px;
  4621. }
  4622. .switch label input[type=checkbox]:checked + .lever:after {
  4623. background-color: #26a69a;
  4624. }
  4625. .switch label .lever {
  4626. content: "";
  4627. display: inline-block;
  4628. position: relative;
  4629. width: 36px;
  4630. height: 14px;
  4631. background-color: rgba(0, 0, 0, 0.38);
  4632. border-radius: 15px;
  4633. transition: background 0.3s ease;
  4634. vertical-align: middle;
  4635. margin: 0 16px;
  4636. }
  4637. .switch label .lever:before, .switch label .lever:after {
  4638. content: "";
  4639. position: absolute;
  4640. display: inline-block;
  4641. width: 20px;
  4642. height: 20px;
  4643. border-radius: 50%;
  4644. left: 0;
  4645. top: -3px;
  4646. transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease, transform 0.1s ease;
  4647. }
  4648. .switch label .lever:before {
  4649. background-color: rgba(38, 166, 154, 0.15);
  4650. }
  4651. .switch label .lever:after {
  4652. background-color: #F1F1F1;
  4653. box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
  4654. }
  4655. input[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,
  4656. input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before {
  4657. transform: scale(2.4);
  4658. background-color: rgba(38, 166, 154, 0.15);
  4659. }
  4660. input[type=checkbox]:not(:disabled) ~ .lever:active:before,
  4661. input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before {
  4662. transform: scale(2.4);
  4663. background-color: rgba(0, 0, 0, 0.08);
  4664. }
  4665. .switch input[type=checkbox][disabled] + .lever {
  4666. cursor: default;
  4667. background-color: rgba(0, 0, 0, 0.12);
  4668. }
  4669. .switch label input[type=checkbox][disabled] + .lever:after,
  4670. .switch label input[type=checkbox][disabled]:checked + .lever:after {
  4671. background-color: #949494;
  4672. }
  4673. /* Select Field
  4674. ========================================================================== */
  4675. select {
  4676. display: none;
  4677. }
  4678. select.browser-default {
  4679. display: block;
  4680. }
  4681. select {
  4682. background-color: rgba(255, 255, 255, 0.9);
  4683. width: 100%;
  4684. padding: 5px;
  4685. border: 1px solid #f2f2f2;
  4686. border-radius: 2px;
  4687. height: 56px;
  4688. }
  4689. .select-label {
  4690. position: absolute;
  4691. }
  4692. .select-wrapper {
  4693. position: relative;
  4694. }
  4695. .select-wrapper.valid + label, .select-wrapper.invalid + label {
  4696. width: 100%;
  4697. pointer-events: none;
  4698. }
  4699. .select-wrapper input.select-dropdown {
  4700. position: relative;
  4701. cursor: pointer;
  4702. background-color: transparent;
  4703. border: none;
  4704. border-bottom: 1px solid #9e9e9e;
  4705. outline: none;
  4706. height: 56px;
  4707. line-height: 56px;
  4708. width: 100%;
  4709. font-size: 16px;
  4710. margin: 0 0 8px 0;
  4711. padding: 0;
  4712. display: block;
  4713. user-select: none;
  4714. z-index: 1;
  4715. }
  4716. .select-wrapper input.select-dropdown:focus {
  4717. border-bottom: 1px solid #26a69a;
  4718. }
  4719. .select-wrapper .caret {
  4720. position: absolute;
  4721. right: 0;
  4722. top: 0;
  4723. bottom: 0;
  4724. margin: auto 0;
  4725. z-index: 0;
  4726. fill: rgba(0, 0, 0, 0.87);
  4727. }
  4728. .select-wrapper + label {
  4729. position: absolute;
  4730. top: -26px;
  4731. font-size: 0.8rem;
  4732. }
  4733. select:disabled {
  4734. color: rgba(0, 0, 0, 0.42);
  4735. }
  4736. .select-wrapper.disabled + label {
  4737. color: rgba(0, 0, 0, 0.42);
  4738. }
  4739. .select-wrapper.disabled .caret {
  4740. fill: rgba(0, 0, 0, 0.42);
  4741. }
  4742. .select-wrapper input.select-dropdown:disabled {
  4743. color: rgba(0, 0, 0, 0.42);
  4744. cursor: default;
  4745. user-select: none;
  4746. }
  4747. .select-wrapper i {
  4748. color: rgba(0, 0, 0, 0.3);
  4749. }
  4750. .select-dropdown li.disabled,
  4751. .select-dropdown li.disabled > span,
  4752. .select-dropdown li.optgroup {
  4753. color: rgba(0, 0, 0, 0.3);
  4754. background-color: transparent;
  4755. }
  4756. body.keyboard-focused .select-dropdown.dropdown-content li:focus {
  4757. background-color: rgba(0, 0, 0, 0.08);
  4758. }
  4759. .select-dropdown.dropdown-content li:hover {
  4760. background-color: rgba(0, 0, 0, 0.08);
  4761. }
  4762. .select-dropdown.dropdown-content li.selected {
  4763. background-color: rgba(0, 0, 0, 0.03);
  4764. }
  4765. .prefix ~ .select-wrapper {
  4766. margin-left: 3rem;
  4767. width: 92%;
  4768. width: calc(100% - 3rem);
  4769. }
  4770. .prefix ~ label {
  4771. margin-left: 3rem;
  4772. }
  4773. .select-dropdown li img {
  4774. margin: 5px 15px;
  4775. float: right;
  4776. }
  4777. .select-dropdown li.optgroup.selected > span {
  4778. color: rgba(0, 0, 0, 0.7);
  4779. }
  4780. .select-dropdown li.optgroup > span {
  4781. color: rgba(0, 0, 0, 0.4);
  4782. }
  4783. .select-dropdown li.optgroup ~ li.optgroup-option {
  4784. padding-left: 1rem;
  4785. }
  4786. /* File Input
  4787. ========================================================================== */
  4788. .file-field {
  4789. position: relative;
  4790. }
  4791. .file-field .file-path-wrapper {
  4792. overflow: hidden;
  4793. padding-left: 10px;
  4794. }
  4795. .file-field input.file-path {
  4796. width: 100%;
  4797. }
  4798. .file-field .btn, .file-field .btn-small, .file-field .btn-large {
  4799. float: left;
  4800. height: 56px;
  4801. line-height: 56px;
  4802. }
  4803. .file-field span {
  4804. cursor: pointer;
  4805. }
  4806. .file-field input[type=file] {
  4807. position: absolute;
  4808. top: 0;
  4809. right: 0;
  4810. left: 0;
  4811. bottom: 0;
  4812. width: 100%;
  4813. margin: 0;
  4814. padding: 0;
  4815. font-size: 20px;
  4816. cursor: pointer;
  4817. opacity: 0;
  4818. filter: alpha(opacity=0);
  4819. }
  4820. .file-field input[type=file]::-webkit-file-upload-button {
  4821. display: none;
  4822. }
  4823. /* Range
  4824. ========================================================================== */
  4825. .range-field {
  4826. position: relative;
  4827. }
  4828. input[type=range],
  4829. input[type=range] + .thumb {
  4830. cursor: pointer;
  4831. }
  4832. input[type=range] {
  4833. position: relative;
  4834. background-color: transparent;
  4835. border: none;
  4836. outline: none;
  4837. width: 100%;
  4838. margin: 15px 0;
  4839. padding: 0;
  4840. }
  4841. input[type=range]:focus {
  4842. outline: none;
  4843. }
  4844. input[type=range] + .thumb {
  4845. position: absolute;
  4846. top: 10px;
  4847. left: 0;
  4848. border: none;
  4849. height: 0;
  4850. width: 0;
  4851. border-radius: 50%;
  4852. background-color: #26a69a;
  4853. margin-left: 7px;
  4854. transform-origin: 50% 50%;
  4855. transform: rotate(-45deg);
  4856. }
  4857. input[type=range] + .thumb .value {
  4858. display: block;
  4859. width: 30px;
  4860. text-align: center;
  4861. color: #26a69a;
  4862. font-size: 0;
  4863. transform: rotate(45deg);
  4864. }
  4865. input[type=range] + .thumb.active {
  4866. border-radius: 50% 50% 50% 0;
  4867. }
  4868. input[type=range] + .thumb.active .value {
  4869. color: #fff;
  4870. margin-left: -1px;
  4871. margin-top: 8px;
  4872. font-size: 10px;
  4873. }
  4874. input[type=range] {
  4875. -webkit-appearance: none;
  4876. }
  4877. input[type=range]::-webkit-slider-runnable-track {
  4878. height: 3px;
  4879. background: #c2c0c2;
  4880. border: none;
  4881. }
  4882. input[type=range]::-webkit-slider-thumb {
  4883. border: none;
  4884. height: 14px;
  4885. width: 14px;
  4886. border-radius: 50%;
  4887. background: #26a69a;
  4888. transition: box-shadow 0.3s;
  4889. -webkit-appearance: none;
  4890. background-color: #26a69a;
  4891. transform-origin: 50% 50%;
  4892. margin: -5px 0 0 0;
  4893. }
  4894. .keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb {
  4895. box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);
  4896. }
  4897. input[type=range] {
  4898. /* fix for FF unable to apply focus style bug */
  4899. border: 1px solid white;
  4900. /*required for proper track sizing in FF*/
  4901. }
  4902. input[type=range]::-moz-range-track {
  4903. height: 3px;
  4904. background: #c2c0c2;
  4905. border: none;
  4906. }
  4907. input[type=range]::-moz-focus-inner {
  4908. border: 0;
  4909. }
  4910. input[type=range]::-moz-range-thumb {
  4911. border: none;
  4912. height: 14px;
  4913. width: 14px;
  4914. border-radius: 50%;
  4915. background: #26a69a;
  4916. transition: box-shadow 0.3s;
  4917. margin-top: -5px;
  4918. }
  4919. input[type=range]:-moz-focusring {
  4920. outline: 1px solid #fff;
  4921. outline-offset: -1px;
  4922. }
  4923. .keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb {
  4924. box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);
  4925. }
  4926. input[type=range]::-ms-track {
  4927. height: 3px;
  4928. background: transparent;
  4929. border-color: transparent;
  4930. border-width: 6px 0;
  4931. /*remove default tick marks*/
  4932. color: transparent;
  4933. }
  4934. input[type=range]::-ms-fill-lower {
  4935. background: #777;
  4936. }
  4937. input[type=range]::-ms-fill-upper {
  4938. background: #ddd;
  4939. }
  4940. input[type=range]::-ms-thumb {
  4941. border: none;
  4942. height: 14px;
  4943. width: 14px;
  4944. border-radius: 50%;
  4945. background: #26a69a;
  4946. transition: box-shadow 0.3s;
  4947. }
  4948. .keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb {
  4949. box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);
  4950. }
  4951. .parallax {
  4952. /* Set a specific height */
  4953. min-height: 500px;
  4954. /* Create the parallax scrolling effect */
  4955. background-attachment: fixed;
  4956. background-position: center;
  4957. background-repeat: no-repeat;
  4958. background-size: cover;
  4959. }
  4960. * {
  4961. box-sizing: border-box;
  4962. }
  4963. body {
  4964. font-family: sans-serif;
  4965. }
  4966. .scene {
  4967. width: 200px;
  4968. height: 200px;
  4969. border: 1px solid #CCC;
  4970. margin: 80px;
  4971. perspective: 400px;
  4972. }
  4973. .cube {
  4974. width: 200px;
  4975. height: 200px;
  4976. position: relative;
  4977. transform-style: preserve-3d;
  4978. transform: translateZ(-400px);
  4979. transition: transform 1s;
  4980. }
  4981. .cube.show-front {
  4982. transform: translateZ(-10px) rotateY(0deg);
  4983. }
  4984. .cube.show-right {
  4985. transform: translateZ(-10px) rotateY(-90deg);
  4986. }
  4987. .cube.show-back {
  4988. transform: translateZ(-10px) rotateY(-180deg);
  4989. }
  4990. .cube.show-left {
  4991. transform: translateZ(-10px) rotateY(90deg);
  4992. }
  4993. .cube.show-top {
  4994. transform: translateZ(-10px) rotateX(-90deg);
  4995. }
  4996. .cube.show-bottom {
  4997. transform: translateZ(-10px) rotateX(90deg);
  4998. }
  4999. .cube__face {
  5000. position: absolute;
  5001. width: 200px;
  5002. height: 200px;
  5003. border: 2px solid black;
  5004. line-height: 200px;
  5005. font-size: 40px;
  5006. font-weight: bold;
  5007. color: white;
  5008. text-align: center;
  5009. }
  5010. .cube__face--front {
  5011. background: hsla(0, 100%, 50%, 0.7);
  5012. }
  5013. .cube__face--right {
  5014. background: hsla(60, 100%, 50%, 0.7);
  5015. }
  5016. .cube__face--back {
  5017. background: hsla(120, 100%, 50%, 0.7);
  5018. }
  5019. .cube__face--left {
  5020. background: hsla(180, 100%, 50%, 0.7);
  5021. }
  5022. .cube__face--top {
  5023. background: hsla(240, 100%, 50%, 0.7);
  5024. }
  5025. .cube__face--bottom {
  5026. background: hsla(300, 100%, 50%, 0.7);
  5027. }
  5028. .cube__face--front {
  5029. transform: rotateY(0deg) translateZ(100px);
  5030. }
  5031. .cube__face--right {
  5032. transform: rotateY(90deg) translateZ(100px);
  5033. }
  5034. .cube__face--back {
  5035. transform: rotateY(180deg) translateZ(100px);
  5036. }
  5037. .cube__face--left {
  5038. transform: rotateY(-90deg) translateZ(100px);
  5039. }
  5040. .cube__face--top {
  5041. transform: rotateX(90deg) translateZ(100px);
  5042. }
  5043. .cube__face--bottom {
  5044. transform: rotateX(-90deg) translateZ(100px);
  5045. }
  5046. label {
  5047. margin-right: 10px;
  5048. }
  5049. .container {
  5050. margin: 0 auto;
  5051. max-width: 1280px;
  5052. width: 90%;
  5053. }
  5054. @media only screen and (min-width : 601px) {
  5055. .container {
  5056. width: 85%;
  5057. }
  5058. }
  5059. @media only screen and (min-width : 993px) {
  5060. .container {
  5061. width: 70%;
  5062. }
  5063. }
  5064. .col .row {
  5065. margin-left: -0.5rem;
  5066. margin-right: -0.5rem;
  5067. }
  5068. .section {
  5069. padding-top: 1rem;
  5070. padding-bottom: 1rem;
  5071. }
  5072. .section.no-pad {
  5073. padding: 0;
  5074. }
  5075. .section.no-pad-bot {
  5076. padding-bottom: 0;
  5077. }
  5078. .section.no-pad-top {
  5079. padding-top: 0;
  5080. }
  5081. .row {
  5082. margin-left: auto;
  5083. margin-right: auto;
  5084. margin-bottom: 20px;
  5085. }
  5086. .row:after {
  5087. content: "";
  5088. display: table;
  5089. clear: both;
  5090. }
  5091. .row .col {
  5092. float: left;
  5093. box-sizing: border-box;
  5094. padding: 0 0.5rem;
  5095. min-height: 1px;
  5096. }
  5097. .row .col[class*=push-], .row .col[class*=pull-] {
  5098. position: relative;
  5099. }
  5100. .row .col.s1 {
  5101. width: 8.3333333333%;
  5102. margin-left: auto;
  5103. left: auto;
  5104. right: auto;
  5105. }
  5106. .row .col.s2 {
  5107. width: 16.6666666667%;
  5108. margin-left: auto;
  5109. left: auto;
  5110. right: auto;
  5111. }
  5112. .row .col.s3 {
  5113. width: 25%;
  5114. margin-left: auto;
  5115. left: auto;
  5116. right: auto;
  5117. }
  5118. .row .col.s4 {
  5119. width: 33.3333333333%;
  5120. margin-left: auto;
  5121. left: auto;
  5122. right: auto;
  5123. }
  5124. .row .col.s5 {
  5125. width: 41.6666666667%;
  5126. margin-left: auto;
  5127. left: auto;
  5128. right: auto;
  5129. }
  5130. .row .col.s6 {
  5131. width: 50%;
  5132. margin-left: auto;
  5133. left: auto;
  5134. right: auto;
  5135. }
  5136. .row .col.s7 {
  5137. width: 58.3333333333%;
  5138. margin-left: auto;
  5139. left: auto;
  5140. right: auto;
  5141. }
  5142. .row .col.s8 {
  5143. width: 66.6666666667%;
  5144. margin-left: auto;
  5145. left: auto;
  5146. right: auto;
  5147. }
  5148. .row .col.s9 {
  5149. width: 75%;
  5150. margin-left: auto;
  5151. left: auto;
  5152. right: auto;
  5153. }
  5154. .row .col.s10 {
  5155. width: 83.3333333333%;
  5156. margin-left: auto;
  5157. left: auto;
  5158. right: auto;
  5159. }
  5160. .row .col.s11 {
  5161. width: 91.6666666667%;
  5162. margin-left: auto;
  5163. left: auto;
  5164. right: auto;
  5165. }
  5166. .row .col.s12 {
  5167. width: 100%;
  5168. margin-left: auto;
  5169. left: auto;
  5170. right: auto;
  5171. }
  5172. .row .col.offset-s1 {
  5173. margin-left: 8.3333333333%;
  5174. }
  5175. .row .col.pull-s1 {
  5176. right: 8.3333333333%;
  5177. }
  5178. .row .col.push-s1 {
  5179. left: 8.3333333333%;
  5180. }
  5181. .row .col.offset-s2 {
  5182. margin-left: 16.6666666667%;
  5183. }
  5184. .row .col.pull-s2 {
  5185. right: 16.6666666667%;
  5186. }
  5187. .row .col.push-s2 {
  5188. left: 16.6666666667%;
  5189. }
  5190. .row .col.offset-s3 {
  5191. margin-left: 25%;
  5192. }
  5193. .row .col.pull-s3 {
  5194. right: 25%;
  5195. }
  5196. .row .col.push-s3 {
  5197. left: 25%;
  5198. }
  5199. .row .col.offset-s4 {
  5200. margin-left: 33.3333333333%;
  5201. }
  5202. .row .col.pull-s4 {
  5203. right: 33.3333333333%;
  5204. }
  5205. .row .col.push-s4 {
  5206. left: 33.3333333333%;
  5207. }
  5208. .row .col.offset-s5 {
  5209. margin-left: 41.6666666667%;
  5210. }
  5211. .row .col.pull-s5 {
  5212. right: 41.6666666667%;
  5213. }
  5214. .row .col.push-s5 {
  5215. left: 41.6666666667%;
  5216. }
  5217. .row .col.offset-s6 {
  5218. margin-left: 50%;
  5219. }
  5220. .row .col.pull-s6 {
  5221. right: 50%;
  5222. }
  5223. .row .col.push-s6 {
  5224. left: 50%;
  5225. }
  5226. .row .col.offset-s7 {
  5227. margin-left: 58.3333333333%;
  5228. }
  5229. .row .col.pull-s7 {
  5230. right: 58.3333333333%;
  5231. }
  5232. .row .col.push-s7 {
  5233. left: 58.3333333333%;
  5234. }
  5235. .row .col.offset-s8 {
  5236. margin-left: 66.6666666667%;
  5237. }
  5238. .row .col.pull-s8 {
  5239. right: 66.6666666667%;
  5240. }
  5241. .row .col.push-s8 {
  5242. left: 66.6666666667%;
  5243. }
  5244. .row .col.offset-s9 {
  5245. margin-left: 75%;
  5246. }
  5247. .row .col.pull-s9 {
  5248. right: 75%;
  5249. }
  5250. .row .col.push-s9 {
  5251. left: 75%;
  5252. }
  5253. .row .col.offset-s10 {
  5254. margin-left: 83.3333333333%;
  5255. }
  5256. .row .col.pull-s10 {
  5257. right: 83.3333333333%;
  5258. }
  5259. .row .col.push-s10 {
  5260. left: 83.3333333333%;
  5261. }
  5262. .row .col.offset-s11 {
  5263. margin-left: 91.6666666667%;
  5264. }
  5265. .row .col.pull-s11 {
  5266. right: 91.6666666667%;
  5267. }
  5268. .row .col.push-s11 {
  5269. left: 91.6666666667%;
  5270. }
  5271. .row .col.offset-s12 {
  5272. margin-left: 100%;
  5273. }
  5274. .row .col.pull-s12 {
  5275. right: 100%;
  5276. }
  5277. .row .col.push-s12 {
  5278. left: 100%;
  5279. }
  5280. @media only screen and (min-width : 601px) {
  5281. .row .col.m1 {
  5282. width: 8.3333333333%;
  5283. margin-left: auto;
  5284. left: auto;
  5285. right: auto;
  5286. }
  5287. .row .col.m2 {
  5288. width: 16.6666666667%;
  5289. margin-left: auto;
  5290. left: auto;
  5291. right: auto;
  5292. }
  5293. .row .col.m3 {
  5294. width: 25%;
  5295. margin-left: auto;
  5296. left: auto;
  5297. right: auto;
  5298. }
  5299. .row .col.m4 {
  5300. width: 33.3333333333%;
  5301. margin-left: auto;
  5302. left: auto;
  5303. right: auto;
  5304. }
  5305. .row .col.m5 {
  5306. width: 41.6666666667%;
  5307. margin-left: auto;
  5308. left: auto;
  5309. right: auto;
  5310. }
  5311. .row .col.m6 {
  5312. width: 50%;
  5313. margin-left: auto;
  5314. left: auto;
  5315. right: auto;
  5316. }
  5317. .row .col.m7 {
  5318. width: 58.3333333333%;
  5319. margin-left: auto;
  5320. left: auto;
  5321. right: auto;
  5322. }
  5323. .row .col.m8 {
  5324. width: 66.6666666667%;
  5325. margin-left: auto;
  5326. left: auto;
  5327. right: auto;
  5328. }
  5329. .row .col.m9 {
  5330. width: 75%;
  5331. margin-left: auto;
  5332. left: auto;
  5333. right: auto;
  5334. }
  5335. .row .col.m10 {
  5336. width: 83.3333333333%;
  5337. margin-left: auto;
  5338. left: auto;
  5339. right: auto;
  5340. }
  5341. .row .col.m11 {
  5342. width: 91.6666666667%;
  5343. margin-left: auto;
  5344. left: auto;
  5345. right: auto;
  5346. }
  5347. .row .col.m12 {
  5348. width: 100%;
  5349. margin-left: auto;
  5350. left: auto;
  5351. right: auto;
  5352. }
  5353. .row .col.offset-m1 {
  5354. margin-left: 8.3333333333%;
  5355. }
  5356. .row .col.pull-m1 {
  5357. right: 8.3333333333%;
  5358. }
  5359. .row .col.push-m1 {
  5360. left: 8.3333333333%;
  5361. }
  5362. .row .col.offset-m2 {
  5363. margin-left: 16.6666666667%;
  5364. }
  5365. .row .col.pull-m2 {
  5366. right: 16.6666666667%;
  5367. }
  5368. .row .col.push-m2 {
  5369. left: 16.6666666667%;
  5370. }
  5371. .row .col.offset-m3 {
  5372. margin-left: 25%;
  5373. }
  5374. .row .col.pull-m3 {
  5375. right: 25%;
  5376. }
  5377. .row .col.push-m3 {
  5378. left: 25%;
  5379. }
  5380. .row .col.offset-m4 {
  5381. margin-left: 33.3333333333%;
  5382. }
  5383. .row .col.pull-m4 {
  5384. right: 33.3333333333%;
  5385. }
  5386. .row .col.push-m4 {
  5387. left: 33.3333333333%;
  5388. }
  5389. .row .col.offset-m5 {
  5390. margin-left: 41.6666666667%;
  5391. }
  5392. .row .col.pull-m5 {
  5393. right: 41.6666666667%;
  5394. }
  5395. .row .col.push-m5 {
  5396. left: 41.6666666667%;
  5397. }
  5398. .row .col.offset-m6 {
  5399. margin-left: 50%;
  5400. }
  5401. .row .col.pull-m6 {
  5402. right: 50%;
  5403. }
  5404. .row .col.push-m6 {
  5405. left: 50%;
  5406. }
  5407. .row .col.offset-m7 {
  5408. margin-left: 58.3333333333%;
  5409. }
  5410. .row .col.pull-m7 {
  5411. right: 58.3333333333%;
  5412. }
  5413. .row .col.push-m7 {
  5414. left: 58.3333333333%;
  5415. }
  5416. .row .col.offset-m8 {
  5417. margin-left: 66.6666666667%;
  5418. }
  5419. .row .col.pull-m8 {
  5420. right: 66.6666666667%;
  5421. }
  5422. .row .col.push-m8 {
  5423. left: 66.6666666667%;
  5424. }
  5425. .row .col.offset-m9 {
  5426. margin-left: 75%;
  5427. }
  5428. .row .col.pull-m9 {
  5429. right: 75%;
  5430. }
  5431. .row .col.push-m9 {
  5432. left: 75%;
  5433. }
  5434. .row .col.offset-m10 {
  5435. margin-left: 83.3333333333%;
  5436. }
  5437. .row .col.pull-m10 {
  5438. right: 83.3333333333%;
  5439. }
  5440. .row .col.push-m10 {
  5441. left: 83.3333333333%;
  5442. }
  5443. .row .col.offset-m11 {
  5444. margin-left: 91.6666666667%;
  5445. }
  5446. .row .col.pull-m11 {
  5447. right: 91.6666666667%;
  5448. }
  5449. .row .col.push-m11 {
  5450. left: 91.6666666667%;
  5451. }
  5452. .row .col.offset-m12 {
  5453. margin-left: 100%;
  5454. }
  5455. .row .col.pull-m12 {
  5456. right: 100%;
  5457. }
  5458. .row .col.push-m12 {
  5459. left: 100%;
  5460. }
  5461. }
  5462. @media only screen and (min-width : 993px) {
  5463. .row .col.l1 {
  5464. width: 8.3333333333%;
  5465. margin-left: auto;
  5466. left: auto;
  5467. right: auto;
  5468. }
  5469. .row .col.l2 {
  5470. width: 16.6666666667%;
  5471. margin-left: auto;
  5472. left: auto;
  5473. right: auto;
  5474. }
  5475. .row .col.l3 {
  5476. width: 25%;
  5477. margin-left: auto;
  5478. left: auto;
  5479. right: auto;
  5480. }
  5481. .row .col.l4 {
  5482. width: 33.3333333333%;
  5483. margin-left: auto;
  5484. left: auto;
  5485. right: auto;
  5486. }
  5487. .row .col.l5 {
  5488. width: 41.6666666667%;
  5489. margin-left: auto;
  5490. left: auto;
  5491. right: auto;
  5492. }
  5493. .row .col.l6 {
  5494. width: 50%;
  5495. margin-left: auto;
  5496. left: auto;
  5497. right: auto;
  5498. }
  5499. .row .col.l7 {
  5500. width: 58.3333333333%;
  5501. margin-left: auto;
  5502. left: auto;
  5503. right: auto;
  5504. }
  5505. .row .col.l8 {
  5506. width: 66.6666666667%;
  5507. margin-left: auto;
  5508. left: auto;
  5509. right: auto;
  5510. }
  5511. .row .col.l9 {
  5512. width: 75%;
  5513. margin-left: auto;
  5514. left: auto;
  5515. right: auto;
  5516. }
  5517. .row .col.l10 {
  5518. width: 83.3333333333%;
  5519. margin-left: auto;
  5520. left: auto;
  5521. right: auto;
  5522. }
  5523. .row .col.l11 {
  5524. width: 91.6666666667%;
  5525. margin-left: auto;
  5526. left: auto;
  5527. right: auto;
  5528. }
  5529. .row .col.l12 {
  5530. width: 100%;
  5531. margin-left: auto;
  5532. left: auto;
  5533. right: auto;
  5534. }
  5535. .row .col.offset-l1 {
  5536. margin-left: 8.3333333333%;
  5537. }
  5538. .row .col.pull-l1 {
  5539. right: 8.3333333333%;
  5540. }
  5541. .row .col.push-l1 {
  5542. left: 8.3333333333%;
  5543. }
  5544. .row .col.offset-l2 {
  5545. margin-left: 16.6666666667%;
  5546. }
  5547. .row .col.pull-l2 {
  5548. right: 16.6666666667%;
  5549. }
  5550. .row .col.push-l2 {
  5551. left: 16.6666666667%;
  5552. }
  5553. .row .col.offset-l3 {
  5554. margin-left: 25%;
  5555. }
  5556. .row .col.pull-l3 {
  5557. right: 25%;
  5558. }
  5559. .row .col.push-l3 {
  5560. left: 25%;
  5561. }
  5562. .row .col.offset-l4 {
  5563. margin-left: 33.3333333333%;
  5564. }
  5565. .row .col.pull-l4 {
  5566. right: 33.3333333333%;
  5567. }
  5568. .row .col.push-l4 {
  5569. left: 33.3333333333%;
  5570. }
  5571. .row .col.offset-l5 {
  5572. margin-left: 41.6666666667%;
  5573. }
  5574. .row .col.pull-l5 {
  5575. right: 41.6666666667%;
  5576. }
  5577. .row .col.push-l5 {
  5578. left: 41.6666666667%;
  5579. }
  5580. .row .col.offset-l6 {
  5581. margin-left: 50%;
  5582. }
  5583. .row .col.pull-l6 {
  5584. right: 50%;
  5585. }
  5586. .row .col.push-l6 {
  5587. left: 50%;
  5588. }
  5589. .row .col.offset-l7 {
  5590. margin-left: 58.3333333333%;
  5591. }
  5592. .row .col.pull-l7 {
  5593. right: 58.3333333333%;
  5594. }
  5595. .row .col.push-l7 {
  5596. left: 58.3333333333%;
  5597. }
  5598. .row .col.offset-l8 {
  5599. margin-left: 66.6666666667%;
  5600. }
  5601. .row .col.pull-l8 {
  5602. right: 66.6666666667%;
  5603. }
  5604. .row .col.push-l8 {
  5605. left: 66.6666666667%;
  5606. }
  5607. .row .col.offset-l9 {
  5608. margin-left: 75%;
  5609. }
  5610. .row .col.pull-l9 {
  5611. right: 75%;
  5612. }
  5613. .row .col.push-l9 {
  5614. left: 75%;
  5615. }
  5616. .row .col.offset-l10 {
  5617. margin-left: 83.3333333333%;
  5618. }
  5619. .row .col.pull-l10 {
  5620. right: 83.3333333333%;
  5621. }
  5622. .row .col.push-l10 {
  5623. left: 83.3333333333%;
  5624. }
  5625. .row .col.offset-l11 {
  5626. margin-left: 91.6666666667%;
  5627. }
  5628. .row .col.pull-l11 {
  5629. right: 91.6666666667%;
  5630. }
  5631. .row .col.push-l11 {
  5632. left: 91.6666666667%;
  5633. }
  5634. .row .col.offset-l12 {
  5635. margin-left: 100%;
  5636. }
  5637. .row .col.pull-l12 {
  5638. right: 100%;
  5639. }
  5640. .row .col.push-l12 {
  5641. left: 100%;
  5642. }
  5643. }
  5644. @media only screen and (min-width : 1201px) {
  5645. .row .col.xl1 {
  5646. width: 8.3333333333%;
  5647. margin-left: auto;
  5648. left: auto;
  5649. right: auto;
  5650. }
  5651. .row .col.xl2 {
  5652. width: 16.6666666667%;
  5653. margin-left: auto;
  5654. left: auto;
  5655. right: auto;
  5656. }
  5657. .row .col.xl3 {
  5658. width: 25%;
  5659. margin-left: auto;
  5660. left: auto;
  5661. right: auto;
  5662. }
  5663. .row .col.xl4 {
  5664. width: 33.3333333333%;
  5665. margin-left: auto;
  5666. left: auto;
  5667. right: auto;
  5668. }
  5669. .row .col.xl5 {
  5670. width: 41.6666666667%;
  5671. margin-left: auto;
  5672. left: auto;
  5673. right: auto;
  5674. }
  5675. .row .col.xl6 {
  5676. width: 50%;
  5677. margin-left: auto;
  5678. left: auto;
  5679. right: auto;
  5680. }
  5681. .row .col.xl7 {
  5682. width: 58.3333333333%;
  5683. margin-left: auto;
  5684. left: auto;
  5685. right: auto;
  5686. }
  5687. .row .col.xl8 {
  5688. width: 66.6666666667%;
  5689. margin-left: auto;
  5690. left: auto;
  5691. right: auto;
  5692. }
  5693. .row .col.xl9 {
  5694. width: 75%;
  5695. margin-left: auto;
  5696. left: auto;
  5697. right: auto;
  5698. }
  5699. .row .col.xl10 {
  5700. width: 83.3333333333%;
  5701. margin-left: auto;
  5702. left: auto;
  5703. right: auto;
  5704. }
  5705. .row .col.xl11 {
  5706. width: 91.6666666667%;
  5707. margin-left: auto;
  5708. left: auto;
  5709. right: auto;
  5710. }
  5711. .row .col.xl12 {
  5712. width: 100%;
  5713. margin-left: auto;
  5714. left: auto;
  5715. right: auto;
  5716. }
  5717. .row .col.offset-xl1 {
  5718. margin-left: 8.3333333333%;
  5719. }
  5720. .row .col.pull-xl1 {
  5721. right: 8.3333333333%;
  5722. }
  5723. .row .col.push-xl1 {
  5724. left: 8.3333333333%;
  5725. }
  5726. .row .col.offset-xl2 {
  5727. margin-left: 16.6666666667%;
  5728. }
  5729. .row .col.pull-xl2 {
  5730. right: 16.6666666667%;
  5731. }
  5732. .row .col.push-xl2 {
  5733. left: 16.6666666667%;
  5734. }
  5735. .row .col.offset-xl3 {
  5736. margin-left: 25%;
  5737. }
  5738. .row .col.pull-xl3 {
  5739. right: 25%;
  5740. }
  5741. .row .col.push-xl3 {
  5742. left: 25%;
  5743. }
  5744. .row .col.offset-xl4 {
  5745. margin-left: 33.3333333333%;
  5746. }
  5747. .row .col.pull-xl4 {
  5748. right: 33.3333333333%;
  5749. }
  5750. .row .col.push-xl4 {
  5751. left: 33.3333333333%;
  5752. }
  5753. .row .col.offset-xl5 {
  5754. margin-left: 41.6666666667%;
  5755. }
  5756. .row .col.pull-xl5 {
  5757. right: 41.6666666667%;
  5758. }
  5759. .row .col.push-xl5 {
  5760. left: 41.6666666667%;
  5761. }
  5762. .row .col.offset-xl6 {
  5763. margin-left: 50%;
  5764. }
  5765. .row .col.pull-xl6 {
  5766. right: 50%;
  5767. }
  5768. .row .col.push-xl6 {
  5769. left: 50%;
  5770. }
  5771. .row .col.offset-xl7 {
  5772. margin-left: 58.3333333333%;
  5773. }
  5774. .row .col.pull-xl7 {
  5775. right: 58.3333333333%;
  5776. }
  5777. .row .col.push-xl7 {
  5778. left: 58.3333333333%;
  5779. }
  5780. .row .col.offset-xl8 {
  5781. margin-left: 66.6666666667%;
  5782. }
  5783. .row .col.pull-xl8 {
  5784. right: 66.6666666667%;
  5785. }
  5786. .row .col.push-xl8 {
  5787. left: 66.6666666667%;
  5788. }
  5789. .row .col.offset-xl9 {
  5790. margin-left: 75%;
  5791. }
  5792. .row .col.pull-xl9 {
  5793. right: 75%;
  5794. }
  5795. .row .col.push-xl9 {
  5796. left: 75%;
  5797. }
  5798. .row .col.offset-xl10 {
  5799. margin-left: 83.3333333333%;
  5800. }
  5801. .row .col.pull-xl10 {
  5802. right: 83.3333333333%;
  5803. }
  5804. .row .col.push-xl10 {
  5805. left: 83.3333333333%;
  5806. }
  5807. .row .col.offset-xl11 {
  5808. margin-left: 91.6666666667%;
  5809. }
  5810. .row .col.pull-xl11 {
  5811. right: 91.6666666667%;
  5812. }
  5813. .row .col.push-xl11 {
  5814. left: 91.6666666667%;
  5815. }
  5816. .row .col.offset-xl12 {
  5817. margin-left: 100%;
  5818. }
  5819. .row .col.pull-xl12 {
  5820. right: 100%;
  5821. }
  5822. .row .col.push-xl12 {
  5823. left: 100%;
  5824. }
  5825. }
  5826. .sidenav {
  5827. position: fixed;
  5828. width: 300px;
  5829. left: 0;
  5830. top: 0;
  5831. margin: 0;
  5832. height: 100%;
  5833. height: calc(100% + 60px);
  5834. height: -moz-calc(100%);
  5835. padding-bottom: 60px;
  5836. background-color: #fff;
  5837. z-index: 999;
  5838. overflow-y: auto;
  5839. will-change: transform;
  5840. backface-visibility: hidden;
  5841. transform: translateX(-105%);
  5842. transition: transform 1s;
  5843. }
  5844. .sidenav.right-aligned {
  5845. right: 0;
  5846. left: auto;
  5847. transform: translateX(100%);
  5848. }
  5849. .sidenav .collapsible {
  5850. margin: 0;
  5851. }
  5852. .sidenav li {
  5853. float: none;
  5854. }
  5855. .sidenav li .iconSideLink {
  5856. display: flex;
  5857. align-items: center;
  5858. }
  5859. .sidenav li .iconSideLink svg {
  5860. stroke: rgba(0, 0, 0, 0.2);
  5861. width: 30px;
  5862. }
  5863. .sidenav li.active {
  5864. background-color: rgba(0, 0, 0, 0.05);
  5865. }
  5866. .sidenav li.active svg {
  5867. stroke: white !important;
  5868. width: 30px;
  5869. }
  5870. .sidenav li.last {
  5871. position: sticky;
  5872. top: calc(100% - 45px - 35px);
  5873. }
  5874. .sidenav li > a {
  5875. color: rgba(0, 0, 0, 0.87);
  5876. display: flex;
  5877. font-size: 14px;
  5878. font-weight: 700;
  5879. height: 45px;
  5880. line-height: 45px;
  5881. padding: 0 30px;
  5882. }
  5883. .sidenav li > a:hover {
  5884. background-color: rgba(0, 0, 0, 0.05);
  5885. }
  5886. .sidenav li > a.btn, .sidenav li > a.btn-small, .sidenav li > a.btn-large, .sidenav li > a.btn-flat, .sidenav li > a.btn-floating {
  5887. margin: 10px 15px;
  5888. }
  5889. .sidenav li > a.btn, .sidenav li > a.btn-small, .sidenav li > a.btn-large, .sidenav li > a.btn-floating {
  5890. color: #fff;
  5891. }
  5892. .sidenav li > a.btn-flat {
  5893. color: #343434;
  5894. }
  5895. .sidenav li > a.btn:hover, .sidenav li > a.btn-small:hover, .sidenav li > a.btn-large:hover {
  5896. background-color: rgb(64.75, 64.75, 64.75);
  5897. }
  5898. .sidenav li > a.btn-floating:hover {
  5899. background-color: #343434;
  5900. }
  5901. .sidenav li > a > i, .sidenav li > a > [class^=mdi-],
  5902. .sidenav li > a li > a > [class*=mdi-], .sidenav li > a > i.s-icon {
  5903. float: left;
  5904. height: 45px;
  5905. line-height: 45px;
  5906. margin: 0 30px 0 0;
  5907. width: 22.5px;
  5908. color: rgba(0, 0, 0, 0.54);
  5909. }
  5910. .sidenav .divider {
  5911. margin: 7.5px 0 0 0;
  5912. }
  5913. .sidenav .subheader {
  5914. cursor: initial;
  5915. pointer-events: none;
  5916. color: rgba(0, 0, 0, 0.54);
  5917. font-size: 14px;
  5918. font-weight: 500;
  5919. line-height: 45px;
  5920. }
  5921. .sidenav .subheader:hover {
  5922. background-color: transparent;
  5923. }
  5924. .sidenav .user-view {
  5925. position: relative;
  5926. padding: 30px 30px 0;
  5927. margin-bottom: 7.5px;
  5928. }
  5929. .sidenav .user-view > a {
  5930. height: auto;
  5931. padding: 0;
  5932. }
  5933. .sidenav .user-view > a:hover {
  5934. background-color: transparent;
  5935. }
  5936. .sidenav .user-view .background {
  5937. overflow: hidden;
  5938. position: absolute;
  5939. top: 0;
  5940. right: 0;
  5941. bottom: 0;
  5942. left: 0;
  5943. z-index: -1;
  5944. }
  5945. .sidenav .user-view .circle,
  5946. .sidenav .user-view .name,
  5947. .sidenav .user-view .email {
  5948. display: block;
  5949. }
  5950. .sidenav .user-view .circle {
  5951. height: 64px;
  5952. width: 64px;
  5953. }
  5954. .sidenav .user-view .name,
  5955. .sidenav .user-view .email {
  5956. font-size: 14px;
  5957. line-height: 22.5px;
  5958. }
  5959. .sidenav .user-view .name {
  5960. margin-top: 16px;
  5961. font-weight: 500;
  5962. }
  5963. .sidenav .user-view .email {
  5964. padding-bottom: 16px;
  5965. font-weight: 400;
  5966. }
  5967. .drag-target {
  5968. height: 100%;
  5969. width: 10px;
  5970. position: fixed;
  5971. top: 0;
  5972. z-index: 998;
  5973. }
  5974. .drag-target.right-aligned {
  5975. right: 0;
  5976. }
  5977. .sidenav.sidenav-fixed {
  5978. left: 0;
  5979. transform: translateX(0);
  5980. position: fixed;
  5981. }
  5982. .sidenav.sidenav-fixed.right-aligned {
  5983. right: 0;
  5984. left: auto;
  5985. }
  5986. @media only screen and (max-width : 992px) {
  5987. .sidenav.sidenav-fixed {
  5988. transform: translateX(-105%);
  5989. }
  5990. .sidenav.sidenav-fixed.right-aligned {
  5991. transform: translateX(105%);
  5992. }
  5993. .sidenav > a {
  5994. padding: 0 15px;
  5995. }
  5996. .sidenav .user-view {
  5997. padding: 15px 15px 0;
  5998. }
  5999. }
  6000. .sidenav .collapsible-body > ul:not(.collapsible) > li.active,
  6001. .sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active {
  6002. background-color: #90caf9;
  6003. }
  6004. .sidenav .collapsible-body > ul:not(.collapsible) > li.active a,
  6005. .sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active a {
  6006. color: #fff;
  6007. }
  6008. .sidenav .collapsible-body {
  6009. padding: 0;
  6010. }
  6011. .sidenav-overlay {
  6012. position: fixed;
  6013. top: 0;
  6014. left: 0;
  6015. right: 0;
  6016. opacity: 0;
  6017. height: 120vh;
  6018. background-color: rgba(0, 0, 0, 0.5);
  6019. z-index: 997;
  6020. display: none;
  6021. }
  6022. .with-side-nav-open {
  6023. padding-left: 300px;
  6024. transition: padding 1s;
  6025. }
  6026. .btn, .btn-small, .btn-large,
  6027. .btn-flat {
  6028. border: none;
  6029. border-radius: 2px;
  6030. display: inline-block;
  6031. height: 36px;
  6032. line-height: 36px;
  6033. padding: 0 16px;
  6034. text-transform: uppercase;
  6035. vertical-align: middle;
  6036. -webkit-tap-highlight-color: transparent;
  6037. }
  6038. .btn.disabled,
  6039. .btn-floating.disabled,
  6040. .btn-large.disabled,
  6041. .btn-small.disabled,
  6042. .btn-flat.disabled,
  6043. .btn:disabled,
  6044. .btn-floating:disabled,
  6045. .btn-large:disabled,
  6046. .btn-small:disabled,
  6047. .btn-flat:disabled,
  6048. .btn[disabled],
  6049. .btn-floating[disabled],
  6050. .btn-large[disabled],
  6051. .btn-small[disabled],
  6052. .btn-flat[disabled] {
  6053. pointer-events: none;
  6054. background-color: #DFDFDF !important;
  6055. box-shadow: none;
  6056. color: #9F9F9F !important;
  6057. cursor: default;
  6058. }
  6059. .btn.disabled:hover,
  6060. .btn-floating.disabled:hover,
  6061. .btn-large.disabled:hover,
  6062. .btn-small.disabled:hover,
  6063. .btn-flat.disabled:hover,
  6064. .btn:disabled:hover,
  6065. .btn-floating:disabled:hover,
  6066. .btn-large:disabled:hover,
  6067. .btn-small:disabled:hover,
  6068. .btn-flat:disabled:hover,
  6069. .btn[disabled]:hover,
  6070. .btn-floating[disabled]:hover,
  6071. .btn-large[disabled]:hover,
  6072. .btn-small[disabled]:hover,
  6073. .btn-flat[disabled]:hover {
  6074. background-color: #DFDFDF !important;
  6075. color: #9F9F9F !important;
  6076. }
  6077. .btn,
  6078. .btn-small,
  6079. .btn-large,
  6080. .btn-floating,
  6081. .btn-flat {
  6082. font-size: 14px;
  6083. outline: 0;
  6084. }
  6085. .btn i,
  6086. .btn-floating i,
  6087. .btn-large i,
  6088. .btn-small i,
  6089. .btn-flat i {
  6090. font-size: 1.3rem;
  6091. line-height: inherit;
  6092. }
  6093. .btn:focus, .btn-small:focus, .btn-large:focus,
  6094. .btn-floating:focus {
  6095. background-color: rgb(26.5, 26.5, 26.5);
  6096. }
  6097. .btn, .btn-small, .btn-large {
  6098. text-decoration: none;
  6099. color: #fff;
  6100. background-color: #343434;
  6101. text-align: center;
  6102. letter-spacing: 0.5px;
  6103. transition: background-color 0.2s ease-out;
  6104. cursor: pointer;
  6105. }
  6106. .btn:hover, .btn-small:hover, .btn-large:hover {
  6107. background-color: rgb(64.75, 64.75, 64.75);
  6108. }
  6109. .btn-floating {
  6110. display: inline-block;
  6111. color: #fff;
  6112. position: relative;
  6113. overflow: hidden;
  6114. z-index: 1;
  6115. width: 40px;
  6116. height: 40px;
  6117. line-height: 40px;
  6118. padding: 0;
  6119. background-color: #26a69a;
  6120. border-radius: 50%;
  6121. transition: background-color 0.3s;
  6122. cursor: pointer;
  6123. vertical-align: middle;
  6124. }
  6125. .btn-floating:hover {
  6126. background-color: #26a69a;
  6127. }
  6128. .btn-floating:before {
  6129. border-radius: 0;
  6130. }
  6131. .btn-floating.btn-large {
  6132. width: 56px;
  6133. height: 56px;
  6134. padding: 0;
  6135. }
  6136. .btn-floating.btn-large.halfway-fab {
  6137. bottom: 28px;
  6138. }
  6139. .btn-floating.btn-large i {
  6140. line-height: 56px;
  6141. }
  6142. .btn-floating.btn-small {
  6143. width: 32.4px;
  6144. height: 32.4px;
  6145. }
  6146. .btn-floating.btn-small.halfway-fab {
  6147. bottom: 16.2px;
  6148. }
  6149. .btn-floating.btn-small i {
  6150. line-height: 32.4px;
  6151. }
  6152. .btn-floating.halfway-fab {
  6153. position: absolute;
  6154. right: 24px;
  6155. bottom: 20px;
  6156. }
  6157. .btn-floating.halfway-fab.left {
  6158. right: auto;
  6159. left: 24px;
  6160. }
  6161. .btn-floating i {
  6162. width: inherit;
  6163. display: inline-block;
  6164. text-align: center;
  6165. color: #fff;
  6166. font-size: 1.6rem;
  6167. line-height: 40px;
  6168. }
  6169. button.btn-floating {
  6170. border: none;
  6171. }
  6172. .fixed-action-btn {
  6173. position: fixed;
  6174. right: 23px;
  6175. bottom: 23px;
  6176. padding-top: 15px;
  6177. margin-bottom: 0;
  6178. z-index: 997;
  6179. }
  6180. .fixed-action-btn.active ul {
  6181. visibility: visible;
  6182. }
  6183. .fixed-action-btn.direction-left, .fixed-action-btn.direction-right {
  6184. padding: 0 0 0 15px;
  6185. }
  6186. .fixed-action-btn.direction-left ul, .fixed-action-btn.direction-right ul {
  6187. text-align: right;
  6188. right: 64px;
  6189. top: 50%;
  6190. transform: translateY(-50%);
  6191. height: 100%;
  6192. left: auto;
  6193. /*width 100% only goes to width of button container */
  6194. width: 500px;
  6195. }
  6196. .fixed-action-btn.direction-left ul li, .fixed-action-btn.direction-right ul li {
  6197. display: inline-block;
  6198. margin: 7.5px 15px 0 0;
  6199. }
  6200. .fixed-action-btn.direction-right {
  6201. padding: 0 15px 0 0;
  6202. }
  6203. .fixed-action-btn.direction-right ul {
  6204. text-align: left;
  6205. direction: rtl;
  6206. left: 64px;
  6207. right: auto;
  6208. }
  6209. .fixed-action-btn.direction-right ul li {
  6210. margin: 7.5px 0 0 15px;
  6211. }
  6212. .fixed-action-btn.direction-bottom {
  6213. padding: 0 0 15px 0;
  6214. }
  6215. .fixed-action-btn.direction-bottom ul {
  6216. top: 64px;
  6217. bottom: auto;
  6218. display: flex;
  6219. flex-direction: column-reverse;
  6220. }
  6221. .fixed-action-btn.direction-bottom ul li {
  6222. margin: 15px 0 0 0;
  6223. }
  6224. .fixed-action-btn.toolbar {
  6225. padding: 0;
  6226. height: 56px;
  6227. }
  6228. .fixed-action-btn.toolbar.active > a i {
  6229. opacity: 0;
  6230. }
  6231. .fixed-action-btn.toolbar ul {
  6232. display: flex;
  6233. top: 0;
  6234. bottom: 0;
  6235. z-index: 1;
  6236. }
  6237. .fixed-action-btn.toolbar ul li {
  6238. flex: 1;
  6239. display: inline-block;
  6240. margin: 0;
  6241. height: 100%;
  6242. transition: none;
  6243. }
  6244. .fixed-action-btn.toolbar ul li a {
  6245. display: block;
  6246. overflow: hidden;
  6247. position: relative;
  6248. width: 100%;
  6249. height: 100%;
  6250. background-color: transparent;
  6251. box-shadow: none;
  6252. color: #fff;
  6253. line-height: 56px;
  6254. z-index: 1;
  6255. }
  6256. .fixed-action-btn.toolbar ul li a i {
  6257. line-height: inherit;
  6258. }
  6259. .fixed-action-btn ul {
  6260. left: 0;
  6261. right: 0;
  6262. text-align: center;
  6263. position: absolute;
  6264. bottom: 64px;
  6265. margin: 0;
  6266. visibility: hidden;
  6267. }
  6268. .fixed-action-btn ul li {
  6269. margin-bottom: 15px;
  6270. }
  6271. .fixed-action-btn ul a.btn-floating {
  6272. opacity: 0;
  6273. }
  6274. .fixed-action-btn .fab-backdrop {
  6275. position: absolute;
  6276. top: 0;
  6277. left: 0;
  6278. z-index: -1;
  6279. width: 40px;
  6280. height: 40px;
  6281. background-color: #26a69a;
  6282. border-radius: 50%;
  6283. transform: scale(0);
  6284. }
  6285. .btn-flat {
  6286. box-shadow: none;
  6287. background-color: transparent;
  6288. color: #343434;
  6289. cursor: pointer;
  6290. transition: background-color 0.2s;
  6291. }
  6292. .btn-flat:focus, .btn-flat:hover {
  6293. box-shadow: none;
  6294. }
  6295. .btn-flat:focus {
  6296. background-color: rgba(0, 0, 0, 0.1);
  6297. }
  6298. .btn-flat.disabled, .btn-flat.btn-flat[disabled] {
  6299. background-color: transparent !important;
  6300. color: rgb(178.5, 178.5, 178.5) !important;
  6301. cursor: default;
  6302. }
  6303. .btn-large {
  6304. height: 54px;
  6305. line-height: 54px;
  6306. font-size: 15px;
  6307. padding: 0 28px;
  6308. }
  6309. .btn-large i {
  6310. font-size: 1.6rem;
  6311. }
  6312. .btn-small {
  6313. height: 32.4px;
  6314. line-height: 32.4px;
  6315. font-size: 13px;
  6316. }
  6317. .btn-small i {
  6318. font-size: 1.2rem;
  6319. }
  6320. .btn-block {
  6321. display: block;
  6322. }
  6323. .communTabHeader, .tabs.activeTab-2 .tab-header-over2 .tab-header, .tabs.activeTab-2 .tab-header-over1 .tab-header, .tabs.activeTab-2 .tab-header-over0 .tab-header, .tabs.activeTab-1 .tab-header-over2 .tab-header, .tabs.activeTab-1 .tab-header-over1 .tab-header, .tabs.activeTab-1 .tab-header-over0 .tab-header, .tabs.activeTab-0 .tab-header-over2 .tab-header, .tabs.activeTab-0 .tab-header-over1 .tab-header, .tabs.activeTab-0 .tab-header-over0 .tab-header {
  6324. height: 100px;
  6325. padding: 40px;
  6326. }
  6327. .tabs {
  6328. min-height: calc(100% - 150px);
  6329. margin-top: 30px;
  6330. padding: 0 !important;
  6331. border-radius: 40px !important;
  6332. }
  6333. .tabs .innerpage {
  6334. min-height: 70VH !important;
  6335. }
  6336. .tabs .tabs-header-overlay {
  6337. display: flex;
  6338. height: 100px;
  6339. }
  6340. .tabs.activeTab-0 .tab-header-over0 {
  6341. flex: 1;
  6342. background-color: rgb(127.9433962264, 196.358490566, 252.5566037736);
  6343. border-radius: 40px 0 0 0;
  6344. }
  6345. .tabs.activeTab-0 .tab-header-over0 .tab-header {
  6346. background-color: #cbe7fe;
  6347. border-radius: 40px 40px 0 0;
  6348. }
  6349. .tabs.activeTab-0 .tab-header-over1 {
  6350. flex: 1;
  6351. background: linear-gradient(0.25turn, #cbe7fe, rgb(52.8867924528, 161.7169811321, 251.1132075472));
  6352. border-radius: 0 0 0 0;
  6353. }
  6354. .tabs.activeTab-0 .tab-header-over1 .tab-header {
  6355. background-color: rgb(127.9433962264, 196.358490566, 252.5566037736);
  6356. border-radius: 0 40px 0 40px;
  6357. }
  6358. .tabs.activeTab-0 .tab-header-over2 {
  6359. flex: 1;
  6360. background-color: rgb(127.9433962264, 196.358490566, 252.5566037736);
  6361. border-radius: 0 40px 0 0;
  6362. }
  6363. .tabs.activeTab-0 .tab-header-over2 .tab-header {
  6364. background-color: rgb(52.8867924528, 161.7169811321, 251.1132075472);
  6365. border-radius: 0 40px 0 40px;
  6366. }
  6367. .tabs.activeTab-1 .tab-header-over0 {
  6368. flex: 1;
  6369. background-color: #cbe7fe;
  6370. border-radius: 40px 0 0 0;
  6371. }
  6372. .tabs.activeTab-1 .tab-header-over0 .tab-header {
  6373. background-color: rgb(127.9433962264, 196.358490566, 252.5566037736);
  6374. border-radius: 40px 0 40px 0;
  6375. }
  6376. .tabs.activeTab-1 .tab-header-over1 {
  6377. flex: 1;
  6378. background: linear-gradient(0.25turn, rgb(127.9433962264, 196.358490566, 252.5566037736), rgb(52.8867924528, 161.7169811321, 251.1132075472));
  6379. border-radius: 0 0 0 0;
  6380. }
  6381. .tabs.activeTab-1 .tab-header-over1 .tab-header {
  6382. background-color: #cbe7fe;
  6383. border-radius: 40px 40px 0 0;
  6384. }
  6385. .tabs.activeTab-1 .tab-header-over2 {
  6386. flex: 1;
  6387. background-color: #cbe7fe;
  6388. border-radius: 0 40px 0 0;
  6389. }
  6390. .tabs.activeTab-1 .tab-header-over2 .tab-header {
  6391. background-color: rgb(52.8867924528, 161.7169811321, 251.1132075472);
  6392. border-radius: 0 40px 0 40px;
  6393. }
  6394. .tabs.activeTab-2 .tab-header-over0 {
  6395. flex: 1;
  6396. background-color: rgb(52.8867924528, 161.7169811321, 251.1132075472);
  6397. border-radius: 40px 0 0 0;
  6398. }
  6399. .tabs.activeTab-2 .tab-header-over0 .tab-header {
  6400. background-color: rgb(127.9433962264, 196.358490566, 252.5566037736);
  6401. border-radius: 40px 0 40px 0;
  6402. }
  6403. .tabs.activeTab-2 .tab-header-over1 {
  6404. flex: 1;
  6405. background: linear-gradient(0.25turn, rgb(127.9433962264, 196.358490566, 252.5566037736), #cbe7fe);
  6406. border-radius: 0 0 0 0;
  6407. }
  6408. .tabs.activeTab-2 .tab-header-over1 .tab-header {
  6409. background-color: rgb(52.8867924528, 161.7169811321, 251.1132075472);
  6410. border-radius: 40px 0 40px 0;
  6411. }
  6412. .tabs.activeTab-2 .tab-header-over2 {
  6413. flex: 1;
  6414. background-color: rgb(52.8867924528, 161.7169811321, 251.1132075472);
  6415. border-radius: 0 40px 0 0;
  6416. }
  6417. .tabs.activeTab-2 .tab-header-over2 .tab-header {
  6418. background-color: #cbe7fe;
  6419. border-radius: 40px 40px 0 0;
  6420. }
  6421. .tabs .tab-content {
  6422. background-color: #cbe7fe;
  6423. padding: 10px;
  6424. border-top: 0;
  6425. min-height: 70vh;
  6426. border-radius: 0 0 40px 40px;
  6427. padding-bottom: 20px;
  6428. }
  6429. .loader-overlay {
  6430. z-index: 999;
  6431. position: absolute;
  6432. height: 100vh;
  6433. width: 100vw;
  6434. top: 0;
  6435. left: 0;
  6436. background-color: rgba(102, 100, 100, 0.603);
  6437. display: flex;
  6438. justify-content: center;
  6439. align-items: center;
  6440. flex-direction: column;
  6441. }
  6442. .loader-overlay .loader {
  6443. border: 7px solid #f3f3f3; /* Light grey */
  6444. border-top: 7px solid #2ea2cc; /* Blue */
  6445. border-radius: 50%;
  6446. width: 70px;
  6447. height: 70px;
  6448. animation: spin 2s linear infinite;
  6449. }
  6450. .loader-overlay .loader-text {
  6451. margin-top: 20px;
  6452. font-size: 25px;
  6453. color: #2ea2cc;
  6454. }
  6455. @keyframes spin {
  6456. 0% {
  6457. transform: rotate(0deg);
  6458. }
  6459. 100% {
  6460. transform: rotate(360deg);
  6461. }
  6462. }
  6463. .card-panel {
  6464. transition: box-shadow 0.25s;
  6465. padding: 24px;
  6466. margin: 0.3333333333rem 0 0.6666666667rem 0;
  6467. border-radius: 2px;
  6468. background-color: #fff;
  6469. }
  6470. .card {
  6471. position: relative;
  6472. margin: 0.3333333333rem 0 0.6666666667rem 0;
  6473. background-color: #fff;
  6474. transition: box-shadow 0.25s;
  6475. border-radius: 2px;
  6476. }
  6477. .card .card-title {
  6478. font-size: 24px;
  6479. font-weight: 300;
  6480. }
  6481. .card .card-title.activator {
  6482. cursor: pointer;
  6483. }
  6484. .card.small, .card.medium, .card.large {
  6485. position: relative;
  6486. }
  6487. .card.small .card-image, .card.medium .card-image, .card.large .card-image {
  6488. max-height: 60%;
  6489. overflow: hidden;
  6490. }
  6491. .card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content {
  6492. max-height: 40%;
  6493. }
  6494. .card.small .card-content, .card.medium .card-content, .card.large .card-content {
  6495. max-height: 100%;
  6496. overflow: hidden;
  6497. }
  6498. .card.small .card-action, .card.medium .card-action, .card.large .card-action {
  6499. position: absolute;
  6500. bottom: 0;
  6501. left: 0;
  6502. right: 0;
  6503. }
  6504. .card.small {
  6505. height: 300px;
  6506. }
  6507. .card.medium {
  6508. height: 400px;
  6509. }
  6510. .card.large {
  6511. height: 500px;
  6512. }
  6513. .card.horizontal {
  6514. display: flex;
  6515. }
  6516. .card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image {
  6517. height: 100%;
  6518. max-height: none;
  6519. overflow: visible;
  6520. }
  6521. .card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img {
  6522. height: 100%;
  6523. }
  6524. .card.horizontal .card-image {
  6525. max-width: 50%;
  6526. }
  6527. .card.horizontal .card-image img {
  6528. border-radius: 2px 0 0 2px;
  6529. max-width: 100%;
  6530. width: auto;
  6531. }
  6532. .card.horizontal .card-stacked {
  6533. display: flex;
  6534. flex-direction: column;
  6535. flex: 1;
  6536. position: relative;
  6537. }
  6538. .card.horizontal .card-stacked .card-content {
  6539. flex-grow: 1;
  6540. }
  6541. .card.sticky-action .card-action {
  6542. z-index: 2;
  6543. }
  6544. .card.sticky-action .card-reveal {
  6545. z-index: 1;
  6546. padding-bottom: 64px;
  6547. }
  6548. .card .card-image {
  6549. position: relative;
  6550. }
  6551. .card .card-image img {
  6552. display: block;
  6553. border-radius: 2px 2px 0 0;
  6554. position: relative;
  6555. left: 0;
  6556. right: 0;
  6557. top: 0;
  6558. bottom: 0;
  6559. width: 100%;
  6560. }
  6561. .card .card-image .card-title {
  6562. color: #fff;
  6563. position: absolute;
  6564. bottom: 0;
  6565. left: 0;
  6566. max-width: 100%;
  6567. padding: 24px;
  6568. }
  6569. .card .card-content {
  6570. padding: 24px;
  6571. border-radius: 0 0 2px 2px;
  6572. }
  6573. .card .card-content p {
  6574. margin: 0;
  6575. }
  6576. .card .card-content .card-title {
  6577. display: block;
  6578. line-height: 32px;
  6579. margin-bottom: 8px;
  6580. }
  6581. .card .card-content .card-title i {
  6582. line-height: 32px;
  6583. }
  6584. .card .card-action {
  6585. background-color: inherit;
  6586. border-top: 1px solid rgba(160, 160, 160, 0.2);
  6587. position: relative;
  6588. padding: 16px 24px;
  6589. }
  6590. .card .card-action:last-child {
  6591. border-radius: 0 0 2px 2px;
  6592. }
  6593. .card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating) {
  6594. color: #ffab40;
  6595. margin-right: 24px;
  6596. transition: color 0.3s ease;
  6597. text-transform: uppercase;
  6598. }
  6599. .card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating):hover {
  6600. color: rgb(255, 215.8586387435, 166);
  6601. }
  6602. .card .card-reveal {
  6603. padding: 24px;
  6604. position: absolute;
  6605. background-color: #fff;
  6606. width: 100%;
  6607. overflow-y: auto;
  6608. left: 0;
  6609. top: 100%;
  6610. height: 100%;
  6611. z-index: 3;
  6612. display: none;
  6613. }
  6614. .card .card-reveal .card-title {
  6615. cursor: pointer;
  6616. display: block;
  6617. }
  6618. /*
  6619. @license
  6620. Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
  6621. This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
  6622. The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
  6623. The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
  6624. Code distributed by Google as part of the polymer project is also
  6625. subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
  6626. */
  6627. /**************************/
  6628. /* STYLES FOR THE SPINNER */
  6629. /**************************/
  6630. /*
  6631. * Constants:
  6632. * STROKEWIDTH = 3px
  6633. * ARCSIZE = 270 degrees (amount of circle the arc takes up)
  6634. * ARCTIME = 1333ms (time it takes to expand and contract arc)
  6635. * ARCSTARTROT = 216 degrees (how much the start location of the arc
  6636. * should rotate each time, 216 gives us a
  6637. * 5 pointed star shape (it's 360/5 * 3).
  6638. * For a 7 pointed star, we might do
  6639. * 360/7 * 3 = 154.286)
  6640. * CONTAINERWIDTH = 28px
  6641. * SHRINK_TIME = 400ms
  6642. */
  6643. .preloader-wrapper {
  6644. display: inline-block;
  6645. position: relative;
  6646. width: 50px;
  6647. height: 50px;
  6648. }
  6649. .preloader-wrapper.small {
  6650. width: 36px;
  6651. height: 36px;
  6652. }
  6653. .preloader-wrapper.big {
  6654. width: 64px;
  6655. height: 64px;
  6656. }
  6657. .preloader-wrapper.active {
  6658. /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */
  6659. -webkit-animation: container-rotate 1568ms linear infinite;
  6660. animation: container-rotate 1568ms linear infinite;
  6661. }
  6662. @-webkit-keyframes container-rotate {
  6663. to {
  6664. -webkit-transform: rotate(360deg);
  6665. }
  6666. }
  6667. @keyframes container-rotate {
  6668. to {
  6669. transform: rotate(360deg);
  6670. }
  6671. }
  6672. .spinner-layer {
  6673. position: absolute;
  6674. width: 100%;
  6675. height: 100%;
  6676. opacity: 0;
  6677. border-color: #26a69a;
  6678. }
  6679. .spinner-blue,
  6680. .spinner-blue-only {
  6681. border-color: #4285f4;
  6682. }
  6683. .spinner-red,
  6684. .spinner-red-only {
  6685. border-color: #db4437;
  6686. }
  6687. .spinner-yellow,
  6688. .spinner-yellow-only {
  6689. border-color: #f4b400;
  6690. }
  6691. .spinner-green,
  6692. .spinner-green-only {
  6693. border-color: #0f9d58;
  6694. }
  6695. /**
  6696. * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):
  6697. *
  6698. * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't
  6699. * guarantee that the animation will start _exactly_ after that value. So we avoid using
  6700. * animation-delay and instead set custom keyframes for each color (as redundant as it
  6701. * seems).
  6702. *
  6703. * We write out each animation in full (instead of separating animation-name,
  6704. * animation-duration, etc.) because under the polyfill, Safari does not recognize those
  6705. * specific properties properly, treats them as -webkit-animation, and overrides the
  6706. * other animation rules. See https://github.com/Polymer/platform/issues/53.
  6707. */
  6708. .active .spinner-layer.spinner-blue {
  6709. /* durations: 4 * ARCTIME */
  6710. -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6711. animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6712. }
  6713. .active .spinner-layer.spinner-red {
  6714. /* durations: 4 * ARCTIME */
  6715. -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6716. animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6717. }
  6718. .active .spinner-layer.spinner-yellow {
  6719. /* durations: 4 * ARCTIME */
  6720. -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6721. animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6722. }
  6723. .active .spinner-layer.spinner-green {
  6724. /* durations: 4 * ARCTIME */
  6725. -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6726. animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6727. }
  6728. .active .spinner-layer,
  6729. .active .spinner-layer.spinner-blue-only,
  6730. .active .spinner-layer.spinner-red-only,
  6731. .active .spinner-layer.spinner-yellow-only,
  6732. .active .spinner-layer.spinner-green-only {
  6733. /* durations: 4 * ARCTIME */
  6734. opacity: 1;
  6735. -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6736. animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6737. }
  6738. @-webkit-keyframes fill-unfill-rotate {
  6739. 12.5% {
  6740. -webkit-transform: rotate(135deg);
  6741. } /* 0.5 * ARCSIZE */
  6742. 25% {
  6743. -webkit-transform: rotate(270deg);
  6744. } /* 1 * ARCSIZE */
  6745. 37.5% {
  6746. -webkit-transform: rotate(405deg);
  6747. } /* 1.5 * ARCSIZE */
  6748. 50% {
  6749. -webkit-transform: rotate(540deg);
  6750. } /* 2 * ARCSIZE */
  6751. 62.5% {
  6752. -webkit-transform: rotate(675deg);
  6753. } /* 2.5 * ARCSIZE */
  6754. 75% {
  6755. -webkit-transform: rotate(810deg);
  6756. } /* 3 * ARCSIZE */
  6757. 87.5% {
  6758. -webkit-transform: rotate(945deg);
  6759. } /* 3.5 * ARCSIZE */
  6760. to {
  6761. -webkit-transform: rotate(1080deg);
  6762. } /* 4 * ARCSIZE */
  6763. }
  6764. @keyframes fill-unfill-rotate {
  6765. 12.5% {
  6766. transform: rotate(135deg);
  6767. } /* 0.5 * ARCSIZE */
  6768. 25% {
  6769. transform: rotate(270deg);
  6770. } /* 1 * ARCSIZE */
  6771. 37.5% {
  6772. transform: rotate(405deg);
  6773. } /* 1.5 * ARCSIZE */
  6774. 50% {
  6775. transform: rotate(540deg);
  6776. } /* 2 * ARCSIZE */
  6777. 62.5% {
  6778. transform: rotate(675deg);
  6779. } /* 2.5 * ARCSIZE */
  6780. 75% {
  6781. transform: rotate(810deg);
  6782. } /* 3 * ARCSIZE */
  6783. 87.5% {
  6784. transform: rotate(945deg);
  6785. } /* 3.5 * ARCSIZE */
  6786. to {
  6787. transform: rotate(1080deg);
  6788. } /* 4 * ARCSIZE */
  6789. }
  6790. @-webkit-keyframes blue-fade-in-out {
  6791. from {
  6792. opacity: 1;
  6793. }
  6794. 25% {
  6795. opacity: 1;
  6796. }
  6797. 26% {
  6798. opacity: 0;
  6799. }
  6800. 89% {
  6801. opacity: 0;
  6802. }
  6803. 90% {
  6804. opacity: 1;
  6805. }
  6806. 100% {
  6807. opacity: 1;
  6808. }
  6809. }
  6810. @keyframes blue-fade-in-out {
  6811. from {
  6812. opacity: 1;
  6813. }
  6814. 25% {
  6815. opacity: 1;
  6816. }
  6817. 26% {
  6818. opacity: 0;
  6819. }
  6820. 89% {
  6821. opacity: 0;
  6822. }
  6823. 90% {
  6824. opacity: 1;
  6825. }
  6826. 100% {
  6827. opacity: 1;
  6828. }
  6829. }
  6830. @-webkit-keyframes red-fade-in-out {
  6831. from {
  6832. opacity: 0;
  6833. }
  6834. 15% {
  6835. opacity: 0;
  6836. }
  6837. 25% {
  6838. opacity: 1;
  6839. }
  6840. 50% {
  6841. opacity: 1;
  6842. }
  6843. 51% {
  6844. opacity: 0;
  6845. }
  6846. }
  6847. @keyframes red-fade-in-out {
  6848. from {
  6849. opacity: 0;
  6850. }
  6851. 15% {
  6852. opacity: 0;
  6853. }
  6854. 25% {
  6855. opacity: 1;
  6856. }
  6857. 50% {
  6858. opacity: 1;
  6859. }
  6860. 51% {
  6861. opacity: 0;
  6862. }
  6863. }
  6864. @-webkit-keyframes yellow-fade-in-out {
  6865. from {
  6866. opacity: 0;
  6867. }
  6868. 40% {
  6869. opacity: 0;
  6870. }
  6871. 50% {
  6872. opacity: 1;
  6873. }
  6874. 75% {
  6875. opacity: 1;
  6876. }
  6877. 76% {
  6878. opacity: 0;
  6879. }
  6880. }
  6881. @keyframes yellow-fade-in-out {
  6882. from {
  6883. opacity: 0;
  6884. }
  6885. 40% {
  6886. opacity: 0;
  6887. }
  6888. 50% {
  6889. opacity: 1;
  6890. }
  6891. 75% {
  6892. opacity: 1;
  6893. }
  6894. 76% {
  6895. opacity: 0;
  6896. }
  6897. }
  6898. @-webkit-keyframes green-fade-in-out {
  6899. from {
  6900. opacity: 0;
  6901. }
  6902. 65% {
  6903. opacity: 0;
  6904. }
  6905. 75% {
  6906. opacity: 1;
  6907. }
  6908. 90% {
  6909. opacity: 1;
  6910. }
  6911. 100% {
  6912. opacity: 0;
  6913. }
  6914. }
  6915. @keyframes green-fade-in-out {
  6916. from {
  6917. opacity: 0;
  6918. }
  6919. 65% {
  6920. opacity: 0;
  6921. }
  6922. 75% {
  6923. opacity: 1;
  6924. }
  6925. 90% {
  6926. opacity: 1;
  6927. }
  6928. 100% {
  6929. opacity: 0;
  6930. }
  6931. }
  6932. /**
  6933. * Patch the gap that appear between the two adjacent div.circle-clipper while the
  6934. * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).
  6935. */
  6936. .gap-patch {
  6937. position: absolute;
  6938. top: 0;
  6939. left: 45%;
  6940. width: 10%;
  6941. height: 100%;
  6942. overflow: hidden;
  6943. border-color: inherit;
  6944. }
  6945. .gap-patch .circle {
  6946. width: 1000%;
  6947. left: -450%;
  6948. }
  6949. .circle-clipper {
  6950. display: inline-block;
  6951. position: relative;
  6952. width: 50%;
  6953. height: 100%;
  6954. overflow: hidden;
  6955. border-color: inherit;
  6956. }
  6957. .circle-clipper .circle {
  6958. width: 200%;
  6959. height: 100%;
  6960. border-width: 3px; /* STROKEWIDTH */
  6961. border-style: solid;
  6962. border-color: inherit;
  6963. border-bottom-color: transparent !important;
  6964. border-radius: 50%;
  6965. -webkit-animation: none;
  6966. animation: none;
  6967. position: absolute;
  6968. top: 0;
  6969. right: 0;
  6970. bottom: 0;
  6971. }
  6972. .circle-clipper.left .circle {
  6973. left: 0;
  6974. border-right-color: transparent !important;
  6975. -webkit-transform: rotate(129deg);
  6976. transform: rotate(129deg);
  6977. }
  6978. .circle-clipper.right .circle {
  6979. left: -100%;
  6980. border-left-color: transparent !important;
  6981. -webkit-transform: rotate(-129deg);
  6982. transform: rotate(-129deg);
  6983. }
  6984. .active .circle-clipper.left .circle {
  6985. /* duration: ARCTIME */
  6986. -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6987. animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6988. }
  6989. .active .circle-clipper.right .circle {
  6990. /* duration: ARCTIME */
  6991. -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6992. animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  6993. }
  6994. @-webkit-keyframes left-spin {
  6995. from {
  6996. -webkit-transform: rotate(130deg);
  6997. }
  6998. 50% {
  6999. -webkit-transform: rotate(-5deg);
  7000. }
  7001. to {
  7002. -webkit-transform: rotate(130deg);
  7003. }
  7004. }
  7005. @keyframes left-spin {
  7006. from {
  7007. transform: rotate(130deg);
  7008. }
  7009. 50% {
  7010. transform: rotate(-5deg);
  7011. }
  7012. to {
  7013. transform: rotate(130deg);
  7014. }
  7015. }
  7016. @-webkit-keyframes right-spin {
  7017. from {
  7018. -webkit-transform: rotate(-130deg);
  7019. }
  7020. 50% {
  7021. -webkit-transform: rotate(5deg);
  7022. }
  7023. to {
  7024. -webkit-transform: rotate(-130deg);
  7025. }
  7026. }
  7027. @keyframes right-spin {
  7028. from {
  7029. transform: rotate(-130deg);
  7030. }
  7031. 50% {
  7032. transform: rotate(5deg);
  7033. }
  7034. to {
  7035. transform: rotate(-130deg);
  7036. }
  7037. }
  7038. #spinnerContainer.cooldown {
  7039. /* duration: SHRINK_TIME */
  7040. -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
  7041. animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
  7042. }
  7043. @-webkit-keyframes fade-out {
  7044. from {
  7045. opacity: 1;
  7046. }
  7047. to {
  7048. opacity: 0;
  7049. }
  7050. }
  7051. @keyframes fade-out {
  7052. from {
  7053. opacity: 1;
  7054. }
  7055. to {
  7056. opacity: 0;
  7057. }
  7058. }
  7059. .progress {
  7060. position: relative;
  7061. height: 4px;
  7062. display: block;
  7063. width: 100%;
  7064. background-color: #acece6;
  7065. border-radius: 2px;
  7066. margin: 0.3333333333rem 0 0.6666666667rem 0;
  7067. overflow: hidden;
  7068. }
  7069. .progress .determinate {
  7070. position: absolute;
  7071. top: 0;
  7072. left: 0;
  7073. bottom: 0;
  7074. background-color: #26a69a;
  7075. transition: width 0.3s linear;
  7076. }
  7077. .progress .indeterminate {
  7078. background-color: #26a69a;
  7079. }
  7080. .progress .indeterminate:before {
  7081. content: "";
  7082. position: absolute;
  7083. background-color: inherit;
  7084. top: 0;
  7085. left: 0;
  7086. bottom: 0;
  7087. will-change: left, right;
  7088. animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
  7089. }
  7090. .progress .indeterminate:after {
  7091. content: "";
  7092. position: absolute;
  7093. background-color: inherit;
  7094. top: 0;
  7095. left: 0;
  7096. bottom: 0;
  7097. will-change: left, right;
  7098. animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
  7099. animation-delay: 1.15s;
  7100. }
  7101. @keyframes indeterminate {
  7102. 0% {
  7103. left: -35%;
  7104. right: 100%;
  7105. }
  7106. 60% {
  7107. left: 100%;
  7108. right: -90%;
  7109. }
  7110. 100% {
  7111. left: 100%;
  7112. right: -90%;
  7113. }
  7114. }
  7115. @keyframes indeterminate-short {
  7116. 0% {
  7117. left: -200%;
  7118. right: 100%;
  7119. }
  7120. 60% {
  7121. left: 107%;
  7122. right: -8%;
  7123. }
  7124. 100% {
  7125. left: 107%;
  7126. right: -8%;
  7127. }
  7128. }
  7129. .flash-message {
  7130. position: absolute;
  7131. padding: 2px 10px;
  7132. border-radius: 5px;
  7133. z-index: 99999;
  7134. right: 0;
  7135. bottom: 0;
  7136. font-size: 14px;
  7137. }
  7138. .flash-message.info {
  7139. background-color: #beddbe;
  7140. border: 1px solid #728f72;
  7141. }
  7142. .flash-message.warn {
  7143. background-color: #f5e6d0;
  7144. border: 1px solid #ea7d17;
  7145. }
  7146. .flash-message.error {
  7147. background-color: #e5b2bc;
  7148. border: 1px solid #e33257;
  7149. }
  7150. @keyframes messageIn {
  7151. from {
  7152. right: 80%;
  7153. }
  7154. to {
  7155. right: 0;
  7156. }
  7157. }
  7158. .pulse {
  7159. overflow: visible;
  7160. position: relative;
  7161. }
  7162. .pulse::before {
  7163. content: "";
  7164. display: block;
  7165. position: absolute;
  7166. width: 100%;
  7167. height: 100%;
  7168. top: 0;
  7169. left: 0;
  7170. background-color: inherit;
  7171. border-radius: inherit;
  7172. transition: opacity 0.3s, transform 0.3s;
  7173. animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;
  7174. }
  7175. @keyframes pulse-animation {
  7176. 0% {
  7177. opacity: 1;
  7178. transform: scale(1);
  7179. }
  7180. 50% {
  7181. opacity: 0;
  7182. transform: scale(1.5);
  7183. }
  7184. 100% {
  7185. opacity: 0;
  7186. transform: scale(1.5);
  7187. }
  7188. }
  7189. .dropdown-content {
  7190. background-color: #fff;
  7191. margin: 0;
  7192. display: flow;
  7193. min-width: 100px;
  7194. overflow-y: auto;
  7195. position: absolute;
  7196. left: 0;
  7197. top: 0;
  7198. z-index: 9999;
  7199. transform-origin: 0 0;
  7200. }
  7201. .dropdown-content:focus {
  7202. outline: 0;
  7203. }
  7204. .dropdown-content li {
  7205. clear: both;
  7206. color: rgba(0, 0, 0, 0.87);
  7207. cursor: pointer;
  7208. min-height: 50px;
  7209. line-height: 1.5rem;
  7210. width: 100%;
  7211. text-align: left;
  7212. }
  7213. .dropdown-content li:hover, .dropdown-content li.active {
  7214. background-color: #eee;
  7215. }
  7216. .dropdown-content li:focus {
  7217. outline: none;
  7218. }
  7219. .dropdown-content li.divider {
  7220. min-height: 0;
  7221. height: 1px;
  7222. }
  7223. .dropdown-content li > a, .dropdown-content li > span {
  7224. font-size: 16px;
  7225. color: #26a69a;
  7226. display: block;
  7227. line-height: 22px;
  7228. padding: 14px 16px;
  7229. }
  7230. .dropdown-content li > span > label {
  7231. top: 1px;
  7232. left: 0;
  7233. height: 18px;
  7234. }
  7235. .dropdown-content li > a > i {
  7236. height: inherit;
  7237. line-height: inherit;
  7238. float: left;
  7239. margin: 0 24px 0 0;
  7240. width: 24px;
  7241. }
  7242. body.keyboard-focused .dropdown-content li:focus {
  7243. background-color: rgb(217.6, 217.6, 217.6);
  7244. }
  7245. .input-field.col .dropdown-content [type=checkbox] + label {
  7246. top: 1px;
  7247. left: 0;
  7248. height: 18px;
  7249. transform: none;
  7250. }
  7251. .dropdown-trigger {
  7252. cursor: pointer;
  7253. }
  7254. nav {
  7255. color: #fff;
  7256. background-color: #90caf9;
  7257. width: 100%;
  7258. height: 56px;
  7259. line-height: 56px;
  7260. }
  7261. nav.nav-extended {
  7262. height: auto;
  7263. }
  7264. nav.nav-extended .nav-wrapper {
  7265. display: flex;
  7266. align-items: center;
  7267. min-height: 56px;
  7268. height: auto;
  7269. }
  7270. nav.nav-extended .nav-content {
  7271. position: relative;
  7272. line-height: normal;
  7273. }
  7274. nav a {
  7275. color: #fff;
  7276. }
  7277. nav i,
  7278. nav [class^=mdi-], nav [class*=mdi-],
  7279. nav i.s-icons {
  7280. display: block;
  7281. font-size: 24px;
  7282. height: 56px;
  7283. line-height: 56px;
  7284. }
  7285. nav .nav-wrapper {
  7286. position: relative;
  7287. height: 100%;
  7288. }
  7289. @media only screen and (min-width : 993px) {
  7290. nav a.sidenav-trigger {
  7291. display: none;
  7292. }
  7293. }
  7294. nav .sidenav-trigger {
  7295. float: left;
  7296. position: relative;
  7297. z-index: 1;
  7298. height: 56px;
  7299. margin: 0 18px;
  7300. }
  7301. nav .sidenav-trigger i {
  7302. height: 56px;
  7303. line-height: 56px;
  7304. }
  7305. nav .brand-logo {
  7306. position: absolute;
  7307. color: #fff;
  7308. display: inline-block;
  7309. font-size: 2.1rem;
  7310. padding: 0;
  7311. }
  7312. nav .brand-logo img.circle {
  7313. height: 32px;
  7314. width: 32px;
  7315. }
  7316. nav .brand-logo.center {
  7317. left: 50%;
  7318. transform: translateX(-50%);
  7319. }
  7320. @media only screen and (max-width : 992px) {
  7321. nav .brand-logo {
  7322. left: 50%;
  7323. transform: translateX(-50%);
  7324. }
  7325. nav .brand-logo.left, nav .brand-logo.right {
  7326. padding: 0;
  7327. transform: none;
  7328. }
  7329. nav .brand-logo.left {
  7330. left: 0.5rem;
  7331. }
  7332. nav .brand-logo.right {
  7333. right: 0.5rem;
  7334. left: auto;
  7335. }
  7336. }
  7337. nav .brand-logo.right {
  7338. right: 0.5rem;
  7339. padding: 0;
  7340. }
  7341. nav .brand-logo i,
  7342. nav .brand-logo [class^=mdi-], nav .brand-logo [class*=mdi-],
  7343. nav .brand-logo i.s-icons {
  7344. float: left;
  7345. margin-right: 15px;
  7346. }
  7347. nav .nav-title {
  7348. display: inline-block;
  7349. font-size: 32px;
  7350. padding: 28px 0;
  7351. }
  7352. nav ul {
  7353. margin: 0;
  7354. }
  7355. nav ul li {
  7356. transition: background-color 0.3s;
  7357. float: left;
  7358. padding: 0;
  7359. }
  7360. nav ul li.active {
  7361. background-color: rgba(0, 0, 0, 0.1);
  7362. }
  7363. nav ul a {
  7364. transition: background-color 0.3s;
  7365. font-size: 1rem;
  7366. color: #fff;
  7367. display: block;
  7368. padding: 0 15px;
  7369. cursor: pointer;
  7370. }
  7371. nav ul a.btn, nav ul a.btn-small, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {
  7372. margin-top: -2px;
  7373. margin-left: 15px;
  7374. margin-right: 15px;
  7375. }
  7376. nav ul a.btn > .material-icons, nav ul a.btn-small > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons {
  7377. height: inherit;
  7378. line-height: inherit;
  7379. }
  7380. nav ul a:hover {
  7381. background-color: rgba(0, 0, 0, 0.1);
  7382. }
  7383. nav ul.left {
  7384. float: left;
  7385. }
  7386. nav form {
  7387. height: 100%;
  7388. }
  7389. nav .input-field {
  7390. margin: 0;
  7391. height: 100%;
  7392. }
  7393. nav .input-field input {
  7394. height: 100%;
  7395. font-size: 1.2rem;
  7396. border: none;
  7397. padding-left: 2rem;
  7398. }
  7399. nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid {
  7400. border: none;
  7401. box-shadow: none;
  7402. }
  7403. nav .input-field label {
  7404. top: 0;
  7405. left: 0;
  7406. }
  7407. nav .input-field label i {
  7408. color: rgba(255, 255, 255, 0.7);
  7409. transition: color 0.3s;
  7410. }
  7411. nav .input-field label.active i {
  7412. color: #fff;
  7413. }
  7414. .navbar-fixed {
  7415. position: relative;
  7416. height: 56px;
  7417. z-index: 997;
  7418. }
  7419. .navbar-fixed nav {
  7420. position: fixed;
  7421. }
  7422. @media only screen and (min-width : 601px) {
  7423. nav.nav-extended .nav-wrapper {
  7424. min-height: 64px;
  7425. }
  7426. nav, nav .nav-wrapper i, nav a.sidenav-trigger, nav a.sidenav-trigger i {
  7427. height: 64px;
  7428. line-height: 64px;
  7429. }
  7430. .navbar-fixed {
  7431. height: 64px;
  7432. }
  7433. }`, "",{"version":3,"sources":["webpack://./src/sass/d3v4pp.scss","webpack://./src/sass/_colors.scss","webpack://./src/sass/_code-dark.scss","webpack://./src/sass/_terminal.scss","webpack://./src/sass/_tooltip.scss","webpack://./src/sass/_shadows.scss","webpack://./src/sass/_waves.scss","webpack://./src/sass/_modal.scss","webpack://./src/sass/_global.scss","webpack://./src/sass/_variables.scss","webpack://./src/sass/_badges.scss","webpack://./src/sass/_chips.scss","webpack://./src/sass/_collapsible.scss","webpack://./src/sass/_collection.scss","webpack://./src/sass/forms/_forms.scss","webpack://./src/sass/forms/_input-fields.scss","webpack://./src/sass/forms/_radio-buttons.scss","webpack://./src/sass/forms/_checkboxes.scss","webpack://./src/sass/forms/_switches.scss","webpack://./src/sass/forms/_select.scss","webpack://./src/sass/forms/_file-input.scss","webpack://./src/sass/forms/_range.scss","webpack://./src/sass/_paralax.scss","webpack://./src/sass/_cube.scss","webpack://./src/sass/_grid.scss","webpack://./src/sass/_sidenav.scss","webpack://./src/sass/_buttons.scss","webpack://./src/sass/_tabs.scss","webpack://./src/sass/_loader.scss","webpack://./src/sass/_cards.scss","webpack://./src/sass/_preloader.scss","webpack://./src/sass/_progress.scss","webpack://./src/sass/_flash-message.scss","webpack://./src/sass/_pulse.scss","webpack://./src/sass/_dropdown.scss","webpack://./src/sass/_navbar.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACKV;EACE,oCAAA;ADFR;;ACIM;EACE,yBAAA;ADDR;;ACGM;EACE,oCAAA;ADAR;;ACGM;EACE,oCAAA;ADAR;;ACEM;EACE,yBAAA;ADCR;;ACCM;EACE,oCAAA;ADER;;ACTM;EACE,oCAAA;ADYR;;ACVM;EACE,yBAAA;ADaR;;ACXM;EACE,oCAAA;ADcR;;ACrBM;EACE,oCAAA;ADwBR;;ACtBM;EACE,yBAAA;ADyBR;;ACvBM;EACE,oCAAA;AD0BR;;ACjCM;EACE,oCAAA;ADoCR;;AClCM;EACE,yBAAA;ADqCR;;ACnCM;EACE,oCAAA;ADsCR;;AC7CM;EACE,oCAAA;ADgDR;;AC9CM;EACE,yBAAA;ADiDR;;AC/CM;EACE,oCAAA;ADkDR;;ACzDM;EACE,oCAAA;AD4DR;;AC1DM;EACE,yBAAA;AD6DR;;AC3DM;EACE,oCAAA;AD8DR;;ACrEM;EACE,oCAAA;ADwER;;ACtEM;EACE,yBAAA;ADyER;;ACvEM;EACE,oCAAA;AD0ER;;ACjFM;EACE,oCAAA;ADoFR;;AClFM;EACE,yBAAA;ADqFR;;ACnFM;EACE,oCAAA;ADsFR;;AC7FM;EACE,oCAAA;ADgGR;;AC9FM;EACE,yBAAA;ADiGR;;AC/FM;EACE,oCAAA;ADkGR;;ACzGM;EACE,oCAAA;AD4GR;;AC1GM;EACE,yBAAA;AD6GR;;AC3GM;EACE,oCAAA;AD8GR;;ACrHM;EACE,oCAAA;ADwHR;;ACtHM;EACE,yBAAA;ADyHR;;ACvHM;EACE,oCAAA;AD0HR;;ACjIM;EACE,oCAAA;ADoIR;;AClIM;EACE,yBAAA;ADqIR;;ACnIM;EACE,oCAAA;ADsIR;;AC7IM;EACE,oCAAA;ADgJR;;AC9IM;EACE,yBAAA;ADiJR;;AC/IM;EACE,oCAAA;ADkJR;;ACzJM;EACE,oCAAA;AD4JR;;AC1JM;EACE,yBAAA;AD6JR;;AC3JM;EACE,oCAAA;AD8JR;;AC/KM;EACE,oCAAA;ADkLR;;AChLM;EACE,yBAAA;ADmLR;;ACjLM;EACE,oCAAA;ADoLR;;ACjLM;EACE,oCAAA;ADoLR;;AClLM;EACE,yBAAA;ADqLR;;ACnLM;EACE,oCAAA;ADsLR;;AC7LM;EACE,oCAAA;ADgMR;;AC9LM;EACE,yBAAA;ADiMR;;AC/LM;EACE,oCAAA;ADkMR;;ACzMM;EACE,oCAAA;AD4MR;;AC1MM;EACE,yBAAA;AD6MR;;AC3MM;EACE,oCAAA;AD8MR;;ACrNM;EACE,oCAAA;ADwNR;;ACtNM;EACE,yBAAA;ADyNR;;ACvNM;EACE,oCAAA;AD0NR;;ACjOM;EACE,oCAAA;ADoOR;;AClOM;EACE,yBAAA;ADqOR;;ACnOM;EACE,oCAAA;ADsOR;;AC7OM;EACE,oCAAA;ADgPR;;AC9OM;EACE,yBAAA;ADiPR;;AC/OM;EACE,oCAAA;ADkPR;;ACzPM;EACE,oCAAA;AD4PR;;AC1PM;EACE,yBAAA;AD6PR;;AC3PM;EACE,oCAAA;AD8PR;;ACrQM;EACE,oCAAA;ADwQR;;ACtQM;EACE,yBAAA;ADyQR;;ACvQM;EACE,oCAAA;AD0QR;;ACjRM;EACE,oCAAA;ADoRR;;AClRM;EACE,yBAAA;ADqRR;;ACnRM;EACE,oCAAA;ADsRR;;AC7RM;EACE,oCAAA;ADgSR;;AC9RM;EACE,yBAAA;ADiSR;;AC/RM;EACE,oCAAA;ADkSR;;ACzSM;EACE,oCAAA;AD4SR;;AC1SM;EACE,yBAAA;AD6SR;;AC3SM;EACE,oCAAA;AD8SR;;ACrTM;EACE,oCAAA;ADwTR;;ACtTM;EACE,yBAAA;ADyTR;;ACvTM;EACE,oCAAA;AD0TR;;ACjUM;EACE,oCAAA;ADoUR;;AClUM;EACE,yBAAA;ADqUR;;ACnUM;EACE,oCAAA;ADsUR;;ACvVM;EACE,oCAAA;AD0VR;;ACxVM;EACE,yBAAA;AD2VR;;ACzVM;EACE,oCAAA;AD4VR;;ACzVM;EACE,oCAAA;AD4VR;;AC1VM;EACE,yBAAA;AD6VR;;AC3VM;EACE,oCAAA;AD8VR;;ACrWM;EACE,oCAAA;ADwWR;;ACtWM;EACE,yBAAA;ADyWR;;ACvWM;EACE,oCAAA;AD0WR;;ACjXM;EACE,oCAAA;ADoXR;;AClXM;EACE,yBAAA;ADqXR;;ACnXM;EACE,oCAAA;ADsXR;;AC7XM;EACE,oCAAA;ADgYR;;AC9XM;EACE,yBAAA;ADiYR;;AC/XM;EACE,oCAAA;ADkYR;;ACzYM;EACE,oCAAA;AD4YR;;AC1YM;EACE,yBAAA;AD6YR;;AC3YM;EACE,oCAAA;AD8YR;;ACrZM;EACE,oCAAA;ADwZR;;ACtZM;EACE,yBAAA;ADyZR;;ACvZM;EACE,oCAAA;AD0ZR;;ACjaM;EACE,oCAAA;ADoaR;;AClaM;EACE,yBAAA;ADqaR;;ACnaM;EACE,oCAAA;ADsaR;;AC7aM;EACE,oCAAA;ADgbR;;AC9aM;EACE,yBAAA;ADibR;;AC/aM;EACE,oCAAA;ADkbR;;ACzbM;EACE,oCAAA;AD4bR;;AC1bM;EACE,yBAAA;AD6bR;;AC3bM;EACE,oCAAA;AD8bR;;ACrcM;EACE,oCAAA;ADwcR;;ACtcM;EACE,yBAAA;ADycR;;ACvcM;EACE,oCAAA;AD0cR;;ACjdM;EACE,oCAAA;ADodR;;ACldM;EACE,yBAAA;ADqdR;;ACndM;EACE,oCAAA;ADsdR;;AC7dM;EACE,oCAAA;ADgeR;;AC9dM;EACE,yBAAA;ADieR;;AC/dM;EACE,oCAAA;ADkeR;;ACzeM;EACE,oCAAA;AD4eR;;AC1eM;EACE,yBAAA;AD6eR;;AC3eM;EACE,oCAAA;AD8eR;;AC/fM;EACE,oCAAA;ADkgBR;;AChgBM;EACE,yBAAA;ADmgBR;;ACjgBM;EACE,oCAAA;ADogBR;;ACjgBM;EACE,oCAAA;ADogBR;;AClgBM;EACE,yBAAA;ADqgBR;;ACngBM;EACE,oCAAA;ADsgBR;;AC7gBM;EACE,oCAAA;ADghBR;;AC9gBM;EACE,yBAAA;ADihBR;;AC/gBM;EACE,oCAAA;ADkhBR;;ACzhBM;EACE,oCAAA;AD4hBR;;AC1hBM;EACE,yBAAA;AD6hBR;;AC3hBM;EACE,oCAAA;AD8hBR;;ACriBM;EACE,oCAAA;ADwiBR;;ACtiBM;EACE,yBAAA;ADyiBR;;ACviBM;EACE,oCAAA;AD0iBR;;ACjjBM;EACE,oCAAA;ADojBR;;ACljBM;EACE,yBAAA;ADqjBR;;ACnjBM;EACE,oCAAA;ADsjBR;;AC7jBM;EACE,oCAAA;ADgkBR;;AC9jBM;EACE,yBAAA;ADikBR;;AC/jBM;EACE,oCAAA;ADkkBR;;ACzkBM;EACE,oCAAA;AD4kBR;;AC1kBM;EACE,yBAAA;AD6kBR;;AC3kBM;EACE,oCAAA;AD8kBR;;ACrlBM;EACE,oCAAA;ADwlBR;;ACtlBM;EACE,yBAAA;ADylBR;;ACvlBM;EACE,oCAAA;AD0lBR;;ACjmBM;EACE,oCAAA;ADomBR;;AClmBM;EACE,yBAAA;ADqmBR;;ACnmBM;EACE,oCAAA;ADsmBR;;AC7mBM;EACE,oCAAA;ADgnBR;;AC9mBM;EACE,yBAAA;ADinBR;;AC/mBM;EACE,oCAAA;ADknBR;;ACznBM;EACE,oCAAA;AD4nBR;;AC1nBM;EACE,yBAAA;AD6nBR;;AC3nBM;EACE,oCAAA;AD8nBR;;ACroBM;EACE,oCAAA;ADwoBR;;ACtoBM;EACE,yBAAA;ADyoBR;;ACvoBM;EACE,oCAAA;AD0oBR;;ACjpBM;EACE,oCAAA;ADopBR;;AClpBM;EACE,yBAAA;ADqpBR;;ACnpBM;EACE,oCAAA;ADspBR;;ACvqBM;EACE,oCAAA;AD0qBR;;ACxqBM;EACE,yBAAA;AD2qBR;;ACzqBM;EACE,oCAAA;AD4qBR;;ACzqBM;EACE,oCAAA;AD4qBR;;AC1qBM;EACE,yBAAA;AD6qBR;;AC3qBM;EACE,oCAAA;AD8qBR;;ACrrBM;EACE,oCAAA;ADwrBR;;ACtrBM;EACE,yBAAA;ADyrBR;;ACvrBM;EACE,oCAAA;AD0rBR;;ACjsBM;EACE,oCAAA;ADosBR;;AClsBM;EACE,yBAAA;ADqsBR;;ACnsBM;EACE,oCAAA;ADssBR;;AC7sBM;EACE,oCAAA;ADgtBR;;AC9sBM;EACE,yBAAA;ADitBR;;AC/sBM;EACE,oCAAA;ADktBR;;ACztBM;EACE,oCAAA;AD4tBR;;AC1tBM;EACE,yBAAA;AD6tBR;;AC3tBM;EACE,oCAAA;AD8tBR;;ACruBM;EACE,oCAAA;ADwuBR;;ACtuBM;EACE,yBAAA;ADyuBR;;ACvuBM;EACE,oCAAA;AD0uBR;;ACjvBM;EACE,oCAAA;ADovBR;;AClvBM;EACE,yBAAA;ADqvBR;;ACnvBM;EACE,oCAAA;ADsvBR;;AC7vBM;EACE,oCAAA;ADgwBR;;AC9vBM;EACE,yBAAA;ADiwBR;;AC/vBM;EACE,oCAAA;ADkwBR;;ACzwBM;EACE,oCAAA;AD4wBR;;AC1wBM;EACE,yBAAA;AD6wBR;;AC3wBM;EACE,oCAAA;AD8wBR;;ACrxBM;EACE,oCAAA;ADwxBR;;ACtxBM;EACE,yBAAA;ADyxBR;;ACvxBM;EACE,oCAAA;AD0xBR;;ACjyBM;EACE,oCAAA;ADoyBR;;AClyBM;EACE,yBAAA;ADqyBR;;ACnyBM;EACE,oCAAA;ADsyBR;;AC7yBM;EACE,oCAAA;ADgzBR;;AC9yBM;EACE,yBAAA;ADizBR;;AC/yBM;EACE,oCAAA;ADkzBR;;ACzzBM;EACE,oCAAA;AD4zBR;;AC1zBM;EACE,yBAAA;AD6zBR;;AC3zBM;EACE,oCAAA;AD8zBR;;AC/0BM;EACE,oCAAA;ADk1BR;;ACh1BM;EACE,yBAAA;ADm1BR;;ACj1BM;EACE,oCAAA;ADo1BR;;ACj1BM;EACE,oCAAA;ADo1BR;;ACl1BM;EACE,yBAAA;ADq1BR;;ACn1BM;EACE,oCAAA;ADs1BR;;AC71BM;EACE,oCAAA;ADg2BR;;AC91BM;EACE,yBAAA;ADi2BR;;AC/1BM;EACE,oCAAA;ADk2BR;;ACz2BM;EACE,oCAAA;AD42BR;;AC12BM;EACE,yBAAA;AD62BR;;AC32BM;EACE,oCAAA;AD82BR;;ACr3BM;EACE,oCAAA;ADw3BR;;ACt3BM;EACE,yBAAA;ADy3BR;;ACv3BM;EACE,oCAAA;AD03BR;;ACj4BM;EACE,oCAAA;ADo4BR;;ACl4BM;EACE,yBAAA;ADq4BR;;ACn4BM;EACE,oCAAA;ADs4BR;;AC74BM;EACE,oCAAA;ADg5BR;;AC94BM;EACE,yBAAA;ADi5BR;;AC/4BM;EACE,oCAAA;ADk5BR;;ACz5BM;EACE,oCAAA;AD45BR;;AC15BM;EACE,yBAAA;AD65BR;;AC35BM;EACE,oCAAA;AD85BR;;ACr6BM;EACE,oCAAA;ADw6BR;;ACt6BM;EACE,yBAAA;ADy6BR;;ACv6BM;EACE,oCAAA;AD06BR;;ACj7BM;EACE,oCAAA;ADo7BR;;ACl7BM;EACE,yBAAA;ADq7BR;;ACn7BM;EACE,oCAAA;ADs7BR;;AC77BM;EACE,oCAAA;ADg8BR;;AC97BM;EACE,yBAAA;ADi8BR;;AC/7BM;EACE,oCAAA;ADk8BR;;ACz8BM;EACE,oCAAA;AD48BR;;AC18BM;EACE,yBAAA;AD68BR;;AC38BM;EACE,oCAAA;AD88BR;;ACr9BM;EACE,oCAAA;ADw9BR;;ACt9BM;EACE,yBAAA;ADy9BR;;ACv9BM;EACE,oCAAA;AD09BR;;ACj+BM;EACE,oCAAA;ADo+BR;;ACl+BM;EACE,yBAAA;ADq+BR;;ACn+BM;EACE,oCAAA;ADs+BR;;ACv/BM;EACE,oCAAA;AD0/BR;;ACx/BM;EACE,yBAAA;AD2/BR;;ACz/BM;EACE,oCAAA;AD4/BR;;ACz/BM;EACE,oCAAA;AD4/BR;;AC1/BM;EACE,yBAAA;AD6/BR;;AC3/BM;EACE,oCAAA;AD8/BR;;ACrgCM;EACE,oCAAA;ADwgCR;;ACtgCM;EACE,yBAAA;ADygCR;;ACvgCM;EACE,oCAAA;AD0gCR;;ACjhCM;EACE,oCAAA;ADohCR;;AClhCM;EACE,yBAAA;ADqhCR;;ACnhCM;EACE,oCAAA;ADshCR;;AC7hCM;EACE,oCAAA;ADgiCR;;AC9hCM;EACE,yBAAA;ADiiCR;;AC/hCM;EACE,oCAAA;ADkiCR;;ACziCM;EACE,oCAAA;AD4iCR;;AC1iCM;EACE,yBAAA;AD6iCR;;AC3iCM;EACE,oCAAA;AD8iCR;;ACrjCM;EACE,oCAAA;ADwjCR;;ACtjCM;EACE,yBAAA;ADyjCR;;ACvjCM;EACE,oCAAA;AD0jCR;;ACjkCM;EACE,oCAAA;ADokCR;;AClkCM;EACE,yBAAA;ADqkCR;;ACnkCM;EACE,oCAAA;ADskCR;;AC7kCM;EACE,oCAAA;ADglCR;;AC9kCM;EACE,yBAAA;ADilCR;;AC/kCM;EACE,oCAAA;ADklCR;;ACzlCM;EACE,oCAAA;AD4lCR;;AC1lCM;EACE,yBAAA;AD6lCR;;AC3lCM;EACE,oCAAA;AD8lCR;;ACrmCM;EACE,oCAAA;ADwmCR;;ACtmCM;EACE,yBAAA;ADymCR;;ACvmCM;EACE,oCAAA;AD0mCR;;ACjnCM;EACE,oCAAA;ADonCR;;AClnCM;EACE,yBAAA;ADqnCR;;ACnnCM;EACE,oCAAA;ADsnCR;;AC7nCM;EACE,oCAAA;ADgoCR;;AC9nCM;EACE,yBAAA;ADioCR;;AC/nCM;EACE,oCAAA;ADkoCR;;ACzoCM;EACE,oCAAA;AD4oCR;;AC1oCM;EACE,yBAAA;AD6oCR;;AC3oCM;EACE,oCAAA;AD8oCR;;AC/pCM;EACE,oCAAA;ADkqCR;;AChqCM;EACE,yBAAA;ADmqCR;;ACjqCM;EACE,oCAAA;ADoqCR;;ACjqCM;EACE,oCAAA;ADoqCR;;AClqCM;EACE,yBAAA;ADqqCR;;ACnqCM;EACE,oCAAA;ADsqCR;;AC7qCM;EACE,oCAAA;ADgrCR;;AC9qCM;EACE,yBAAA;ADirCR;;AC/qCM;EACE,oCAAA;ADkrCR;;ACzrCM;EACE,oCAAA;AD4rCR;;AC1rCM;EACE,yBAAA;AD6rCR;;AC3rCM;EACE,oCAAA;AD8rCR;;ACrsCM;EACE,oCAAA;ADwsCR;;ACtsCM;EACE,yBAAA;ADysCR;;ACvsCM;EACE,oCAAA;AD0sCR;;ACjtCM;EACE,oCAAA;ADotCR;;ACltCM;EACE,yBAAA;ADqtCR;;ACntCM;EACE,oCAAA;ADstCR;;AC7tCM;EACE,oCAAA;ADguCR;;AC9tCM;EACE,yBAAA;ADiuCR;;AC/tCM;EACE,oCAAA;ADkuCR;;ACzuCM;EACE,oCAAA;AD4uCR;;AC1uCM;EACE,yBAAA;AD6uCR;;AC3uCM;EACE,oCAAA;AD8uCR;;ACrvCM;EACE,oCAAA;ADwvCR;;ACtvCM;EACE,yBAAA;ADyvCR;;ACvvCM;EACE,oCAAA;AD0vCR;;ACjwCM;EACE,oCAAA;ADowCR;;AClwCM;EACE,yBAAA;ADqwCR;;ACnwCM;EACE,oCAAA;ADswCR;;AC7wCM;EACE,oCAAA;ADgxCR;;AC9wCM;EACE,yBAAA;ADixCR;;AC/wCM;EACE,oCAAA;ADkxCR;;ACzxCM;EACE,oCAAA;AD4xCR;;AC1xCM;EACE,yBAAA;AD6xCR;;AC3xCM;EACE,oCAAA;AD8xCR;;ACryCM;EACE,oCAAA;ADwyCR;;ACtyCM;EACE,yBAAA;ADyyCR;;ACvyCM;EACE,oCAAA;AD0yCR;;ACjzCM;EACE,oCAAA;ADozCR;;AClzCM;EACE,yBAAA;ADqzCR;;ACnzCM;EACE,oCAAA;ADszCR;;ACv0CM;EACE,oCAAA;AD00CR;;ACx0CM;EACE,yBAAA;AD20CR;;ACz0CM;EACE,oCAAA;AD40CR;;ACz0CM;EACE,oCAAA;AD40CR;;AC10CM;EACE,yBAAA;AD60CR;;AC30CM;EACE,oCAAA;AD80CR;;ACr1CM;EACE,oCAAA;ADw1CR;;ACt1CM;EACE,yBAAA;ADy1CR;;ACv1CM;EACE,oCAAA;AD01CR;;ACj2CM;EACE,oCAAA;ADo2CR;;ACl2CM;EACE,yBAAA;ADq2CR;;ACn2CM;EACE,oCAAA;ADs2CR;;AC72CM;EACE,oCAAA;ADg3CR;;AC92CM;EACE,yBAAA;ADi3CR;;AC/2CM;EACE,oCAAA;ADk3CR;;ACz3CM;EACE,oCAAA;AD43CR;;AC13CM;EACE,yBAAA;AD63CR;;AC33CM;EACE,oCAAA;AD83CR;;ACr4CM;EACE,oCAAA;ADw4CR;;ACt4CM;EACE,yBAAA;ADy4CR;;ACv4CM;EACE,oCAAA;AD04CR;;ACj5CM;EACE,oCAAA;ADo5CR;;ACl5CM;EACE,yBAAA;ADq5CR;;ACn5CM;EACE,oCAAA;ADs5CR;;AC75CM;EACE,oCAAA;ADg6CR;;AC95CM;EACE,yBAAA;ADi6CR;;AC/5CM;EACE,oCAAA;ADk6CR;;ACz6CM;EACE,oCAAA;AD46CR;;AC16CM;EACE,yBAAA;AD66CR;;AC36CM;EACE,oCAAA;AD86CR;;ACr7CM;EACE,oCAAA;ADw7CR;;ACt7CM;EACE,yBAAA;ADy7CR;;ACv7CM;EACE,oCAAA;AD07CR;;ACj8CM;EACE,oCAAA;ADo8CR;;ACl8CM;EACE,yBAAA;ADq8CR;;ACn8CM;EACE,oCAAA;ADs8CR;;AC78CM;EACE,oCAAA;ADg9CR;;AC98CM;EACE,yBAAA;ADi9CR;;AC/8CM;EACE,oCAAA;ADk9CR;;ACz9CM;EACE,oCAAA;AD49CR;;AC19CM;EACE,yBAAA;AD69CR;;AC39CM;EACE,oCAAA;AD89CR;;AC/+CM;EACE,oCAAA;ADk/CR;;ACh/CM;EACE,yBAAA;ADm/CR;;ACj/CM;EACE,oCAAA;ADo/CR;;ACj/CM;EACE,oCAAA;ADo/CR;;ACl/CM;EACE,yBAAA;ADq/CR;;ACn/CM;EACE,oCAAA;ADs/CR;;AC7/CM;EACE,oCAAA;ADggDR;;AC9/CM;EACE,yBAAA;ADigDR;;AC//CM;EACE,oCAAA;ADkgDR;;ACzgDM;EACE,oCAAA;AD4gDR;;AC1gDM;EACE,yBAAA;AD6gDR;;AC3gDM;EACE,oCAAA;AD8gDR;;ACrhDM;EACE,oCAAA;ADwhDR;;ACthDM;EACE,yBAAA;ADyhDR;;ACvhDM;EACE,oCAAA;AD0hDR;;ACjiDM;EACE,oCAAA;ADoiDR;;ACliDM;EACE,yBAAA;ADqiDR;;ACniDM;EACE,oCAAA;ADsiDR;;AC7iDM;EACE,oCAAA;ADgjDR;;AC9iDM;EACE,yBAAA;ADijDR;;AC/iDM;EACE,oCAAA;ADkjDR;;ACzjDM;EACE,oCAAA;AD4jDR;;AC1jDM;EACE,yBAAA;AD6jDR;;AC3jDM;EACE,oCAAA;AD8jDR;;ACrkDM;EACE,oCAAA;ADwkDR;;ACtkDM;EACE,yBAAA;ADykDR;;ACvkDM;EACE,oCAAA;AD0kDR;;ACjlDM;EACE,oCAAA;ADolDR;;ACllDM;EACE,yBAAA;ADqlDR;;ACnlDM;EACE,oCAAA;ADslDR;;AC7lDM;EACE,oCAAA;ADgmDR;;AC9lDM;EACE,yBAAA;ADimDR;;AC/lDM;EACE,oCAAA;ADkmDR;;ACzmDM;EACE,oCAAA;AD4mDR;;AC1mDM;EACE,yBAAA;AD6mDR;;AC3mDM;EACE,oCAAA;AD8mDR;;ACrnDM;EACE,oCAAA;ADwnDR;;ACtnDM;EACE,yBAAA;ADynDR;;ACvnDM;EACE,oCAAA;AD0nDR;;ACjoDM;EACE,oCAAA;ADooDR;;ACloDM;EACE,yBAAA;ADqoDR;;ACnoDM;EACE,oCAAA;ADsoDR;;ACvpDM;EACE,oCAAA;AD0pDR;;ACxpDM;EACE,yBAAA;AD2pDR;;ACzpDM;EACE,oCAAA;AD4pDR;;ACzpDM;EACE,oCAAA;AD4pDR;;AC1pDM;EACE,yBAAA;AD6pDR;;AC3pDM;EACE,oCAAA;AD8pDR;;ACrqDM;EACE,oCAAA;ADwqDR;;ACtqDM;EACE,yBAAA;ADyqDR;;ACvqDM;EACE,oCAAA;AD0qDR;;ACjrDM;EACE,oCAAA;ADorDR;;AClrDM;EACE,yBAAA;ADqrDR;;ACnrDM;EACE,oCAAA;ADsrDR;;AC7rDM;EACE,oCAAA;ADgsDR;;AC9rDM;EACE,yBAAA;ADisDR;;AC/rDM;EACE,oCAAA;ADksDR;;ACzsDM;EACE,oCAAA;AD4sDR;;AC1sDM;EACE,yBAAA;AD6sDR;;AC3sDM;EACE,oCAAA;AD8sDR;;ACrtDM;EACE,oCAAA;ADwtDR;;ACttDM;EACE,yBAAA;ADytDR;;ACvtDM;EACE,oCAAA;AD0tDR;;ACjuDM;EACE,oCAAA;ADouDR;;ACluDM;EACE,yBAAA;ADquDR;;ACnuDM;EACE,oCAAA;ADsuDR;;AC7uDM;EACE,oCAAA;ADgvDR;;AC9uDM;EACE,yBAAA;ADivDR;;AC/uDM;EACE,oCAAA;ADkvDR;;ACzvDM;EACE,oCAAA;AD4vDR;;AC1vDM;EACE,yBAAA;AD6vDR;;AC3vDM;EACE,oCAAA;AD8vDR;;ACrwDM;EACE,oCAAA;ADwwDR;;ACtwDM;EACE,yBAAA;ADywDR;;ACvwDM;EACE,oCAAA;AD0wDR;;ACjxDM;EACE,oCAAA;ADoxDR;;AClxDM;EACE,yBAAA;ADqxDR;;ACnxDM;EACE,oCAAA;ADsxDR;;AC7xDM;EACE,oCAAA;ADgyDR;;AC9xDM;EACE,yBAAA;ADiyDR;;AC/xDM;EACE,oCAAA;ADkyDR;;ACzyDM;EACE,oCAAA;AD4yDR;;AC1yDM;EACE,yBAAA;AD6yDR;;AC3yDM;EACE,oCAAA;AD8yDR;;AC/zDM;EACE,oCAAA;ADk0DR;;ACh0DM;EACE,yBAAA;ADm0DR;;ACj0DM;EACE,oCAAA;ADo0DR;;ACj0DM;EACE,oCAAA;ADo0DR;;ACl0DM;EACE,yBAAA;ADq0DR;;ACn0DM;EACE,oCAAA;ADs0DR;;AC70DM;EACE,oCAAA;ADg1DR;;AC90DM;EACE,yBAAA;ADi1DR;;AC/0DM;EACE,oCAAA;ADk1DR;;ACz1DM;EACE,oCAAA;AD41DR;;AC11DM;EACE,yBAAA;AD61DR;;AC31DM;EACE,oCAAA;AD81DR;;ACr2DM;EACE,oCAAA;ADw2DR;;ACt2DM;EACE,yBAAA;ADy2DR;;ACv2DM;EACE,oCAAA;AD02DR;;ACj3DM;EACE,oCAAA;ADo3DR;;ACl3DM;EACE,yBAAA;ADq3DR;;ACn3DM;EACE,oCAAA;ADs3DR;;AC73DM;EACE,oCAAA;ADg4DR;;AC93DM;EACE,yBAAA;ADi4DR;;AC/3DM;EACE,oCAAA;ADk4DR;;ACz4DM;EACE,oCAAA;AD44DR;;AC14DM;EACE,yBAAA;AD64DR;;AC34DM;EACE,oCAAA;AD84DR;;ACr5DM;EACE,oCAAA;ADw5DR;;ACt5DM;EACE,yBAAA;ADy5DR;;ACv5DM;EACE,oCAAA;AD05DR;;ACj6DM;EACE,oCAAA;ADo6DR;;ACl6DM;EACE,yBAAA;ADq6DR;;ACn6DM;EACE,oCAAA;ADs6DR;;AC76DM;EACE,oCAAA;ADg7DR;;AC96DM;EACE,yBAAA;ADi7DR;;AC/6DM;EACE,oCAAA;ADk7DR;;ACz7DM;EACE,oCAAA;AD47DR;;AC17DM;EACE,yBAAA;AD67DR;;AC37DM;EACE,oCAAA;AD87DR;;ACr8DM;EACE,oCAAA;ADw8DR;;ACt8DM;EACE,yBAAA;ADy8DR;;ACv8DM;EACE,oCAAA;AD08DR;;ACj9DM;EACE,oCAAA;ADo9DR;;ACl9DM;EACE,yBAAA;ADq9DR;;ACn9DM;EACE,oCAAA;ADs9DR;;ACv+DM;EACE,oCAAA;AD0+DR;;ACx+DM;EACE,yBAAA;AD2+DR;;ACz+DM;EACE,oCAAA;AD4+DR;;ACz+DM;EACE,oCAAA;AD4+DR;;AC1+DM;EACE,yBAAA;AD6+DR;;AC3+DM;EACE,oCAAA;AD8+DR;;ACr/DM;EACE,oCAAA;ADw/DR;;ACt/DM;EACE,yBAAA;ADy/DR;;ACv/DM;EACE,oCAAA;AD0/DR;;ACjgEM;EACE,oCAAA;ADogER;;AClgEM;EACE,yBAAA;ADqgER;;ACngEM;EACE,oCAAA;ADsgER;;AC7gEM;EACE,oCAAA;ADghER;;AC9gEM;EACE,yBAAA;ADihER;;AC/gEM;EACE,oCAAA;ADkhER;;ACzhEM;EACE,oCAAA;AD4hER;;AC1hEM;EACE,yBAAA;AD6hER;;AC3hEM;EACE,oCAAA;AD8hER;;ACriEM;EACE,oCAAA;ADwiER;;ACtiEM;EACE,yBAAA;ADyiER;;ACviEM;EACE,oCAAA;AD0iER;;ACjjEM;EACE,oCAAA;ADojER;;ACljEM;EACE,yBAAA;ADqjER;;ACnjEM;EACE,oCAAA;ADsjER;;AC7jEM;EACE,oCAAA;ADgkER;;AC9jEM;EACE,yBAAA;ADikER;;AC/jEM;EACE,oCAAA;ADkkER;;ACzkEM;EACE,oCAAA;AD4kER;;AC1kEM;EACE,yBAAA;AD6kER;;AC3kEM;EACE,oCAAA;AD8kER;;ACrlEM;EACE,oCAAA;ADwlER;;ACtlEM;EACE,yBAAA;ADylER;;ACvlEM;EACE,oCAAA;AD0lER;;ACjmEM;EACE,oCAAA;ADomER;;AClmEM;EACE,yBAAA;ADqmER;;ACnmEM;EACE,oCAAA;ADsmER;;AC7mEM;EACE,oCAAA;ADgnER;;AC9mEM;EACE,yBAAA;ADinER;;AC/mEM;EACE,oCAAA;ADknER;;ACznEM;EACE,oCAAA;AD4nER;;AC1nEM;EACE,yBAAA;AD6nER;;AC3nEM;EACE,oCAAA;AD8nER;;AC/oEM;EACE,oCAAA;ADkpER;;AChpEM;EACE,yBAAA;ADmpER;;ACjpEM;EACE,oCAAA;ADopER;;ACjpEM;EACE,oCAAA;ADopER;;AClpEM;EACE,yBAAA;ADqpER;;ACnpEM;EACE,oCAAA;ADspER;;AC7pEM;EACE,oCAAA;ADgqER;;AC9pEM;EACE,yBAAA;ADiqER;;AC/pEM;EACE,oCAAA;ADkqER;;ACzqEM;EACE,oCAAA;AD4qER;;AC1qEM;EACE,yBAAA;AD6qER;;AC3qEM;EACE,oCAAA;AD8qER;;ACrrEM;EACE,oCAAA;ADwrER;;ACtrEM;EACE,yBAAA;ADyrER;;ACvrEM;EACE,oCAAA;AD0rER;;ACjsEM;EACE,oCAAA;ADosER;;AClsEM;EACE,yBAAA;ADqsER;;ACnsEM;EACE,oCAAA;ADssER;;AC7sEM;EACE,oCAAA;ADgtER;;AC9sEM;EACE,yBAAA;ADitER;;AC/sEM;EACE,oCAAA;ADktER;;ACztEM;EACE,oCAAA;AD4tER;;AC1tEM;EACE,yBAAA;AD6tER;;AC3tEM;EACE,oCAAA;AD8tER;;ACruEM;EACE,oCAAA;ADwuER;;ACtuEM;EACE,yBAAA;ADyuER;;ACvuEM;EACE,oCAAA;AD0uER;;ACjvEM;EACE,oCAAA;ADovER;;AClvEM;EACE,yBAAA;ADqvER;;ACnvEM;EACE,oCAAA;ADsvER;;AC7vEM;EACE,oCAAA;ADgwER;;AC9vEM;EACE,yBAAA;ADiwER;;AC/vEM;EACE,oCAAA;ADkwER;;ACzwEM;EACE,oCAAA;AD4wER;;AC1wEM;EACE,yBAAA;AD6wER;;AC3wEM;EACE,oCAAA;AD8wER;;ACrxEM;EACE,oCAAA;ADwxER;;ACtxEM;EACE,yBAAA;ADyxER;;ACvxEM;EACE,oCAAA;AD0xER;;ACjyEM;EACE,oCAAA;ADoyER;;AClyEM;EACE,yBAAA;ADqyER;;ACnyEM;EACE,oCAAA;ADsyER;;ACvzEM;EACE,oCAAA;AD0zER;;ACxzEM;EACE,yBAAA;AD2zER;;ACzzEM;EACE,oCAAA;AD4zER;;ACzzEM;EACE,oCAAA;AD4zER;;AC1zEM;EACE,yBAAA;AD6zER;;AC3zEM;EACE,oCAAA;AD8zER;;ACr0EM;EACE,oCAAA;ADw0ER;;ACt0EM;EACE,yBAAA;ADy0ER;;ACv0EM;EACE,oCAAA;AD00ER;;ACj1EM;EACE,oCAAA;ADo1ER;;ACl1EM;EACE,yBAAA;ADq1ER;;ACn1EM;EACE,oCAAA;ADs1ER;;AC71EM;EACE,oCAAA;ADg2ER;;AC91EM;EACE,yBAAA;ADi2ER;;AC/1EM;EACE,oCAAA;ADk2ER;;ACz2EM;EACE,oCAAA;AD42ER;;AC12EM;EACE,yBAAA;AD62ER;;AC32EM;EACE,oCAAA;AD82ER;;ACr3EM;EACE,oCAAA;ADw3ER;;ACt3EM;EACE,yBAAA;ADy3ER;;ACv3EM;EACE,oCAAA;AD03ER;;ACj4EM;EACE,oCAAA;ADo4ER;;ACl4EM;EACE,yBAAA;ADq4ER;;ACn4EM;EACE,oCAAA;ADs4ER;;AC74EM;EACE,oCAAA;ADg5ER;;AC94EM;EACE,yBAAA;ADi5ER;;AC/4EM;EACE,oCAAA;ADk5ER;;ACz5EM;EACE,oCAAA;AD45ER;;AC15EM;EACE,yBAAA;AD65ER;;AC35EM;EACE,oCAAA;AD85ER;;ACr6EM;EACE,oCAAA;ADw6ER;;ACt6EM;EACE,yBAAA;ADy6ER;;ACv6EM;EACE,oCAAA;AD06ER;;ACj7EM;EACE,oCAAA;ADo7ER;;ACl7EM;EACE,yBAAA;ADq7ER;;ACn7EM;EACE,oCAAA;ADs7ER;;AC77EM;EACE,oCAAA;ADg8ER;;AC97EM;EACE,yBAAA;ADi8ER;;AC/7EM;EACE,oCAAA;ADk8ER;;ACz8EM;EACE,oCAAA;AD48ER;;AC18EM;EACE,yBAAA;AD68ER;;AC38EM;EACE,oCAAA;AD88ER;;AC/9EM;EACE,oCAAA;ADk+ER;;ACh+EM;EACE,yBAAA;ADm+ER;;ACj+EM;EACE,oCAAA;ADo+ER;;ACj+EM;EACE,oCAAA;ADo+ER;;ACl+EM;EACE,yBAAA;ADq+ER;;ACn+EM;EACE,oCAAA;ADs+ER;;AC7+EM;EACE,oCAAA;ADg/ER;;AC9+EM;EACE,yBAAA;ADi/ER;;AC/+EM;EACE,oCAAA;ADk/ER;;ACz/EM;EACE,oCAAA;AD4/ER;;AC1/EM;EACE,yBAAA;AD6/ER;;AC3/EM;EACE,oCAAA;AD8/ER;;ACrgFM;EACE,oCAAA;ADwgFR;;ACtgFM;EACE,yBAAA;ADygFR;;ACvgFM;EACE,oCAAA;AD0gFR;;ACjhFM;EACE,oCAAA;ADohFR;;AClhFM;EACE,yBAAA;ADqhFR;;ACnhFM;EACE,oCAAA;ADshFR;;AC7hFM;EACE,oCAAA;ADgiFR;;AC9hFM;EACE,yBAAA;ADiiFR;;AC/hFM;EACE,oCAAA;ADkiFR;;ACziFM;EACE,oCAAA;AD4iFR;;AC1iFM;EACE,yBAAA;AD6iFR;;AC3iFM;EACE,oCAAA;AD8iFR;;ACrjFM;EACE,oCAAA;ADwjFR;;ACtjFM;EACE,yBAAA;ADyjFR;;ACvjFM;EACE,oCAAA;AD0jFR;;ACjkFM;EACE,oCAAA;ADokFR;;AClkFM;EACE,yBAAA;ADqkFR;;ACnkFM;EACE,oCAAA;ADskFR;;AC7kFM;EACE,oCAAA;ADglFR;;AC9kFM;EACE,yBAAA;ADilFR;;AC/kFM;EACE,oCAAA;ADklFR;;ACzlFM;EACE,oCAAA;AD4lFR;;AC1lFM;EACE,yBAAA;AD6lFR;;AC3lFM;EACE,oCAAA;AD8lFR;;ACrmFM;EACE,oCAAA;ADwmFR;;ACtmFM;EACE,yBAAA;ADymFR;;ACvmFM;EACE,oCAAA;AD0mFR;;ACjnFM;EACE,oCAAA;ADonFR;;AClnFM;EACE,yBAAA;ADqnFR;;ACnnFM;EACE,oCAAA;ADsnFR;;ACvoFM;EACE,oCAAA;AD0oFR;;ACxoFM;EACE,yBAAA;AD2oFR;;ACzoFM;EACE,oCAAA;AD4oFR;;ACzoFM;EACE,oCAAA;AD4oFR;;AC1oFM;EACE,yBAAA;AD6oFR;;AC3oFM;EACE,oCAAA;AD8oFR;;ACrpFM;EACE,oCAAA;ADwpFR;;ACtpFM;EACE,yBAAA;ADypFR;;ACvpFM;EACE,oCAAA;AD0pFR;;ACjqFM;EACE,oCAAA;ADoqFR;;AClqFM;EACE,yBAAA;ADqqFR;;ACnqFM;EACE,oCAAA;ADsqFR;;AC7qFM;EACE,oCAAA;ADgrFR;;AC9qFM;EACE,yBAAA;ADirFR;;AC/qFM;EACE,oCAAA;ADkrFR;;ACzrFM;EACE,oCAAA;AD4rFR;;AC1rFM;EACE,yBAAA;AD6rFR;;AC3rFM;EACE,oCAAA;AD8rFR;;ACrsFM;EACE,oCAAA;ADwsFR;;ACtsFM;EACE,yBAAA;ADysFR;;ACvsFM;EACE,oCAAA;AD0sFR;;ACjtFM;EACE,oCAAA;ADotFR;;ACltFM;EACE,yBAAA;ADqtFR;;ACntFM;EACE,oCAAA;ADstFR;;AC7tFM;EACE,oCAAA;ADguFR;;AC9tFM;EACE,yBAAA;ADiuFR;;AC/tFM;EACE,oCAAA;ADkuFR;;ACzuFM;EACE,oCAAA;AD4uFR;;AC1uFM;EACE,yBAAA;AD6uFR;;AC3uFM;EACE,oCAAA;AD8uFR;;ACrvFM;EACE,oCAAA;ADwvFR;;ACtvFM;EACE,yBAAA;ADyvFR;;ACvvFM;EACE,oCAAA;AD0vFR;;ACjwFM;EACE,oCAAA;ADowFR;;AClwFM;EACE,yBAAA;ADqwFR;;ACnwFM;EACE,oCAAA;ADswFR;;AC7wFM;EACE,oCAAA;ADgxFR;;AC9wFM;EACE,yBAAA;ADixFR;;AC/wFM;EACE,oCAAA;ADkxFR;;ACzxFM;EACE,oCAAA;AD4xFR;;AC1xFM;EACE,yBAAA;AD6xFR;;AC3xFM;EACE,oCAAA;AD8xFR;;AC/yFM;EACE,oCAAA;ADkzFR;;AChzFM;EACE,yBAAA;ADmzFR;;ACjzFM;EACE,oCAAA;ADozFR;;ACjzFM;EACE,oCAAA;ADozFR;;AClzFM;EACE,yBAAA;ADqzFR;;ACnzFM;EACE,oCAAA;ADszFR;;AC7zFM;EACE,oCAAA;ADg0FR;;AC9zFM;EACE,yBAAA;ADi0FR;;AC/zFM;EACE,oCAAA;ADk0FR;;ACz0FM;EACE,oCAAA;AD40FR;;AC10FM;EACE,yBAAA;AD60FR;;AC30FM;EACE,oCAAA;AD80FR;;ACr1FM;EACE,oCAAA;ADw1FR;;ACt1FM;EACE,yBAAA;ADy1FR;;ACv1FM;EACE,oCAAA;AD01FR;;ACj2FM;EACE,oCAAA;ADo2FR;;ACl2FM;EACE,yBAAA;ADq2FR;;ACn2FM;EACE,oCAAA;ADs2FR;;AC72FM;EACE,oCAAA;ADg3FR;;AC92FM;EACE,yBAAA;ADi3FR;;AC/2FM;EACE,oCAAA;ADk3FR;;ACz3FM;EACE,oCAAA;AD43FR;;AC13FM;EACE,yBAAA;AD63FR;;AC33FM;EACE,oCAAA;AD83FR;;ACr4FM;EACE,oCAAA;ADw4FR;;ACt4FM;EACE,yBAAA;ADy4FR;;ACv4FM;EACE,oCAAA;AD04FR;;ACj5FM;EACE,oCAAA;ADo5FR;;ACl5FM;EACE,yBAAA;ADq5FR;;ACn5FM;EACE,oCAAA;ADs5FR;;ACv6FM;EACE,oCAAA;AD06FR;;ACx6FM;EACE,yBAAA;AD26FR;;ACz6FM;EACE,oCAAA;AD46FR;;ACz6FM;EACE,oCAAA;AD46FR;;AC16FM;EACE,yBAAA;AD66FR;;AC36FM;EACE,oCAAA;AD86FR;;ACr7FM;EACE,oCAAA;ADw7FR;;ACt7FM;EACE,yBAAA;ADy7FR;;ACv7FM;EACE,oCAAA;AD07FR;;ACj8FM;EACE,oCAAA;ADo8FR;;ACl8FM;EACE,yBAAA;ADq8FR;;ACn8FM;EACE,oCAAA;ADs8FR;;AC78FM;EACE,oCAAA;ADg9FR;;AC98FM;EACE,yBAAA;ADi9FR;;AC/8FM;EACE,oCAAA;ADk9FR;;ACz9FM;EACE,oCAAA;AD49FR;;AC19FM;EACE,yBAAA;AD69FR;;AC39FM;EACE,oCAAA;AD89FR;;ACr+FM;EACE,oCAAA;ADw+FR;;ACt+FM;EACE,yBAAA;ADy+FR;;ACv+FM;EACE,oCAAA;AD0+FR;;ACj/FM;EACE,oCAAA;ADo/FR;;ACl/FM;EACE,yBAAA;ADq/FR;;ACn/FM;EACE,oCAAA;ADs/FR;;AC7/FM;EACE,oCAAA;ADggGR;;AC9/FM;EACE,yBAAA;ADigGR;;AC//FM;EACE,oCAAA;ADkgGR;;ACzgGM;EACE,oCAAA;AD4gGR;;AC1gGM;EACE,yBAAA;AD6gGR;;AC3gGM;EACE,oCAAA;AD8gGR;;AC/hGM;EACE,oCAAA;ADkiGR;;AChiGM;EACE,yBAAA;ADmiGR;;ACjiGM;EACE,oCAAA;ADoiGR;;ACjiGM;EACE,oCAAA;ADoiGR;;ACliGM;EACE,yBAAA;ADqiGR;;ACniGM;EACE,oCAAA;ADsiGR;;AC7iGM;EACE,oCAAA;ADgjGR;;AC9iGM;EACE,yBAAA;ADijGR;;AC/iGM;EACE,oCAAA;ADkjGR;;ACzjGM;EACE,oCAAA;AD4jGR;;AC1jGM;EACE,yBAAA;AD6jGR;;AC3jGM;EACE,oCAAA;AD8jGR;;ACrkGM;EACE,oCAAA;ADwkGR;;ACtkGM;EACE,yBAAA;ADykGR;;ACvkGM;EACE,oCAAA;AD0kGR;;ACjlGM;EACE,oCAAA;ADolGR;;ACllGM;EACE,yBAAA;ADqlGR;;ACnlGM;EACE,oCAAA;ADslGR;;AC7lGM;EACE,oCAAA;ADgmGR;;AC9lGM;EACE,yBAAA;ADimGR;;AC/lGM;EACE,oCAAA;ADkmGR;;ACzmGM;EACE,oCAAA;AD4mGR;;AC1mGM;EACE,yBAAA;AD6mGR;;AC3mGM;EACE,oCAAA;AD8mGR;;ACrnGM;EACE,oCAAA;ADwnGR;;ACtnGM;EACE,yBAAA;ADynGR;;ACvnGM;EACE,oCAAA;AD0nGR;;ACjoGM;EACE,oCAAA;ADooGR;;ACloGM;EACE,yBAAA;ADqoGR;;ACnoGM;EACE,oCAAA;ADsoGR;;ACxnGE;EACE,oCAAA;AD2nGJ;;ACznGE;EACE,yBAAA;AD4nGJ;;AChoGE;EACE,oCAAA;ADmoGJ;;ACjoGE;EACE,yBAAA;ADooGJ;;ACxoGE;EACE,wCAAA;AD2oGJ;;ACzoGE;EACE,6BAAA;AD4oGJ;;AEprGA;;;;EAAA;AAKC;;EAEC,YAAA;EACA,gBAAA;EACA,sEAAA;EACA,gBAAA;EACA,iCAAA;EACA,gBAAA;EACA,oBAAA;EACA,kBAAA;EACA,iBAAA;EACA,gBAAA;EAEA,gBAAA;EACA,cAAA;EACA,WAAA;EAEA,qBAAA;EACA,kBAAA;EACA,iBAAA;EACA,aAAA;AFqrGF;;AElrGC;;EAEC,0BAAA,EAAA,YAAA;AFqrGF;;AElrGC,gBAAA;AACA;EACC,oBAAA;EACA,mCAAA,EAAA,YAAA;EACA,qCAAA;EACA,eAAA;EACA,cAAA;EACA,YAAA;AFqrGF;;AElrGC;EACC,YAAA;EACA,6BAAA,EAAA,YAAA;AFqrGF;;AElrGC;EACC,WAAA;EACA,6BAAA,EAAA,YAAA;AFqrGF;;AElrGC,0BAAA;AACA;;EAEC,iBAAA;EACA,kCAAA,EAAA,YAAA;AFqrGF;;AElrGC;;EAEC,iBAAA;EACA,kCAAA,EAAA,YAAA;AFqrGF;;AElrGC,gBAAA;AACA;EACC,oBAAA;EACA,oCAAA,EAAA,YAAA;EACA,4CAAA;EACA,4BAAA;EACA,mBAAA;AFqrGF;;AElrGC;;;;EAIC,sBAAA,EAAA,YAAA;AFqrGF;;AElrGC;EACC,YAAA;AFqrGF;;AElrGC;EACC,YAAA;AFqrGF;;AElrGC;;;;EAIC,wBAAA,EAAA,YAAA;AFqrGF;;AElrGC;;;;;;EAMC,wBAAA,EAAA,YAAA;AFqrGF;;AElrGC;;;;;;;;;;;EAWC,wBAAA,EAAA,YAAA;AFqrGF;;AElrGC;EACC,yBAAA,EAAA,YAAA;AFqrGF;;AElrGC;;EAEC,wBAAA,EAAA,YAAA;AFqrGF;;AElrGC;;EAEC,iBAAA;AFqrGF;;AEnrGC;EACC,kBAAA;AFsrGF;;AEnrGC;EACC,YAAA;AFsrGF;;AEnrGC;EACC,sBAAA;EACA,kBAAA;AFsrGF;;AEnrGC,WAAA;AACA;;;EAGC,wBAAA,EAAA,YAAA;AFsrGF;;AEnrGC,kFAAA;AACA;EACC,kBAAA;EACA,UAAA;AFsrGF;;AEnrGC;EACC,kCAAA,EAAA,YAAA;EACA,qFAAA,EAAA,YAAA;EACA,yCAAA,EAAA,YAAA;EACA,sCAAA,EAAA,YAAA;EACA,OAAA;EACA,oBAAA;EACA,kBAAA,EAAA,iCAAA;EACA,kBAAA;EACA,oBAAA;EACA,kBAAA;EACA,QAAA;EACA,gBAAA;EACA,UAAA;AFsrGF;;AEnrGC;;EAEC,oCAAA,EAAA,YAAA;EACA,oBAAA;EACA,uBAAA;EACA,wBAAA,EAAA,YAAA;EACA,yBAAA;EACA,6BAAA;EACA,WAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,iBAAA;EACA,UAAA;EACA,qBAAA;AFsrGF;;AEnrGC;EACC,aAAA;EACA,uBAAA;EACA,SAAA;AFsrGF;;AGt3GA;EACE,iCAAA;EACA,eAAA;EACA,YAAA;EACA,iBAAA;EACA,mBAAA;EACA,aAAA;EACA,kBAAA;EACA,iBAAA;EACC,kCAAA;AHy3GH;;AGt3GA;EACI,cAAA;EACA,aAAA;EACA,kBAAA;AHy3GJ;;AGt3GA;EACI,WAAA;EACA,aAAA;EACA,mBAAA;EACA,kBAAA;EACA,YAAA;AHy3GJ;;AGt3GA;EACE,YAAA;EACA,mBAAA;EACA,aAAA;EACA,kBAAA;EACA,SAAA;EACA,iBAAA;EACA,WAAA;EACA,gBAAA;AHy3GF;AGv3GI;EACI,4BAAA;EACA,cAAA;AHy3GR;AGp3GI;EACI,aAAA;EACA,cAAA;AHs3GR;;AGh3GA,4BAAA;AAEA;EACE,WAAA;EACA,YAAA;EACA,mBAAA;EACA,cAAA;EACA,kBAAA;EACA,iBAAA;AHk3GF;;AG/2GA;EACE,YAAA;EACA,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,SAAA;EACA,eAAA;AHk3GF;;AG/2GA;EACE,iBAAA;EACA,WAAA;EACA,mBAAA;EACA,aAAA;EACA,kBAAA;EACA,SAAA;EACA,WAAA;AHk3GF;;AG/2GA,cAAA;AAEA;EACE,WAAA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;EACA,gBAAA;EACA,YAAA;AHi3GF;;AG92GA;EACE,mBAAA;AHi3GF;;AG92GA;EACE,mBAAA;AHi3GF;;AG92GA;EACE,mBAAA;AHi3GF;;AG92GA;EACE,aAAA;AHi3GF;;AG92GA;EACE,YAAA;EACA,MAAA;AHi3GF;;AG92GA;EACI,WAAA;EACA,iBAAA;EACA,aAAA;AHi3GJ;;AIz+GA;EACE,iBAAA;EACA,eAAA;EACA,aAAA;EACA,kBAAA;EACA,WAAA;EACA,gBAAA;EACA,iBAAA;EACA,UAAA;EACA,kBAAA;EACA,kBAAA;EACA,2BAAA;EACA,gBAAA;EACA,OAAA;EACA,MAAA;EACA,oBAAA;EACA,kBAAA;EACA,yBAAA;AJ4+GF;;AIz+GA;EACE,kBAAA;EACA,UAAA;EACA,WAAA;EACA,WAAA;EACA,0BAAA;EACA,yBAAA;EACA,WAAA;EACA,wBAAA;EACA,kBAAA;AJ4+GF;;AKxgHA;EACE,2BAAA;AL2gHF;;AKxgHA,0BAAA;AACA;EACE,+GAAA;AL2gHF;;AKxgHA;EACE,+GAAA;AL2gHF;;AKvgHA,0BAAA;AACA;EACE,gHAAA;AL0gHF;;AKtgHA,2BAAA;AACA;EACE,qHAAA;ALygHF;;AKrgHA,mBAAA;AACA;EACE,uHAAA;ALwgHF;;AKpgHA,mBAAA;AACA;EACE,wHAAA;ALugHF;;AKngHA,mBAAA;AACA;EACI,yGACA;ALqgHJ;;AKhgHA;EACE,4BAAA;ALmgHF;AKjgHE;EACE,6EAAA;ALmgHJ;;AMrjHA;;;;;;;EAAA;AAUA;EACE,kBAAA;EACA,eAAA;EACA,qBAAA;EACA,gBAAA;EACA,iBAAA;EACA,wCAAA;EACA,sBAAA;EACA,UAAA;EACA,yBAAA;ANsjHF;AMpjHE;EACE,kBAAA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;EACA,UAAA;EAEA,8BAAA;EACA,6BAAA;EACA,uCAAA;EACA,mBAAA;EACA,oBAAA;ANqjHJ;AMjjHE;EACE,2CAAA;ANmjHJ;AMjjHE;EACE,wCAAA;ANmjHJ;AMjjHE;EACE,yCAAA;ANmjHJ;AMjjHE;EACE,wCAAA;ANmjHJ;AMjjHE;EACE,yCAAA;ANmjHJ;AMjjHE;EACE,wCAAA;ANmjHJ;AMjjHE;EACE,wCAAA;ANmjHJ;AM/iHE;EACE,SAAA;EACA,kBAAA;EACA,kBAAA;EACA,uBAAA;EACA,gBAAA;ANijHJ;AM9iHE;EACE,kBAAA;EACA,WAAA;ANgjHJ;;AM5iHA;EACE,2BAAA;AN+iHF;;AM5iHA;EACE,wBAAA;EACA,2EAAA;AN+iHF;;AM5iHA;EACE,oBAAA;EACA,sBAAA;AN+iHF;AM7iHE;EACE,kBAAA;EACA,MAAA;EACA,OAAA;EACA,UAAA;AN+iHJ;;AM3iHA;EACE,kBAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,kBAAA;EACA,wBAAA;AN8iHF;;AM3iHA;EACE,cAAA;AN8iHF;;AM3iHA,oCAAA;AACA;EACE,WAAA;AN8iHF;;AO9pHA;EAQE,eAAA;EACA,OAAA;EACA,QAAA;EACA,yBAAA;EACA,UAAA;EACA,eAAA;EACA,UAAA;EACA,YAAA;EACA,gBAAA;EAEA,kBAAA;EACA,yBAAA;APypHF;AO3qHE;EACE,aAAA;AP6qHJ;AO1pHE;EArBF;IAsBG,UAAA;EP6pHD;AACF;AO3pHE;EACE,aAAA;AP6pHJ;AO1pHE;EACE,aAAA;AP4pHJ;AO1pHE;EACE,eAAA;AP4pHJ;AOzpHE;EACE,0BAAA;EACA,yBAAA;EACA,gBAAA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;AP2pHJ;AOzpHI;EACE,aAAA;AP2pHN;AOxpHE;EACE,0BAAA;EACA,yBAAA;EACA,gBAAA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;AP0pHJ;AOxpHI;EACE,aAAA;AP0pHN;;AOtpHA;EACE,eAAA;EACA,YAAA;EACA,SAAA;EACA,OAAA;EACA,SAAA;EACA,QAAA;EACA,YAAA;EACA,WAAA;EACA,gBAAA;EACA,aAAA;EAEA,oBAAA;APwpHF;;AOppHA;EACE,UAAA;EACA,WAAA;APupHF;AOrpHE;EACE,kBAAA;EACA,yBAAA;EACA,gBAAA;EACA,WAAA;EACA,gBAAA;APupHJ;AOppHE;EACE,wCAAA;EACA,kBAAA;EACA,SAAA;APspHJ;;AOjpHA;EACE,SAAA;EACA,aAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA,gBAAA;EACA,4BAAA;APopHF;;AQ5vHA;;;EAGE,SAAA;EACA,YAAA;AR+vHF;;AQ3vHA;EACE,SAAA;EACA,UAAA;EACA,sBAAA;AR8vHF;;AQ3vHA;EACE,2BAAA,EAAA,eAAA;EACA,yBAAA,EAAA,WAAA;EACA,wBAAA,EAAA,mBAAA;EACA,sBAAA,EAAA,4BAAA;EACA,qBAAA,EAAA,2BAAA;EACA,iBAAA;EACA;iFAAA;AR+vHF;;AQ1vHE;EACE,eAAA;EACA,qBAAA;AR6vHJ;AQ3vHI;EACE,qBAAA;AR6vHN;;AQxvHA;EACC,cC7BY;ED8BZ,qBAAA;EAGC,wCAAA;ARyvHF;;AQtvHA;EACE,WAAA;ARyvHF;;AQtvHA;EACE,iBAAA;ARyvHF;;AQvvHA;EACE,kBAAA;AR0vHF;;AQvvHA;EACE,aAAA;EACA,mBAAA;AR0vHF;;AQtvHA;EACE,mBAAA;ARyvHF;;AQpvHA;EACE,2CAAA;EACA,yBAAA;EACA,kBAAA;EACA,gBAAA;EACA,kBAAA;ARuvHF;AQtvHE;EACE,sBCoKkB;EDnKlB,mBCwKqB;EDvKrB,kBAAA;EACA,SAAA;EACA,gCAAA;ARwvHJ;AQrvHM;EACE,sBC+JoB;ATwlH5B;AQlvHI;EACE,gBAAA;EACA,kBAAA;EACA,kBAAA;ARovHN;AQhvHM;;EAEE,kBAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,UAAA;EACA,qBAAA;EACA,sBAAA;ARkvHR;AQ/uHM;EACE,eAAA;EACA,iBAAA;EACA,WAAA;EACA,sBAAA;EACA,kBAAA;ARivHR;AQ7uHM;EACE,eAAA;AR+uHR;AQ5uHM;EACE,SAAA;AR8uHR;AQ3uHM;EACE,kBAAA;EACA,SAAA;EACA,WAAA;AR6uHR;AQvuHI;EACE,mBAAA;ARyuHN;AQtuHI;EACE,yBCnIY;EDoIZ,kCCuGoB;ATioH1B;AQtuHM;EACE,WAAA;ARwuHR;AQnuHE;EACE,cAAA;EACA,iBAAA;EACA,cC/Ic;ATo3HlB;AQluHM;EACE,sBCyFoB;AT2oH5B;AQ9tHI;EACE,sBC+EgB;ED9EhB,gCAAA;EACA,kBAAA;ARguHN;AQ7tHI;EACE,kBAAA;AR+tHN;AQ5tHI;EACE,kBAAA;AR8tHN;;AQvtHA;EACE,YAAA;EACA,cC7KgB;ATu4HlB;;AQvtHA;EACE,SAAA;EACA,YAAA;AR0tHF;;AQttHA;EACE,eAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,aAAA;EACA,YAAA;EACA,sBAAA;EACA,oCAAA;EACA,YAAA;EACA,aAAA;EACA,uBAAA;ARytHF;AQvtHE;EACE,gBAAA;ARytHJ;AQxtHI;EACE,gBAAA;AR0tHN;;AQ3sHA;;sBAAA;AAIE;EADF;IAEI,wBAAA;ER8sHF;AACF;;AQ3sHE;EADF;IAEI,wBAAA;ER+sHF;AACF;;AQ5sHE;EADF;IAEI,wBAAA;ERgtHF;AACF;;AQ7sHE;EADF;IAEI,wBAAA;ERitHF;AACF;;AQ9sHE;EADF;IAEI,wBAAA;ERktHF;AACF;;AQ/sHE;EADF;IAEI,wBAAA;ERmtHF;AACF;;AQhtHE;EADF;IAEI,yBAAA;ERotHF;AACF;;AQjtHE;EADF;IAEI,yBAAA;ERqtHF;AACF;;AQltHE;EADF;IAEI,yBAAA;ERstHF;AACF;;AQntHE;EADF;IAEI,yBAAA;ERutHF;AACF;;AQptHE;EADF;IAEI,yBAAA;ERwtHF;AACF;;AQrtHE;EADF;IAEI,yBAAA;ERytHF;AACF;;AQntHE;EADF;IAEI,kBAAA;ERutHF;AACF;;AQ7sHA;;mBAAA;AAIA;EACE,wBAAA;AR+sHF;;AQ3sHA;EACE,gBAAA;AR8sHF;;AQ5sHA;EACE,iBAAA;AR+sHF;;AQ7sHA;EACE,kBAAA;ARgtHF;;AQ7sHA;EACE,sBAAA;ARgtHF;;AQ9sHA;EACE,uBAAA;ARitHF;;AQ7sHA;EACE,iBAAA;ARgtHF;;AQ7sHA;EACE,kBAAA;ARgtHF;;AQ7sHA;EACE,cAAA;EACA,iBAAA;EACA,kBAAA;ARgtHF;;AQ7sHA;EACE,cAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;ARgtHF;;AQ7sHA;EACE,qBAAA;ARgtHF;;AUziIA;EACE,eAAA;EACA,cAAA;EACA,iBAAA;EACA,kBAAA;EACA,eAAA;EACA,iBDSa;ECRb,YDQa;ECPb,cAAA;EACA,YAAA;EACA,sBAAA;AV4iIF;AU1iIE;EACE,gBAAA;EACA,iBAAA;EACA,WAAA;EACA,yBDZc;ECad,kBAAA;AV4iIJ;AUziIE;EACE,eAAA;AV2iIJ;AUxiIE;EACE,qCAAA;AV0iIJ;;AUriIA;EACE,qBAAA;EACA,WAAA;EACA,gBAAA;EACA,iBDnBa;ECoBb,YDpBa;ECqBb,4BAAA;AVwiIF;;AUpiIA;EACE,gCAAA;AVuiIF;;AUpiIA;EACE,iBAAA;AVuiIF;;AUpiIA;EACE,kBAAA;AVuiIF;;AUpiIA;EACE,qBAAA;EACA,WAAA;EACA,iBAAA;AVuiIF;;AW/lIA;EAOE,qBAAA;EACA,YAAA;EACA,eAAA;EACA,gBAAA;EACA,yBAAA;EACA,iBAAA;EACA,eAAA;EACA,mBAAA;EACA,yBFQc;EEPd,kBFUY;EETZ,iBFSY;ATmlId;AW5mIE;EACE,aAAA;EACA,yBFsBkB;EErBlB,WAAA;AX8mIJ;AW/lIE;EACE,WAAA;EACA,qBAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;AXimIJ;AW9lIE;EACE,eAAA;EACA,YAAA;EACA,eAAA;EACA,iBAAA;EACA,iBAAA;AXgmIJ;;AW5lIA;EACE,YAAA;EACA,gCAAA;EACA,gBAAA;EACA,iBF4Ba;EE3Bb,gBAAA;EACA,aAAA;EACA,oBAAA;AX+lIF;AW7lIE;EACE,gCAAA;EACA,6BAAA;AX+lIJ;AW5lIE;EACE,YAAA;AX8lIJ;AW3lIE;EACE,gBAAA;EACA,SAAA;EACA,yBAAA;EACA,qBAAA;EACA,eFOc;EENd,YFfW;EEgBX,iBAAA;EACA,UAAA;EACA,SAAA;EACA,qBAAA;EACA,uBAAA;AX6lIJ;AW1lIE;EACE,oBAAA;EACA,2BAAA;AX4lIJ;AWxlIE;EACE,aAAA;EACA,gBAAA;AX0lIJ;;AWrlIA;EACE,iBAAA;EACA,UAAA;EACA,wBAAA;AXwlIF;;AWtlIA;EACE,iBAAA;EACA,4BAAA;AXylIF;;AYjrIA;EACE,0BAAA;EACA,4BAAA;EACA,2BAAA;EACA,2CAAA;AZorIF;;AYhrIA;EAKE,aAAA;EACA,eAAA;EACA,wCAAA;EACA,gBAAA;EACA,aAAA;EACA,sBHkCyB;EGjCzB,6BAAA;AZ+qIF;AYzrIE;EACE,UAAA;AZ2rIJ;AYhrIE;EACE,WAAA;EACA,iBAAA;EACA,qBAAA;EACA,kBAAA;EACA,kBAAA;AZkrIJ;;AY/qIA;EACE,sBAAA;AZkrIF;;AY/qIA;EACE,aAAA;EACA,6BAAA;EACA,sBAAA;EACA,aAAA;AZkrIF;;AY3qIE;;EACE,YAAA;EACA,gBAAA;AZ+qIJ;AY7qII;;EAAK,UAAA;AZirIT;AY9qIE;;EACE,6BAAA;EACA,YAAA;EACA,oBAAA;EACA,eAAA;EACA,eAAA;AZirIJ;AY/qII;;EAAU,qCAAA;AZmrId;AYlrII;;EAAI,oBAAA;AZsrIR;AYnrIE;;EACE,SAAA;EACA,sBHZuB;ATksI3B;AYprII;;EACE,wBAAA;AZurIN;;AY9qIA;EACE,YAAA;EACA,gBAAA;AZirIF;AYhrIE;EACE,6EAAA;EAEA,cAAA;EACA,6DAAA;AZirIJ;AY/qIE;EACE,8EAAA;EACA,cAAA;AZirIJ;;Aa3vIA;EACI,2CAAA;EACA,yBAAA;EACA,kBAAA;EACA,gBAAA;EACA,kBAAA;Ab8vIJ;Aa5vII;EACE,sBJyNgB;EIxNhB,mBJ6NmB;EI5NnB,kBAAA;EACA,SAAA;EACA,gCAAA;Ab8vIN;Aa3vIM;EACE,gBAAA;EACA,kBAAA;EACA,kBAAA;Ab6vIR;Aa1vIQ;;EAEE,kBAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,UAAA;EACA,qBAAA;EACA,sBAAA;Ab4vIV;Aa1vIQ;EACE,eAAA;EACA,iBAAA;EACA,WAAA;EACA,sBAAA;EACA,kBAAA;Ab4vIV;AaxvIQ;EACE,eAAA;Ab0vIV;AavvIQ;EACE,SAAA;AbyvIV;AatvIQ;EACE,kBAAA;EACA,SAAA;EACA,WAAA;AbwvIV;AalvIM;EACE,mBAAA;AbovIR;AajvIM;EACE,yBJtEU;EIuEV,kCJoKkB;AT+kI1B;AajvIQ;EACE,WAAA;AbmvIV;Aa/uII;EACE,cAAA;EACA,iBAAA;EACA,cJjFY;ATk0IlB;Aa/uIQ;EACE,sBJwJkB;ATylI5B;Aa3uIM;EACE,sBJ8Ic;EI7Id,gCAAA;EACA,kBAAA;Ab6uIR;Aa3uIM;EACE,kBAAA;Ab6uIR;Aa3uIM;EACE,kBAAA;Ab6uIR;Aa1uII;EACE,YAAA;EACA,cJxGY;ATo1IlB;;Acx1IA;EACE,8CLyFa;ATkwIf;;Acx1IA;EACE,aAAA;EACA,yCL4KwB;AT+qI1B;;Acx1IA;EACE,iBL2DgB;EK1DhB,cLgDmB;AT2yIrB;;Aev2IA;+EAAA;AAGA,uBAAA;AAEA;EACE,cNsEuB;ATkyIzB;;Aer2IA,gBAAA;AAEA;;;;;;;;;;;;;EAeE,6BAAA;EACA,YAAA;EACA,gCNiCa;EMhCb,gBAAA;EACA,aAAA;EACA,YNca;EMbb,WAAA;EACA,eNiCgB;EMhChB,iBNkCa;EMjCb,UNkCc;EMjCd,gBAAA;EACA,uBAAA;EACA,wCAAA;Afq2IF;Ael2IE;;;;;;;;;;;;;;;;;;;;;;;;;EAEE,0BN4BmB;EM3BnB,6CN6BoB;AT81IxB;Aev3IE;;;;;;;;;;;;;;;;;;;;;;;;;EAEE,0BNqBmB;AT23IvB;Ae54IE;;;;;;;;;;;;;EACE,gCAAA;EACA,6BAAA;Af05IJ;Aet5IE;;;;;;;;;;;;;EACE,cNxDc;AT49IlB;Ae94IE;;;;;;;;;;;;;EACE,cN9EY;AT0+IhB;Ae94IE;;;;;;;;;;;;;EACE,cN5FU;ATw/Id;Aex5IE;;;;;;;;;;;;;EACE,WAAA;Afs6IJ;Ae55IA,iCAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;EACE,gCAAA;EACA,6BAAA;Afs7IF;;Aep7IA;;;;;;;;;;;;;;;;;;;;;;;;;EACE,gCN9CqB;EM+CrB,6BAAA;Af+8IF;;Ae78IA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EACE,kBAAA;EACA,iBAAA;EACA,oBAAA;AfggJF;;Ae9/IA;;;;;;;;;;;;;;;;;;;;;;;;;EACE,2BAAA;EACA,cN5Hc;ATqpJhB;;AevhJA;;;;;;;;;;;;;;;;;;;;;;;;;EACE,yBAAA;EACA,cN/HY;ATirJd;;AehjJA;;;;;;;;;;;;;EACE,cAAA;EACA,WAAA;EACA,kBAAA;EACA,SAAA;EACA,OAAA;EACA,UAAA;EACA,sDAAA;Af+jJF;;Ae1jJA;EAyBE,kBAAA;EACA,gBAAA;EACA,mBAAA;AfqiJF;Ae9jJE;EACE,qBAAA;EACA,sBAAA;EACA,gBAAA;AfgkJJ;Ae9jJI;;EAEE,mBAAA;AfgkJN;Ae1jJI;EACE,YAAA;Af4jJN;AezjJI;;EAEE,+BAAA;Af2jJN;AenjJE;EACE,cNtHiB;EMuHjB,kBAAA;EACA,MAAA;EACA,OAAA;EACA,eAAA;EACA,YAAA;EACA,wDAAA;EACA,yBAAA;EACA,mBAAA;EACA,2BAAA;AfqjJJ;AenjJI;EACE,uCAAA;EACA,qBAAA;AfqjJN;AehjJE;EAGE,uCAAA;EACA,qBAAA;AfgjJJ;Ae7iJE;EAQE,kBAAA;EACA,gBAAA;EACA,cAAA;EACA,eAAA;EACA,0BAAA;AfwiJJ;AenjJI;EACE,UAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;AfqjJN;Ae1iJE;EACE,kBAAA;EACA,WNhLW;EMiLX,eNnJc;EMoJd,sBAAA;Af4iJJ;AeziJI;EAAW,cN7NG;ATywJlB;AeziJE;;;;;;EAME,iBAAA;EACA,UAAA;EACA,wBAAA;Af2iJJ;AexiJE;EAAkB,iBAAA;Af2iJpB;AeziJE;EACE;IACE,UAAA;IACA,wBAAA;Ef2iJJ;AACF;AexiJE;EACE;IACE,UAAA;IACA,wBAAA;Ef0iJJ;AACF;;AeriJA,iBAAA;AAEA;EACE,cAAA;EACA,oBAAA;EACA,iCAAA;AfuiJF;AeriJE;EACE,eAAA;EACA,kBAAA;EACA,wBAAA;EACA,SAAA;EACA,gBAAA;AfuiJJ;AepiJE;EACE,sBNpNe;EMqNf,SAAA;EACA,gBAAA;EACA,WAAA;AfsiJJ;AepiJI;EAGE,WAAA;AfoiJN;AehiJE;EACE,eAAA;EACA,UAAA;AfkiJJ;Ae/hJE;EAEE,kBAAA;EACA,MAAA;EACA,WAAA;EACA,kBAAA;EACA,eAAA;EACA,eN/Nc;EMgOd,sBAAA;AfgiJJ;;Ae3hJA,aAAA;AAGA;EACE,WAAA;EACA,YNxQa;EMyQb,6BAAA;Af4hJF;Ae1hJE;EACE,mBAAA;EACA,kBAAA,EAAA,8BAAA;EACA,0BAAA,EAAA,yCAAA;EACA,YAAA;EACA,gBNhRW;EMiRX,sBAAA;Af4hJJ;;AethJA;EACE,kBAAA;EACA,qBAAA;EACA,qBAAA;EACA,yBAAA,EAAA,6CAAA;EACA,mBAAA,EAAA,yCAAA;EAGA,kBAAA;EACA,MAAA;EACA,WAAA;AfuhJF;;AenhJA,iBAAA;AAGI;EAAa,WAAA;AfqhJjB;AenhJI;EAGE,gBAAA;AfmhJN;;Ae9gJA,sBAAA;AACA;EACE,gBAAA;AfihJF;;AgBl3JA;+EAAA;AAIA;;EAEE,kBAAA;EACA,UAAA;EACA,oBAAA;AhBm3JF;;AgBh3JA;;EAEE,kBAAA;EACA,kBAAA;EACA,eAAA;EACA,qBAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,sBAAA;EACA,iBAAA;AhBm3JF;;AgBh3JA;;EAEE,WAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,sBAAA;AhBm3JF;;AgBh3JA,qBAAA;AACA;;;;;;EAME,kBAAA;AhBm3JF;;AgBh3JA;;EAEE,yBAAA;AhBm3JF;;AgBh3JA;EACE,mBAAA;AhBm3JF;;AgBh3JA,mBAAA;AACA;EACE,6BAAA;AhBm3JF;;AgBh3JA;;;EAGE,yBPiBa;ATk2Jf;;AgBh3JA;;EAEE,yBPhEgB;ATm7JlB;;AgBh3JA;EACE,sBAAA;AhBm3JF;;AgBh3JA,mBAAA;AACA;EACE,qBAAA;AhBm3JF;;AgBh3JA,mBAAA;AACA;EACE,yCAAA;AhBm3JF;;AgBh3JA,4BAAA;AACA;EACE,qCAAA;AhBm3JF;;AgBh3JA;EACE,YAAA;EACA,qCPtBqB;ATy4JvB;;AgBh3JA,mBAAA;AACA;;EAEE,6BAAA;EACA,iCP7BqB;ATg5JvB;;AgBh3JA;EACE,0BPjCqB;ATo5JvB;;AgBh3JA;EACE,iCPrCqB;ATw5JvB;;AgBh3JA;EACE,qCPzCqB;EO0CrB,qBPzC2B;AT45J7B;;AiBp+JA;+EAAA;AAGA,4BAAA;AACA;;EAEE,kBAAA;EACA,UAAA;EACA,oBAAA;AjBs+JF;;AiBl+JA;EAaE,oBAAA;AjBy9JF;AiBp+JE;EACE,kBAAA;EACA,kBAAA;EACA,eAAA;EACA,qBAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,iBAAA;AjBs+JJ;AiBl+JE;EAEE,WAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,yBAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;AjBm+JJ;AiBh+JE;EACE,SAAA;EACA,mBAAA;AjBk+JJ;AiB/9JE;EACE,YAAA;EACA,qCRuBmB;AT08JvB;AiB79JE;EACE,mBAAA;EACA,SAAA;EACA,kBAAA;EACA,yCAAA;EACA,oCAAA;AjB+9JJ;;AiB19JE;EACE,SAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,iCAAA;EACA,kCAAA;EACA,+BRYW;EQXX,gCRWW;EQVX,wBAAA;EACA,2BAAA;EACA,2BAAA;AjB69JJ;AiB19JE;EACE,2CAAA;EACA,4CAAA;AjB49JJ;;AiBx9JA,2BAAA;AAEE;EACE,UAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,iBAAA;EACA,+BRVW;EQWX,mBAAA;EACA,wBAAA;EACA,2BAAA;EACA,2BAAA;AjB09JJ;AiBt9JE;EACE,2CAAA;EACA,6BAAA;AjBw9JJ;;AiBj9JE;EACE,kBAAA;AjBo9JJ;AiBj9JE;;EAEE,WAAA;EACA,OAAA;EACA,kBAAA;EACA,qCAAA;EACA,kHAAA;EACA,UAAA;AjBm9JJ;AiB/8JE;EACE,QAAA;EACA,SAAA;EACA,6BAAA;EACA,SAAA;EACA,SAAA;EACA,yBAAA;EACA,2BAAA;AjBi9JJ;AiB98JE;EACE,YAAA;EACA,WAAA;EACA,6BAAA;EACA,yBAAA;EACA,QAAA;EACA,UAAA;AjBg9JJ;AiB38JI;EACE,MAAA;EACA,SAAA;EACA,UAAA;EACA,YAAA;EACA,iCAAA;EACA,kCAAA;EACA,4BAAA;EACA,6BAAA;EACA,yBAAA;EACA,2BAAA;AjB68JN;AiB18JI;EACE,MAAA;EACA,WAAA;EACA,YAAA;EACA,yBAAA;EACA,yBR7JY;EQ8JZ,UAAA;AjB48JN;AiBv8JE;EACE,kBAAA;EACA,qBR1FgB;EQ2FhB,oCAAA;AjBy8JJ;AiBt8JE;EACE,kBAAA;EACA,yBR3Kc;EQ4Kd,qBR5Kc;ATonKlB;AiBp8JE;EACE,6BAAA;EACA,6BAAA;AjBs8JJ;AiBn8JE;EACE,yBAAA;EACA,yBRpHyB;ATyjK7B;AiBl8JE;EACE,6BAAA;AjBo8JJ;AiBj8JE;EACE,yBR5HyB;EQ6HzB,qBR7HyB;ATgkK7B;;AkBxoKA;+EAAA;AAGA;;EAEE,wCAAA;EACA,iBAAA;AlB0oKF;;AkBvoKA;EACE,eAAA;AlB0oKF;;AkBvoKA;EACE,UAAA;EACA,QAAA;EACA,SAAA;AlB0oKF;AkBxoKE;EACE,uDTkFsB;ATwjK1B;AkBxoKI;EACE,UAAA;AlB0oKN;AkBvoKI;EACE,yBTrBY;AT8pKlB;;AkBpoKA;EACE,WAAA;EACA,qBAAA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,qCTkE0B;ESjE1B,mBTkEc;EShEd,gCAAA;EACA,sBAAA;EACA,cAAA;AlBsoKF;AkBpoKE;EACE,WAAA;EACA,kBAAA;EACA,qBAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,OAAA;EACA,SAAA;EACA,2FAAA;AlBsoKJ;AkBnoKE;EACE,0CAAA;AlBqoKJ;AkBloKE;EACE,yBTyCkB;ESxClB,yHAAA;AlBooKJ;;AkB/nKA;;EAEE,qBAAA;EACA,0CAAA;AlBkoKF;;AkB/nKA;;EAEE,qBAAA;EACA,qCAAA;AlBkoKF;;AkB9nKA;EACE,eAAA;EACA,qCAAA;AlBioKF;;AkB9nKA;;EAEE,yBTf2B;ATgpK7B;;AmBxtKA;+EAAA;AAGA;EAAS,aAAA;AnB2tKT;;AmB1tKA;EAAyB,cAAA;AnB8tKzB;;AmB5tKA;EACE,0CVmFkB;EUlFlB,WAAA;EACA,YVsFe;EUrFf,yBV+Ec;EU9Ed,kBVqFc;EUpFd,YViCa;AT8rKf;;AmB5tKA;EACE,kBAAA;AnB+tKF;;AmB5tKA;EAqCE,kBAAA;AnB2rKF;AmBrsKE;EAEE,WAAA;EACA,oBAAA;AnBssKJ;AmB7rKE;EAIE,kBAAA;EACA,eAAA;EACA,6BAAA;EACA,YAAA;EACA,gCVLW;EUMX,aAAA;EACA,YVvBW;EUwBX,iBVxBW;EUyBX,WAAA;EACA,eVLc;EUMd,iBVJW;EUKX,UAAA;EACA,cAAA;EACA,iBAAA;EACA,UAAA;AnB4rKJ;AmB7sKI;EACE,gCAAA;AnB+sKN;AmB5rKE;EACE,kBAAA;EACA,QAAA;EACA,MAAA;EACA,SAAA;EACA,cAAA;EACA,UAAA;EACA,yBAAA;AnB8rKJ;AmB3rKE;EACE,kBAAA;EACA,UAAA;EACA,iBVtBc;ATmtKlB;;AmBxrKA;EACE,0BV3BqB;ATstKvB;;AmBvrKE;EACE,0BVhCmB;AT0tKvB;AmBxrKE;EACE,yBVnCmB;AT6tKvB;;AmBtrKA;EACE,0BVxCqB;EUyCrB,eAAA;EACA,iBAAA;AnByrKF;;AmBtrKA;EACE,yBVpBsB;AT6sKxB;;AmBtrKA;;;EAGE,yBV1BsB;EU2BtB,6BAAA;AnByrKF;;AmBrrKE;EACE,qCVpCkB;AT4tKtB;;AmBlrKI;EACE,qCV5CgB;ATiuKtB;AmBlrKI;EACE,qCV9CmB;ATkuKzB;;AmB9qKA;EACE,iBAAA;EACA,UAAA;EACA,wBAAA;AnBirKF;;AmB9qKA;EAAkB,iBAAA;AnBkrKlB;;AmB9qKE;EAGE,gBAAA;EACA,YAAA;AnB+qKJ;;AmBvqKE;EACE,yBAAA;AnB0qKJ;AmBvqKE;EACE,yBAAA;AnByqKJ;AmBtqKE;EACE,kBAAA;AnBwqKJ;;AoBz1KA;+EAAA;AAGA;EACE,kBAAA;ApB21KF;AoBz1KE;EACE,gBAAA;EACA,kBAAA;ApB21KJ;AoBx1KE;EAAkB,WAAA;ApB21KpB;AoBz1KE;EACE,WAAA;EACA,YX8BW;EW7BX,iBX6BW;AT8zKf;AoBx1KE;EACE,eAAA;ApB01KJ;AoBv1KE;EAOE,kBAAA;EACA,MAAA;EACA,QAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,SAAA;EACA,UAAA;EACA,eAAA;EACA,eAAA;EACA,UAAA;EACA,wBAAA;ApBm1KJ;AoBl2KI;EACE,aAAA;ApBo2KN;;AqB/3KA;+EAAA;AAGA;EACE,kBAAA;ArBi4KF;;AqB93KA;;EAGE,eAAA;ArBg4KF;;AqB73KA;EACE,kBAAA;EACA,6BAAA;EACA,YAAA;EACA,aAAA;EACA,WAAA;EACA,cAAA;EACA,UAAA;ArBg4KF;AqB93KE;EACE,aAAA;ArBg4KJ;;AqB53KA;EACE,kBAAA;EACA,SAAA;EACA,OAAA;EACA,YAAA;EACA,SAAA;EACA,QAAA;EACA,kBAAA;EACA,yBZ9BgB;EY+BhB,gBAAA;EAEA,yBAAA;EACA,yBAAA;ArB83KF;AqB53KE;EACE,cAAA;EACA,WAAA;EACA,kBAAA;EACA,cZxCc;EYyCd,YAAA;EACA,wBAAA;ArB83KJ;AqB33KE;EACE,4BAAA;ArB63KJ;AqB33KI;EACE,WZQa;EYPb,iBAAA;EACA,eAAA;EACA,eAAA;ArB63KN;;AqBv2KA;EACE,wBAAA;ArB02KF;;AqBv2KA;EAnBE,WZsBa;EYrBb,mBAAA;EACA,YAAA;ArB83KF;;AqBz2KA;EAjBE,YAAA;EACA,YZaa;EYZb,WZaY;EYZZ,kBAAA;EACA,mBZrEgB;EYsEhB,2BAAA;EAcA,wBAAA;EACA,yBZrFgB;EYsFhB,yBAAA;EACA,kBAAA;ArBi3KF;;AqB72KA;EACE,+CAAA;ArBg3KF;;AqB52KA;EACE,gDAAA;EACA,uBAAA;EAEA,yCAAA;ArB82KF;;AqB32KA;EA5CE,WZsBa;EYrBb,mBAAA;EACA,YAAA;ArB25KF;;AqB72KA;EACE,SAAA;ArBg3KF;;AqB72KA;EA9CE,YAAA;EACA,YZaa;EYZb,WZaY;EYZZ,kBAAA;EACA,mBZrEgB;EYsEhB,2BAAA;EA2CA,gBAAA;ArBq3KF;;AqBj3KA;EACE,uBAAA;EACA,oBAAA;ArBo3KF;;AqBj3KA;EACE,+CAAA;ArBo3KF;;AqBh3KA;EACE,WZ/Ca;EYkDb,uBAAA;EAGA,yBAAA;EACA,mBAAA;EAEA,4BAAA;EACA,kBAAA;ArB82KF;;AqB32KA;EACE,gBAAA;ArB82KF;;AqB32KA;EACE,gBAAA;ArB82KF;;AqB32KA;EApFE,YAAA;EACA,YZaa;EYZb,WZaY;EYZZ,kBAAA;EACA,mBZrEgB;EYsEhB,2BAAA;ArBm8KF;;AqBh3KA;EACE,+CAAA;ArBm3KF;;AsBlhLA;EAEE,0BAAA;EACA,iBAAA;EAEA,yCAAA;EACA,4BAAA;EACA,2BAAA;EACA,4BAAA;EACA,sBAAA;AtBmhLF;;AuB3hLA;EAAI,sBAAA;AvB+hLJ;;AuB7hLA;EAAO,uBAAA;AvBiiLP;;AuB/hLA;EACE,YANW;EAOX,aAPW;EAQX,sBAAA;EACA,YAAA;EACA,kBAAA;AvBkiLF;;AuB/hLA;EACE,YAdW;EAeX,aAfW;EAgBX,kBAAA;EACA,4BAAA;EACA,6BAAA;EACA,wBAAA;AvBkiLF;;AuB/hLA;EAAoB,0CAAA;AvBmiLpB;;AuBliLA;EAAoB,4CAAA;AvBsiLpB;;AuBriLA;EAAoB,6CAAA;AvByiLpB;;AuBxiLA;EAAoB,2CAAA;AvB4iLpB;;AuB3iLA;EAAoB,4CAAA;AvB+iLpB;;AuB9iLA;EAAoB,2CAAA;AvBkjLpB;;AuBhjLA;EACE,kBAAA;EACA,YA/BW;EAgCX,aAhCW;EAiCX,uBAAA;EACA,kBAlCW;EAmCX,eAAA;EACA,iBAAA;EACA,YAAA;EACA,kBAAA;AvBmjLF;;AuBhjLA;EAAsB,mCAAA;AvBojLtB;;AuBnjLA;EAAsB,oCAAA;AvBujLtB;;AuBtjLA;EAAsB,qCAAA;AvB0jLtB;;AuBzjLA;EAAsB,qCAAA;AvB6jLtB;;AuB5jLA;EAAsB,qCAAA;AvBgkLtB;;AuB/jLA;EAAsB,qCAAA;AvBmkLtB;;AuBjkLA;EAAsB,0CAAA;AvBqkLtB;;AuBpkLA;EAAsB,2CAAA;AvBwkLtB;;AuBvkLA;EAAsB,4CAAA;AvB2kLtB;;AuB1kLA;EAAsB,4CAAA;AvB8kLtB;;AuB7kLA;EAAsB,2CAAA;AvBilLtB;;AuBhlLA;EAAsB,4CAAA;AvBolLtB;;AuBllLA;EAAQ,kBAAA;AvBslLR;;AwB5oLA;EACE,cAAA;EACA,iBAAA;EACA,UAAA;AxB+oLF;;AwB7oLA;EACE;IACE,UAAA;ExBgpLF;AACF;AwB9oLA;EACE;IACE,UAAA;ExBgpLF;AACF;AwB9oLA;EACE,oBAAA;EACA,qBAAA;AxBgpLF;;AwB7oLA;EACE,iBAAA;EACA,oBAAA;AxBgpLF;AwB9oLE;EACE,UAAA;AxBgpLJ;AwB9oLE;EACE,iBAAA;AxBgpLJ;AwB9oLE;EACE,cAAA;AxBgpLJ;;AwBxnLA;EACE,iBAAA;EACA,kBAAA;EACA,mBAAA;AxB2nLF;AwBxnLE;EACE,WAAA;EACA,cAAA;EACA,WAAA;AxB0nLJ;AwBvnLE;EACE,WAAA;EACA,sBAAA;EACA,iBAAA;EACA,eAAA;AxBynLJ;AwBvnLI;EAEE,kBAAA;AxBwnLN;AwBlnLM;EACE,oBAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxBiqLF;AwBxnLM;EACE,qBAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxBuqLF;AwB9nLM;EACE,UAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxB6qLF;AwBpoLM;EACE,qBAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxBmrLF;AwB1oLM;EACE,qBAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxByrLF;AwBhpLM;EACE,UAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxB+rLF;AwBtpLM;EACE,qBAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxBqsLF;AwB5pLM;EACE,qBAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxB2sLF;AwBlqLM;EACE,UAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxBitLF;AwBxqLM;EACE,qBAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxButLF;AwB9qLM;EACE,qBAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxB6tLF;AwBprLM;EACE,WAFK;EA1CX,iBAAA;EACA,UAAA;EACA,WAAA;AxBmuLF;AwBhuLE;EACE,0BA8CS;AxBorLb;AwBhuLE;EACE,oBA2CS;AxBurLb;AwBhuLE;EACE,mBAwCS;AxB0rLb;AwBzuLE;EACE,2BA8CS;AxB6rLb;AwBzuLE;EACE,qBA2CS;AxBgsLb;AwBzuLE;EACE,oBAwCS;AxBmsLb;AwBlvLE;EACE,gBA8CS;AxBssLb;AwBlvLE;EACE,UA2CS;AxBysLb;AwBlvLE;EACE,SAwCS;AxB4sLb;AwB3vLE;EACE,2BA8CS;AxB+sLb;AwB3vLE;EACE,qBA2CS;AxBktLb;AwB3vLE;EACE,oBAwCS;AxBqtLb;AwBpwLE;EACE,2BA8CS;AxBwtLb;AwBpwLE;EACE,qBA2CS;AxB2tLb;AwBpwLE;EACE,oBAwCS;AxB8tLb;AwB7wLE;EACE,gBA8CS;AxBiuLb;AwB7wLE;EACE,UA2CS;AxBouLb;AwB7wLE;EACE,SAwCS;AxBuuLb;AwBtxLE;EACE,2BA8CS;AxB0uLb;AwBtxLE;EACE,qBA2CS;AxB6uLb;AwBtxLE;EACE,oBAwCS;AxBgvLb;AwB/xLE;EACE,2BA8CS;AxBmvLb;AwB/xLE;EACE,qBA2CS;AxBsvLb;AwB/xLE;EACE,oBAwCS;AxByvLb;AwBxyLE;EACE,gBA8CS;AxB4vLb;AwBxyLE;EACE,UA2CS;AxB+vLb;AwBxyLE;EACE,SAwCS;AxBkwLb;AwBjzLE;EACE,2BA8CS;AxBqwLb;AwBjzLE;EACE,qBA2CS;AxBwwLb;AwBjzLE;EACE,oBAwCS;AxB2wLb;AwB1zLE;EACE,2BA8CS;AxB8wLb;AwB1zLE;EACE,qBA2CS;AxBixLb;AwB1zLE;EACE,oBAwCS;AxBoxLb;AwBn0LE;EACE,iBA8CS;AxBuxLb;AwBn0LE;EACE,WA2CS;AxB0xLb;AwBn0LE;EACE,UAwCS;AxB6xLb;AwBxxLI;EAKI;IACE,oBAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExBs1LA;EwB1xLM;IACE,qBAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExB41LA;EwBhyLM;IACE,UAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExBk2LA;EwBtyLM;IACE,qBAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExBw2LA;EwB5yLM;IACE,qBAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExB82LA;EwBlzLM;IACE,UAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExBo3LA;EwBxzLM;IACE,qBAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExB03LA;EwB9zLM;IACE,qBAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExBg4LA;EwBp0LM;IACE,UAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExBs4LA;EwB10LM;IACE,qBAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExB44LA;EwBh1LM;IACE,qBAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExBk5LA;EwBt1LM;IACE,WAFK;IA7Db,iBAAA;IACA,UAAA;IACA,WAAA;ExBw5LA;EwBr5LA;IACE,0BAiEW;ExBs1Lb;EwBr5LA;IACE,oBA8DW;ExBy1Lb;EwBr5LA;IACE,mBA2DW;ExB41Lb;EwB95LA;IACE,2BAiEW;ExB+1Lb;EwB95LA;IACE,qBA8DW;ExBk2Lb;EwB95LA;IACE,oBA2DW;ExBq2Lb;EwBv6LA;IACE,gBAiEW;ExBw2Lb;EwBv6LA;IACE,UA8DW;ExB22Lb;EwBv6LA;IACE,SA2DW;ExB82Lb;EwBh7LA;IACE,2BAiEW;ExBi3Lb;EwBh7LA;IACE,qBA8DW;ExBo3Lb;EwBh7LA;IACE,oBA2DW;ExBu3Lb;EwBz7LA;IACE,2BAiEW;ExB03Lb;EwBz7LA;IACE,qBA8DW;ExB63Lb;EwBz7LA;IACE,oBA2DW;ExBg4Lb;EwBl8LA;IACE,gBAiEW;ExBm4Lb;EwBl8LA;IACE,UA8DW;ExBs4Lb;EwBl8LA;IACE,SA2DW;ExBy4Lb;EwB38LA;IACE,2BAiEW;ExB44Lb;EwB38LA;IACE,qBA8DW;ExB+4Lb;EwB38LA;IACE,oBA2DW;ExBk5Lb;EwBp9LA;IACE,2BAiEW;ExBq5Lb;EwBp9LA;IACE,qBA8DW;ExBw5Lb;EwBp9LA;IACE,oBA2DW;ExB25Lb;EwB79LA;IACE,gBAiEW;ExB85Lb;EwB79LA;IACE,UA8DW;ExBi6Lb;EwB79LA;IACE,SA2DW;ExBo6Lb;EwBt+LA;IACE,2BAiEW;ExBu6Lb;EwBt+LA;IACE,qBA8DW;ExB06Lb;EwBt+LA;IACE,oBA2DW;ExB66Lb;EwB/+LA;IACE,2BAiEW;ExBg7Lb;EwB/+LA;IACE,qBA8DW;ExBm7Lb;EwB/+LA;IACE,oBA2DW;ExBs7Lb;EwBx/LA;IACE,iBAiEW;ExBy7Lb;EwBx/LA;IACE,WA8DW;ExB47Lb;EwBx/LA;IACE,UA2DW;ExB+7Lb;AACF;AwB17LI;EAKI;IACE,oBAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExB4gMA;EwB57LM;IACE,qBAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExBkhMA;EwBl8LM;IACE,UAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExBwhMA;EwBx8LM;IACE,qBAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExB8hMA;EwB98LM;IACE,qBAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExBoiMA;EwBp9LM;IACE,UAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExB0iMA;EwB19LM;IACE,qBAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExBgjMA;EwBh+LM;IACE,qBAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExBsjMA;EwBt+LM;IACE,UAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExB4jMA;EwB5+LM;IACE,qBAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExBkkMA;EwBl/LM;IACE,qBAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExBwkMA;EwBx/LM;IACE,WAFK;IAjFb,iBAAA;IACA,UAAA;IACA,WAAA;ExB8kMA;EwB3kMA;IACE,0BAqFW;ExBw/Lb;EwB3kMA;IACE,oBAkFW;ExB2/Lb;EwB3kMA;IACE,mBA+EW;ExB8/Lb;EwBplMA;IACE,2BAqFW;ExBigMb;EwBplMA;IACE,qBAkFW;ExBogMb;EwBplMA;IACE,oBA+EW;ExBugMb;EwB7lMA;IACE,gBAqFW;ExB0gMb;EwB7lMA;IACE,UAkFW;ExB6gMb;EwB7lMA;IACE,SA+EW;ExBghMb;EwBtmMA;IACE,2BAqFW;ExBmhMb;EwBtmMA;IACE,qBAkFW;ExBshMb;EwBtmMA;IACE,oBA+EW;ExByhMb;EwB/mMA;IACE,2BAqFW;ExB4hMb;EwB/mMA;IACE,qBAkFW;ExB+hMb;EwB/mMA;IACE,oBA+EW;ExBkiMb;EwBxnMA;IACE,gBAqFW;ExBqiMb;EwBxnMA;IACE,UAkFW;ExBwiMb;EwBxnMA;IACE,SA+EW;ExB2iMb;EwBjoMA;IACE,2BAqFW;ExB8iMb;EwBjoMA;IACE,qBAkFW;ExBijMb;EwBjoMA;IACE,oBA+EW;ExBojMb;EwB1oMA;IACE,2BAqFW;ExBujMb;EwB1oMA;IACE,qBAkFW;ExB0jMb;EwB1oMA;IACE,oBA+EW;ExB6jMb;EwBnpMA;IACE,gBAqFW;ExBgkMb;EwBnpMA;IACE,UAkFW;ExBmkMb;EwBnpMA;IACE,SA+EW;ExBskMb;EwB5pMA;IACE,2BAqFW;ExBykMb;EwB5pMA;IACE,qBAkFW;ExB4kMb;EwB5pMA;IACE,oBA+EW;ExB+kMb;EwBrqMA;IACE,2BAqFW;ExBklMb;EwBrqMA;IACE,qBAkFW;ExBqlMb;EwBrqMA;IACE,oBA+EW;ExBwlMb;EwB9qMA;IACE,iBAqFW;ExB2lMb;EwB9qMA;IACE,WAkFW;ExB8lMb;EwB9qMA;IACE,UA+EW;ExBimMb;AACF;AwB5lMI;EAKI;IACE,oBAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExBksMA;EwB9lMM;IACE,qBAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExBwsMA;EwBpmMM;IACE,UAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExB8sMA;EwB1mMM;IACE,qBAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExBotMA;EwBhnMM;IACE,qBAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExB0tMA;EwBtnMM;IACE,UAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExBguMA;EwB5nMM;IACE,qBAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExBsuMA;EwBloMM;IACE,qBAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExB4uMA;EwBxoMM;IACE,UAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExBkvMA;EwB9oMM;IACE,qBAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExBwvMA;EwBppMM;IACE,qBAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExB8vMA;EwB1pMM;IACE,WAFK;IArGb,iBAAA;IACA,UAAA;IACA,WAAA;ExBowMA;EwBjwMA;IACE,0BAyGW;ExB0pMb;EwBjwMA;IACE,oBAsGW;ExB6pMb;EwBjwMA;IACE,mBAmGW;ExBgqMb;EwB1wMA;IACE,2BAyGW;ExBmqMb;EwB1wMA;IACE,qBAsGW;ExBsqMb;EwB1wMA;IACE,oBAmGW;ExByqMb;EwBnxMA;IACE,gBAyGW;ExB4qMb;EwBnxMA;IACE,UAsGW;ExB+qMb;EwBnxMA;IACE,SAmGW;ExBkrMb;EwB5xMA;IACE,2BAyGW;ExBqrMb;EwB5xMA;IACE,qBAsGW;ExBwrMb;EwB5xMA;IACE,oBAmGW;ExB2rMb;EwBryMA;IACE,2BAyGW;ExB8rMb;EwBryMA;IACE,qBAsGW;ExBisMb;EwBryMA;IACE,oBAmGW;ExBosMb;EwB9yMA;IACE,gBAyGW;ExBusMb;EwB9yMA;IACE,UAsGW;ExB0sMb;EwB9yMA;IACE,SAmGW;ExB6sMb;EwBvzMA;IACE,2BAyGW;ExBgtMb;EwBvzMA;IACE,qBAsGW;ExBmtMb;EwBvzMA;IACE,oBAmGW;ExBstMb;EwBh0MA;IACE,2BAyGW;ExBytMb;EwBh0MA;IACE,qBAsGW;ExB4tMb;EwBh0MA;IACE,oBAmGW;ExB+tMb;EwBz0MA;IACE,gBAyGW;ExBkuMb;EwBz0MA;IACE,UAsGW;ExBquMb;EwBz0MA;IACE,SAmGW;ExBwuMb;EwBl1MA;IACE,2BAyGW;ExB2uMb;EwBl1MA;IACE,qBAsGW;ExB8uMb;EwBl1MA;IACE,oBAmGW;ExBivMb;EwB31MA;IACE,2BAyGW;ExBovMb;EwB31MA;IACE,qBAsGW;ExBuvMb;EwB31MA;IACE,oBAmGW;ExB0vMb;EwBp2MA;IACE,iBAyGW;ExB6vMb;EwBp2MA;IACE,WAsGW;ExBgwMb;EwBp2MA;IACE,UAmGW;ExBmwMb;AACF;;AyBt5MA;EACE,eAAA;EACA,YhBqJc;EgBpJd,OAAA;EACA,MAAA;EACA,SAAA;EAEA,YAAA;EACA,yBAAA;EACA,uBAAA;EACA,oBAAA;EACA,sBhB+IiB;EgB9IjB,YAAA;EACA,gBAAA;EACA,sBAAA;EACA,2BAAA;EACA,4BAAA;EACA,wBAAA;AzBw5MF;AyBn5ME;EACE,QAAA;EAEA,UAAA;EACA,2BAAA;AzBo5MJ;AyBj5ME;EACE,SAAA;AzBm5MJ;AyB/4ME;EACE,WAAA;AzBi5MJ;AyB74MI;EACE,aAAA;EACA,mBAAA;AzB+4MN;AyB74MQ;EAGE,0BAAA;EACC,WAAA;AzB64MX;AyBz4MI;EACE,qCAAA;AzB24MN;AyB14MM;EACE,wBAAA;EAEA,WAAA;AzB24MR;AyBv4MI;EACE,gBAAA;EACA,6BAAA;AzBy4MN;AyBr4ME;EACE,0BhBsFiB;EgBrFjB,aAAA;EACA,ehBmFgB;EgBlFhB,gBAAA;EACA,YhBqFkB;EgBpFlB,iBhBoFkB;EgBnFlB,eAAA;AzBu4MJ;AyBr4MI;EACE,qCAAA;AzBu4MN;AyBp4MI;EAIE,iBAAA;AzBm4MN;AyBh4MI;EAGE,WhBuDgB;ATy0MtB;AyB73MI;EACE,chBoDc;AT20MpB;AyB53MI;EAEE,0CAAA;AzB63MN;AyB13MI;EACE,yBhB4CqB;ATg1M3B;AyBz3MI;;EAIE,WAAA;EACA,YhB8CgB;EgB7ChB,iBhB6CgB;EgB5ChB,kBAAA;EACA,aAAA;EACA,0BAAA;AzBy3MN;AyBr3ME;EACE,mBAAA;AzBu3MJ;AyBp3ME;EAKE,eAAA;EACA,oBAAA;EACA,0BAAA;EACA,ehBsBgB;EgBrBhB,gBAAA;EACA,iBhBwBkB;AT01MtB;AyB33MI;EACE,6BAAA;AzB63MN;AyBl3ME;EACE,kBAAA;EACA,oBAAA;EACA,oBAAA;AzBo3MJ;AyBl3MI;EAKE,YAAA;EACA,UAAA;AzBg3MN;AyBr3MM;EACE,6BAAA;AzBu3MR;AyBh3MI;EACE,gBAAA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;EACA,WAAA;AzBk3MN;AyB/2MI;;;EAGE,cAAA;AzBi3MN;AyB92MI;EACE,YAAA;EACA,WAAA;AzBg3MN;AyB72MI;;EAEE,ehBpBc;EgBqBd,mBAAA;AzB+2MN;AyB52MI;EACE,gBAAA;EACA,gBAAA;AzB82MN;AyB32MI;EACE,oBAAA;EACA,gBAAA;AzB62MN;;AyBv2MA;EAME,YAAA;EACA,WAAA;EACA,eAAA;EACA,MAAA;EACA,YAAA;AzBq2MF;AyB72ME;EACE,QAAA;AzB+2MJ;;AyBp2MA;EAOE,OAAA;EACA,wBAAA;EACA,eAAA;AzBi2MF;AyBx2ME;EACE,QAAA;EACA,UAAA;AzB02MJ;;AyBj2MA;EAEI;IACE,4BAAA;EzBm2MJ;EyBj2MI;IACE,2BAAA;EzBm2MN;EyB/1ME;IACE,eAAA;EzBi2MJ;EyB91ME;IACE,oBAAA;EzBg2MJ;AACF;AyB51MA;;EAEE,yBhBjPc;AT+kNhB;AyB51ME;;EACE,WhBvFe;ATs7MnB;;AyB31MA;EACE,UAAA;AzB81MF;;AyB31MA;EACE,eAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,aAAA;EACA,oCAAA;EACA,YAAA;EACA,aAAA;AzB81MF;;AyBx1ME;EACE,mBAAA;EACA,sBAAA;AzB21MJ;;A0BvmNA;;EAEE,YjB8Kc;EiB7Kd,kBjBmLc;EiBlLd,qBAAA;EACA,YjB+Kc;EiB9Kd,iBjB8Kc;EiB7Kd,ejB8Ke;EiB7Kf,yBAAA;EACA,sBAAA;EACA,wCAAA;A1B0mNF;;A0BtmNA;;;;;;;;;;;;;;;EAeE,oBAAA;EACA,oCAAA;EACA,gBAAA;EACA,yBAAA;EACA,eAAA;A1BymNF;A0BxmNE;;;;;;;;;;;;;;;EACE,oCAAA;EACA,yBAAA;A1BwnNJ;;A0BnnNA;;;;;EAKE,ejBoIiB;EiBnIjB,UAAA;A1BsnNF;A0BrnNE;;;;;EACE,iBjBkIoB;EiBjIpB,oBAAA;A1B2nNJ;;A0BpnNE;;EACE,uCAAA;A1BwnNJ;;A0BnnNA;EACE,qBAAA;EACA,WjBiFoB;EiBhFpB,yBjBkFyB;EiBjFzB,kBAAA;EACA,qBAAA;EAEA,0CAAA;EACA,eAAA;A1BqnNF;A0BpnNE;EACE,0CjBqH6B;ATigNjC;;A0BhnNA;EAwCE,qBAAA;EACA,WjB4FsB;EiB3FtB,kBAAA;EACA,gBAAA;EACA,UAAA;EACA,WjByFqB;EiBxFrB,YjBwFqB;EiBvFrB,iBjBuFqB;EiBtFrB,UAAA;EACA,yBjB7HgB;EiB8HhB,kBjBqFuB;EiBnFvB,iCAAA;EACA,eAAA;EACA,sBAAA;A1B2kNF;A0BhoNE;EACE,yBjB9Ec;ATgtNlB;A0B/nNE;EACE,gBAAA;A1BioNJ;A0B/nNE;EAIE,WjB0GyB;EiBzGzB,YjByGyB;EiBxGzB,UAAA;A1B8nNJ;A0BnoNI;EACE,YAAA;A1BqoNN;A0BhoNI;EACE,iBjBsGuB;AT4hN7B;A0B9nNE;EAIE,ajBoGyB;EiBnGzB,cjBmGyB;AT0hN7B;A0BjoNI;EACE,cAAA;A1BmoNN;A0B/nNI;EACE,mBjBiGuB;ATgiN7B;A0B7nNE;EAKE,kBAAA;EACA,WAAA;EACA,YAAA;A1B2nNJ;A0BjoNI;EACE,WAAA;EACA,UAAA;A1BmoNN;A0B9mNE;EACE,cAAA;EACA,qBAAA;EACA,kBAAA;EACA,WjB0EoB;EiBzEpB,iBjBwD0B;EiBvD1B,iBjByEmB;ATuiNvB;;A0B3mNA;EACE,YjB8Bc;ATglNhB;;A0B1mNA;EAuFE,eAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,gBAAA;EACA,YAAA;A1BuhNF;A0BjnNI;EACE,mBAAA;A1BmnNN;A0B9mNE;EAEE,mBAAA;A1B+mNJ;A0B9mNI;EACE,iBAAA;EACA,WAAA;EACA,QAAA;EACA,2BAAA;EACA,YAAA;EACA,UAAA;EACA,qDAAA;EACA,YAAA;A1BgnNN;A0B/mNM;EACE,qBAAA;EACA,sBAAA;A1BinNR;A0B7mNE;EACE,mBAAA;A1B+mNJ;A0B9mNI;EACE,gBAAA;EACA,cAAA;EACA,UAAA;EACA,WAAA;A1BgnNN;A0B/mNM;EACE,sBAAA;A1BinNR;A0B7mNE;EACE,mBAAA;A1B+mNJ;A0B9mNI;EACE,SAAA;EACA,YAAA;EACA,aAAA;EACA,8BAAA;A1BgnNN;A0B/mNM;EACE,kBAAA;A1BinNR;A0B7mNE;EAME,UAAA;EACA,YjBVyB;ATonN7B;A0B/mNM;EACE,UAAA;A1BinNR;A0B5mNI;EACE,aAAA;EACA,MAAA;EACA,SAAA;EACA,UAAA;A1B8mNN;A0B7mNM;EACE,OAAA;EACA,qBAAA;EACA,SAAA;EACA,YAAA;EACA,gBAAA;A1B+mNR;A0B9mNQ;EACE,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,6BAAA;EACA,gBAAA;EACA,WAAA;EACA,iBjB/BmB;EiBgCnB,UAAA;A1BgnNV;A0B/mNU;EACE,oBAAA;A1BinNZ;A0BrmNE;EACE,OAAA;EACA,QAAA;EACA,kBAAA;EACA,kBAAA;EACA,YAAA;EACA,SAAA;EACA,kBAAA;A1BumNJ;A0BtmNI;EACE,mBAAA;A1BwmNN;A0BtmNI;EACE,UAAA;A1BwmNN;A0BrmNE;EACE,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,WjBlDmB;EiBmDnB,YjBnDmB;EiBoDnB,yBjBtQc;EiBuQd,kBjBpDqB;EiBqDrB,mBAAA;A1BumNJ;;A0BlmNA;EACE,gBAAA;EACA,6BAAA;EACA,cjBhIkB;EiBiIlB,eAAA;EACA,iCAAA;A1BqmNF;A0BpmNE;EAEE,gBAAA;A1BqmNJ;A0BnmNE;EACE,oCAAA;A1BqmNJ;A0BnmNE;EAEE,wCAAA;EACA,0CAAA;EACA,eAAA;A1BomNJ;;A0B/lNA;EAEE,YjBpGoB;EiBqGpB,iBjBrGoB;EiBsGpB,ejBxGuB;EiByGvB,eAAA;A1BimNF;A0B/lNE;EACE,iBjB3G0B;AT4sN9B;;A0B5lNA;EAEE,cjB3GoB;EiB4GpB,mBjB5GoB;EiB6GpB,ejB/GuB;AT6sNzB;A0B7lNE;EACE,iBjBhH0B;AT+sN9B;;A0B1lNA;EACE,cAAA;A1B6lNF;;A2Bp5NA;EACE,aAAA;EACA,aAAA;A3Bu5NF;;A2Bp5NA;EACE,8BAAA;EACA,gBAAA;EACA,qBAAA;EACA,8BAAA;A3Bu5NF;A2Bt5NA;EACE,2BAAA;A3Bw5NF;A2Bt5NE;EACE,aAAA;EACA,aAAA;A3Bw5NJ;A2Bp5NI;EACE,OAAA;EACA,oEAxBC;EAyBD,yBAAA;A3Bs5NN;A2Bp5NM;EACE,yBA/BI;EAgCJ,4BAAA;A3Bs5NR;A2Bj5NI;EACE,OAAA;EACA,kGAAA;EACA,sBAAA;A3Bm5NN;A2Bj5NM;EACE,oEAxCD;EAyCC,4BAAA;A3Bm5NR;A2B94NI;EACE,OAAA;EACA,oEAhDC;EAiDD,yBAAA;A3Bg5NN;A2B94NM;EACE,oEAnDD;EAoDC,4BAAA;A3Bg5NR;A2Bz4NI;EACE,OAAA;EACA,yBAjEM;EAoEN,yBAAA;A3By4NN;A2Bv4NM;EACE,oEApED;EAsEC,4BAAA;A3Bw4NR;A2Bn4NI;EACE,OAAA;EACA,6IAAA;EAGA,sBAAA;A3Bm4NN;A2Bj4NM;EACE,yBAtFI;EAuFJ,4BAAA;A3Bm4NR;A2B93NI;EACE,OAAA;EACA,yBA9FM;EA+FN,yBAAA;A3Bg4NN;A2B93NM;EACE,oEA9FD;EA+FC,4BAAA;A3Bg4NR;A2Bx3NI;EACE,OAAA;EACA,oEAzGC;EA4GD,yBAAA;A3Bw3NN;A2Bt3NM;EACE,oEAhHD;EAkHC,4BAAA;A3Bu3NR;A2Bl3NI;EACE,OAAA;EACA,kGAAA;EAGA,sBAAA;A3Bk3NN;A2Bh3NM;EACE,oEA9HD;EA+HC,4BAAA;A3Bk3NR;A2B72NI;EACE,OAAA;EACA,oEAtIC;EAuID,yBAAA;A3B+2NN;A2B72NM;EACE,yBA9II;EA+IJ,4BAAA;A3B+2NR;A2Bz2NE;EACE,yBAtJQ;EAuJR,aAAA;EAEA,aAAA;EACA,gBAAA;EACA,4BAAA;EACA,oBAAA;A3B02NJ;;A4B1gOA;EACI,YAAA;EACA,kBAAA;EACA,aAAA;EACA,YAAA;EACA,MAAA;EACA,OAAA;EACA,4CAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,sBAAA;A5B6gOJ;A4B5gOI;EACI,yBAAA,EAAA,eAAA;EACA,6BAAA,EAAA,SAAA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,kCAAA;A5B8gOR;A4B5gOI;EACI,gBAAA;EACA,eAAA;EACA,cAAA;A5B8gOR;A4B3gOI;EACI;IACI,uBAAA;E5B6gOV;E4B3gOM;IACI,yBAAA;E5B6gOV;AACF;;A6B3iOA;EACE,4BAAA;EACA,apB4Na;EoB3Nb,2CAAA;EACA,kBAAA;EAEA,sBpByNc;ATo1NhB;;A6B1iOA;EACE,kBAAA;EACA,2CAAA;EACA,sBpBmNc;EoBlNd,4BAAA;EACA,kBAAA;A7B6iOF;A6BziOE;EACE,eAAA;EACA,gBAAA;A7B2iOJ;A6B1iOI;EACE,eAAA;A7B4iON;A6BviOE;EACE,kBAAA;A7ByiOJ;A6BviOI;EACE,eAAA;EACA,gBAAA;A7ByiON;A6BviOI;EACE,eAAA;A7ByiON;A6BviOI;EACE,gBAAA;EACA,gBAAA;A7ByiON;A6BviOI;EACE,kBAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;A7ByiON;A6BriOE;EACE,aAAA;A7BuiOJ;A6BpiOE;EACE,aAAA;A7BsiOJ;A6BniOE;EACE,aAAA;A7BqiOJ;A6BjiOE;EAaE,aAAA;A7BuhOJ;A6BliOM;EACE,YAAA;EACA,gBAAA;EACA,iBAAA;A7BoiOR;A6BliOQ;EACE,YAAA;A7BoiOV;A6B7hOI;EACE,cAAA;A7B+hON;A6B9hOM;EACE,0BAAA;EACA,eAAA;EACA,WAAA;A7BgiOR;A6B5hOI;EACE,aAAA;EACA,sBAAA;EACA,OAAA;EACA,kBAAA;A7B8hON;A6B5hOM;EACE,YAAA;A7B8hOR;A6BvhOI;EACE,UAAA;A7ByhON;A6BthOI;EACE,UAAA;EACA,oBAAA;A7BwhON;A6BjhOE;EACE,kBAAA;A7BmhOJ;A6BhhOI;EACE,cAAA;EACA,0BAAA;EACA,kBAAA;EACA,OAAA;EACA,QAAA;EACA,MAAA;EACA,SAAA;EACA,WAAA;A7BkhON;A6B/gOI;EACE,WpB8FU;EoB7FV,kBAAA;EACA,SAAA;EACA,OAAA;EACA,eAAA;EACA,apBwFS;ATy7Nf;A6B7gOE;EACE,apBmFW;EoBlFX,0BAAA;A7B+gOJ;A6B7gOI;EACE,SAAA;A7B+gON;A6B7gOI;EACE,cAAA;EACA,iBAAA;EACA,kBAAA;A7B+gON;A6B7gOM;EACE,iBAAA;A7B+gOR;A6B1gOE;EAIE,yBAAA;EACA,8CAAA;EACA,kBAAA;EACA,kBAAA;A7BygOJ;A6B/gOI;EACE,0BAAA;A7BihON;A6B1gOI;EACE,cpB0DY;EoBzDZ,kBpBuDS;EoBtDT,2BAAA;EACA,yBAAA;A7B4gON;A6B1gOM;EAAU,oCpBsDQ;ATu9NxB;A6BzgOE;EACE,apB8CW;EoB7CX,kBAAA;EACA,sBpB6CY;EoB5CZ,WAAA;EACA,gBAAA;EACA,OAAA;EACA,SAAA;EACA,YAAA;EACA,UAAA;EACA,aAAA;A7B2gOJ;A6BzgOI;EACE,eAAA;EACA,cAAA;A7B2gON;;A8B1sOA;;;;;;;;EAAA;AAUA,2BAAA;AACA,2BAAA;AACA,2BAAA;AAEA;;;;;;;;;;;;EAAA;AAeA;EACE,qBAAA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;A9BysOF;A8BvsOE;EACE,WAAA;EACA,YAAA;A9BysOJ;A8BtsOE;EACE,WAAA;EACA,YAAA;A9BwsOJ;A8BrsOE;EACE,4DAAA;EACA,0DAAA;EACA,kDAAA;A9BusOJ;;A8BnsOA;EACE;IAAK,iCAAA;E9BusOL;AACF;A8BrsOA;EACE;IAAK,yBAAA;E9BwsOL;AACF;A8BtsOA;EACE,kBAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,qBrB5DgB;ATowOlB;;A8BrsOA;;EAEE,qBAAA;A9BwsOF;;A8BrsOA;;EAEE,qBAAA;A9BwsOF;;A8BrsOA;;EAEE,qBAAA;A9BwsOF;;A8BrsOA;;EAEE,qBAAA;A9BwsOF;;A8BrsOA;;;;;;;;;;;;EAAA;AAaA;EACE,2BAAA;EACA,2JAAA;EACA,mJAAA;A9BwsOF;;A8BrsOA;EACE,2BAAA;EACA,0JAAA;EACA,kJAAA;A9BwsOF;;A8BrsOA;EACE,2BAAA;EACA,6JAAA;EACA,qJAAA;A9BwsOF;;A8BrsOA;EACE,2BAAA;EACA,4JAAA;EACA,oJAAA;A9BwsOF;;A8BrsOA;;;;;EAKE,2BAAA;EACA,UAAA;EACA,uFAAA;EACA,+EAAA;A9BwsOF;;A8BrsOA;EACE;IAAQ,iCAAA;E9BysOR,E8BzsO8C,kBAAA;EAC9C;IAAQ,iCAAA;E9B2sOR,E8B3sO8C,kBAAA;EAC9C;IAAQ,iCAAA;E9B6sOR,E8B7sO8C,kBAAA;EAC9C;IAAQ,iCAAA;E9B+sOR,E8B/sO8C,kBAAA;EAC9C;IAAQ,iCAAA;E9BitOR,E8BjtO8C,kBAAA;EAC9C;IAAQ,iCAAA;E9BmtOR,E8BntO8C,kBAAA;EAC9C;IAAQ,iCAAA;E9BqtOR,E8BrtO8C,kBAAA;EAC9C;IAAQ,kCAAA;E9ButOR,E8BvtO8C,kBAAA;A9BwtOhD;A8BrtOA;EACE;IAAQ,yBAAA;E9BwtOR,E8BxtOsC,kBAAA;EACtC;IAAQ,yBAAA;E9B0tOR,E8B1tOsC,kBAAA;EACtC;IAAQ,yBAAA;E9B4tOR,E8B5tOsC,kBAAA;EACtC;IAAQ,yBAAA;E9B8tOR,E8B9tOsC,kBAAA;EACtC;IAAQ,yBAAA;E9BguOR,E8BhuOsC,kBAAA;EACtC;IAAQ,yBAAA;E9BkuOR,E8BluOsC,kBAAA;EACtC;IAAQ,yBAAA;E9BouOR,E8BpuOsC,kBAAA;EACtC;IAAQ,0BAAA;E9BsuOR,E8BtuOsC,kBAAA;A9BuuOxC;A8BpuOA;EACE;IAAO,UAAA;E9BuuOP;E8BtuOA;IAAM,UAAA;E9ByuON;E8BxuOA;IAAM,UAAA;E9B2uON;E8B1uOA;IAAM,UAAA;E9B6uON;E8B5uOA;IAAM,UAAA;E9B+uON;E8B9uOA;IAAO,UAAA;E9BivOP;AACF;A8B/uOA;EACE;IAAO,UAAA;E9BkvOP;E8BjvOA;IAAM,UAAA;E9BovON;E8BnvOA;IAAM,UAAA;E9BsvON;E8BrvOA;IAAM,UAAA;E9BwvON;E8BvvOA;IAAM,UAAA;E9B0vON;E8BzvOA;IAAO,UAAA;E9B4vOP;AACF;A8B1vOA;EACE;IAAO,UAAA;E9B6vOP;E8B5vOA;IAAM,UAAA;E9B+vON;E8B9vOA;IAAM,UAAA;E9BiwON;E8BhwOA;IAAM,UAAA;E9BmwON;E8BlwOA;IAAM,UAAA;E9BqwON;AACF;A8BnwOA;EACE;IAAO,UAAA;E9BswOP;E8BrwOA;IAAM,UAAA;E9BwwON;E8BvwOA;IAAM,UAAA;E9B0wON;E8BzwOA;IAAM,UAAA;E9B4wON;E8B3wOA;IAAM,UAAA;E9B8wON;AACF;A8B5wOA;EACE;IAAO,UAAA;E9B+wOP;E8B9wOA;IAAM,UAAA;E9BixON;E8BhxOA;IAAM,UAAA;E9BmxON;E8BlxOA;IAAM,UAAA;E9BqxON;E8BpxOA;IAAM,UAAA;E9BuxON;AACF;A8BrxOA;EACE;IAAO,UAAA;E9BwxOP;E8BvxOA;IAAM,UAAA;E9B0xON;E8BzxOA;IAAM,UAAA;E9B4xON;E8B3xOA;IAAM,UAAA;E9B8xON;E8B7xOA;IAAM,UAAA;E9BgyON;AACF;A8B9xOA;EACE;IAAO,UAAA;E9BiyOP;E8BhyOA;IAAM,UAAA;E9BmyON;E8BlyOA;IAAM,UAAA;E9BqyON;E8BpyOA;IAAM,UAAA;E9BuyON;E8BtyOA;IAAO,UAAA;E9ByyOP;AACF;A8BvyOA;EACE;IAAO,UAAA;E9B0yOP;E8BzyOA;IAAM,UAAA;E9B4yON;E8B3yOA;IAAM,UAAA;E9B8yON;E8B7yOA;IAAM,UAAA;E9BgzON;E8B/yOA;IAAO,UAAA;E9BkzOP;AACF;A8BhzOA;;;EAAA;AAIA;EACE,kBAAA;EACA,MAAA;EACA,SAAA;EACA,UAAA;EACA,YAAA;EACA,gBAAA;EACA,qBAAA;A9BkzOF;;A8B/yOA;EACE,YAAA;EACA,WAAA;A9BkzOF;;A8B/yOA;EACE,qBAAA;EACA,kBAAA;EACA,UAAA;EACA,YAAA;EACA,gBAAA;EACA,qBAAA;A9BkzOF;A8BhzOE;EACE,WAAA;EACA,YAAA;EACA,iBAAA,EAAA,gBAAA;EACA,mBAAA;EACA,qBAAA;EACA,2CAAA;EACA,kBAAA;EACA,uBAAA;EACA,eAAA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;A9BkzOJ;A8B/yOE;EACE,OAAA;EACA,0CAAA;EACA,iCAAA;EACA,yBAAA;A9BizOJ;A8B/yOE;EACE,WAAA;EACA,yCAAA;EACA,kCAAA;EACA,0BAAA;A9BizOJ;;A8B3yOA;EACE,sBAAA;EACA,8EAAA;EACA,sEAAA;A9B8yOF;;A8B3yOA;EACE,sBAAA;EACA,+EAAA;EACA,uEAAA;A9B8yOF;;A8B3yOA;EACE;IAAO,iCAAA;E9B+yOP;E8B9yOA;IAAM,gCAAA;E9BizON;E8BhzOA;IAAK,iCAAA;E9BmzOL;AACF;A8BjzOA;EACE;IAAO,yBAAA;E9BozOP;E8BnzOA;IAAM,wBAAA;E9BszON;E8BrzOA;IAAK,yBAAA;E9BwzOL;AACF;A8BtzOA;EACE;IAAO,kCAAA;E9ByzOP;E8BxzOA;IAAM,+BAAA;E9B2zON;E8B1zOA;IAAK,kCAAA;E9B6zOL;AACF;A8B3zOA;EACE;IAAO,0BAAA;E9B8zOP;E8B7zOA;IAAM,uBAAA;E9Bg0ON;E8B/zOA;IAAK,0BAAA;E9Bk0OL;AACF;A8Bh0OA;EACE,0BAAA;EACA,uGAAA;EACA,+FAAA;A9Bk0OF;;A8B/zOA;EACE;IAAO,UAAA;E9Bm0OP;E8Bl0OA;IAAK,UAAA;E9Bq0OL;AACF;A8Bn0OA;EACE;IAAO,UAAA;E9Bs0OP;E8Br0OA;IAAK,UAAA;E9Bw0OL;AACF;A+BnpPA;EACE,kBAAA;EACA,WAAA;EACA,cAAA;EACA,WAAA;EACA,yBAAA;EACA,kBAAA;EACA,2CAAA;EACA,gBAAA;A/BqpPF;A+BppPE;EACE,kBAAA;EACA,MAAA;EACA,OAAA;EACA,SAAA;EACA,yBtBXc;EsBYd,6BAAA;A/BspPJ;A+BppPE;EACE,yBtBfc;ATqqPlB;A+BrpPI;EACE,WAAA;EACA,kBAAA;EACA,yBAAA;EACA,MAAA;EACA,OAAA;EACA,SAAA;EACA,wBAAA;EAEA,8EAAA;A/BspPN;A+BnpPI;EACE,WAAA;EACA,kBAAA;EACA,yBAAA;EACA,MAAA;EACA,OAAA;EACA,SAAA;EACA,wBAAA;EAEA,+EAAA;EACA,sBAAA;A/BopPN;;A+BhpPA;EACE;IACE,UAAA;IACA,WAAA;E/BmpPF;E+BjpPA;IACE,UAAA;IACA,WAAA;E/BmpPF;E+BjpPA;IACE,UAAA;IACA,WAAA;E/BmpPF;AACF;A+BhpPA;EACE;IACE,WAAA;IACA,WAAA;E/BkpPF;E+BhpPA;IACE,UAAA;IACA,UAAA;E/BkpPF;E+BhpPA;IACE,UAAA;IACA,UAAA;E/BkpPF;AACF;AgC5tPA;EACE,kBAAA;EACA,iBAAA;EACA,kBAAA;EACA,cAAA;EACA,QAAA;EACA,SAAA;EACA,eAAA;AhC8tPF;AgC3tPE;EACE,yBAAA;EACA,yBAAA;AhC6tPJ;AgC1tPE;EACE,yBAAA;EACA,yBAAA;AhC4tPJ;AgC1tPE;EACE,yBAAA;EACA,yBAAA;AhC4tPJ;;AgCxtPA;EACE;IACE,UAAA;EhC2tPF;EgCxtPA;IACE,QAAA;EhC0tPF;AACF;AiC1vPA;EAgBE,iBAAA;EACA,kBAAA;AjC6uPF;AiC7vPE;EACE,WAAA;EACA,cAAA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,MAAA;EACA,OAAA;EACA,yBAAA;EACA,sBAAA;EACA,wCAAA;EACA,qEAAA;AjC+vPJ;;AiCvvPA;EACE;IACE,UAAA;IACA,mBAAA;EjC0vPF;EiCxvPA;IACE,UAAA;IACA,qBAAA;EjC0vPF;EiCxvPA;IACE,UAAA;IACA,qBAAA;EjC0vPF;AACF;AkC1xPA;EAOE,sBzBqPkB;EyBpPlB,SAAA;EACA,aAAA;EACA,gBAAA;EACA,gBAAA;EAEA,kBAAA;EACA,OAAA;EACA,MAAA;EACA,aAAA;EACA,qBAAA;AlCqxPF;AkCryPE;EACE,UAAA;AlCuyPJ;AkCrxPE;EAsCE,WAAA;EACA,0BzBuMQ;EyBtMR,eAAA;EACA,gBzBkMmB;EyBjMnB,mBAAA;EACA,WAAA;EACA,gBAAA;AlCkvPJ;AkC7xPI;EACE,sBzBuOoB;ATwjP1B;AkC5xPI;EACE,aAAA;AlC8xPN;AkC3xPI;EACE,aAAA;EACA,WAAA;AlC6xPN;AkC1xPI;EACE,eAAA;EACA,czB/BY;EyBgCZ,cAAA;EACA,iBAAA;EACA,kBAAA;AlC4xPN;AkCzxPI;EACE,QAAA;EACA,OAAA;EACA,YAAA;AlC2xPN;AkCvxPI;EACE,eAAA;EACA,oBAAA;EACA,WAAA;EACA,kBAAA;EACA,WAAA;AlCyxPN;;AkC1wPE;EACE,0CAAA;AlC6wPJ;;AkCxwPA;EACE,QAAA;EACA,OAAA;EACA,YAAA;EACA,eAAA;AlC2wPF;;AkCxwPA;EACE,eAAA;AlC2wPF;;AmC91PA;EAiBE,W1B6HkB;E0B3HlB,yB1BlBc;E0BmBd,WAAA;EACA,Y1BsHqB;E0BrHrB,iB1BqHqB;AT2tPvB;AmCr2PE;EACE,YAAA;AnCu2PJ;AmCr2PI;EACE,aAAA;EACA,mBAAA;EACA,gB1BoIiB;E0BnIjB,YAAA;AnCu2PN;AmCp2PI;EACE,kBAAA;EACA,mBAAA;AnCs2PN;AmC31PE;EAAI,W1BsHc;ATwuPpB;AmC51PE;;;EAGE,cAAA;EACA,eAAA;EACA,Y1B4GmB;E0B3GnB,iB1B2GmB;ATmvPvB;AmC31PE;EACE,kBAAA;EACA,YAAA;AnC61PJ;AmC11PE;EACE;IAAoB,aAAA;EnC61PtB;AACF;AmCz1PE;EACE,WAAA;EACA,kBAAA;EACA,UAAA;EACA,Y1ByFmB;E0BxFnB,cAAA;AnC21PJ;AmCz1PI;EACE,Y1BqFiB;E0BpFjB,iB1BoFiB;ATuwPvB;AmCr1PE;EACE,kBAAA;EACA,W1B+EgB;E0B9EhB,qBAAA;EACA,iB1B8EqB;E0B7ErB,UAAA;AnCu1PJ;AmCt1PI;EACE,YAAA;EACA,WAAA;AnCw1PN;AmCr1PI;EACE,SAAA;EACA,2BAAA;AnCu1PN;AmCp1PI;EAhBF;IAiBI,SAAA;IACA,2BAAA;EnCu1PJ;EmCr1PI;IACE,UAAA;IACA,eAAA;EnCu1PN;EmCp1PI;IAAS,YAAA;EnCu1Pb;EmCt1PI;IACE,aAAA;IACA,UAAA;EnCw1PN;AACF;AmCr1PI;EACE,aAAA;EACA,UAAA;AnCu1PN;AmCp1PI;;;EAGE,WAAA;EACA,kBAAA;AnCs1PN;AmCh1PE;EACE,qBAAA;EACA,eAAA;EACA,eAAA;AnCk1PJ;AmC70PE;EACE,SAAA;AnC+0PJ;AmC70PI;EACE,iCAAA;EACA,WAAA;EACA,UAAA;AnC+0PN;AmC70PM;EACE,oCAAA;AnC+0PR;AmC50PI;EACE,iCAAA;EACA,e1BWa;E0BVb,W1BWc;E0BVd,cAAA;EACA,eAAA;EACA,eAAA;AnC80PN;AmC50PM;EACE,gBAAA;EACA,iBAAA;EACA,kBAAA;AnC80PR;AmC50PQ;EACE,eAAA;EACA,oBAAA;AnC80PV;AmC10PM;EACE,oCAAA;AnC40PR;AmCx0PI;EACE,WAAA;AnC00PN;AmCr0PE;EACE,YAAA;AnCu0PJ;AmCp0PE;EACE,SAAA;EACA,YAAA;AnCs0PJ;AmCp0PI;EACE,YAAA;EACA,iBAAA;EACA,YAAA;EACA,kBAAA;AnCs0PN;AmCp0PM;EAEE,YAAA;EACA,gBAAA;AnCq0PR;AmCj0PI;EACE,MAAA;EACA,OAAA;AnCm0PN;AmCj0PM;EACE,+BAAA;EACA,sBAAA;AnCm0PR;AmCj0PM;EAAa,W1B7CC;ATi3PpB;;AmC9zPA;EACE,kBAAA;EACA,Y1BxDqB;E0ByDrB,YAAA;AnCi0PF;AmC/zPE;EACE,eAAA;AnCi0PJ;;AmC9zPA;EACE;IACE,gB1BnEY;ETo4Pd;EmC/zPA;IACE,Y1BtEY;I0BuEZ,iB1BvEY;ETw4Pd;EmC/zPA;IACE,Y1B1EY;ET24Pd;AACF","sourcesContent":["@charset \"UTF-8\";\n@import 'https://fonts.googleapis.com/css?family=Ubuntu';\n.webo {\n background-color: #0062d6 !important;\n}\n\n.webo-text {\n color: #0062d6 !important;\n}\n\n.webo-waves .waves-ripple {\n background-color: #0062d6 !important;\n}\n\n.webo.chawlaw {\n background-color: #f39b43 !important;\n}\n\n.webo-text.text-chawlaw {\n color: #f39b43 !important;\n}\n\n.webo-waves.waves-chawlaw .waves-ripple {\n background-color: #f39b43 !important;\n}\n\n.webo.second {\n background-color: #0077FA !important;\n}\n\n.webo-text.text-second {\n color: #0077FA !important;\n}\n\n.webo-waves.waves-second .waves-ripple {\n background-color: #0077FA !important;\n}\n\n.webo.third {\n background-color: #09bddd !important;\n}\n\n.webo-text.text-third {\n color: #09bddd !important;\n}\n\n.webo-waves.waves-third .waves-ripple {\n background-color: #09bddd !important;\n}\n\n.webo.fourth {\n background-color: #cbe7fe !important;\n}\n\n.webo-text.text-fourth {\n color: #cbe7fe !important;\n}\n\n.webo-waves.waves-fourth .waves-ripple {\n background-color: #cbe7fe !important;\n}\n\n.webo.lighten-5 {\n background-color: #bbdefb !important;\n}\n\n.webo-text.text-lighten-5 {\n color: #bbdefb !important;\n}\n\n.webo-waves.waves-lighten-5 .waves-ripple {\n background-color: #bbdefb !important;\n}\n\n.webo.lighten-4 {\n background-color: #42a5f5 !important;\n}\n\n.webo-text.text-lighten-4 {\n color: #42a5f5 !important;\n}\n\n.webo-waves.waves-lighten-4 .waves-ripple {\n background-color: #42a5f5 !important;\n}\n\n.webo.lighten-3 {\n background-color: #7986cb !important;\n}\n\n.webo-text.text-lighten-3 {\n color: #7986cb !important;\n}\n\n.webo-waves.waves-lighten-3 .waves-ripple {\n background-color: #7986cb !important;\n}\n\n.webo.lighten-2 {\n background-color: #512da8 !important;\n}\n\n.webo-text.text-lighten-2 {\n color: #512da8 !important;\n}\n\n.webo-waves.waves-lighten-2 .waves-ripple {\n background-color: #512da8 !important;\n}\n\n.webo.lighten-1 {\n background-color: #283593 !important;\n}\n\n.webo-text.text-lighten-1 {\n color: #283593 !important;\n}\n\n.webo-waves.waves-lighten-1 .waves-ripple {\n background-color: #283593 !important;\n}\n\n.webo.darken-1 {\n background-color: #d0181e !important;\n}\n\n.webo-text.text-darken-1 {\n color: #d0181e !important;\n}\n\n.webo-waves.waves-darken-1 .waves-ripple {\n background-color: #d0181e !important;\n}\n\n.webo.darken-2 {\n background-color: #b9151b !important;\n}\n\n.webo-text.text-darken-2 {\n color: #b9151b !important;\n}\n\n.webo-waves.waves-darken-2 .waves-ripple {\n background-color: #b9151b !important;\n}\n\n.webo.darken-3 {\n background-color: #a21318 !important;\n}\n\n.webo-text.text-darken-3 {\n color: #a21318 !important;\n}\n\n.webo-waves.waves-darken-3 .waves-ripple {\n background-color: #a21318 !important;\n}\n\n.webo.b- {\n background-color: #49ce5f !important;\n}\n\n.webo-text.text-b- {\n color: #49ce5f !important;\n}\n\n.webo-waves.waves-b- .waves-ripple {\n background-color: #49ce5f !important;\n}\n\n.webo.darken-4 {\n background-color: #8b1014 !important;\n}\n\n.webo-text.text-darken-4 {\n color: #8b1014 !important;\n}\n\n.webo-waves.waves-darken-4 .waves-ripple {\n background-color: #8b1014 !important;\n}\n\n.red {\n background-color: #f44336 !important;\n}\n\n.red-text {\n color: #f44336 !important;\n}\n\n.red-waves .waves-ripple {\n background-color: #f44336 !important;\n}\n\n.red.lighten-5 {\n background-color: #ffebee !important;\n}\n\n.red-text.text-lighten-5 {\n color: #ffebee !important;\n}\n\n.red-waves.waves-lighten-5 .waves-ripple {\n background-color: #ffebee !important;\n}\n\n.red.lighten-4 {\n background-color: #ffcdd2 !important;\n}\n\n.red-text.text-lighten-4 {\n color: #ffcdd2 !important;\n}\n\n.red-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffcdd2 !important;\n}\n\n.red.lighten-3 {\n background-color: #ef9a9a !important;\n}\n\n.red-text.text-lighten-3 {\n color: #ef9a9a !important;\n}\n\n.red-waves.waves-lighten-3 .waves-ripple {\n background-color: #ef9a9a !important;\n}\n\n.red.lighten-2 {\n background-color: #e57373 !important;\n}\n\n.red-text.text-lighten-2 {\n color: #e57373 !important;\n}\n\n.red-waves.waves-lighten-2 .waves-ripple {\n background-color: #e57373 !important;\n}\n\n.red.lighten-1 {\n background-color: #ef5350 !important;\n}\n\n.red-text.text-lighten-1 {\n color: #ef5350 !important;\n}\n\n.red-waves.waves-lighten-1 .waves-ripple {\n background-color: #ef5350 !important;\n}\n\n.red.darken-1 {\n background-color: #e53935 !important;\n}\n\n.red-text.text-darken-1 {\n color: #e53935 !important;\n}\n\n.red-waves.waves-darken-1 .waves-ripple {\n background-color: #e53935 !important;\n}\n\n.red.darken-2 {\n background-color: #d32f2f !important;\n}\n\n.red-text.text-darken-2 {\n color: #d32f2f !important;\n}\n\n.red-waves.waves-darken-2 .waves-ripple {\n background-color: #d32f2f !important;\n}\n\n.red.darken-3 {\n background-color: #c62828 !important;\n}\n\n.red-text.text-darken-3 {\n color: #c62828 !important;\n}\n\n.red-waves.waves-darken-3 .waves-ripple {\n background-color: #c62828 !important;\n}\n\n.red.darken-4 {\n background-color: #b71c1c !important;\n}\n\n.red-text.text-darken-4 {\n color: #b71c1c !important;\n}\n\n.red-waves.waves-darken-4 .waves-ripple {\n background-color: #b71c1c !important;\n}\n\n.red.accent-1 {\n background-color: #ff8a80 !important;\n}\n\n.red-text.text-accent-1 {\n color: #ff8a80 !important;\n}\n\n.red-waves.waves-accent-1 .waves-ripple {\n background-color: #ff8a80 !important;\n}\n\n.red.accent-2 {\n background-color: #ff5252 !important;\n}\n\n.red-text.text-accent-2 {\n color: #ff5252 !important;\n}\n\n.red-waves.waves-accent-2 .waves-ripple {\n background-color: #ff5252 !important;\n}\n\n.red.accent-3 {\n background-color: #ff1744 !important;\n}\n\n.red-text.text-accent-3 {\n color: #ff1744 !important;\n}\n\n.red-waves.waves-accent-3 .waves-ripple {\n background-color: #ff1744 !important;\n}\n\n.red.accent-4 {\n background-color: #d50000 !important;\n}\n\n.red-text.text-accent-4 {\n color: #d50000 !important;\n}\n\n.red-waves.waves-accent-4 .waves-ripple {\n background-color: #d50000 !important;\n}\n\n.pink {\n background-color: #e91e63 !important;\n}\n\n.pink-text {\n color: #e91e63 !important;\n}\n\n.pink-waves .waves-ripple {\n background-color: #e91e63 !important;\n}\n\n.pink.lighten-5 {\n background-color: #fce4ec !important;\n}\n\n.pink-text.text-lighten-5 {\n color: #fce4ec !important;\n}\n\n.pink-waves.waves-lighten-5 .waves-ripple {\n background-color: #fce4ec !important;\n}\n\n.pink.lighten-4 {\n background-color: #f8bbd0 !important;\n}\n\n.pink-text.text-lighten-4 {\n color: #f8bbd0 !important;\n}\n\n.pink-waves.waves-lighten-4 .waves-ripple {\n background-color: #f8bbd0 !important;\n}\n\n.pink.lighten-3 {\n background-color: #f48fb1 !important;\n}\n\n.pink-text.text-lighten-3 {\n color: #f48fb1 !important;\n}\n\n.pink-waves.waves-lighten-3 .waves-ripple {\n background-color: #f48fb1 !important;\n}\n\n.pink.lighten-2 {\n background-color: #f06292 !important;\n}\n\n.pink-text.text-lighten-2 {\n color: #f06292 !important;\n}\n\n.pink-waves.waves-lighten-2 .waves-ripple {\n background-color: #f06292 !important;\n}\n\n.pink.lighten-1 {\n background-color: #ec407a !important;\n}\n\n.pink-text.text-lighten-1 {\n color: #ec407a !important;\n}\n\n.pink-waves.waves-lighten-1 .waves-ripple {\n background-color: #ec407a !important;\n}\n\n.pink.darken-1 {\n background-color: #d81b60 !important;\n}\n\n.pink-text.text-darken-1 {\n color: #d81b60 !important;\n}\n\n.pink-waves.waves-darken-1 .waves-ripple {\n background-color: #d81b60 !important;\n}\n\n.pink.darken-2 {\n background-color: #c2185b !important;\n}\n\n.pink-text.text-darken-2 {\n color: #c2185b !important;\n}\n\n.pink-waves.waves-darken-2 .waves-ripple {\n background-color: #c2185b !important;\n}\n\n.pink.darken-3 {\n background-color: #ad1457 !important;\n}\n\n.pink-text.text-darken-3 {\n color: #ad1457 !important;\n}\n\n.pink-waves.waves-darken-3 .waves-ripple {\n background-color: #ad1457 !important;\n}\n\n.pink.darken-4 {\n background-color: #880e4f !important;\n}\n\n.pink-text.text-darken-4 {\n color: #880e4f !important;\n}\n\n.pink-waves.waves-darken-4 .waves-ripple {\n background-color: #880e4f !important;\n}\n\n.pink.accent-1 {\n background-color: #ff80ab !important;\n}\n\n.pink-text.text-accent-1 {\n color: #ff80ab !important;\n}\n\n.pink-waves.waves-accent-1 .waves-ripple {\n background-color: #ff80ab !important;\n}\n\n.pink.accent-2 {\n background-color: #ff4081 !important;\n}\n\n.pink-text.text-accent-2 {\n color: #ff4081 !important;\n}\n\n.pink-waves.waves-accent-2 .waves-ripple {\n background-color: #ff4081 !important;\n}\n\n.pink.accent-3 {\n background-color: #f50057 !important;\n}\n\n.pink-text.text-accent-3 {\n color: #f50057 !important;\n}\n\n.pink-waves.waves-accent-3 .waves-ripple {\n background-color: #f50057 !important;\n}\n\n.pink.accent-4 {\n background-color: #c51162 !important;\n}\n\n.pink-text.text-accent-4 {\n color: #c51162 !important;\n}\n\n.pink-waves.waves-accent-4 .waves-ripple {\n background-color: #c51162 !important;\n}\n\n.purple {\n background-color: #9c27b0 !important;\n}\n\n.purple-text {\n color: #9c27b0 !important;\n}\n\n.purple-waves .waves-ripple {\n background-color: #9c27b0 !important;\n}\n\n.purple.lighten-5 {\n background-color: #f3e5f5 !important;\n}\n\n.purple-text.text-lighten-5 {\n color: #f3e5f5 !important;\n}\n\n.purple-waves.waves-lighten-5 .waves-ripple {\n background-color: #f3e5f5 !important;\n}\n\n.purple.lighten-4 {\n background-color: #e1bee7 !important;\n}\n\n.purple-text.text-lighten-4 {\n color: #e1bee7 !important;\n}\n\n.purple-waves.waves-lighten-4 .waves-ripple {\n background-color: #e1bee7 !important;\n}\n\n.purple.lighten-3 {\n background-color: #ce93d8 !important;\n}\n\n.purple-text.text-lighten-3 {\n color: #ce93d8 !important;\n}\n\n.purple-waves.waves-lighten-3 .waves-ripple {\n background-color: #ce93d8 !important;\n}\n\n.purple.lighten-2 {\n background-color: #ba68c8 !important;\n}\n\n.purple-text.text-lighten-2 {\n color: #ba68c8 !important;\n}\n\n.purple-waves.waves-lighten-2 .waves-ripple {\n background-color: #ba68c8 !important;\n}\n\n.purple.lighten-1 {\n background-color: #ab47bc !important;\n}\n\n.purple-text.text-lighten-1 {\n color: #ab47bc !important;\n}\n\n.purple-waves.waves-lighten-1 .waves-ripple {\n background-color: #ab47bc !important;\n}\n\n.purple.darken-1 {\n background-color: #8e24aa !important;\n}\n\n.purple-text.text-darken-1 {\n color: #8e24aa !important;\n}\n\n.purple-waves.waves-darken-1 .waves-ripple {\n background-color: #8e24aa !important;\n}\n\n.purple.darken-2 {\n background-color: #7b1fa2 !important;\n}\n\n.purple-text.text-darken-2 {\n color: #7b1fa2 !important;\n}\n\n.purple-waves.waves-darken-2 .waves-ripple {\n background-color: #7b1fa2 !important;\n}\n\n.purple.darken-3 {\n background-color: #6a1b9a !important;\n}\n\n.purple-text.text-darken-3 {\n color: #6a1b9a !important;\n}\n\n.purple-waves.waves-darken-3 .waves-ripple {\n background-color: #6a1b9a !important;\n}\n\n.purple.darken-4 {\n background-color: #4a148c !important;\n}\n\n.purple-text.text-darken-4 {\n color: #4a148c !important;\n}\n\n.purple-waves.waves-darken-4 .waves-ripple {\n background-color: #4a148c !important;\n}\n\n.purple.accent-1 {\n background-color: #ea80fc !important;\n}\n\n.purple-text.text-accent-1 {\n color: #ea80fc !important;\n}\n\n.purple-waves.waves-accent-1 .waves-ripple {\n background-color: #ea80fc !important;\n}\n\n.purple.accent-2 {\n background-color: #e040fb !important;\n}\n\n.purple-text.text-accent-2 {\n color: #e040fb !important;\n}\n\n.purple-waves.waves-accent-2 .waves-ripple {\n background-color: #e040fb !important;\n}\n\n.purple.accent-3 {\n background-color: #d500f9 !important;\n}\n\n.purple-text.text-accent-3 {\n color: #d500f9 !important;\n}\n\n.purple-waves.waves-accent-3 .waves-ripple {\n background-color: #d500f9 !important;\n}\n\n.purple.accent-4 {\n background-color: #aa00ff !important;\n}\n\n.purple-text.text-accent-4 {\n color: #aa00ff !important;\n}\n\n.purple-waves.waves-accent-4 .waves-ripple {\n background-color: #aa00ff !important;\n}\n\n.deep-purple {\n background-color: #673ab7 !important;\n}\n\n.deep-purple-text {\n color: #673ab7 !important;\n}\n\n.deep-purple-waves .waves-ripple {\n background-color: #673ab7 !important;\n}\n\n.deep-purple.lighten-5 {\n background-color: #ede7f6 !important;\n}\n\n.deep-purple-text.text-lighten-5 {\n color: #ede7f6 !important;\n}\n\n.deep-purple-waves.waves-lighten-5 .waves-ripple {\n background-color: #ede7f6 !important;\n}\n\n.deep-purple.lighten-4 {\n background-color: #d1c4e9 !important;\n}\n\n.deep-purple-text.text-lighten-4 {\n color: #d1c4e9 !important;\n}\n\n.deep-purple-waves.waves-lighten-4 .waves-ripple {\n background-color: #d1c4e9 !important;\n}\n\n.deep-purple.lighten-3 {\n background-color: #b39ddb !important;\n}\n\n.deep-purple-text.text-lighten-3 {\n color: #b39ddb !important;\n}\n\n.deep-purple-waves.waves-lighten-3 .waves-ripple {\n background-color: #b39ddb !important;\n}\n\n.deep-purple.lighten-2 {\n background-color: #9575cd !important;\n}\n\n.deep-purple-text.text-lighten-2 {\n color: #9575cd !important;\n}\n\n.deep-purple-waves.waves-lighten-2 .waves-ripple {\n background-color: #9575cd !important;\n}\n\n.deep-purple.lighten-1 {\n background-color: #7e57c2 !important;\n}\n\n.deep-purple-text.text-lighten-1 {\n color: #7e57c2 !important;\n}\n\n.deep-purple-waves.waves-lighten-1 .waves-ripple {\n background-color: #7e57c2 !important;\n}\n\n.deep-purple.darken-1 {\n background-color: #5e35b1 !important;\n}\n\n.deep-purple-text.text-darken-1 {\n color: #5e35b1 !important;\n}\n\n.deep-purple-waves.waves-darken-1 .waves-ripple {\n background-color: #5e35b1 !important;\n}\n\n.deep-purple.darken-2 {\n background-color: #512da8 !important;\n}\n\n.deep-purple-text.text-darken-2 {\n color: #512da8 !important;\n}\n\n.deep-purple-waves.waves-darken-2 .waves-ripple {\n background-color: #512da8 !important;\n}\n\n.deep-purple.darken-3 {\n background-color: #4527a0 !important;\n}\n\n.deep-purple-text.text-darken-3 {\n color: #4527a0 !important;\n}\n\n.deep-purple-waves.waves-darken-3 .waves-ripple {\n background-color: #4527a0 !important;\n}\n\n.deep-purple.darken-4 {\n background-color: #311b92 !important;\n}\n\n.deep-purple-text.text-darken-4 {\n color: #311b92 !important;\n}\n\n.deep-purple-waves.waves-darken-4 .waves-ripple {\n background-color: #311b92 !important;\n}\n\n.deep-purple.accent-1 {\n background-color: #b388ff !important;\n}\n\n.deep-purple-text.text-accent-1 {\n color: #b388ff !important;\n}\n\n.deep-purple-waves.waves-accent-1 .waves-ripple {\n background-color: #b388ff !important;\n}\n\n.deep-purple.accent-2 {\n background-color: #7c4dff !important;\n}\n\n.deep-purple-text.text-accent-2 {\n color: #7c4dff !important;\n}\n\n.deep-purple-waves.waves-accent-2 .waves-ripple {\n background-color: #7c4dff !important;\n}\n\n.deep-purple.accent-3 {\n background-color: #651fff !important;\n}\n\n.deep-purple-text.text-accent-3 {\n color: #651fff !important;\n}\n\n.deep-purple-waves.waves-accent-3 .waves-ripple {\n background-color: #651fff !important;\n}\n\n.deep-purple.accent-4 {\n background-color: #6200ea !important;\n}\n\n.deep-purple-text.text-accent-4 {\n color: #6200ea !important;\n}\n\n.deep-purple-waves.waves-accent-4 .waves-ripple {\n background-color: #6200ea !important;\n}\n\n.indigo {\n background-color: #3f51b5 !important;\n}\n\n.indigo-text {\n color: #3f51b5 !important;\n}\n\n.indigo-waves .waves-ripple {\n background-color: #3f51b5 !important;\n}\n\n.indigo.lighten-5 {\n background-color: #e8eaf6 !important;\n}\n\n.indigo-text.text-lighten-5 {\n color: #e8eaf6 !important;\n}\n\n.indigo-waves.waves-lighten-5 .waves-ripple {\n background-color: #e8eaf6 !important;\n}\n\n.indigo.lighten-4 {\n background-color: #c5cae9 !important;\n}\n\n.indigo-text.text-lighten-4 {\n color: #c5cae9 !important;\n}\n\n.indigo-waves.waves-lighten-4 .waves-ripple {\n background-color: #c5cae9 !important;\n}\n\n.indigo.lighten-3 {\n background-color: #9fa8da !important;\n}\n\n.indigo-text.text-lighten-3 {\n color: #9fa8da !important;\n}\n\n.indigo-waves.waves-lighten-3 .waves-ripple {\n background-color: #9fa8da !important;\n}\n\n.indigo.lighten-2 {\n background-color: #7986cb !important;\n}\n\n.indigo-text.text-lighten-2 {\n color: #7986cb !important;\n}\n\n.indigo-waves.waves-lighten-2 .waves-ripple {\n background-color: #7986cb !important;\n}\n\n.indigo.lighten-1 {\n background-color: #5c6bc0 !important;\n}\n\n.indigo-text.text-lighten-1 {\n color: #5c6bc0 !important;\n}\n\n.indigo-waves.waves-lighten-1 .waves-ripple {\n background-color: #5c6bc0 !important;\n}\n\n.indigo.darken-1 {\n background-color: #3949ab !important;\n}\n\n.indigo-text.text-darken-1 {\n color: #3949ab !important;\n}\n\n.indigo-waves.waves-darken-1 .waves-ripple {\n background-color: #3949ab !important;\n}\n\n.indigo.darken-2 {\n background-color: #303f9f !important;\n}\n\n.indigo-text.text-darken-2 {\n color: #303f9f !important;\n}\n\n.indigo-waves.waves-darken-2 .waves-ripple {\n background-color: #303f9f !important;\n}\n\n.indigo.darken-3 {\n background-color: #283593 !important;\n}\n\n.indigo-text.text-darken-3 {\n color: #283593 !important;\n}\n\n.indigo-waves.waves-darken-3 .waves-ripple {\n background-color: #283593 !important;\n}\n\n.indigo.darken-4 {\n background-color: #1a237e !important;\n}\n\n.indigo-text.text-darken-4 {\n color: #1a237e !important;\n}\n\n.indigo-waves.waves-darken-4 .waves-ripple {\n background-color: #1a237e !important;\n}\n\n.indigo.accent-1 {\n background-color: #8c9eff !important;\n}\n\n.indigo-text.text-accent-1 {\n color: #8c9eff !important;\n}\n\n.indigo-waves.waves-accent-1 .waves-ripple {\n background-color: #8c9eff !important;\n}\n\n.indigo.accent-2 {\n background-color: #536dfe !important;\n}\n\n.indigo-text.text-accent-2 {\n color: #536dfe !important;\n}\n\n.indigo-waves.waves-accent-2 .waves-ripple {\n background-color: #536dfe !important;\n}\n\n.indigo.accent-3 {\n background-color: #3d5afe !important;\n}\n\n.indigo-text.text-accent-3 {\n color: #3d5afe !important;\n}\n\n.indigo-waves.waves-accent-3 .waves-ripple {\n background-color: #3d5afe !important;\n}\n\n.indigo.accent-4 {\n background-color: #304ffe !important;\n}\n\n.indigo-text.text-accent-4 {\n color: #304ffe !important;\n}\n\n.indigo-waves.waves-accent-4 .waves-ripple {\n background-color: #304ffe !important;\n}\n\n.blue {\n background-color: #2196f3 !important;\n}\n\n.blue-text {\n color: #2196f3 !important;\n}\n\n.blue-waves .waves-ripple {\n background-color: #2196f3 !important;\n}\n\n.blue.lighten-5 {\n background-color: #e3f2fd !important;\n}\n\n.blue-text.text-lighten-5 {\n color: #e3f2fd !important;\n}\n\n.blue-waves.waves-lighten-5 .waves-ripple {\n background-color: #e3f2fd !important;\n}\n\n.blue.lighten-4 {\n background-color: #bbdefb !important;\n}\n\n.blue-text.text-lighten-4 {\n color: #bbdefb !important;\n}\n\n.blue-waves.waves-lighten-4 .waves-ripple {\n background-color: #bbdefb !important;\n}\n\n.blue.lighten-3 {\n background-color: #90caf9 !important;\n}\n\n.blue-text.text-lighten-3 {\n color: #90caf9 !important;\n}\n\n.blue-waves.waves-lighten-3 .waves-ripple {\n background-color: #90caf9 !important;\n}\n\n.blue.lighten-2 {\n background-color: #64b5f6 !important;\n}\n\n.blue-text.text-lighten-2 {\n color: #64b5f6 !important;\n}\n\n.blue-waves.waves-lighten-2 .waves-ripple {\n background-color: #64b5f6 !important;\n}\n\n.blue.lighten-1 {\n background-color: #42a5f5 !important;\n}\n\n.blue-text.text-lighten-1 {\n color: #42a5f5 !important;\n}\n\n.blue-waves.waves-lighten-1 .waves-ripple {\n background-color: #42a5f5 !important;\n}\n\n.blue.darken-1 {\n background-color: #1e88e5 !important;\n}\n\n.blue-text.text-darken-1 {\n color: #1e88e5 !important;\n}\n\n.blue-waves.waves-darken-1 .waves-ripple {\n background-color: #1e88e5 !important;\n}\n\n.blue.darken-2 {\n background-color: #1976d2 !important;\n}\n\n.blue-text.text-darken-2 {\n color: #1976d2 !important;\n}\n\n.blue-waves.waves-darken-2 .waves-ripple {\n background-color: #1976d2 !important;\n}\n\n.blue.darken-3 {\n background-color: #1565c0 !important;\n}\n\n.blue-text.text-darken-3 {\n color: #1565c0 !important;\n}\n\n.blue-waves.waves-darken-3 .waves-ripple {\n background-color: #1565c0 !important;\n}\n\n.blue.darken-4 {\n background-color: #0d47a1 !important;\n}\n\n.blue-text.text-darken-4 {\n color: #0d47a1 !important;\n}\n\n.blue-waves.waves-darken-4 .waves-ripple {\n background-color: #0d47a1 !important;\n}\n\n.blue.accent-1 {\n background-color: #82b1ff !important;\n}\n\n.blue-text.text-accent-1 {\n color: #82b1ff !important;\n}\n\n.blue-waves.waves-accent-1 .waves-ripple {\n background-color: #82b1ff !important;\n}\n\n.blue.accent-2 {\n background-color: #448aff !important;\n}\n\n.blue-text.text-accent-2 {\n color: #448aff !important;\n}\n\n.blue-waves.waves-accent-2 .waves-ripple {\n background-color: #448aff !important;\n}\n\n.blue.accent-3 {\n background-color: #2979ff !important;\n}\n\n.blue-text.text-accent-3 {\n color: #2979ff !important;\n}\n\n.blue-waves.waves-accent-3 .waves-ripple {\n background-color: #2979ff !important;\n}\n\n.blue.accent-4 {\n background-color: #2962ff !important;\n}\n\n.blue-text.text-accent-4 {\n color: #2962ff !important;\n}\n\n.blue-waves.waves-accent-4 .waves-ripple {\n background-color: #2962ff !important;\n}\n\n.light-blue {\n background-color: #03a9f4 !important;\n}\n\n.light-blue-text {\n color: #03a9f4 !important;\n}\n\n.light-blue-waves .waves-ripple {\n background-color: #03a9f4 !important;\n}\n\n.light-blue.lighten-5 {\n background-color: #e1f5fe !important;\n}\n\n.light-blue-text.text-lighten-5 {\n color: #e1f5fe !important;\n}\n\n.light-blue-waves.waves-lighten-5 .waves-ripple {\n background-color: #e1f5fe !important;\n}\n\n.light-blue.lighten-4 {\n background-color: #b3e5fc !important;\n}\n\n.light-blue-text.text-lighten-4 {\n color: #b3e5fc !important;\n}\n\n.light-blue-waves.waves-lighten-4 .waves-ripple {\n background-color: #b3e5fc !important;\n}\n\n.light-blue.lighten-3 {\n background-color: #81d4fa !important;\n}\n\n.light-blue-text.text-lighten-3 {\n color: #81d4fa !important;\n}\n\n.light-blue-waves.waves-lighten-3 .waves-ripple {\n background-color: #81d4fa !important;\n}\n\n.light-blue.lighten-2 {\n background-color: #4fc3f7 !important;\n}\n\n.light-blue-text.text-lighten-2 {\n color: #4fc3f7 !important;\n}\n\n.light-blue-waves.waves-lighten-2 .waves-ripple {\n background-color: #4fc3f7 !important;\n}\n\n.light-blue.lighten-1 {\n background-color: #29b6f6 !important;\n}\n\n.light-blue-text.text-lighten-1 {\n color: #29b6f6 !important;\n}\n\n.light-blue-waves.waves-lighten-1 .waves-ripple {\n background-color: #29b6f6 !important;\n}\n\n.light-blue.darken-1 {\n background-color: #039be5 !important;\n}\n\n.light-blue-text.text-darken-1 {\n color: #039be5 !important;\n}\n\n.light-blue-waves.waves-darken-1 .waves-ripple {\n background-color: #039be5 !important;\n}\n\n.light-blue.darken-2 {\n background-color: #0288d1 !important;\n}\n\n.light-blue-text.text-darken-2 {\n color: #0288d1 !important;\n}\n\n.light-blue-waves.waves-darken-2 .waves-ripple {\n background-color: #0288d1 !important;\n}\n\n.light-blue.darken-3 {\n background-color: #0277bd !important;\n}\n\n.light-blue-text.text-darken-3 {\n color: #0277bd !important;\n}\n\n.light-blue-waves.waves-darken-3 .waves-ripple {\n background-color: #0277bd !important;\n}\n\n.light-blue.darken-4 {\n background-color: #01579b !important;\n}\n\n.light-blue-text.text-darken-4 {\n color: #01579b !important;\n}\n\n.light-blue-waves.waves-darken-4 .waves-ripple {\n background-color: #01579b !important;\n}\n\n.light-blue.accent-1 {\n background-color: #80d8ff !important;\n}\n\n.light-blue-text.text-accent-1 {\n color: #80d8ff !important;\n}\n\n.light-blue-waves.waves-accent-1 .waves-ripple {\n background-color: #80d8ff !important;\n}\n\n.light-blue.accent-2 {\n background-color: #40c4ff !important;\n}\n\n.light-blue-text.text-accent-2 {\n color: #40c4ff !important;\n}\n\n.light-blue-waves.waves-accent-2 .waves-ripple {\n background-color: #40c4ff !important;\n}\n\n.light-blue.accent-3 {\n background-color: #00b0ff !important;\n}\n\n.light-blue-text.text-accent-3 {\n color: #00b0ff !important;\n}\n\n.light-blue-waves.waves-accent-3 .waves-ripple {\n background-color: #00b0ff !important;\n}\n\n.light-blue.accent-4 {\n background-color: #0091ea !important;\n}\n\n.light-blue-text.text-accent-4 {\n color: #0091ea !important;\n}\n\n.light-blue-waves.waves-accent-4 .waves-ripple {\n background-color: #0091ea !important;\n}\n\n.cyan {\n background-color: #00bcd4 !important;\n}\n\n.cyan-text {\n color: #00bcd4 !important;\n}\n\n.cyan-waves .waves-ripple {\n background-color: #00bcd4 !important;\n}\n\n.cyan.lighten-5 {\n background-color: #e0f7fa !important;\n}\n\n.cyan-text.text-lighten-5 {\n color: #e0f7fa !important;\n}\n\n.cyan-waves.waves-lighten-5 .waves-ripple {\n background-color: #e0f7fa !important;\n}\n\n.cyan.lighten-4 {\n background-color: #b2ebf2 !important;\n}\n\n.cyan-text.text-lighten-4 {\n color: #b2ebf2 !important;\n}\n\n.cyan-waves.waves-lighten-4 .waves-ripple {\n background-color: #b2ebf2 !important;\n}\n\n.cyan.lighten-3 {\n background-color: #80deea !important;\n}\n\n.cyan-text.text-lighten-3 {\n color: #80deea !important;\n}\n\n.cyan-waves.waves-lighten-3 .waves-ripple {\n background-color: #80deea !important;\n}\n\n.cyan.lighten-2 {\n background-color: #4dd0e1 !important;\n}\n\n.cyan-text.text-lighten-2 {\n color: #4dd0e1 !important;\n}\n\n.cyan-waves.waves-lighten-2 .waves-ripple {\n background-color: #4dd0e1 !important;\n}\n\n.cyan.lighten-1 {\n background-color: #26c6da !important;\n}\n\n.cyan-text.text-lighten-1 {\n color: #26c6da !important;\n}\n\n.cyan-waves.waves-lighten-1 .waves-ripple {\n background-color: #26c6da !important;\n}\n\n.cyan.darken-1 {\n background-color: #00acc1 !important;\n}\n\n.cyan-text.text-darken-1 {\n color: #00acc1 !important;\n}\n\n.cyan-waves.waves-darken-1 .waves-ripple {\n background-color: #00acc1 !important;\n}\n\n.cyan.darken-2 {\n background-color: #0097a7 !important;\n}\n\n.cyan-text.text-darken-2 {\n color: #0097a7 !important;\n}\n\n.cyan-waves.waves-darken-2 .waves-ripple {\n background-color: #0097a7 !important;\n}\n\n.cyan.darken-3 {\n background-color: #00838f !important;\n}\n\n.cyan-text.text-darken-3 {\n color: #00838f !important;\n}\n\n.cyan-waves.waves-darken-3 .waves-ripple {\n background-color: #00838f !important;\n}\n\n.cyan.darken-4 {\n background-color: #006064 !important;\n}\n\n.cyan-text.text-darken-4 {\n color: #006064 !important;\n}\n\n.cyan-waves.waves-darken-4 .waves-ripple {\n background-color: #006064 !important;\n}\n\n.cyan.accent-1 {\n background-color: #84ffff !important;\n}\n\n.cyan-text.text-accent-1 {\n color: #84ffff !important;\n}\n\n.cyan-waves.waves-accent-1 .waves-ripple {\n background-color: #84ffff !important;\n}\n\n.cyan.accent-2 {\n background-color: #18ffff !important;\n}\n\n.cyan-text.text-accent-2 {\n color: #18ffff !important;\n}\n\n.cyan-waves.waves-accent-2 .waves-ripple {\n background-color: #18ffff !important;\n}\n\n.cyan.accent-3 {\n background-color: #00e5ff !important;\n}\n\n.cyan-text.text-accent-3 {\n color: #00e5ff !important;\n}\n\n.cyan-waves.waves-accent-3 .waves-ripple {\n background-color: #00e5ff !important;\n}\n\n.cyan.accent-4 {\n background-color: #00b8d4 !important;\n}\n\n.cyan-text.text-accent-4 {\n color: #00b8d4 !important;\n}\n\n.cyan-waves.waves-accent-4 .waves-ripple {\n background-color: #00b8d4 !important;\n}\n\n.teal {\n background-color: #009688 !important;\n}\n\n.teal-text {\n color: #009688 !important;\n}\n\n.teal-waves .waves-ripple {\n background-color: #009688 !important;\n}\n\n.teal.lighten-5 {\n background-color: #e0f2f1 !important;\n}\n\n.teal-text.text-lighten-5 {\n color: #e0f2f1 !important;\n}\n\n.teal-waves.waves-lighten-5 .waves-ripple {\n background-color: #e0f2f1 !important;\n}\n\n.teal.lighten-4 {\n background-color: #b2dfdb !important;\n}\n\n.teal-text.text-lighten-4 {\n color: #b2dfdb !important;\n}\n\n.teal-waves.waves-lighten-4 .waves-ripple {\n background-color: #b2dfdb !important;\n}\n\n.teal.lighten-3 {\n background-color: #80cbc4 !important;\n}\n\n.teal-text.text-lighten-3 {\n color: #80cbc4 !important;\n}\n\n.teal-waves.waves-lighten-3 .waves-ripple {\n background-color: #80cbc4 !important;\n}\n\n.teal.lighten-2 {\n background-color: #4db6ac !important;\n}\n\n.teal-text.text-lighten-2 {\n color: #4db6ac !important;\n}\n\n.teal-waves.waves-lighten-2 .waves-ripple {\n background-color: #4db6ac !important;\n}\n\n.teal.lighten-1 {\n background-color: #26a69a !important;\n}\n\n.teal-text.text-lighten-1 {\n color: #26a69a !important;\n}\n\n.teal-waves.waves-lighten-1 .waves-ripple {\n background-color: #26a69a !important;\n}\n\n.teal.darken-1 {\n background-color: #00897b !important;\n}\n\n.teal-text.text-darken-1 {\n color: #00897b !important;\n}\n\n.teal-waves.waves-darken-1 .waves-ripple {\n background-color: #00897b !important;\n}\n\n.teal.darken-2 {\n background-color: #00796b !important;\n}\n\n.teal-text.text-darken-2 {\n color: #00796b !important;\n}\n\n.teal-waves.waves-darken-2 .waves-ripple {\n background-color: #00796b !important;\n}\n\n.teal.darken-3 {\n background-color: #00695c !important;\n}\n\n.teal-text.text-darken-3 {\n color: #00695c !important;\n}\n\n.teal-waves.waves-darken-3 .waves-ripple {\n background-color: #00695c !important;\n}\n\n.teal.darken-4 {\n background-color: #004d40 !important;\n}\n\n.teal-text.text-darken-4 {\n color: #004d40 !important;\n}\n\n.teal-waves.waves-darken-4 .waves-ripple {\n background-color: #004d40 !important;\n}\n\n.teal.accent-1 {\n background-color: #a7ffeb !important;\n}\n\n.teal-text.text-accent-1 {\n color: #a7ffeb !important;\n}\n\n.teal-waves.waves-accent-1 .waves-ripple {\n background-color: #a7ffeb !important;\n}\n\n.teal.accent-2 {\n background-color: #64ffda !important;\n}\n\n.teal-text.text-accent-2 {\n color: #64ffda !important;\n}\n\n.teal-waves.waves-accent-2 .waves-ripple {\n background-color: #64ffda !important;\n}\n\n.teal.accent-3 {\n background-color: #1de9b6 !important;\n}\n\n.teal-text.text-accent-3 {\n color: #1de9b6 !important;\n}\n\n.teal-waves.waves-accent-3 .waves-ripple {\n background-color: #1de9b6 !important;\n}\n\n.teal.accent-4 {\n background-color: #00bfa5 !important;\n}\n\n.teal-text.text-accent-4 {\n color: #00bfa5 !important;\n}\n\n.teal-waves.waves-accent-4 .waves-ripple {\n background-color: #00bfa5 !important;\n}\n\n.green {\n background-color: #4caf50 !important;\n}\n\n.green-text {\n color: #4caf50 !important;\n}\n\n.green-waves .waves-ripple {\n background-color: #4caf50 !important;\n}\n\n.green.lighten-5 {\n background-color: #e8f5e9 !important;\n}\n\n.green-text.text-lighten-5 {\n color: #e8f5e9 !important;\n}\n\n.green-waves.waves-lighten-5 .waves-ripple {\n background-color: #e8f5e9 !important;\n}\n\n.green.lighten-4 {\n background-color: #c8e6c9 !important;\n}\n\n.green-text.text-lighten-4 {\n color: #c8e6c9 !important;\n}\n\n.green-waves.waves-lighten-4 .waves-ripple {\n background-color: #c8e6c9 !important;\n}\n\n.green.lighten-3 {\n background-color: #a5d6a7 !important;\n}\n\n.green-text.text-lighten-3 {\n color: #a5d6a7 !important;\n}\n\n.green-waves.waves-lighten-3 .waves-ripple {\n background-color: #a5d6a7 !important;\n}\n\n.green.lighten-2 {\n background-color: #81c784 !important;\n}\n\n.green-text.text-lighten-2 {\n color: #81c784 !important;\n}\n\n.green-waves.waves-lighten-2 .waves-ripple {\n background-color: #81c784 !important;\n}\n\n.green.lighten-1 {\n background-color: #66bb6a !important;\n}\n\n.green-text.text-lighten-1 {\n color: #66bb6a !important;\n}\n\n.green-waves.waves-lighten-1 .waves-ripple {\n background-color: #66bb6a !important;\n}\n\n.green.darken-1 {\n background-color: #43a047 !important;\n}\n\n.green-text.text-darken-1 {\n color: #43a047 !important;\n}\n\n.green-waves.waves-darken-1 .waves-ripple {\n background-color: #43a047 !important;\n}\n\n.green.darken-2 {\n background-color: #388e3c !important;\n}\n\n.green-text.text-darken-2 {\n color: #388e3c !important;\n}\n\n.green-waves.waves-darken-2 .waves-ripple {\n background-color: #388e3c !important;\n}\n\n.green.darken-3 {\n background-color: #2e7d32 !important;\n}\n\n.green-text.text-darken-3 {\n color: #2e7d32 !important;\n}\n\n.green-waves.waves-darken-3 .waves-ripple {\n background-color: #2e7d32 !important;\n}\n\n.green.darken-4 {\n background-color: #1b5e20 !important;\n}\n\n.green-text.text-darken-4 {\n color: #1b5e20 !important;\n}\n\n.green-waves.waves-darken-4 .waves-ripple {\n background-color: #1b5e20 !important;\n}\n\n.green.accent-1 {\n background-color: #b9f6ca !important;\n}\n\n.green-text.text-accent-1 {\n color: #b9f6ca !important;\n}\n\n.green-waves.waves-accent-1 .waves-ripple {\n background-color: #b9f6ca !important;\n}\n\n.green.accent-2 {\n background-color: #69f0ae !important;\n}\n\n.green-text.text-accent-2 {\n color: #69f0ae !important;\n}\n\n.green-waves.waves-accent-2 .waves-ripple {\n background-color: #69f0ae !important;\n}\n\n.green.accent-3 {\n background-color: #00e676 !important;\n}\n\n.green-text.text-accent-3 {\n color: #00e676 !important;\n}\n\n.green-waves.waves-accent-3 .waves-ripple {\n background-color: #00e676 !important;\n}\n\n.green.accent-4 {\n background-color: #00c853 !important;\n}\n\n.green-text.text-accent-4 {\n color: #00c853 !important;\n}\n\n.green-waves.waves-accent-4 .waves-ripple {\n background-color: #00c853 !important;\n}\n\n.light-green {\n background-color: #8bc34a !important;\n}\n\n.light-green-text {\n color: #8bc34a !important;\n}\n\n.light-green-waves .waves-ripple {\n background-color: #8bc34a !important;\n}\n\n.light-green.lighten-5 {\n background-color: #f1f8e9 !important;\n}\n\n.light-green-text.text-lighten-5 {\n color: #f1f8e9 !important;\n}\n\n.light-green-waves.waves-lighten-5 .waves-ripple {\n background-color: #f1f8e9 !important;\n}\n\n.light-green.lighten-4 {\n background-color: #dcedc8 !important;\n}\n\n.light-green-text.text-lighten-4 {\n color: #dcedc8 !important;\n}\n\n.light-green-waves.waves-lighten-4 .waves-ripple {\n background-color: #dcedc8 !important;\n}\n\n.light-green.lighten-3 {\n background-color: #c5e1a5 !important;\n}\n\n.light-green-text.text-lighten-3 {\n color: #c5e1a5 !important;\n}\n\n.light-green-waves.waves-lighten-3 .waves-ripple {\n background-color: #c5e1a5 !important;\n}\n\n.light-green.lighten-2 {\n background-color: #aed581 !important;\n}\n\n.light-green-text.text-lighten-2 {\n color: #aed581 !important;\n}\n\n.light-green-waves.waves-lighten-2 .waves-ripple {\n background-color: #aed581 !important;\n}\n\n.light-green.lighten-1 {\n background-color: #9ccc65 !important;\n}\n\n.light-green-text.text-lighten-1 {\n color: #9ccc65 !important;\n}\n\n.light-green-waves.waves-lighten-1 .waves-ripple {\n background-color: #9ccc65 !important;\n}\n\n.light-green.darken-1 {\n background-color: #7cb342 !important;\n}\n\n.light-green-text.text-darken-1 {\n color: #7cb342 !important;\n}\n\n.light-green-waves.waves-darken-1 .waves-ripple {\n background-color: #7cb342 !important;\n}\n\n.light-green.darken-2 {\n background-color: #689f38 !important;\n}\n\n.light-green-text.text-darken-2 {\n color: #689f38 !important;\n}\n\n.light-green-waves.waves-darken-2 .waves-ripple {\n background-color: #689f38 !important;\n}\n\n.light-green.darken-3 {\n background-color: #558b2f !important;\n}\n\n.light-green-text.text-darken-3 {\n color: #558b2f !important;\n}\n\n.light-green-waves.waves-darken-3 .waves-ripple {\n background-color: #558b2f !important;\n}\n\n.light-green.darken-4 {\n background-color: #33691e !important;\n}\n\n.light-green-text.text-darken-4 {\n color: #33691e !important;\n}\n\n.light-green-waves.waves-darken-4 .waves-ripple {\n background-color: #33691e !important;\n}\n\n.light-green.accent-1 {\n background-color: #ccff90 !important;\n}\n\n.light-green-text.text-accent-1 {\n color: #ccff90 !important;\n}\n\n.light-green-waves.waves-accent-1 .waves-ripple {\n background-color: #ccff90 !important;\n}\n\n.light-green.accent-2 {\n background-color: #b2ff59 !important;\n}\n\n.light-green-text.text-accent-2 {\n color: #b2ff59 !important;\n}\n\n.light-green-waves.waves-accent-2 .waves-ripple {\n background-color: #b2ff59 !important;\n}\n\n.light-green.accent-3 {\n background-color: #76ff03 !important;\n}\n\n.light-green-text.text-accent-3 {\n color: #76ff03 !important;\n}\n\n.light-green-waves.waves-accent-3 .waves-ripple {\n background-color: #76ff03 !important;\n}\n\n.light-green.accent-4 {\n background-color: #64dd17 !important;\n}\n\n.light-green-text.text-accent-4 {\n color: #64dd17 !important;\n}\n\n.light-green-waves.waves-accent-4 .waves-ripple {\n background-color: #64dd17 !important;\n}\n\n.lime {\n background-color: #cddc39 !important;\n}\n\n.lime-text {\n color: #cddc39 !important;\n}\n\n.lime-waves .waves-ripple {\n background-color: #cddc39 !important;\n}\n\n.lime.lighten-5 {\n background-color: #f9fbe7 !important;\n}\n\n.lime-text.text-lighten-5 {\n color: #f9fbe7 !important;\n}\n\n.lime-waves.waves-lighten-5 .waves-ripple {\n background-color: #f9fbe7 !important;\n}\n\n.lime.lighten-4 {\n background-color: #f0f4c3 !important;\n}\n\n.lime-text.text-lighten-4 {\n color: #f0f4c3 !important;\n}\n\n.lime-waves.waves-lighten-4 .waves-ripple {\n background-color: #f0f4c3 !important;\n}\n\n.lime.lighten-3 {\n background-color: #e6ee9c !important;\n}\n\n.lime-text.text-lighten-3 {\n color: #e6ee9c !important;\n}\n\n.lime-waves.waves-lighten-3 .waves-ripple {\n background-color: #e6ee9c !important;\n}\n\n.lime.lighten-2 {\n background-color: #dce775 !important;\n}\n\n.lime-text.text-lighten-2 {\n color: #dce775 !important;\n}\n\n.lime-waves.waves-lighten-2 .waves-ripple {\n background-color: #dce775 !important;\n}\n\n.lime.lighten-1 {\n background-color: #d4e157 !important;\n}\n\n.lime-text.text-lighten-1 {\n color: #d4e157 !important;\n}\n\n.lime-waves.waves-lighten-1 .waves-ripple {\n background-color: #d4e157 !important;\n}\n\n.lime.darken-1 {\n background-color: #c0ca33 !important;\n}\n\n.lime-text.text-darken-1 {\n color: #c0ca33 !important;\n}\n\n.lime-waves.waves-darken-1 .waves-ripple {\n background-color: #c0ca33 !important;\n}\n\n.lime.darken-2 {\n background-color: #afb42b !important;\n}\n\n.lime-text.text-darken-2 {\n color: #afb42b !important;\n}\n\n.lime-waves.waves-darken-2 .waves-ripple {\n background-color: #afb42b !important;\n}\n\n.lime.darken-3 {\n background-color: #9e9d24 !important;\n}\n\n.lime-text.text-darken-3 {\n color: #9e9d24 !important;\n}\n\n.lime-waves.waves-darken-3 .waves-ripple {\n background-color: #9e9d24 !important;\n}\n\n.lime.darken-4 {\n background-color: #827717 !important;\n}\n\n.lime-text.text-darken-4 {\n color: #827717 !important;\n}\n\n.lime-waves.waves-darken-4 .waves-ripple {\n background-color: #827717 !important;\n}\n\n.lime.accent-1 {\n background-color: #f4ff81 !important;\n}\n\n.lime-text.text-accent-1 {\n color: #f4ff81 !important;\n}\n\n.lime-waves.waves-accent-1 .waves-ripple {\n background-color: #f4ff81 !important;\n}\n\n.lime.accent-2 {\n background-color: #eeff41 !important;\n}\n\n.lime-text.text-accent-2 {\n color: #eeff41 !important;\n}\n\n.lime-waves.waves-accent-2 .waves-ripple {\n background-color: #eeff41 !important;\n}\n\n.lime.accent-3 {\n background-color: #c6ff00 !important;\n}\n\n.lime-text.text-accent-3 {\n color: #c6ff00 !important;\n}\n\n.lime-waves.waves-accent-3 .waves-ripple {\n background-color: #c6ff00 !important;\n}\n\n.lime.accent-4 {\n background-color: #aeea00 !important;\n}\n\n.lime-text.text-accent-4 {\n color: #aeea00 !important;\n}\n\n.lime-waves.waves-accent-4 .waves-ripple {\n background-color: #aeea00 !important;\n}\n\n.yellow {\n background-color: #ffeb3b !important;\n}\n\n.yellow-text {\n color: #ffeb3b !important;\n}\n\n.yellow-waves .waves-ripple {\n background-color: #ffeb3b !important;\n}\n\n.yellow.lighten-5 {\n background-color: #fffde7 !important;\n}\n\n.yellow-text.text-lighten-5 {\n color: #fffde7 !important;\n}\n\n.yellow-waves.waves-lighten-5 .waves-ripple {\n background-color: #fffde7 !important;\n}\n\n.yellow.lighten-4 {\n background-color: #fff9c4 !important;\n}\n\n.yellow-text.text-lighten-4 {\n color: #fff9c4 !important;\n}\n\n.yellow-waves.waves-lighten-4 .waves-ripple {\n background-color: #fff9c4 !important;\n}\n\n.yellow.lighten-3 {\n background-color: #fff59d !important;\n}\n\n.yellow-text.text-lighten-3 {\n color: #fff59d !important;\n}\n\n.yellow-waves.waves-lighten-3 .waves-ripple {\n background-color: #fff59d !important;\n}\n\n.yellow.lighten-2 {\n background-color: #fff176 !important;\n}\n\n.yellow-text.text-lighten-2 {\n color: #fff176 !important;\n}\n\n.yellow-waves.waves-lighten-2 .waves-ripple {\n background-color: #fff176 !important;\n}\n\n.yellow.lighten-1 {\n background-color: #ffee58 !important;\n}\n\n.yellow-text.text-lighten-1 {\n color: #ffee58 !important;\n}\n\n.yellow-waves.waves-lighten-1 .waves-ripple {\n background-color: #ffee58 !important;\n}\n\n.yellow.darken-1 {\n background-color: #fdd835 !important;\n}\n\n.yellow-text.text-darken-1 {\n color: #fdd835 !important;\n}\n\n.yellow-waves.waves-darken-1 .waves-ripple {\n background-color: #fdd835 !important;\n}\n\n.yellow.darken-2 {\n background-color: #fbc02d !important;\n}\n\n.yellow-text.text-darken-2 {\n color: #fbc02d !important;\n}\n\n.yellow-waves.waves-darken-2 .waves-ripple {\n background-color: #fbc02d !important;\n}\n\n.yellow.darken-3 {\n background-color: #f9a825 !important;\n}\n\n.yellow-text.text-darken-3 {\n color: #f9a825 !important;\n}\n\n.yellow-waves.waves-darken-3 .waves-ripple {\n background-color: #f9a825 !important;\n}\n\n.yellow.darken-4 {\n background-color: #f57f17 !important;\n}\n\n.yellow-text.text-darken-4 {\n color: #f57f17 !important;\n}\n\n.yellow-waves.waves-darken-4 .waves-ripple {\n background-color: #f57f17 !important;\n}\n\n.yellow.accent-1 {\n background-color: #ffff8d !important;\n}\n\n.yellow-text.text-accent-1 {\n color: #ffff8d !important;\n}\n\n.yellow-waves.waves-accent-1 .waves-ripple {\n background-color: #ffff8d !important;\n}\n\n.yellow.accent-2 {\n background-color: #ffff00 !important;\n}\n\n.yellow-text.text-accent-2 {\n color: #ffff00 !important;\n}\n\n.yellow-waves.waves-accent-2 .waves-ripple {\n background-color: #ffff00 !important;\n}\n\n.yellow.accent-3 {\n background-color: #ffea00 !important;\n}\n\n.yellow-text.text-accent-3 {\n color: #ffea00 !important;\n}\n\n.yellow-waves.waves-accent-3 .waves-ripple {\n background-color: #ffea00 !important;\n}\n\n.yellow.accent-4 {\n background-color: #ffd600 !important;\n}\n\n.yellow-text.text-accent-4 {\n color: #ffd600 !important;\n}\n\n.yellow-waves.waves-accent-4 .waves-ripple {\n background-color: #ffd600 !important;\n}\n\n.amber {\n background-color: #ffc107 !important;\n}\n\n.amber-text {\n color: #ffc107 !important;\n}\n\n.amber-waves .waves-ripple {\n background-color: #ffc107 !important;\n}\n\n.amber.lighten-5 {\n background-color: #fff8e1 !important;\n}\n\n.amber-text.text-lighten-5 {\n color: #fff8e1 !important;\n}\n\n.amber-waves.waves-lighten-5 .waves-ripple {\n background-color: #fff8e1 !important;\n}\n\n.amber.lighten-4 {\n background-color: #ffecb3 !important;\n}\n\n.amber-text.text-lighten-4 {\n color: #ffecb3 !important;\n}\n\n.amber-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffecb3 !important;\n}\n\n.amber.lighten-3 {\n background-color: #ffe082 !important;\n}\n\n.amber-text.text-lighten-3 {\n color: #ffe082 !important;\n}\n\n.amber-waves.waves-lighten-3 .waves-ripple {\n background-color: #ffe082 !important;\n}\n\n.amber.lighten-2 {\n background-color: #ffd54f !important;\n}\n\n.amber-text.text-lighten-2 {\n color: #ffd54f !important;\n}\n\n.amber-waves.waves-lighten-2 .waves-ripple {\n background-color: #ffd54f !important;\n}\n\n.amber.lighten-1 {\n background-color: #ffca28 !important;\n}\n\n.amber-text.text-lighten-1 {\n color: #ffca28 !important;\n}\n\n.amber-waves.waves-lighten-1 .waves-ripple {\n background-color: #ffca28 !important;\n}\n\n.amber.darken-1 {\n background-color: #ffb300 !important;\n}\n\n.amber-text.text-darken-1 {\n color: #ffb300 !important;\n}\n\n.amber-waves.waves-darken-1 .waves-ripple {\n background-color: #ffb300 !important;\n}\n\n.amber.darken-2 {\n background-color: #ffa000 !important;\n}\n\n.amber-text.text-darken-2 {\n color: #ffa000 !important;\n}\n\n.amber-waves.waves-darken-2 .waves-ripple {\n background-color: #ffa000 !important;\n}\n\n.amber.darken-3 {\n background-color: #ff8f00 !important;\n}\n\n.amber-text.text-darken-3 {\n color: #ff8f00 !important;\n}\n\n.amber-waves.waves-darken-3 .waves-ripple {\n background-color: #ff8f00 !important;\n}\n\n.amber.darken-4 {\n background-color: #ff6f00 !important;\n}\n\n.amber-text.text-darken-4 {\n color: #ff6f00 !important;\n}\n\n.amber-waves.waves-darken-4 .waves-ripple {\n background-color: #ff6f00 !important;\n}\n\n.amber.accent-1 {\n background-color: #ffe57f !important;\n}\n\n.amber-text.text-accent-1 {\n color: #ffe57f !important;\n}\n\n.amber-waves.waves-accent-1 .waves-ripple {\n background-color: #ffe57f !important;\n}\n\n.amber.accent-2 {\n background-color: #ffd740 !important;\n}\n\n.amber-text.text-accent-2 {\n color: #ffd740 !important;\n}\n\n.amber-waves.waves-accent-2 .waves-ripple {\n background-color: #ffd740 !important;\n}\n\n.amber.accent-3 {\n background-color: #ffc400 !important;\n}\n\n.amber-text.text-accent-3 {\n color: #ffc400 !important;\n}\n\n.amber-waves.waves-accent-3 .waves-ripple {\n background-color: #ffc400 !important;\n}\n\n.amber.accent-4 {\n background-color: #ffab00 !important;\n}\n\n.amber-text.text-accent-4 {\n color: #ffab00 !important;\n}\n\n.amber-waves.waves-accent-4 .waves-ripple {\n background-color: #ffab00 !important;\n}\n\n.orange {\n background-color: #ff9800 !important;\n}\n\n.orange-text {\n color: #ff9800 !important;\n}\n\n.orange-waves .waves-ripple {\n background-color: #ff9800 !important;\n}\n\n.orange.lighten-5 {\n background-color: #fff3e0 !important;\n}\n\n.orange-text.text-lighten-5 {\n color: #fff3e0 !important;\n}\n\n.orange-waves.waves-lighten-5 .waves-ripple {\n background-color: #fff3e0 !important;\n}\n\n.orange.lighten-4 {\n background-color: #ffe0b2 !important;\n}\n\n.orange-text.text-lighten-4 {\n color: #ffe0b2 !important;\n}\n\n.orange-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffe0b2 !important;\n}\n\n.orange.lighten-3 {\n background-color: #ffcc80 !important;\n}\n\n.orange-text.text-lighten-3 {\n color: #ffcc80 !important;\n}\n\n.orange-waves.waves-lighten-3 .waves-ripple {\n background-color: #ffcc80 !important;\n}\n\n.orange.lighten-2 {\n background-color: #ffb74d !important;\n}\n\n.orange-text.text-lighten-2 {\n color: #ffb74d !important;\n}\n\n.orange-waves.waves-lighten-2 .waves-ripple {\n background-color: #ffb74d !important;\n}\n\n.orange.lighten-1 {\n background-color: #ffa726 !important;\n}\n\n.orange-text.text-lighten-1 {\n color: #ffa726 !important;\n}\n\n.orange-waves.waves-lighten-1 .waves-ripple {\n background-color: #ffa726 !important;\n}\n\n.orange.darken-1 {\n background-color: #fb8c00 !important;\n}\n\n.orange-text.text-darken-1 {\n color: #fb8c00 !important;\n}\n\n.orange-waves.waves-darken-1 .waves-ripple {\n background-color: #fb8c00 !important;\n}\n\n.orange.darken-2 {\n background-color: #f57c00 !important;\n}\n\n.orange-text.text-darken-2 {\n color: #f57c00 !important;\n}\n\n.orange-waves.waves-darken-2 .waves-ripple {\n background-color: #f57c00 !important;\n}\n\n.orange.darken-3 {\n background-color: #ef6c00 !important;\n}\n\n.orange-text.text-darken-3 {\n color: #ef6c00 !important;\n}\n\n.orange-waves.waves-darken-3 .waves-ripple {\n background-color: #ef6c00 !important;\n}\n\n.orange.darken-4 {\n background-color: #e65100 !important;\n}\n\n.orange-text.text-darken-4 {\n color: #e65100 !important;\n}\n\n.orange-waves.waves-darken-4 .waves-ripple {\n background-color: #e65100 !important;\n}\n\n.orange.accent-1 {\n background-color: #ffd180 !important;\n}\n\n.orange-text.text-accent-1 {\n color: #ffd180 !important;\n}\n\n.orange-waves.waves-accent-1 .waves-ripple {\n background-color: #ffd180 !important;\n}\n\n.orange.accent-2 {\n background-color: #ffab40 !important;\n}\n\n.orange-text.text-accent-2 {\n color: #ffab40 !important;\n}\n\n.orange-waves.waves-accent-2 .waves-ripple {\n background-color: #ffab40 !important;\n}\n\n.orange.accent-3 {\n background-color: #ff9100 !important;\n}\n\n.orange-text.text-accent-3 {\n color: #ff9100 !important;\n}\n\n.orange-waves.waves-accent-3 .waves-ripple {\n background-color: #ff9100 !important;\n}\n\n.orange.accent-4 {\n background-color: #ff6d00 !important;\n}\n\n.orange-text.text-accent-4 {\n color: #ff6d00 !important;\n}\n\n.orange-waves.waves-accent-4 .waves-ripple {\n background-color: #ff6d00 !important;\n}\n\n.deep-orange {\n background-color: #ff5722 !important;\n}\n\n.deep-orange-text {\n color: #ff5722 !important;\n}\n\n.deep-orange-waves .waves-ripple {\n background-color: #ff5722 !important;\n}\n\n.deep-orange.lighten-5 {\n background-color: #fbe9e7 !important;\n}\n\n.deep-orange-text.text-lighten-5 {\n color: #fbe9e7 !important;\n}\n\n.deep-orange-waves.waves-lighten-5 .waves-ripple {\n background-color: #fbe9e7 !important;\n}\n\n.deep-orange.lighten-4 {\n background-color: #ffccbc !important;\n}\n\n.deep-orange-text.text-lighten-4 {\n color: #ffccbc !important;\n}\n\n.deep-orange-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffccbc !important;\n}\n\n.deep-orange.lighten-3 {\n background-color: #ffab91 !important;\n}\n\n.deep-orange-text.text-lighten-3 {\n color: #ffab91 !important;\n}\n\n.deep-orange-waves.waves-lighten-3 .waves-ripple {\n background-color: #ffab91 !important;\n}\n\n.deep-orange.lighten-2 {\n background-color: #ff8a65 !important;\n}\n\n.deep-orange-text.text-lighten-2 {\n color: #ff8a65 !important;\n}\n\n.deep-orange-waves.waves-lighten-2 .waves-ripple {\n background-color: #ff8a65 !important;\n}\n\n.deep-orange.lighten-1 {\n background-color: #ff7043 !important;\n}\n\n.deep-orange-text.text-lighten-1 {\n color: #ff7043 !important;\n}\n\n.deep-orange-waves.waves-lighten-1 .waves-ripple {\n background-color: #ff7043 !important;\n}\n\n.deep-orange.darken-1 {\n background-color: #f4511e !important;\n}\n\n.deep-orange-text.text-darken-1 {\n color: #f4511e !important;\n}\n\n.deep-orange-waves.waves-darken-1 .waves-ripple {\n background-color: #f4511e !important;\n}\n\n.deep-orange.darken-2 {\n background-color: #e64a19 !important;\n}\n\n.deep-orange-text.text-darken-2 {\n color: #e64a19 !important;\n}\n\n.deep-orange-waves.waves-darken-2 .waves-ripple {\n background-color: #e64a19 !important;\n}\n\n.deep-orange.darken-3 {\n background-color: #d84315 !important;\n}\n\n.deep-orange-text.text-darken-3 {\n color: #d84315 !important;\n}\n\n.deep-orange-waves.waves-darken-3 .waves-ripple {\n background-color: #d84315 !important;\n}\n\n.deep-orange.darken-4 {\n background-color: #bf360c !important;\n}\n\n.deep-orange-text.text-darken-4 {\n color: #bf360c !important;\n}\n\n.deep-orange-waves.waves-darken-4 .waves-ripple {\n background-color: #bf360c !important;\n}\n\n.deep-orange.accent-1 {\n background-color: #ff9e80 !important;\n}\n\n.deep-orange-text.text-accent-1 {\n color: #ff9e80 !important;\n}\n\n.deep-orange-waves.waves-accent-1 .waves-ripple {\n background-color: #ff9e80 !important;\n}\n\n.deep-orange.accent-2 {\n background-color: #ff6e40 !important;\n}\n\n.deep-orange-text.text-accent-2 {\n color: #ff6e40 !important;\n}\n\n.deep-orange-waves.waves-accent-2 .waves-ripple {\n background-color: #ff6e40 !important;\n}\n\n.deep-orange.accent-3 {\n background-color: #ff3d00 !important;\n}\n\n.deep-orange-text.text-accent-3 {\n color: #ff3d00 !important;\n}\n\n.deep-orange-waves.waves-accent-3 .waves-ripple {\n background-color: #ff3d00 !important;\n}\n\n.deep-orange.accent-4 {\n background-color: #dd2c00 !important;\n}\n\n.deep-orange-text.text-accent-4 {\n color: #dd2c00 !important;\n}\n\n.deep-orange-waves.waves-accent-4 .waves-ripple {\n background-color: #dd2c00 !important;\n}\n\n.brown {\n background-color: #795548 !important;\n}\n\n.brown-text {\n color: #795548 !important;\n}\n\n.brown-waves .waves-ripple {\n background-color: #795548 !important;\n}\n\n.brown.lighten-5 {\n background-color: #efebe9 !important;\n}\n\n.brown-text.text-lighten-5 {\n color: #efebe9 !important;\n}\n\n.brown-waves.waves-lighten-5 .waves-ripple {\n background-color: #efebe9 !important;\n}\n\n.brown.lighten-4 {\n background-color: #d7ccc8 !important;\n}\n\n.brown-text.text-lighten-4 {\n color: #d7ccc8 !important;\n}\n\n.brown-waves.waves-lighten-4 .waves-ripple {\n background-color: #d7ccc8 !important;\n}\n\n.brown.lighten-3 {\n background-color: #bcaaa4 !important;\n}\n\n.brown-text.text-lighten-3 {\n color: #bcaaa4 !important;\n}\n\n.brown-waves.waves-lighten-3 .waves-ripple {\n background-color: #bcaaa4 !important;\n}\n\n.brown.lighten-2 {\n background-color: #a1887f !important;\n}\n\n.brown-text.text-lighten-2 {\n color: #a1887f !important;\n}\n\n.brown-waves.waves-lighten-2 .waves-ripple {\n background-color: #a1887f !important;\n}\n\n.brown.lighten-1 {\n background-color: #8d6e63 !important;\n}\n\n.brown-text.text-lighten-1 {\n color: #8d6e63 !important;\n}\n\n.brown-waves.waves-lighten-1 .waves-ripple {\n background-color: #8d6e63 !important;\n}\n\n.brown.darken-1 {\n background-color: #6d4c41 !important;\n}\n\n.brown-text.text-darken-1 {\n color: #6d4c41 !important;\n}\n\n.brown-waves.waves-darken-1 .waves-ripple {\n background-color: #6d4c41 !important;\n}\n\n.brown.darken-2 {\n background-color: #5d4037 !important;\n}\n\n.brown-text.text-darken-2 {\n color: #5d4037 !important;\n}\n\n.brown-waves.waves-darken-2 .waves-ripple {\n background-color: #5d4037 !important;\n}\n\n.brown.darken-3 {\n background-color: #4e342e !important;\n}\n\n.brown-text.text-darken-3 {\n color: #4e342e !important;\n}\n\n.brown-waves.waves-darken-3 .waves-ripple {\n background-color: #4e342e !important;\n}\n\n.brown.darken-4 {\n background-color: #3e2723 !important;\n}\n\n.brown-text.text-darken-4 {\n color: #3e2723 !important;\n}\n\n.brown-waves.waves-darken-4 .waves-ripple {\n background-color: #3e2723 !important;\n}\n\n.blue-grey {\n background-color: #607d8b !important;\n}\n\n.blue-grey-text {\n color: #607d8b !important;\n}\n\n.blue-grey-waves .waves-ripple {\n background-color: #607d8b !important;\n}\n\n.blue-grey.lighten-5 {\n background-color: #eceff1 !important;\n}\n\n.blue-grey-text.text-lighten-5 {\n color: #eceff1 !important;\n}\n\n.blue-grey-waves.waves-lighten-5 .waves-ripple {\n background-color: #eceff1 !important;\n}\n\n.blue-grey.lighten-4 {\n background-color: #cfd8dc !important;\n}\n\n.blue-grey-text.text-lighten-4 {\n color: #cfd8dc !important;\n}\n\n.blue-grey-waves.waves-lighten-4 .waves-ripple {\n background-color: #cfd8dc !important;\n}\n\n.blue-grey.lighten-3 {\n background-color: #b0bec5 !important;\n}\n\n.blue-grey-text.text-lighten-3 {\n color: #b0bec5 !important;\n}\n\n.blue-grey-waves.waves-lighten-3 .waves-ripple {\n background-color: #b0bec5 !important;\n}\n\n.blue-grey.lighten-2 {\n background-color: #90a4ae !important;\n}\n\n.blue-grey-text.text-lighten-2 {\n color: #90a4ae !important;\n}\n\n.blue-grey-waves.waves-lighten-2 .waves-ripple {\n background-color: #90a4ae !important;\n}\n\n.blue-grey.lighten-1 {\n background-color: #78909c !important;\n}\n\n.blue-grey-text.text-lighten-1 {\n color: #78909c !important;\n}\n\n.blue-grey-waves.waves-lighten-1 .waves-ripple {\n background-color: #78909c !important;\n}\n\n.blue-grey.darken-1 {\n background-color: #546e7a !important;\n}\n\n.blue-grey-text.text-darken-1 {\n color: #546e7a !important;\n}\n\n.blue-grey-waves.waves-darken-1 .waves-ripple {\n background-color: #546e7a !important;\n}\n\n.blue-grey.darken-2 {\n background-color: #455a64 !important;\n}\n\n.blue-grey-text.text-darken-2 {\n color: #455a64 !important;\n}\n\n.blue-grey-waves.waves-darken-2 .waves-ripple {\n background-color: #455a64 !important;\n}\n\n.blue-grey.darken-3 {\n background-color: #37474f !important;\n}\n\n.blue-grey-text.text-darken-3 {\n color: #37474f !important;\n}\n\n.blue-grey-waves.waves-darken-3 .waves-ripple {\n background-color: #37474f !important;\n}\n\n.blue-grey.darken-4 {\n background-color: #263238 !important;\n}\n\n.blue-grey-text.text-darken-4 {\n color: #263238 !important;\n}\n\n.blue-grey-waves.waves-darken-4 .waves-ripple {\n background-color: #263238 !important;\n}\n\n.grey {\n background-color: #9e9e9e !important;\n}\n\n.grey-text {\n color: #9e9e9e !important;\n}\n\n.grey-waves .waves-ripple {\n background-color: #9e9e9e !important;\n}\n\n.grey.lighten-5 {\n background-color: #fafafa !important;\n}\n\n.grey-text.text-lighten-5 {\n color: #fafafa !important;\n}\n\n.grey-waves.waves-lighten-5 .waves-ripple {\n background-color: #fafafa !important;\n}\n\n.grey.lighten-4 {\n background-color: #f5f5f5 !important;\n}\n\n.grey-text.text-lighten-4 {\n color: #f5f5f5 !important;\n}\n\n.grey-waves.waves-lighten-4 .waves-ripple {\n background-color: #f5f5f5 !important;\n}\n\n.grey.lighten-3 {\n background-color: #eeeeee !important;\n}\n\n.grey-text.text-lighten-3 {\n color: #eeeeee !important;\n}\n\n.grey-waves.waves-lighten-3 .waves-ripple {\n background-color: #eeeeee !important;\n}\n\n.grey.lighten-2 {\n background-color: #e0e0e0 !important;\n}\n\n.grey-text.text-lighten-2 {\n color: #e0e0e0 !important;\n}\n\n.grey-waves.waves-lighten-2 .waves-ripple {\n background-color: #e0e0e0 !important;\n}\n\n.grey.lighten-1 {\n background-color: #bdbdbd !important;\n}\n\n.grey-text.text-lighten-1 {\n color: #bdbdbd !important;\n}\n\n.grey-waves.waves-lighten-1 .waves-ripple {\n background-color: #bdbdbd !important;\n}\n\n.grey.darken-1 {\n background-color: #757575 !important;\n}\n\n.grey-text.text-darken-1 {\n color: #757575 !important;\n}\n\n.grey-waves.waves-darken-1 .waves-ripple {\n background-color: #757575 !important;\n}\n\n.grey.darken-2 {\n background-color: #616161 !important;\n}\n\n.grey-text.text-darken-2 {\n color: #616161 !important;\n}\n\n.grey-waves.waves-darken-2 .waves-ripple {\n background-color: #616161 !important;\n}\n\n.grey.darken-3 {\n background-color: #424242 !important;\n}\n\n.grey-text.text-darken-3 {\n color: #424242 !important;\n}\n\n.grey-waves.waves-darken-3 .waves-ripple {\n background-color: #424242 !important;\n}\n\n.grey.darken-4 {\n background-color: #212121 !important;\n}\n\n.grey-text.text-darken-4 {\n color: #212121 !important;\n}\n\n.grey-waves.waves-darken-4 .waves-ripple {\n background-color: #212121 !important;\n}\n\n.black {\n background-color: #000000 !important;\n}\n\n.black-text {\n color: #000000 !important;\n}\n\n.white {\n background-color: #ffffff !important;\n}\n\n.white-text {\n color: #ffffff !important;\n}\n\n.transparent {\n background-color: transparent !important;\n}\n\n.transparent-text {\n color: transparent !important;\n}\n\n/**\n * prism.js Twilight theme\n * Based (more or less) on the Twilight theme originally of Textmate fame.\n * @author Remy Bach\n */\ncode[class*=language-],\npre[class*=language-] {\n color: white;\n background: none;\n font-family: Consolas, Monaco, \"Andale Mono\", \"Ubuntu Mono\", monospace;\n text-align: left;\n text-shadow: 0 -0.1em 0.2em black;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n}\n\npre[class*=language-],\n:not(pre) > code[class*=language-] {\n background: hsl(0, 0%, 8%); /* #141414 */\n}\n\n/* Code blocks */\npre[class*=language-] {\n border-radius: 0.5em;\n border: 0.3em solid hsl(0, 0%, 33%); /* #282A2B */\n box-shadow: 1px 1px 0.5em black inset;\n margin: 0.5em 0;\n overflow: auto;\n padding: 1em;\n}\n\npre[class*=language-]::-moz-selection {\n /* Firefox */\n background: hsl(200, 4%, 16%); /* #282A2B */\n}\n\npre[class*=language-]::selection {\n /* Safari */\n background: hsl(200, 4%, 16%); /* #282A2B */\n}\n\n/* Text Selection colour */\npre[class*=language-]::-moz-selection, pre[class*=language-] ::-moz-selection,\ncode[class*=language-]::-moz-selection, code[class*=language-] ::-moz-selection {\n text-shadow: none;\n background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */\n}\n\npre[class*=language-]::selection, pre[class*=language-] ::selection,\ncode[class*=language-]::selection, code[class*=language-] ::selection {\n text-shadow: none;\n background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */\n}\n\n/* Inline code */\n:not(pre) > code[class*=language-] {\n border-radius: 0.3em;\n border: 0.13em solid hsl(0, 0%, 33%); /* #545454 */\n box-shadow: 1px 1px 0.3em -0.1em black inset;\n padding: 0.15em 0.2em 0.05em;\n white-space: normal;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n color: hsl(0, 0%, 47%); /* #777777 */\n}\n\n.token.punctuation {\n opacity: 0.7;\n}\n\n.namespace {\n opacity: 0.7;\n}\n\n.token.tag,\n.token.boolean,\n.token.number,\n.token.deleted {\n color: hsl(14, 58%, 55%); /* #CF6A4C */\n}\n\n.token.keyword,\n.token.property,\n.token.selector,\n.token.constant,\n.token.symbol,\n.token.builtin {\n color: hsl(53, 89%, 79%); /* #F9EE98 */\n}\n\n.token.attr-name,\n.token.attr-value,\n.token.string,\n.token.char,\n.token.operator,\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string,\n.token.variable,\n.token.inserted {\n color: hsl(76, 21%, 52%); /* #8F9D6A */\n}\n\n.token.atrule {\n color: hsl(218, 22%, 55%); /* #7587A6 */\n}\n\n.token.regex,\n.token.important {\n color: hsl(42, 75%, 65%); /* #E9C062 */\n}\n\n.token.important,\n.token.bold {\n font-weight: bold;\n}\n\n.token.italic {\n font-style: italic;\n}\n\n.token.entity {\n cursor: help;\n}\n\npre[data-line] {\n padding: 1em 0 1em 3em;\n position: relative;\n}\n\n/* Markup */\n.language-markup .token.tag,\n.language-markup .token.attr-name,\n.language-markup .token.punctuation {\n color: hsl(33, 33%, 52%); /* #AC885B */\n}\n\n/* Make the tokens sit above the line highlight so the colours don't look faded. */\n.token {\n position: relative;\n z-index: 1;\n}\n\n.line-highlight {\n background: hsla(0, 0%, 33%, 0.25); /* #545454 */\n background: linear-gradient(to right, hsla(0, 0%, 33%, 0.1) 70%, hsla(0, 0%, 33%, 0)); /* #545454 */\n border-bottom: 1px dashed hsl(0, 0%, 33%); /* #545454 */\n border-top: 1px dashed hsl(0, 0%, 33%); /* #545454 */\n left: 0;\n line-height: inherit;\n margin-top: 0.75em; /* Same as .prism’s padding-top */\n padding: inherit 0;\n pointer-events: none;\n position: absolute;\n right: 0;\n white-space: pre;\n z-index: 0;\n}\n\n.line-highlight:before,\n.line-highlight[data-end]:after {\n background-color: hsl(215, 15%, 59%); /* #8794A6 */\n border-radius: 999px;\n box-shadow: 0 1px white;\n color: hsl(24, 20%, 95%); /* #F5F2F0 */\n content: attr(data-start);\n font: bold 65%/1.5 sans-serif;\n left: 0.6em;\n min-width: 1em;\n padding: 0 0.5em;\n position: absolute;\n text-align: center;\n text-shadow: none;\n top: 0.4em;\n vertical-align: 0.3em;\n}\n\n.line-highlight[data-end]:after {\n bottom: 0.4em;\n content: attr(data-end);\n top: auto;\n}\n\n.window {\n font-family: \"Ubuntu\", sans-serif;\n font-size: 17px;\n width: 600px;\n margin: 75px auto;\n background: #2c3e50;\n height: 350px;\n border-radius: 5px;\n display: relative;\n box-shadow: 10px 10px 10px #888888;\n}\n\n.afterclose {\n color: #34495e;\n display: none;\n text-align: center;\n}\n\n.open {\n color: #fff;\n padding: 15px;\n background: #2ecc71;\n border-radius: 4px;\n border: none;\n}\n\n.bash {\n width: 600px;\n background: #34495e;\n height: 310px;\n border-radius: 5px;\n top: 40px;\n display: absolute;\n color: #fff;\n text-align: left;\n}\n.bash .command::before {\n content: \"user@machine $ : \";\n color: #2ecc71;\n}\n.bash .resulta::before {\n content: \">>\";\n color: #2ecc71;\n}\n\n/* effected by controllers */\n.windowmax {\n width: 100%;\n margin: auto;\n background: #2c3e50;\n height: 1000px;\n border-radius: 5px;\n display: relative;\n}\n\n.windowmin {\n width: 300px;\n height: 45px;\n background: #2c3e50;\n border-radius: 5px;\n bottom: 0;\n position: fixed;\n}\n\n.bashmax {\n display: absolute;\n width: 100%;\n background: #34495e;\n height: 960px;\n border-radius: 5px;\n bottom: 0;\n color: #fff;\n}\n\n/* !--end--! */\n.buttons {\n width: 15px;\n height: 15px;\n border-radius: 50%;\n float: right;\n margin: 13px 4px;\n border: none;\n}\n\n.close {\n background: #e74c3c;\n}\n\n.maximize {\n background: #f1c40f;\n}\n\n.minimize {\n background: #2ecc71;\n}\n\n.result {\n display: none;\n}\n\n.controls {\n height: 40px;\n top: 0;\n}\n\n.title {\n color: #fff;\n font-weight: bold;\n padding: 10px;\n}\n\n.material-tooltip {\n padding: 10px 8px;\n font-size: 1rem;\n z-index: 2000;\n border-radius: 2px;\n color: #fff;\n min-height: 36px;\n line-height: 120%;\n opacity: 0;\n position: absolute;\n text-align: center;\n max-width: calc(100% - 4px);\n overflow: hidden;\n left: 0;\n top: 0;\n pointer-events: none;\n visibility: hidden;\n background-color: #323232;\n}\n\n.backdrop {\n position: absolute;\n opacity: 0;\n height: 7px;\n width: 14px;\n border-radius: 0 0 50% 50%;\n background-color: #323232;\n z-index: -1;\n transform-origin: 50% 0%;\n visibility: hidden;\n}\n\n.shadow-0 {\n box-shadow: none !important;\n}\n\n/* 2dp elevation modified*/\n.shadow-1, nav, .dropdown-content, .card, .card-panel, .btn-floating, .btn, .btn-small, .btn-large, .collapsible {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);\n}\n\n.shadow-1-half, .btn-floating:hover, .btn:hover, .btn-small:hover, .btn-large:hover {\n box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2);\n}\n\n/* 6dp elevation modified*/\n.shadow-2 {\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);\n}\n\n/* 12dp elevation modified*/\n.shadow-3 {\n box-shadow: 0 8px 17px 2px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);\n}\n\n/* 16dp elevation */\n.shadow-4 {\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -7px rgba(0, 0, 0, 0.2);\n}\n\n/* 24dp elevation */\n.shadow-5, .modal {\n box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2);\n}\n\n/* 24dp elevation */\n.invert-shadow-5 {\n box-shadow: 38px 0 0 0 rgba(0, 0, 0, 0.14), 46px 0 0 0 rgba(0, 0, 0, 0.12), 15px 0 0 0 rgba(0, 0, 0, 0.2);\n}\n\n.hoverable {\n transition: box-shadow 0.25s;\n}\n.hoverable:hover {\n box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n/*!\n * Waves v0.6.0\n * http://fian.my.id/Waves\n *\n * Copyright 2014 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE\n */\n.waves-effect {\n position: relative;\n cursor: pointer;\n display: inline-block;\n overflow: hidden;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n vertical-align: middle;\n z-index: 1;\n transition: 0.3s ease-out;\n}\n.waves-effect .waves-ripple {\n position: absolute;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n margin-left: -10px;\n opacity: 0;\n background: rgba(0, 0, 0, 0.2);\n transition: all 0.7s ease-out;\n transition-property: transform, opacity;\n transform: scale(0);\n pointer-events: none;\n}\n.waves-effect.waves-light .waves-ripple {\n background-color: rgba(255, 255, 255, 0.45);\n}\n.waves-effect.waves-red .waves-ripple {\n background-color: rgba(244, 67, 54, 0.7);\n}\n.waves-effect.waves-yellow .waves-ripple {\n background-color: rgba(255, 235, 59, 0.7);\n}\n.waves-effect.waves-orange .waves-ripple {\n background-color: rgba(255, 152, 0, 0.7);\n}\n.waves-effect.waves-purple .waves-ripple {\n background-color: rgba(156, 39, 176, 0.7);\n}\n.waves-effect.waves-green .waves-ripple {\n background-color: rgba(76, 175, 80, 0.7);\n}\n.waves-effect.waves-teal .waves-ripple {\n background-color: rgba(0, 150, 136, 0.7);\n}\n.waves-effect input[type=button], .waves-effect input[type=reset], .waves-effect input[type=submit] {\n border: 0;\n font-style: normal;\n font-size: inherit;\n text-transform: inherit;\n background: none;\n}\n.waves-effect img {\n position: relative;\n z-index: -1;\n}\n\n.waves-notransition {\n transition: none !important;\n}\n\n.waves-circle {\n transform: translateZ(0);\n -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n\n.waves-input-wrapper {\n border-radius: 0.2em;\n vertical-align: bottom;\n}\n.waves-input-wrapper .waves-button-input {\n position: relative;\n top: 0;\n left: 0;\n z-index: 1;\n}\n\n.waves-circle {\n text-align: center;\n width: 2.5em;\n height: 2.5em;\n line-height: 2.5em;\n border-radius: 50%;\n -webkit-mask-image: none;\n}\n\n.waves-block {\n display: block;\n}\n\n/* Firefox Bug: link not triggered */\n.waves-effect .waves-ripple {\n z-index: -1;\n}\n\n.modal {\n position: fixed;\n left: 0;\n right: 0;\n background-color: #fafafa;\n padding: 0;\n max-height: 70%;\n width: 55%;\n margin: auto;\n overflow-y: auto;\n border-radius: 2px;\n will-change: top, opacity;\n}\n.modal:focus {\n outline: none;\n}\n@media only screen and (max-width : 992px) {\n .modal {\n width: 80%;\n }\n}\n.modal h1, .modal h2, .modal h3, .modal h4 {\n margin-top: 0;\n}\n.modal .modal-content {\n padding: 24px;\n}\n.modal .modal-close {\n cursor: pointer;\n}\n.modal .modal-footer {\n border-radius: 0 0 2px 2px;\n background-color: #fafafa;\n padding: 4px 6px;\n height: 56px;\n width: 100%;\n text-align: right;\n}\n.modal .modal-footer .btn, .modal .modal-footer .btn-small, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {\n margin: 6px 0;\n}\n.modal .modal-header {\n border-radius: 2px 2px 0 0;\n background-color: #fafafa;\n padding: 6px 4px;\n height: 56px;\n width: 100%;\n text-align: right;\n}\n.modal .modal-header .btn, .modal .modal-header .btn-small, .modal .modal-header .btn-large, .modal .modal-header .btn-flat {\n margin: 6px 0;\n}\n\n.modal-overlay {\n position: fixed;\n z-index: 999;\n top: -25%;\n left: 0;\n bottom: 0;\n right: 0;\n height: 125%;\n width: 100%;\n background: #000;\n display: none;\n will-change: opacity;\n}\n\n.modal.modal-fixed-footer {\n padding: 0;\n height: 70%;\n}\n.modal.modal-fixed-footer .modal-content {\n position: absolute;\n height: calc(100% - 56px);\n max-height: 100%;\n width: 100%;\n overflow-y: auto;\n}\n.modal.modal-fixed-footer .modal-footer {\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n position: absolute;\n bottom: 0;\n}\n\n.modal.bottom-sheet {\n top: auto;\n bottom: -100%;\n margin: 0;\n width: 100%;\n max-height: 45%;\n border-radius: 0;\n will-change: bottom, opacity;\n}\n\nhtml,\nbody,\n#root {\n margin: 0;\n height: 100%;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n.noselect {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Old versions of Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none;\n /* Non-prefixed version, currently\n supported by Chrome, Edge, Opera and Firefox */\n}\n\nul:not(.browser-default) {\n padding-left: 0;\n list-style-type: none;\n}\nul:not(.browser-default) > li {\n list-style-type: none;\n}\n\na {\n color: #039be5;\n text-decoration: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n.w-100 {\n width: 100%;\n}\n\n.right-align {\n text-align: right;\n}\n\n.center-align {\n text-align: center;\n}\n\n.v-center {\n display: flex;\n align-items: center;\n}\n\n.mb1 {\n margin-bottom: 10px;\n}\n\n.collection {\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n border: 1px solid #e0e0e0;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n}\n.collection .collection-item {\n background-color: #fff;\n line-height: 1.5rem;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid #e0e0e0;\n}\n.collection .collection-item.hover:hover {\n background-color: #ddd;\n}\n.collection .collection-item.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n}\n.collection .collection-item.avatar:not(.circle-clipper) > .circle,\n.collection .collection-item.avatar :not(.circle-clipper) > .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n}\n.collection .collection-item.avatar i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n}\n.collection .collection-item.avatar .title {\n font-size: 16px;\n}\n.collection .collection-item.avatar p {\n margin: 0;\n}\n.collection .collection-item.avatar .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n}\n.collection .collection-item:last-child {\n border-bottom: none;\n}\n.collection .collection-item.active {\n background-color: #26a69a;\n color: rgb(234.25, 250.25, 248.75);\n}\n.collection .collection-item.active .secondary-content {\n color: #fff;\n}\n.collection a.collection-item {\n display: block;\n transition: 0.25s;\n color: #26a69a;\n}\n.collection a.collection-item:not(.active):hover {\n background-color: #ddd;\n}\n.collection.with-header .collection-header {\n background-color: #fff;\n border-bottom: 1px solid #e0e0e0;\n padding: 10px 20px;\n}\n.collection.with-header .collection-item {\n padding-left: 30px;\n}\n.collection.with-header .collection-item.avatar {\n padding-left: 72px;\n}\n\n.secondary-content {\n float: right;\n color: #26a69a;\n}\n\n.collapsible .collection {\n margin: 0;\n border: none;\n}\n\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n padding: 20px 0 20px 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 999;\n display: flex;\n justify-content: center;\n}\n.modal-overlay .innerform {\n max-width: 650px;\n}\n.modal-overlay .innerform form {\n overflow: hidden;\n}\n\n/*********************\n Media Query Classes\n**********************/\n@media only screen and (max-width : 600px) {\n .hide-on-small-only, .hide-on-small-and-down {\n display: none !important;\n }\n}\n\n@media only screen and (max-width : 992px) {\n .hide-on-med-and-down {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 601px) {\n .hide-on-med-and-up {\n display: none !important;\n }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n .hide-on-med-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 993px) {\n .hide-on-large-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 1201px) {\n .hide-on-extra-large-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 1201px) {\n .show-on-extra-large {\n display: block !important;\n }\n}\n\n@media only screen and (min-width : 993px) {\n .show-on-large {\n display: block !important;\n }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n .show-on-medium {\n display: block !important;\n }\n}\n\n@media only screen and (max-width : 600px) {\n .show-on-small {\n display: block !important;\n }\n}\n\n@media only screen and (min-width : 601px) {\n .show-on-medium-and-up {\n display: block !important;\n }\n}\n\n@media only screen and (max-width : 992px) {\n .show-on-medium-and-down {\n display: block !important;\n }\n}\n\n@media only screen and (max-width : 600px) {\n .center-on-small-only {\n text-align: center;\n }\n}\n\n/*******************\n Utility Classes\n*******************/\n.hide {\n display: none !important;\n}\n\n.left-align {\n text-align: left;\n}\n\n.right-align {\n text-align: right;\n}\n\n.center, .center-align {\n text-align: center;\n}\n\n.left {\n float: left !important;\n}\n\n.right {\n float: right !important;\n}\n\n.no-select {\n user-select: none;\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n.truncate {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.no-padding {\n padding: 0 !important;\n}\n\nspan.badge {\n min-width: 3rem;\n padding: 0 6px;\n margin-left: 14px;\n text-align: center;\n font-size: 1rem;\n line-height: 22px;\n height: 22px;\n color: #757575;\n float: right;\n box-sizing: border-box;\n}\nspan.badge.new {\n font-weight: 300;\n font-size: 0.8rem;\n color: #fff;\n background-color: #26a69a;\n border-radius: 2px;\n}\nspan.badge.new:after {\n content: \" new\";\n}\nspan.badge[data-badge-caption]::after {\n content: \" \" attr(data-badge-caption);\n}\n\nnav ul a span.badge {\n display: inline-block;\n float: none;\n margin-left: 4px;\n line-height: 22px;\n height: 22px;\n -webkit-font-smoothing: auto;\n}\n\n.collection-item span.badge {\n margin-top: calc(0.75rem - 11px);\n}\n\n.collapsible span.badge {\n margin-left: auto;\n}\n\n.sidenav span.badge {\n margin-top: 11.5px;\n}\n\ntable span.badge {\n display: inline-block;\n float: none;\n margin-left: auto;\n}\n\n.chip {\n display: inline-block;\n height: 32px;\n font-size: 13px;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.6);\n line-height: 32px;\n padding: 0 12px;\n border-radius: 16px;\n background-color: #e4e4e4;\n margin-bottom: 5px;\n margin-right: 5px;\n}\n.chip:focus {\n outline: none;\n background-color: #26a69a;\n color: #fff;\n}\n.chip > img {\n float: left;\n margin: 0 8px 0 -12px;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n}\n.chip .close {\n cursor: pointer;\n float: right;\n font-size: 16px;\n line-height: 32px;\n padding-left: 8px;\n}\n\n.chips {\n border: none;\n border-bottom: 1px solid #9e9e9e;\n box-shadow: none;\n margin: 0 0 8px 0;\n min-height: 45px;\n outline: none;\n transition: all 0.3s;\n}\n.chips.focus {\n border-bottom: 1px solid #26a69a;\n box-shadow: 0 1px 0 0 #26a69a;\n}\n.chips:hover {\n cursor: text;\n}\n.chips .input {\n background: none;\n border: 0;\n color: rgba(0, 0, 0, 0.6);\n display: inline-block;\n font-size: 16px;\n height: 56px;\n line-height: 32px;\n outline: 0;\n margin: 0;\n padding: 0 !important;\n width: 120px !important;\n}\n.chips .input:focus {\n border: 0 !important;\n box-shadow: none !important;\n}\n.chips .autocomplete-content {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.prefix ~ .chips {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.chips:empty ~ label {\n font-size: 0.8rem;\n transform: translateY(-140%);\n}\n\n.collapsible {\n border-top: 1px solid #ddd;\n border-right: 1px solid #ddd;\n border-left: 1px solid #ddd;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n}\n\n.collapsible-header {\n display: flex;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n line-height: 1.5;\n padding: 1rem;\n background-color: #fff;\n border-bottom: 1px solid #ddd;\n}\n.collapsible-header:focus {\n outline: 0;\n}\n.collapsible-header i {\n width: 2rem;\n font-size: 1.6rem;\n display: inline-block;\n text-align: center;\n margin-right: 1rem;\n}\n\n.keyboard-focused .collapsible-header:focus {\n background-color: #eee;\n}\n\n.collapsible-body {\n display: none;\n border-bottom: 1px solid #ddd;\n box-sizing: border-box;\n padding: 2rem;\n}\n\n.sidenav .collapsible,\n.sidenav.fixed .collapsible {\n border: none;\n box-shadow: none;\n}\n.sidenav .collapsible li,\n.sidenav.fixed .collapsible li {\n padding: 0;\n}\n.sidenav .collapsible-header,\n.sidenav.fixed .collapsible-header {\n background-color: transparent;\n border: none;\n line-height: inherit;\n height: inherit;\n padding: 0 15px;\n}\n.sidenav .collapsible-header:hover,\n.sidenav.fixed .collapsible-header:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.sidenav .collapsible-header i,\n.sidenav.fixed .collapsible-header i {\n line-height: inherit;\n}\n.sidenav .collapsible-body,\n.sidenav.fixed .collapsible-body {\n border: 0;\n background-color: #fff;\n}\n.sidenav .collapsible-body li a,\n.sidenav.fixed .collapsible-body li a {\n padding: 0 22.5px 0 30px;\n}\n\n.collapsible.popout {\n border: none;\n box-shadow: none;\n}\n.collapsible.popout > li {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n margin: 0 24px;\n transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n.collapsible.popout > li.active {\n box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n margin: 16px 0;\n}\n\n.collection {\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n border: 1px solid #e0e0e0;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n}\n.collection .collection-item {\n background-color: #fff;\n line-height: 1.5rem;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid #e0e0e0;\n}\n.collection .collection-item.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n}\n.collection .collection-item.avatar:not(.circle-clipper) > .circle,\n.collection .collection-item.avatar :not(.circle-clipper) > .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n}\n.collection .collection-item.avatar i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n}\n.collection .collection-item.avatar .title {\n font-size: 16px;\n}\n.collection .collection-item.avatar p {\n margin: 0;\n}\n.collection .collection-item.avatar .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n}\n.collection .collection-item:last-child {\n border-bottom: none;\n}\n.collection .collection-item.active {\n background-color: #26a69a;\n color: rgb(234.25, 250.25, 248.75);\n}\n.collection .collection-item.active .secondary-content {\n color: #fff;\n}\n.collection a.collection-item {\n display: block;\n transition: 0.25s;\n color: #26a69a;\n}\n.collection a.collection-item:not(.active):hover {\n background-color: #ddd;\n}\n.collection.with-header .collection-header {\n background-color: #fff;\n border-bottom: 1px solid #e0e0e0;\n padding: 10px 20px;\n}\n.collection.with-header .collection-item {\n padding-left: 30px;\n}\n.collection.with-header .collection-item.avatar {\n padding-left: 72px;\n}\n.collection .secondary-content {\n float: right;\n color: #26a69a;\n}\n\nselect:focus {\n outline: 1px solid rgb(201.05, 242.65, 238.75);\n}\n\nbutton:focus {\n outline: none;\n background-color: rgb(41.8, 182.6, 169.4);\n}\n\nlabel {\n font-size: 0.8rem;\n color: #9e9e9e;\n}\n\n/* Text Inputs + Textarea\n ========================================================================== */\n/* Style Placeholders */\n::placeholder {\n color: #d1d1d1;\n}\n\n/* Text inputs */\ninput:not([type]),\ninput[type=text]:not(.browser-default),\ninput[type=password]:not(.browser-default),\ninput[type=email]:not(.browser-default),\ninput[type=url]:not(.browser-default),\ninput[type=time]:not(.browser-default),\ninput[type=date]:not(.browser-default),\ninput[type=datetime]:not(.browser-default),\ninput[type=datetime-local]:not(.browser-default),\ninput[type=tel]:not(.browser-default),\ninput[type=number]:not(.browser-default),\ninput[type=search]:not(.browser-default),\ntextarea.textarea {\n background-color: transparent;\n border: none;\n border-bottom: 1px solid #9e9e9e;\n border-radius: 0;\n outline: none;\n height: 56px;\n width: 100%;\n font-size: 16px;\n margin: 0 0 8px 0;\n padding: 0;\n box-shadow: none;\n box-sizing: content-box;\n transition: box-shadow 0.3s, border 0.3s;\n}\ninput:not([type]):disabled, input:not([type])[readonly=readonly],\ninput[type=text]:not(.browser-default):disabled,\ninput[type=text]:not(.browser-default)[readonly=readonly],\ninput[type=password]:not(.browser-default):disabled,\ninput[type=password]:not(.browser-default)[readonly=readonly],\ninput[type=email]:not(.browser-default):disabled,\ninput[type=email]:not(.browser-default)[readonly=readonly],\ninput[type=url]:not(.browser-default):disabled,\ninput[type=url]:not(.browser-default)[readonly=readonly],\ninput[type=time]:not(.browser-default):disabled,\ninput[type=time]:not(.browser-default)[readonly=readonly],\ninput[type=date]:not(.browser-default):disabled,\ninput[type=date]:not(.browser-default)[readonly=readonly],\ninput[type=datetime]:not(.browser-default):disabled,\ninput[type=datetime]:not(.browser-default)[readonly=readonly],\ninput[type=datetime-local]:not(.browser-default):disabled,\ninput[type=datetime-local]:not(.browser-default)[readonly=readonly],\ninput[type=tel]:not(.browser-default):disabled,\ninput[type=tel]:not(.browser-default)[readonly=readonly],\ninput[type=number]:not(.browser-default):disabled,\ninput[type=number]:not(.browser-default)[readonly=readonly],\ninput[type=search]:not(.browser-default):disabled,\ninput[type=search]:not(.browser-default)[readonly=readonly],\ntextarea.textarea:disabled,\ntextarea.textarea[readonly=readonly] {\n color: rgba(0, 0, 0, 0.42);\n border-bottom: 1px dotted rgba(0, 0, 0, 0.42);\n}\ninput:not([type]):disabled + label, input:not([type])[readonly=readonly] + label,\ninput[type=text]:not(.browser-default):disabled + label,\ninput[type=text]:not(.browser-default)[readonly=readonly] + label,\ninput[type=password]:not(.browser-default):disabled + label,\ninput[type=password]:not(.browser-default)[readonly=readonly] + label,\ninput[type=email]:not(.browser-default):disabled + label,\ninput[type=email]:not(.browser-default)[readonly=readonly] + label,\ninput[type=url]:not(.browser-default):disabled + label,\ninput[type=url]:not(.browser-default)[readonly=readonly] + label,\ninput[type=time]:not(.browser-default):disabled + label,\ninput[type=time]:not(.browser-default)[readonly=readonly] + label,\ninput[type=date]:not(.browser-default):disabled + label,\ninput[type=date]:not(.browser-default)[readonly=readonly] + label,\ninput[type=datetime]:not(.browser-default):disabled + label,\ninput[type=datetime]:not(.browser-default)[readonly=readonly] + label,\ninput[type=datetime-local]:not(.browser-default):disabled + label,\ninput[type=datetime-local]:not(.browser-default)[readonly=readonly] + label,\ninput[type=tel]:not(.browser-default):disabled + label,\ninput[type=tel]:not(.browser-default)[readonly=readonly] + label,\ninput[type=number]:not(.browser-default):disabled + label,\ninput[type=number]:not(.browser-default)[readonly=readonly] + label,\ninput[type=search]:not(.browser-default):disabled + label,\ninput[type=search]:not(.browser-default)[readonly=readonly] + label,\ntextarea.textarea:disabled + label,\ntextarea.textarea[readonly=readonly] + label {\n color: rgba(0, 0, 0, 0.42);\n}\ninput:not([type]):focus:not([readonly]),\ninput[type=text]:not(.browser-default):focus:not([readonly]),\ninput[type=password]:not(.browser-default):focus:not([readonly]),\ninput[type=email]:not(.browser-default):focus:not([readonly]),\ninput[type=url]:not(.browser-default):focus:not([readonly]),\ninput[type=time]:not(.browser-default):focus:not([readonly]),\ninput[type=date]:not(.browser-default):focus:not([readonly]),\ninput[type=datetime]:not(.browser-default):focus:not([readonly]),\ninput[type=datetime-local]:not(.browser-default):focus:not([readonly]),\ninput[type=tel]:not(.browser-default):focus:not([readonly]),\ninput[type=number]:not(.browser-default):focus:not([readonly]),\ninput[type=search]:not(.browser-default):focus:not([readonly]),\ntextarea.textarea:focus:not([readonly]) {\n border-bottom: 1px solid #26a69a;\n box-shadow: 0 1px 0 0 #26a69a;\n}\ninput:not([type]):focus:not([readonly]) + label,\ninput[type=text]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=password]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=email]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=url]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=time]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=date]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=datetime]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=datetime-local]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=tel]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=number]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=search]:not(.browser-default):focus:not([readonly]) + label,\ntextarea.textarea:focus:not([readonly]) + label {\n color: #26a69a;\n}\ninput:not([type]):focus.valid ~ label,\ninput[type=text]:not(.browser-default):focus.valid ~ label,\ninput[type=password]:not(.browser-default):focus.valid ~ label,\ninput[type=email]:not(.browser-default):focus.valid ~ label,\ninput[type=url]:not(.browser-default):focus.valid ~ label,\ninput[type=time]:not(.browser-default):focus.valid ~ label,\ninput[type=date]:not(.browser-default):focus.valid ~ label,\ninput[type=datetime]:not(.browser-default):focus.valid ~ label,\ninput[type=datetime-local]:not(.browser-default):focus.valid ~ label,\ninput[type=tel]:not(.browser-default):focus.valid ~ label,\ninput[type=number]:not(.browser-default):focus.valid ~ label,\ninput[type=search]:not(.browser-default):focus.valid ~ label,\ntextarea.textarea:focus.valid ~ label {\n color: #4caf50;\n}\ninput:not([type]):focus.invalid ~ label,\ninput[type=text]:not(.browser-default):focus.invalid ~ label,\ninput[type=password]:not(.browser-default):focus.invalid ~ label,\ninput[type=email]:not(.browser-default):focus.invalid ~ label,\ninput[type=url]:not(.browser-default):focus.invalid ~ label,\ninput[type=time]:not(.browser-default):focus.invalid ~ label,\ninput[type=date]:not(.browser-default):focus.invalid ~ label,\ninput[type=datetime]:not(.browser-default):focus.invalid ~ label,\ninput[type=datetime-local]:not(.browser-default):focus.invalid ~ label,\ninput[type=tel]:not(.browser-default):focus.invalid ~ label,\ninput[type=number]:not(.browser-default):focus.invalid ~ label,\ninput[type=search]:not(.browser-default):focus.invalid ~ label,\ntextarea.textarea:focus.invalid ~ label {\n color: #f44336;\n}\ninput:not([type]).validate + label,\ninput[type=text]:not(.browser-default).validate + label,\ninput[type=password]:not(.browser-default).validate + label,\ninput[type=email]:not(.browser-default).validate + label,\ninput[type=url]:not(.browser-default).validate + label,\ninput[type=time]:not(.browser-default).validate + label,\ninput[type=date]:not(.browser-default).validate + label,\ninput[type=datetime]:not(.browser-default).validate + label,\ninput[type=datetime-local]:not(.browser-default).validate + label,\ninput[type=tel]:not(.browser-default).validate + label,\ninput[type=number]:not(.browser-default).validate + label,\ninput[type=search]:not(.browser-default).validate + label,\ntextarea.textarea.validate + label {\n width: 100%;\n}\n/* Validation Sass Placeholders */\n.select-wrapper.valid > input.select-dropdown, input:not([type]).valid, input:not([type]):focus.valid,\ninput[type=text]:not(.browser-default).valid,\ninput[type=text]:not(.browser-default):focus.valid,\ninput[type=password]:not(.browser-default).valid,\ninput[type=password]:not(.browser-default):focus.valid,\ninput[type=email]:not(.browser-default).valid,\ninput[type=email]:not(.browser-default):focus.valid,\ninput[type=url]:not(.browser-default).valid,\ninput[type=url]:not(.browser-default):focus.valid,\ninput[type=time]:not(.browser-default).valid,\ninput[type=time]:not(.browser-default):focus.valid,\ninput[type=date]:not(.browser-default).valid,\ninput[type=date]:not(.browser-default):focus.valid,\ninput[type=datetime]:not(.browser-default).valid,\ninput[type=datetime]:not(.browser-default):focus.valid,\ninput[type=datetime-local]:not(.browser-default).valid,\ninput[type=datetime-local]:not(.browser-default):focus.valid,\ninput[type=tel]:not(.browser-default).valid,\ninput[type=tel]:not(.browser-default):focus.valid,\ninput[type=number]:not(.browser-default).valid,\ninput[type=number]:not(.browser-default):focus.valid,\ninput[type=search]:not(.browser-default).valid,\ninput[type=search]:not(.browser-default):focus.valid,\ntextarea.textarea.valid,\ntextarea.textarea:focus.valid {\n border-bottom: 1px solid #4caf50;\n box-shadow: 0 1px 0 0 #4caf50;\n}\n\n.select-wrapper.invalid > input.select-dropdown, .select-wrapper.invalid > input.select-dropdown:focus, input:not([type]).invalid, input:not([type]):focus.invalid,\ninput[type=text]:not(.browser-default).invalid,\ninput[type=text]:not(.browser-default):focus.invalid,\ninput[type=password]:not(.browser-default).invalid,\ninput[type=password]:not(.browser-default):focus.invalid,\ninput[type=email]:not(.browser-default).invalid,\ninput[type=email]:not(.browser-default):focus.invalid,\ninput[type=url]:not(.browser-default).invalid,\ninput[type=url]:not(.browser-default):focus.invalid,\ninput[type=time]:not(.browser-default).invalid,\ninput[type=time]:not(.browser-default):focus.invalid,\ninput[type=date]:not(.browser-default).invalid,\ninput[type=date]:not(.browser-default):focus.invalid,\ninput[type=datetime]:not(.browser-default).invalid,\ninput[type=datetime]:not(.browser-default):focus.invalid,\ninput[type=datetime-local]:not(.browser-default).invalid,\ninput[type=datetime-local]:not(.browser-default):focus.invalid,\ninput[type=tel]:not(.browser-default).invalid,\ninput[type=tel]:not(.browser-default):focus.invalid,\ninput[type=number]:not(.browser-default).invalid,\ninput[type=number]:not(.browser-default):focus.invalid,\ninput[type=search]:not(.browser-default).invalid,\ninput[type=search]:not(.browser-default):focus.invalid,\ntextarea.textarea.invalid,\ntextarea.textarea:focus.invalid {\n border-bottom: 1px solid #f44336;\n box-shadow: 0 1px 0 0 #f44336;\n}\n\n.select-wrapper.valid .helper-text[data-success], .select-wrapper.invalid ~ .helper-text[data-error], input:not([type]).valid ~ .helper-text[data-success], input:not([type]):focus.valid ~ .helper-text[data-success], input:not([type]).invalid ~ .helper-text[data-error], input:not([type]):focus.invalid ~ .helper-text[data-error],\ninput[type=text]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=text]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=text]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=text]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=password]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=password]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=password]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=password]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=email]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=email]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=email]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=email]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=url]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=url]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=url]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=url]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=time]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=time]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=time]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=time]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=date]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=date]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=date]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=date]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=datetime]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=tel]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=tel]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=tel]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=number]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=number]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=number]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=number]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=search]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=search]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=search]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=search]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ntextarea.textarea.valid ~ .helper-text[data-success],\ntextarea.textarea:focus.valid ~ .helper-text[data-success],\ntextarea.textarea.invalid ~ .helper-text[data-error],\ntextarea.textarea:focus.invalid ~ .helper-text[data-error] {\n color: transparent;\n user-select: none;\n pointer-events: none;\n}\n\n.select-wrapper.valid ~ .helper-text:after, input:not([type]).valid ~ .helper-text:after, input:not([type]):focus.valid ~ .helper-text:after,\ninput[type=text]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=text]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=password]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=password]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=email]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=email]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=url]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=url]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=time]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=time]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=date]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=date]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=number]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=number]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=search]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=search]:not(.browser-default):focus.valid ~ .helper-text:after,\ntextarea.textarea.valid ~ .helper-text:after,\ntextarea.textarea:focus.valid ~ .helper-text:after {\n content: attr(data-success);\n color: #4caf50;\n}\n\n.select-wrapper.invalid ~ .helper-text:after, input:not([type]).invalid ~ .helper-text:after, input:not([type]):focus.invalid ~ .helper-text:after,\ninput[type=text]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=password]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=email]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=url]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=time]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=date]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=number]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=search]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after,\ntextarea.textarea.invalid ~ .helper-text:after,\ntextarea.textarea:focus.invalid ~ .helper-text:after {\n content: attr(data-error);\n color: #f44336;\n}\n\n.select-wrapper + label:after, input:not([type]) + label:after,\ninput[type=text]:not(.browser-default) + label:after,\ninput[type=password]:not(.browser-default) + label:after,\ninput[type=email]:not(.browser-default) + label:after,\ninput[type=url]:not(.browser-default) + label:after,\ninput[type=time]:not(.browser-default) + label:after,\ninput[type=date]:not(.browser-default) + label:after,\ninput[type=datetime]:not(.browser-default) + label:after,\ninput[type=datetime-local]:not(.browser-default) + label:after,\ninput[type=tel]:not(.browser-default) + label:after,\ninput[type=number]:not(.browser-default) + label:after,\ninput[type=search]:not(.browser-default) + label:after,\ntextarea.textarea + label:after {\n display: block;\n content: \"\";\n position: absolute;\n top: 100%;\n left: 0;\n opacity: 0;\n transition: 0.2s opacity ease-out, 0.2s color ease-out;\n}\n\n.input-field {\n position: relative;\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.input-field.inline {\n display: inline-block;\n vertical-align: middle;\n margin-left: 5px;\n}\n.input-field.inline input,\n.input-field.inline .select-dropdown {\n margin-bottom: 1rem;\n}\n.input-field.col label {\n left: 0.5rem;\n}\n.input-field.col .prefix ~ label,\n.input-field.col .prefix ~ .validate ~ label {\n width: calc(100% - 3rem - 1rem);\n}\n.input-field > label {\n color: #9e9e9e;\n position: absolute;\n top: 0;\n left: 0;\n font-size: 1rem;\n cursor: text;\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n transform-origin: 0% 100%;\n text-align: initial;\n transform: translateY(12px);\n}\n.input-field > label:not(.label-icon).active {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n}\n.input-field > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label, .input-field > input[type=date]:not(.browser-default) + label, .input-field > input[type=time]:not(.browser-default) + label {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n}\n.input-field .helper-text {\n position: relative;\n min-height: 18px;\n display: block;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n.input-field .helper-text::after {\n opacity: 1;\n position: absolute;\n top: 0;\n left: 0;\n}\n.input-field .prefix {\n position: absolute;\n width: 56px;\n font-size: 2rem;\n transition: color 0.2s;\n}\n.input-field .prefix.active {\n color: #26a69a;\n}\n.input-field .prefix ~ input,\n.input-field .prefix ~ textarea,\n.input-field .prefix ~ label,\n.input-field .prefix ~ .validate ~ label,\n.input-field .prefix ~ .helper-text,\n.input-field .prefix ~ .autocomplete-content {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n.input-field .prefix ~ label {\n margin-left: 3rem;\n}\n@media only screen and (max-width : 992px) {\n .input-field .prefix ~ input {\n width: 86%;\n width: calc(100% - 3rem);\n }\n}\n@media only screen and (max-width : 600px) {\n .input-field .prefix ~ input {\n width: 80%;\n width: calc(100% - 3rem);\n }\n}\n\n/* Search Field */\n.input-field input[type=search] {\n display: block;\n line-height: inherit;\n transition: 0.3s background-color;\n}\n.nav-wrapper .input-field input[type=search] {\n height: inherit;\n padding-left: 4rem;\n width: calc(100% - 4rem);\n border: 0;\n box-shadow: none;\n}\n.input-field input[type=search]:focus:not(.browser-default) {\n background-color: #fff;\n border: 0;\n box-shadow: none;\n color: #444;\n}\n.input-field input[type=search]:focus:not(.browser-default) + label i, .input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close, .input-field input[type=search]:focus:not(.browser-default) ~ .material-icons {\n color: #444;\n}\n.input-field input[type=search] + .label-icon {\n transform: none;\n left: 1rem;\n}\n.input-field input[type=search] ~ .mdi-navigation-close, .input-field input[type=search] ~ .material-icons {\n position: absolute;\n top: 0;\n right: 1rem;\n color: transparent;\n cursor: pointer;\n font-size: 2rem;\n transition: 0.3s color;\n}\n\n/* Textarea */\ntextarea {\n width: 100%;\n height: 56px;\n background-color: transparent;\n}\ntextarea.textarea {\n line-height: normal;\n overflow-y: hidden; /* prevents scroll bar flash */\n padding: 0.8rem 0 0.8rem 0; /* prevents text jump on Enter keypress */\n resize: none;\n min-height: 56px;\n box-sizing: border-box;\n}\n\n.hiddendiv {\n visibility: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */\n padding-top: 1.2rem; /* prevents text jump on Enter keypress */\n position: absolute;\n top: 0;\n z-index: -1;\n}\n\n/* Autocomplete */\n.autocomplete-content li .highlight {\n color: #444;\n}\n.autocomplete-content li img {\n margin: 5px 15px;\n}\n\n/* Character Counter */\n.character-counter {\n min-height: 18px;\n}\n\n/* Radio Buttons\n ========================================================================== */\n[type=radio]:not(:checked),\n[type=radio]:checked {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n\n[type=radio]:not(:checked) + span,\n[type=radio]:checked + span {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n transition: 0.28s ease;\n user-select: none;\n}\n\n[type=radio] + span:before,\n[type=radio] + span:after {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n margin: 4px;\n width: 16px;\n height: 16px;\n z-index: 0;\n transition: 0.28s ease;\n}\n\n/* Unchecked styles */\n[type=radio]:not(:checked) + span:before,\n[type=radio]:not(:checked) + span:after,\n[type=radio]:checked + span:before,\n[type=radio]:checked + span:after,\n[type=radio].with-gap:checked + span:before,\n[type=radio].with-gap:checked + span:after {\n border-radius: 50%;\n}\n\n[type=radio]:not(:checked) + span:before,\n[type=radio]:not(:checked) + span:after {\n border: 2px solid #5a5a5a;\n}\n\n[type=radio]:not(:checked) + span:after {\n transform: scale(0);\n}\n\n/* Checked styles */\n[type=radio]:checked + span:before {\n border: 2px solid transparent;\n}\n\n[type=radio]:checked + span:after,\n[type=radio].with-gap:checked + span:before,\n[type=radio].with-gap:checked + span:after {\n border: 2px solid #26a69a;\n}\n\n[type=radio]:checked + span:after,\n[type=radio].with-gap:checked + span:after {\n background-color: #26a69a;\n}\n\n[type=radio]:checked + span:after {\n transform: scale(1.02);\n}\n\n/* Radio With gap */\n[type=radio].with-gap:checked + span:after {\n transform: scale(0.5);\n}\n\n/* Focused styles */\n[type=radio].tabbed:focus + span:before {\n box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);\n}\n\n/* Disabled Radio With gap */\n[type=radio].with-gap:disabled:checked + span:before {\n border: 2px solid rgba(0, 0, 0, 0.42);\n}\n\n[type=radio].with-gap:disabled:checked + span:after {\n border: none;\n background-color: rgba(0, 0, 0, 0.42);\n}\n\n/* Disabled style */\n[type=radio]:disabled:not(:checked) + span:before,\n[type=radio]:disabled:checked + span:before {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.42);\n}\n\n[type=radio]:disabled + span {\n color: rgba(0, 0, 0, 0.42);\n}\n\n[type=radio]:disabled:not(:checked) + span:before {\n border-color: rgba(0, 0, 0, 0.42);\n}\n\n[type=radio]:disabled:checked + span:after {\n background-color: rgba(0, 0, 0, 0.42);\n border-color: #949494;\n}\n\n/* Checkboxes\n ========================================================================== */\n/* Remove default checkbox */\n[type=checkbox]:not(:checked),\n[type=checkbox]:checked {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n\n[type=checkbox] {\n /* checkbox aspect */\n}\n[type=checkbox] + span:not(.lever) {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n user-select: none;\n}\n[type=checkbox] + span:not(.lever):before, [type=checkbox]:not(.filled-in) + span:not(.lever):after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 18px;\n height: 18px;\n z-index: 0;\n border: 2px solid #5a5a5a;\n border-radius: 1px;\n margin-top: 3px;\n transition: 0.2s;\n}\n[type=checkbox]:not(.filled-in) + span:not(.lever):after {\n border: 0;\n transform: scale(0);\n}\n[type=checkbox]:not(:checked):disabled + span:not(.lever):before {\n border: none;\n background-color: rgba(0, 0, 0, 0.42);\n}\n[type=checkbox].tabbed:focus + span:not(.lever):after {\n transform: scale(1);\n border: 0;\n border-radius: 50%;\n box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n[type=checkbox]:checked + span:not(.lever):before {\n top: -4px;\n left: -5px;\n width: 12px;\n height: 22px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: 2px solid #26a69a;\n border-bottom: 2px solid #26a69a;\n transform: rotate(40deg);\n backface-visibility: hidden;\n transform-origin: 100% 100%;\n}\n[type=checkbox]:checked:disabled + span:before {\n border-right: 2px solid rgba(0, 0, 0, 0.42);\n border-bottom: 2px solid rgba(0, 0, 0, 0.42);\n}\n\n/* Indeterminate checkbox */\n[type=checkbox]:indeterminate + span:not(.lever):before {\n top: -11px;\n left: -12px;\n width: 10px;\n height: 22px;\n border-top: none;\n border-left: none;\n border-right: 2px solid #26a69a;\n border-bottom: none;\n transform: rotate(90deg);\n backface-visibility: hidden;\n transform-origin: 100% 100%;\n}\n[type=checkbox]:indeterminate:disabled + span:not(.lever):before {\n border-right: 2px solid rgba(0, 0, 0, 0.42);\n background-color: transparent;\n}\n\n[type=checkbox].filled-in + span:not(.lever):after {\n border-radius: 2px;\n}\n[type=checkbox].filled-in + span:not(.lever):before,\n[type=checkbox].filled-in + span:not(.lever):after {\n content: \"\";\n left: 0;\n position: absolute;\n /* .1s delay is for check animation */\n transition: border 0.25s, background-color 0.25s, width 0.2s 0.1s, height 0.2s 0.1s, top 0.2s 0.1s, left 0.2s 0.1s;\n z-index: 1;\n}\n[type=checkbox].filled-in:not(:checked) + span:not(.lever):before {\n width: 0;\n height: 0;\n border: 3px solid transparent;\n left: 6px;\n top: 10px;\n transform: rotateZ(37deg);\n transform-origin: 100% 100%;\n}\n[type=checkbox].filled-in:not(:checked) + span:not(.lever):after {\n height: 20px;\n width: 20px;\n background-color: transparent;\n border: 2px solid #5a5a5a;\n top: 0px;\n z-index: 0;\n}\n[type=checkbox].filled-in:checked + span:not(.lever):before {\n top: 0;\n left: 1px;\n width: 8px;\n height: 13px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n transform: rotateZ(37deg);\n transform-origin: 100% 100%;\n}\n[type=checkbox].filled-in:checked + span:not(.lever):after {\n top: 0;\n width: 20px;\n height: 20px;\n border: 2px solid #26a69a;\n background-color: #26a69a;\n z-index: 0;\n}\n[type=checkbox].filled-in.tabbed:focus + span:not(.lever):after {\n border-radius: 2px;\n border-color: #5a5a5a;\n background-color: rgba(0, 0, 0, 0.1);\n}\n[type=checkbox].filled-in.tabbed:checked:focus + span:not(.lever):after {\n border-radius: 2px;\n background-color: #26a69a;\n border-color: #26a69a;\n}\n[type=checkbox].filled-in:disabled:not(:checked) + span:not(.lever):before {\n background-color: transparent;\n border: 2px solid transparent;\n}\n[type=checkbox].filled-in:disabled:not(:checked) + span:not(.lever):after {\n border-color: transparent;\n background-color: #949494;\n}\n[type=checkbox].filled-in:disabled:checked + span:not(.lever):before {\n background-color: transparent;\n}\n[type=checkbox].filled-in:disabled:checked + span:not(.lever):after {\n background-color: #949494;\n border-color: #949494;\n}\n\n/* Switch\n ========================================================================== */\n.switch,\n.switch * {\n -webkit-tap-highlight-color: transparent;\n user-select: none;\n}\n\n.switch label {\n cursor: pointer;\n}\n\n.switch label input[type=checkbox] {\n opacity: 0;\n width: 0;\n height: 0;\n}\n.switch label input[type=checkbox]:checked + .lever {\n background-color: rgb(132.0625, 199.4375, 193.12109375);\n}\n.switch label input[type=checkbox]:checked + .lever:before, .switch label input[type=checkbox]:checked + .lever:after {\n left: 18px;\n}\n.switch label input[type=checkbox]:checked + .lever:after {\n background-color: #26a69a;\n}\n\n.switch label .lever {\n content: \"\";\n display: inline-block;\n position: relative;\n width: 36px;\n height: 14px;\n background-color: rgba(0, 0, 0, 0.38);\n border-radius: 15px;\n transition: background 0.3s ease;\n vertical-align: middle;\n margin: 0 16px;\n}\n.switch label .lever:before, .switch label .lever:after {\n content: \"\";\n position: absolute;\n display: inline-block;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n left: 0;\n top: -3px;\n transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease, transform 0.1s ease;\n}\n.switch label .lever:before {\n background-color: rgba(38, 166, 154, 0.15);\n}\n.switch label .lever:after {\n background-color: #F1F1F1;\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n\ninput[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,\ninput[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before {\n transform: scale(2.4);\n background-color: rgba(38, 166, 154, 0.15);\n}\n\ninput[type=checkbox]:not(:disabled) ~ .lever:active:before,\ninput[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before {\n transform: scale(2.4);\n background-color: rgba(0, 0, 0, 0.08);\n}\n\n.switch input[type=checkbox][disabled] + .lever {\n cursor: default;\n background-color: rgba(0, 0, 0, 0.12);\n}\n\n.switch label input[type=checkbox][disabled] + .lever:after,\n.switch label input[type=checkbox][disabled]:checked + .lever:after {\n background-color: #949494;\n}\n\n/* Select Field\n ========================================================================== */\nselect {\n display: none;\n}\n\nselect.browser-default {\n display: block;\n}\n\nselect {\n background-color: rgba(255, 255, 255, 0.9);\n width: 100%;\n padding: 5px;\n border: 1px solid #f2f2f2;\n border-radius: 2px;\n height: 56px;\n}\n\n.select-label {\n position: absolute;\n}\n\n.select-wrapper {\n position: relative;\n}\n.select-wrapper.valid + label, .select-wrapper.invalid + label {\n width: 100%;\n pointer-events: none;\n}\n.select-wrapper input.select-dropdown {\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: none;\n border-bottom: 1px solid #9e9e9e;\n outline: none;\n height: 56px;\n line-height: 56px;\n width: 100%;\n font-size: 16px;\n margin: 0 0 8px 0;\n padding: 0;\n display: block;\n user-select: none;\n z-index: 1;\n}\n.select-wrapper input.select-dropdown:focus {\n border-bottom: 1px solid #26a69a;\n}\n.select-wrapper .caret {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto 0;\n z-index: 0;\n fill: rgba(0, 0, 0, 0.87);\n}\n.select-wrapper + label {\n position: absolute;\n top: -26px;\n font-size: 0.8rem;\n}\n\nselect:disabled {\n color: rgba(0, 0, 0, 0.42);\n}\n\n.select-wrapper.disabled + label {\n color: rgba(0, 0, 0, 0.42);\n}\n.select-wrapper.disabled .caret {\n fill: rgba(0, 0, 0, 0.42);\n}\n\n.select-wrapper input.select-dropdown:disabled {\n color: rgba(0, 0, 0, 0.42);\n cursor: default;\n user-select: none;\n}\n\n.select-wrapper i {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.select-dropdown li.disabled,\n.select-dropdown li.disabled > span,\n.select-dropdown li.optgroup {\n color: rgba(0, 0, 0, 0.3);\n background-color: transparent;\n}\n\nbody.keyboard-focused .select-dropdown.dropdown-content li:focus {\n background-color: rgba(0, 0, 0, 0.08);\n}\n\n.select-dropdown.dropdown-content li:hover {\n background-color: rgba(0, 0, 0, 0.08);\n}\n.select-dropdown.dropdown-content li.selected {\n background-color: rgba(0, 0, 0, 0.03);\n}\n\n.prefix ~ .select-wrapper {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.prefix ~ label {\n margin-left: 3rem;\n}\n\n.select-dropdown li img {\n margin: 5px 15px;\n float: right;\n}\n\n.select-dropdown li.optgroup.selected > span {\n color: rgba(0, 0, 0, 0.7);\n}\n.select-dropdown li.optgroup > span {\n color: rgba(0, 0, 0, 0.4);\n}\n.select-dropdown li.optgroup ~ li.optgroup-option {\n padding-left: 1rem;\n}\n\n/* File Input\n ========================================================================== */\n.file-field {\n position: relative;\n}\n.file-field .file-path-wrapper {\n overflow: hidden;\n padding-left: 10px;\n}\n.file-field input.file-path {\n width: 100%;\n}\n.file-field .btn, .file-field .btn-small, .file-field .btn-large {\n float: left;\n height: 56px;\n line-height: 56px;\n}\n.file-field span {\n cursor: pointer;\n}\n.file-field input[type=file] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n font-size: 20px;\n cursor: pointer;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.file-field input[type=file]::-webkit-file-upload-button {\n display: none;\n}\n\n/* Range\n ========================================================================== */\n.range-field {\n position: relative;\n}\n\ninput[type=range],\ninput[type=range] + .thumb {\n cursor: pointer;\n}\n\ninput[type=range] {\n position: relative;\n background-color: transparent;\n border: none;\n outline: none;\n width: 100%;\n margin: 15px 0;\n padding: 0;\n}\ninput[type=range]:focus {\n outline: none;\n}\n\ninput[type=range] + .thumb {\n position: absolute;\n top: 10px;\n left: 0;\n border: none;\n height: 0;\n width: 0;\n border-radius: 50%;\n background-color: #26a69a;\n margin-left: 7px;\n transform-origin: 50% 50%;\n transform: rotate(-45deg);\n}\ninput[type=range] + .thumb .value {\n display: block;\n width: 30px;\n text-align: center;\n color: #26a69a;\n font-size: 0;\n transform: rotate(45deg);\n}\ninput[type=range] + .thumb.active {\n border-radius: 50% 50% 50% 0;\n}\ninput[type=range] + .thumb.active .value {\n color: #fff;\n margin-left: -1px;\n margin-top: 8px;\n font-size: 10px;\n}\n\ninput[type=range] {\n -webkit-appearance: none;\n}\n\ninput[type=range]::-webkit-slider-runnable-track {\n height: 3px;\n background: #c2c0c2;\n border: none;\n}\n\ninput[type=range]::-webkit-slider-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n transition: box-shadow 0.3s;\n -webkit-appearance: none;\n background-color: #26a69a;\n transform-origin: 50% 50%;\n margin: -5px 0 0 0;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb {\n box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);\n}\n\ninput[type=range] {\n /* fix for FF unable to apply focus style bug */\n border: 1px solid white;\n /*required for proper track sizing in FF*/\n}\n\ninput[type=range]::-moz-range-track {\n height: 3px;\n background: #c2c0c2;\n border: none;\n}\n\ninput[type=range]::-moz-focus-inner {\n border: 0;\n}\n\ninput[type=range]::-moz-range-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n transition: box-shadow 0.3s;\n margin-top: -5px;\n}\n\ninput[type=range]:-moz-focusring {\n outline: 1px solid #fff;\n outline-offset: -1px;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb {\n box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);\n}\n\ninput[type=range]::-ms-track {\n height: 3px;\n background: transparent;\n border-color: transparent;\n border-width: 6px 0;\n /*remove default tick marks*/\n color: transparent;\n}\n\ninput[type=range]::-ms-fill-lower {\n background: #777;\n}\n\ninput[type=range]::-ms-fill-upper {\n background: #ddd;\n}\n\ninput[type=range]::-ms-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n transition: box-shadow 0.3s;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb {\n box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);\n}\n\n.parallax {\n /* Set a specific height */\n min-height: 500px;\n /* Create the parallax scrolling effect */\n background-attachment: fixed;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n* {\n box-sizing: border-box;\n}\n\nbody {\n font-family: sans-serif;\n}\n\n.scene {\n width: 200px;\n height: 200px;\n border: 1px solid #CCC;\n margin: 80px;\n perspective: 400px;\n}\n\n.cube {\n width: 200px;\n height: 200px;\n position: relative;\n transform-style: preserve-3d;\n transform: translateZ(-400px);\n transition: transform 1s;\n}\n\n.cube.show-front {\n transform: translateZ(-10px) rotateY(0deg);\n}\n\n.cube.show-right {\n transform: translateZ(-10px) rotateY(-90deg);\n}\n\n.cube.show-back {\n transform: translateZ(-10px) rotateY(-180deg);\n}\n\n.cube.show-left {\n transform: translateZ(-10px) rotateY(90deg);\n}\n\n.cube.show-top {\n transform: translateZ(-10px) rotateX(-90deg);\n}\n\n.cube.show-bottom {\n transform: translateZ(-10px) rotateX(90deg);\n}\n\n.cube__face {\n position: absolute;\n width: 200px;\n height: 200px;\n border: 2px solid black;\n line-height: 200px;\n font-size: 40px;\n font-weight: bold;\n color: white;\n text-align: center;\n}\n\n.cube__face--front {\n background: hsla(0, 100%, 50%, 0.7);\n}\n\n.cube__face--right {\n background: hsla(60, 100%, 50%, 0.7);\n}\n\n.cube__face--back {\n background: hsla(120, 100%, 50%, 0.7);\n}\n\n.cube__face--left {\n background: hsla(180, 100%, 50%, 0.7);\n}\n\n.cube__face--top {\n background: hsla(240, 100%, 50%, 0.7);\n}\n\n.cube__face--bottom {\n background: hsla(300, 100%, 50%, 0.7);\n}\n\n.cube__face--front {\n transform: rotateY(0deg) translateZ(100px);\n}\n\n.cube__face--right {\n transform: rotateY(90deg) translateZ(100px);\n}\n\n.cube__face--back {\n transform: rotateY(180deg) translateZ(100px);\n}\n\n.cube__face--left {\n transform: rotateY(-90deg) translateZ(100px);\n}\n\n.cube__face--top {\n transform: rotateX(90deg) translateZ(100px);\n}\n\n.cube__face--bottom {\n transform: rotateX(-90deg) translateZ(100px);\n}\n\nlabel {\n margin-right: 10px;\n}\n\n.container {\n margin: 0 auto;\n max-width: 1280px;\n width: 90%;\n}\n\n@media only screen and (min-width : 601px) {\n .container {\n width: 85%;\n }\n}\n@media only screen and (min-width : 993px) {\n .container {\n width: 70%;\n }\n}\n.col .row {\n margin-left: -0.5rem;\n margin-right: -0.5rem;\n}\n\n.section {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.section.no-pad {\n padding: 0;\n}\n.section.no-pad-bot {\n padding-bottom: 0;\n}\n.section.no-pad-top {\n padding-top: 0;\n}\n\n.row {\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 20px;\n}\n.row:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.row .col {\n float: left;\n box-sizing: border-box;\n padding: 0 0.5rem;\n min-height: 1px;\n}\n.row .col[class*=push-], .row .col[class*=pull-] {\n position: relative;\n}\n.row .col.s1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.offset-s1 {\n margin-left: 8.3333333333%;\n}\n.row .col.pull-s1 {\n right: 8.3333333333%;\n}\n.row .col.push-s1 {\n left: 8.3333333333%;\n}\n.row .col.offset-s2 {\n margin-left: 16.6666666667%;\n}\n.row .col.pull-s2 {\n right: 16.6666666667%;\n}\n.row .col.push-s2 {\n left: 16.6666666667%;\n}\n.row .col.offset-s3 {\n margin-left: 25%;\n}\n.row .col.pull-s3 {\n right: 25%;\n}\n.row .col.push-s3 {\n left: 25%;\n}\n.row .col.offset-s4 {\n margin-left: 33.3333333333%;\n}\n.row .col.pull-s4 {\n right: 33.3333333333%;\n}\n.row .col.push-s4 {\n left: 33.3333333333%;\n}\n.row .col.offset-s5 {\n margin-left: 41.6666666667%;\n}\n.row .col.pull-s5 {\n right: 41.6666666667%;\n}\n.row .col.push-s5 {\n left: 41.6666666667%;\n}\n.row .col.offset-s6 {\n margin-left: 50%;\n}\n.row .col.pull-s6 {\n right: 50%;\n}\n.row .col.push-s6 {\n left: 50%;\n}\n.row .col.offset-s7 {\n margin-left: 58.3333333333%;\n}\n.row .col.pull-s7 {\n right: 58.3333333333%;\n}\n.row .col.push-s7 {\n left: 58.3333333333%;\n}\n.row .col.offset-s8 {\n margin-left: 66.6666666667%;\n}\n.row .col.pull-s8 {\n right: 66.6666666667%;\n}\n.row .col.push-s8 {\n left: 66.6666666667%;\n}\n.row .col.offset-s9 {\n margin-left: 75%;\n}\n.row .col.pull-s9 {\n right: 75%;\n}\n.row .col.push-s9 {\n left: 75%;\n}\n.row .col.offset-s10 {\n margin-left: 83.3333333333%;\n}\n.row .col.pull-s10 {\n right: 83.3333333333%;\n}\n.row .col.push-s10 {\n left: 83.3333333333%;\n}\n.row .col.offset-s11 {\n margin-left: 91.6666666667%;\n}\n.row .col.pull-s11 {\n right: 91.6666666667%;\n}\n.row .col.push-s11 {\n left: 91.6666666667%;\n}\n.row .col.offset-s12 {\n margin-left: 100%;\n}\n.row .col.pull-s12 {\n right: 100%;\n}\n.row .col.push-s12 {\n left: 100%;\n}\n@media only screen and (min-width : 601px) {\n .row .col.m1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-m1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-m1 {\n right: 8.3333333333%;\n }\n .row .col.push-m1 {\n left: 8.3333333333%;\n }\n .row .col.offset-m2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-m2 {\n right: 16.6666666667%;\n }\n .row .col.push-m2 {\n left: 16.6666666667%;\n }\n .row .col.offset-m3 {\n margin-left: 25%;\n }\n .row .col.pull-m3 {\n right: 25%;\n }\n .row .col.push-m3 {\n left: 25%;\n }\n .row .col.offset-m4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-m4 {\n right: 33.3333333333%;\n }\n .row .col.push-m4 {\n left: 33.3333333333%;\n }\n .row .col.offset-m5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-m5 {\n right: 41.6666666667%;\n }\n .row .col.push-m5 {\n left: 41.6666666667%;\n }\n .row .col.offset-m6 {\n margin-left: 50%;\n }\n .row .col.pull-m6 {\n right: 50%;\n }\n .row .col.push-m6 {\n left: 50%;\n }\n .row .col.offset-m7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-m7 {\n right: 58.3333333333%;\n }\n .row .col.push-m7 {\n left: 58.3333333333%;\n }\n .row .col.offset-m8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-m8 {\n right: 66.6666666667%;\n }\n .row .col.push-m8 {\n left: 66.6666666667%;\n }\n .row .col.offset-m9 {\n margin-left: 75%;\n }\n .row .col.pull-m9 {\n right: 75%;\n }\n .row .col.push-m9 {\n left: 75%;\n }\n .row .col.offset-m10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-m10 {\n right: 83.3333333333%;\n }\n .row .col.push-m10 {\n left: 83.3333333333%;\n }\n .row .col.offset-m11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-m11 {\n right: 91.6666666667%;\n }\n .row .col.push-m11 {\n left: 91.6666666667%;\n }\n .row .col.offset-m12 {\n margin-left: 100%;\n }\n .row .col.pull-m12 {\n right: 100%;\n }\n .row .col.push-m12 {\n left: 100%;\n }\n}\n@media only screen and (min-width : 993px) {\n .row .col.l1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-l1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-l1 {\n right: 8.3333333333%;\n }\n .row .col.push-l1 {\n left: 8.3333333333%;\n }\n .row .col.offset-l2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-l2 {\n right: 16.6666666667%;\n }\n .row .col.push-l2 {\n left: 16.6666666667%;\n }\n .row .col.offset-l3 {\n margin-left: 25%;\n }\n .row .col.pull-l3 {\n right: 25%;\n }\n .row .col.push-l3 {\n left: 25%;\n }\n .row .col.offset-l4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-l4 {\n right: 33.3333333333%;\n }\n .row .col.push-l4 {\n left: 33.3333333333%;\n }\n .row .col.offset-l5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-l5 {\n right: 41.6666666667%;\n }\n .row .col.push-l5 {\n left: 41.6666666667%;\n }\n .row .col.offset-l6 {\n margin-left: 50%;\n }\n .row .col.pull-l6 {\n right: 50%;\n }\n .row .col.push-l6 {\n left: 50%;\n }\n .row .col.offset-l7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-l7 {\n right: 58.3333333333%;\n }\n .row .col.push-l7 {\n left: 58.3333333333%;\n }\n .row .col.offset-l8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-l8 {\n right: 66.6666666667%;\n }\n .row .col.push-l8 {\n left: 66.6666666667%;\n }\n .row .col.offset-l9 {\n margin-left: 75%;\n }\n .row .col.pull-l9 {\n right: 75%;\n }\n .row .col.push-l9 {\n left: 75%;\n }\n .row .col.offset-l10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-l10 {\n right: 83.3333333333%;\n }\n .row .col.push-l10 {\n left: 83.3333333333%;\n }\n .row .col.offset-l11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-l11 {\n right: 91.6666666667%;\n }\n .row .col.push-l11 {\n left: 91.6666666667%;\n }\n .row .col.offset-l12 {\n margin-left: 100%;\n }\n .row .col.pull-l12 {\n right: 100%;\n }\n .row .col.push-l12 {\n left: 100%;\n }\n}\n@media only screen and (min-width : 1201px) {\n .row .col.xl1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-xl1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-xl1 {\n right: 8.3333333333%;\n }\n .row .col.push-xl1 {\n left: 8.3333333333%;\n }\n .row .col.offset-xl2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-xl2 {\n right: 16.6666666667%;\n }\n .row .col.push-xl2 {\n left: 16.6666666667%;\n }\n .row .col.offset-xl3 {\n margin-left: 25%;\n }\n .row .col.pull-xl3 {\n right: 25%;\n }\n .row .col.push-xl3 {\n left: 25%;\n }\n .row .col.offset-xl4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-xl4 {\n right: 33.3333333333%;\n }\n .row .col.push-xl4 {\n left: 33.3333333333%;\n }\n .row .col.offset-xl5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-xl5 {\n right: 41.6666666667%;\n }\n .row .col.push-xl5 {\n left: 41.6666666667%;\n }\n .row .col.offset-xl6 {\n margin-left: 50%;\n }\n .row .col.pull-xl6 {\n right: 50%;\n }\n .row .col.push-xl6 {\n left: 50%;\n }\n .row .col.offset-xl7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-xl7 {\n right: 58.3333333333%;\n }\n .row .col.push-xl7 {\n left: 58.3333333333%;\n }\n .row .col.offset-xl8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-xl8 {\n right: 66.6666666667%;\n }\n .row .col.push-xl8 {\n left: 66.6666666667%;\n }\n .row .col.offset-xl9 {\n margin-left: 75%;\n }\n .row .col.pull-xl9 {\n right: 75%;\n }\n .row .col.push-xl9 {\n left: 75%;\n }\n .row .col.offset-xl10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-xl10 {\n right: 83.3333333333%;\n }\n .row .col.push-xl10 {\n left: 83.3333333333%;\n }\n .row .col.offset-xl11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-xl11 {\n right: 91.6666666667%;\n }\n .row .col.push-xl11 {\n left: 91.6666666667%;\n }\n .row .col.offset-xl12 {\n margin-left: 100%;\n }\n .row .col.pull-xl12 {\n right: 100%;\n }\n .row .col.push-xl12 {\n left: 100%;\n }\n}\n\n.sidenav {\n position: fixed;\n width: 300px;\n left: 0;\n top: 0;\n margin: 0;\n height: 100%;\n height: calc(100% + 60px);\n height: -moz-calc(100%);\n padding-bottom: 60px;\n background-color: #fff;\n z-index: 999;\n overflow-y: auto;\n will-change: transform;\n backface-visibility: hidden;\n transform: translateX(-105%);\n transition: transform 1s;\n}\n.sidenav.right-aligned {\n right: 0;\n left: auto;\n transform: translateX(100%);\n}\n.sidenav .collapsible {\n margin: 0;\n}\n.sidenav li {\n float: none;\n}\n.sidenav li .iconSideLink {\n display: flex;\n align-items: center;\n}\n.sidenav li .iconSideLink svg {\n stroke: rgba(0, 0, 0, 0.2);\n width: 30px;\n}\n.sidenav li.active {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.sidenav li.active svg {\n stroke: white !important;\n width: 30px;\n}\n.sidenav li.last {\n position: sticky;\n top: calc(100% - 45px - 35px);\n}\n.sidenav li > a {\n color: rgba(0, 0, 0, 0.87);\n display: flex;\n font-size: 14px;\n font-weight: 700;\n height: 45px;\n line-height: 45px;\n padding: 0 30px;\n}\n.sidenav li > a:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.sidenav li > a.btn, .sidenav li > a.btn-small, .sidenav li > a.btn-large, .sidenav li > a.btn-flat, .sidenav li > a.btn-floating {\n margin: 10px 15px;\n}\n.sidenav li > a.btn, .sidenav li > a.btn-small, .sidenav li > a.btn-large, .sidenav li > a.btn-floating {\n color: #fff;\n}\n.sidenav li > a.btn-flat {\n color: #343434;\n}\n.sidenav li > a.btn:hover, .sidenav li > a.btn-small:hover, .sidenav li > a.btn-large:hover {\n background-color: rgb(64.75, 64.75, 64.75);\n}\n.sidenav li > a.btn-floating:hover {\n background-color: #343434;\n}\n.sidenav li > a > i, .sidenav li > a > [class^=mdi-],\n.sidenav li > a li > a > [class*=mdi-], .sidenav li > a > i.s-icon {\n float: left;\n height: 45px;\n line-height: 45px;\n margin: 0 30px 0 0;\n width: 22.5px;\n color: rgba(0, 0, 0, 0.54);\n}\n.sidenav .divider {\n margin: 7.5px 0 0 0;\n}\n.sidenav .subheader {\n cursor: initial;\n pointer-events: none;\n color: rgba(0, 0, 0, 0.54);\n font-size: 14px;\n font-weight: 500;\n line-height: 45px;\n}\n.sidenav .subheader:hover {\n background-color: transparent;\n}\n.sidenav .user-view {\n position: relative;\n padding: 30px 30px 0;\n margin-bottom: 7.5px;\n}\n.sidenav .user-view > a {\n height: auto;\n padding: 0;\n}\n.sidenav .user-view > a:hover {\n background-color: transparent;\n}\n.sidenav .user-view .background {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n}\n.sidenav .user-view .circle,\n.sidenav .user-view .name,\n.sidenav .user-view .email {\n display: block;\n}\n.sidenav .user-view .circle {\n height: 64px;\n width: 64px;\n}\n.sidenav .user-view .name,\n.sidenav .user-view .email {\n font-size: 14px;\n line-height: 22.5px;\n}\n.sidenav .user-view .name {\n margin-top: 16px;\n font-weight: 500;\n}\n.sidenav .user-view .email {\n padding-bottom: 16px;\n font-weight: 400;\n}\n\n.drag-target {\n height: 100%;\n width: 10px;\n position: fixed;\n top: 0;\n z-index: 998;\n}\n.drag-target.right-aligned {\n right: 0;\n}\n\n.sidenav.sidenav-fixed {\n left: 0;\n transform: translateX(0);\n position: fixed;\n}\n.sidenav.sidenav-fixed.right-aligned {\n right: 0;\n left: auto;\n}\n\n@media only screen and (max-width : 992px) {\n .sidenav.sidenav-fixed {\n transform: translateX(-105%);\n }\n .sidenav.sidenav-fixed.right-aligned {\n transform: translateX(105%);\n }\n .sidenav > a {\n padding: 0 15px;\n }\n .sidenav .user-view {\n padding: 15px 15px 0;\n }\n}\n.sidenav .collapsible-body > ul:not(.collapsible) > li.active,\n.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active {\n background-color: #90caf9;\n}\n.sidenav .collapsible-body > ul:not(.collapsible) > li.active a,\n.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active a {\n color: #fff;\n}\n\n.sidenav .collapsible-body {\n padding: 0;\n}\n\n.sidenav-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n opacity: 0;\n height: 120vh;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 997;\n display: none;\n}\n\n.with-side-nav-open {\n padding-left: 300px;\n transition: padding 1s;\n}\n\n.btn, .btn-small, .btn-large,\n.btn-flat {\n border: none;\n border-radius: 2px;\n display: inline-block;\n height: 36px;\n line-height: 36px;\n padding: 0 16px;\n text-transform: uppercase;\n vertical-align: middle;\n -webkit-tap-highlight-color: transparent;\n}\n\n.btn.disabled,\n.btn-floating.disabled,\n.btn-large.disabled,\n.btn-small.disabled,\n.btn-flat.disabled,\n.btn:disabled,\n.btn-floating:disabled,\n.btn-large:disabled,\n.btn-small:disabled,\n.btn-flat:disabled,\n.btn[disabled],\n.btn-floating[disabled],\n.btn-large[disabled],\n.btn-small[disabled],\n.btn-flat[disabled] {\n pointer-events: none;\n background-color: #DFDFDF !important;\n box-shadow: none;\n color: #9F9F9F !important;\n cursor: default;\n}\n.btn.disabled:hover,\n.btn-floating.disabled:hover,\n.btn-large.disabled:hover,\n.btn-small.disabled:hover,\n.btn-flat.disabled:hover,\n.btn:disabled:hover,\n.btn-floating:disabled:hover,\n.btn-large:disabled:hover,\n.btn-small:disabled:hover,\n.btn-flat:disabled:hover,\n.btn[disabled]:hover,\n.btn-floating[disabled]:hover,\n.btn-large[disabled]:hover,\n.btn-small[disabled]:hover,\n.btn-flat[disabled]:hover {\n background-color: #DFDFDF !important;\n color: #9F9F9F !important;\n}\n\n.btn,\n.btn-small,\n.btn-large,\n.btn-floating,\n.btn-flat {\n font-size: 14px;\n outline: 0;\n}\n.btn i,\n.btn-floating i,\n.btn-large i,\n.btn-small i,\n.btn-flat i {\n font-size: 1.3rem;\n line-height: inherit;\n}\n\n.btn:focus, .btn-small:focus, .btn-large:focus,\n.btn-floating:focus {\n background-color: rgb(26.5, 26.5, 26.5);\n}\n\n.btn, .btn-small, .btn-large {\n text-decoration: none;\n color: #fff;\n background-color: #343434;\n text-align: center;\n letter-spacing: 0.5px;\n transition: background-color 0.2s ease-out;\n cursor: pointer;\n}\n.btn:hover, .btn-small:hover, .btn-large:hover {\n background-color: rgb(64.75, 64.75, 64.75);\n}\n\n.btn-floating {\n display: inline-block;\n color: #fff;\n position: relative;\n overflow: hidden;\n z-index: 1;\n width: 40px;\n height: 40px;\n line-height: 40px;\n padding: 0;\n background-color: #26a69a;\n border-radius: 50%;\n transition: background-color 0.3s;\n cursor: pointer;\n vertical-align: middle;\n}\n.btn-floating:hover {\n background-color: #26a69a;\n}\n.btn-floating:before {\n border-radius: 0;\n}\n.btn-floating.btn-large {\n width: 56px;\n height: 56px;\n padding: 0;\n}\n.btn-floating.btn-large.halfway-fab {\n bottom: 28px;\n}\n.btn-floating.btn-large i {\n line-height: 56px;\n}\n.btn-floating.btn-small {\n width: 32.4px;\n height: 32.4px;\n}\n.btn-floating.btn-small.halfway-fab {\n bottom: 16.2px;\n}\n.btn-floating.btn-small i {\n line-height: 32.4px;\n}\n.btn-floating.halfway-fab {\n position: absolute;\n right: 24px;\n bottom: 20px;\n}\n.btn-floating.halfway-fab.left {\n right: auto;\n left: 24px;\n}\n.btn-floating i {\n width: inherit;\n display: inline-block;\n text-align: center;\n color: #fff;\n font-size: 1.6rem;\n line-height: 40px;\n}\n\nbutton.btn-floating {\n border: none;\n}\n\n.fixed-action-btn {\n position: fixed;\n right: 23px;\n bottom: 23px;\n padding-top: 15px;\n margin-bottom: 0;\n z-index: 997;\n}\n.fixed-action-btn.active ul {\n visibility: visible;\n}\n.fixed-action-btn.direction-left, .fixed-action-btn.direction-right {\n padding: 0 0 0 15px;\n}\n.fixed-action-btn.direction-left ul, .fixed-action-btn.direction-right ul {\n text-align: right;\n right: 64px;\n top: 50%;\n transform: translateY(-50%);\n height: 100%;\n left: auto;\n /*width 100% only goes to width of button container */\n width: 500px;\n}\n.fixed-action-btn.direction-left ul li, .fixed-action-btn.direction-right ul li {\n display: inline-block;\n margin: 7.5px 15px 0 0;\n}\n.fixed-action-btn.direction-right {\n padding: 0 15px 0 0;\n}\n.fixed-action-btn.direction-right ul {\n text-align: left;\n direction: rtl;\n left: 64px;\n right: auto;\n}\n.fixed-action-btn.direction-right ul li {\n margin: 7.5px 0 0 15px;\n}\n.fixed-action-btn.direction-bottom {\n padding: 0 0 15px 0;\n}\n.fixed-action-btn.direction-bottom ul {\n top: 64px;\n bottom: auto;\n display: flex;\n flex-direction: column-reverse;\n}\n.fixed-action-btn.direction-bottom ul li {\n margin: 15px 0 0 0;\n}\n.fixed-action-btn.toolbar {\n padding: 0;\n height: 56px;\n}\n.fixed-action-btn.toolbar.active > a i {\n opacity: 0;\n}\n.fixed-action-btn.toolbar ul {\n display: flex;\n top: 0;\n bottom: 0;\n z-index: 1;\n}\n.fixed-action-btn.toolbar ul li {\n flex: 1;\n display: inline-block;\n margin: 0;\n height: 100%;\n transition: none;\n}\n.fixed-action-btn.toolbar ul li a {\n display: block;\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 100%;\n background-color: transparent;\n box-shadow: none;\n color: #fff;\n line-height: 56px;\n z-index: 1;\n}\n.fixed-action-btn.toolbar ul li a i {\n line-height: inherit;\n}\n.fixed-action-btn ul {\n left: 0;\n right: 0;\n text-align: center;\n position: absolute;\n bottom: 64px;\n margin: 0;\n visibility: hidden;\n}\n.fixed-action-btn ul li {\n margin-bottom: 15px;\n}\n.fixed-action-btn ul a.btn-floating {\n opacity: 0;\n}\n.fixed-action-btn .fab-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 40px;\n height: 40px;\n background-color: #26a69a;\n border-radius: 50%;\n transform: scale(0);\n}\n\n.btn-flat {\n box-shadow: none;\n background-color: transparent;\n color: #343434;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n.btn-flat:focus, .btn-flat:hover {\n box-shadow: none;\n}\n.btn-flat:focus {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.btn-flat.disabled, .btn-flat.btn-flat[disabled] {\n background-color: transparent !important;\n color: rgb(178.5, 178.5, 178.5) !important;\n cursor: default;\n}\n\n.btn-large {\n height: 54px;\n line-height: 54px;\n font-size: 15px;\n padding: 0 28px;\n}\n.btn-large i {\n font-size: 1.6rem;\n}\n\n.btn-small {\n height: 32.4px;\n line-height: 32.4px;\n font-size: 13px;\n}\n.btn-small i {\n font-size: 1.2rem;\n}\n\n.btn-block {\n display: block;\n}\n\n.communTabHeader, .tabs.activeTab-2 .tab-header-over2 .tab-header, .tabs.activeTab-2 .tab-header-over1 .tab-header, .tabs.activeTab-2 .tab-header-over0 .tab-header, .tabs.activeTab-1 .tab-header-over2 .tab-header, .tabs.activeTab-1 .tab-header-over1 .tab-header, .tabs.activeTab-1 .tab-header-over0 .tab-header, .tabs.activeTab-0 .tab-header-over2 .tab-header, .tabs.activeTab-0 .tab-header-over1 .tab-header, .tabs.activeTab-0 .tab-header-over0 .tab-header {\n height: 100px;\n padding: 40px;\n}\n\n.tabs {\n min-height: calc(100% - 150px);\n margin-top: 30px;\n padding: 0 !important;\n border-radius: 40px !important;\n}\n.tabs .innerpage {\n min-height: 70VH !important;\n}\n.tabs .tabs-header-overlay {\n display: flex;\n height: 100px;\n}\n.tabs.activeTab-0 .tab-header-over0 {\n flex: 1;\n background-color: rgb(127.9433962264, 196.358490566, 252.5566037736);\n border-radius: 40px 0 0 0;\n}\n.tabs.activeTab-0 .tab-header-over0 .tab-header {\n background-color: #cbe7fe;\n border-radius: 40px 40px 0 0;\n}\n.tabs.activeTab-0 .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, #cbe7fe, rgb(52.8867924528, 161.7169811321, 251.1132075472));\n border-radius: 0 0 0 0;\n}\n.tabs.activeTab-0 .tab-header-over1 .tab-header {\n background-color: rgb(127.9433962264, 196.358490566, 252.5566037736);\n border-radius: 0 40px 0 40px;\n}\n.tabs.activeTab-0 .tab-header-over2 {\n flex: 1;\n background-color: rgb(127.9433962264, 196.358490566, 252.5566037736);\n border-radius: 0 40px 0 0;\n}\n.tabs.activeTab-0 .tab-header-over2 .tab-header {\n background-color: rgb(52.8867924528, 161.7169811321, 251.1132075472);\n border-radius: 0 40px 0 40px;\n}\n.tabs.activeTab-1 .tab-header-over0 {\n flex: 1;\n background-color: #cbe7fe;\n border-radius: 40px 0 0 0;\n}\n.tabs.activeTab-1 .tab-header-over0 .tab-header {\n background-color: rgb(127.9433962264, 196.358490566, 252.5566037736);\n border-radius: 40px 0 40px 0;\n}\n.tabs.activeTab-1 .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, rgb(127.9433962264, 196.358490566, 252.5566037736), rgb(52.8867924528, 161.7169811321, 251.1132075472));\n border-radius: 0 0 0 0;\n}\n.tabs.activeTab-1 .tab-header-over1 .tab-header {\n background-color: #cbe7fe;\n border-radius: 40px 40px 0 0;\n}\n.tabs.activeTab-1 .tab-header-over2 {\n flex: 1;\n background-color: #cbe7fe;\n border-radius: 0 40px 0 0;\n}\n.tabs.activeTab-1 .tab-header-over2 .tab-header {\n background-color: rgb(52.8867924528, 161.7169811321, 251.1132075472);\n border-radius: 0 40px 0 40px;\n}\n.tabs.activeTab-2 .tab-header-over0 {\n flex: 1;\n background-color: rgb(52.8867924528, 161.7169811321, 251.1132075472);\n border-radius: 40px 0 0 0;\n}\n.tabs.activeTab-2 .tab-header-over0 .tab-header {\n background-color: rgb(127.9433962264, 196.358490566, 252.5566037736);\n border-radius: 40px 0 40px 0;\n}\n.tabs.activeTab-2 .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, rgb(127.9433962264, 196.358490566, 252.5566037736), #cbe7fe);\n border-radius: 0 0 0 0;\n}\n.tabs.activeTab-2 .tab-header-over1 .tab-header {\n background-color: rgb(52.8867924528, 161.7169811321, 251.1132075472);\n border-radius: 40px 0 40px 0;\n}\n.tabs.activeTab-2 .tab-header-over2 {\n flex: 1;\n background-color: rgb(52.8867924528, 161.7169811321, 251.1132075472);\n border-radius: 0 40px 0 0;\n}\n.tabs.activeTab-2 .tab-header-over2 .tab-header {\n background-color: #cbe7fe;\n border-radius: 40px 40px 0 0;\n}\n.tabs .tab-content {\n background-color: #cbe7fe;\n padding: 10px;\n border-top: 0;\n min-height: 70vh;\n border-radius: 0 0 40px 40px;\n padding-bottom: 20px;\n}\n\n.loader-overlay {\n z-index: 999;\n position: absolute;\n height: 100vh;\n width: 100vw;\n top: 0;\n left: 0;\n background-color: rgba(102, 100, 100, 0.603);\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n.loader-overlay .loader {\n border: 7px solid #f3f3f3; /* Light grey */\n border-top: 7px solid #2ea2cc; /* Blue */\n border-radius: 50%;\n width: 70px;\n height: 70px;\n animation: spin 2s linear infinite;\n}\n.loader-overlay .loader-text {\n margin-top: 20px;\n font-size: 25px;\n color: #2ea2cc;\n}\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.card-panel {\n transition: box-shadow 0.25s;\n padding: 24px;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n border-radius: 2px;\n background-color: #fff;\n}\n\n.card {\n position: relative;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n background-color: #fff;\n transition: box-shadow 0.25s;\n border-radius: 2px;\n}\n.card .card-title {\n font-size: 24px;\n font-weight: 300;\n}\n.card .card-title.activator {\n cursor: pointer;\n}\n.card.small, .card.medium, .card.large {\n position: relative;\n}\n.card.small .card-image, .card.medium .card-image, .card.large .card-image {\n max-height: 60%;\n overflow: hidden;\n}\n.card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content {\n max-height: 40%;\n}\n.card.small .card-content, .card.medium .card-content, .card.large .card-content {\n max-height: 100%;\n overflow: hidden;\n}\n.card.small .card-action, .card.medium .card-action, .card.large .card-action {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.card.small {\n height: 300px;\n}\n.card.medium {\n height: 400px;\n}\n.card.large {\n height: 500px;\n}\n.card.horizontal {\n display: flex;\n}\n.card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image {\n height: 100%;\n max-height: none;\n overflow: visible;\n}\n.card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img {\n height: 100%;\n}\n.card.horizontal .card-image {\n max-width: 50%;\n}\n.card.horizontal .card-image img {\n border-radius: 2px 0 0 2px;\n max-width: 100%;\n width: auto;\n}\n.card.horizontal .card-stacked {\n display: flex;\n flex-direction: column;\n flex: 1;\n position: relative;\n}\n.card.horizontal .card-stacked .card-content {\n flex-grow: 1;\n}\n.card.sticky-action .card-action {\n z-index: 2;\n}\n.card.sticky-action .card-reveal {\n z-index: 1;\n padding-bottom: 64px;\n}\n.card .card-image {\n position: relative;\n}\n.card .card-image img {\n display: block;\n border-radius: 2px 2px 0 0;\n position: relative;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n}\n.card .card-image .card-title {\n color: #fff;\n position: absolute;\n bottom: 0;\n left: 0;\n max-width: 100%;\n padding: 24px;\n}\n.card .card-content {\n padding: 24px;\n border-radius: 0 0 2px 2px;\n}\n.card .card-content p {\n margin: 0;\n}\n.card .card-content .card-title {\n display: block;\n line-height: 32px;\n margin-bottom: 8px;\n}\n.card .card-content .card-title i {\n line-height: 32px;\n}\n.card .card-action {\n background-color: inherit;\n border-top: 1px solid rgba(160, 160, 160, 0.2);\n position: relative;\n padding: 16px 24px;\n}\n.card .card-action:last-child {\n border-radius: 0 0 2px 2px;\n}\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating) {\n color: #ffab40;\n margin-right: 24px;\n transition: color 0.3s ease;\n text-transform: uppercase;\n}\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating):hover {\n color: rgb(255, 215.8586387435, 166);\n}\n.card .card-reveal {\n padding: 24px;\n position: absolute;\n background-color: #fff;\n width: 100%;\n overflow-y: auto;\n left: 0;\n top: 100%;\n height: 100%;\n z-index: 3;\n display: none;\n}\n.card .card-reveal .card-title {\n cursor: pointer;\n display: block;\n}\n\n/*\n @license\n Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n Code distributed by Google as part of the polymer project is also\n subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n/**************************/\n/* STYLES FOR THE SPINNER */\n/**************************/\n/*\n * Constants:\n * STROKEWIDTH = 3px\n * ARCSIZE = 270 degrees (amount of circle the arc takes up)\n * ARCTIME = 1333ms (time it takes to expand and contract arc)\n * ARCSTARTROT = 216 degrees (how much the start location of the arc\n * should rotate each time, 216 gives us a\n * 5 pointed star shape (it's 360/5 * 3).\n * For a 7 pointed star, we might do\n * 360/7 * 3 = 154.286)\n * CONTAINERWIDTH = 28px\n * SHRINK_TIME = 400ms\n */\n.preloader-wrapper {\n display: inline-block;\n position: relative;\n width: 50px;\n height: 50px;\n}\n.preloader-wrapper.small {\n width: 36px;\n height: 36px;\n}\n.preloader-wrapper.big {\n width: 64px;\n height: 64px;\n}\n.preloader-wrapper.active {\n /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */\n -webkit-animation: container-rotate 1568ms linear infinite;\n animation: container-rotate 1568ms linear infinite;\n}\n\n@-webkit-keyframes container-rotate {\n to {\n -webkit-transform: rotate(360deg);\n }\n}\n@keyframes container-rotate {\n to {\n transform: rotate(360deg);\n }\n}\n.spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n border-color: #26a69a;\n}\n\n.spinner-blue,\n.spinner-blue-only {\n border-color: #4285f4;\n}\n\n.spinner-red,\n.spinner-red-only {\n border-color: #db4437;\n}\n\n.spinner-yellow,\n.spinner-yellow-only {\n border-color: #f4b400;\n}\n\n.spinner-green,\n.spinner-green-only {\n border-color: #0f9d58;\n}\n\n/**\n * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):\n *\n * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't\n * guarantee that the animation will start _exactly_ after that value. So we avoid using\n * animation-delay and instead set custom keyframes for each color (as redundant as it\n * seems).\n *\n * We write out each animation in full (instead of separating animation-name,\n * animation-duration, etc.) because under the polyfill, Safari does not recognize those\n * specific properties properly, treats them as -webkit-animation, and overrides the\n * other animation rules. See https://github.com/Polymer/platform/issues/53.\n */\n.active .spinner-layer.spinner-blue {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-red {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-yellow {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-green {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer,\n.active .spinner-layer.spinner-blue-only,\n.active .spinner-layer.spinner-red-only,\n.active .spinner-layer.spinner-yellow-only,\n.active .spinner-layer.spinner-green-only {\n /* durations: 4 * ARCTIME */\n opacity: 1;\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes fill-unfill-rotate {\n 12.5% {\n -webkit-transform: rotate(135deg);\n } /* 0.5 * ARCSIZE */\n 25% {\n -webkit-transform: rotate(270deg);\n } /* 1 * ARCSIZE */\n 37.5% {\n -webkit-transform: rotate(405deg);\n } /* 1.5 * ARCSIZE */\n 50% {\n -webkit-transform: rotate(540deg);\n } /* 2 * ARCSIZE */\n 62.5% {\n -webkit-transform: rotate(675deg);\n } /* 2.5 * ARCSIZE */\n 75% {\n -webkit-transform: rotate(810deg);\n } /* 3 * ARCSIZE */\n 87.5% {\n -webkit-transform: rotate(945deg);\n } /* 3.5 * ARCSIZE */\n to {\n -webkit-transform: rotate(1080deg);\n } /* 4 * ARCSIZE */\n}\n@keyframes fill-unfill-rotate {\n 12.5% {\n transform: rotate(135deg);\n } /* 0.5 * ARCSIZE */\n 25% {\n transform: rotate(270deg);\n } /* 1 * ARCSIZE */\n 37.5% {\n transform: rotate(405deg);\n } /* 1.5 * ARCSIZE */\n 50% {\n transform: rotate(540deg);\n } /* 2 * ARCSIZE */\n 62.5% {\n transform: rotate(675deg);\n } /* 2.5 * ARCSIZE */\n 75% {\n transform: rotate(810deg);\n } /* 3 * ARCSIZE */\n 87.5% {\n transform: rotate(945deg);\n } /* 3.5 * ARCSIZE */\n to {\n transform: rotate(1080deg);\n } /* 4 * ARCSIZE */\n}\n@-webkit-keyframes blue-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes blue-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n@-webkit-keyframes red-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n@keyframes red-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n@-webkit-keyframes yellow-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n@keyframes yellow-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n@-webkit-keyframes green-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n@keyframes green-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n/**\n * Patch the gap that appear between the two adjacent div.circle-clipper while the\n * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).\n */\n.gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n\n.gap-patch .circle {\n width: 1000%;\n left: -450%;\n}\n\n.circle-clipper {\n display: inline-block;\n position: relative;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n.circle-clipper .circle {\n width: 200%;\n height: 100%;\n border-width: 3px; /* STROKEWIDTH */\n border-style: solid;\n border-color: inherit;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n -webkit-animation: none;\n animation: none;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n}\n.circle-clipper.left .circle {\n left: 0;\n border-right-color: transparent !important;\n -webkit-transform: rotate(129deg);\n transform: rotate(129deg);\n}\n.circle-clipper.right .circle {\n left: -100%;\n border-left-color: transparent !important;\n -webkit-transform: rotate(-129deg);\n transform: rotate(-129deg);\n}\n\n.active .circle-clipper.left .circle {\n /* duration: ARCTIME */\n -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .circle-clipper.right .circle {\n /* duration: ARCTIME */\n -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes left-spin {\n from {\n -webkit-transform: rotate(130deg);\n }\n 50% {\n -webkit-transform: rotate(-5deg);\n }\n to {\n -webkit-transform: rotate(130deg);\n }\n}\n@keyframes left-spin {\n from {\n transform: rotate(130deg);\n }\n 50% {\n transform: rotate(-5deg);\n }\n to {\n transform: rotate(130deg);\n }\n}\n@-webkit-keyframes right-spin {\n from {\n -webkit-transform: rotate(-130deg);\n }\n 50% {\n -webkit-transform: rotate(5deg);\n }\n to {\n -webkit-transform: rotate(-130deg);\n }\n}\n@keyframes right-spin {\n from {\n transform: rotate(-130deg);\n }\n 50% {\n transform: rotate(5deg);\n }\n to {\n transform: rotate(-130deg);\n }\n}\n#spinnerContainer.cooldown {\n /* duration: SHRINK_TIME */\n -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@-webkit-keyframes fade-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes fade-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n.progress {\n position: relative;\n height: 4px;\n display: block;\n width: 100%;\n background-color: #acece6;\n border-radius: 2px;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n overflow: hidden;\n}\n.progress .determinate {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n background-color: #26a69a;\n transition: width 0.3s linear;\n}\n.progress .indeterminate {\n background-color: #26a69a;\n}\n.progress .indeterminate:before {\n content: \"\";\n position: absolute;\n background-color: inherit;\n top: 0;\n left: 0;\n bottom: 0;\n will-change: left, right;\n animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n}\n.progress .indeterminate:after {\n content: \"\";\n position: absolute;\n background-color: inherit;\n top: 0;\n left: 0;\n bottom: 0;\n will-change: left, right;\n animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\n animation-delay: 1.15s;\n}\n\n@keyframes indeterminate {\n 0% {\n left: -35%;\n right: 100%;\n }\n 60% {\n left: 100%;\n right: -90%;\n }\n 100% {\n left: 100%;\n right: -90%;\n }\n}\n@keyframes indeterminate-short {\n 0% {\n left: -200%;\n right: 100%;\n }\n 60% {\n left: 107%;\n right: -8%;\n }\n 100% {\n left: 107%;\n right: -8%;\n }\n}\n.flash-message {\n position: absolute;\n padding: 2px 10px;\n border-radius: 5px;\n z-index: 99999;\n right: 0;\n bottom: 0;\n font-size: 14px;\n}\n.flash-message.info {\n background-color: #beddbe;\n border: 1px solid #728f72;\n}\n.flash-message.warn {\n background-color: #f5e6d0;\n border: 1px solid #ea7d17;\n}\n.flash-message.error {\n background-color: #e5b2bc;\n border: 1px solid #e33257;\n}\n\n@keyframes messageIn {\n from {\n right: 80%;\n }\n to {\n right: 0;\n }\n}\n.pulse {\n overflow: visible;\n position: relative;\n}\n.pulse::before {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: inherit;\n border-radius: inherit;\n transition: opacity 0.3s, transform 0.3s;\n animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;\n}\n\n@keyframes pulse-animation {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 50% {\n opacity: 0;\n transform: scale(1.5);\n }\n 100% {\n opacity: 0;\n transform: scale(1.5);\n }\n}\n.dropdown-content {\n background-color: #fff;\n margin: 0;\n display: flow;\n min-width: 100px;\n overflow-y: auto;\n position: absolute;\n left: 0;\n top: 0;\n z-index: 9999;\n transform-origin: 0 0;\n}\n.dropdown-content:focus {\n outline: 0;\n}\n.dropdown-content li {\n clear: both;\n color: rgba(0, 0, 0, 0.87);\n cursor: pointer;\n min-height: 50px;\n line-height: 1.5rem;\n width: 100%;\n text-align: left;\n}\n.dropdown-content li:hover, .dropdown-content li.active {\n background-color: #eee;\n}\n.dropdown-content li:focus {\n outline: none;\n}\n.dropdown-content li.divider {\n min-height: 0;\n height: 1px;\n}\n.dropdown-content li > a, .dropdown-content li > span {\n font-size: 16px;\n color: #26a69a;\n display: block;\n line-height: 22px;\n padding: 14px 16px;\n}\n.dropdown-content li > span > label {\n top: 1px;\n left: 0;\n height: 18px;\n}\n.dropdown-content li > a > i {\n height: inherit;\n line-height: inherit;\n float: left;\n margin: 0 24px 0 0;\n width: 24px;\n}\n\nbody.keyboard-focused .dropdown-content li:focus {\n background-color: rgb(217.6, 217.6, 217.6);\n}\n\n.input-field.col .dropdown-content [type=checkbox] + label {\n top: 1px;\n left: 0;\n height: 18px;\n transform: none;\n}\n\n.dropdown-trigger {\n cursor: pointer;\n}\n\nnav {\n color: #fff;\n background-color: #90caf9;\n width: 100%;\n height: 56px;\n line-height: 56px;\n}\nnav.nav-extended {\n height: auto;\n}\nnav.nav-extended .nav-wrapper {\n display: flex;\n align-items: center;\n min-height: 56px;\n height: auto;\n}\nnav.nav-extended .nav-content {\n position: relative;\n line-height: normal;\n}\nnav a {\n color: #fff;\n}\nnav i,\nnav [class^=mdi-], nav [class*=mdi-],\nnav i.s-icons {\n display: block;\n font-size: 24px;\n height: 56px;\n line-height: 56px;\n}\nnav .nav-wrapper {\n position: relative;\n height: 100%;\n}\n@media only screen and (min-width : 993px) {\n nav a.sidenav-trigger {\n display: none;\n }\n}\nnav .sidenav-trigger {\n float: left;\n position: relative;\n z-index: 1;\n height: 56px;\n margin: 0 18px;\n}\nnav .sidenav-trigger i {\n height: 56px;\n line-height: 56px;\n}\nnav .brand-logo {\n position: absolute;\n color: #fff;\n display: inline-block;\n font-size: 2.1rem;\n padding: 0;\n}\nnav .brand-logo img.circle {\n height: 32px;\n width: 32px;\n}\nnav .brand-logo.center {\n left: 50%;\n transform: translateX(-50%);\n}\n@media only screen and (max-width : 992px) {\n nav .brand-logo {\n left: 50%;\n transform: translateX(-50%);\n }\n nav .brand-logo.left, nav .brand-logo.right {\n padding: 0;\n transform: none;\n }\n nav .brand-logo.left {\n left: 0.5rem;\n }\n nav .brand-logo.right {\n right: 0.5rem;\n left: auto;\n }\n}\nnav .brand-logo.right {\n right: 0.5rem;\n padding: 0;\n}\nnav .brand-logo i,\nnav .brand-logo [class^=mdi-], nav .brand-logo [class*=mdi-],\nnav .brand-logo i.s-icons {\n float: left;\n margin-right: 15px;\n}\nnav .nav-title {\n display: inline-block;\n font-size: 32px;\n padding: 28px 0;\n}\nnav ul {\n margin: 0;\n}\nnav ul li {\n transition: background-color 0.3s;\n float: left;\n padding: 0;\n}\nnav ul li.active {\n background-color: rgba(0, 0, 0, 0.1);\n}\nnav ul a {\n transition: background-color 0.3s;\n font-size: 1rem;\n color: #fff;\n display: block;\n padding: 0 15px;\n cursor: pointer;\n}\nnav ul a.btn, nav ul a.btn-small, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {\n margin-top: -2px;\n margin-left: 15px;\n margin-right: 15px;\n}\nnav ul a.btn > .material-icons, nav ul a.btn-small > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons {\n height: inherit;\n line-height: inherit;\n}\nnav ul a:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\nnav ul.left {\n float: left;\n}\nnav form {\n height: 100%;\n}\nnav .input-field {\n margin: 0;\n height: 100%;\n}\nnav .input-field input {\n height: 100%;\n font-size: 1.2rem;\n border: none;\n padding-left: 2rem;\n}\nnav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid {\n border: none;\n box-shadow: none;\n}\nnav .input-field label {\n top: 0;\n left: 0;\n}\nnav .input-field label i {\n color: rgba(255, 255, 255, 0.7);\n transition: color 0.3s;\n}\nnav .input-field label.active i {\n color: #fff;\n}\n\n.navbar-fixed {\n position: relative;\n height: 56px;\n z-index: 997;\n}\n.navbar-fixed nav {\n position: fixed;\n}\n\n@media only screen and (min-width : 601px) {\n nav.nav-extended .nav-wrapper {\n min-height: 64px;\n }\n nav, nav .nav-wrapper i, nav a.sidenav-trigger, nav a.sidenav-trigger i {\n height: 64px;\n line-height: 64px;\n }\n .navbar-fixed {\n height: 64px;\n }\n}","@import \"./colorsVars\";\n\n@each $color_name, $color in $colors {\n @each $color_type, $color_value in $color {\n @if $color_type == \"base\" {\n .#{$color_name} {\n background-color: $color_value !important;\n }\n .#{$color_name}-text {\n color: $color_value !important;\n }\n .#{$color_name}-waves .waves-ripple {\n background-color: $color_value !important;\n }\n } @else {\n .#{$color_name}.#{$color_type} {\n background-color: $color_value !important;\n }\n .#{$color_name}-text.text-#{$color_type} {\n color: $color_value !important;\n }\n .#{$color_name}-waves.waves-#{$color_type} .waves-ripple {\n background-color: $color_value !important;\n }\n }\n }\n}\n\n// ShadeVars classes\n$shades: (\n \"black\": #000000,\n \"white\": #ffffff,\n \"transparent\": transparent\n);\n// Shade classes\n@each $color, $color_value in $shades {\n .#{$color} {\n background-color: $color_value !important;\n }\n .#{$color}-text {\n color: $color_value !important;\n }\n}\n\n\n\n// usage: color(\"name_of_color\", \"type_of_color\")\n// to avoid to repeating map-get($colors, ...)\n\n@function color($color, $type) {\n @if map-has-key($colors, $color) {\n $curr_color: map-get($colors, $color);\n @if map-has-key($curr_color, $type) {\n @return map-get($curr_color, $type);\n }\n }\n @warn \"Unknown `#{$color}` - `#{$type}` in $colors.\";\n @return null;\n}\n","/**\n * prism.js Twilight theme\n * Based (more or less) on the Twilight theme originally of Textmate fame.\n * @author Remy Bach\n */\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n\t color: white;\n\t background: none;\n\t font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n\t text-align: left;\n\t text-shadow: 0 -.1em .2em black;\n\t white-space: pre;\n\t word-spacing: normal;\n\t word-break: normal;\n\t word-wrap: normal;\n\t line-height: 1.5;\n \n\t -moz-tab-size: 4;\n\t -o-tab-size: 4;\n\t tab-size: 4;\n \n\t -webkit-hyphens: none;\n\t -moz-hyphens: none;\n\t -ms-hyphens: none;\n\t hyphens: none;\n }\n \n pre[class*=\"language-\"],\n :not(pre) > code[class*=\"language-\"] {\n\t background: hsl(0, 0%, 8%); /* #141414 */\n }\n \n /* Code blocks */\n pre[class*=\"language-\"] {\n\t border-radius: .5em;\n\t border: .3em solid hsl(0, 0%, 33%); /* #282A2B */\n\t box-shadow: 1px 1px .5em black inset;\n\t margin: .5em 0;\n\t overflow: auto;\n\t padding: 1em;\n }\n \n pre[class*=\"language-\"]::-moz-selection {\n\t /* Firefox */\n\t background: hsl(200, 4%, 16%); /* #282A2B */\n }\n \n pre[class*=\"language-\"]::selection {\n\t /* Safari */\n\t background: hsl(200, 4%, 16%); /* #282A2B */\n }\n \n /* Text Selection colour */\n pre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\n code[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n\t text-shadow: none;\n\t background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */\n }\n \n pre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\n code[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n\t text-shadow: none;\n\t background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */\n }\n \n /* Inline code */\n :not(pre) > code[class*=\"language-\"] {\n\t border-radius: .3em;\n\t border: .13em solid hsl(0, 0%, 33%); /* #545454 */\n\t box-shadow: 1px 1px .3em -.1em black inset;\n\t padding: .15em .2em .05em;\n\t white-space: normal;\n }\n \n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n\t color: hsl(0, 0%, 47%); /* #777777 */\n }\n \n .token.punctuation {\n\t opacity: .7;\n }\n \n .namespace {\n\t opacity: .7;\n }\n \n .token.tag,\n .token.boolean,\n .token.number,\n .token.deleted {\n\t color: hsl(14, 58%, 55%); /* #CF6A4C */\n }\n \n .token.keyword,\n .token.property,\n .token.selector,\n .token.constant,\n .token.symbol,\n .token.builtin {\n\t color: hsl(53, 89%, 79%); /* #F9EE98 */\n }\n \n .token.attr-name,\n .token.attr-value,\n .token.string,\n .token.char,\n .token.operator,\n .token.entity,\n .token.url,\n .language-css .token.string,\n .style .token.string,\n .token.variable,\n .token.inserted {\n\t color: hsl(76, 21%, 52%); /* #8F9D6A */\n }\n \n .token.atrule {\n\t color: hsl(218, 22%, 55%); /* #7587A6 */\n }\n \n .token.regex,\n .token.important {\n\t color: hsl(42, 75%, 65%); /* #E9C062 */\n }\n \n .token.important,\n .token.bold {\n\t font-weight: bold;\n }\n .token.italic {\n\t font-style: italic;\n }\n \n .token.entity {\n\t cursor: help;\n }\n \n pre[data-line] {\n\t padding: 1em 0 1em 3em;\n\t position: relative;\n }\n \n /* Markup */\n .language-markup .token.tag,\n .language-markup .token.attr-name,\n .language-markup .token.punctuation {\n\t color: hsl(33, 33%, 52%); /* #AC885B */\n }\n \n /* Make the tokens sit above the line highlight so the colours don't look faded. */\n .token {\n\t position: relative;\n\t z-index: 1;\n }\n \n .line-highlight {\n\t background: hsla(0, 0%, 33%, 0.25); /* #545454 */\n\t background: linear-gradient(to right, hsla(0, 0%, 33%, .1) 70%, hsla(0, 0%, 33%, 0)); /* #545454 */\n\t border-bottom: 1px dashed hsl(0, 0%, 33%); /* #545454 */\n\t border-top: 1px dashed hsl(0, 0%, 33%); /* #545454 */\n\t left: 0;\n\t line-height: inherit;\n\t margin-top: 0.75em; /* Same as .prism’s padding-top */\n\t padding: inherit 0;\n\t pointer-events: none;\n\t position: absolute;\n\t right: 0;\n\t white-space: pre;\n\t z-index: 0;\n }\n \n .line-highlight:before,\n .line-highlight[data-end]:after {\n\t background-color: hsl(215, 15%, 59%); /* #8794A6 */\n\t border-radius: 999px;\n\t box-shadow: 0 1px white;\n\t color: hsl(24, 20%, 95%); /* #F5F2F0 */\n\t content: attr(data-start);\n\t font: bold 65%/1.5 sans-serif;\n\t left: .6em;\n\t min-width: 1em;\n\t padding: 0 .5em;\n\t position: absolute;\n\t text-align: center;\n\t text-shadow: none;\n\t top: .4em;\n\t vertical-align: .3em;\n }\n \n .line-highlight[data-end]:after {\n\t bottom: .4em;\n\t content: attr(data-end);\n\t top: auto;\n }\n ","@import 'https://fonts.googleapis.com/css?family=Ubuntu';\n\n\n\n.window {\n font-family: 'Ubuntu', sans-serif; \n font-size : 17px ;\n width : 600px ; \n margin : 75px auto ; \n background : #2c3e50; \n height : 350px ; \n border-radius : 5px ;\n display : relative ; \n box-shadow: 10px 10px 10px #888888;\n}\n\n.afterclose {\n color : #34495e ; \n display: none ; \n text-align: center ; \n}\n\n.open {\n color : #fff ; \n padding : 15px ; \n background: #2ecc71 ; \n border-radius: 4px ; \n border: none ; \n}\n\n.bash {\n width : 600px ; \n background : #34495e; \n height : 310px ; \n border-radius : 5px ;\n top: 40px;\n display : absolute; \n color : #fff ;\n text-align: left;\n .command{\n &::before{\n content: \"user@machine $ : \";\n color: #2ecc71;\n }\n\n }\n .resulta{\n &::before{\n content: \">>\";\n color: #2ecc71;\n }\n\n }\n}\n\n/* effected by controllers */\n\n.windowmax {\n width : 100% ; \n margin : auto ; \n background : #2c3e50; \n height : 1000px; \n border-radius : 5px ;\n display : relative ; \n}\n\n.windowmin {\n width : 300px ; \n height : 45px ;\n background : #2c3e50; \n border-radius : 5px ; \n bottom : 0 ; \n position: fixed;\n}\n\n.bashmax {\n display : absolute ; \n width : 100% ; \n background : #34495e; \n height : 960px ; \n border-radius : 5px ;\n bottom: 0;\n color : #fff ;\n}\n\n/* !--end--! */\n\n.buttons {\n width : 15px ;\n height : 15px ; \n border-radius : 50% ;\n float : right ; \n margin : 13px 4px;\n border: none ; \n}\n\n.close {\n background : #e74c3c ;\n}\n\n.maximize{\n background : #f1c40f ;\n}\n\n.minimize{\n background : #2ecc71 ;\n}\n\n.result {\n display : none ;\n}\n\n.controls {\n height : 40px ; \n top : 0 ; \n}\n\n.title {\n color : #fff ; \n font-weight: bold ; \n padding : 10px;\n}\n",".material-tooltip {\n padding: 10px 8px;\n font-size: 1rem;\n z-index: 2000;\n border-radius: 2px;\n color: #fff;\n min-height: 36px;\n line-height: 120%;\n opacity: 0;\n position: absolute;\n text-align: center;\n max-width: calc(100% - 4px);\n overflow: hidden;\n left: 0;\n top: 0;\n pointer-events: none;\n visibility: hidden;\n background-color: #323232;\n}\n\n.backdrop {\n position: absolute;\n opacity: 0;\n height: 7px;\n width: 14px;\n border-radius: 0 0 50% 50%;\n background-color: #323232;\n z-index: -1;\n transform-origin: 50% 0%;\n visibility: hidden;\n}\n","// Z-levels\n.shadow-0 {\n box-shadow: none !important;\n}\n\n/* 2dp elevation modified*/\n.shadow-1 {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),\n 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);\n}\n.shadow-1-half {\n box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12),\n 0 3px 1px -1px rgba(0, 0, 0, 0.2);\n}\n\n/* 6dp elevation modified*/\n.shadow-2 {\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12),\n 0 2px 4px -1px rgba(0, 0, 0, 0.3);\n}\n\n/* 12dp elevation modified*/\n.shadow-3 {\n box-shadow: 0 8px 17px 2px rgba(0, 0, 0, 0.14),\n 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);\n}\n\n/* 16dp elevation */\n.shadow-4 {\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14),\n 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -7px rgba(0, 0, 0, 0.2);\n}\n\n/* 24dp elevation */\n.shadow-5 {\n box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14),\n 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2);\n}\n\n/* 24dp elevation */\n.invert-shadow-5 {\n box-shadow: \n 38px 0 0 0 rgba(0, 0, 0, 0.14),\n 46px 0 0 0 rgba(0, 0, 0, 0.12), \n 15px 0 0 0 rgba(0, 0, 0, 0.2);\n }\n\n.hoverable {\n transition: box-shadow 0.25s;\n\n &:hover {\n box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2),\n 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n }\n}\n","\n/*!\n * Waves v0.6.0\n * http://fian.my.id/Waves\n *\n * Copyright 2014 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE\n */\n\n\n.waves-effect {\n position: relative;\n cursor: pointer;\n display: inline-block;\n overflow: hidden;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n vertical-align: middle;\n z-index: 1;\n transition: .3s ease-out;\n\n .waves-ripple {\n position: absolute;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n margin-top:-10px;\n margin-left:-10px;\n opacity: 0;\n\n background: rgba(0,0,0,0.2);\n transition: all 0.7s ease-out;\n transition-property: transform, opacity;\n transform: scale(0);\n pointer-events: none;\n }\n\n // Waves Colors\n &.waves-light .waves-ripple {\n background-color: rgba(255, 255, 255, 0.45);\n }\n &.waves-red .waves-ripple {\n background-color: rgba(244, 67, 54, .70);\n }\n &.waves-yellow .waves-ripple {\n background-color: rgba(255, 235, 59, .70);\n }\n &.waves-orange .waves-ripple {\n background-color: rgba(255, 152, 0, .70);\n }\n &.waves-purple .waves-ripple {\n background-color: rgba(156, 39, 176, 0.70);\n }\n &.waves-green .waves-ripple {\n background-color: rgba(76, 175, 80, 0.70);\n }\n &.waves-teal .waves-ripple {\n background-color: rgba(0, 150, 136, 0.70);\n }\n\n // Style input button bug.\n input[type=\"button\"], input[type=\"reset\"], input[type=\"submit\"] {\n border: 0;\n font-style: normal;\n font-size: inherit;\n text-transform: inherit;\n background: none;\n }\n\n img {\n position: relative;\n z-index: -1;\n }\n}\n\n.waves-notransition {\n transition: none #{\"!important\"};\n}\n\n.waves-circle {\n transform: translateZ(0);\n -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n\n.waves-input-wrapper {\n border-radius: 0.2em;\n vertical-align: bottom;\n\n .waves-button-input {\n position: relative;\n top: 0;\n left: 0;\n z-index: 1;\n }\n}\n\n.waves-circle {\n text-align: center;\n width: 2.5em;\n height: 2.5em;\n line-height: 2.5em;\n border-radius: 50%;\n -webkit-mask-image: none;\n}\n\n.waves-block {\n display: block;\n}\n\n/* Firefox Bug: link not triggered */\n.waves-effect .waves-ripple {\n z-index: -1;\n}",".modal {\n &:focus {\n outline: none;\n }\n\n @extend .shadow-5;\n\n //display: none;\n position: fixed;\n left: 0;\n right: 0;\n background-color: #fafafa;\n padding: 0;\n max-height: 70%;\n width: 55%;\n margin: auto;\n overflow-y: auto;\n\n border-radius: 2px;\n will-change: top, opacity;\n\n @media #{$medium-and-down} {\n width: 80%;\n }\n\n h1,h2,h3,h4 {\n margin-top: 0;\n }\n\n .modal-content {\n padding: 24px;\n }\n .modal-close {\n cursor: pointer;\n }\n\n .modal-footer {\n border-radius: 0 0 2px 2px;\n background-color: #fafafa;\n padding: 4px 6px;\n height: 56px;\n width: 100%;\n text-align: right;\n\n .btn, .btn-flat {\n margin: 6px 0;\n }\n }\n .modal-header {\n border-radius: 2px 2px 0 0 ;\n background-color: #fafafa;\n padding: 6px 4px;\n height: 56px;\n width: 100%;\n text-align: right;\n\n .btn, .btn-flat {\n margin: 6px 0;\n }\n }\n}\n.modal-overlay {\n position: fixed;\n z-index: 999;\n top: -25%;\n left: 0;\n bottom: 0;\n right: 0;\n height: 125%;\n width: 100%;\n background: #000;\n display: none;\n\n will-change: opacity;\n}\n\n// Modal with fixed action footer\n.modal.modal-fixed-footer {\n padding: 0;\n height: 70%;\n\n .modal-content {\n position: absolute;\n height: calc(100% - 56px);\n max-height: 100%;\n width: 100%;\n overflow-y: auto;\n }\n\n .modal-footer {\n border-top: 1px solid rgba(0,0,0,.1);\n position: absolute;\n bottom: 0;\n }\n}\n\n// Modal Bottom Sheet Style\n.modal.bottom-sheet {\n top: auto;\n bottom: -100%;\n margin: 0;\n width: 100%;\n max-height: 45%;\n border-radius: 0;\n will-change: bottom, opacity;\n}\n","html,\nbody,\n#root {\n margin: 0;\n height: 100%;\n}\n\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n.noselect {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Old versions of Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none;\n /* Non-prefixed version, currently\n supported by Chrome, Edge, Opera and Firefox */\n}\n\nul {\n &:not(.browser-default) {\n padding-left: 0;\n list-style-type: none;\n\n & > li {\n list-style-type: none;\n }\n }\n}\n\na {\n\tcolor: $link-color;\n\ttext-decoration: none;\n\n // Gets rid of tap active state\n -webkit-tap-highlight-color: transparent;\n}\n\n.w-100 {\n width: 100%;\n}\n\n.right-align {\n text-align: right;\n}\n.center-align{\n text-align: center;\n}\n\n.v-center {\n display: flex;\n align-items: center;\n}\n\n\n.mb1 {\n margin-bottom: 10px;\n}\n\n\n// Collections\n.collection {\n margin: $element-top-margin 0 $element-bottom-margin 0;\n border: 1px solid $collection-border-color;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n .collection-item {\n background-color: $collection-bg-color;\n line-height: $collection-line-height;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid $collection-border-color;\n\n &.hover {\n &:hover {\n background-color: $collection-hover-bg-color;\n }\n }\n\n // Avatar Collection\n &.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n\n\n // Don't style circles inside preloader classes.\n &:not(.circle-clipper) > .circle,\n :not(.circle-clipper) > .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n }\n\n i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n }\n\n\n .title {\n font-size: 16px;\n }\n\n p {\n margin: 0;\n }\n\n .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n }\n\n }\n\n\n &:last-child {\n border-bottom: none;\n }\n\n &.active {\n background-color: $collection-active-bg-color;\n color: $collection-active-color;\n\n .secondary-content {\n color: #fff;\n }\n }\n }\n\n a.collection-item {\n display: block;\n transition: .25s;\n color: $collection-link-color;\n\n &:not(.active) {\n &:hover {\n background-color: $collection-hover-bg-color;\n }\n }\n }\n\n &.with-header {\n .collection-header {\n background-color: $collection-bg-color;\n border-bottom: 1px solid $collection-border-color;\n padding: 10px 20px;\n }\n\n .collection-item {\n padding-left: 30px;\n }\n\n .collection-item.avatar {\n padding-left: 72px;\n }\n }\n\n}\n\n// Made less specific to allow easier overriding\n.secondary-content {\n float: right;\n color: $secondary-color;\n}\n\n.collapsible .collection {\n margin: 0;\n border: none;\n}\n\n\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n padding: 20px 0 20px 0;\n background-color: rgba(0, 0, 0, .5);\n z-index: 999;\n display: flex;\n justify-content: center;\n //align-items: center;\n .innerform{\n max-width: 650px;\n form{\n overflow: hidden;\n }\n }\n}\n\n\n\n\n\n\n\n\n\n\n\n/*********************\n Media Query Classes\n**********************/\n.hide-on-small-only, .hide-on-small-and-down {\n @media #{$small-and-down} {\n display: none !important;\n }\n}\n.hide-on-med-and-down {\n @media #{$medium-and-down} {\n display: none !important;\n }\n}\n.hide-on-med-and-up {\n @media #{$medium-and-up} {\n display: none !important;\n }\n}\n.hide-on-med-only {\n @media only screen and (min-width: $small-screen) and (max-width: $medium-screen) {\n display: none !important;\n }\n}\n.hide-on-large-only {\n @media #{$large-and-up} {\n display: none !important;\n }\n}\n.hide-on-extra-large-only {\n @media #{$extra-large-and-up} {\n display: none !important;\n }\n}\n.show-on-extra-large {\n @media #{$extra-large-and-up} {\n display: block !important;\n }\n}\n.show-on-large {\n @media #{$large-and-up} {\n display: block !important;\n }\n}\n.show-on-medium {\n @media only screen and (min-width: $small-screen) and (max-width: $medium-screen) {\n display: block !important;\n }\n}\n.show-on-small {\n @media #{$small-and-down} {\n display: block !important;\n }\n}\n.show-on-medium-and-up {\n @media #{$medium-and-up} {\n display: block !important;\n }\n}\n.show-on-medium-and-down {\n @media #{$medium-and-down} {\n display: block !important;\n }\n}\n\n\n// Center text on mobile\n.center-on-small-only {\n @media #{$small-and-down} {\n text-align: center;\n }\n}\n\n\n\n\n\n\n\n\n/*******************\n Utility Classes\n*******************/\n\n.hide {\n display: none !important;\n}\n\n// Text Align\n.left-align {\n text-align: left;\n}\n.right-align {\n text-align: right\n}\n.center, .center-align {\n text-align: center;\n}\n\n.left {\n float: left !important;\n}\n.right {\n float: right !important;\n}\n\n// No Text Select\n.no-select {\n user-select: none;\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n.truncate {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.no-padding {\n padding: 0 !important;\n}\n","@use \"sass:math\";\n$primary-color: color(\"blue\", \"lighten-3\") !default;\n$primary-color-light: lighten($primary-color, 15%) !default;\n$primary-color-dark: darken($primary-color, 15%) !default;\n\n$secondary-color: color(\"teal\", \"lighten-1\") !default;\n$success-color: color(\"green\", \"base\") !default;\n$error-color: color(\"red\", \"base\") !default;\n$link-color: color(\"light-blue\", \"darken-1\") !default;\n\n\n\n// 2. Badges\n// ==========================================================================\n\n$badge-bg-color: $secondary-color !default;\n$badge-height: 22px !default;\n\n\n\n// 7. Chips\n// ==========================================================================\n\n$chip-bg-color: #e4e4e4 !default;\n$chip-border-color: #9e9e9e !default;\n$chip-selected-color: #26a69a !default;\n$chip-margin: 5px !default;\n\n\n// 16. Spinners | Loaders\n// ==========================================================================\n\n$spinner-default-color: $secondary-color !default;\n\n// 24. Progress Bar\n// ==========================================================================\n\n$progress-bar-color: $secondary-color !default;\n\n\n\n\n\n//inputs\n\n$input-height: 56px;\n\n// 6. Collapsible\n// ==========================================================================\n\n$collapsible-height: 3rem !default;\n$collapsible-line-height: $collapsible-height !default;\n$collapsible-header-color: #fff !default;\n$collapsible-border-color: #ddd !default;\n\n// 10. Forms\n// ==========================================================================\n\n// Text Inputs + Textarea\n$input-height: 3rem !default;\n$input-border-color: color(\"grey\", \"base\") !default;\n$input-border: 1px solid $input-border-color !default;\n$input-background: #fff !default;\n$input-error-color: $error-color !default;\n$input-success-color: $success-color !default;\n$input-focus-color: $secondary-color !default;\n$input-font-size: 16px !default;\n$input-margin-bottom: 8px;\n$input-margin: 0 0 $input-margin-bottom 0 !default;\n$input-padding: 0 !default;\n$label-font-size: .8rem !default;\n$input-disabled-color: rgba(0,0,0, .42) !default;\n$input-disabled-solid-color: #949494 !default;\n$input-disabled-border: 1px dotted $input-disabled-color !default;\n$input-invalid-border: 1px solid $input-error-color !default;\n$input-icon-size: 2rem;\n$placeholder-text-color: lighten($input-border-color, 20%) !default;\n\n// Radio Buttons\n$radio-fill-color: $secondary-color !default;\n$radio-empty-color: #5a5a5a !default;\n$radio-border: 2px solid $radio-fill-color !default;\n\n// Range\n$range-height: 14px !default;\n$range-width: 14px !default;\n$track-height: 3px !default;\n\n// Select\n$select-border: 1px solid #f2f2f2 !default;\n$select-background: rgba(255, 255, 255, 0.90) !default;\n$select-focus: 1px solid lighten($secondary-color, 47%) !default;\n$select-option-hover: rgba(0,0,0,.08) !default;\n$select-option-focus: rgba(0,0,0,.08) !default;\n$select-option-selected: rgba(0,0,0,.03) !default;\n$select-padding: 5px !default;\n$select-radius: 2px !default;\n$select-disabled-color: rgba(0,0,0,.3) !default;\n\n// Switches\n$switch-bg-color: $secondary-color !default;\n$switch-checked-lever-bg: desaturate(lighten($switch-bg-color, 25%), 25%) !default;\n$switch-unchecked-bg: #F1F1F1 !default;\n$switch-unchecked-lever-bg: rgba(0,0,0,.38) !default;\n$switch-radius: 15px !default;\n\n// 11. Global\n// ==========================================================================\n\n// Media Query Ranges\n$small-screen-up: 601px !default;\n$medium-screen-up: 993px !default;\n$large-screen-up: 1201px !default;\n$small-screen: 600px !default;\n$medium-screen: 992px !default;\n$large-screen: 1200px !default;\n\n$medium-and-up: \"only screen and (min-width : #{$small-screen-up})\" !default;\n$large-and-up: \"only screen and (min-width : #{$medium-screen-up})\" !default;\n$extra-large-and-up: \"only screen and (min-width : #{$large-screen-up})\" !default;\n$small-and-down: \"only screen and (max-width : #{$small-screen})\" !default;\n$medium-and-down: \"only screen and (max-width : #{$medium-screen})\" !default;\n$medium-only: \"only screen and (min-width : #{$small-screen-up}) and (max-width : #{$medium-screen})\" !default;\n\n\n\n// 12. Grid\n// ==========================================================================\n\n$num-cols: 12 !default;\n$gutter-width: 1rem !default;\n$element-top-margin: math.div($gutter-width, 3) !default;\n$element-bottom-margin: math.div($gutter-width * 2, 3) !default;\n\n// 13. Navigation Bar\n// ==========================================================================\n\n$navbar-height: 64px !default;\n$navbar-line-height: $navbar-height !default;\n$navbar-height-mobile: 56px !default;\n$navbar-line-height-mobile: $navbar-height-mobile !default;\n$navbar-font-size: 1rem !default;\n$navbar-font-color: #fff !default;\n$navbar-brand-font-size: 2.1rem !default;\n\n\n// 14. Side Navigation\n// ==========================================================================\n$button-raised-color: #fff !default;\n$button-flat-color: #343434 !default;\n$button-raised-background: #343434 !default;\n$primary-color:#343434 !default;\n\n\n \n$sidenav-width: 300px !default;\n$sidenav-font-size: 14px !default;\n$sidenav-font-color: rgba(0,0,0,.87) !default;\n$sidenav-bg-color: #fff !default;\n$sidenav-padding: 15px !default;\n$sidenav-item-height: 45px !default;\n$sidenav-line-height: $sidenav-item-height !default;\n\n\n\n\n\n\n// 3. Buttons\n// ==========================================================================\n\n$primary-color: green !default;\n$primary-color-light: lighten($primary-color, 15%) !default;\n$primary-color-dark: darken($primary-color, 15%) !default;\n$secondary-color: red !default;\n\n\n// Shared styles\n$button-border: none !default;\n$button-background-focus: lighten($secondary-color, 4%) !default;\n$button-font-size: 14px !default;\n$button-icon-font-size: 1.3rem !default;\n$button-height: 36px !default;\n$button-padding: 0 16px !default;\n$button-radius: 2px !default;\n\n// Disabled styles\n$button-disabled-background: #DFDFDF !default;\n$button-disabled-color: #9F9F9F !default;\n\n// Raised buttons\n$button-raised-background: $secondary-color !default;\n$button-raised-background-hover: lighten($button-raised-background, 5%) !default;\n$button-raised-color: #fff !default;\n\n// Large buttons\n$button-large-font-size: 15px !default;\n$button-large-icon-font-size: 1.6rem !default;\n$button-large-height: $button-height * 1.5 !default;\n$button-floating-large-size: 56px !default;\n\n// Small buttons\n$button-small-font-size: 13px !default;\n$button-small-icon-font-size: 1.2rem !default;\n$button-small-height: $button-height * .9 !default;\n$button-floating-small-size: $button-height * .9 !default;\n\n// Flat buttons\n$button-flat-color: #343434 !default;\n$button-flat-disabled-color: lighten(#999, 10%) !default;\n\n// Floating buttons\n$button-floating-background: $secondary-color !default;\n$button-floating-background-hover: $button-floating-background !default;\n$button-floating-color: #fff !default;\n$button-floating-size: 40px !default;\n$button-floating-radius: 50% !default;\n\n\n\n\n// 4. Cards\n// ==========================================================================\n\n$card-padding: 24px !default;\n$card-bg-color: #fff !default;\n$card-link-color: color(\"orange\", \"accent-2\") !default;\n$card-link-color-light: lighten($card-link-color, 20%) !default;\n\n\n\n\n\n\n// 23. Collections\n// ==========================================================================\n\n$collection-border-color: #e0e0e0 !default;\n$collection-bg-color: #fff !default;\n$collection-active-bg-color: $secondary-color !default;\n$collection-active-color: lighten($secondary-color, 55%) !default;\n$collection-hover-bg-color: #ddd !default;\n$collection-link-color: $secondary-color !default;\n$collection-line-height: 1.5rem !default;\n\n\n\n\n\n// 9. Dropdown\n// ==========================================================================\n\n$dropdown-bg-color: #fff !default;\n$dropdown-hover-bg-color: #eee !default;\n$dropdown-color: $secondary-color !default;\n$dropdown-item-height: 50px !default;\n\n\n$off-black: rgba(0, 0, 0, 0.87) !default;","// Badges\nspan.badge {\n min-width: 3rem;\n padding: 0 6px;\n margin-left: 14px;\n text-align: center;\n font-size: 1rem;\n line-height: $badge-height;\n height: $badge-height;\n color: color('grey', 'darken-1');\n float: right;\n box-sizing: border-box;\n\n &.new {\n font-weight: 300;\n font-size: 0.8rem;\n color: #fff;\n background-color: $badge-bg-color;\n border-radius: 2px;\n }\n\n &.new:after {\n content: \" new\";\n }\n\n &[data-badge-caption]::after {\n content: \" \" attr(data-badge-caption);\n }\n}\n\n// Special cases\nnav ul a span.badge {\n display: inline-block;\n float: none;\n margin-left: 4px;\n line-height: $badge-height;\n height: $badge-height;\n -webkit-font-smoothing: auto;\n}\n\n// Line height centering\n.collection-item span.badge {\n margin-top: calc(calc($collection-line-height / 2) - calc($badge-height / 2));\n}\n\n.collapsible span.badge {\n margin-left: auto;\n}\n\n.sidenav span.badge {\n margin-top: calc(calc($sidenav-line-height / 2) - calc($badge-height / 2));\n}\n\ntable span.badge {\n display: inline-block;\n float: none;\n margin-left: auto;\n}\n",".chip {\n &:focus {\n outline: none;\n background-color: $chip-selected-color;\n color: #fff;\n }\n\n display: inline-block;\n height: 32px;\n font-size: 13px;\n font-weight: 500;\n color: rgba(0,0,0,.6);\n line-height: 32px;\n padding: 0 12px;\n border-radius: 16px;\n background-color: $chip-bg-color;\n margin-bottom: $chip-margin;\n margin-right: $chip-margin;\n\n > img {\n float: left;\n margin: 0 8px 0 -12px;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n }\n\n .close {\n cursor: pointer;\n float: right;\n font-size: 16px;\n line-height: 32px;\n padding-left: 8px;\n }\n}\n\n.chips {\n border: none;\n border-bottom: 1px solid $chip-border-color;\n box-shadow: none;\n margin: $input-margin;\n min-height: 45px;\n outline: none;\n transition: all .3s;\n\n &.focus {\n border-bottom: 1px solid $chip-selected-color;\n box-shadow: 0 1px 0 0 $chip-selected-color;\n }\n\n &:hover {\n cursor: text;\n }\n\n .input {\n background: none;\n border: 0;\n color: rgba(0,0,0,.6);\n display: inline-block;\n font-size: $input-font-size;\n height: $input-height;\n line-height: 32px;\n outline: 0;\n margin: 0;\n padding: 0 !important;\n width: 120px !important;\n }\n\n .input:focus {\n border: 0 !important;\n box-shadow: none !important;\n }\n\n // Autocomplete\n .autocomplete-content {\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n// Form prefix\n.prefix ~ .chips {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n.chips:empty ~ label {\n font-size: 0.8rem;\n transform: translateY(-140%);\n}\n",".collapsible {\n border-top: 1px solid $collapsible-border-color;\n border-right: 1px solid $collapsible-border-color;\n border-left: 1px solid $collapsible-border-color;\n margin: $element-top-margin 0 $element-bottom-margin 0;\n @extend .shadow-1;\n}\n\n.collapsible-header {\n &:focus {\n outline: 0\n }\n\n display: flex;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n line-height: 1.5;\n padding: 1rem;\n background-color: $collapsible-header-color;\n border-bottom: 1px solid $collapsible-border-color;\n\n i {\n width: 2rem;\n font-size: 1.6rem;\n display: inline-block;\n text-align: center;\n margin-right: 1rem;\n }\n}\n.keyboard-focused .collapsible-header:focus {\n background-color: #eee;\n}\n\n.collapsible-body {\n display: none;\n border-bottom: 1px solid $collapsible-border-color;\n box-sizing: border-box;\n padding: 2rem;\n}\n\n// Sidenav collapsible styling\n.sidenav,\n.sidenav.fixed {\n\n .collapsible {\n border: none;\n box-shadow: none;\n\n li { padding: 0; }\n }\n\n .collapsible-header {\n background-color: transparent;\n border: none;\n line-height: inherit;\n height: inherit;\n padding: 0 $sidenav-padding;\n\n &:hover { background-color: rgba(0,0,0,.05); }\n i { line-height: inherit; }\n }\n\n .collapsible-body {\n border: 0;\n background-color: $collapsible-header-color;\n\n li a {\n padding: 0 (7.5px + $sidenav-padding)\n 0 (15px + $sidenav-padding);\n }\n }\n\n}\n\n// Popout Collapsible\n\n.collapsible.popout {\n border: none;\n box-shadow: none;\n > li {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n // transform: scaleX(.92);\n margin: 0 24px;\n transition: margin .35s cubic-bezier(0.250, 0.460, 0.450, 0.940);\n }\n > li.active {\n box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n margin: 16px 0;\n // transform: scaleX(1);\n }\n}\n","// 23. Collections - variables\n// ==========================================================================\n\n$collection-border-color: #e0e0e0 !default;\n$collection-bg-color: #fff !default;\n$collection-active-bg-color: $secondary-color !default;\n$collection-active-color: lighten($secondary-color, 55%) !default;\n$collection-hover-bg-color: #ddd !default;\n$collection-link-color: $secondary-color !default;\n$collection-line-height: 1.5rem !default;\n// 23. Collections\n// ==========================================================================\n\n.collection {\n margin: $element-top-margin 0 $element-bottom-margin 0;\n border: 1px solid $collection-border-color;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n \n .collection-item {\n background-color: $collection-bg-color;\n line-height: $collection-line-height;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid $collection-border-color;\n \n // Avatar Collection\n &.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n \n // Don't style circles inside preloader classes.\n &:not(.circle-clipper) > .circle,\n :not(.circle-clipper) > .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n }\n i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n }\n \n \n .title {\n font-size: 16px;\n }\n \n p {\n margin: 0;\n }\n \n .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n }\n \n }\n \n \n &:last-child {\n border-bottom: none;\n }\n \n &.active {\n background-color: $collection-active-bg-color;\n color: $collection-active-color;\n \n .secondary-content {\n color: #fff;\n }\n }\n }\n a.collection-item{\n display: block;\n transition: .25s;\n color: $collection-link-color;\n &:not(.active) {\n &:hover {\n background-color: $collection-hover-bg-color;\n }\n }\n }\n \n &.with-header {\n .collection-header {\n background-color: $collection-bg-color;\n border-bottom: 1px solid $collection-border-color;\n padding: 10px 20px;\n }\n .collection-item {\n padding-left: 30px;\n }\n .collection-item.avatar {\n padding-left: 72px;\n }\n }\n .secondary-content {\n float: right;\n color: $secondary-color;\n }\n }","// Remove Focus Boxes\nselect:focus {\n outline: $select-focus;\n}\n\nbutton:focus {\n outline: none;\n background-color: $button-background-focus;\n}\n\nlabel {\n font-size: $label-font-size;\n color: $input-border-color;\n}\n\n@import 'input-fields';\n@import 'radio-buttons';\n@import 'checkboxes';\n@import 'switches';\n@import 'select';\n@import 'file-input';\n@import 'range';\n","/* Text Inputs + Textarea\n ========================================================================== */\n\n/* Style Placeholders */\n@use \"sass:math\";\n::placeholder {\n color: $placeholder-text-color;\n}\n\n/* Text inputs */\n\ninput:not([type]),\ninput[type=text]:not(.browser-default),\ninput[type=password]:not(.browser-default),\ninput[type=email]:not(.browser-default),\ninput[type=url]:not(.browser-default),\ninput[type=time]:not(.browser-default),\ninput[type=date]:not(.browser-default),\ninput[type=datetime]:not(.browser-default),\ninput[type=datetime-local]:not(.browser-default),\ninput[type=tel]:not(.browser-default),\ninput[type=number]:not(.browser-default),\ninput[type=search]:not(.browser-default),\ntextarea.textarea {\n\n // General Styles\n background-color: transparent;\n border: none;\n border-bottom: $input-border;\n border-radius: 0;\n outline: none;\n height: $input-height;\n width: 100%;\n font-size: $input-font-size;\n margin: $input-margin;\n padding: $input-padding;\n box-shadow: none;\n box-sizing: content-box;\n transition: box-shadow .3s, border .3s;\n\n // Disabled input style\n &:disabled,\n &[readonly=\"readonly\"] {\n color: $input-disabled-color;\n border-bottom: $input-disabled-border;\n }\n\n // Disabled label style\n &:disabled+label,\n &[readonly=\"readonly\"]+label {\n color: $input-disabled-color;\n }\n\n // Focused input style\n &:focus:not([readonly]) {\n border-bottom: 1px solid $input-focus-color;\n box-shadow: 0 1px 0 0 $input-focus-color;\n }\n\n // Focused label style\n &:focus:not([readonly])+label {\n color: $input-focus-color;\n }\n\n // Hide helper text on data message\n &.valid ~ .helper-text[data-success],\n &:focus.valid ~ .helper-text[data-success],\n &.invalid ~ .helper-text[data-error],\n &:focus.invalid ~ .helper-text[data-error] {\n @extend %hidden-text;\n }\n\n // Valid Input Style\n &.valid,\n &:focus.valid {\n @extend %valid-input-style;\n }\n\n // Custom Success Message\n &.valid ~ .helper-text:after,\n &:focus.valid ~ .helper-text:after {\n @extend %custom-success-message;\n }\n &:focus.valid ~ label {\n color: $input-success-color;\n }\n\n // Invalid Input Style\n &.invalid,\n &:focus.invalid {\n @extend %invalid-input-style;\n }\n\n // Custom Error message\n &.invalid ~ .helper-text:after,\n &:focus.invalid ~ .helper-text:after {\n @extend %custom-error-message;\n }\n &:focus.invalid ~ label {\n color: $input-error-color;\n }\n\n // Full width label when using validate for error messages\n &.validate + label {\n width: 100%;\n }\n\n // Form Message Shared Styles\n & + label:after {\n @extend %input-after-style;\n }\n}\n\n\n/* Validation Sass Placeholders */\n%valid-input-style {\n border-bottom: 1px solid $input-success-color;\n box-shadow: 0 1px 0 0 $input-success-color;\n}\n%invalid-input-style {\n border-bottom: $input-invalid-border;\n box-shadow: 0 1px 0 0 $input-error-color;\n}\n%hidden-text {\n color: transparent;\n user-select: none;\n pointer-events: none;\n}\n%custom-success-message {\n content: attr(data-success);\n color: $input-success-color;\n}\n%custom-error-message {\n content: attr(data-error);\n color: $input-error-color;\n}\n%input-after-style {\n display: block;\n content: \"\";\n position: absolute;\n top: 100%;\n left: 0;\n opacity: 0;\n transition: .2s opacity ease-out, .2s color ease-out;\n}\n\n\n// Styling for input field wrapper\n.input-field {\n // Inline styles\n &.inline {\n display: inline-block;\n vertical-align: middle;\n margin-left: 5px;\n\n input,\n .select-dropdown {\n margin-bottom: 1rem;\n }\n }\n\n // Gutter spacing\n &.col {\n label {\n left: math.div($gutter-width, 2);\n }\n\n .prefix ~ label,\n .prefix ~ .validate ~ label {\n width: calc(100% - 3rem - #{$gutter-width});\n }\n }\n\n position: relative;\n margin-top: 1rem;\n margin-bottom: 1rem;\n\n & > label {\n color: $input-border-color;\n position: absolute;\n top: 0;\n left: 0;\n font-size: 1rem;\n cursor: text;\n transition: transform .2s ease-out, color .2s ease-out;\n transform-origin: 0% 100%;\n text-align: initial;\n transform: translateY(12px);\n\n &:not(.label-icon).active {\n transform: translateY(-14px) scale(.8);\n transform-origin: 0 0;\n }\n }\n\n // Autofill + date + time inputs\n & > input[type]:-webkit-autofill:not(.browser-default):not([type=\"search\"]) + label,\n & > input[type=date]:not(.browser-default) + label,\n & > input[type=time]:not(.browser-default) + label {\n transform: translateY(-14px) scale(.8);\n transform-origin: 0 0;\n }\n\n .helper-text {\n &::after {\n opacity: 1;\n position: absolute;\n top: 0;\n left: 0;\n }\n\n position: relative;\n min-height: 18px;\n display: block;\n font-size: 12px;\n color: rgba(0,0,0,.54);\n }\n\n // Prefix Icons\n .prefix {\n position: absolute;\n width: $input-height;\n font-size: $input-icon-size;\n transition: color .2s;\n // top: ($input-height - $input-icon-size) / 2;\n\n &.active { color: $input-focus-color; }\n }\n\n .prefix ~ input,\n .prefix ~ textarea,\n .prefix ~ label,\n .prefix ~ .validate ~ label,\n .prefix ~ .helper-text,\n .prefix ~ .autocomplete-content {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n }\n\n .prefix ~ label { margin-left: 3rem; }\n\n @media #{$medium-and-down} {\n .prefix ~ input {\n width: 86%;\n width: calc(100% - 3rem);\n }\n }\n\n @media #{$small-and-down} {\n .prefix ~ input {\n width: 80%;\n width: calc(100% - 3rem);\n }\n }\n}\n\n\n/* Search Field */\n\n.input-field input[type=search] {\n display: block;\n line-height: inherit;\n transition: .3s background-color;\n\n .nav-wrapper & {\n height: inherit;\n padding-left: 4rem;\n width: calc(100% - 4rem);\n border: 0;\n box-shadow: none;\n }\n\n &:focus:not(.browser-default) {\n background-color: $input-background;\n border: 0;\n box-shadow: none;\n color: #444;\n\n & + label i,\n & ~ .mdi-navigation-close,\n & ~ .material-icons {\n color: #444;\n }\n }\n\n & + .label-icon {\n transform: none;\n left: 1rem;\n }\n\n & ~ .mdi-navigation-close,\n & ~ .material-icons {\n position: absolute;\n top: 0;\n right: 1rem;\n color: transparent;\n cursor: pointer;\n font-size: $input-icon-size;\n transition: .3s color;\n }\n}\n\n\n/* Textarea */\n\n// Default textarea\ntextarea {\n width: 100%;\n height: $input-height;\n background-color: transparent;\n\n &.textarea {\n line-height: normal;\n overflow-y: hidden; /* prevents scroll bar flash */\n padding: .8rem 0 .8rem 0; /* prevents text jump on Enter keypress */\n resize: none;\n min-height: $input-height;\n box-sizing: border-box;\n }\n}\n\n// For textarea autoresize\n\n.hiddendiv {\n visibility: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */\n padding-top: 1.2rem; /* prevents text jump on Enter keypress */\n\n // Reduces repaints\n position: absolute;\n top: 0;\n z-index: -1;\n}\n\n\n/* Autocomplete */\n.autocomplete-content {\n li {\n .highlight { color: #444; }\n\n img {\n // height: $dropdown-item-height - 10;\n // width: $dropdown-item-height - 10;\n margin: 5px 15px;\n }\n }\n}\n\n/* Character Counter */\n.character-counter {\n min-height: 18px;\n}\n","/* Radio Buttons\n ========================================================================== */\n\n// Remove default Radio Buttons\n[type=\"radio\"]:not(:checked),\n[type=\"radio\"]:checked {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n\n[type=\"radio\"]:not(:checked) + span,\n[type=\"radio\"]:checked + span {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n transition: .28s ease;\n user-select: none;\n}\n\n[type=\"radio\"] + span:before,\n[type=\"radio\"] + span:after {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n margin: 4px;\n width: 16px;\n height: 16px;\n z-index: 0;\n transition: .28s ease;\n}\n\n/* Unchecked styles */\n[type=\"radio\"]:not(:checked) + span:before,\n[type=\"radio\"]:not(:checked) + span:after,\n[type=\"radio\"]:checked + span:before,\n[type=\"radio\"]:checked + span:after,\n[type=\"radio\"].with-gap:checked + span:before,\n[type=\"radio\"].with-gap:checked + span:after {\n border-radius: 50%;\n}\n\n[type=\"radio\"]:not(:checked) + span:before,\n[type=\"radio\"]:not(:checked) + span:after {\n border: 2px solid $radio-empty-color;\n}\n\n[type=\"radio\"]:not(:checked) + span:after {\n transform: scale(0);\n}\n\n/* Checked styles */\n[type=\"radio\"]:checked + span:before {\n border: 2px solid transparent;\n}\n\n[type=\"radio\"]:checked + span:after,\n[type=\"radio\"].with-gap:checked + span:before,\n[type=\"radio\"].with-gap:checked + span:after {\n border: $radio-border;\n}\n\n[type=\"radio\"]:checked + span:after,\n[type=\"radio\"].with-gap:checked + span:after {\n background-color: $radio-fill-color;\n}\n\n[type=\"radio\"]:checked + span:after {\n transform: scale(1.02);\n}\n\n/* Radio With gap */\n[type=\"radio\"].with-gap:checked + span:after {\n transform: scale(.5);\n}\n\n/* Focused styles */\n[type=\"radio\"].tabbed:focus + span:before {\n box-shadow: 0 0 0 10px rgba(0,0,0,.1);\n}\n\n/* Disabled Radio With gap */\n[type=\"radio\"].with-gap:disabled:checked + span:before {\n border: 2px solid $input-disabled-color;\n}\n\n[type=\"radio\"].with-gap:disabled:checked + span:after {\n border: none;\n background-color: $input-disabled-color;\n}\n\n/* Disabled style */\n[type=\"radio\"]:disabled:not(:checked) + span:before,\n[type=\"radio\"]:disabled:checked + span:before {\n background-color: transparent;\n border-color: $input-disabled-color;\n}\n\n[type=\"radio\"]:disabled + span {\n color: $input-disabled-color;\n}\n\n[type=\"radio\"]:disabled:not(:checked) + span:before {\n border-color: $input-disabled-color;\n}\n\n[type=\"radio\"]:disabled:checked + span:after {\n background-color: $input-disabled-color;\n border-color: $input-disabled-solid-color;\n}\n","/* Checkboxes\n ========================================================================== */\n\n/* Remove default checkbox */\n[type=\"checkbox\"]:not(:checked),\n[type=\"checkbox\"]:checked {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n\n// Checkbox Styles\n[type=\"checkbox\"] {\n // Text Label Style\n + span:not(.lever) {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n user-select: none;\n }\n\n /* checkbox aspect */\n + span:not(.lever):before,\n &:not(.filled-in) + span:not(.lever):after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 18px;\n height: 18px;\n z-index: 0;\n border: 2px solid $radio-empty-color;\n border-radius: 1px;\n margin-top: 3px;\n transition: .2s;\n }\n\n &:not(.filled-in) + span:not(.lever):after {\n border: 0;\n transform: scale(0);\n }\n\n &:not(:checked):disabled + span:not(.lever):before {\n border: none;\n background-color: $input-disabled-color;\n }\n\n // Focused styles\n &.tabbed:focus + span:not(.lever):after {\n transform: scale(1);\n border: 0;\n border-radius: 50%;\n box-shadow: 0 0 0 10px rgba(0,0,0,.1);\n background-color: rgba(0,0,0,.1);\n }\n}\n\n[type=\"checkbox\"]:checked {\n + span:not(.lever):before {\n top: -4px;\n left: -5px;\n width: 12px;\n height: 22px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: $radio-border;\n border-bottom: $radio-border;\n transform: rotate(40deg);\n backface-visibility: hidden;\n transform-origin: 100% 100%;\n }\n\n &:disabled + span:before {\n border-right: 2px solid $input-disabled-color;\n border-bottom: 2px solid $input-disabled-color;\n }\n}\n\n/* Indeterminate checkbox */\n[type=\"checkbox\"]:indeterminate {\n + span:not(.lever):before {\n top: -11px;\n left: -12px;\n width: 10px;\n height: 22px;\n border-top: none;\n border-left: none;\n border-right: $radio-border;\n border-bottom: none;\n transform: rotate(90deg);\n backface-visibility: hidden;\n transform-origin: 100% 100%;\n }\n\n // Disabled indeterminate\n &:disabled + span:not(.lever):before {\n border-right: 2px solid $input-disabled-color;\n background-color: transparent;\n }\n}\n\n// Filled in Style\n[type=\"checkbox\"].filled-in {\n // General\n + span:not(.lever):after {\n border-radius: 2px;\n }\n\n + span:not(.lever):before,\n + span:not(.lever):after {\n content: '';\n left: 0;\n position: absolute;\n /* .1s delay is for check animation */\n transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;\n z-index: 1;\n }\n\n // Unchecked style\n &:not(:checked) + span:not(.lever):before {\n width: 0;\n height: 0;\n border: 3px solid transparent;\n left: 6px;\n top: 10px;\n transform: rotateZ(37deg);\n transform-origin: 100% 100%;\n }\n\n &:not(:checked) + span:not(.lever):after {\n height: 20px;\n width: 20px;\n background-color: transparent;\n border: 2px solid $radio-empty-color;\n top: 0px;\n z-index: 0;\n }\n\n // Checked style\n &:checked {\n + span:not(.lever):before {\n top: 0;\n left: 1px;\n width: 8px;\n height: 13px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: 2px solid $input-background;\n border-bottom: 2px solid $input-background;\n transform: rotateZ(37deg);\n transform-origin: 100% 100%;\n }\n\n + span:not(.lever):after {\n top: 0;\n width: 20px;\n height: 20px;\n border: 2px solid $secondary-color;\n background-color: $secondary-color;\n z-index: 0;\n }\n }\n\n // Focused styles\n &.tabbed:focus + span:not(.lever):after {\n border-radius: 2px;\n border-color: $radio-empty-color;\n background-color: rgba(0,0,0,.1);\n }\n\n &.tabbed:checked:focus + span:not(.lever):after {\n border-radius: 2px;\n background-color: $secondary-color;\n border-color: $secondary-color;\n }\n\n // Disabled style\n &:disabled:not(:checked) + span:not(.lever):before {\n background-color: transparent;\n border: 2px solid transparent;\n }\n\n &:disabled:not(:checked) + span:not(.lever):after {\n border-color: transparent;\n background-color: $input-disabled-solid-color;\n }\n\n &:disabled:checked + span:not(.lever):before {\n background-color: transparent;\n }\n\n &:disabled:checked + span:not(.lever):after {\n background-color: $input-disabled-solid-color;\n border-color: $input-disabled-solid-color;\n }\n}\n","/* Switch\n ========================================================================== */\n\n.switch,\n.switch * {\n -webkit-tap-highlight-color: transparent;\n user-select: none;\n}\n\n.switch label {\n cursor: pointer;\n}\n\n.switch label input[type=checkbox] {\n opacity: 0;\n width: 0;\n height: 0;\n\n &:checked + .lever {\n background-color: $switch-checked-lever-bg;\n\n &:before, &:after {\n left: 18px;\n }\n\n &:after {\n background-color: $switch-bg-color;\n }\n }\n}\n\n.switch label .lever {\n content: \"\";\n display: inline-block;\n position: relative;\n width: 36px;\n height: 14px;\n background-color: $switch-unchecked-lever-bg;\n border-radius: $switch-radius;\n //margin-right: 10px;\n transition: background 0.3s ease;\n vertical-align: middle;\n margin: 0 16px;\n\n &:before, &:after {\n content: \"\";\n position: absolute;\n display: inline-block;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n left: 0;\n top: -3px;\n transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease;\n }\n\n &:before {\n background-color: transparentize($switch-bg-color, .85);\n }\n\n &:after {\n background-color: $switch-unchecked-bg;\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n }\n}\n\n// Switch active style\ninput[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,\ninput[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before {\n transform: scale(2.4);\n background-color: transparentize($switch-bg-color, .85);\n}\n\ninput[type=checkbox]:not(:disabled) ~ .lever:active:before,\ninput[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before {\n transform: scale(2.4);\n background-color: rgba(0,0,0,.08);\n}\n\n// Disabled Styles\n.switch input[type=checkbox][disabled] + .lever {\n cursor: default;\n background-color: rgba(0,0,0,.12);\n}\n\n.switch label input[type=checkbox][disabled] + .lever:after,\n.switch label input[type=checkbox][disabled]:checked + .lever:after {\n background-color: $input-disabled-solid-color;\n}\n","/* Select Field\n ========================================================================== */\n\nselect { display: none; }\nselect.browser-default { display: block; }\n\nselect {\n background-color: $select-background;\n width: 100%;\n padding: $select-padding;\n border: $select-border;\n border-radius: $select-radius;\n height: $input-height;\n}\n\n.select-label {\n position: absolute;\n}\n\n.select-wrapper {\n &.valid .helper-text[data-success],\n &.invalid ~ .helper-text[data-error] {\n @extend %hidden-text;\n }\n\n &.valid {\n & > input.select-dropdown {\n @extend %valid-input-style;\n }\n\n & ~ .helper-text:after {\n @extend %custom-success-message;\n }\n }\n\n &.invalid {\n & > input.select-dropdown,\n & > input.select-dropdown:focus {\n @extend %invalid-input-style;\n }\n\n & ~ .helper-text:after {\n @extend %custom-error-message;\n }\n }\n\n &.valid + label,\n &.invalid + label {\n width: 100%;\n pointer-events: none;\n }\n\n & + label:after {\n @extend %input-after-style;\n }\n\n position: relative;\n\n input.select-dropdown {\n &:focus {\n border-bottom: 1px solid $input-focus-color;\n }\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: none;\n border-bottom: $input-border;\n outline: none;\n height: $input-height;\n line-height: $input-height;\n width: 100%;\n font-size: $input-font-size;\n margin: $input-margin;\n padding: 0;\n display: block;\n user-select:none;\n z-index: 1;\n }\n\n .caret {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto 0;\n z-index: 0;\n fill: rgba(0,0,0,.87);\n }\n\n & + label {\n position: absolute;\n top: -26px;\n font-size: $label-font-size;\n }\n}\n\n// Disabled styles\nselect:disabled {\n color: $input-disabled-color;\n}\n\n.select-wrapper.disabled {\n + label {\n color: $input-disabled-color;\n }\n .caret {\n fill: $input-disabled-color;\n }\n}\n\n.select-wrapper input.select-dropdown:disabled {\n color: $input-disabled-color;\n cursor: default;\n user-select: none;\n}\n\n.select-wrapper i {\n color: $select-disabled-color;\n}\n\n.select-dropdown li.disabled,\n.select-dropdown li.disabled > span,\n.select-dropdown li.optgroup {\n color: $select-disabled-color;\n background-color: transparent;\n}\n\nbody.keyboard-focused {\n .select-dropdown.dropdown-content li:focus {\n background-color: $select-option-focus;\n }\n}\n\n.select-dropdown.dropdown-content {\n li {\n &:hover {\n background-color: $select-option-hover;\n }\n\n &.selected {\n background-color: $select-option-selected;\n }\n }\n}\n\n// Prefix Icons\n.prefix ~ .select-wrapper {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.prefix ~ label { margin-left: 3rem; }\n\n// Icons\n.select-dropdown li {\n img {\n // height: $dropdown-item-height - 10;\n // width: $dropdown-item-height - 10;\n margin: 5px 15px;\n float: right;\n }\n}\n\n// Optgroup styles\n.select-dropdown li.optgroup {\n // border-top: 1px solid $dropdown-hover-bg-color;\n\n &.selected > span {\n color: rgba(0, 0, 0, .7);\n }\n\n & > span {\n color: rgba(0, 0, 0, .4);\n }\n\n & ~ li.optgroup-option {\n padding-left: 1rem;\n }\n}\n","/* File Input\n ========================================================================== */\n\n.file-field {\n position: relative;\n\n .file-path-wrapper {\n overflow: hidden;\n padding-left: 10px;\n }\n\n input.file-path { width: 100%; }\n\n .btn {\n float: left;\n height: $input-height;\n line-height: $input-height;\n }\n\n span {\n cursor: pointer;\n }\n\n input[type=file] {\n\n // Needed to override webkit button\n &::-webkit-file-upload-button {\n display: none;\n }\n\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n font-size: 20px;\n cursor: pointer;\n opacity: 0;\n filter: alpha(opacity=0);\n }\n}\n","/* Range\n ========================================================================== */\n\n.range-field {\n position: relative;\n}\n\ninput[type=range],\ninput[type=range] + .thumb {\n // @extend .no-select;\n cursor: pointer;\n}\n\ninput[type=range] {\n position: relative;\n background-color: transparent;\n border: none;\n outline: none;\n width: 100%;\n margin: 15px 0;\n padding: 0;\n\n &:focus {\n outline: none;\n }\n}\n\ninput[type=range] + .thumb {\n position: absolute;\n top: 10px;\n left: 0;\n border: none;\n height: 0;\n width: 0;\n border-radius: 50%;\n background-color: $radio-fill-color;\n margin-left: 7px;\n\n transform-origin: 50% 50%;\n transform: rotate(-45deg);\n\n .value {\n display: block;\n width: 30px;\n text-align: center;\n color: $radio-fill-color;\n font-size: 0;\n transform: rotate(45deg);\n }\n\n &.active {\n border-radius: 50% 50% 50% 0;\n\n .value {\n color: $input-background;\n margin-left: -1px;\n margin-top: 8px;\n font-size: 10px;\n }\n }\n}\n\n// Shared\n@mixin range-track {\n height: $track-height;\n background: #c2c0c2;\n border: none;\n}\n\n@mixin range-thumb {\n border: none;\n height: $range-height;\n width: $range-width;\n border-radius: 50%;\n background: $radio-fill-color;\n transition: box-shadow .3s;\n}\n\n// WebKit\ninput[type=range] {\n -webkit-appearance: none;\n}\n\ninput[type=range]::-webkit-slider-runnable-track {\n @include range-track;\n}\n\ninput[type=range]::-webkit-slider-thumb {\n @include range-thumb;\n -webkit-appearance: none;\n background-color: $radio-fill-color;\n transform-origin: 50% 50%;\n margin: -5px 0 0 0;\n\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb {\n box-shadow: 0 0 0 10px rgba($radio-fill-color, .26);\n}\n\n// FireFox\ninput[type=range] {\n /* fix for FF unable to apply focus style bug */\n border: 1px solid white;\n\n /*required for proper track sizing in FF*/\n}\n\ninput[type=range]::-moz-range-track {\n @include range-track;\n}\n\ninput[type=range]::-moz-focus-inner {\n border: 0;\n}\n\ninput[type=range]::-moz-range-thumb {\n @include range-thumb;\n margin-top: -5px;\n}\n\n// hide the outline behind the border\ninput[type=range]:-moz-focusring {\n outline: 1px solid #fff;\n outline-offset: -1px;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb {\n box-shadow: 0 0 0 10px rgba($radio-fill-color, .26);\n}\n\n// IE 10+\ninput[type=range]::-ms-track {\n height: $track-height;\n\n // remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead\n background: transparent;\n\n // leave room for the larger thumb to overflow with a transparent border */\n border-color: transparent;\n border-width: 6px 0;\n\n /*remove default tick marks*/\n color: transparent;\n}\n\ninput[type=range]::-ms-fill-lower {\n background: #777;\n}\n\ninput[type=range]::-ms-fill-upper {\n background: #ddd;\n}\n\ninput[type=range]::-ms-thumb {\n @include range-thumb;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb {\n box-shadow: 0 0 0 10px rgba($radio-fill-color, .26);\n}\n",".parallax {\n\n /* Set a specific height */\n min-height: 500px;\n\n /* Create the parallax scrolling effect */\n background-attachment: fixed;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n}","$cube-height:200px;\n* { box-sizing: border-box; }\n\nbody { font-family: sans-serif; }\n\n.scene {\n width: $cube-height;\n height: $cube-height;\n border: 1px solid #CCC;\n margin: 80px;\n perspective: 400px;\n}\n\n.cube {\n width: $cube-height;\n height: $cube-height;\n position: relative;\n transform-style: preserve-3d;\n transform: translateZ(-400px);\n transition: transform 1s;\n}\n\n.cube.show-front { transform: translateZ(-10px) rotateY( 0deg); }\n.cube.show-right { transform: translateZ(-10px) rotateY( -90deg); }\n.cube.show-back { transform: translateZ(-10px) rotateY(-180deg); }\n.cube.show-left { transform: translateZ(-10px) rotateY( 90deg); }\n.cube.show-top { transform: translateZ(-10px) rotateX( -90deg); }\n.cube.show-bottom { transform: translateZ(-10px) rotateX( 90deg); }\n\n.cube__face {\n position: absolute;\n width: $cube-height;\n height: $cube-height;\n border: 2px solid black;\n line-height: $cube-height;\n font-size: 40px;\n font-weight: bold;\n color: white;\n text-align: center;\n}\n\n.cube__face--front { background: hsla( 0, 100%, 50%, 0.7); }\n.cube__face--right { background: hsla( 60, 100%, 50%, 0.7); }\n.cube__face--back { background: hsla(120, 100%, 50%, 0.7); }\n.cube__face--left { background: hsla(180, 100%, 50%, 0.7); }\n.cube__face--top { background: hsla(240, 100%, 50%, 0.7); }\n.cube__face--bottom { background: hsla(300, 100%, 50%, 0.7); }\n\n.cube__face--front { transform: rotateY( 0deg) translateZ(100px); }\n.cube__face--right { transform: rotateY( 90deg) translateZ(100px); }\n.cube__face--back { transform: rotateY(180deg) translateZ(100px); }\n.cube__face--left { transform: rotateY(-90deg) translateZ(100px); }\n.cube__face--top { transform: rotateX( 90deg) translateZ(100px); }\n.cube__face--bottom { transform: rotateX(-90deg) translateZ(100px); }\n\nlabel { margin-right: 10px; }","@use \"sass:math\";\n.container {\n margin: 0 auto;\n max-width: 1280px;\n width: 90%;\n}\n@media #{$medium-and-up} {\n .container {\n width: 85%;\n }\n}\n@media #{$large-and-up} {\n .container {\n width: 70%;\n }\n}\n.col .row {\n margin-left: math.div(-1 * $gutter-width , 2);\n margin-right: math.div(-1 * $gutter-width , 2);\n}\n\n.section {\n padding-top: 1rem;\n padding-bottom: 1rem;\n\n &.no-pad {\n padding: 0;\n }\n &.no-pad-bot {\n padding-bottom: 0;\n }\n &.no-pad-top {\n padding-top: 0;\n }\n}\n\n\n// Mixins to eliminate code repitition\n@mixin reset-offset {\n margin-left: auto;\n left: auto;\n right: auto;\n}\n@mixin grid-classes($size, $i, $perc) {\n &.offset-#{$size}#{$i} {\n margin-left: $perc;\n }\n &.pull-#{$size}#{$i} {\n right: $perc;\n }\n &.push-#{$size}#{$i} {\n left: $perc;\n }\n}\n\n\n.row {\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 20px;\n\n // Clear floating children\n &:after {\n content: \"\";\n display: table;\n clear: both;\n }\n\n .col {\n float: left;\n box-sizing: border-box;\n padding: 0 math.div($gutter-width , 2);\n min-height: 1px;\n\n &[class*=\"push-\"],\n &[class*=\"pull-\"] {\n position: relative;\n }\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n &.s#{$i} {\n width: $perc;\n @include reset-offset;\n }\n $i: $i + 1;\n }\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n @include grid-classes(\"s\", $i, $perc);\n $i: $i + 1;\n }\n\n @media #{$medium-and-up} {\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n &.m#{$i} {\n width: $perc;\n @include reset-offset;\n }\n $i: $i + 1\n }\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n @include grid-classes(\"m\", $i, $perc);\n $i: $i + 1;\n }\n }\n\n @media #{$large-and-up} {\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n &.l#{$i} {\n width: $perc;\n @include reset-offset;\n }\n $i: $i + 1;\n }\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n @include grid-classes(\"l\", $i, $perc);\n $i: $i + 1;\n }\n }\n\n @media #{$extra-large-and-up} {\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n &.xl#{$i} {\n width: $perc;\n @include reset-offset;\n }\n $i: $i + 1;\n }\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n @include grid-classes(\"xl\", $i, $perc);\n $i: $i + 1;\n }\n }\n }\n}\n","@use \"sass:math\";\nsvg{\n //fill:red;\n}\n.sidenav {\n position: fixed;\n width: $sidenav-width;\n left: 0;\n top: 0;\n margin: 0;\n //transform: translateX(-100%);\n height: 100%;\n height: calc(100% + 60px);\n height: -moz-calc(100%); //Temporary Firefox Fix\n padding-bottom: 60px;\n background-color: $sidenav-bg-color;\n z-index: 999;\n overflow-y: auto;\n will-change: transform;\n backface-visibility: hidden;\n transform: translateX(-105%);\n transition: transform 1s;\n\n //@extend .shadow-1;\n\n // Right Align\n &.right-aligned {\n right: 0;\n //transform: translateX(105%);\n left: auto;\n transform: translateX(100%);\n }\n\n .collapsible {\n margin: 0;\n }\n\n\n li {\n float: none;\n //line-height: $sidenav-line-height;\n // margin: 15px 0;\n // height: 45px;\n .iconSideLink {\n display: flex;\n align-items: center;\n \n svg {\n //stroke:rgba(0, 0, 0, 0.2);\n // fill: white;\n stroke:rgba(0, 0, 0, 0.2);\n width: 30px;\n }\n \n }\n &.active {\n background-color: rgba(0, 0, 0, 0.05);\n svg {\n stroke: white!important;\n //fill: white!important;\n width: 30px;\n }\n }\n\n &.last {\n position: sticky;\n top: calc(100% - #{$sidenav-item-height} - 35px);\n }\n }\n\n li > a {\n color: $sidenav-font-color;\n display: flex;\n font-size: $sidenav-font-size;\n font-weight: 700;\n height: $sidenav-item-height;\n line-height: $sidenav-line-height;\n padding: 0 ($sidenav-padding * 2);\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.05);\n }\n\n &.btn,\n &.btn-large,\n &.btn-flat,\n &.btn-floating {\n margin: 10px 15px;\n }\n\n &.btn,\n &.btn-large,\n &.btn-floating {\n color: $button-raised-color;\n }\n\n &.btn-flat {\n color: $button-flat-color;\n }\n\n &.btn:hover,\n &.btn-large:hover {\n background-color: lighten($button-raised-background, 5%);\n }\n\n &.btn-floating:hover {\n background-color: $button-raised-background;\n }\n\n & > i,\n & > [class^=\"mdi-\"],\n li > a > [class*=\"mdi-\"],\n & > i.s-icon {\n float: left;\n height: $sidenav-item-height;\n line-height: $sidenav-line-height;\n margin: 0 ($sidenav-padding * 2) 0 0;\n width: math.div($sidenav-item-height, 2);\n color: rgba(0, 0, 0, 0.54);\n }\n }\n\n .divider {\n margin: math.div($sidenav-padding, 2) 0 0 0;\n }\n\n .subheader {\n &:hover {\n background-color: transparent;\n }\n\n cursor: initial;\n pointer-events: none;\n color: rgba(0, 0, 0, 0.54);\n font-size: $sidenav-font-size;\n font-weight: 500;\n line-height: $sidenav-line-height;\n }\n\n .user-view {\n position: relative;\n padding: ($sidenav-padding * 2) ($sidenav-padding * 2) 0;\n margin-bottom: math.div($sidenav-padding, 2);\n\n & > a {\n &:hover {\n background-color: transparent;\n }\n\n height: auto;\n padding: 0;\n }\n\n .background {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n }\n\n .circle,\n .name,\n .email {\n display: block;\n }\n\n .circle {\n height: 64px;\n width: 64px;\n }\n\n .name,\n .email {\n font-size: $sidenav-font-size;\n line-height: math.div($sidenav-line-height, 2);\n }\n\n .name {\n margin-top: 16px;\n font-weight: 500;\n }\n\n .email {\n padding-bottom: 16px;\n font-weight: 400;\n }\n }\n}\n\n// Touch interaction\n.drag-target {\n // Right Align\n &.right-aligned {\n right: 0;\n }\n\n height: 100%;\n width: 10px;\n position: fixed;\n top: 0;\n z-index: 998;\n}\n\n// Fixed Sidenav shown\n.sidenav.sidenav-fixed {\n // Right Align\n &.right-aligned {\n right: 0;\n left: auto;\n }\n\n left: 0;\n transform: translateX(0);\n position: fixed;\n}\n\n// Fixed Sidenav hide on smaller\n@media #{$medium-and-down} {\n .sidenav {\n &.sidenav-fixed {\n transform: translateX(-105%);\n\n &.right-aligned {\n transform: translateX(105%);\n }\n }\n\n > a {\n padding: 0 $sidenav-padding;\n }\n\n .user-view {\n padding: $sidenav-padding $sidenav-padding 0;\n }\n }\n}\n\n.sidenav .collapsible-body > ul:not(.collapsible) > li.active,\n.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active {\n background-color: $primary-color;\n\n a {\n color: $sidenav-bg-color;\n }\n}\n\n.sidenav .collapsible-body {\n padding: 0;\n}\n\n.sidenav-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n opacity: 0;\n height: 120vh;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 997;\n display: none;\n}\n\n\n\n\n .with-side-nav-open{\n padding-left: 300px;\n transition: padding 1s;\n }\n","// shared styles\n\n.btn,\n.btn-flat {\n border: $button-border;\n border-radius: $button-radius;\n display: inline-block;\n height: $button-height;\n line-height: $button-height;\n padding: $button-padding;\n text-transform: uppercase;\n vertical-align: middle;\n -webkit-tap-highlight-color: transparent; // Gets rid of tap active state\n}\n\n// Disabled shared style\n.btn.disabled,\n.btn-floating.disabled,\n.btn-large.disabled,\n.btn-small.disabled,\n.btn-flat.disabled,\n.btn:disabled,\n.btn-floating:disabled,\n.btn-large:disabled,\n.btn-small:disabled,\n.btn-flat:disabled,\n.btn[disabled],\n.btn-floating[disabled],\n.btn-large[disabled],\n.btn-small[disabled],\n.btn-flat[disabled] {\n pointer-events: none;\n background-color: $button-disabled-background !important;\n box-shadow: none;\n color: $button-disabled-color !important;\n cursor: default;\n &:hover {\n background-color: $button-disabled-background !important;\n color: $button-disabled-color !important;\n }\n}\n\n// Shared icon styles\n.btn,\n.btn-floating,\n.btn-large,\n.btn-small,\n.btn-flat {\n font-size: $button-font-size;\n outline: 0;\n i {\n font-size: $button-icon-font-size;\n line-height: inherit;\n }\n}\n\n// Shared focus button style\n.btn,\n.btn-floating {\n &:focus {\n background-color: darken($button-raised-background, 10%);\n }\n}\n\n// Raised Button\n.btn {\n text-decoration: none;\n color: $button-raised-color;\n background-color: $button-raised-background;\n text-align: center;\n letter-spacing: .5px;\n @extend .shadow-1;\n transition: background-color .2s ease-out;\n cursor: pointer;\n &:hover {\n background-color: $button-raised-background-hover;\n @extend .shadow-1-half;\n }\n}\n\n// Floating button\n.btn-floating {\n &:hover {\n background-color: $button-floating-background-hover;\n @extend .shadow-1-half;\n }\n &:before {\n border-radius: 0;\n }\n &.btn-large {\n &.halfway-fab {\n bottom: calc($button-floating-large-size / 2);\n }\n width: $button-floating-large-size;\n height: $button-floating-large-size;\n padding: 0;\n i {\n line-height: $button-floating-large-size;\n }\n }\n\n &.btn-small {\n &.halfway-fab {\n bottom: calc($button-floating-small-size / 2);\n }\n width: $button-floating-small-size;\n height: $button-floating-small-size;\n i {\n line-height: $button-floating-small-size;\n }\n }\n\n &.halfway-fab {\n &.left {\n right: auto;\n left: 24px;\n }\n position: absolute;\n right: 24px;\n bottom: calc($button-floating-size / 2);\n }\n display: inline-block;\n color: $button-floating-color;\n position: relative;\n overflow: hidden;\n z-index: 1;\n width: $button-floating-size;\n height: $button-floating-size;\n line-height: $button-floating-size;\n padding: 0;\n background-color: $button-floating-background;\n border-radius: $button-floating-radius;\n @extend .shadow-1;\n transition: background-color .3s;\n cursor: pointer;\n vertical-align: middle;\n i {\n width: inherit;\n display: inline-block;\n text-align: center;\n color: $button-floating-color;\n font-size: $button-large-icon-font-size;\n line-height: $button-floating-size;\n }\n}\n\n// button fix\nbutton.btn-floating {\n border: $button-border;\n}\n\n// Fixed Action Button\n.fixed-action-btn {\n &.active {\n ul {\n visibility: visible;\n }\n }\n\n // Directions\n &.direction-left,\n &.direction-right {\n padding: 0 0 0 15px;\n ul {\n text-align: right;\n right: 64px;\n top: 50%;\n transform: translateY(-50%);\n height: 100%;\n left: auto;\n /*width 100% only goes to width of button container */\n width: 500px;\n li {\n display: inline-block;\n margin: 7.5px 15px 0 0;\n }\n }\n }\n &.direction-right {\n padding: 0 15px 0 0;\n ul {\n text-align: left;\n direction: rtl;\n left: 64px;\n right: auto;\n li {\n margin: 7.5px 0 0 15px;\n }\n }\n }\n &.direction-bottom {\n padding: 0 0 15px 0;\n ul {\n top: 64px;\n bottom: auto;\n display: flex;\n flex-direction: column-reverse;\n li {\n margin: 15px 0 0 0;\n }\n }\n }\n &.toolbar {\n &.active {\n &>a i {\n opacity: 0;\n }\n }\n padding: 0;\n height: $button-floating-large-size;\n ul {\n display: flex;\n top: 0;\n bottom: 0;\n z-index: 1;\n li {\n flex: 1;\n display: inline-block;\n margin: 0;\n height: 100%;\n transition: none;\n a {\n display: block;\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 100%;\n background-color: transparent;\n box-shadow: none;\n color: #fff;\n line-height: $button-floating-large-size;\n z-index: 1;\n i {\n line-height: inherit;\n }\n }\n }\n }\n }\n position: fixed;\n right: 23px;\n bottom: 23px;\n padding-top: 15px;\n margin-bottom: 0;\n z-index: 997;\n ul {\n left: 0;\n right: 0;\n text-align: center;\n position: absolute;\n bottom: 64px;\n margin: 0;\n visibility: hidden;\n li {\n margin-bottom: 15px;\n }\n a.btn-floating {\n opacity: 0;\n }\n }\n .fab-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: $button-floating-size;\n height: $button-floating-size;\n background-color: $button-floating-background;\n border-radius: $button-floating-radius;\n transform: scale(0);\n }\n}\n\n// Flat button\n.btn-flat {\n box-shadow: none;\n background-color: transparent;\n color: $button-flat-color;\n cursor: pointer;\n transition: background-color .2s;\n &:focus,\n &:hover {\n box-shadow: none;\n }\n &:focus {\n background-color: rgba(0, 0, 0, .1);\n }\n &.disabled,\n &.btn-flat[disabled] {\n background-color: transparent !important;\n color: $button-flat-disabled-color !important;\n cursor: default;\n }\n}\n\n// Large button\n.btn-large {\n @extend .btn;\n height: $button-large-height;\n line-height: $button-large-height;\n font-size: $button-large-font-size;\n padding: 0 28px;\n\n i {\n font-size: $button-large-icon-font-size;\n }\n}\n\n// Small button\n.btn-small {\n @extend .btn;\n height: $button-small-height;\n line-height: $button-small-height;\n font-size: $button-small-font-size;\n i {\n font-size: $button-small-icon-font-size;\n }\n}\n\n// Block button\n.btn-block {\n display: block;\n}\n","$mainColor:#0062d6;\n$othermain:#034d82;\n$secondColor:#0077FA;\n$thirdColor:#09bddd;\n$forthColor:#cbe7fe;\n\n$tab1: $forthColor;\n$tab2: darken($forthColor,15%);\n$tab3: darken($forthColor,30%);\n\n.communTabHeader {\n height: 100px;\n padding: 40px;\n}\n\n.tabs {\n min-height: calc(100% - 150px);\n margin-top: 30px;\n padding:0!important;\n border-radius: 40px!important;\n.innerpage{\n min-height: 70VH!important;\n}\n .tabs-header-overlay {\n display: flex;\n height: 100px;\n }\n\n &.activeTab-0 {\n .tab-header-over0 {\n flex: 1;\n background-color: $tab2;\n border-radius: 40px 0 0 0;\n\n .tab-header {\n background-color: $tab1;\n border-radius: 40px 40px 0 0;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, $tab1, $tab3);\n border-radius: 0 0 0 0;\n\n .tab-header {\n background-color: $tab2;\n border-radius: 0 40px 0 40px;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over2 {\n flex: 1;\n background-color: $tab2;\n border-radius: 0 40px 0 0;\n\n .tab-header {\n background-color: $tab3;\n border-radius: 0 40px 0 40px;\n @extend .communTabHeader;\n }\n }\n }\n\n &.activeTab-1 {\n .tab-header-over0 {\n flex: 1;\n background-color: $tab1;\n //linear-gradient(0.25turn, $tab1, $tab1);\n //linear-gradient(0.25turn, $tab1, $tab1);\n border-radius: 40px 0 0 0;\n\n .tab-header {\n background-color: $tab2;\n // border-radius: 40px 40px 0 0;\n border-radius: 40px 0 40px 0;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, $tab2, $tab3);\n //$tab2;\n //border-radius: 40px 0 0;\n border-radius: 0 0 0 0;\n\n .tab-header {\n background-color: $tab1;\n border-radius: 40px 40px 0 0;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over2 {\n flex: 1;\n background-color: $tab1;\n border-radius: 0 40px 0 0;\n\n .tab-header {\n background-color: $tab3;\n border-radius: 0 40px 0 40px;\n @extend .communTabHeader;\n }\n }\n }\n\n\n &.activeTab-2 {\n .tab-header-over0 {\n flex: 1;\n background-color: $tab3;\n //linear-gradient(0.25turn, $tab1, $tab1);\n //linear-gradient(0.25turn, $tab1, $tab1);\n border-radius: 40px 0 0 0;\n\n .tab-header {\n background-color: $tab2;\n // border-radius: 40px 40px 0 0;\n border-radius: 40px 0 40px 0;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, $tab2, $tab1);\n //$tab2;\n //border-radius: 40px 0 0;\n border-radius: 0 0 0 0;\n\n .tab-header {\n background-color: $tab3;\n border-radius: 40px 0 40px 0;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over2 {\n flex: 1;\n background-color: $tab3;\n border-radius: 0 40px 0 0;\n\n .tab-header {\n background-color: $tab1;\n border-radius: 40px 40px 0 0;\n @extend .communTabHeader;\n }\n }\n }\n\n .tab-content {\n background-color: $tab1;\n padding: 10px;\n //border: 1px solid rgb(207, 205, 205);\n border-top: 0;\n min-height: 70vh;\n border-radius: 0 0 40px 40px;\n padding-bottom: 20px;\n \n }\n}\n\n// .tabs {\n// // display: flex;\n// // flex-direction: column;\n// .tabs-header-overlay {\n// display: flex;\n// height: 100px;\n\n// .tab-header-over {\n// flex: 1;\n// background-color: hotpink;\n// border-radius: 0 40px 0 0;\n// &.active {\n// background-color: rgb(155, 152, 153);\n// border-radius: 40px 0 0 0;\n// }\n// .tab-header {\n// &.active {\n// background-color: hotpink;\n// border-radius: 40px 40px 0 0;\n// }\n// border-radius: 0px 40px 0 40px;\n// padding: 40px;\n// background-color: rgb(155, 152, 153);\n// }\n// }\n// }\n\n// .tab-content {\n// background-color: hotpink;\n// padding: 10px;\n// border: 1px solid rgb(207, 205, 205);\n// border-top: 0;\n// }\n// }\n",".loader-overlay {\n z-index: 999;\n position: absolute;\n height: 100vh;\n width: 100vw;\n top: 0;\n left: 0;\n background-color: rgba(102, 100, 100, 0.603);\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n .loader {\n border: 7px solid #f3f3f3; /* Light grey */\n border-top: 7px solid #2ea2cc; /* Blue */\n border-radius: 50%;\n width: 70px;\n height: 70px;\n animation: spin 2s linear infinite;\n }\n .loader-text{\n margin-top: 20px;\n font-size: 25px;\n color: #2ea2cc;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n}\n","\n\n.card-panel {\n transition: box-shadow .25s;\n padding: $card-padding;\n margin: $element-top-margin 0 $element-bottom-margin 0;\n border-radius: 2px;\n @extend .shadow-1;\n background-color: $card-bg-color;\n}\n\n.card {\n position: relative;\n margin: $element-top-margin 0 $element-bottom-margin 0;\n background-color: $card-bg-color;\n transition: box-shadow .25s;\n border-radius: 2px;\n @extend .shadow-1;\n\n\n .card-title {\n font-size: 24px;\n font-weight: 300;\n &.activator {\n cursor: pointer;\n }\n }\n\n // Card Sizes\n &.small, &.medium, &.large {\n position: relative;\n\n .card-image {\n max-height: 60%;\n overflow: hidden;\n }\n .card-image + .card-content {\n max-height: 40%;\n }\n .card-content {\n max-height: 100%;\n overflow: hidden;\n }\n .card-action {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n }\n }\n\n &.small {\n height: 300px;\n }\n\n &.medium {\n height: 400px;\n }\n\n &.large {\n height: 500px;\n }\n\n // Horizontal Cards\n &.horizontal {\n &.small, &.medium, &.large {\n .card-image {\n height: 100%;\n max-height: none;\n overflow: visible;\n\n img {\n height: 100%;\n }\n }\n }\n\n display: flex;\n\n .card-image {\n max-width: 50%;\n img {\n border-radius: 2px 0 0 2px;\n max-width: 100%;\n width: auto;\n }\n }\n\n .card-stacked {\n display: flex;\n flex-direction: column;\n flex: 1;\n position: relative;\n\n .card-content {\n flex-grow: 1;\n }\n }\n }\n\n // Sticky Action Section\n &.sticky-action {\n .card-action {\n z-index: 2;\n }\n\n .card-reveal {\n z-index: 1;\n padding-bottom: 64px;\n }\n }\n\n\n\n\n .card-image {\n position: relative;\n\n // Image background for content\n img {\n display: block;\n border-radius: 2px 2px 0 0;\n position: relative;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n }\n\n .card-title {\n color: $card-bg-color;\n position: absolute;\n bottom: 0;\n left: 0;\n max-width: 100%;\n padding: $card-padding;\n }\n }\n\n .card-content {\n padding: $card-padding;\n border-radius: 0 0 2px 2px;\n\n p {\n margin: 0;\n }\n .card-title {\n display: block;\n line-height: 32px;\n margin-bottom: 8px;\n\n i {\n line-height: 32px;\n }\n }\n }\n\n .card-action {\n &:last-child {\n border-radius: 0 0 2px 2px;\n }\n background-color: inherit; // Use inherit to inherit color classes\n border-top: 1px solid rgba(160,160,160,.2);\n position: relative;\n padding: 16px $card-padding;\n\n a:not(.btn):not(.btn-large):not(.btn-floating) {\n color: $card-link-color;\n margin-right: $card-padding;\n transition: color .3s ease;\n text-transform: uppercase;\n\n &:hover { color: $card-link-color-light; }\n }\n }\n\n .card-reveal {\n padding: $card-padding;\n position: absolute;\n background-color: $card-bg-color;\n width: 100%;\n overflow-y: auto;\n left: 0;\n top: 100%;\n height: 100%;\n z-index: 3;\n display: none;\n\n .card-title {\n cursor: pointer;\n display: block;\n }\n }\n}\n","/*\n @license\n Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n Code distributed by Google as part of the polymer project is also\n subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**************************/\n/* STYLES FOR THE SPINNER */\n/**************************/\n\n/*\n * Constants:\n * STROKEWIDTH = 3px\n * ARCSIZE = 270 degrees (amount of circle the arc takes up)\n * ARCTIME = 1333ms (time it takes to expand and contract arc)\n * ARCSTARTROT = 216 degrees (how much the start location of the arc\n * should rotate each time, 216 gives us a\n * 5 pointed star shape (it's 360/5 * 3).\n * For a 7 pointed star, we might do\n * 360/7 * 3 = 154.286)\n * CONTAINERWIDTH = 28px\n * SHRINK_TIME = 400ms\n */\n\n\n.preloader-wrapper {\n display: inline-block;\n position: relative;\n width: 50px;\n height: 50px;\n\n &.small {\n width: 36px;\n height: 36px;\n }\n\n &.big {\n width: 64px;\n height: 64px;\n }\n\n &.active {\n /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */\n -webkit-animation: container-rotate 1568ms linear infinite;\n animation: container-rotate 1568ms linear infinite;\n }\n}\n\n@-webkit-keyframes container-rotate {\n to { -webkit-transform: rotate(360deg) }\n}\n\n@keyframes container-rotate {\n to { transform: rotate(360deg) }\n}\n\n.spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n border-color: $spinner-default-color;\n}\n\n.spinner-blue,\n.spinner-blue-only {\n border-color: #4285f4;\n}\n\n.spinner-red,\n.spinner-red-only {\n border-color: #db4437;\n}\n\n.spinner-yellow,\n.spinner-yellow-only {\n border-color: #f4b400;\n}\n\n.spinner-green,\n.spinner-green-only {\n border-color: #0f9d58;\n}\n\n/**\n * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):\n *\n * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't\n * guarantee that the animation will start _exactly_ after that value. So we avoid using\n * animation-delay and instead set custom keyframes for each color (as redundant as it\n * seems).\n *\n * We write out each animation in full (instead of separating animation-name,\n * animation-duration, etc.) because under the polyfill, Safari does not recognize those\n * specific properties properly, treats them as -webkit-animation, and overrides the\n * other animation rules. See https://github.com/Polymer/platform/issues/53.\n */\n.active .spinner-layer.spinner-blue {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-red {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-yellow {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-green {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer,\n.active .spinner-layer.spinner-blue-only,\n.active .spinner-layer.spinner-red-only,\n.active .spinner-layer.spinner-yellow-only,\n.active .spinner-layer.spinner-green-only {\n /* durations: 4 * ARCTIME */\n opacity: 1;\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes fill-unfill-rotate {\n 12.5% { -webkit-transform: rotate(135deg); } /* 0.5 * ARCSIZE */\n 25% { -webkit-transform: rotate(270deg); } /* 1 * ARCSIZE */\n 37.5% { -webkit-transform: rotate(405deg); } /* 1.5 * ARCSIZE */\n 50% { -webkit-transform: rotate(540deg); } /* 2 * ARCSIZE */\n 62.5% { -webkit-transform: rotate(675deg); } /* 2.5 * ARCSIZE */\n 75% { -webkit-transform: rotate(810deg); } /* 3 * ARCSIZE */\n 87.5% { -webkit-transform: rotate(945deg); } /* 3.5 * ARCSIZE */\n to { -webkit-transform: rotate(1080deg); } /* 4 * ARCSIZE */\n}\n\n@keyframes fill-unfill-rotate {\n 12.5% { transform: rotate(135deg); } /* 0.5 * ARCSIZE */\n 25% { transform: rotate(270deg); } /* 1 * ARCSIZE */\n 37.5% { transform: rotate(405deg); } /* 1.5 * ARCSIZE */\n 50% { transform: rotate(540deg); } /* 2 * ARCSIZE */\n 62.5% { transform: rotate(675deg); } /* 2.5 * ARCSIZE */\n 75% { transform: rotate(810deg); } /* 3 * ARCSIZE */\n 87.5% { transform: rotate(945deg); } /* 3.5 * ARCSIZE */\n to { transform: rotate(1080deg); } /* 4 * ARCSIZE */\n}\n\n@-webkit-keyframes blue-fade-in-out {\n from { opacity: 1; }\n 25% { opacity: 1; }\n 26% { opacity: 0; }\n 89% { opacity: 0; }\n 90% { opacity: 1; }\n 100% { opacity: 1; }\n}\n\n@keyframes blue-fade-in-out {\n from { opacity: 1; }\n 25% { opacity: 1; }\n 26% { opacity: 0; }\n 89% { opacity: 0; }\n 90% { opacity: 1; }\n 100% { opacity: 1; }\n}\n\n@-webkit-keyframes red-fade-in-out {\n from { opacity: 0; }\n 15% { opacity: 0; }\n 25% { opacity: 1; }\n 50% { opacity: 1; }\n 51% { opacity: 0; }\n}\n\n@keyframes red-fade-in-out {\n from { opacity: 0; }\n 15% { opacity: 0; }\n 25% { opacity: 1; }\n 50% { opacity: 1; }\n 51% { opacity: 0; }\n}\n\n@-webkit-keyframes yellow-fade-in-out {\n from { opacity: 0; }\n 40% { opacity: 0; }\n 50% { opacity: 1; }\n 75% { opacity: 1; }\n 76% { opacity: 0; }\n}\n\n@keyframes yellow-fade-in-out {\n from { opacity: 0; }\n 40% { opacity: 0; }\n 50% { opacity: 1; }\n 75% { opacity: 1; }\n 76% { opacity: 0; }\n}\n\n@-webkit-keyframes green-fade-in-out {\n from { opacity: 0; }\n 65% { opacity: 0; }\n 75% { opacity: 1; }\n 90% { opacity: 1; }\n 100% { opacity: 0; }\n}\n\n@keyframes green-fade-in-out {\n from { opacity: 0; }\n 65% { opacity: 0; }\n 75% { opacity: 1; }\n 90% { opacity: 1; }\n 100% { opacity: 0; }\n}\n\n/**\n * Patch the gap that appear between the two adjacent div.circle-clipper while the\n * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).\n */\n.gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n\n.gap-patch .circle {\n width: 1000%;\n left: -450%;\n}\n\n.circle-clipper {\n display: inline-block;\n position: relative;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n\n .circle {\n width: 200%;\n height: 100%;\n border-width: 3px; /* STROKEWIDTH */\n border-style: solid;\n border-color: inherit;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n -webkit-animation: none;\n animation: none;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n }\n\n &.left .circle {\n left: 0;\n border-right-color: transparent !important;\n -webkit-transform: rotate(129deg);\n transform: rotate(129deg);\n }\n &.right .circle {\n left: -100%;\n border-left-color: transparent !important;\n -webkit-transform: rotate(-129deg);\n transform: rotate(-129deg);\n }\n}\n\n\n\n.active .circle-clipper.left .circle {\n /* duration: ARCTIME */\n -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n}\n\n.active .circle-clipper.right .circle {\n /* duration: ARCTIME */\n -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes left-spin {\n from { -webkit-transform: rotate(130deg); }\n 50% { -webkit-transform: rotate(-5deg); }\n to { -webkit-transform: rotate(130deg); }\n}\n\n@keyframes left-spin {\n from { transform: rotate(130deg); }\n 50% { transform: rotate(-5deg); }\n to { transform: rotate(130deg); }\n}\n\n@-webkit-keyframes right-spin {\n from { -webkit-transform: rotate(-130deg); }\n 50% { -webkit-transform: rotate(5deg); }\n to { -webkit-transform: rotate(-130deg); }\n}\n\n@keyframes right-spin {\n from { transform: rotate(-130deg); }\n 50% { transform: rotate(5deg); }\n to { transform: rotate(-130deg); }\n}\n\n#spinnerContainer.cooldown {\n /* duration: SHRINK_TIME */\n -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);\n animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);\n}\n\n@-webkit-keyframes fade-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n@keyframes fade-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n","\n// Progress Bar\n.progress {\n position: relative;\n height: 4px;\n display: block;\n width: 100%;\n background-color: lighten($progress-bar-color, 40%);\n border-radius: 2px;\n margin: $element-top-margin 0 $element-bottom-margin 0;\n overflow: hidden;\n .determinate {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n background-color: $progress-bar-color;\n transition: width .3s linear;\n }\n .indeterminate {\n background-color: $progress-bar-color;\n &:before {\n content: '';\n position: absolute;\n background-color: inherit;\n top: 0;\n left:0;\n bottom: 0;\n will-change: left, right;\n // Custom bezier\n animation: indeterminate 2.1s cubic-bezier(0.650, 0.815, 0.735, 0.395) infinite;\n\n }\n &:after {\n content: '';\n position: absolute;\n background-color: inherit;\n top: 0;\n left:0;\n bottom: 0;\n will-change: left, right;\n // Custom bezier\n animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.840, 0.440, 1.000) infinite;\n animation-delay: 1.15s;\n }\n }\n}\n@keyframes indeterminate {\n 0% {\n left: -35%;\n right:100%;\n }\n 60% {\n left: 100%;\n right: -90%;\n }\n 100% {\n left: 100%;\n right: -90%;\n }\n}\n\n@keyframes indeterminate-short {\n 0% {\n left: -200%;\n right: 100%;\n }\n 60% {\n left: 107%;\n right: -8%;\n }\n 100% {\n left: 107%;\n right: -8%;\n }\n}\n\n",".flash-message {\n position: absolute;\n padding: 2px 10px;\n border-radius: 5px;\n z-index: 99999;\n right: 0;\n bottom: 0;\n font-size: 14px;\n\n\n &.info {\n background-color: #beddbe;\n border: 1px solid #728f72;\n }\n\n &.warn {\n background-color: #f5e6d0;\n border: 1px solid #ea7d17;\n }\n &.error {\n background-color: #e5b2bc;\n border: 1px solid #e33257;\n }\n}\n\n@keyframes messageIn {\n from {\n right: 80%;\n }\n\n to {\n right: 0;\n\n }\n}",".pulse {\n &::before {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: inherit;\n border-radius: inherit;\n transition: opacity .3s, transform .3s;\n animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;\n //z-index: -1;\n }\n\n overflow: visible;\n position: relative;\n}\n\n@keyframes pulse-animation {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 50% {\n opacity: 0;\n transform: scale(1.5);\n }\n 100% {\n opacity: 0;\n transform: scale(1.5);\n }\n}\n",".dropdown-content {\n &:focus {\n outline: 0;\n }\n\n\n @extend .shadow-1;\n background-color: $dropdown-bg-color;\n margin: 0;\n display: flow;\n min-width: 100px;\n overflow-y: auto;\n //opacity: 0;\n position: absolute;\n left: 0;\n top: 0;\n z-index: 9999; // TODO: Check if this doesn't break other things\n transform-origin: 0 0;\n\n\n li {\n &:hover, &.active {\n background-color: $dropdown-hover-bg-color;\n }\n\n &:focus {\n outline: none;\n }\n\n &.divider {\n min-height: 0;\n height: 1px;\n }\n\n & > a, & > span {\n font-size: 16px;\n color: $dropdown-color;\n display: block;\n line-height: 22px;\n padding: calc(($dropdown-item-height - 22px) / 2) 16px;\n }\n\n & > span > label {\n top: 1px;\n left: 0;\n height: 18px;\n }\n\n // Icon alignment override\n & > a > i {\n height: inherit;\n line-height: inherit;\n float: left;\n margin: 0 24px 0 0;\n width: 24px;\n }\n\n\n clear: both;\n color: $off-black;\n cursor: pointer;\n min-height: $dropdown-item-height;\n line-height: 1.5rem;\n width: 100%;\n text-align: left;\n }\n}\n\nbody.keyboard-focused {\n .dropdown-content li:focus {\n background-color: darken($dropdown-hover-bg-color, 8%);\n }\n}\n\n// Input field specificity bugfix\n.input-field.col .dropdown-content [type=\"checkbox\"] + label {\n top: 1px;\n left: 0;\n height: 18px;\n transform: none;\n}\n\n.dropdown-trigger {\n cursor: pointer;\n}","nav {\n &.nav-extended {\n height: auto;\n\n .nav-wrapper {\n display: flex;\n align-items: center;\n min-height: $navbar-height-mobile;\n height: auto;\n }\n\n .nav-content {\n position: relative;\n line-height: normal;\n }\n }\n\n color: $navbar-font-color;\n @extend .shadow-1;\n background-color: $primary-color;\n width: 100%;\n height: $navbar-height-mobile;\n line-height: $navbar-line-height-mobile;\n\n a { color: $navbar-font-color; }\n\n i,\n [class^=\"mdi-\"], [class*=\"mdi-\"],\n i.s-icons {\n display: block;\n font-size: 24px;\n height: $navbar-height-mobile;\n line-height: $navbar-line-height-mobile;\n }\n\n .nav-wrapper {\n position: relative;\n height: 100%;\n }\n\n @media #{$large-and-up} {\n a.sidenav-trigger { display: none; }\n }\n\n\n // Collapse button\n .sidenav-trigger {\n float: left;\n position: relative;\n z-index: 1;\n height: $navbar-height-mobile;\n margin: 0 18px;\n\n i {\n height: $navbar-height-mobile;\n line-height: $navbar-line-height-mobile;\n }\n }\n\n\n // Logo\n .brand-logo {\n position: absolute;\n color: $navbar-font-color;\n display: inline-block;\n font-size: $navbar-brand-font-size;\n padding: 0;\n img.circle {\n height: 32px;\n width: 32px;\n }\n\n &.center {\n left: 50%;\n transform: translateX(-50%);\n }\n\n @media #{$medium-and-down} {\n left: 50%;\n transform: translateX(-50%);\n\n &.left, &.right {\n padding: 0;\n transform: none;\n }\n\n &.left { left: 0.5rem; }\n &.right {\n right: 0.5rem;\n left: auto;\n }\n }\n\n &.right {\n right: 0.5rem;\n padding: 0;\n }\n\n i,\n [class^=\"mdi-\"], [class*=\"mdi-\"],\n i.s-icons {\n float: left;\n margin-right: 15px;\n }\n }\n\n\n // Title\n .nav-title {\n display: inline-block;\n font-size: 32px;\n padding: 28px 0;\n }\n\n\n // Navbar Links\n ul {\n margin: 0;\n\n li {\n transition: background-color .3s;\n float: left;\n padding: 0;\n\n &.active {\n background-color: rgba(0,0,0,.1);\n }\n }\n a {\n transition: background-color .3s;\n font-size: $navbar-font-size;\n color: $navbar-font-color;\n display: block;\n padding: 0 15px;\n cursor: pointer;\n\n &.btn, &.btn-large, &.btn-flat, &.btn-floating {\n margin-top: -2px;\n margin-left: 15px;\n margin-right: 15px;\n\n & > .material-icons {\n height: inherit;\n line-height: inherit;\n }\n }\n\n &:hover {\n background-color: rgba(0,0,0,.1);\n }\n }\n\n &.left {\n float: left;\n }\n }\n\n // Navbar Search Form\n form {\n height: 100%;\n }\n\n .input-field {\n margin: 0;\n height: 100%;\n\n input {\n height: 100%;\n font-size: 1.2rem;\n border: none;\n padding-left: 2rem;\n\n &:focus, &[type=text]:valid, &[type=password]:valid,\n &[type=email]:valid, &[type=url]:valid, &[type=date]:valid {\n border: none;\n box-shadow: none;\n }\n }\n\n label {\n top: 0;\n left: 0;\n\n i {\n color: rgba(255,255,255,.7);\n transition: color .3s;\n }\n &.active i { color: $navbar-font-color; }\n }\n }\n}\n\n// Fixed Navbar\n.navbar-fixed {\n position: relative;\n height: $navbar-height-mobile;\n z-index: 997;\n\n nav {\n position: fixed;\n }\n}\n@media #{$medium-and-up} {\n nav.nav-extended .nav-wrapper {\n min-height: $navbar-height;\n }\n nav, nav .nav-wrapper i, nav a.sidenav-trigger, nav a.sidenav-trigger i {\n height: $navbar-height;\n line-height: $navbar-line-height;\n }\n .navbar-fixed {\n height: $navbar-height;\n }\n}\n"],"sourceRoot":""}]);
  7434. // Exports
  7435. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  7436. /***/ }),
  7437. /***/ "./node_modules/css-loader/dist/runtime/api.js":
  7438. /*!*****************************************************!*\
  7439. !*** ./node_modules/css-loader/dist/runtime/api.js ***!
  7440. \*****************************************************/
  7441. /***/ ((module) => {
  7442. "use strict";
  7443. /*
  7444. MIT License http://www.opensource.org/licenses/mit-license.php
  7445. Author Tobias Koppers @sokra
  7446. */
  7447. module.exports = function (cssWithMappingToString) {
  7448. var list = [];
  7449. // return the list of modules as css string
  7450. list.toString = function toString() {
  7451. return this.map(function (item) {
  7452. var content = "";
  7453. var needLayer = typeof item[5] !== "undefined";
  7454. if (item[4]) {
  7455. content += "@supports (".concat(item[4], ") {");
  7456. }
  7457. if (item[2]) {
  7458. content += "@media ".concat(item[2], " {");
  7459. }
  7460. if (needLayer) {
  7461. content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
  7462. }
  7463. content += cssWithMappingToString(item);
  7464. if (needLayer) {
  7465. content += "}";
  7466. }
  7467. if (item[2]) {
  7468. content += "}";
  7469. }
  7470. if (item[4]) {
  7471. content += "}";
  7472. }
  7473. return content;
  7474. }).join("");
  7475. };
  7476. // import a list of modules into the list
  7477. list.i = function i(modules, media, dedupe, supports, layer) {
  7478. if (typeof modules === "string") {
  7479. modules = [[null, modules, undefined]];
  7480. }
  7481. var alreadyImportedModules = {};
  7482. if (dedupe) {
  7483. for (var k = 0; k < this.length; k++) {
  7484. var id = this[k][0];
  7485. if (id != null) {
  7486. alreadyImportedModules[id] = true;
  7487. }
  7488. }
  7489. }
  7490. for (var _k = 0; _k < modules.length; _k++) {
  7491. var item = [].concat(modules[_k]);
  7492. if (dedupe && alreadyImportedModules[item[0]]) {
  7493. continue;
  7494. }
  7495. if (typeof layer !== "undefined") {
  7496. if (typeof item[5] === "undefined") {
  7497. item[5] = layer;
  7498. } else {
  7499. item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
  7500. item[5] = layer;
  7501. }
  7502. }
  7503. if (media) {
  7504. if (!item[2]) {
  7505. item[2] = media;
  7506. } else {
  7507. item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
  7508. item[2] = media;
  7509. }
  7510. }
  7511. if (supports) {
  7512. if (!item[4]) {
  7513. item[4] = "".concat(supports);
  7514. } else {
  7515. item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
  7516. item[4] = supports;
  7517. }
  7518. }
  7519. list.push(item);
  7520. }
  7521. };
  7522. return list;
  7523. };
  7524. /***/ }),
  7525. /***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js":
  7526. /*!************************************************************!*\
  7527. !*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***!
  7528. \************************************************************/
  7529. /***/ ((module) => {
  7530. "use strict";
  7531. module.exports = function (item) {
  7532. var content = item[1];
  7533. var cssMapping = item[3];
  7534. if (!cssMapping) {
  7535. return content;
  7536. }
  7537. if (typeof btoa === "function") {
  7538. var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));
  7539. var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
  7540. var sourceMapping = "/*# ".concat(data, " */");
  7541. return [content].concat([sourceMapping]).join("\n");
  7542. }
  7543. return [content].join("\n");
  7544. };
  7545. /***/ }),
  7546. /***/ "./node_modules/object-assign/index.js":
  7547. /*!*********************************************!*\
  7548. !*** ./node_modules/object-assign/index.js ***!
  7549. \*********************************************/
  7550. /***/ ((module) => {
  7551. "use strict";
  7552. /*
  7553. object-assign
  7554. (c) Sindre Sorhus
  7555. @license MIT
  7556. */
  7557. /* eslint-disable no-unused-vars */
  7558. var getOwnPropertySymbols = Object.getOwnPropertySymbols;
  7559. var hasOwnProperty = Object.prototype.hasOwnProperty;
  7560. var propIsEnumerable = Object.prototype.propertyIsEnumerable;
  7561. function toObject(val) {
  7562. if (val === null || val === undefined) {
  7563. throw new TypeError('Object.assign cannot be called with null or undefined');
  7564. }
  7565. return Object(val);
  7566. }
  7567. function shouldUseNative() {
  7568. try {
  7569. if (!Object.assign) {
  7570. return false;
  7571. }
  7572. // Detect buggy property enumeration order in older V8 versions.
  7573. // https://bugs.chromium.org/p/v8/issues/detail?id=4118
  7574. var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
  7575. test1[5] = 'de';
  7576. if (Object.getOwnPropertyNames(test1)[0] === '5') {
  7577. return false;
  7578. }
  7579. // https://bugs.chromium.org/p/v8/issues/detail?id=3056
  7580. var test2 = {};
  7581. for (var i = 0; i < 10; i++) {
  7582. test2['_' + String.fromCharCode(i)] = i;
  7583. }
  7584. var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
  7585. return test2[n];
  7586. });
  7587. if (order2.join('') !== '0123456789') {
  7588. return false;
  7589. }
  7590. // https://bugs.chromium.org/p/v8/issues/detail?id=3056
  7591. var test3 = {};
  7592. 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
  7593. test3[letter] = letter;
  7594. });
  7595. if (Object.keys(Object.assign({}, test3)).join('') !==
  7596. 'abcdefghijklmnopqrst') {
  7597. return false;
  7598. }
  7599. return true;
  7600. } catch (err) {
  7601. // We don't expect any of the above to throw, but better to be safe.
  7602. return false;
  7603. }
  7604. }
  7605. module.exports = shouldUseNative() ? Object.assign : function (target, source) {
  7606. var from;
  7607. var to = toObject(target);
  7608. var symbols;
  7609. for (var s = 1; s < arguments.length; s++) {
  7610. from = Object(arguments[s]);
  7611. for (var key in from) {
  7612. if (hasOwnProperty.call(from, key)) {
  7613. to[key] = from[key];
  7614. }
  7615. }
  7616. if (getOwnPropertySymbols) {
  7617. symbols = getOwnPropertySymbols(from);
  7618. for (var i = 0; i < symbols.length; i++) {
  7619. if (propIsEnumerable.call(from, symbols[i])) {
  7620. to[symbols[i]] = from[symbols[i]];
  7621. }
  7622. }
  7623. }
  7624. }
  7625. return to;
  7626. };
  7627. /***/ }),
  7628. /***/ "./node_modules/prop-types/checkPropTypes.js":
  7629. /*!***************************************************!*\
  7630. !*** ./node_modules/prop-types/checkPropTypes.js ***!
  7631. \***************************************************/
  7632. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  7633. "use strict";
  7634. /**
  7635. * Copyright (c) 2013-present, Facebook, Inc.
  7636. *
  7637. * This source code is licensed under the MIT license found in the
  7638. * LICENSE file in the root directory of this source tree.
  7639. */
  7640. var printWarning = function() {};
  7641. if (true) {
  7642. var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js");
  7643. var loggedTypeFailures = {};
  7644. var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js");
  7645. printWarning = function(text) {
  7646. var message = 'Warning: ' + text;
  7647. if (typeof console !== 'undefined') {
  7648. console.error(message);
  7649. }
  7650. try {
  7651. // --- Welcome to debugging React ---
  7652. // This error was thrown as a convenience so that you can use this stack
  7653. // to find the callsite that caused this warning to fire.
  7654. throw new Error(message);
  7655. } catch (x) { /**/ }
  7656. };
  7657. }
  7658. /**
  7659. * Assert that the values match with the type specs.
  7660. * Error messages are memorized and will only be shown once.
  7661. *
  7662. * @param {object} typeSpecs Map of name to a ReactPropType
  7663. * @param {object} values Runtime values that need to be type-checked
  7664. * @param {string} location e.g. "prop", "context", "child context"
  7665. * @param {string} componentName Name of the component for error messages.
  7666. * @param {?Function} getStack Returns the component stack.
  7667. * @private
  7668. */
  7669. function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
  7670. if (true) {
  7671. for (var typeSpecName in typeSpecs) {
  7672. if (has(typeSpecs, typeSpecName)) {
  7673. var error;
  7674. // Prop type validation may throw. In case they do, we don't want to
  7675. // fail the render phase where it didn't fail before. So we log it.
  7676. // After these have been cleaned up, we'll let them throw.
  7677. try {
  7678. // This is intentionally an invariant that gets caught. It's the same
  7679. // behavior as without this statement except with a better message.
  7680. if (typeof typeSpecs[typeSpecName] !== 'function') {
  7681. var err = Error(
  7682. (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
  7683. 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
  7684. 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
  7685. );
  7686. err.name = 'Invariant Violation';
  7687. throw err;
  7688. }
  7689. error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
  7690. } catch (ex) {
  7691. error = ex;
  7692. }
  7693. if (error && !(error instanceof Error)) {
  7694. printWarning(
  7695. (componentName || 'React class') + ': type specification of ' +
  7696. location + ' `' + typeSpecName + '` is invalid; the type checker ' +
  7697. 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
  7698. 'You may have forgotten to pass an argument to the type checker ' +
  7699. 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
  7700. 'shape all require an argument).'
  7701. );
  7702. }
  7703. if (error instanceof Error && !(error.message in loggedTypeFailures)) {
  7704. // Only monitor this failure once because there tends to be a lot of the
  7705. // same error.
  7706. loggedTypeFailures[error.message] = true;
  7707. var stack = getStack ? getStack() : '';
  7708. printWarning(
  7709. 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
  7710. );
  7711. }
  7712. }
  7713. }
  7714. }
  7715. }
  7716. /**
  7717. * Resets warning cache when testing.
  7718. *
  7719. * @private
  7720. */
  7721. checkPropTypes.resetWarningCache = function() {
  7722. if (true) {
  7723. loggedTypeFailures = {};
  7724. }
  7725. }
  7726. module.exports = checkPropTypes;
  7727. /***/ }),
  7728. /***/ "./node_modules/prop-types/factoryWithTypeCheckers.js":
  7729. /*!************************************************************!*\
  7730. !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***!
  7731. \************************************************************/
  7732. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  7733. "use strict";
  7734. /**
  7735. * Copyright (c) 2013-present, Facebook, Inc.
  7736. *
  7737. * This source code is licensed under the MIT license found in the
  7738. * LICENSE file in the root directory of this source tree.
  7739. */
  7740. var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/react-is/index.js");
  7741. var assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
  7742. var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js");
  7743. var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js");
  7744. var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "./node_modules/prop-types/checkPropTypes.js");
  7745. var printWarning = function() {};
  7746. if (true) {
  7747. printWarning = function(text) {
  7748. var message = 'Warning: ' + text;
  7749. if (typeof console !== 'undefined') {
  7750. console.error(message);
  7751. }
  7752. try {
  7753. // --- Welcome to debugging React ---
  7754. // This error was thrown as a convenience so that you can use this stack
  7755. // to find the callsite that caused this warning to fire.
  7756. throw new Error(message);
  7757. } catch (x) {}
  7758. };
  7759. }
  7760. function emptyFunctionThatReturnsNull() {
  7761. return null;
  7762. }
  7763. module.exports = function(isValidElement, throwOnDirectAccess) {
  7764. /* global Symbol */
  7765. var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
  7766. var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
  7767. /**
  7768. * Returns the iterator method function contained on the iterable object.
  7769. *
  7770. * Be sure to invoke the function with the iterable as context:
  7771. *
  7772. * var iteratorFn = getIteratorFn(myIterable);
  7773. * if (iteratorFn) {
  7774. * var iterator = iteratorFn.call(myIterable);
  7775. * ...
  7776. * }
  7777. *
  7778. * @param {?object} maybeIterable
  7779. * @return {?function}
  7780. */
  7781. function getIteratorFn(maybeIterable) {
  7782. var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
  7783. if (typeof iteratorFn === 'function') {
  7784. return iteratorFn;
  7785. }
  7786. }
  7787. /**
  7788. * Collection of methods that allow declaration and validation of props that are
  7789. * supplied to React components. Example usage:
  7790. *
  7791. * var Props = require('ReactPropTypes');
  7792. * var MyArticle = React.createClass({
  7793. * propTypes: {
  7794. * // An optional string prop named "description".
  7795. * description: Props.string,
  7796. *
  7797. * // A required enum prop named "category".
  7798. * category: Props.oneOf(['News','Photos']).isRequired,
  7799. *
  7800. * // A prop named "dialog" that requires an instance of Dialog.
  7801. * dialog: Props.instanceOf(Dialog).isRequired
  7802. * },
  7803. * render: function() { ... }
  7804. * });
  7805. *
  7806. * A more formal specification of how these methods are used:
  7807. *
  7808. * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
  7809. * decl := ReactPropTypes.{type}(.isRequired)?
  7810. *
  7811. * Each and every declaration produces a function with the same signature. This
  7812. * allows the creation of custom validation functions. For example:
  7813. *
  7814. * var MyLink = React.createClass({
  7815. * propTypes: {
  7816. * // An optional string or URI prop named "href".
  7817. * href: function(props, propName, componentName) {
  7818. * var propValue = props[propName];
  7819. * if (propValue != null && typeof propValue !== 'string' &&
  7820. * !(propValue instanceof URI)) {
  7821. * return new Error(
  7822. * 'Expected a string or an URI for ' + propName + ' in ' +
  7823. * componentName
  7824. * );
  7825. * }
  7826. * }
  7827. * },
  7828. * render: function() {...}
  7829. * });
  7830. *
  7831. * @internal
  7832. */
  7833. var ANONYMOUS = '<<anonymous>>';
  7834. // Important!
  7835. // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
  7836. var ReactPropTypes = {
  7837. array: createPrimitiveTypeChecker('array'),
  7838. bigint: createPrimitiveTypeChecker('bigint'),
  7839. bool: createPrimitiveTypeChecker('boolean'),
  7840. func: createPrimitiveTypeChecker('function'),
  7841. number: createPrimitiveTypeChecker('number'),
  7842. object: createPrimitiveTypeChecker('object'),
  7843. string: createPrimitiveTypeChecker('string'),
  7844. symbol: createPrimitiveTypeChecker('symbol'),
  7845. any: createAnyTypeChecker(),
  7846. arrayOf: createArrayOfTypeChecker,
  7847. element: createElementTypeChecker(),
  7848. elementType: createElementTypeTypeChecker(),
  7849. instanceOf: createInstanceTypeChecker,
  7850. node: createNodeChecker(),
  7851. objectOf: createObjectOfTypeChecker,
  7852. oneOf: createEnumTypeChecker,
  7853. oneOfType: createUnionTypeChecker,
  7854. shape: createShapeTypeChecker,
  7855. exact: createStrictShapeTypeChecker,
  7856. };
  7857. /**
  7858. * inlined Object.is polyfill to avoid requiring consumers ship their own
  7859. * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
  7860. */
  7861. /*eslint-disable no-self-compare*/
  7862. function is(x, y) {
  7863. // SameValue algorithm
  7864. if (x === y) {
  7865. // Steps 1-5, 7-10
  7866. // Steps 6.b-6.e: +0 != -0
  7867. return x !== 0 || 1 / x === 1 / y;
  7868. } else {
  7869. // Step 6.a: NaN == NaN
  7870. return x !== x && y !== y;
  7871. }
  7872. }
  7873. /*eslint-enable no-self-compare*/
  7874. /**
  7875. * We use an Error-like object for backward compatibility as people may call
  7876. * PropTypes directly and inspect their output. However, we don't use real
  7877. * Errors anymore. We don't inspect their stack anyway, and creating them
  7878. * is prohibitively expensive if they are created too often, such as what
  7879. * happens in oneOfType() for any type before the one that matched.
  7880. */
  7881. function PropTypeError(message, data) {
  7882. this.message = message;
  7883. this.data = data && typeof data === 'object' ? data: {};
  7884. this.stack = '';
  7885. }
  7886. // Make `instanceof Error` still work for returned errors.
  7887. PropTypeError.prototype = Error.prototype;
  7888. function createChainableTypeChecker(validate) {
  7889. if (true) {
  7890. var manualPropTypeCallCache = {};
  7891. var manualPropTypeWarningCount = 0;
  7892. }
  7893. function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
  7894. componentName = componentName || ANONYMOUS;
  7895. propFullName = propFullName || propName;
  7896. if (secret !== ReactPropTypesSecret) {
  7897. if (throwOnDirectAccess) {
  7898. // New behavior only for users of `prop-types` package
  7899. var err = new Error(
  7900. 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
  7901. 'Use `PropTypes.checkPropTypes()` to call them. ' +
  7902. 'Read more at http://fb.me/use-check-prop-types'
  7903. );
  7904. err.name = 'Invariant Violation';
  7905. throw err;
  7906. } else if ( true && typeof console !== 'undefined') {
  7907. // Old behavior for people using React.PropTypes
  7908. var cacheKey = componentName + ':' + propName;
  7909. if (
  7910. !manualPropTypeCallCache[cacheKey] &&
  7911. // Avoid spamming the console because they are often not actionable except for lib authors
  7912. manualPropTypeWarningCount < 3
  7913. ) {
  7914. printWarning(
  7915. 'You are manually calling a React.PropTypes validation ' +
  7916. 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
  7917. 'and will throw in the standalone `prop-types` package. ' +
  7918. 'You may be seeing this warning due to a third-party PropTypes ' +
  7919. 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
  7920. );
  7921. manualPropTypeCallCache[cacheKey] = true;
  7922. manualPropTypeWarningCount++;
  7923. }
  7924. }
  7925. }
  7926. if (props[propName] == null) {
  7927. if (isRequired) {
  7928. if (props[propName] === null) {
  7929. return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
  7930. }
  7931. return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
  7932. }
  7933. return null;
  7934. } else {
  7935. return validate(props, propName, componentName, location, propFullName);
  7936. }
  7937. }
  7938. var chainedCheckType = checkType.bind(null, false);
  7939. chainedCheckType.isRequired = checkType.bind(null, true);
  7940. return chainedCheckType;
  7941. }
  7942. function createPrimitiveTypeChecker(expectedType) {
  7943. function validate(props, propName, componentName, location, propFullName, secret) {
  7944. var propValue = props[propName];
  7945. var propType = getPropType(propValue);
  7946. if (propType !== expectedType) {
  7947. // `propValue` being instance of, say, date/regexp, pass the 'object'
  7948. // check, but we can offer a more precise error message here rather than
  7949. // 'of type `object`'.
  7950. var preciseType = getPreciseType(propValue);
  7951. return new PropTypeError(
  7952. 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
  7953. {expectedType: expectedType}
  7954. );
  7955. }
  7956. return null;
  7957. }
  7958. return createChainableTypeChecker(validate);
  7959. }
  7960. function createAnyTypeChecker() {
  7961. return createChainableTypeChecker(emptyFunctionThatReturnsNull);
  7962. }
  7963. function createArrayOfTypeChecker(typeChecker) {
  7964. function validate(props, propName, componentName, location, propFullName) {
  7965. if (typeof typeChecker !== 'function') {
  7966. return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
  7967. }
  7968. var propValue = props[propName];
  7969. if (!Array.isArray(propValue)) {
  7970. var propType = getPropType(propValue);
  7971. return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
  7972. }
  7973. for (var i = 0; i < propValue.length; i++) {
  7974. var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
  7975. if (error instanceof Error) {
  7976. return error;
  7977. }
  7978. }
  7979. return null;
  7980. }
  7981. return createChainableTypeChecker(validate);
  7982. }
  7983. function createElementTypeChecker() {
  7984. function validate(props, propName, componentName, location, propFullName) {
  7985. var propValue = props[propName];
  7986. if (!isValidElement(propValue)) {
  7987. var propType = getPropType(propValue);
  7988. return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
  7989. }
  7990. return null;
  7991. }
  7992. return createChainableTypeChecker(validate);
  7993. }
  7994. function createElementTypeTypeChecker() {
  7995. function validate(props, propName, componentName, location, propFullName) {
  7996. var propValue = props[propName];
  7997. if (!ReactIs.isValidElementType(propValue)) {
  7998. var propType = getPropType(propValue);
  7999. return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
  8000. }
  8001. return null;
  8002. }
  8003. return createChainableTypeChecker(validate);
  8004. }
  8005. function createInstanceTypeChecker(expectedClass) {
  8006. function validate(props, propName, componentName, location, propFullName) {
  8007. if (!(props[propName] instanceof expectedClass)) {
  8008. var expectedClassName = expectedClass.name || ANONYMOUS;
  8009. var actualClassName = getClassName(props[propName]);
  8010. return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
  8011. }
  8012. return null;
  8013. }
  8014. return createChainableTypeChecker(validate);
  8015. }
  8016. function createEnumTypeChecker(expectedValues) {
  8017. if (!Array.isArray(expectedValues)) {
  8018. if (true) {
  8019. if (arguments.length > 1) {
  8020. printWarning(
  8021. 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
  8022. 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
  8023. );
  8024. } else {
  8025. printWarning('Invalid argument supplied to oneOf, expected an array.');
  8026. }
  8027. }
  8028. return emptyFunctionThatReturnsNull;
  8029. }
  8030. function validate(props, propName, componentName, location, propFullName) {
  8031. var propValue = props[propName];
  8032. for (var i = 0; i < expectedValues.length; i++) {
  8033. if (is(propValue, expectedValues[i])) {
  8034. return null;
  8035. }
  8036. }
  8037. var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
  8038. var type = getPreciseType(value);
  8039. if (type === 'symbol') {
  8040. return String(value);
  8041. }
  8042. return value;
  8043. });
  8044. return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
  8045. }
  8046. return createChainableTypeChecker(validate);
  8047. }
  8048. function createObjectOfTypeChecker(typeChecker) {
  8049. function validate(props, propName, componentName, location, propFullName) {
  8050. if (typeof typeChecker !== 'function') {
  8051. return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
  8052. }
  8053. var propValue = props[propName];
  8054. var propType = getPropType(propValue);
  8055. if (propType !== 'object') {
  8056. return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
  8057. }
  8058. for (var key in propValue) {
  8059. if (has(propValue, key)) {
  8060. var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
  8061. if (error instanceof Error) {
  8062. return error;
  8063. }
  8064. }
  8065. }
  8066. return null;
  8067. }
  8068. return createChainableTypeChecker(validate);
  8069. }
  8070. function createUnionTypeChecker(arrayOfTypeCheckers) {
  8071. if (!Array.isArray(arrayOfTypeCheckers)) {
  8072. true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
  8073. return emptyFunctionThatReturnsNull;
  8074. }
  8075. for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
  8076. var checker = arrayOfTypeCheckers[i];
  8077. if (typeof checker !== 'function') {
  8078. printWarning(
  8079. 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
  8080. 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
  8081. );
  8082. return emptyFunctionThatReturnsNull;
  8083. }
  8084. }
  8085. function validate(props, propName, componentName, location, propFullName) {
  8086. var expectedTypes = [];
  8087. for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
  8088. var checker = arrayOfTypeCheckers[i];
  8089. var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
  8090. if (checkerResult == null) {
  8091. return null;
  8092. }
  8093. if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
  8094. expectedTypes.push(checkerResult.data.expectedType);
  8095. }
  8096. }
  8097. var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
  8098. return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
  8099. }
  8100. return createChainableTypeChecker(validate);
  8101. }
  8102. function createNodeChecker() {
  8103. function validate(props, propName, componentName, location, propFullName) {
  8104. if (!isNode(props[propName])) {
  8105. return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
  8106. }
  8107. return null;
  8108. }
  8109. return createChainableTypeChecker(validate);
  8110. }
  8111. function invalidValidatorError(componentName, location, propFullName, key, type) {
  8112. return new PropTypeError(
  8113. (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
  8114. 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
  8115. );
  8116. }
  8117. function createShapeTypeChecker(shapeTypes) {
  8118. function validate(props, propName, componentName, location, propFullName) {
  8119. var propValue = props[propName];
  8120. var propType = getPropType(propValue);
  8121. if (propType !== 'object') {
  8122. return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
  8123. }
  8124. for (var key in shapeTypes) {
  8125. var checker = shapeTypes[key];
  8126. if (typeof checker !== 'function') {
  8127. return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
  8128. }
  8129. var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
  8130. if (error) {
  8131. return error;
  8132. }
  8133. }
  8134. return null;
  8135. }
  8136. return createChainableTypeChecker(validate);
  8137. }
  8138. function createStrictShapeTypeChecker(shapeTypes) {
  8139. function validate(props, propName, componentName, location, propFullName) {
  8140. var propValue = props[propName];
  8141. var propType = getPropType(propValue);
  8142. if (propType !== 'object') {
  8143. return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
  8144. }
  8145. // We need to check all keys in case some are required but missing from props.
  8146. var allKeys = assign({}, props[propName], shapeTypes);
  8147. for (var key in allKeys) {
  8148. var checker = shapeTypes[key];
  8149. if (has(shapeTypes, key) && typeof checker !== 'function') {
  8150. return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
  8151. }
  8152. if (!checker) {
  8153. return new PropTypeError(
  8154. 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
  8155. '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
  8156. '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
  8157. );
  8158. }
  8159. var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
  8160. if (error) {
  8161. return error;
  8162. }
  8163. }
  8164. return null;
  8165. }
  8166. return createChainableTypeChecker(validate);
  8167. }
  8168. function isNode(propValue) {
  8169. switch (typeof propValue) {
  8170. case 'number':
  8171. case 'string':
  8172. case 'undefined':
  8173. return true;
  8174. case 'boolean':
  8175. return !propValue;
  8176. case 'object':
  8177. if (Array.isArray(propValue)) {
  8178. return propValue.every(isNode);
  8179. }
  8180. if (propValue === null || isValidElement(propValue)) {
  8181. return true;
  8182. }
  8183. var iteratorFn = getIteratorFn(propValue);
  8184. if (iteratorFn) {
  8185. var iterator = iteratorFn.call(propValue);
  8186. var step;
  8187. if (iteratorFn !== propValue.entries) {
  8188. while (!(step = iterator.next()).done) {
  8189. if (!isNode(step.value)) {
  8190. return false;
  8191. }
  8192. }
  8193. } else {
  8194. // Iterator will provide entry [k,v] tuples rather than values.
  8195. while (!(step = iterator.next()).done) {
  8196. var entry = step.value;
  8197. if (entry) {
  8198. if (!isNode(entry[1])) {
  8199. return false;
  8200. }
  8201. }
  8202. }
  8203. }
  8204. } else {
  8205. return false;
  8206. }
  8207. return true;
  8208. default:
  8209. return false;
  8210. }
  8211. }
  8212. function isSymbol(propType, propValue) {
  8213. // Native Symbol.
  8214. if (propType === 'symbol') {
  8215. return true;
  8216. }
  8217. // falsy value can't be a Symbol
  8218. if (!propValue) {
  8219. return false;
  8220. }
  8221. // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
  8222. if (propValue['@@toStringTag'] === 'Symbol') {
  8223. return true;
  8224. }
  8225. // Fallback for non-spec compliant Symbols which are polyfilled.
  8226. if (typeof Symbol === 'function' && propValue instanceof Symbol) {
  8227. return true;
  8228. }
  8229. return false;
  8230. }
  8231. // Equivalent of `typeof` but with special handling for array and regexp.
  8232. function getPropType(propValue) {
  8233. var propType = typeof propValue;
  8234. if (Array.isArray(propValue)) {
  8235. return 'array';
  8236. }
  8237. if (propValue instanceof RegExp) {
  8238. // Old webkits (at least until Android 4.0) return 'function' rather than
  8239. // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
  8240. // passes PropTypes.object.
  8241. return 'object';
  8242. }
  8243. if (isSymbol(propType, propValue)) {
  8244. return 'symbol';
  8245. }
  8246. return propType;
  8247. }
  8248. // This handles more types than `getPropType`. Only used for error messages.
  8249. // See `createPrimitiveTypeChecker`.
  8250. function getPreciseType(propValue) {
  8251. if (typeof propValue === 'undefined' || propValue === null) {
  8252. return '' + propValue;
  8253. }
  8254. var propType = getPropType(propValue);
  8255. if (propType === 'object') {
  8256. if (propValue instanceof Date) {
  8257. return 'date';
  8258. } else if (propValue instanceof RegExp) {
  8259. return 'regexp';
  8260. }
  8261. }
  8262. return propType;
  8263. }
  8264. // Returns a string that is postfixed to a warning about an invalid type.
  8265. // For example, "undefined" or "of type array"
  8266. function getPostfixForTypeWarning(value) {
  8267. var type = getPreciseType(value);
  8268. switch (type) {
  8269. case 'array':
  8270. case 'object':
  8271. return 'an ' + type;
  8272. case 'boolean':
  8273. case 'date':
  8274. case 'regexp':
  8275. return 'a ' + type;
  8276. default:
  8277. return type;
  8278. }
  8279. }
  8280. // Returns class name of the object, if any.
  8281. function getClassName(propValue) {
  8282. if (!propValue.constructor || !propValue.constructor.name) {
  8283. return ANONYMOUS;
  8284. }
  8285. return propValue.constructor.name;
  8286. }
  8287. ReactPropTypes.checkPropTypes = checkPropTypes;
  8288. ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
  8289. ReactPropTypes.PropTypes = ReactPropTypes;
  8290. return ReactPropTypes;
  8291. };
  8292. /***/ }),
  8293. /***/ "./node_modules/prop-types/index.js":
  8294. /*!******************************************!*\
  8295. !*** ./node_modules/prop-types/index.js ***!
  8296. \******************************************/
  8297. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  8298. /**
  8299. * Copyright (c) 2013-present, Facebook, Inc.
  8300. *
  8301. * This source code is licensed under the MIT license found in the
  8302. * LICENSE file in the root directory of this source tree.
  8303. */
  8304. if (true) {
  8305. var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/react-is/index.js");
  8306. // By explicitly using `prop-types` you are opting into new development behavior.
  8307. // http://fb.me/prop-types-in-prod
  8308. var throwOnDirectAccess = true;
  8309. module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "./node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
  8310. } else {}
  8311. /***/ }),
  8312. /***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js":
  8313. /*!*************************************************************!*\
  8314. !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  8315. \*************************************************************/
  8316. /***/ ((module) => {
  8317. "use strict";
  8318. /**
  8319. * Copyright (c) 2013-present, Facebook, Inc.
  8320. *
  8321. * This source code is licensed under the MIT license found in the
  8322. * LICENSE file in the root directory of this source tree.
  8323. */
  8324. var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
  8325. module.exports = ReactPropTypesSecret;
  8326. /***/ }),
  8327. /***/ "./node_modules/prop-types/lib/has.js":
  8328. /*!********************************************!*\
  8329. !*** ./node_modules/prop-types/lib/has.js ***!
  8330. \********************************************/
  8331. /***/ ((module) => {
  8332. module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
  8333. /***/ }),
  8334. /***/ "./node_modules/react-is/cjs/react-is.development.js":
  8335. /*!***********************************************************!*\
  8336. !*** ./node_modules/react-is/cjs/react-is.development.js ***!
  8337. \***********************************************************/
  8338. /***/ ((__unused_webpack_module, exports) => {
  8339. "use strict";
  8340. /** @license React v16.13.1
  8341. * react-is.development.js
  8342. *
  8343. * Copyright (c) Facebook, Inc. and its affiliates.
  8344. *
  8345. * This source code is licensed under the MIT license found in the
  8346. * LICENSE file in the root directory of this source tree.
  8347. */
  8348. if (true) {
  8349. (function() {
  8350. 'use strict';
  8351. // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
  8352. // nor polyfill, then a plain number is used for performance.
  8353. var hasSymbol = typeof Symbol === 'function' && Symbol.for;
  8354. var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
  8355. var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
  8356. var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
  8357. var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
  8358. var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
  8359. var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
  8360. var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
  8361. // (unstable) APIs that have been removed. Can we remove the symbols?
  8362. var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
  8363. var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
  8364. var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
  8365. var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
  8366. var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
  8367. var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
  8368. var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
  8369. var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
  8370. var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
  8371. var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
  8372. var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
  8373. function isValidElementType(type) {
  8374. return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
  8375. type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
  8376. }
  8377. function typeOf(object) {
  8378. if (typeof object === 'object' && object !== null) {
  8379. var $$typeof = object.$$typeof;
  8380. switch ($$typeof) {
  8381. case REACT_ELEMENT_TYPE:
  8382. var type = object.type;
  8383. switch (type) {
  8384. case REACT_ASYNC_MODE_TYPE:
  8385. case REACT_CONCURRENT_MODE_TYPE:
  8386. case REACT_FRAGMENT_TYPE:
  8387. case REACT_PROFILER_TYPE:
  8388. case REACT_STRICT_MODE_TYPE:
  8389. case REACT_SUSPENSE_TYPE:
  8390. return type;
  8391. default:
  8392. var $$typeofType = type && type.$$typeof;
  8393. switch ($$typeofType) {
  8394. case REACT_CONTEXT_TYPE:
  8395. case REACT_FORWARD_REF_TYPE:
  8396. case REACT_LAZY_TYPE:
  8397. case REACT_MEMO_TYPE:
  8398. case REACT_PROVIDER_TYPE:
  8399. return $$typeofType;
  8400. default:
  8401. return $$typeof;
  8402. }
  8403. }
  8404. case REACT_PORTAL_TYPE:
  8405. return $$typeof;
  8406. }
  8407. }
  8408. return undefined;
  8409. } // AsyncMode is deprecated along with isAsyncMode
  8410. var AsyncMode = REACT_ASYNC_MODE_TYPE;
  8411. var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
  8412. var ContextConsumer = REACT_CONTEXT_TYPE;
  8413. var ContextProvider = REACT_PROVIDER_TYPE;
  8414. var Element = REACT_ELEMENT_TYPE;
  8415. var ForwardRef = REACT_FORWARD_REF_TYPE;
  8416. var Fragment = REACT_FRAGMENT_TYPE;
  8417. var Lazy = REACT_LAZY_TYPE;
  8418. var Memo = REACT_MEMO_TYPE;
  8419. var Portal = REACT_PORTAL_TYPE;
  8420. var Profiler = REACT_PROFILER_TYPE;
  8421. var StrictMode = REACT_STRICT_MODE_TYPE;
  8422. var Suspense = REACT_SUSPENSE_TYPE;
  8423. var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
  8424. function isAsyncMode(object) {
  8425. {
  8426. if (!hasWarnedAboutDeprecatedIsAsyncMode) {
  8427. hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
  8428. console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
  8429. }
  8430. }
  8431. return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
  8432. }
  8433. function isConcurrentMode(object) {
  8434. return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
  8435. }
  8436. function isContextConsumer(object) {
  8437. return typeOf(object) === REACT_CONTEXT_TYPE;
  8438. }
  8439. function isContextProvider(object) {
  8440. return typeOf(object) === REACT_PROVIDER_TYPE;
  8441. }
  8442. function isElement(object) {
  8443. return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
  8444. }
  8445. function isForwardRef(object) {
  8446. return typeOf(object) === REACT_FORWARD_REF_TYPE;
  8447. }
  8448. function isFragment(object) {
  8449. return typeOf(object) === REACT_FRAGMENT_TYPE;
  8450. }
  8451. function isLazy(object) {
  8452. return typeOf(object) === REACT_LAZY_TYPE;
  8453. }
  8454. function isMemo(object) {
  8455. return typeOf(object) === REACT_MEMO_TYPE;
  8456. }
  8457. function isPortal(object) {
  8458. return typeOf(object) === REACT_PORTAL_TYPE;
  8459. }
  8460. function isProfiler(object) {
  8461. return typeOf(object) === REACT_PROFILER_TYPE;
  8462. }
  8463. function isStrictMode(object) {
  8464. return typeOf(object) === REACT_STRICT_MODE_TYPE;
  8465. }
  8466. function isSuspense(object) {
  8467. return typeOf(object) === REACT_SUSPENSE_TYPE;
  8468. }
  8469. exports.AsyncMode = AsyncMode;
  8470. exports.ConcurrentMode = ConcurrentMode;
  8471. exports.ContextConsumer = ContextConsumer;
  8472. exports.ContextProvider = ContextProvider;
  8473. exports.Element = Element;
  8474. exports.ForwardRef = ForwardRef;
  8475. exports.Fragment = Fragment;
  8476. exports.Lazy = Lazy;
  8477. exports.Memo = Memo;
  8478. exports.Portal = Portal;
  8479. exports.Profiler = Profiler;
  8480. exports.StrictMode = StrictMode;
  8481. exports.Suspense = Suspense;
  8482. exports.isAsyncMode = isAsyncMode;
  8483. exports.isConcurrentMode = isConcurrentMode;
  8484. exports.isContextConsumer = isContextConsumer;
  8485. exports.isContextProvider = isContextProvider;
  8486. exports.isElement = isElement;
  8487. exports.isForwardRef = isForwardRef;
  8488. exports.isFragment = isFragment;
  8489. exports.isLazy = isLazy;
  8490. exports.isMemo = isMemo;
  8491. exports.isPortal = isPortal;
  8492. exports.isProfiler = isProfiler;
  8493. exports.isStrictMode = isStrictMode;
  8494. exports.isSuspense = isSuspense;
  8495. exports.isValidElementType = isValidElementType;
  8496. exports.typeOf = typeOf;
  8497. })();
  8498. }
  8499. /***/ }),
  8500. /***/ "./node_modules/react-is/index.js":
  8501. /*!****************************************!*\
  8502. !*** ./node_modules/react-is/index.js ***!
  8503. \****************************************/
  8504. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  8505. "use strict";
  8506. if (false) {} else {
  8507. module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "./node_modules/react-is/cjs/react-is.development.js");
  8508. }
  8509. /***/ }),
  8510. /***/ "./node_modules/react/cjs/react.development.js":
  8511. /*!*****************************************************!*\
  8512. !*** ./node_modules/react/cjs/react.development.js ***!
  8513. \*****************************************************/
  8514. /***/ ((module, exports, __webpack_require__) => {
  8515. "use strict";
  8516. /* module decorator */ module = __webpack_require__.nmd(module);
  8517. /**
  8518. * @license React
  8519. * react.development.js
  8520. *
  8521. * Copyright (c) Facebook, Inc. and its affiliates.
  8522. *
  8523. * This source code is licensed under the MIT license found in the
  8524. * LICENSE file in the root directory of this source tree.
  8525. */
  8526. if (true) {
  8527. (function() {
  8528. 'use strict';
  8529. /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
  8530. if (
  8531. typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
  8532. typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===
  8533. 'function'
  8534. ) {
  8535. __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
  8536. }
  8537. var ReactVersion = '18.3.1';
  8538. // ATTENTION
  8539. // When adding new symbols to this file,
  8540. // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
  8541. // The Symbol used to tag the ReactElement-like types.
  8542. var REACT_ELEMENT_TYPE = Symbol.for('react.element');
  8543. var REACT_PORTAL_TYPE = Symbol.for('react.portal');
  8544. var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
  8545. var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
  8546. var REACT_PROFILER_TYPE = Symbol.for('react.profiler');
  8547. var REACT_PROVIDER_TYPE = Symbol.for('react.provider');
  8548. var REACT_CONTEXT_TYPE = Symbol.for('react.context');
  8549. var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
  8550. var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
  8551. var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
  8552. var REACT_MEMO_TYPE = Symbol.for('react.memo');
  8553. var REACT_LAZY_TYPE = Symbol.for('react.lazy');
  8554. var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
  8555. var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
  8556. var FAUX_ITERATOR_SYMBOL = '@@iterator';
  8557. function getIteratorFn(maybeIterable) {
  8558. if (maybeIterable === null || typeof maybeIterable !== 'object') {
  8559. return null;
  8560. }
  8561. var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
  8562. if (typeof maybeIterator === 'function') {
  8563. return maybeIterator;
  8564. }
  8565. return null;
  8566. }
  8567. /**
  8568. * Keeps track of the current dispatcher.
  8569. */
  8570. var ReactCurrentDispatcher = {
  8571. /**
  8572. * @internal
  8573. * @type {ReactComponent}
  8574. */
  8575. current: null
  8576. };
  8577. /**
  8578. * Keeps track of the current batch's configuration such as how long an update
  8579. * should suspend for if it needs to.
  8580. */
  8581. var ReactCurrentBatchConfig = {
  8582. transition: null
  8583. };
  8584. var ReactCurrentActQueue = {
  8585. current: null,
  8586. // Used to reproduce behavior of `batchedUpdates` in legacy mode.
  8587. isBatchingLegacy: false,
  8588. didScheduleLegacyUpdate: false
  8589. };
  8590. /**
  8591. * Keeps track of the current owner.
  8592. *
  8593. * The current owner is the component who should own any components that are
  8594. * currently being constructed.
  8595. */
  8596. var ReactCurrentOwner = {
  8597. /**
  8598. * @internal
  8599. * @type {ReactComponent}
  8600. */
  8601. current: null
  8602. };
  8603. var ReactDebugCurrentFrame = {};
  8604. var currentExtraStackFrame = null;
  8605. function setExtraStackFrame(stack) {
  8606. {
  8607. currentExtraStackFrame = stack;
  8608. }
  8609. }
  8610. {
  8611. ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {
  8612. {
  8613. currentExtraStackFrame = stack;
  8614. }
  8615. }; // Stack implementation injected by the current renderer.
  8616. ReactDebugCurrentFrame.getCurrentStack = null;
  8617. ReactDebugCurrentFrame.getStackAddendum = function () {
  8618. var stack = ''; // Add an extra top frame while an element is being validated
  8619. if (currentExtraStackFrame) {
  8620. stack += currentExtraStackFrame;
  8621. } // Delegate to the injected renderer-specific implementation
  8622. var impl = ReactDebugCurrentFrame.getCurrentStack;
  8623. if (impl) {
  8624. stack += impl() || '';
  8625. }
  8626. return stack;
  8627. };
  8628. }
  8629. // -----------------------------------------------------------------------------
  8630. var enableScopeAPI = false; // Experimental Create Event Handle API.
  8631. var enableCacheElement = false;
  8632. var enableTransitionTracing = false; // No known bugs, but needs performance testing
  8633. var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber
  8634. // stuff. Intended to enable React core members to more easily debug scheduling
  8635. // issues in DEV builds.
  8636. var enableDebugTracing = false; // Track which Fiber(s) schedule render work.
  8637. var ReactSharedInternals = {
  8638. ReactCurrentDispatcher: ReactCurrentDispatcher,
  8639. ReactCurrentBatchConfig: ReactCurrentBatchConfig,
  8640. ReactCurrentOwner: ReactCurrentOwner
  8641. };
  8642. {
  8643. ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;
  8644. ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;
  8645. }
  8646. // by calls to these methods by a Babel plugin.
  8647. //
  8648. // In PROD (or in packages without access to React internals),
  8649. // they are left as they are instead.
  8650. function warn(format) {
  8651. {
  8652. {
  8653. for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  8654. args[_key - 1] = arguments[_key];
  8655. }
  8656. printWarning('warn', format, args);
  8657. }
  8658. }
  8659. }
  8660. function error(format) {
  8661. {
  8662. {
  8663. for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
  8664. args[_key2 - 1] = arguments[_key2];
  8665. }
  8666. printWarning('error', format, args);
  8667. }
  8668. }
  8669. }
  8670. function printWarning(level, format, args) {
  8671. // When changing this logic, you might want to also
  8672. // update consoleWithStackDev.www.js as well.
  8673. {
  8674. var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
  8675. var stack = ReactDebugCurrentFrame.getStackAddendum();
  8676. if (stack !== '') {
  8677. format += '%s';
  8678. args = args.concat([stack]);
  8679. } // eslint-disable-next-line react-internal/safe-string-coercion
  8680. var argsWithFormat = args.map(function (item) {
  8681. return String(item);
  8682. }); // Careful: RN currently depends on this prefix
  8683. argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
  8684. // breaks IE9: https://github.com/facebook/react/issues/13610
  8685. // eslint-disable-next-line react-internal/no-production-logging
  8686. Function.prototype.apply.call(console[level], console, argsWithFormat);
  8687. }
  8688. }
  8689. var didWarnStateUpdateForUnmountedComponent = {};
  8690. function warnNoop(publicInstance, callerName) {
  8691. {
  8692. var _constructor = publicInstance.constructor;
  8693. var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';
  8694. var warningKey = componentName + "." + callerName;
  8695. if (didWarnStateUpdateForUnmountedComponent[warningKey]) {
  8696. return;
  8697. }
  8698. error("Can't call %s on a component that is not yet mounted. " + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);
  8699. didWarnStateUpdateForUnmountedComponent[warningKey] = true;
  8700. }
  8701. }
  8702. /**
  8703. * This is the abstract API for an update queue.
  8704. */
  8705. var ReactNoopUpdateQueue = {
  8706. /**
  8707. * Checks whether or not this composite component is mounted.
  8708. * @param {ReactClass} publicInstance The instance we want to test.
  8709. * @return {boolean} True if mounted, false otherwise.
  8710. * @protected
  8711. * @final
  8712. */
  8713. isMounted: function (publicInstance) {
  8714. return false;
  8715. },
  8716. /**
  8717. * Forces an update. This should only be invoked when it is known with
  8718. * certainty that we are **not** in a DOM transaction.
  8719. *
  8720. * You may want to call this when you know that some deeper aspect of the
  8721. * component's state has changed but `setState` was not called.
  8722. *
  8723. * This will not invoke `shouldComponentUpdate`, but it will invoke
  8724. * `componentWillUpdate` and `componentDidUpdate`.
  8725. *
  8726. * @param {ReactClass} publicInstance The instance that should rerender.
  8727. * @param {?function} callback Called after component is updated.
  8728. * @param {?string} callerName name of the calling function in the public API.
  8729. * @internal
  8730. */
  8731. enqueueForceUpdate: function (publicInstance, callback, callerName) {
  8732. warnNoop(publicInstance, 'forceUpdate');
  8733. },
  8734. /**
  8735. * Replaces all of the state. Always use this or `setState` to mutate state.
  8736. * You should treat `this.state` as immutable.
  8737. *
  8738. * There is no guarantee that `this.state` will be immediately updated, so
  8739. * accessing `this.state` after calling this method may return the old value.
  8740. *
  8741. * @param {ReactClass} publicInstance The instance that should rerender.
  8742. * @param {object} completeState Next state.
  8743. * @param {?function} callback Called after component is updated.
  8744. * @param {?string} callerName name of the calling function in the public API.
  8745. * @internal
  8746. */
  8747. enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {
  8748. warnNoop(publicInstance, 'replaceState');
  8749. },
  8750. /**
  8751. * Sets a subset of the state. This only exists because _pendingState is
  8752. * internal. This provides a merging strategy that is not available to deep
  8753. * properties which is confusing. TODO: Expose pendingState or don't use it
  8754. * during the merge.
  8755. *
  8756. * @param {ReactClass} publicInstance The instance that should rerender.
  8757. * @param {object} partialState Next partial state to be merged with state.
  8758. * @param {?function} callback Called after component is updated.
  8759. * @param {?string} Name of the calling function in the public API.
  8760. * @internal
  8761. */
  8762. enqueueSetState: function (publicInstance, partialState, callback, callerName) {
  8763. warnNoop(publicInstance, 'setState');
  8764. }
  8765. };
  8766. var assign = Object.assign;
  8767. var emptyObject = {};
  8768. {
  8769. Object.freeze(emptyObject);
  8770. }
  8771. /**
  8772. * Base class helpers for the updating state of a component.
  8773. */
  8774. function Component(props, context, updater) {
  8775. this.props = props;
  8776. this.context = context; // If a component has string refs, we will assign a different object later.
  8777. this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the
  8778. // renderer.
  8779. this.updater = updater || ReactNoopUpdateQueue;
  8780. }
  8781. Component.prototype.isReactComponent = {};
  8782. /**
  8783. * Sets a subset of the state. Always use this to mutate
  8784. * state. You should treat `this.state` as immutable.
  8785. *
  8786. * There is no guarantee that `this.state` will be immediately updated, so
  8787. * accessing `this.state` after calling this method may return the old value.
  8788. *
  8789. * There is no guarantee that calls to `setState` will run synchronously,
  8790. * as they may eventually be batched together. You can provide an optional
  8791. * callback that will be executed when the call to setState is actually
  8792. * completed.
  8793. *
  8794. * When a function is provided to setState, it will be called at some point in
  8795. * the future (not synchronously). It will be called with the up to date
  8796. * component arguments (state, props, context). These values can be different
  8797. * from this.* because your function may be called after receiveProps but before
  8798. * shouldComponentUpdate, and this new state, props, and context will not yet be
  8799. * assigned to this.
  8800. *
  8801. * @param {object|function} partialState Next partial state or function to
  8802. * produce next partial state to be merged with current state.
  8803. * @param {?function} callback Called after state is updated.
  8804. * @final
  8805. * @protected
  8806. */
  8807. Component.prototype.setState = function (partialState, callback) {
  8808. if (typeof partialState !== 'object' && typeof partialState !== 'function' && partialState != null) {
  8809. throw new Error('setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.');
  8810. }
  8811. this.updater.enqueueSetState(this, partialState, callback, 'setState');
  8812. };
  8813. /**
  8814. * Forces an update. This should only be invoked when it is known with
  8815. * certainty that we are **not** in a DOM transaction.
  8816. *
  8817. * You may want to call this when you know that some deeper aspect of the
  8818. * component's state has changed but `setState` was not called.
  8819. *
  8820. * This will not invoke `shouldComponentUpdate`, but it will invoke
  8821. * `componentWillUpdate` and `componentDidUpdate`.
  8822. *
  8823. * @param {?function} callback Called after update is complete.
  8824. * @final
  8825. * @protected
  8826. */
  8827. Component.prototype.forceUpdate = function (callback) {
  8828. this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');
  8829. };
  8830. /**
  8831. * Deprecated APIs. These APIs used to exist on classic React classes but since
  8832. * we would like to deprecate them, we're not going to move them over to this
  8833. * modern base class. Instead, we define a getter that warns if it's accessed.
  8834. */
  8835. {
  8836. var deprecatedAPIs = {
  8837. isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
  8838. replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
  8839. };
  8840. var defineDeprecationWarning = function (methodName, info) {
  8841. Object.defineProperty(Component.prototype, methodName, {
  8842. get: function () {
  8843. warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
  8844. return undefined;
  8845. }
  8846. });
  8847. };
  8848. for (var fnName in deprecatedAPIs) {
  8849. if (deprecatedAPIs.hasOwnProperty(fnName)) {
  8850. defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
  8851. }
  8852. }
  8853. }
  8854. function ComponentDummy() {}
  8855. ComponentDummy.prototype = Component.prototype;
  8856. /**
  8857. * Convenience component with default shallow equality check for sCU.
  8858. */
  8859. function PureComponent(props, context, updater) {
  8860. this.props = props;
  8861. this.context = context; // If a component has string refs, we will assign a different object later.
  8862. this.refs = emptyObject;
  8863. this.updater = updater || ReactNoopUpdateQueue;
  8864. }
  8865. var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();
  8866. pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.
  8867. assign(pureComponentPrototype, Component.prototype);
  8868. pureComponentPrototype.isPureReactComponent = true;
  8869. // an immutable object with a single mutable value
  8870. function createRef() {
  8871. var refObject = {
  8872. current: null
  8873. };
  8874. {
  8875. Object.seal(refObject);
  8876. }
  8877. return refObject;
  8878. }
  8879. var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare
  8880. function isArray(a) {
  8881. return isArrayImpl(a);
  8882. }
  8883. /*
  8884. * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol
  8885. * and Temporal.* types. See https://github.com/facebook/react/pull/22064.
  8886. *
  8887. * The functions in this module will throw an easier-to-understand,
  8888. * easier-to-debug exception with a clear errors message message explaining the
  8889. * problem. (Instead of a confusing exception thrown inside the implementation
  8890. * of the `value` object).
  8891. */
  8892. // $FlowFixMe only called in DEV, so void return is not possible.
  8893. function typeName(value) {
  8894. {
  8895. // toStringTag is needed for namespaced types like Temporal.Instant
  8896. var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;
  8897. var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';
  8898. return type;
  8899. }
  8900. } // $FlowFixMe only called in DEV, so void return is not possible.
  8901. function willCoercionThrow(value) {
  8902. {
  8903. try {
  8904. testStringCoercion(value);
  8905. return false;
  8906. } catch (e) {
  8907. return true;
  8908. }
  8909. }
  8910. }
  8911. function testStringCoercion(value) {
  8912. // If you ended up here by following an exception call stack, here's what's
  8913. // happened: you supplied an object or symbol value to React (as a prop, key,
  8914. // DOM attribute, CSS property, string ref, etc.) and when React tried to
  8915. // coerce it to a string using `'' + value`, an exception was thrown.
  8916. //
  8917. // The most common types that will cause this exception are `Symbol` instances
  8918. // and Temporal objects like `Temporal.Instant`. But any object that has a
  8919. // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this
  8920. // exception. (Library authors do this to prevent users from using built-in
  8921. // numeric operators like `+` or comparison operators like `>=` because custom
  8922. // methods are needed to perform accurate arithmetic or comparison.)
  8923. //
  8924. // To fix the problem, coerce this object or symbol value to a string before
  8925. // passing it to React. The most reliable way is usually `String(value)`.
  8926. //
  8927. // To find which value is throwing, check the browser or debugger console.
  8928. // Before this exception was thrown, there should be `console.error` output
  8929. // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the
  8930. // problem and how that type was used: key, atrribute, input value prop, etc.
  8931. // In most cases, this console output also shows the component and its
  8932. // ancestor components where the exception happened.
  8933. //
  8934. // eslint-disable-next-line react-internal/safe-string-coercion
  8935. return '' + value;
  8936. }
  8937. function checkKeyStringCoercion(value) {
  8938. {
  8939. if (willCoercionThrow(value)) {
  8940. error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));
  8941. return testStringCoercion(value); // throw (to help callers find troubleshooting comments)
  8942. }
  8943. }
  8944. }
  8945. function getWrappedName(outerType, innerType, wrapperName) {
  8946. var displayName = outerType.displayName;
  8947. if (displayName) {
  8948. return displayName;
  8949. }
  8950. var functionName = innerType.displayName || innerType.name || '';
  8951. return functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName;
  8952. } // Keep in sync with react-reconciler/getComponentNameFromFiber
  8953. function getContextName(type) {
  8954. return type.displayName || 'Context';
  8955. } // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.
  8956. function getComponentNameFromType(type) {
  8957. if (type == null) {
  8958. // Host root, text node or just invalid type.
  8959. return null;
  8960. }
  8961. {
  8962. if (typeof type.tag === 'number') {
  8963. error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');
  8964. }
  8965. }
  8966. if (typeof type === 'function') {
  8967. return type.displayName || type.name || null;
  8968. }
  8969. if (typeof type === 'string') {
  8970. return type;
  8971. }
  8972. switch (type) {
  8973. case REACT_FRAGMENT_TYPE:
  8974. return 'Fragment';
  8975. case REACT_PORTAL_TYPE:
  8976. return 'Portal';
  8977. case REACT_PROFILER_TYPE:
  8978. return 'Profiler';
  8979. case REACT_STRICT_MODE_TYPE:
  8980. return 'StrictMode';
  8981. case REACT_SUSPENSE_TYPE:
  8982. return 'Suspense';
  8983. case REACT_SUSPENSE_LIST_TYPE:
  8984. return 'SuspenseList';
  8985. }
  8986. if (typeof type === 'object') {
  8987. switch (type.$$typeof) {
  8988. case REACT_CONTEXT_TYPE:
  8989. var context = type;
  8990. return getContextName(context) + '.Consumer';
  8991. case REACT_PROVIDER_TYPE:
  8992. var provider = type;
  8993. return getContextName(provider._context) + '.Provider';
  8994. case REACT_FORWARD_REF_TYPE:
  8995. return getWrappedName(type, type.render, 'ForwardRef');
  8996. case REACT_MEMO_TYPE:
  8997. var outerName = type.displayName || null;
  8998. if (outerName !== null) {
  8999. return outerName;
  9000. }
  9001. return getComponentNameFromType(type.type) || 'Memo';
  9002. case REACT_LAZY_TYPE:
  9003. {
  9004. var lazyComponent = type;
  9005. var payload = lazyComponent._payload;
  9006. var init = lazyComponent._init;
  9007. try {
  9008. return getComponentNameFromType(init(payload));
  9009. } catch (x) {
  9010. return null;
  9011. }
  9012. }
  9013. // eslint-disable-next-line no-fallthrough
  9014. }
  9015. }
  9016. return null;
  9017. }
  9018. var hasOwnProperty = Object.prototype.hasOwnProperty;
  9019. var RESERVED_PROPS = {
  9020. key: true,
  9021. ref: true,
  9022. __self: true,
  9023. __source: true
  9024. };
  9025. var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;
  9026. {
  9027. didWarnAboutStringRefs = {};
  9028. }
  9029. function hasValidRef(config) {
  9030. {
  9031. if (hasOwnProperty.call(config, 'ref')) {
  9032. var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
  9033. if (getter && getter.isReactWarning) {
  9034. return false;
  9035. }
  9036. }
  9037. }
  9038. return config.ref !== undefined;
  9039. }
  9040. function hasValidKey(config) {
  9041. {
  9042. if (hasOwnProperty.call(config, 'key')) {
  9043. var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
  9044. if (getter && getter.isReactWarning) {
  9045. return false;
  9046. }
  9047. }
  9048. }
  9049. return config.key !== undefined;
  9050. }
  9051. function defineKeyPropWarningGetter(props, displayName) {
  9052. var warnAboutAccessingKey = function () {
  9053. {
  9054. if (!specialPropKeyWarningShown) {
  9055. specialPropKeyWarningShown = true;
  9056. error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
  9057. }
  9058. }
  9059. };
  9060. warnAboutAccessingKey.isReactWarning = true;
  9061. Object.defineProperty(props, 'key', {
  9062. get: warnAboutAccessingKey,
  9063. configurable: true
  9064. });
  9065. }
  9066. function defineRefPropWarningGetter(props, displayName) {
  9067. var warnAboutAccessingRef = function () {
  9068. {
  9069. if (!specialPropRefWarningShown) {
  9070. specialPropRefWarningShown = true;
  9071. error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
  9072. }
  9073. }
  9074. };
  9075. warnAboutAccessingRef.isReactWarning = true;
  9076. Object.defineProperty(props, 'ref', {
  9077. get: warnAboutAccessingRef,
  9078. configurable: true
  9079. });
  9080. }
  9081. function warnIfStringRefCannotBeAutoConverted(config) {
  9082. {
  9083. if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {
  9084. var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);
  9085. if (!didWarnAboutStringRefs[componentName]) {
  9086. error('Component "%s" contains the string ref "%s". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);
  9087. didWarnAboutStringRefs[componentName] = true;
  9088. }
  9089. }
  9090. }
  9091. }
  9092. /**
  9093. * Factory method to create a new React element. This no longer adheres to
  9094. * the class pattern, so do not use new to call it. Also, instanceof check
  9095. * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
  9096. * if something is a React Element.
  9097. *
  9098. * @param {*} type
  9099. * @param {*} props
  9100. * @param {*} key
  9101. * @param {string|object} ref
  9102. * @param {*} owner
  9103. * @param {*} self A *temporary* helper to detect places where `this` is
  9104. * different from the `owner` when React.createElement is called, so that we
  9105. * can warn. We want to get rid of owner and replace string `ref`s with arrow
  9106. * functions, and as long as `this` and owner are the same, there will be no
  9107. * change in behavior.
  9108. * @param {*} source An annotation object (added by a transpiler or otherwise)
  9109. * indicating filename, line number, and/or other information.
  9110. * @internal
  9111. */
  9112. var ReactElement = function (type, key, ref, self, source, owner, props) {
  9113. var element = {
  9114. // This tag allows us to uniquely identify this as a React Element
  9115. $$typeof: REACT_ELEMENT_TYPE,
  9116. // Built-in properties that belong on the element
  9117. type: type,
  9118. key: key,
  9119. ref: ref,
  9120. props: props,
  9121. // Record the component responsible for creating this element.
  9122. _owner: owner
  9123. };
  9124. {
  9125. // The validation flag is currently mutative. We put it on
  9126. // an external backing store so that we can freeze the whole object.
  9127. // This can be replaced with a WeakMap once they are implemented in
  9128. // commonly used development environments.
  9129. element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
  9130. // the validation flag non-enumerable (where possible, which should
  9131. // include every environment we run tests in), so the test framework
  9132. // ignores it.
  9133. Object.defineProperty(element._store, 'validated', {
  9134. configurable: false,
  9135. enumerable: false,
  9136. writable: true,
  9137. value: false
  9138. }); // self and source are DEV only properties.
  9139. Object.defineProperty(element, '_self', {
  9140. configurable: false,
  9141. enumerable: false,
  9142. writable: false,
  9143. value: self
  9144. }); // Two elements created in two different places should be considered
  9145. // equal for testing purposes and therefore we hide it from enumeration.
  9146. Object.defineProperty(element, '_source', {
  9147. configurable: false,
  9148. enumerable: false,
  9149. writable: false,
  9150. value: source
  9151. });
  9152. if (Object.freeze) {
  9153. Object.freeze(element.props);
  9154. Object.freeze(element);
  9155. }
  9156. }
  9157. return element;
  9158. };
  9159. /**
  9160. * Create and return a new ReactElement of the given type.
  9161. * See https://reactjs.org/docs/react-api.html#createelement
  9162. */
  9163. function createElement(type, config, children) {
  9164. var propName; // Reserved names are extracted
  9165. var props = {};
  9166. var key = null;
  9167. var ref = null;
  9168. var self = null;
  9169. var source = null;
  9170. if (config != null) {
  9171. if (hasValidRef(config)) {
  9172. ref = config.ref;
  9173. {
  9174. warnIfStringRefCannotBeAutoConverted(config);
  9175. }
  9176. }
  9177. if (hasValidKey(config)) {
  9178. {
  9179. checkKeyStringCoercion(config.key);
  9180. }
  9181. key = '' + config.key;
  9182. }
  9183. self = config.__self === undefined ? null : config.__self;
  9184. source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object
  9185. for (propName in config) {
  9186. if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
  9187. props[propName] = config[propName];
  9188. }
  9189. }
  9190. } // Children can be more than one argument, and those are transferred onto
  9191. // the newly allocated props object.
  9192. var childrenLength = arguments.length - 2;
  9193. if (childrenLength === 1) {
  9194. props.children = children;
  9195. } else if (childrenLength > 1) {
  9196. var childArray = Array(childrenLength);
  9197. for (var i = 0; i < childrenLength; i++) {
  9198. childArray[i] = arguments[i + 2];
  9199. }
  9200. {
  9201. if (Object.freeze) {
  9202. Object.freeze(childArray);
  9203. }
  9204. }
  9205. props.children = childArray;
  9206. } // Resolve default props
  9207. if (type && type.defaultProps) {
  9208. var defaultProps = type.defaultProps;
  9209. for (propName in defaultProps) {
  9210. if (props[propName] === undefined) {
  9211. props[propName] = defaultProps[propName];
  9212. }
  9213. }
  9214. }
  9215. {
  9216. if (key || ref) {
  9217. var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
  9218. if (key) {
  9219. defineKeyPropWarningGetter(props, displayName);
  9220. }
  9221. if (ref) {
  9222. defineRefPropWarningGetter(props, displayName);
  9223. }
  9224. }
  9225. }
  9226. return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
  9227. }
  9228. function cloneAndReplaceKey(oldElement, newKey) {
  9229. var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);
  9230. return newElement;
  9231. }
  9232. /**
  9233. * Clone and return a new ReactElement using element as the starting point.
  9234. * See https://reactjs.org/docs/react-api.html#cloneelement
  9235. */
  9236. function cloneElement(element, config, children) {
  9237. if (element === null || element === undefined) {
  9238. throw new Error("React.cloneElement(...): The argument must be a React element, but you passed " + element + ".");
  9239. }
  9240. var propName; // Original props are copied
  9241. var props = assign({}, element.props); // Reserved names are extracted
  9242. var key = element.key;
  9243. var ref = element.ref; // Self is preserved since the owner is preserved.
  9244. var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a
  9245. // transpiler, and the original source is probably a better indicator of the
  9246. // true owner.
  9247. var source = element._source; // Owner will be preserved, unless ref is overridden
  9248. var owner = element._owner;
  9249. if (config != null) {
  9250. if (hasValidRef(config)) {
  9251. // Silently steal the ref from the parent.
  9252. ref = config.ref;
  9253. owner = ReactCurrentOwner.current;
  9254. }
  9255. if (hasValidKey(config)) {
  9256. {
  9257. checkKeyStringCoercion(config.key);
  9258. }
  9259. key = '' + config.key;
  9260. } // Remaining properties override existing props
  9261. var defaultProps;
  9262. if (element.type && element.type.defaultProps) {
  9263. defaultProps = element.type.defaultProps;
  9264. }
  9265. for (propName in config) {
  9266. if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
  9267. if (config[propName] === undefined && defaultProps !== undefined) {
  9268. // Resolve default props
  9269. props[propName] = defaultProps[propName];
  9270. } else {
  9271. props[propName] = config[propName];
  9272. }
  9273. }
  9274. }
  9275. } // Children can be more than one argument, and those are transferred onto
  9276. // the newly allocated props object.
  9277. var childrenLength = arguments.length - 2;
  9278. if (childrenLength === 1) {
  9279. props.children = children;
  9280. } else if (childrenLength > 1) {
  9281. var childArray = Array(childrenLength);
  9282. for (var i = 0; i < childrenLength; i++) {
  9283. childArray[i] = arguments[i + 2];
  9284. }
  9285. props.children = childArray;
  9286. }
  9287. return ReactElement(element.type, key, ref, self, source, owner, props);
  9288. }
  9289. /**
  9290. * Verifies the object is a ReactElement.
  9291. * See https://reactjs.org/docs/react-api.html#isvalidelement
  9292. * @param {?object} object
  9293. * @return {boolean} True if `object` is a ReactElement.
  9294. * @final
  9295. */
  9296. function isValidElement(object) {
  9297. return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
  9298. }
  9299. var SEPARATOR = '.';
  9300. var SUBSEPARATOR = ':';
  9301. /**
  9302. * Escape and wrap key so it is safe to use as a reactid
  9303. *
  9304. * @param {string} key to be escaped.
  9305. * @return {string} the escaped key.
  9306. */
  9307. function escape(key) {
  9308. var escapeRegex = /[=:]/g;
  9309. var escaperLookup = {
  9310. '=': '=0',
  9311. ':': '=2'
  9312. };
  9313. var escapedString = key.replace(escapeRegex, function (match) {
  9314. return escaperLookup[match];
  9315. });
  9316. return '$' + escapedString;
  9317. }
  9318. /**
  9319. * TODO: Test that a single child and an array with one item have the same key
  9320. * pattern.
  9321. */
  9322. var didWarnAboutMaps = false;
  9323. var userProvidedKeyEscapeRegex = /\/+/g;
  9324. function escapeUserProvidedKey(text) {
  9325. return text.replace(userProvidedKeyEscapeRegex, '$&/');
  9326. }
  9327. /**
  9328. * Generate a key string that identifies a element within a set.
  9329. *
  9330. * @param {*} element A element that could contain a manual key.
  9331. * @param {number} index Index that is used if a manual key is not provided.
  9332. * @return {string}
  9333. */
  9334. function getElementKey(element, index) {
  9335. // Do some typechecking here since we call this blindly. We want to ensure
  9336. // that we don't block potential future ES APIs.
  9337. if (typeof element === 'object' && element !== null && element.key != null) {
  9338. // Explicit key
  9339. {
  9340. checkKeyStringCoercion(element.key);
  9341. }
  9342. return escape('' + element.key);
  9343. } // Implicit key determined by the index in the set
  9344. return index.toString(36);
  9345. }
  9346. function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
  9347. var type = typeof children;
  9348. if (type === 'undefined' || type === 'boolean') {
  9349. // All of the above are perceived as null.
  9350. children = null;
  9351. }
  9352. var invokeCallback = false;
  9353. if (children === null) {
  9354. invokeCallback = true;
  9355. } else {
  9356. switch (type) {
  9357. case 'string':
  9358. case 'number':
  9359. invokeCallback = true;
  9360. break;
  9361. case 'object':
  9362. switch (children.$$typeof) {
  9363. case REACT_ELEMENT_TYPE:
  9364. case REACT_PORTAL_TYPE:
  9365. invokeCallback = true;
  9366. }
  9367. }
  9368. }
  9369. if (invokeCallback) {
  9370. var _child = children;
  9371. var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array
  9372. // so that it's consistent if the number of children grows:
  9373. var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;
  9374. if (isArray(mappedChild)) {
  9375. var escapedChildKey = '';
  9376. if (childKey != null) {
  9377. escapedChildKey = escapeUserProvidedKey(childKey) + '/';
  9378. }
  9379. mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {
  9380. return c;
  9381. });
  9382. } else if (mappedChild != null) {
  9383. if (isValidElement(mappedChild)) {
  9384. {
  9385. // The `if` statement here prevents auto-disabling of the safe
  9386. // coercion ESLint rule, so we must manually disable it below.
  9387. // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key
  9388. if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {
  9389. checkKeyStringCoercion(mappedChild.key);
  9390. }
  9391. }
  9392. mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as
  9393. // traverseAllChildren used to do for objects as children
  9394. escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key
  9395. mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number
  9396. // eslint-disable-next-line react-internal/safe-string-coercion
  9397. escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);
  9398. }
  9399. array.push(mappedChild);
  9400. }
  9401. return 1;
  9402. }
  9403. var child;
  9404. var nextName;
  9405. var subtreeCount = 0; // Count of children found in the current subtree.
  9406. var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;
  9407. if (isArray(children)) {
  9408. for (var i = 0; i < children.length; i++) {
  9409. child = children[i];
  9410. nextName = nextNamePrefix + getElementKey(child, i);
  9411. subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);
  9412. }
  9413. } else {
  9414. var iteratorFn = getIteratorFn(children);
  9415. if (typeof iteratorFn === 'function') {
  9416. var iterableChildren = children;
  9417. {
  9418. // Warn about using Maps as children
  9419. if (iteratorFn === iterableChildren.entries) {
  9420. if (!didWarnAboutMaps) {
  9421. warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');
  9422. }
  9423. didWarnAboutMaps = true;
  9424. }
  9425. }
  9426. var iterator = iteratorFn.call(iterableChildren);
  9427. var step;
  9428. var ii = 0;
  9429. while (!(step = iterator.next()).done) {
  9430. child = step.value;
  9431. nextName = nextNamePrefix + getElementKey(child, ii++);
  9432. subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);
  9433. }
  9434. } else if (type === 'object') {
  9435. // eslint-disable-next-line react-internal/safe-string-coercion
  9436. var childrenString = String(children);
  9437. throw new Error("Objects are not valid as a React child (found: " + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + "). " + 'If you meant to render a collection of children, use an array ' + 'instead.');
  9438. }
  9439. }
  9440. return subtreeCount;
  9441. }
  9442. /**
  9443. * Maps children that are typically specified as `props.children`.
  9444. *
  9445. * See https://reactjs.org/docs/react-api.html#reactchildrenmap
  9446. *
  9447. * The provided mapFunction(child, index) will be called for each
  9448. * leaf child.
  9449. *
  9450. * @param {?*} children Children tree container.
  9451. * @param {function(*, int)} func The map function.
  9452. * @param {*} context Context for mapFunction.
  9453. * @return {object} Object containing the ordered map of results.
  9454. */
  9455. function mapChildren(children, func, context) {
  9456. if (children == null) {
  9457. return children;
  9458. }
  9459. var result = [];
  9460. var count = 0;
  9461. mapIntoArray(children, result, '', '', function (child) {
  9462. return func.call(context, child, count++);
  9463. });
  9464. return result;
  9465. }
  9466. /**
  9467. * Count the number of children that are typically specified as
  9468. * `props.children`.
  9469. *
  9470. * See https://reactjs.org/docs/react-api.html#reactchildrencount
  9471. *
  9472. * @param {?*} children Children tree container.
  9473. * @return {number} The number of children.
  9474. */
  9475. function countChildren(children) {
  9476. var n = 0;
  9477. mapChildren(children, function () {
  9478. n++; // Don't return anything
  9479. });
  9480. return n;
  9481. }
  9482. /**
  9483. * Iterates through children that are typically specified as `props.children`.
  9484. *
  9485. * See https://reactjs.org/docs/react-api.html#reactchildrenforeach
  9486. *
  9487. * The provided forEachFunc(child, index) will be called for each
  9488. * leaf child.
  9489. *
  9490. * @param {?*} children Children tree container.
  9491. * @param {function(*, int)} forEachFunc
  9492. * @param {*} forEachContext Context for forEachContext.
  9493. */
  9494. function forEachChildren(children, forEachFunc, forEachContext) {
  9495. mapChildren(children, function () {
  9496. forEachFunc.apply(this, arguments); // Don't return anything.
  9497. }, forEachContext);
  9498. }
  9499. /**
  9500. * Flatten a children object (typically specified as `props.children`) and
  9501. * return an array with appropriately re-keyed children.
  9502. *
  9503. * See https://reactjs.org/docs/react-api.html#reactchildrentoarray
  9504. */
  9505. function toArray(children) {
  9506. return mapChildren(children, function (child) {
  9507. return child;
  9508. }) || [];
  9509. }
  9510. /**
  9511. * Returns the first child in a collection of children and verifies that there
  9512. * is only one child in the collection.
  9513. *
  9514. * See https://reactjs.org/docs/react-api.html#reactchildrenonly
  9515. *
  9516. * The current implementation of this function assumes that a single child gets
  9517. * passed without a wrapper, but the purpose of this helper function is to
  9518. * abstract away the particular structure of children.
  9519. *
  9520. * @param {?object} children Child collection structure.
  9521. * @return {ReactElement} The first and only `ReactElement` contained in the
  9522. * structure.
  9523. */
  9524. function onlyChild(children) {
  9525. if (!isValidElement(children)) {
  9526. throw new Error('React.Children.only expected to receive a single React element child.');
  9527. }
  9528. return children;
  9529. }
  9530. function createContext(defaultValue) {
  9531. // TODO: Second argument used to be an optional `calculateChangedBits`
  9532. // function. Warn to reserve for future use?
  9533. var context = {
  9534. $$typeof: REACT_CONTEXT_TYPE,
  9535. // As a workaround to support multiple concurrent renderers, we categorize
  9536. // some renderers as primary and others as secondary. We only expect
  9537. // there to be two concurrent renderers at most: React Native (primary) and
  9538. // Fabric (secondary); React DOM (primary) and React ART (secondary).
  9539. // Secondary renderers store their context values on separate fields.
  9540. _currentValue: defaultValue,
  9541. _currentValue2: defaultValue,
  9542. // Used to track how many concurrent renderers this context currently
  9543. // supports within in a single renderer. Such as parallel server rendering.
  9544. _threadCount: 0,
  9545. // These are circular
  9546. Provider: null,
  9547. Consumer: null,
  9548. // Add these to use same hidden class in VM as ServerContext
  9549. _defaultValue: null,
  9550. _globalName: null
  9551. };
  9552. context.Provider = {
  9553. $$typeof: REACT_PROVIDER_TYPE,
  9554. _context: context
  9555. };
  9556. var hasWarnedAboutUsingNestedContextConsumers = false;
  9557. var hasWarnedAboutUsingConsumerProvider = false;
  9558. var hasWarnedAboutDisplayNameOnConsumer = false;
  9559. {
  9560. // A separate object, but proxies back to the original context object for
  9561. // backwards compatibility. It has a different $$typeof, so we can properly
  9562. // warn for the incorrect usage of Context as a Consumer.
  9563. var Consumer = {
  9564. $$typeof: REACT_CONTEXT_TYPE,
  9565. _context: context
  9566. }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here
  9567. Object.defineProperties(Consumer, {
  9568. Provider: {
  9569. get: function () {
  9570. if (!hasWarnedAboutUsingConsumerProvider) {
  9571. hasWarnedAboutUsingConsumerProvider = true;
  9572. error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');
  9573. }
  9574. return context.Provider;
  9575. },
  9576. set: function (_Provider) {
  9577. context.Provider = _Provider;
  9578. }
  9579. },
  9580. _currentValue: {
  9581. get: function () {
  9582. return context._currentValue;
  9583. },
  9584. set: function (_currentValue) {
  9585. context._currentValue = _currentValue;
  9586. }
  9587. },
  9588. _currentValue2: {
  9589. get: function () {
  9590. return context._currentValue2;
  9591. },
  9592. set: function (_currentValue2) {
  9593. context._currentValue2 = _currentValue2;
  9594. }
  9595. },
  9596. _threadCount: {
  9597. get: function () {
  9598. return context._threadCount;
  9599. },
  9600. set: function (_threadCount) {
  9601. context._threadCount = _threadCount;
  9602. }
  9603. },
  9604. Consumer: {
  9605. get: function () {
  9606. if (!hasWarnedAboutUsingNestedContextConsumers) {
  9607. hasWarnedAboutUsingNestedContextConsumers = true;
  9608. error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');
  9609. }
  9610. return context.Consumer;
  9611. }
  9612. },
  9613. displayName: {
  9614. get: function () {
  9615. return context.displayName;
  9616. },
  9617. set: function (displayName) {
  9618. if (!hasWarnedAboutDisplayNameOnConsumer) {
  9619. warn('Setting `displayName` on Context.Consumer has no effect. ' + "You should set it directly on the context with Context.displayName = '%s'.", displayName);
  9620. hasWarnedAboutDisplayNameOnConsumer = true;
  9621. }
  9622. }
  9623. }
  9624. }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty
  9625. context.Consumer = Consumer;
  9626. }
  9627. {
  9628. context._currentRenderer = null;
  9629. context._currentRenderer2 = null;
  9630. }
  9631. return context;
  9632. }
  9633. var Uninitialized = -1;
  9634. var Pending = 0;
  9635. var Resolved = 1;
  9636. var Rejected = 2;
  9637. function lazyInitializer(payload) {
  9638. if (payload._status === Uninitialized) {
  9639. var ctor = payload._result;
  9640. var thenable = ctor(); // Transition to the next state.
  9641. // This might throw either because it's missing or throws. If so, we treat it
  9642. // as still uninitialized and try again next time. Which is the same as what
  9643. // happens if the ctor or any wrappers processing the ctor throws. This might
  9644. // end up fixing it if the resolution was a concurrency bug.
  9645. thenable.then(function (moduleObject) {
  9646. if (payload._status === Pending || payload._status === Uninitialized) {
  9647. // Transition to the next state.
  9648. var resolved = payload;
  9649. resolved._status = Resolved;
  9650. resolved._result = moduleObject;
  9651. }
  9652. }, function (error) {
  9653. if (payload._status === Pending || payload._status === Uninitialized) {
  9654. // Transition to the next state.
  9655. var rejected = payload;
  9656. rejected._status = Rejected;
  9657. rejected._result = error;
  9658. }
  9659. });
  9660. if (payload._status === Uninitialized) {
  9661. // In case, we're still uninitialized, then we're waiting for the thenable
  9662. // to resolve. Set it as pending in the meantime.
  9663. var pending = payload;
  9664. pending._status = Pending;
  9665. pending._result = thenable;
  9666. }
  9667. }
  9668. if (payload._status === Resolved) {
  9669. var moduleObject = payload._result;
  9670. {
  9671. if (moduleObject === undefined) {
  9672. error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\n\nYour code should look like: \n ' + // Break up imports to avoid accidentally parsing them as dependencies.
  9673. 'const MyComponent = lazy(() => imp' + "ort('./MyComponent'))\n\n" + 'Did you accidentally put curly braces around the import?', moduleObject);
  9674. }
  9675. }
  9676. {
  9677. if (!('default' in moduleObject)) {
  9678. error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\n\nYour code should look like: \n ' + // Break up imports to avoid accidentally parsing them as dependencies.
  9679. 'const MyComponent = lazy(() => imp' + "ort('./MyComponent'))", moduleObject);
  9680. }
  9681. }
  9682. return moduleObject.default;
  9683. } else {
  9684. throw payload._result;
  9685. }
  9686. }
  9687. function lazy(ctor) {
  9688. var payload = {
  9689. // We use these fields to store the result.
  9690. _status: Uninitialized,
  9691. _result: ctor
  9692. };
  9693. var lazyType = {
  9694. $$typeof: REACT_LAZY_TYPE,
  9695. _payload: payload,
  9696. _init: lazyInitializer
  9697. };
  9698. {
  9699. // In production, this would just set it on the object.
  9700. var defaultProps;
  9701. var propTypes; // $FlowFixMe
  9702. Object.defineProperties(lazyType, {
  9703. defaultProps: {
  9704. configurable: true,
  9705. get: function () {
  9706. return defaultProps;
  9707. },
  9708. set: function (newDefaultProps) {
  9709. error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');
  9710. defaultProps = newDefaultProps; // Match production behavior more closely:
  9711. // $FlowFixMe
  9712. Object.defineProperty(lazyType, 'defaultProps', {
  9713. enumerable: true
  9714. });
  9715. }
  9716. },
  9717. propTypes: {
  9718. configurable: true,
  9719. get: function () {
  9720. return propTypes;
  9721. },
  9722. set: function (newPropTypes) {
  9723. error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');
  9724. propTypes = newPropTypes; // Match production behavior more closely:
  9725. // $FlowFixMe
  9726. Object.defineProperty(lazyType, 'propTypes', {
  9727. enumerable: true
  9728. });
  9729. }
  9730. }
  9731. });
  9732. }
  9733. return lazyType;
  9734. }
  9735. function forwardRef(render) {
  9736. {
  9737. if (render != null && render.$$typeof === REACT_MEMO_TYPE) {
  9738. error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');
  9739. } else if (typeof render !== 'function') {
  9740. error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);
  9741. } else {
  9742. if (render.length !== 0 && render.length !== 2) {
  9743. error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');
  9744. }
  9745. }
  9746. if (render != null) {
  9747. if (render.defaultProps != null || render.propTypes != null) {
  9748. error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');
  9749. }
  9750. }
  9751. }
  9752. var elementType = {
  9753. $$typeof: REACT_FORWARD_REF_TYPE,
  9754. render: render
  9755. };
  9756. {
  9757. var ownName;
  9758. Object.defineProperty(elementType, 'displayName', {
  9759. enumerable: false,
  9760. configurable: true,
  9761. get: function () {
  9762. return ownName;
  9763. },
  9764. set: function (name) {
  9765. ownName = name; // The inner component shouldn't inherit this display name in most cases,
  9766. // because the component may be used elsewhere.
  9767. // But it's nice for anonymous functions to inherit the name,
  9768. // so that our component-stack generation logic will display their frames.
  9769. // An anonymous function generally suggests a pattern like:
  9770. // React.forwardRef((props, ref) => {...});
  9771. // This kind of inner function is not used elsewhere so the side effect is okay.
  9772. if (!render.name && !render.displayName) {
  9773. render.displayName = name;
  9774. }
  9775. }
  9776. });
  9777. }
  9778. return elementType;
  9779. }
  9780. var REACT_MODULE_REFERENCE;
  9781. {
  9782. REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');
  9783. }
  9784. function isValidElementType(type) {
  9785. if (typeof type === 'string' || typeof type === 'function') {
  9786. return true;
  9787. } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
  9788. if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {
  9789. return true;
  9790. }
  9791. if (typeof type === 'object' && type !== null) {
  9792. if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object
  9793. // types supported by any Flight configuration anywhere since
  9794. // we don't know which Flight build this will end up being used
  9795. // with.
  9796. type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {
  9797. return true;
  9798. }
  9799. }
  9800. return false;
  9801. }
  9802. function memo(type, compare) {
  9803. {
  9804. if (!isValidElementType(type)) {
  9805. error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);
  9806. }
  9807. }
  9808. var elementType = {
  9809. $$typeof: REACT_MEMO_TYPE,
  9810. type: type,
  9811. compare: compare === undefined ? null : compare
  9812. };
  9813. {
  9814. var ownName;
  9815. Object.defineProperty(elementType, 'displayName', {
  9816. enumerable: false,
  9817. configurable: true,
  9818. get: function () {
  9819. return ownName;
  9820. },
  9821. set: function (name) {
  9822. ownName = name; // The inner component shouldn't inherit this display name in most cases,
  9823. // because the component may be used elsewhere.
  9824. // But it's nice for anonymous functions to inherit the name,
  9825. // so that our component-stack generation logic will display their frames.
  9826. // An anonymous function generally suggests a pattern like:
  9827. // React.memo((props) => {...});
  9828. // This kind of inner function is not used elsewhere so the side effect is okay.
  9829. if (!type.name && !type.displayName) {
  9830. type.displayName = name;
  9831. }
  9832. }
  9833. });
  9834. }
  9835. return elementType;
  9836. }
  9837. function resolveDispatcher() {
  9838. var dispatcher = ReactCurrentDispatcher.current;
  9839. {
  9840. if (dispatcher === null) {
  9841. error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\n' + '2. You might be breaking the Rules of Hooks\n' + '3. You might have more than one copy of React in the same app\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');
  9842. }
  9843. } // Will result in a null access error if accessed outside render phase. We
  9844. // intentionally don't throw our own error because this is in a hot path.
  9845. // Also helps ensure this is inlined.
  9846. return dispatcher;
  9847. }
  9848. function useContext(Context) {
  9849. var dispatcher = resolveDispatcher();
  9850. {
  9851. // TODO: add a more generic warning for invalid values.
  9852. if (Context._context !== undefined) {
  9853. var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs
  9854. // and nobody should be using this in existing code.
  9855. if (realContext.Consumer === Context) {
  9856. error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');
  9857. } else if (realContext.Provider === Context) {
  9858. error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');
  9859. }
  9860. }
  9861. }
  9862. return dispatcher.useContext(Context);
  9863. }
  9864. function useState(initialState) {
  9865. var dispatcher = resolveDispatcher();
  9866. return dispatcher.useState(initialState);
  9867. }
  9868. function useReducer(reducer, initialArg, init) {
  9869. var dispatcher = resolveDispatcher();
  9870. return dispatcher.useReducer(reducer, initialArg, init);
  9871. }
  9872. function useRef(initialValue) {
  9873. var dispatcher = resolveDispatcher();
  9874. return dispatcher.useRef(initialValue);
  9875. }
  9876. function useEffect(create, deps) {
  9877. var dispatcher = resolveDispatcher();
  9878. return dispatcher.useEffect(create, deps);
  9879. }
  9880. function useInsertionEffect(create, deps) {
  9881. var dispatcher = resolveDispatcher();
  9882. return dispatcher.useInsertionEffect(create, deps);
  9883. }
  9884. function useLayoutEffect(create, deps) {
  9885. var dispatcher = resolveDispatcher();
  9886. return dispatcher.useLayoutEffect(create, deps);
  9887. }
  9888. function useCallback(callback, deps) {
  9889. var dispatcher = resolveDispatcher();
  9890. return dispatcher.useCallback(callback, deps);
  9891. }
  9892. function useMemo(create, deps) {
  9893. var dispatcher = resolveDispatcher();
  9894. return dispatcher.useMemo(create, deps);
  9895. }
  9896. function useImperativeHandle(ref, create, deps) {
  9897. var dispatcher = resolveDispatcher();
  9898. return dispatcher.useImperativeHandle(ref, create, deps);
  9899. }
  9900. function useDebugValue(value, formatterFn) {
  9901. {
  9902. var dispatcher = resolveDispatcher();
  9903. return dispatcher.useDebugValue(value, formatterFn);
  9904. }
  9905. }
  9906. function useTransition() {
  9907. var dispatcher = resolveDispatcher();
  9908. return dispatcher.useTransition();
  9909. }
  9910. function useDeferredValue(value) {
  9911. var dispatcher = resolveDispatcher();
  9912. return dispatcher.useDeferredValue(value);
  9913. }
  9914. function useId() {
  9915. var dispatcher = resolveDispatcher();
  9916. return dispatcher.useId();
  9917. }
  9918. function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
  9919. var dispatcher = resolveDispatcher();
  9920. return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
  9921. }
  9922. // Helpers to patch console.logs to avoid logging during side-effect free
  9923. // replaying on render function. This currently only patches the object
  9924. // lazily which won't cover if the log function was extracted eagerly.
  9925. // We could also eagerly patch the method.
  9926. var disabledDepth = 0;
  9927. var prevLog;
  9928. var prevInfo;
  9929. var prevWarn;
  9930. var prevError;
  9931. var prevGroup;
  9932. var prevGroupCollapsed;
  9933. var prevGroupEnd;
  9934. function disabledLog() {}
  9935. disabledLog.__reactDisabledLog = true;
  9936. function disableLogs() {
  9937. {
  9938. if (disabledDepth === 0) {
  9939. /* eslint-disable react-internal/no-production-logging */
  9940. prevLog = console.log;
  9941. prevInfo = console.info;
  9942. prevWarn = console.warn;
  9943. prevError = console.error;
  9944. prevGroup = console.group;
  9945. prevGroupCollapsed = console.groupCollapsed;
  9946. prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099
  9947. var props = {
  9948. configurable: true,
  9949. enumerable: true,
  9950. value: disabledLog,
  9951. writable: true
  9952. }; // $FlowFixMe Flow thinks console is immutable.
  9953. Object.defineProperties(console, {
  9954. info: props,
  9955. log: props,
  9956. warn: props,
  9957. error: props,
  9958. group: props,
  9959. groupCollapsed: props,
  9960. groupEnd: props
  9961. });
  9962. /* eslint-enable react-internal/no-production-logging */
  9963. }
  9964. disabledDepth++;
  9965. }
  9966. }
  9967. function reenableLogs() {
  9968. {
  9969. disabledDepth--;
  9970. if (disabledDepth === 0) {
  9971. /* eslint-disable react-internal/no-production-logging */
  9972. var props = {
  9973. configurable: true,
  9974. enumerable: true,
  9975. writable: true
  9976. }; // $FlowFixMe Flow thinks console is immutable.
  9977. Object.defineProperties(console, {
  9978. log: assign({}, props, {
  9979. value: prevLog
  9980. }),
  9981. info: assign({}, props, {
  9982. value: prevInfo
  9983. }),
  9984. warn: assign({}, props, {
  9985. value: prevWarn
  9986. }),
  9987. error: assign({}, props, {
  9988. value: prevError
  9989. }),
  9990. group: assign({}, props, {
  9991. value: prevGroup
  9992. }),
  9993. groupCollapsed: assign({}, props, {
  9994. value: prevGroupCollapsed
  9995. }),
  9996. groupEnd: assign({}, props, {
  9997. value: prevGroupEnd
  9998. })
  9999. });
  10000. /* eslint-enable react-internal/no-production-logging */
  10001. }
  10002. if (disabledDepth < 0) {
  10003. error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');
  10004. }
  10005. }
  10006. }
  10007. var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;
  10008. var prefix;
  10009. function describeBuiltInComponentFrame(name, source, ownerFn) {
  10010. {
  10011. if (prefix === undefined) {
  10012. // Extract the VM specific prefix used by each line.
  10013. try {
  10014. throw Error();
  10015. } catch (x) {
  10016. var match = x.stack.trim().match(/\n( *(at )?)/);
  10017. prefix = match && match[1] || '';
  10018. }
  10019. } // We use the prefix to ensure our stacks line up with native stack frames.
  10020. return '\n' + prefix + name;
  10021. }
  10022. }
  10023. var reentry = false;
  10024. var componentFrameCache;
  10025. {
  10026. var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;
  10027. componentFrameCache = new PossiblyWeakMap();
  10028. }
  10029. function describeNativeComponentFrame(fn, construct) {
  10030. // If something asked for a stack inside a fake render, it should get ignored.
  10031. if ( !fn || reentry) {
  10032. return '';
  10033. }
  10034. {
  10035. var frame = componentFrameCache.get(fn);
  10036. if (frame !== undefined) {
  10037. return frame;
  10038. }
  10039. }
  10040. var control;
  10041. reentry = true;
  10042. var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.
  10043. Error.prepareStackTrace = undefined;
  10044. var previousDispatcher;
  10045. {
  10046. previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function
  10047. // for warnings.
  10048. ReactCurrentDispatcher$1.current = null;
  10049. disableLogs();
  10050. }
  10051. try {
  10052. // This should throw.
  10053. if (construct) {
  10054. // Something should be setting the props in the constructor.
  10055. var Fake = function () {
  10056. throw Error();
  10057. }; // $FlowFixMe
  10058. Object.defineProperty(Fake.prototype, 'props', {
  10059. set: function () {
  10060. // We use a throwing setter instead of frozen or non-writable props
  10061. // because that won't throw in a non-strict mode function.
  10062. throw Error();
  10063. }
  10064. });
  10065. if (typeof Reflect === 'object' && Reflect.construct) {
  10066. // We construct a different control for this case to include any extra
  10067. // frames added by the construct call.
  10068. try {
  10069. Reflect.construct(Fake, []);
  10070. } catch (x) {
  10071. control = x;
  10072. }
  10073. Reflect.construct(fn, [], Fake);
  10074. } else {
  10075. try {
  10076. Fake.call();
  10077. } catch (x) {
  10078. control = x;
  10079. }
  10080. fn.call(Fake.prototype);
  10081. }
  10082. } else {
  10083. try {
  10084. throw Error();
  10085. } catch (x) {
  10086. control = x;
  10087. }
  10088. fn();
  10089. }
  10090. } catch (sample) {
  10091. // This is inlined manually because closure doesn't do it for us.
  10092. if (sample && control && typeof sample.stack === 'string') {
  10093. // This extracts the first frame from the sample that isn't also in the control.
  10094. // Skipping one frame that we assume is the frame that calls the two.
  10095. var sampleLines = sample.stack.split('\n');
  10096. var controlLines = control.stack.split('\n');
  10097. var s = sampleLines.length - 1;
  10098. var c = controlLines.length - 1;
  10099. while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {
  10100. // We expect at least one stack frame to be shared.
  10101. // Typically this will be the root most one. However, stack frames may be
  10102. // cut off due to maximum stack limits. In this case, one maybe cut off
  10103. // earlier than the other. We assume that the sample is longer or the same
  10104. // and there for cut off earlier. So we should find the root most frame in
  10105. // the sample somewhere in the control.
  10106. c--;
  10107. }
  10108. for (; s >= 1 && c >= 0; s--, c--) {
  10109. // Next we find the first one that isn't the same which should be the
  10110. // frame that called our sample function and the control.
  10111. if (sampleLines[s] !== controlLines[c]) {
  10112. // In V8, the first line is describing the message but other VMs don't.
  10113. // If we're about to return the first line, and the control is also on the same
  10114. // line, that's a pretty good indicator that our sample threw at same line as
  10115. // the control. I.e. before we entered the sample frame. So we ignore this result.
  10116. // This can happen if you passed a class to function component, or non-function.
  10117. if (s !== 1 || c !== 1) {
  10118. do {
  10119. s--;
  10120. c--; // We may still have similar intermediate frames from the construct call.
  10121. // The next one that isn't the same should be our match though.
  10122. if (c < 0 || sampleLines[s] !== controlLines[c]) {
  10123. // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier.
  10124. var _frame = '\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled "<anonymous>"
  10125. // but we have a user-provided "displayName"
  10126. // splice it in to make the stack more readable.
  10127. if (fn.displayName && _frame.includes('<anonymous>')) {
  10128. _frame = _frame.replace('<anonymous>', fn.displayName);
  10129. }
  10130. {
  10131. if (typeof fn === 'function') {
  10132. componentFrameCache.set(fn, _frame);
  10133. }
  10134. } // Return the line we found.
  10135. return _frame;
  10136. }
  10137. } while (s >= 1 && c >= 0);
  10138. }
  10139. break;
  10140. }
  10141. }
  10142. }
  10143. } finally {
  10144. reentry = false;
  10145. {
  10146. ReactCurrentDispatcher$1.current = previousDispatcher;
  10147. reenableLogs();
  10148. }
  10149. Error.prepareStackTrace = previousPrepareStackTrace;
  10150. } // Fallback to just using the name if we couldn't make it throw.
  10151. var name = fn ? fn.displayName || fn.name : '';
  10152. var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';
  10153. {
  10154. if (typeof fn === 'function') {
  10155. componentFrameCache.set(fn, syntheticFrame);
  10156. }
  10157. }
  10158. return syntheticFrame;
  10159. }
  10160. function describeFunctionComponentFrame(fn, source, ownerFn) {
  10161. {
  10162. return describeNativeComponentFrame(fn, false);
  10163. }
  10164. }
  10165. function shouldConstruct(Component) {
  10166. var prototype = Component.prototype;
  10167. return !!(prototype && prototype.isReactComponent);
  10168. }
  10169. function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
  10170. if (type == null) {
  10171. return '';
  10172. }
  10173. if (typeof type === 'function') {
  10174. {
  10175. return describeNativeComponentFrame(type, shouldConstruct(type));
  10176. }
  10177. }
  10178. if (typeof type === 'string') {
  10179. return describeBuiltInComponentFrame(type);
  10180. }
  10181. switch (type) {
  10182. case REACT_SUSPENSE_TYPE:
  10183. return describeBuiltInComponentFrame('Suspense');
  10184. case REACT_SUSPENSE_LIST_TYPE:
  10185. return describeBuiltInComponentFrame('SuspenseList');
  10186. }
  10187. if (typeof type === 'object') {
  10188. switch (type.$$typeof) {
  10189. case REACT_FORWARD_REF_TYPE:
  10190. return describeFunctionComponentFrame(type.render);
  10191. case REACT_MEMO_TYPE:
  10192. // Memo may contain any component type so we recursively resolve it.
  10193. return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);
  10194. case REACT_LAZY_TYPE:
  10195. {
  10196. var lazyComponent = type;
  10197. var payload = lazyComponent._payload;
  10198. var init = lazyComponent._init;
  10199. try {
  10200. // Lazy may contain any component type so we recursively resolve it.
  10201. return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
  10202. } catch (x) {}
  10203. }
  10204. }
  10205. }
  10206. return '';
  10207. }
  10208. var loggedTypeFailures = {};
  10209. var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
  10210. function setCurrentlyValidatingElement(element) {
  10211. {
  10212. if (element) {
  10213. var owner = element._owner;
  10214. var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
  10215. ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
  10216. } else {
  10217. ReactDebugCurrentFrame$1.setExtraStackFrame(null);
  10218. }
  10219. }
  10220. }
  10221. function checkPropTypes(typeSpecs, values, location, componentName, element) {
  10222. {
  10223. // $FlowFixMe This is okay but Flow doesn't know it.
  10224. var has = Function.call.bind(hasOwnProperty);
  10225. for (var typeSpecName in typeSpecs) {
  10226. if (has(typeSpecs, typeSpecName)) {
  10227. var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
  10228. // fail the render phase where it didn't fail before. So we log it.
  10229. // After these have been cleaned up, we'll let them throw.
  10230. try {
  10231. // This is intentionally an invariant that gets caught. It's the same
  10232. // behavior as without this statement except with a better message.
  10233. if (typeof typeSpecs[typeSpecName] !== 'function') {
  10234. // eslint-disable-next-line react-internal/prod-error-codes
  10235. var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
  10236. err.name = 'Invariant Violation';
  10237. throw err;
  10238. }
  10239. error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
  10240. } catch (ex) {
  10241. error$1 = ex;
  10242. }
  10243. if (error$1 && !(error$1 instanceof Error)) {
  10244. setCurrentlyValidatingElement(element);
  10245. error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
  10246. setCurrentlyValidatingElement(null);
  10247. }
  10248. if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
  10249. // Only monitor this failure once because there tends to be a lot of the
  10250. // same error.
  10251. loggedTypeFailures[error$1.message] = true;
  10252. setCurrentlyValidatingElement(element);
  10253. error('Failed %s type: %s', location, error$1.message);
  10254. setCurrentlyValidatingElement(null);
  10255. }
  10256. }
  10257. }
  10258. }
  10259. }
  10260. function setCurrentlyValidatingElement$1(element) {
  10261. {
  10262. if (element) {
  10263. var owner = element._owner;
  10264. var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
  10265. setExtraStackFrame(stack);
  10266. } else {
  10267. setExtraStackFrame(null);
  10268. }
  10269. }
  10270. }
  10271. var propTypesMisspellWarningShown;
  10272. {
  10273. propTypesMisspellWarningShown = false;
  10274. }
  10275. function getDeclarationErrorAddendum() {
  10276. if (ReactCurrentOwner.current) {
  10277. var name = getComponentNameFromType(ReactCurrentOwner.current.type);
  10278. if (name) {
  10279. return '\n\nCheck the render method of `' + name + '`.';
  10280. }
  10281. }
  10282. return '';
  10283. }
  10284. function getSourceInfoErrorAddendum(source) {
  10285. if (source !== undefined) {
  10286. var fileName = source.fileName.replace(/^.*[\\\/]/, '');
  10287. var lineNumber = source.lineNumber;
  10288. return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
  10289. }
  10290. return '';
  10291. }
  10292. function getSourceInfoErrorAddendumForProps(elementProps) {
  10293. if (elementProps !== null && elementProps !== undefined) {
  10294. return getSourceInfoErrorAddendum(elementProps.__source);
  10295. }
  10296. return '';
  10297. }
  10298. /**
  10299. * Warn if there's no key explicitly set on dynamic arrays of children or
  10300. * object keys are not valid. This allows us to keep track of children between
  10301. * updates.
  10302. */
  10303. var ownerHasKeyUseWarning = {};
  10304. function getCurrentComponentErrorInfo(parentType) {
  10305. var info = getDeclarationErrorAddendum();
  10306. if (!info) {
  10307. var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
  10308. if (parentName) {
  10309. info = "\n\nCheck the top-level render call using <" + parentName + ">.";
  10310. }
  10311. }
  10312. return info;
  10313. }
  10314. /**
  10315. * Warn if the element doesn't have an explicit key assigned to it.
  10316. * This element is in an array. The array could grow and shrink or be
  10317. * reordered. All children that haven't already been validated are required to
  10318. * have a "key" property assigned to it. Error statuses are cached so a warning
  10319. * will only be shown once.
  10320. *
  10321. * @internal
  10322. * @param {ReactElement} element Element that requires a key.
  10323. * @param {*} parentType element's parent's type.
  10324. */
  10325. function validateExplicitKey(element, parentType) {
  10326. if (!element._store || element._store.validated || element.key != null) {
  10327. return;
  10328. }
  10329. element._store.validated = true;
  10330. var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
  10331. if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
  10332. return;
  10333. }
  10334. ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
  10335. // property, it may be the creator of the child that's responsible for
  10336. // assigning it a key.
  10337. var childOwner = '';
  10338. if (element && element._owner && element._owner !== ReactCurrentOwner.current) {
  10339. // Give the component that originally created this child.
  10340. childOwner = " It was passed a child from " + getComponentNameFromType(element._owner.type) + ".";
  10341. }
  10342. {
  10343. setCurrentlyValidatingElement$1(element);
  10344. error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
  10345. setCurrentlyValidatingElement$1(null);
  10346. }
  10347. }
  10348. /**
  10349. * Ensure that every element either is passed in a static location, in an
  10350. * array with an explicit keys property defined, or in an object literal
  10351. * with valid key property.
  10352. *
  10353. * @internal
  10354. * @param {ReactNode} node Statically passed child of any type.
  10355. * @param {*} parentType node's parent's type.
  10356. */
  10357. function validateChildKeys(node, parentType) {
  10358. if (typeof node !== 'object') {
  10359. return;
  10360. }
  10361. if (isArray(node)) {
  10362. for (var i = 0; i < node.length; i++) {
  10363. var child = node[i];
  10364. if (isValidElement(child)) {
  10365. validateExplicitKey(child, parentType);
  10366. }
  10367. }
  10368. } else if (isValidElement(node)) {
  10369. // This element was passed in a valid location.
  10370. if (node._store) {
  10371. node._store.validated = true;
  10372. }
  10373. } else if (node) {
  10374. var iteratorFn = getIteratorFn(node);
  10375. if (typeof iteratorFn === 'function') {
  10376. // Entry iterators used to provide implicit keys,
  10377. // but now we print a separate warning for them later.
  10378. if (iteratorFn !== node.entries) {
  10379. var iterator = iteratorFn.call(node);
  10380. var step;
  10381. while (!(step = iterator.next()).done) {
  10382. if (isValidElement(step.value)) {
  10383. validateExplicitKey(step.value, parentType);
  10384. }
  10385. }
  10386. }
  10387. }
  10388. }
  10389. }
  10390. /**
  10391. * Given an element, validate that its props follow the propTypes definition,
  10392. * provided by the type.
  10393. *
  10394. * @param {ReactElement} element
  10395. */
  10396. function validatePropTypes(element) {
  10397. {
  10398. var type = element.type;
  10399. if (type === null || type === undefined || typeof type === 'string') {
  10400. return;
  10401. }
  10402. var propTypes;
  10403. if (typeof type === 'function') {
  10404. propTypes = type.propTypes;
  10405. } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
  10406. // Inner props are checked in the reconciler.
  10407. type.$$typeof === REACT_MEMO_TYPE)) {
  10408. propTypes = type.propTypes;
  10409. } else {
  10410. return;
  10411. }
  10412. if (propTypes) {
  10413. // Intentionally inside to avoid triggering lazy initializers:
  10414. var name = getComponentNameFromType(type);
  10415. checkPropTypes(propTypes, element.props, 'prop', name, element);
  10416. } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
  10417. propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
  10418. var _name = getComponentNameFromType(type);
  10419. error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
  10420. }
  10421. if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
  10422. error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
  10423. }
  10424. }
  10425. }
  10426. /**
  10427. * Given a fragment, validate that it can only be provided with fragment props
  10428. * @param {ReactElement} fragment
  10429. */
  10430. function validateFragmentProps(fragment) {
  10431. {
  10432. var keys = Object.keys(fragment.props);
  10433. for (var i = 0; i < keys.length; i++) {
  10434. var key = keys[i];
  10435. if (key !== 'children' && key !== 'key') {
  10436. setCurrentlyValidatingElement$1(fragment);
  10437. error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
  10438. setCurrentlyValidatingElement$1(null);
  10439. break;
  10440. }
  10441. }
  10442. if (fragment.ref !== null) {
  10443. setCurrentlyValidatingElement$1(fragment);
  10444. error('Invalid attribute `ref` supplied to `React.Fragment`.');
  10445. setCurrentlyValidatingElement$1(null);
  10446. }
  10447. }
  10448. }
  10449. function createElementWithValidation(type, props, children) {
  10450. var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
  10451. // succeed and there will likely be errors in render.
  10452. if (!validType) {
  10453. var info = '';
  10454. if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
  10455. info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
  10456. }
  10457. var sourceInfo = getSourceInfoErrorAddendumForProps(props);
  10458. if (sourceInfo) {
  10459. info += sourceInfo;
  10460. } else {
  10461. info += getDeclarationErrorAddendum();
  10462. }
  10463. var typeString;
  10464. if (type === null) {
  10465. typeString = 'null';
  10466. } else if (isArray(type)) {
  10467. typeString = 'array';
  10468. } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
  10469. typeString = "<" + (getComponentNameFromType(type.type) || 'Unknown') + " />";
  10470. info = ' Did you accidentally export a JSX literal instead of a component?';
  10471. } else {
  10472. typeString = typeof type;
  10473. }
  10474. {
  10475. error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
  10476. }
  10477. }
  10478. var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.
  10479. // TODO: Drop this when these are no longer allowed as the type argument.
  10480. if (element == null) {
  10481. return element;
  10482. } // Skip key warning if the type isn't valid since our key validation logic
  10483. // doesn't expect a non-string/function type and can throw confusing errors.
  10484. // We don't want exception behavior to differ between dev and prod.
  10485. // (Rendering will throw with a helpful message and as soon as the type is
  10486. // fixed, the key warnings will appear.)
  10487. if (validType) {
  10488. for (var i = 2; i < arguments.length; i++) {
  10489. validateChildKeys(arguments[i], type);
  10490. }
  10491. }
  10492. if (type === REACT_FRAGMENT_TYPE) {
  10493. validateFragmentProps(element);
  10494. } else {
  10495. validatePropTypes(element);
  10496. }
  10497. return element;
  10498. }
  10499. var didWarnAboutDeprecatedCreateFactory = false;
  10500. function createFactoryWithValidation(type) {
  10501. var validatedFactory = createElementWithValidation.bind(null, type);
  10502. validatedFactory.type = type;
  10503. {
  10504. if (!didWarnAboutDeprecatedCreateFactory) {
  10505. didWarnAboutDeprecatedCreateFactory = true;
  10506. warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');
  10507. } // Legacy hook: remove it
  10508. Object.defineProperty(validatedFactory, 'type', {
  10509. enumerable: false,
  10510. get: function () {
  10511. warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');
  10512. Object.defineProperty(this, 'type', {
  10513. value: type
  10514. });
  10515. return type;
  10516. }
  10517. });
  10518. }
  10519. return validatedFactory;
  10520. }
  10521. function cloneElementWithValidation(element, props, children) {
  10522. var newElement = cloneElement.apply(this, arguments);
  10523. for (var i = 2; i < arguments.length; i++) {
  10524. validateChildKeys(arguments[i], newElement.type);
  10525. }
  10526. validatePropTypes(newElement);
  10527. return newElement;
  10528. }
  10529. function startTransition(scope, options) {
  10530. var prevTransition = ReactCurrentBatchConfig.transition;
  10531. ReactCurrentBatchConfig.transition = {};
  10532. var currentTransition = ReactCurrentBatchConfig.transition;
  10533. {
  10534. ReactCurrentBatchConfig.transition._updatedFibers = new Set();
  10535. }
  10536. try {
  10537. scope();
  10538. } finally {
  10539. ReactCurrentBatchConfig.transition = prevTransition;
  10540. {
  10541. if (prevTransition === null && currentTransition._updatedFibers) {
  10542. var updatedFibersCount = currentTransition._updatedFibers.size;
  10543. if (updatedFibersCount > 10) {
  10544. warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');
  10545. }
  10546. currentTransition._updatedFibers.clear();
  10547. }
  10548. }
  10549. }
  10550. }
  10551. var didWarnAboutMessageChannel = false;
  10552. var enqueueTaskImpl = null;
  10553. function enqueueTask(task) {
  10554. if (enqueueTaskImpl === null) {
  10555. try {
  10556. // read require off the module object to get around the bundlers.
  10557. // we don't want them to detect a require and bundle a Node polyfill.
  10558. var requireString = ('require' + Math.random()).slice(0, 7);
  10559. var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's
  10560. // version of setImmediate, bypassing fake timers if any.
  10561. enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;
  10562. } catch (_err) {
  10563. // we're in a browser
  10564. // we can't use regular timers because they may still be faked
  10565. // so we try MessageChannel+postMessage instead
  10566. enqueueTaskImpl = function (callback) {
  10567. {
  10568. if (didWarnAboutMessageChannel === false) {
  10569. didWarnAboutMessageChannel = true;
  10570. if (typeof MessageChannel === 'undefined') {
  10571. error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');
  10572. }
  10573. }
  10574. }
  10575. var channel = new MessageChannel();
  10576. channel.port1.onmessage = callback;
  10577. channel.port2.postMessage(undefined);
  10578. };
  10579. }
  10580. }
  10581. return enqueueTaskImpl(task);
  10582. }
  10583. var actScopeDepth = 0;
  10584. var didWarnNoAwaitAct = false;
  10585. function act(callback) {
  10586. {
  10587. // `act` calls can be nested, so we track the depth. This represents the
  10588. // number of `act` scopes on the stack.
  10589. var prevActScopeDepth = actScopeDepth;
  10590. actScopeDepth++;
  10591. if (ReactCurrentActQueue.current === null) {
  10592. // This is the outermost `act` scope. Initialize the queue. The reconciler
  10593. // will detect the queue and use it instead of Scheduler.
  10594. ReactCurrentActQueue.current = [];
  10595. }
  10596. var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;
  10597. var result;
  10598. try {
  10599. // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only
  10600. // set to `true` while the given callback is executed, not for updates
  10601. // triggered during an async event, because this is how the legacy
  10602. // implementation of `act` behaved.
  10603. ReactCurrentActQueue.isBatchingLegacy = true;
  10604. result = callback(); // Replicate behavior of original `act` implementation in legacy mode,
  10605. // which flushed updates immediately after the scope function exits, even
  10606. // if it's an async function.
  10607. if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {
  10608. var queue = ReactCurrentActQueue.current;
  10609. if (queue !== null) {
  10610. ReactCurrentActQueue.didScheduleLegacyUpdate = false;
  10611. flushActQueue(queue);
  10612. }
  10613. }
  10614. } catch (error) {
  10615. popActScope(prevActScopeDepth);
  10616. throw error;
  10617. } finally {
  10618. ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;
  10619. }
  10620. if (result !== null && typeof result === 'object' && typeof result.then === 'function') {
  10621. var thenableResult = result; // The callback is an async function (i.e. returned a promise). Wait
  10622. // for it to resolve before exiting the current scope.
  10623. var wasAwaited = false;
  10624. var thenable = {
  10625. then: function (resolve, reject) {
  10626. wasAwaited = true;
  10627. thenableResult.then(function (returnValue) {
  10628. popActScope(prevActScopeDepth);
  10629. if (actScopeDepth === 0) {
  10630. // We've exited the outermost act scope. Recursively flush the
  10631. // queue until there's no remaining work.
  10632. recursivelyFlushAsyncActWork(returnValue, resolve, reject);
  10633. } else {
  10634. resolve(returnValue);
  10635. }
  10636. }, function (error) {
  10637. // The callback threw an error.
  10638. popActScope(prevActScopeDepth);
  10639. reject(error);
  10640. });
  10641. }
  10642. };
  10643. {
  10644. if (!didWarnNoAwaitAct && typeof Promise !== 'undefined') {
  10645. // eslint-disable-next-line no-undef
  10646. Promise.resolve().then(function () {}).then(function () {
  10647. if (!wasAwaited) {
  10648. didWarnNoAwaitAct = true;
  10649. error('You called act(async () => ...) without await. ' + 'This could lead to unexpected testing behaviour, ' + 'interleaving multiple act calls and mixing their ' + 'scopes. ' + 'You should - await act(async () => ...);');
  10650. }
  10651. });
  10652. }
  10653. }
  10654. return thenable;
  10655. } else {
  10656. var returnValue = result; // The callback is not an async function. Exit the current scope
  10657. // immediately, without awaiting.
  10658. popActScope(prevActScopeDepth);
  10659. if (actScopeDepth === 0) {
  10660. // Exiting the outermost act scope. Flush the queue.
  10661. var _queue = ReactCurrentActQueue.current;
  10662. if (_queue !== null) {
  10663. flushActQueue(_queue);
  10664. ReactCurrentActQueue.current = null;
  10665. } // Return a thenable. If the user awaits it, we'll flush again in
  10666. // case additional work was scheduled by a microtask.
  10667. var _thenable = {
  10668. then: function (resolve, reject) {
  10669. // Confirm we haven't re-entered another `act` scope, in case
  10670. // the user does something weird like await the thenable
  10671. // multiple times.
  10672. if (ReactCurrentActQueue.current === null) {
  10673. // Recursively flush the queue until there's no remaining work.
  10674. ReactCurrentActQueue.current = [];
  10675. recursivelyFlushAsyncActWork(returnValue, resolve, reject);
  10676. } else {
  10677. resolve(returnValue);
  10678. }
  10679. }
  10680. };
  10681. return _thenable;
  10682. } else {
  10683. // Since we're inside a nested `act` scope, the returned thenable
  10684. // immediately resolves. The outer scope will flush the queue.
  10685. var _thenable2 = {
  10686. then: function (resolve, reject) {
  10687. resolve(returnValue);
  10688. }
  10689. };
  10690. return _thenable2;
  10691. }
  10692. }
  10693. }
  10694. }
  10695. function popActScope(prevActScopeDepth) {
  10696. {
  10697. if (prevActScopeDepth !== actScopeDepth - 1) {
  10698. error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');
  10699. }
  10700. actScopeDepth = prevActScopeDepth;
  10701. }
  10702. }
  10703. function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {
  10704. {
  10705. var queue = ReactCurrentActQueue.current;
  10706. if (queue !== null) {
  10707. try {
  10708. flushActQueue(queue);
  10709. enqueueTask(function () {
  10710. if (queue.length === 0) {
  10711. // No additional work was scheduled. Finish.
  10712. ReactCurrentActQueue.current = null;
  10713. resolve(returnValue);
  10714. } else {
  10715. // Keep flushing work until there's none left.
  10716. recursivelyFlushAsyncActWork(returnValue, resolve, reject);
  10717. }
  10718. });
  10719. } catch (error) {
  10720. reject(error);
  10721. }
  10722. } else {
  10723. resolve(returnValue);
  10724. }
  10725. }
  10726. }
  10727. var isFlushing = false;
  10728. function flushActQueue(queue) {
  10729. {
  10730. if (!isFlushing) {
  10731. // Prevent re-entrance.
  10732. isFlushing = true;
  10733. var i = 0;
  10734. try {
  10735. for (; i < queue.length; i++) {
  10736. var callback = queue[i];
  10737. do {
  10738. callback = callback(true);
  10739. } while (callback !== null);
  10740. }
  10741. queue.length = 0;
  10742. } catch (error) {
  10743. // If something throws, leave the remaining callbacks on the queue.
  10744. queue = queue.slice(i + 1);
  10745. throw error;
  10746. } finally {
  10747. isFlushing = false;
  10748. }
  10749. }
  10750. }
  10751. }
  10752. var createElement$1 = createElementWithValidation ;
  10753. var cloneElement$1 = cloneElementWithValidation ;
  10754. var createFactory = createFactoryWithValidation ;
  10755. var Children = {
  10756. map: mapChildren,
  10757. forEach: forEachChildren,
  10758. count: countChildren,
  10759. toArray: toArray,
  10760. only: onlyChild
  10761. };
  10762. exports.Children = Children;
  10763. exports.Component = Component;
  10764. exports.Fragment = REACT_FRAGMENT_TYPE;
  10765. exports.Profiler = REACT_PROFILER_TYPE;
  10766. exports.PureComponent = PureComponent;
  10767. exports.StrictMode = REACT_STRICT_MODE_TYPE;
  10768. exports.Suspense = REACT_SUSPENSE_TYPE;
  10769. exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;
  10770. exports.act = act;
  10771. exports.cloneElement = cloneElement$1;
  10772. exports.createContext = createContext;
  10773. exports.createElement = createElement$1;
  10774. exports.createFactory = createFactory;
  10775. exports.createRef = createRef;
  10776. exports.forwardRef = forwardRef;
  10777. exports.isValidElement = isValidElement;
  10778. exports.lazy = lazy;
  10779. exports.memo = memo;
  10780. exports.startTransition = startTransition;
  10781. exports.unstable_act = act;
  10782. exports.useCallback = useCallback;
  10783. exports.useContext = useContext;
  10784. exports.useDebugValue = useDebugValue;
  10785. exports.useDeferredValue = useDeferredValue;
  10786. exports.useEffect = useEffect;
  10787. exports.useId = useId;
  10788. exports.useImperativeHandle = useImperativeHandle;
  10789. exports.useInsertionEffect = useInsertionEffect;
  10790. exports.useLayoutEffect = useLayoutEffect;
  10791. exports.useMemo = useMemo;
  10792. exports.useReducer = useReducer;
  10793. exports.useRef = useRef;
  10794. exports.useState = useState;
  10795. exports.useSyncExternalStore = useSyncExternalStore;
  10796. exports.useTransition = useTransition;
  10797. exports.version = ReactVersion;
  10798. /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
  10799. if (
  10800. typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
  10801. typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===
  10802. 'function'
  10803. ) {
  10804. __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
  10805. }
  10806. })();
  10807. }
  10808. /***/ }),
  10809. /***/ "./node_modules/react/index.js":
  10810. /*!*************************************!*\
  10811. !*** ./node_modules/react/index.js ***!
  10812. \*************************************/
  10813. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  10814. "use strict";
  10815. if (false) {} else {
  10816. module.exports = __webpack_require__(/*! ./cjs/react.development.js */ "./node_modules/react/cjs/react.development.js");
  10817. }
  10818. /***/ }),
  10819. /***/ "./src/sass/d3v4pp.scss":
  10820. /*!******************************!*\
  10821. !*** ./src/sass/d3v4pp.scss ***!
  10822. \******************************/
  10823. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  10824. "use strict";
  10825. __webpack_require__.r(__webpack_exports__);
  10826. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  10827. /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
  10828. /* harmony export */ });
  10829. /* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
  10830. /* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
  10831. /* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
  10832. /* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
  10833. /* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
  10834. /* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
  10835. /* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
  10836. /* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
  10837. /* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
  10838. /* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
  10839. /* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
  10840. /* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
  10841. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_d3v4pp_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./d3v4pp.scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/sass/d3v4pp.scss");
  10842. var options = {};
  10843. options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
  10844. options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
  10845. options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
  10846. options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
  10847. options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
  10848. var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_d3v4pp_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options);
  10849. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_d3v4pp_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_d3v4pp_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_d3v4pp_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
  10850. /***/ }),
  10851. /***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
  10852. /*!****************************************************************************!*\
  10853. !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
  10854. \****************************************************************************/
  10855. /***/ ((module) => {
  10856. "use strict";
  10857. var stylesInDOM = [];
  10858. function getIndexByIdentifier(identifier) {
  10859. var result = -1;
  10860. for (var i = 0; i < stylesInDOM.length; i++) {
  10861. if (stylesInDOM[i].identifier === identifier) {
  10862. result = i;
  10863. break;
  10864. }
  10865. }
  10866. return result;
  10867. }
  10868. function modulesToDom(list, options) {
  10869. var idCountMap = {};
  10870. var identifiers = [];
  10871. for (var i = 0; i < list.length; i++) {
  10872. var item = list[i];
  10873. var id = options.base ? item[0] + options.base : item[0];
  10874. var count = idCountMap[id] || 0;
  10875. var identifier = "".concat(id, " ").concat(count);
  10876. idCountMap[id] = count + 1;
  10877. var indexByIdentifier = getIndexByIdentifier(identifier);
  10878. var obj = {
  10879. css: item[1],
  10880. media: item[2],
  10881. sourceMap: item[3],
  10882. supports: item[4],
  10883. layer: item[5]
  10884. };
  10885. if (indexByIdentifier !== -1) {
  10886. stylesInDOM[indexByIdentifier].references++;
  10887. stylesInDOM[indexByIdentifier].updater(obj);
  10888. } else {
  10889. var updater = addElementStyle(obj, options);
  10890. options.byIndex = i;
  10891. stylesInDOM.splice(i, 0, {
  10892. identifier: identifier,
  10893. updater: updater,
  10894. references: 1
  10895. });
  10896. }
  10897. identifiers.push(identifier);
  10898. }
  10899. return identifiers;
  10900. }
  10901. function addElementStyle(obj, options) {
  10902. var api = options.domAPI(options);
  10903. api.update(obj);
  10904. var updater = function updater(newObj) {
  10905. if (newObj) {
  10906. if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
  10907. return;
  10908. }
  10909. api.update(obj = newObj);
  10910. } else {
  10911. api.remove();
  10912. }
  10913. };
  10914. return updater;
  10915. }
  10916. module.exports = function (list, options) {
  10917. options = options || {};
  10918. list = list || [];
  10919. var lastIdentifiers = modulesToDom(list, options);
  10920. return function update(newList) {
  10921. newList = newList || [];
  10922. for (var i = 0; i < lastIdentifiers.length; i++) {
  10923. var identifier = lastIdentifiers[i];
  10924. var index = getIndexByIdentifier(identifier);
  10925. stylesInDOM[index].references--;
  10926. }
  10927. var newLastIdentifiers = modulesToDom(newList, options);
  10928. for (var _i = 0; _i < lastIdentifiers.length; _i++) {
  10929. var _identifier = lastIdentifiers[_i];
  10930. var _index = getIndexByIdentifier(_identifier);
  10931. if (stylesInDOM[_index].references === 0) {
  10932. stylesInDOM[_index].updater();
  10933. stylesInDOM.splice(_index, 1);
  10934. }
  10935. }
  10936. lastIdentifiers = newLastIdentifiers;
  10937. };
  10938. };
  10939. /***/ }),
  10940. /***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
  10941. /*!********************************************************************!*\
  10942. !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
  10943. \********************************************************************/
  10944. /***/ ((module) => {
  10945. "use strict";
  10946. var memo = {};
  10947. /* istanbul ignore next */
  10948. function getTarget(target) {
  10949. if (typeof memo[target] === "undefined") {
  10950. var styleTarget = document.querySelector(target);
  10951. // Special case to return head of iframe instead of iframe itself
  10952. if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
  10953. try {
  10954. // This will throw an exception if access to iframe is blocked
  10955. // due to cross-origin restrictions
  10956. styleTarget = styleTarget.contentDocument.head;
  10957. } catch (e) {
  10958. // istanbul ignore next
  10959. styleTarget = null;
  10960. }
  10961. }
  10962. memo[target] = styleTarget;
  10963. }
  10964. return memo[target];
  10965. }
  10966. /* istanbul ignore next */
  10967. function insertBySelector(insert, style) {
  10968. var target = getTarget(insert);
  10969. if (!target) {
  10970. throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
  10971. }
  10972. target.appendChild(style);
  10973. }
  10974. module.exports = insertBySelector;
  10975. /***/ }),
  10976. /***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
  10977. /*!**********************************************************************!*\
  10978. !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
  10979. \**********************************************************************/
  10980. /***/ ((module) => {
  10981. "use strict";
  10982. /* istanbul ignore next */
  10983. function insertStyleElement(options) {
  10984. var element = document.createElement("style");
  10985. options.setAttributes(element, options.attributes);
  10986. options.insert(element, options.options);
  10987. return element;
  10988. }
  10989. module.exports = insertStyleElement;
  10990. /***/ }),
  10991. /***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
  10992. /*!**********************************************************************************!*\
  10993. !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
  10994. \**********************************************************************************/
  10995. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  10996. "use strict";
  10997. /* istanbul ignore next */
  10998. function setAttributesWithoutAttributes(styleElement) {
  10999. var nonce = true ? __webpack_require__.nc : 0;
  11000. if (nonce) {
  11001. styleElement.setAttribute("nonce", nonce);
  11002. }
  11003. }
  11004. module.exports = setAttributesWithoutAttributes;
  11005. /***/ }),
  11006. /***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
  11007. /*!***************************************************************!*\
  11008. !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
  11009. \***************************************************************/
  11010. /***/ ((module) => {
  11011. "use strict";
  11012. /* istanbul ignore next */
  11013. function apply(styleElement, options, obj) {
  11014. var css = "";
  11015. if (obj.supports) {
  11016. css += "@supports (".concat(obj.supports, ") {");
  11017. }
  11018. if (obj.media) {
  11019. css += "@media ".concat(obj.media, " {");
  11020. }
  11021. var needLayer = typeof obj.layer !== "undefined";
  11022. if (needLayer) {
  11023. css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
  11024. }
  11025. css += obj.css;
  11026. if (needLayer) {
  11027. css += "}";
  11028. }
  11029. if (obj.media) {
  11030. css += "}";
  11031. }
  11032. if (obj.supports) {
  11033. css += "}";
  11034. }
  11035. var sourceMap = obj.sourceMap;
  11036. if (sourceMap && typeof btoa !== "undefined") {
  11037. css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
  11038. }
  11039. // For old IE
  11040. /* istanbul ignore if */
  11041. options.styleTagTransform(css, styleElement, options.options);
  11042. }
  11043. function removeStyleElement(styleElement) {
  11044. // istanbul ignore if
  11045. if (styleElement.parentNode === null) {
  11046. return false;
  11047. }
  11048. styleElement.parentNode.removeChild(styleElement);
  11049. }
  11050. /* istanbul ignore next */
  11051. function domAPI(options) {
  11052. if (typeof document === "undefined") {
  11053. return {
  11054. update: function update() {},
  11055. remove: function remove() {}
  11056. };
  11057. }
  11058. var styleElement = options.insertStyleElement(options);
  11059. return {
  11060. update: function update(obj) {
  11061. apply(styleElement, options, obj);
  11062. },
  11063. remove: function remove() {
  11064. removeStyleElement(styleElement);
  11065. }
  11066. };
  11067. }
  11068. module.exports = domAPI;
  11069. /***/ }),
  11070. /***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js":
  11071. /*!*********************************************************************!*\
  11072. !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
  11073. \*********************************************************************/
  11074. /***/ ((module) => {
  11075. "use strict";
  11076. /* istanbul ignore next */
  11077. function styleTagTransform(css, styleElement) {
  11078. if (styleElement.styleSheet) {
  11079. styleElement.styleSheet.cssText = css;
  11080. } else {
  11081. while (styleElement.firstChild) {
  11082. styleElement.removeChild(styleElement.firstChild);
  11083. }
  11084. styleElement.appendChild(document.createTextNode(css));
  11085. }
  11086. }
  11087. module.exports = styleTagTransform;
  11088. /***/ }),
  11089. /***/ "./src/cmps/badge/Badge.tsx":
  11090. /*!**********************************!*\
  11091. !*** ./src/cmps/badge/Badge.tsx ***!
  11092. \**********************************/
  11093. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11094. "use strict";
  11095. var __extends = (this && this.__extends) || (function () {
  11096. var extendStatics = function (d, b) {
  11097. extendStatics = Object.setPrototypeOf ||
  11098. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  11099. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  11100. return extendStatics(d, b);
  11101. };
  11102. return function (d, b) {
  11103. if (typeof b !== "function" && b !== null)
  11104. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  11105. extendStatics(d, b);
  11106. function __() { this.constructor = d; }
  11107. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  11108. };
  11109. })();
  11110. var __assign = (this && this.__assign) || function () {
  11111. __assign = Object.assign || function(t) {
  11112. for (var s, i = 1, n = arguments.length; i < n; i++) {
  11113. s = arguments[i];
  11114. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  11115. t[p] = s[p];
  11116. }
  11117. return t;
  11118. };
  11119. return __assign.apply(this, arguments);
  11120. };
  11121. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11122. exports.Badge = void 0;
  11123. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  11124. var Badge = /** @class */ (function (_super) {
  11125. __extends(Badge, _super);
  11126. function Badge() {
  11127. return _super !== null && _super.apply(this, arguments) || this;
  11128. }
  11129. Badge.prototype.render = function () {
  11130. return React.createElement("span", __assign({}, this.props, { className: 'badge ' + this.props.className }));
  11131. };
  11132. return Badge;
  11133. }(React.Component));
  11134. exports.Badge = Badge;
  11135. /***/ }),
  11136. /***/ "./src/cmps/button/Button.tsx":
  11137. /*!************************************!*\
  11138. !*** ./src/cmps/button/Button.tsx ***!
  11139. \************************************/
  11140. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11141. "use strict";
  11142. var __extends = (this && this.__extends) || (function () {
  11143. var extendStatics = function (d, b) {
  11144. extendStatics = Object.setPrototypeOf ||
  11145. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  11146. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  11147. return extendStatics(d, b);
  11148. };
  11149. return function (d, b) {
  11150. if (typeof b !== "function" && b !== null)
  11151. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  11152. extendStatics(d, b);
  11153. function __() { this.constructor = d; }
  11154. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  11155. };
  11156. })();
  11157. var __assign = (this && this.__assign) || function () {
  11158. __assign = Object.assign || function(t) {
  11159. for (var s, i = 1, n = arguments.length; i < n; i++) {
  11160. s = arguments[i];
  11161. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  11162. t[p] = s[p];
  11163. }
  11164. return t;
  11165. };
  11166. return __assign.apply(this, arguments);
  11167. };
  11168. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11169. exports.Button = void 0;
  11170. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  11171. var Button = /** @class */ (function (_super) {
  11172. __extends(Button, _super);
  11173. function Button() {
  11174. var _this = _super !== null && _super.apply(this, arguments) || this;
  11175. _this.defaultProps = {
  11176. duration: 950,
  11177. fragment: "button",
  11178. onClick: function (e) { return e.preventDefault(); }
  11179. };
  11180. return _this;
  11181. }
  11182. /**
  11183. * Initialisation of the wave effect after the component did mount
  11184. */
  11185. Button.prototype.componentDidMount = function () {
  11186. var _this = this;
  11187. if (this.el) {
  11188. //new Waves(this.el, { duration: 950 });
  11189. if ('ontouchstart' in window) {
  11190. this.el.addEventListener('touchstart', function (e) {
  11191. _this.triggerEffect.bind(_this)(e);
  11192. }, false);
  11193. }
  11194. this.el.addEventListener('mousedown', function (e) {
  11195. _this.triggerEffect.bind(_this)(e);
  11196. }, false);
  11197. }
  11198. };
  11199. Button.prototype.triggerEffect = function (e) {
  11200. var _this = this;
  11201. if (this.el) {
  11202. this.showEffect(e);
  11203. if ('ontouchstart' in window) {
  11204. this.el.addEventListener('touchend', function (e) {
  11205. _this.hideEffect.bind(_this)(e);
  11206. }, false);
  11207. this.el.addEventListener('touchcancel', function (e) {
  11208. _this.hideEffect.bind(_this)(e);
  11209. }, false);
  11210. }
  11211. this.el.addEventListener('mouseup', function (e) {
  11212. _this.hideEffect.bind(_this)(e);
  11213. }, false);
  11214. this.el.addEventListener('mouseleave', function (e) {
  11215. _this.hideEffect.bind(_this)(e);
  11216. }, false);
  11217. this.el.addEventListener('dragend', function (e) {
  11218. _this.hideEffect.bind(_this)(e);
  11219. }, false);
  11220. }
  11221. };
  11222. Button.prototype.isWindow = function (obj) {
  11223. return obj !== null && obj === obj.window;
  11224. };
  11225. Button.prototype.getWindow = function (elem) {
  11226. return this.isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;
  11227. };
  11228. Button.prototype.offset = function () {
  11229. var _a, _b;
  11230. var docElem, win, box = { top: 0, left: 0 }, doc = this.el && this.el.ownerDocument;
  11231. docElem = doc === null || doc === void 0 ? void 0 : doc.documentElement;
  11232. if (typeof ((_a = this.el) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect) !== typeof undefined) {
  11233. box = ((_b = this.el) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect()) || { top: 0, left: 0 };
  11234. }
  11235. win = this.getWindow(doc);
  11236. return {
  11237. top: box.top + win.pageYOffset - ((docElem === null || docElem === void 0 ? void 0 : docElem.clientTop) || 0),
  11238. left: box.left + win.pageXOffset - ((docElem === null || docElem === void 0 ? void 0 : docElem.clientLeft) || 0)
  11239. };
  11240. };
  11241. Button.prototype.showEffect = function (e) {
  11242. if (this.el && document) {
  11243. // Disable right click
  11244. if (e.button === 2) {
  11245. return false;
  11246. }
  11247. // Create ripple
  11248. var ripple = document.createElement('div');
  11249. ripple.className = 'waves-ripple';
  11250. this.el.appendChild(ripple);
  11251. this.ripple = ripple;
  11252. // Get click coordinate and element witdh
  11253. var pos = this.offset();
  11254. var relativeY = (e.pageY - pos.top);
  11255. var relativeX = (e.pageX - pos.left);
  11256. var scale = 'scale(' + ((this.el.clientWidth / 100) * 10) + ')';
  11257. // Support for touch devices
  11258. if ('touches' in e) {
  11259. relativeY = (e.touches[0].pageY - pos.top);
  11260. relativeX = (e.touches[0].pageX - pos.left);
  11261. }
  11262. // Attach data to element
  11263. this.ripple.setAttribute('data-hold', Date.now().toString());
  11264. this.ripple.setAttribute('data-scale', scale);
  11265. this.ripple.setAttribute('data-x', relativeX.toString());
  11266. this.ripple.setAttribute('data-y', relativeY.toString());
  11267. // Set ripple position
  11268. var rippleStyle = {
  11269. 'top': relativeY + 'px',
  11270. 'left': relativeX + 'px'
  11271. };
  11272. //this.ripple.className = this.ripple.className + ' waves-notransition';
  11273. this.ripple.setAttribute('style', this.convertStyle(rippleStyle));
  11274. this.ripple.className = this.ripple.className.replace('waves-notransition', '');
  11275. // Scale the ripple
  11276. rippleStyle['-webkit-transform'] = scale;
  11277. rippleStyle['-moz-transform'] = scale;
  11278. rippleStyle['-ms-transform'] = scale;
  11279. rippleStyle['-o-transform'] = scale;
  11280. rippleStyle['transform'] = scale;
  11281. rippleStyle['opacity'] = '1';
  11282. rippleStyle['-webkit-transition-duration'] = 2 * this.props.duration / 3 + 'ms';
  11283. rippleStyle['-moz-transition-duration'] = 2 * this.props.duration / 3 + 'ms';
  11284. rippleStyle['-o-transition-duration'] = 2 * this.props.duration / 3 + 'ms';
  11285. rippleStyle['transition-duration'] = 2 * this.props.duration / 3 + 'ms';
  11286. rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
  11287. rippleStyle['-moz-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
  11288. rippleStyle['-o-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
  11289. rippleStyle['transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
  11290. this.ripple.setAttribute('style', this.convertStyle(rippleStyle));
  11291. }
  11292. };
  11293. Button.prototype.convertStyle = function (obj) {
  11294. var style = '';
  11295. for (var a in obj) {
  11296. if (obj.hasOwnProperty(a)) {
  11297. style += (a + ':' + obj[a] + ';');
  11298. }
  11299. }
  11300. return style;
  11301. };
  11302. Button.prototype.hideEffect = function () {
  11303. if (this.el) {
  11304. //Effect.hide
  11305. var ripple_1 = this.el.lastElementChild;
  11306. if (ripple_1 && ripple_1.classList.contains("waves-ripple")) {
  11307. var relativeX_1 = ripple_1.getAttribute('data-x');
  11308. var relativeY_1 = ripple_1.getAttribute('data-y');
  11309. var scale_1 = ripple_1.getAttribute('data-scale');
  11310. // Get delay beetween mousedown and mouse leave
  11311. var diff = Date.now() - Number(ripple_1.getAttribute('data-hold'));
  11312. var delay = this.props.duration / 2 - diff;
  11313. if (delay < 0) {
  11314. delay = 0;
  11315. }
  11316. var me_1 = this;
  11317. // Fade out ripple after delay
  11318. setTimeout(function () {
  11319. var style = {
  11320. 'top': relativeY_1 + 'px',
  11321. 'left': relativeX_1 + 'px',
  11322. 'opacity': '0',
  11323. // Duration
  11324. '-webkit-transition-duration': me_1.props.duration / 3 + 'ms',
  11325. '-moz-transition-duration': me_1.props.duration / 3 + 'ms',
  11326. '-o-transition-duration': me_1.props.duration / 3 + 'ms',
  11327. 'transition-duration': me_1.props.duration / 3 + 'ms',
  11328. '-webkit-transform': scale_1,
  11329. '-moz-transform': scale_1,
  11330. '-ms-transform': scale_1,
  11331. '-o-transform': scale_1,
  11332. 'transform': scale_1,
  11333. };
  11334. ripple_1 === null || ripple_1 === void 0 ? void 0 : ripple_1.setAttribute('style', me_1.convertStyle(style));
  11335. setTimeout(function () {
  11336. var _a;
  11337. try {
  11338. ripple_1 && ((_a = me_1.el) === null || _a === void 0 ? void 0 : _a.removeChild(ripple_1));
  11339. }
  11340. catch (e) {
  11341. return false;
  11342. }
  11343. }, me_1.props.duration);
  11344. }, delay);
  11345. }
  11346. }
  11347. };
  11348. Button.prototype.render = function () {
  11349. var _this = this;
  11350. var style = this.props.style;
  11351. var className = this.props.className ? this.props.className + " btn waves-effect " : " btn waves-effect ";
  11352. if (this.props.model == "circle") {
  11353. className += "btn-floating ";
  11354. }
  11355. if (this.props.size == "medium") {
  11356. className += " ";
  11357. }
  11358. if (this.props.size == "large") {
  11359. className += "btn-large ";
  11360. }
  11361. if (this.props.size == "small") {
  11362. className += "btn-small ";
  11363. }
  11364. return this.props.fragment === "button" ? React.createElement("button", __assign({}, style, { ref: function (el) {
  11365. _this.el = el;
  11366. }, className: className }), this.props.label) :
  11367. React.createElement("a", __assign({ href: "#section" }, style, { ref: function (el) {
  11368. _this.el = el;
  11369. }, className: className + this.props.className }), this.props.label);
  11370. };
  11371. return Button;
  11372. }(React.Component));
  11373. exports.Button = Button;
  11374. /***/ }),
  11375. /***/ "./src/cmps/card/Card.tsx":
  11376. /*!********************************!*\
  11377. !*** ./src/cmps/card/Card.tsx ***!
  11378. \********************************/
  11379. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11380. "use strict";
  11381. var __extends = (this && this.__extends) || (function () {
  11382. var extendStatics = function (d, b) {
  11383. extendStatics = Object.setPrototypeOf ||
  11384. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  11385. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  11386. return extendStatics(d, b);
  11387. };
  11388. return function (d, b) {
  11389. if (typeof b !== "function" && b !== null)
  11390. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  11391. extendStatics(d, b);
  11392. function __() { this.constructor = d; }
  11393. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  11394. };
  11395. })();
  11396. var __assign = (this && this.__assign) || function () {
  11397. __assign = Object.assign || function(t) {
  11398. for (var s, i = 1, n = arguments.length; i < n; i++) {
  11399. s = arguments[i];
  11400. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  11401. t[p] = s[p];
  11402. }
  11403. return t;
  11404. };
  11405. return __assign.apply(this, arguments);
  11406. };
  11407. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11408. exports.CardAction = exports.CardTitle = exports.CardImage = exports.CardContent = exports.Card = void 0;
  11409. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  11410. var Card = /** @class */ (function (_super) {
  11411. __extends(Card, _super);
  11412. function Card() {
  11413. return _super !== null && _super.apply(this, arguments) || this;
  11414. }
  11415. Card.prototype.render = function () {
  11416. return React.createElement("div", __assign({}, this.props, { className: "card " + this.props.className }));
  11417. };
  11418. return Card;
  11419. }(React.Component));
  11420. exports.Card = Card;
  11421. var CardContent = /** @class */ (function (_super) {
  11422. __extends(CardContent, _super);
  11423. function CardContent() {
  11424. return _super !== null && _super.apply(this, arguments) || this;
  11425. }
  11426. CardContent.prototype.render = function () {
  11427. return (React.createElement("div", __assign({}, this.props, { className: "card-content " + this.props.className })));
  11428. };
  11429. return CardContent;
  11430. }(React.Component));
  11431. exports.CardContent = CardContent;
  11432. var CardImage = /** @class */ (function (_super) {
  11433. __extends(CardImage, _super);
  11434. function CardImage() {
  11435. return _super !== null && _super.apply(this, arguments) || this;
  11436. }
  11437. CardImage.prototype.render = function () {
  11438. return (React.createElement("div", __assign({}, this.props, { className: "card-image " + this.props.className }),
  11439. React.createElement("img", { src: this.props.src }),
  11440. this.props.imageTitle && React.createElement("span", { className: "card-title" }, this.props.imageTitle),
  11441. this.props.children));
  11442. };
  11443. return CardImage;
  11444. }(React.Component));
  11445. exports.CardImage = CardImage;
  11446. var CardTitle = /** @class */ (function (_super) {
  11447. __extends(CardTitle, _super);
  11448. function CardTitle() {
  11449. return _super !== null && _super.apply(this, arguments) || this;
  11450. }
  11451. CardTitle.prototype.render = function () {
  11452. return (React.createElement("span", __assign({}, this.props, { className: "card-title " + this.props.className })));
  11453. };
  11454. return CardTitle;
  11455. }(React.Component));
  11456. exports.CardTitle = CardTitle;
  11457. var CardAction = /** @class */ (function (_super) {
  11458. __extends(CardAction, _super);
  11459. function CardAction() {
  11460. return _super !== null && _super.apply(this, arguments) || this;
  11461. }
  11462. CardAction.prototype.render = function () {
  11463. return (React.createElement("div", __assign({}, this.props, { className: "card-action " + this.props.className })));
  11464. };
  11465. return CardAction;
  11466. }(React.Component));
  11467. exports.CardAction = CardAction;
  11468. /***/ }),
  11469. /***/ "./src/cmps/chip/Chip.tsx":
  11470. /*!********************************!*\
  11471. !*** ./src/cmps/chip/Chip.tsx ***!
  11472. \********************************/
  11473. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11474. "use strict";
  11475. var __extends = (this && this.__extends) || (function () {
  11476. var extendStatics = function (d, b) {
  11477. extendStatics = Object.setPrototypeOf ||
  11478. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  11479. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  11480. return extendStatics(d, b);
  11481. };
  11482. return function (d, b) {
  11483. if (typeof b !== "function" && b !== null)
  11484. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  11485. extendStatics(d, b);
  11486. function __() { this.constructor = d; }
  11487. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  11488. };
  11489. })();
  11490. var __assign = (this && this.__assign) || function () {
  11491. __assign = Object.assign || function(t) {
  11492. for (var s, i = 1, n = arguments.length; i < n; i++) {
  11493. s = arguments[i];
  11494. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  11495. t[p] = s[p];
  11496. }
  11497. return t;
  11498. };
  11499. return __assign.apply(this, arguments);
  11500. };
  11501. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11502. exports.Chip = void 0;
  11503. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  11504. var Chip = /** @class */ (function (_super) {
  11505. __extends(Chip, _super);
  11506. function Chip() {
  11507. return _super !== null && _super.apply(this, arguments) || this;
  11508. }
  11509. Chip.prototype.render = function () { return React.createElement("div", __assign({}, this.props, { className: 'chip ' + this.props.className })); };
  11510. return Chip;
  11511. }(React.Component));
  11512. exports.Chip = Chip;
  11513. exports["default"] = Chip;
  11514. /***/ }),
  11515. /***/ "./src/cmps/collapsible/Collapsible.tsx":
  11516. /*!**********************************************!*\
  11517. !*** ./src/cmps/collapsible/Collapsible.tsx ***!
  11518. \**********************************************/
  11519. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11520. "use strict";
  11521. var __extends = (this && this.__extends) || (function () {
  11522. var extendStatics = function (d, b) {
  11523. extendStatics = Object.setPrototypeOf ||
  11524. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  11525. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  11526. return extendStatics(d, b);
  11527. };
  11528. return function (d, b) {
  11529. if (typeof b !== "function" && b !== null)
  11530. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  11531. extendStatics(d, b);
  11532. function __() { this.constructor = d; }
  11533. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  11534. };
  11535. })();
  11536. var __assign = (this && this.__assign) || function () {
  11537. __assign = Object.assign || function(t) {
  11538. for (var s, i = 1, n = arguments.length; i < n; i++) {
  11539. s = arguments[i];
  11540. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  11541. t[p] = s[p];
  11542. }
  11543. return t;
  11544. };
  11545. return __assign.apply(this, arguments);
  11546. };
  11547. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11548. exports.CollapsTrigger = exports.CollapsBody = exports.Collapsible = void 0;
  11549. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  11550. var Icon_1 = __webpack_require__(/*! ../icons/Icon */ "./src/cmps/icons/Icon.tsx");
  11551. var Collapsible = /** @class */ (function (_super) {
  11552. __extends(Collapsible, _super);
  11553. function Collapsible() {
  11554. return _super !== null && _super.apply(this, arguments) || this;
  11555. }
  11556. Collapsible.prototype.render = function () {
  11557. return (React.createElement("ul", __assign({}, this.props, { className: "collapsible " + this.props.className })));
  11558. };
  11559. return Collapsible;
  11560. }(React.Component));
  11561. exports.Collapsible = Collapsible;
  11562. var CollapsBody = /** @class */ (function (_super) {
  11563. __extends(CollapsBody, _super);
  11564. function CollapsBody() {
  11565. var _this = _super !== null && _super.apply(this, arguments) || this;
  11566. _this.el = null;
  11567. return _this;
  11568. }
  11569. CollapsBody.prototype.render = function () {
  11570. var _this = this;
  11571. return (React.createElement("div", __assign({}, this.props, { ref: function (ref) {
  11572. _this.el = ref;
  11573. }, className: "collapsible-body " + this.props.className })));
  11574. };
  11575. return CollapsBody;
  11576. }(React.Component));
  11577. exports.CollapsBody = CollapsBody;
  11578. var CollapsTrigger = /** @class */ (function (_super) {
  11579. __extends(CollapsTrigger, _super);
  11580. function CollapsTrigger() {
  11581. var _this = _super !== null && _super.apply(this, arguments) || this;
  11582. _this.state = {
  11583. isOpen: false
  11584. };
  11585. _this.el = null;
  11586. return _this;
  11587. }
  11588. CollapsTrigger.prototype.componentDidMount = function () {
  11589. // new Waves(this.el, { duration: 1050 });
  11590. };
  11591. CollapsTrigger.prototype.showHideBody = function (e) {
  11592. if (this.isOpen()) {
  11593. this.collapse(e);
  11594. }
  11595. else {
  11596. this.expand(e);
  11597. }
  11598. };
  11599. CollapsTrigger.prototype.collapse = function (e) {
  11600. e.stopPropagation();
  11601. var collapsible = this.findCollapsible.bind(this)();
  11602. if (collapsible) {
  11603. var bodyEl = collapsible.querySelector(".collapsible-body");
  11604. if (bodyEl) {
  11605. bodyEl.style.display = 'none';
  11606. this.setState({
  11607. isOpen: false
  11608. });
  11609. }
  11610. }
  11611. };
  11612. CollapsTrigger.prototype.findCollapsible = function () {
  11613. var parentEl = this.el && this.el.parentElement;
  11614. if (parentEl && !parentEl.classList.contains("collapsible")) {
  11615. parentEl = parentEl && parentEl.parentElement;
  11616. }
  11617. return parentEl;
  11618. };
  11619. CollapsTrigger.prototype.expand = function (e) {
  11620. e.stopPropagation();
  11621. var collapsible = this.findCollapsible.bind(this)();
  11622. if (collapsible) {
  11623. var bodyEl = collapsible.querySelector(".collapsible-body");
  11624. if (bodyEl) {
  11625. bodyEl.style.display = 'block';
  11626. this.setState({
  11627. isOpen: true
  11628. });
  11629. }
  11630. }
  11631. };
  11632. CollapsTrigger.prototype.isOpen = function () {
  11633. return this.state.isOpen;
  11634. };
  11635. CollapsTrigger.prototype.render = function () {
  11636. var _this = this;
  11637. var icon = (this.state.isOpen == true) ? React.createElement(Icon_1.Icon, { style: { float: "right" } }, "chevron_down") :
  11638. React.createElement(Icon_1.Icon, { style: { float: "right" } }, "chevron_right");
  11639. return (React.createElement("div", __assign({}, this.props, { ref: function (ref) {
  11640. _this.el = ref;
  11641. }, className: "collapsible-header " + this.props.className, onClick: function (e) { return _this.showHideBody.bind(_this)(e); } }),
  11642. icon,
  11643. this.props.children));
  11644. };
  11645. return CollapsTrigger;
  11646. }(React.Component));
  11647. exports.CollapsTrigger = CollapsTrigger;
  11648. /***/ }),
  11649. /***/ "./src/cmps/collections/Collection.tsx":
  11650. /*!*********************************************!*\
  11651. !*** ./src/cmps/collections/Collection.tsx ***!
  11652. \*********************************************/
  11653. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11654. "use strict";
  11655. var __extends = (this && this.__extends) || (function () {
  11656. var extendStatics = function (d, b) {
  11657. extendStatics = Object.setPrototypeOf ||
  11658. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  11659. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  11660. return extendStatics(d, b);
  11661. };
  11662. return function (d, b) {
  11663. if (typeof b !== "function" && b !== null)
  11664. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  11665. extendStatics(d, b);
  11666. function __() { this.constructor = d; }
  11667. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  11668. };
  11669. })();
  11670. var __assign = (this && this.__assign) || function () {
  11671. __assign = Object.assign || function(t) {
  11672. for (var s, i = 1, n = arguments.length; i < n; i++) {
  11673. s = arguments[i];
  11674. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  11675. t[p] = s[p];
  11676. }
  11677. return t;
  11678. };
  11679. return __assign.apply(this, arguments);
  11680. };
  11681. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11682. exports.CollectionItem = exports.Collection = void 0;
  11683. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  11684. var Collection = /** @class */ (function (_super) {
  11685. __extends(Collection, _super);
  11686. function Collection() {
  11687. return _super !== null && _super.apply(this, arguments) || this;
  11688. }
  11689. Collection.prototype.render = function () {
  11690. var _this = this;
  11691. var className = this.props.className;
  11692. return React.createElement("ul", __assign({}, this.props, { ref: function (r) { return _this.el = r; }, className: "collection " + (className || "") }));
  11693. };
  11694. return Collection;
  11695. }(React.Component));
  11696. exports.Collection = Collection;
  11697. var CollectionItem = /** @class */ (function (_super) {
  11698. __extends(CollectionItem, _super);
  11699. function CollectionItem() {
  11700. return _super !== null && _super.apply(this, arguments) || this;
  11701. }
  11702. CollectionItem.prototype.render = function () {
  11703. var _this = this;
  11704. var className = this.props.className;
  11705. return React.createElement("li", __assign({}, this.props, { ref: function (r) { return _this.el = r; }, className: "collection-item " + (className || "") }));
  11706. };
  11707. return CollectionItem;
  11708. }(React.Component));
  11709. exports.CollectionItem = CollectionItem;
  11710. /***/ }),
  11711. /***/ "./src/cmps/forms/Field.tsx":
  11712. /*!**********************************!*\
  11713. !*** ./src/cmps/forms/Field.tsx ***!
  11714. \**********************************/
  11715. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11716. "use strict";
  11717. var __extends = (this && this.__extends) || (function () {
  11718. var extendStatics = function (d, b) {
  11719. extendStatics = Object.setPrototypeOf ||
  11720. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  11721. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  11722. return extendStatics(d, b);
  11723. };
  11724. return function (d, b) {
  11725. if (typeof b !== "function" && b !== null)
  11726. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  11727. extendStatics(d, b);
  11728. function __() { this.constructor = d; }
  11729. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  11730. };
  11731. })();
  11732. var __assign = (this && this.__assign) || function () {
  11733. __assign = Object.assign || function(t) {
  11734. for (var s, i = 1, n = arguments.length; i < n; i++) {
  11735. s = arguments[i];
  11736. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  11737. t[p] = s[p];
  11738. }
  11739. return t;
  11740. };
  11741. return __assign.apply(this, arguments);
  11742. };
  11743. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11744. exports.Field = void 0;
  11745. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  11746. // @ts-ignore
  11747. var V = __webpack_require__(/*! ./rex */ "./src/cmps/forms/rex.tsx");
  11748. var Field = /** @class */ (function (_super) {
  11749. __extends(Field, _super);
  11750. function Field(props) {
  11751. var _this = _super.call(this, props) || this;
  11752. _this.state = {
  11753. labelClassName: '',
  11754. focusCount: 0,
  11755. errmsg: ""
  11756. };
  11757. _this.id = _this.uuidv4();
  11758. return _this;
  11759. }
  11760. Field.prototype.getDefaults = function () {
  11761. return {
  11762. placeholder: '',
  11763. id: Date.now(),
  11764. className: 'validate',
  11765. label: 'Text',
  11766. type: 'text',
  11767. icon: 'account_circle'
  11768. };
  11769. };
  11770. Field.prototype.getValue = function () {
  11771. return this.el && this.el.value;
  11772. };
  11773. Field.prototype.setValue = function (val) {
  11774. if (this.el) {
  11775. this.el.value = val;
  11776. if (val !== "") {
  11777. this.label && this.label.classList.add('active');
  11778. }
  11779. }
  11780. };
  11781. Field.prototype.isValid = function () {
  11782. return this.validate(true);
  11783. };
  11784. Field.prototype.onBlur = function (e) {
  11785. e.stopPropagation();
  11786. e.preventDefault();
  11787. if (this.label && ((this.props.placeholder !== '') || (this.el && this.el.value !== ""))) {
  11788. if (!this.label.classList.contains("active")) {
  11789. this.label.classList.add('active');
  11790. }
  11791. }
  11792. else {
  11793. this.label && this.label.classList.remove('active');
  11794. }
  11795. if (this.props.onBlur && typeof this.props.onBlur === "function") {
  11796. this.props.onBlur(e);
  11797. }
  11798. this.validate(true);
  11799. this.setState({ focusCount: this.state.focusCount + 1 });
  11800. };
  11801. Field.prototype.onFocus = function (e) {
  11802. if (this.label && !this.label.classList.contains("active")) {
  11803. this.label.classList.add('active');
  11804. }
  11805. if (this.props.onFocus && typeof this.props.onFocus === "function") {
  11806. this.props.onFocus(e);
  11807. }
  11808. };
  11809. Field.prototype.validate = function (blure) {
  11810. if (blure === void 0) { blure = false; }
  11811. if (blure) {
  11812. this.setState({ focusCount: this.state.focusCount + 1 });
  11813. }
  11814. if (this.state.focusCount > 0 || blure) {
  11815. var _a = this.props, min = _a.min, max = _a.max, required = _a.required, vtype = _a.vtype, vtypeMsg = _a.vtypeMsg;
  11816. if (this.el && this.el.value && this.el.value !== '') {
  11817. var length_1 = this.el.value.length;
  11818. if (min && max && (length_1 < min || length_1 > max)) {
  11819. this.setState({ errmsg: min != max ? "doit avoir une longeur comprise entre ".concat(min, " et ").concat(max, ".") : "doit avoir une longeur de ".concat(min, " caract\u00E8res") });
  11820. this.el.classList.remove('valid');
  11821. this.el.classList.add('invalid');
  11822. this.makeInValid();
  11823. return false;
  11824. }
  11825. else if (!min && max && length_1 > max) {
  11826. this.setState({ errmsg: "doit avoir une longeur maximal de ".concat(max, ".") });
  11827. this.el.classList.remove('valid');
  11828. this.el.classList.add('invalid');
  11829. this.makeInValid();
  11830. return false;
  11831. }
  11832. else if (min && !max && length_1 < min) {
  11833. this.setState({ errmsg: "doit avoir une longeur minimal de ".concat(min, ".") });
  11834. this.el.classList.remove('valid');
  11835. this.el.classList.add('invalid');
  11836. this.makeInValid();
  11837. return false;
  11838. }
  11839. else if (vtype && !V[vtype].test(this.el.value)) {
  11840. this.setState({ errmsg: vtypeMsg || "Doit \u00EAtre un ".concat(vtype, " valide.") });
  11841. this.el.classList.remove('valid');
  11842. this.el.classList.add('invalid');
  11843. this.makeInValid();
  11844. return false;
  11845. }
  11846. else {
  11847. this.setState({ errmsg: "" });
  11848. this.el.classList.remove('invalid');
  11849. this.el.classList.add('valid');
  11850. return true;
  11851. }
  11852. }
  11853. else {
  11854. if (required) {
  11855. this.setState({ errmsg: "Ne peu pas etre vide." });
  11856. this.makeInValid();
  11857. return false;
  11858. }
  11859. else {
  11860. this.setState({ errmsg: "" });
  11861. this.makeValid();
  11862. //this.el.classList.add('valid');
  11863. return true;
  11864. }
  11865. }
  11866. }
  11867. return false;
  11868. };
  11869. Field.prototype.makeInValid = function () {
  11870. if (this.el) {
  11871. this.el.classList.remove('valid');
  11872. this.el.classList.add('invalid');
  11873. }
  11874. };
  11875. Field.prototype.makeValid = function () {
  11876. if (this.el) {
  11877. this.el.classList.add('valid');
  11878. this.el.classList.remove('invalid');
  11879. }
  11880. };
  11881. Field.prototype.componentDidMount = function () {
  11882. if (this.label && ((this.props.placeholder !== '') || (this.el && this.el.value !== ""))) {
  11883. this.label.classList.add('active');
  11884. this.setState({
  11885. labelClassName: 'active'
  11886. });
  11887. }
  11888. };
  11889. Field.prototype.onKeyUp = function (e) {
  11890. if (e && "Enter" === e.key && this.props.onEnterKey) {
  11891. e.preventDefault();
  11892. e.stopPropagation();
  11893. this.props.onEnterKey(e, this);
  11894. }
  11895. this.validate();
  11896. };
  11897. Field.prototype.uuidv4 = function () {
  11898. // @ts-ignore
  11899. return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
  11900. return (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16);
  11901. });
  11902. };
  11903. Field.prototype.getErrorView = function () {
  11904. if (this.state.errmsg != null && this.state.errmsg !== "") {
  11905. return React.createElement("div", { className: "helper-text" }, this.state.errmsg);
  11906. }
  11907. };
  11908. Field.prototype.render = function () {
  11909. var _this = this;
  11910. var props = __assign({}, this.props);
  11911. // @ts-ignore
  11912. delete props.vtypeMsg;
  11913. // @ts-ignore
  11914. delete props.onEnterKey;
  11915. return React.createElement("div", { className: "input-field" },
  11916. React.createElement("label", { ref: function (ref) { return (_this.label = ref); }, htmlFor: this.id, className: this.state.labelClassName }, this.props.label + (this.props.required === true ? ' *' : '')),
  11917. React.createElement("input", __assign({}, props, { ref: function (ref) {
  11918. _this.el = ref;
  11919. }, value: this.props.value || '', onChange: this.props.onChange || (function () {
  11920. }), onFocus: function (e) { return _this.onFocus.bind(_this)(e); }, type: this.props.type || "text", onBlur: function (e) { return _this.onBlur.bind(_this)(e); }, onKeyUp: function (e) { return _this.onKeyUp.bind(_this)(e); }, id: this.id, className: "validate " + this.props.className })),
  11921. this.getErrorView());
  11922. };
  11923. return Field;
  11924. }(React.Component));
  11925. exports.Field = Field;
  11926. /***/ }),
  11927. /***/ "./src/cmps/forms/Textarea.tsx":
  11928. /*!*************************************!*\
  11929. !*** ./src/cmps/forms/Textarea.tsx ***!
  11930. \*************************************/
  11931. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11932. "use strict";
  11933. var __extends = (this && this.__extends) || (function () {
  11934. var extendStatics = function (d, b) {
  11935. extendStatics = Object.setPrototypeOf ||
  11936. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  11937. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  11938. return extendStatics(d, b);
  11939. };
  11940. return function (d, b) {
  11941. if (typeof b !== "function" && b !== null)
  11942. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  11943. extendStatics(d, b);
  11944. function __() { this.constructor = d; }
  11945. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  11946. };
  11947. })();
  11948. var __assign = (this && this.__assign) || function () {
  11949. __assign = Object.assign || function(t) {
  11950. for (var s, i = 1, n = arguments.length; i < n; i++) {
  11951. s = arguments[i];
  11952. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  11953. t[p] = s[p];
  11954. }
  11955. return t;
  11956. };
  11957. return __assign.apply(this, arguments);
  11958. };
  11959. var __rest = (this && this.__rest) || function (s, e) {
  11960. var t = {};
  11961. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
  11962. t[p] = s[p];
  11963. if (s != null && typeof Object.getOwnPropertySymbols === "function")
  11964. for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  11965. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
  11966. t[p[i]] = s[p[i]];
  11967. }
  11968. return t;
  11969. };
  11970. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11971. exports.Textarea = void 0;
  11972. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  11973. var PropTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  11974. var autosize = __webpack_require__(/*! autosize */ "./node_modules/autosize/dist/autosize.js");
  11975. var line_height_1 = __webpack_require__(/*! ./line-height */ "./src/cmps/forms/line-height.tsx");
  11976. var getLineHeight = line_height_1.default;
  11977. var Textarea = /** @class */ (function (_super) {
  11978. __extends(Textarea, _super);
  11979. function Textarea() {
  11980. var _this = _super !== null && _super.apply(this, arguments) || this;
  11981. _this.textarea = null;
  11982. _this.state = {
  11983. lineHeight: null
  11984. };
  11985. _this.onResize = function (e) {
  11986. if (_this.props.onResize) {
  11987. _this.props.onResize(e);
  11988. }
  11989. };
  11990. _this.onChange = function (e) {
  11991. var onChange = _this.props.onChange;
  11992. _this.currentValue = e.currentTarget.value;
  11993. onChange && onChange(e);
  11994. };
  11995. _this.updateLineHeight = function () {
  11996. if (_this.textarea) {
  11997. _this.setState({
  11998. lineHeight: getLineHeight(_this.textarea)
  11999. });
  12000. }
  12001. };
  12002. return _this;
  12003. }
  12004. Textarea.prototype.componentDidUpdate = function () {
  12005. this.textarea && autosize.update(this.textarea);
  12006. };
  12007. Textarea.prototype.componentDidMount = function () {
  12008. var _this = this;
  12009. var _a = this.props, maxRows = _a.maxRows, async = _a.async;
  12010. if (typeof maxRows === "number") {
  12011. this.updateLineHeight();
  12012. }
  12013. if (typeof maxRows === "number" || async) {
  12014. /*
  12015. the defer is needed to:
  12016. - force "autosize" to activate the scrollbar when this.props.maxRows is passed
  12017. - support StyledComponents (see #71)
  12018. */
  12019. setTimeout(
  12020. // @ts-ignore
  12021. function () { return _this.textarea && autosize(_this.textarea); });
  12022. }
  12023. else {
  12024. // @ts-ignore
  12025. this.textarea && autosize(this.textarea);
  12026. }
  12027. if (this.textarea) {
  12028. this.textarea.addEventListener("autosize:resized", this.onResize);
  12029. }
  12030. };
  12031. Textarea.prototype.componentWillUnmount = function () {
  12032. if (this.textarea) {
  12033. this.textarea.removeEventListener("autosize:resized", this.onResize);
  12034. autosize.destroy(this.textarea);
  12035. }
  12036. };
  12037. Textarea.prototype.render = function () {
  12038. var _this = this;
  12039. var _a = this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, children = _b.children, props = __rest(_b, ["onResize", "maxRows", "onChange", "style", "children"]), lineHeight = _a.state.lineHeight;
  12040. var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null;
  12041. return (React.createElement("textarea", __assign({}, props, { onChange: this.onChange, className: "textarea " + (this.props.className || ""), style: maxHeight ? __assign(__assign({}, style), { maxHeight: maxHeight }) : style, ref: function (element) {
  12042. _this.textarea = element;
  12043. } }), children));
  12044. };
  12045. Textarea.defaultProps = {
  12046. rows: 1,
  12047. async: false
  12048. };
  12049. Textarea.propTypes = {
  12050. rows: PropTypes.number,
  12051. maxRows: PropTypes.number,
  12052. onResize: PropTypes.func,
  12053. async: PropTypes.bool
  12054. };
  12055. return Textarea;
  12056. }(React.Component));
  12057. exports.Textarea = Textarea;
  12058. /***/ }),
  12059. /***/ "./src/cmps/forms/line-height.tsx":
  12060. /*!****************************************!*\
  12061. !*** ./src/cmps/forms/line-height.tsx ***!
  12062. \****************************************/
  12063. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  12064. "use strict";
  12065. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12066. // Load in dependencies
  12067. var computedStyle = __webpack_require__(/*! computed-style */ "./node_modules/computed-style/dist/computedStyle.commonjs.js");
  12068. /**
  12069. * Calculate the `line-height` of a given node
  12070. * @param {HTMLElement} node Element to calculate line height of. Must be in the DOM.
  12071. * @returns {Number} `line-height` of the element in pixels
  12072. */
  12073. function lineHeight(node) {
  12074. // Grab the line-height via style
  12075. var lnHeightStr = computedStyle(node, 'line-height');
  12076. var lnHeight = parseFloat(lnHeightStr);
  12077. // If the lineHeight did not contain a unit (i.e. it was numeric), convert it to ems (e.g. '2.3' === '2.3em')
  12078. if (lnHeightStr === lnHeight + '') {
  12079. // Save the old lineHeight style and update the em unit to the element
  12080. var _lnHeightStyle = node.style.lineHeight;
  12081. node.style.lineHeight = lnHeightStr + 'em';
  12082. // Calculate the em based height
  12083. lnHeightStr = computedStyle(node, 'line-height');
  12084. lnHeight = parseFloat(lnHeightStr);
  12085. // Revert the lineHeight style
  12086. if (_lnHeightStyle) {
  12087. node.style.lineHeight = _lnHeightStyle;
  12088. }
  12089. else {
  12090. //delete node.style.lineHeight;
  12091. }
  12092. }
  12093. // If the lineHeight is in `pt`, convert it to pixels (4px for 3pt)
  12094. // DEV: `em` units are converted to `pt` in IE6
  12095. // Conversion ratio from https://developer.mozilla.org/en-US/docs/Web/CSS/length
  12096. if (lnHeightStr.indexOf('pt') !== -1) {
  12097. lnHeight *= 4;
  12098. lnHeight /= 3;
  12099. // Otherwise, if the lineHeight is in `mm`, convert it to pixels (96px for 25.4mm)
  12100. }
  12101. else if (lnHeightStr.indexOf('mm') !== -1) {
  12102. lnHeight *= 96;
  12103. lnHeight /= 25.4;
  12104. // Otherwise, if the lineHeight is in `cm`, convert it to pixels (96px for 2.54cm)
  12105. }
  12106. else if (lnHeightStr.indexOf('cm') !== -1) {
  12107. lnHeight *= 96;
  12108. lnHeight /= 2.54;
  12109. // Otherwise, if the lineHeight is in `in`, convert it to pixels (96px for 1in)
  12110. }
  12111. else if (lnHeightStr.indexOf('in') !== -1) {
  12112. lnHeight *= 96;
  12113. // Otherwise, if the lineHeight is in `pc`, convert it to pixels (12pt for 1pc)
  12114. }
  12115. else if (lnHeightStr.indexOf('pc') !== -1) {
  12116. lnHeight *= 16;
  12117. }
  12118. // Continue our computation
  12119. lnHeight = Math.round(lnHeight);
  12120. // If the line-height is "normal", calculate by font-size
  12121. if (lnHeightStr === 'normal') {
  12122. // Create a temporary node
  12123. var nodeName = node.nodeName;
  12124. var _node = document && document.createElement(nodeName);
  12125. _node.innerHTML = '&nbsp;';
  12126. // If we have a text area, reset it to only 1 row
  12127. // https://github.com/twolfson/line-height/issues/4
  12128. if (nodeName.toUpperCase() === 'TEXTAREA') {
  12129. _node.setAttribute('rows', '1');
  12130. }
  12131. // Set the font-size of the element
  12132. var fontSizeStr = computedStyle(node, 'font-size');
  12133. _node.style.fontSize = fontSizeStr;
  12134. // Remove default padding/border which can affect offset height
  12135. // https://github.com/twolfson/line-height/issues/4
  12136. // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight
  12137. _node.style.padding = '0px';
  12138. _node.style.border = '0px';
  12139. // Append it to the body
  12140. var body = document.body;
  12141. body.appendChild(_node);
  12142. // Assume the line height of the element is the height
  12143. var height = _node.offsetHeight;
  12144. lnHeight = height;
  12145. // Remove our child from the DOM
  12146. body.removeChild(_node);
  12147. }
  12148. // Return the calculated height
  12149. return lnHeight;
  12150. }
  12151. exports["default"] = lineHeight;
  12152. /***/ }),
  12153. /***/ "./src/cmps/forms/rex.tsx":
  12154. /*!********************************!*\
  12155. !*** ./src/cmps/forms/rex.tsx ***!
  12156. \********************************/
  12157. /***/ ((module) => {
  12158. "use strict";
  12159. module.exports = {
  12160. "num": /^[0-9]+$/,
  12161. "numeric": /^[0-9]+$/,
  12162. "alpha": /^[a-zA-Z_]+$/,
  12163. "alphabetic": /^[a-zA-Z_]+$/,
  12164. "alphanum": /^[a-zA-Z0-9_]+$/,
  12165. "alphanumeric": /^[a-zA-Z0-9_]+$/,
  12166. "email": /^(")?(?:[^\."\s])(?:(?:[\.])?(?:[\w\-!#$%&'*+/=?^_`{|}~]))*\1@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/,
  12167. "url": /(((^https?)|(^ftp)):\/\/((([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*)|(localhost|LOCALHOST))\/?)/i,
  12168. "ipAddress": /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,
  12169. "phone": /^(?:(?:\+|00)33|0)\s*[1-9](?:\d{2}){4}$/,
  12170. "codePost": /^(((?!(96|97|98|99|00)))[0-9]{5})$|(2A|2B|2a|2b)[0-9]{3}$|(971|972|973|974|975|976)[0-9]{2}$/,
  12171. "codePostal": /^(((?!(96|97|98|99|00)))[0-9]{5})$|(2A|2B|2a|2b)[0-9]{3}$|(971|972|973|974|975|976)[0-9]{2}$/,
  12172. "time": /^([1-9]|1[0-9]):([0-5][0-9])(\s[a|p]m)$/,
  12173. "price": /^\d+(\.\d{2})?$/,
  12174. "prix": /^\d+(\.\d{2})?$/,
  12175. "date": /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/,
  12176. "tva": /^(5\.5|10|20)$/,
  12177. "password": /(?=^.{8,}$)(?=.*\d)(?=.*[!@#$%^&*]+)(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/,
  12178. "motDePasse": /(?=^.{8,}$)(?=.*\d)(?=.*[!@#$%^&*]+)(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/,
  12179. "matricule": /(^\d{1,4}[A-Za-z]{1,4}\d{1,2}$)|(^[A-Za-z]{1,2}\s*\d{1,3}\s*[A-Za-z]{1,2})$/,
  12180. "tvaIntercom": /^(FR)([0-9]{11}$)/,
  12181. "iban": /^FR\d{12}[A-Z0-9]{11}\d{2}$/,
  12182. "timeMask": /[\d\s:amp]/i,
  12183. 'numMask': /[0-9]/i,
  12184. 'alphaMask': /[a-z_]/i,
  12185. 'alphanumMask': /[a-z0-9_]/i,
  12186. 'emailMask': /[\w.\-@'"!#$%&'*+/=?^_`{|}~]/i,
  12187. 'urlMask': /[a-z0-9_]/i,
  12188. 'ipAddressMask': /[\d\.]/i,
  12189. "phoneMask": /[0-9\+]/i,
  12190. "codePostMask": /[0-9ABab]/i,
  12191. 'passwordMask': /[\w.\-@'"!#$%&'*+/=?^_`{|}~]/i,
  12192. };
  12193. /***/ }),
  12194. /***/ "./src/cmps/icons/Icon.tsx":
  12195. /*!*********************************!*\
  12196. !*** ./src/cmps/icons/Icon.tsx ***!
  12197. \*********************************/
  12198. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12199. "use strict";
  12200. var __extends = (this && this.__extends) || (function () {
  12201. var extendStatics = function (d, b) {
  12202. extendStatics = Object.setPrototypeOf ||
  12203. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  12204. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  12205. return extendStatics(d, b);
  12206. };
  12207. return function (d, b) {
  12208. if (typeof b !== "function" && b !== null)
  12209. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  12210. extendStatics(d, b);
  12211. function __() { this.constructor = d; }
  12212. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  12213. };
  12214. })();
  12215. var __assign = (this && this.__assign) || function () {
  12216. __assign = Object.assign || function(t) {
  12217. for (var s, i = 1, n = arguments.length; i < n; i++) {
  12218. s = arguments[i];
  12219. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  12220. t[p] = s[p];
  12221. }
  12222. return t;
  12223. };
  12224. return __assign.apply(this, arguments);
  12225. };
  12226. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12227. exports.Icon = void 0;
  12228. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  12229. var Icon = /** @class */ (function (_super) {
  12230. __extends(Icon, _super);
  12231. function Icon() {
  12232. return _super !== null && _super.apply(this, arguments) || this;
  12233. }
  12234. Icon.prototype.render = function () {
  12235. return React.createElement("span", __assign({}, this.props, { className: "s-icon " + this.props.className }));
  12236. };
  12237. return Icon;
  12238. }(React.Component));
  12239. exports.Icon = Icon;
  12240. /***/ }),
  12241. /***/ "./src/cmps/layouts/Layouts.tsx":
  12242. /*!**************************************!*\
  12243. !*** ./src/cmps/layouts/Layouts.tsx ***!
  12244. \**************************************/
  12245. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12246. "use strict";
  12247. var __extends = (this && this.__extends) || (function () {
  12248. var extendStatics = function (d, b) {
  12249. extendStatics = Object.setPrototypeOf ||
  12250. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  12251. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  12252. return extendStatics(d, b);
  12253. };
  12254. return function (d, b) {
  12255. if (typeof b !== "function" && b !== null)
  12256. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  12257. extendStatics(d, b);
  12258. function __() { this.constructor = d; }
  12259. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  12260. };
  12261. })();
  12262. var __assign = (this && this.__assign) || function () {
  12263. __assign = Object.assign || function(t) {
  12264. for (var s, i = 1, n = arguments.length; i < n; i++) {
  12265. s = arguments[i];
  12266. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  12267. t[p] = s[p];
  12268. }
  12269. return t;
  12270. };
  12271. return __assign.apply(this, arguments);
  12272. };
  12273. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12274. exports.Overlay = exports.Divider = exports.Parallax = exports.Row = exports.Col = void 0;
  12275. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  12276. var Col = /** @class */ (function (_super) {
  12277. __extends(Col, _super);
  12278. function Col() {
  12279. var _this = _super !== null && _super.apply(this, arguments) || this;
  12280. _this.el = null;
  12281. return _this;
  12282. }
  12283. Col.prototype.render = function () {
  12284. var _this = this;
  12285. return (React.createElement("div", __assign({}, this.props, { ref: function (ref) { return _this.el = ref; }, className: "col " + this.props.className })));
  12286. };
  12287. return Col;
  12288. }(React.Component));
  12289. exports.Col = Col;
  12290. var Row = /** @class */ (function (_super) {
  12291. __extends(Row, _super);
  12292. function Row() {
  12293. var _this = _super !== null && _super.apply(this, arguments) || this;
  12294. _this.el = null;
  12295. return _this;
  12296. }
  12297. Row.prototype.render = function () {
  12298. var _this = this;
  12299. return (React.createElement("div", __assign({}, this.props, { ref: function (ref) { return _this.el = ref; }, className: "row " + this.props.className })));
  12300. };
  12301. return Row;
  12302. }(React.Component));
  12303. exports.Row = Row;
  12304. var Parallax = /** @class */ (function (_super) {
  12305. __extends(Parallax, _super);
  12306. function Parallax() {
  12307. return _super !== null && _super.apply(this, arguments) || this;
  12308. }
  12309. Parallax.prototype.render = function () {
  12310. var st = __assign({}, this.props.style);
  12311. st.backgroundImage = "url(" + this.props.src + ")";
  12312. return React.createElement("div", { className: "parallax", style: st }, this.props.children);
  12313. };
  12314. return Parallax;
  12315. }(React.Component));
  12316. exports.Parallax = Parallax;
  12317. var Divider = /** @class */ (function (_super) {
  12318. __extends(Divider, _super);
  12319. function Divider() {
  12320. return _super !== null && _super.apply(this, arguments) || this;
  12321. }
  12322. Divider.prototype.render = function () {
  12323. return (React.createElement("div", { className: "divider" }));
  12324. };
  12325. return Divider;
  12326. }(React.Component));
  12327. exports.Divider = Divider;
  12328. var Overlay = /** @class */ (function (_super) {
  12329. __extends(Overlay, _super);
  12330. function Overlay() {
  12331. var _this = _super !== null && _super.apply(this, arguments) || this;
  12332. _this.state = {
  12333. visible: false
  12334. };
  12335. _this.el = null;
  12336. return _this;
  12337. }
  12338. Overlay.prototype.show = function () {
  12339. this.setState({
  12340. visible: true
  12341. });
  12342. };
  12343. Overlay.prototype.open = function () {
  12344. return this.show();
  12345. };
  12346. Overlay.prototype.isVisible = function () {
  12347. return this.state.visible;
  12348. };
  12349. Overlay.prototype.hide = function () {
  12350. this.setState({
  12351. visible: false
  12352. });
  12353. };
  12354. Overlay.prototype.close = function () {
  12355. return this.hide();
  12356. };
  12357. Overlay.prototype.render = function () {
  12358. var _this = this;
  12359. if (this.state.visible) {
  12360. return (React.createElement("div", __assign({ ref: function (ref) {
  12361. _this.el = ref;
  12362. } }, this.props, { className: "modal-overlay " + this.props.className })));
  12363. }
  12364. return null;
  12365. };
  12366. return Overlay;
  12367. }(React.Component));
  12368. exports.Overlay = Overlay;
  12369. /***/ }),
  12370. /***/ "./src/cmps/modal/Modal.tsx":
  12371. /*!**********************************!*\
  12372. !*** ./src/cmps/modal/Modal.tsx ***!
  12373. \**********************************/
  12374. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12375. "use strict";
  12376. var __extends = (this && this.__extends) || (function () {
  12377. var extendStatics = function (d, b) {
  12378. extendStatics = Object.setPrototypeOf ||
  12379. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  12380. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  12381. return extendStatics(d, b);
  12382. };
  12383. return function (d, b) {
  12384. if (typeof b !== "function" && b !== null)
  12385. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  12386. extendStatics(d, b);
  12387. function __() { this.constructor = d; }
  12388. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  12389. };
  12390. })();
  12391. var __assign = (this && this.__assign) || function () {
  12392. __assign = Object.assign || function(t) {
  12393. for (var s, i = 1, n = arguments.length; i < n; i++) {
  12394. s = arguments[i];
  12395. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  12396. t[p] = s[p];
  12397. }
  12398. return t;
  12399. };
  12400. return __assign.apply(this, arguments);
  12401. };
  12402. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12403. exports.ModalHeader = exports.ModalFooter = exports.ModalContent = exports.Modal = void 0;
  12404. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  12405. var Modal = /** @class */ (function (_super) {
  12406. __extends(Modal, _super);
  12407. function Modal() {
  12408. var _this = _super !== null && _super.apply(this, arguments) || this;
  12409. _this.state = {
  12410. isOpen: false
  12411. };
  12412. return _this;
  12413. }
  12414. Modal.prototype.open = function () {
  12415. this.setState({
  12416. isOpen: true
  12417. });
  12418. };
  12419. Modal.prototype.close = function () {
  12420. this.setState({
  12421. isOpen: false
  12422. });
  12423. };
  12424. Modal.prototype.show = function () {
  12425. return this.open();
  12426. };
  12427. Modal.prototype.hide = function () {
  12428. return this.close();
  12429. };
  12430. Modal.prototype.render = function () {
  12431. if (this.state.isOpen) {
  12432. return (React.createElement("div", { className: "modal-overlay" },
  12433. React.createElement("div", __assign({}, this.props, { className: "modal " + (this.props.className || "") }))));
  12434. }
  12435. return null;
  12436. };
  12437. return Modal;
  12438. }(React.Component));
  12439. exports.Modal = Modal;
  12440. var ModalContent = /** @class */ (function (_super) {
  12441. __extends(ModalContent, _super);
  12442. function ModalContent() {
  12443. return _super !== null && _super.apply(this, arguments) || this;
  12444. }
  12445. ModalContent.prototype.render = function () {
  12446. return (React.createElement("div", __assign({}, this.props, { className: "modal-content " + (this.props.className || "") })));
  12447. };
  12448. return ModalContent;
  12449. }(React.Component));
  12450. exports.ModalContent = ModalContent;
  12451. var ModalFooter = /** @class */ (function (_super) {
  12452. __extends(ModalFooter, _super);
  12453. function ModalFooter() {
  12454. return _super !== null && _super.apply(this, arguments) || this;
  12455. }
  12456. ModalFooter.prototype.render = function () {
  12457. return (React.createElement("div", __assign({}, this.props, { className: "modal-footer " + (this.props.className || "") })));
  12458. };
  12459. return ModalFooter;
  12460. }(React.Component));
  12461. exports.ModalFooter = ModalFooter;
  12462. var ModalHeader = /** @class */ (function (_super) {
  12463. __extends(ModalHeader, _super);
  12464. function ModalHeader() {
  12465. return _super !== null && _super.apply(this, arguments) || this;
  12466. }
  12467. ModalHeader.prototype.render = function () {
  12468. return (React.createElement("div", __assign({}, this.props, { className: "modal-header " + (this.props.className || "") })));
  12469. };
  12470. return ModalHeader;
  12471. }(React.Component));
  12472. exports.ModalHeader = ModalHeader;
  12473. /***/ }),
  12474. /***/ "./src/cmps/navigation/NavBar.tsx":
  12475. /*!****************************************!*\
  12476. !*** ./src/cmps/navigation/NavBar.tsx ***!
  12477. \****************************************/
  12478. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12479. "use strict";
  12480. var __extends = (this && this.__extends) || (function () {
  12481. var extendStatics = function (d, b) {
  12482. extendStatics = Object.setPrototypeOf ||
  12483. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  12484. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  12485. return extendStatics(d, b);
  12486. };
  12487. return function (d, b) {
  12488. if (typeof b !== "function" && b !== null)
  12489. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  12490. extendStatics(d, b);
  12491. function __() { this.constructor = d; }
  12492. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  12493. };
  12494. })();
  12495. var __assign = (this && this.__assign) || function () {
  12496. __assign = Object.assign || function(t) {
  12497. for (var s, i = 1, n = arguments.length; i < n; i++) {
  12498. s = arguments[i];
  12499. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  12500. t[p] = s[p];
  12501. }
  12502. return t;
  12503. };
  12504. return __assign.apply(this, arguments);
  12505. };
  12506. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12507. exports.NavBarBrand = exports.NavBarItem = exports.NavBarGroup = exports.NavBar = void 0;
  12508. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  12509. var NavBar = /** @class */ (function (_super) {
  12510. __extends(NavBar, _super);
  12511. function NavBar() {
  12512. return _super !== null && _super.apply(this, arguments) || this;
  12513. }
  12514. NavBar.prototype.render = function () {
  12515. return React.createElement("nav", null,
  12516. React.createElement("div", __assign({}, this.props, { className: "nav-wrapper" })));
  12517. };
  12518. return NavBar;
  12519. }(React.Component));
  12520. exports.NavBar = NavBar;
  12521. var NavBarGroup = /** @class */ (function (_super) {
  12522. __extends(NavBarGroup, _super);
  12523. function NavBarGroup() {
  12524. return _super !== null && _super.apply(this, arguments) || this;
  12525. }
  12526. NavBarGroup.prototype.render = function () {
  12527. return React.createElement("ul", __assign({}, this.props, { className: "right hide-on-med-and-down ·" + (this.props.className || "") }));
  12528. };
  12529. return NavBarGroup;
  12530. }(React.Component));
  12531. exports.NavBarGroup = NavBarGroup;
  12532. var NavBarItem = /** @class */ (function (_super) {
  12533. __extends(NavBarItem, _super);
  12534. function NavBarItem() {
  12535. return _super !== null && _super.apply(this, arguments) || this;
  12536. }
  12537. NavBarItem.prototype.render = function () {
  12538. return React.createElement("li", __assign({}, this.props));
  12539. };
  12540. return NavBarItem;
  12541. }(React.Component));
  12542. exports.NavBarItem = NavBarItem;
  12543. var NavBarBrand = /** @class */ (function (_super) {
  12544. __extends(NavBarBrand, _super);
  12545. function NavBarBrand() {
  12546. return _super !== null && _super.apply(this, arguments) || this;
  12547. }
  12548. NavBarBrand.prototype.render = function () {
  12549. var Fragment = this.props.fragment;
  12550. return Fragment && React.createElement(Fragment, __assign({}, this.props, { className: "brand-logo" })) || React.createElement("a", __assign({}, this.props, { className: "brand-logo" }));
  12551. };
  12552. return NavBarBrand;
  12553. }(React.Component));
  12554. exports.NavBarBrand = NavBarBrand;
  12555. /***/ }),
  12556. /***/ "./src/cmps/navigation/Navigation.tsx":
  12557. /*!********************************************!*\
  12558. !*** ./src/cmps/navigation/Navigation.tsx ***!
  12559. \********************************************/
  12560. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12561. "use strict";
  12562. var __extends = (this && this.__extends) || (function () {
  12563. var extendStatics = function (d, b) {
  12564. extendStatics = Object.setPrototypeOf ||
  12565. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  12566. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  12567. return extendStatics(d, b);
  12568. };
  12569. return function (d, b) {
  12570. if (typeof b !== "function" && b !== null)
  12571. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  12572. extendStatics(d, b);
  12573. function __() { this.constructor = d; }
  12574. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  12575. };
  12576. })();
  12577. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12578. exports.Navigation = void 0;
  12579. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  12580. var NavBar_1 = __webpack_require__(/*! ./NavBar */ "./src/cmps/navigation/NavBar.tsx");
  12581. var SideNav_1 = __webpack_require__(/*! ./SideNav */ "./src/cmps/navigation/SideNav.tsx");
  12582. var Navigation = /** @class */ (function (_super) {
  12583. __extends(Navigation, _super);
  12584. function Navigation(props) {
  12585. return _super.call(this, props) || this;
  12586. }
  12587. Navigation.prototype.componentDidMount = function () {
  12588. // console.log(this.navbar);
  12589. // console.log(this.sidenav);
  12590. };
  12591. Navigation.prototype.render = function () {
  12592. var _this = this;
  12593. return React.createElement(React.Fragment, null,
  12594. React.createElement(NavBar_1.NavBar, { ref: function (ref) {
  12595. _this.navbar = ref;
  12596. } },
  12597. React.createElement("a", { className: "sidenav-trigger", onClick: function (e) {
  12598. e.stopPropagation();
  12599. _this.sidenav && _this.sidenav.toggle();
  12600. } },
  12601. React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", style: { width: "20px" }, fill: "white", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: "2" },
  12602. React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M4 6h16M4 12h16M4 18h16" }))),
  12603. React.createElement(NavBar_1.NavBarBrand, null,
  12604. React.createElement("img", { src: this.props.logo || "https://statics.d3v4pp.fr/logo.png", className: "circle", alt: "Brand" })),
  12605. React.createElement(NavBar_1.NavBarGroup, null, this.props.routes && this.props.routes.map(function (route, i) {
  12606. return React.createElement(NavBar_1.NavBarItem, { key: i }, route.element);
  12607. }))),
  12608. React.createElement(SideNav_1.SideNav, { ref: function (ref) {
  12609. _this.sidenav = ref;
  12610. } },
  12611. React.createElement(SideNav_1.SideNavUser, { username: 'ayoub hassani', email: 'ayoub@d3v4pp.fr', src: "https://statics.d3v4pp.fr/logo.png", bg_src: "https://imgs.search.brave.com/yX0vgamsYEbsOU9XlyPGUM8DdmqxXpAKyzBM4s3wolA/rs:fit:1200:1030:1/g:ce/aHR0cHM6Ly93d3cu/YXZpYXNpbS5jb20v/d3AtY29udGVudC91/cGxvYWRzL2F2aWFz/aW0taW1hZ2UtbnVh/Z2VzLmpwZw" }),
  12612. this.props.routes && this.props.routes.map(function (route, i) {
  12613. return React.createElement(SideNav_1.SideNavEl, { onClick: function () { return _this.sidenav && _this.sidenav.hide(); }, key: i }, route.element);
  12614. })));
  12615. };
  12616. return Navigation;
  12617. }(React.Component));
  12618. exports.Navigation = Navigation;
  12619. /***/ }),
  12620. /***/ "./src/cmps/navigation/SideNav.tsx":
  12621. /*!*****************************************!*\
  12622. !*** ./src/cmps/navigation/SideNav.tsx ***!
  12623. \*****************************************/
  12624. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12625. "use strict";
  12626. var __extends = (this && this.__extends) || (function () {
  12627. var extendStatics = function (d, b) {
  12628. extendStatics = Object.setPrototypeOf ||
  12629. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  12630. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  12631. return extendStatics(d, b);
  12632. };
  12633. return function (d, b) {
  12634. if (typeof b !== "function" && b !== null)
  12635. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  12636. extendStatics(d, b);
  12637. function __() { this.constructor = d; }
  12638. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  12639. };
  12640. })();
  12641. var __assign = (this && this.__assign) || function () {
  12642. __assign = Object.assign || function(t) {
  12643. for (var s, i = 1, n = arguments.length; i < n; i++) {
  12644. s = arguments[i];
  12645. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  12646. t[p] = s[p];
  12647. }
  12648. return t;
  12649. };
  12650. return __assign.apply(this, arguments);
  12651. };
  12652. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12653. exports.SideNavEl = exports.SideNavUser = exports.SideNav = void 0;
  12654. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  12655. var SideNav = /** @class */ (function (_super) {
  12656. __extends(SideNav, _super);
  12657. function SideNav() {
  12658. var _this = _super !== null && _super.apply(this, arguments) || this;
  12659. _this.state = {
  12660. open: false,
  12661. };
  12662. return _this;
  12663. }
  12664. SideNav.prototype.open = function () {
  12665. this.setState({ open: true });
  12666. };
  12667. SideNav.prototype.toggle = function () {
  12668. this.setState({ open: !this.state.open });
  12669. };
  12670. SideNav.prototype.hide = function () {
  12671. this.setState({ open: false });
  12672. };
  12673. SideNav.prototype.render = function () {
  12674. return React.createElement("ul", __assign({}, this.props, { className: "sidenav " + (this.props.className || ""), style: { transform: this.state.open ? "translateX(0)" : "translateX(-105%)" } }));
  12675. };
  12676. return SideNav;
  12677. }(React.Component));
  12678. exports.SideNav = SideNav;
  12679. var SideNavUser = /** @class */ (function (_super) {
  12680. __extends(SideNavUser, _super);
  12681. function SideNavUser() {
  12682. return _super !== null && _super.apply(this, arguments) || this;
  12683. }
  12684. SideNavUser.prototype.render = function () {
  12685. return React.createElement("li", __assign({}, this.props),
  12686. React.createElement("div", { className: "user-view" },
  12687. React.createElement("div", { className: "background" },
  12688. React.createElement("img", { src: this.props.bg_src })),
  12689. React.createElement("a", null,
  12690. React.createElement("img", { className: "circle", src: this.props.src })),
  12691. React.createElement("a", null,
  12692. React.createElement("span", { className: "black-text name" }, this.props.username)),
  12693. React.createElement("a", null,
  12694. React.createElement("span", { className: "black-text email" }, this.props.email))));
  12695. };
  12696. return SideNavUser;
  12697. }(React.Component));
  12698. exports.SideNavUser = SideNavUser;
  12699. var SideNavEl = /** @class */ (function (_super) {
  12700. __extends(SideNavEl, _super);
  12701. function SideNavEl() {
  12702. return _super !== null && _super.apply(this, arguments) || this;
  12703. }
  12704. SideNavEl.prototype.render = function () {
  12705. return React.createElement("li", __assign({}, this.props));
  12706. };
  12707. return SideNavEl;
  12708. }(React.Component));
  12709. exports.SideNavEl = SideNavEl;
  12710. /***/ }),
  12711. /***/ "./src/cmps/progress/Progress.tsx":
  12712. /*!****************************************!*\
  12713. !*** ./src/cmps/progress/Progress.tsx ***!
  12714. \****************************************/
  12715. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12716. "use strict";
  12717. var __extends = (this && this.__extends) || (function () {
  12718. var extendStatics = function (d, b) {
  12719. extendStatics = Object.setPrototypeOf ||
  12720. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  12721. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  12722. return extendStatics(d, b);
  12723. };
  12724. return function (d, b) {
  12725. if (typeof b !== "function" && b !== null)
  12726. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  12727. extendStatics(d, b);
  12728. function __() { this.constructor = d; }
  12729. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  12730. };
  12731. })();
  12732. var __assign = (this && this.__assign) || function () {
  12733. __assign = Object.assign || function(t) {
  12734. for (var s, i = 1, n = arguments.length; i < n; i++) {
  12735. s = arguments[i];
  12736. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  12737. t[p] = s[p];
  12738. }
  12739. return t;
  12740. };
  12741. return __assign.apply(this, arguments);
  12742. };
  12743. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12744. exports.Preloader = exports.Progress = void 0;
  12745. var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  12746. var Progress = /** @class */ (function (_super) {
  12747. __extends(Progress, _super);
  12748. function Progress() {
  12749. return _super !== null && _super.apply(this, arguments) || this;
  12750. }
  12751. Progress.prototype.render = function () {
  12752. return React.createElement("div", __assign({}, this.props, { className: (this.props.className || "") + " progress" }),
  12753. React.createElement("div", { className: this.props.value ? "determinate" : "indeterminate", style: { width: this.props.value + "%" } }));
  12754. };
  12755. return Progress;
  12756. }(React.Component));
  12757. exports.Progress = Progress;
  12758. var Preloader = /** @class */ (function (_super) {
  12759. __extends(Preloader, _super);
  12760. function Preloader() {
  12761. return _super !== null && _super.apply(this, arguments) || this;
  12762. }
  12763. Preloader.prototype.render = function () {
  12764. var s = this.props.size == "big" ? "big" : this.props.size == "small" ? "small" : "";
  12765. var ca = this.props.color ? this.props.color.split(",") : ['blue'];
  12766. if (ca.length === 1) {
  12767. return React.createElement("div", { className: "preloader-wrapper " + s + " active" },
  12768. React.createElement("div", { className: "spinner-layer spinner-" + ca[0] + "-only" },
  12769. React.createElement("div", { className: "circle-clipper right" },
  12770. React.createElement("div", { className: "circle" })),
  12771. React.createElement("div", { className: "gap-patch" },
  12772. React.createElement("div", { className: "circle" })),
  12773. React.createElement("div", { className: "circle-clipper left" },
  12774. React.createElement("div", { className: "circle" }))));
  12775. }
  12776. else {
  12777. return React.createElement("div", { className: "preloader-wrapper " + s + " active" }, ca.map(function (scolor) {
  12778. return React.createElement("div", { className: "spinner-layer spinner-" + scolor },
  12779. React.createElement("div", { className: "circle-clipper left" },
  12780. React.createElement("div", { className: "circle" })),
  12781. React.createElement("div", { className: "gap-patch" },
  12782. React.createElement("div", { className: "circle" })),
  12783. React.createElement("div", { className: "circle-clipper right" },
  12784. React.createElement("div", { className: "circle" })));
  12785. }));
  12786. }
  12787. };
  12788. return Preloader;
  12789. }(React.Component));
  12790. exports.Preloader = Preloader;
  12791. /***/ })
  12792. /******/ });
  12793. /************************************************************************/
  12794. /******/ // The module cache
  12795. /******/ var __webpack_module_cache__ = {};
  12796. /******/
  12797. /******/ // The require function
  12798. /******/ function __webpack_require__(moduleId) {
  12799. /******/ // Check if module is in cache
  12800. /******/ var cachedModule = __webpack_module_cache__[moduleId];
  12801. /******/ if (cachedModule !== undefined) {
  12802. /******/ return cachedModule.exports;
  12803. /******/ }
  12804. /******/ // Create a new module (and put it into the cache)
  12805. /******/ var module = __webpack_module_cache__[moduleId] = {
  12806. /******/ id: moduleId,
  12807. /******/ loaded: false,
  12808. /******/ exports: {}
  12809. /******/ };
  12810. /******/
  12811. /******/ // Execute the module function
  12812. /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  12813. /******/
  12814. /******/ // Flag the module as loaded
  12815. /******/ module.loaded = true;
  12816. /******/
  12817. /******/ // Return the exports of the module
  12818. /******/ return module.exports;
  12819. /******/ }
  12820. /******/
  12821. /************************************************************************/
  12822. /******/ /* webpack/runtime/compat get default export */
  12823. /******/ (() => {
  12824. /******/ // getDefaultExport function for compatibility with non-harmony modules
  12825. /******/ __webpack_require__.n = (module) => {
  12826. /******/ var getter = module && module.__esModule ?
  12827. /******/ () => (module['default']) :
  12828. /******/ () => (module);
  12829. /******/ __webpack_require__.d(getter, { a: getter });
  12830. /******/ return getter;
  12831. /******/ };
  12832. /******/ })();
  12833. /******/
  12834. /******/ /* webpack/runtime/define property getters */
  12835. /******/ (() => {
  12836. /******/ // define getter functions for harmony exports
  12837. /******/ __webpack_require__.d = (exports, definition) => {
  12838. /******/ for(var key in definition) {
  12839. /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
  12840. /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
  12841. /******/ }
  12842. /******/ }
  12843. /******/ };
  12844. /******/ })();
  12845. /******/
  12846. /******/ /* webpack/runtime/hasOwnProperty shorthand */
  12847. /******/ (() => {
  12848. /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
  12849. /******/ })();
  12850. /******/
  12851. /******/ /* webpack/runtime/make namespace object */
  12852. /******/ (() => {
  12853. /******/ // define __esModule on exports
  12854. /******/ __webpack_require__.r = (exports) => {
  12855. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  12856. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  12857. /******/ }
  12858. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  12859. /******/ };
  12860. /******/ })();
  12861. /******/
  12862. /******/ /* webpack/runtime/node module decorator */
  12863. /******/ (() => {
  12864. /******/ __webpack_require__.nmd = (module) => {
  12865. /******/ module.paths = [];
  12866. /******/ if (!module.children) module.children = [];
  12867. /******/ return module;
  12868. /******/ };
  12869. /******/ })();
  12870. /******/
  12871. /******/ /* webpack/runtime/nonce */
  12872. /******/ (() => {
  12873. /******/ __webpack_require__.nc = undefined;
  12874. /******/ })();
  12875. /******/
  12876. /************************************************************************/
  12877. var __webpack_exports__ = {};
  12878. // This entry need to be wrapped in an IIFE because it need to be in strict mode.
  12879. (() => {
  12880. "use strict";
  12881. var exports = __webpack_exports__;
  12882. /*!**********************!*\
  12883. !*** ./src/index.ts ***!
  12884. \**********************/
  12885. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12886. exports.ModalHeader = exports.ModalFooter = exports.ModalContent = exports.Modal = exports.Preloader = exports.Progress = exports.SideNavUser = exports.SideNavEl = exports.SideNav = exports.Navigation = exports.NavBarBrand = exports.NavBarItem = exports.NavBarGroup = exports.NavBar = exports.CardAction = exports.CardTitle = exports.CardContent = exports.Card = exports.CollapsBody = exports.Collapsible = exports.CollapsTrigger = exports.Parallax = exports.Divider = exports.Overlay = exports.Col = exports.Row = exports.Icon = exports.Chip = exports.Badge = exports.Button = exports.CollectionItem = exports.Collection = exports.Field = exports.Textarea = void 0;
  12887. __webpack_require__(/*! ./sass/d3v4pp.scss */ "./src/sass/d3v4pp.scss");
  12888. var Textarea_1 = __webpack_require__(/*! ./cmps/forms/Textarea */ "./src/cmps/forms/Textarea.tsx");
  12889. Object.defineProperty(exports, "Textarea", ({ enumerable: true, get: function () { return Textarea_1.Textarea; } }));
  12890. var Field_1 = __webpack_require__(/*! ./cmps/forms/Field */ "./src/cmps/forms/Field.tsx");
  12891. Object.defineProperty(exports, "Field", ({ enumerable: true, get: function () { return Field_1.Field; } }));
  12892. var Collection_1 = __webpack_require__(/*! ./cmps/collections/Collection */ "./src/cmps/collections/Collection.tsx");
  12893. Object.defineProperty(exports, "Collection", ({ enumerable: true, get: function () { return Collection_1.Collection; } }));
  12894. Object.defineProperty(exports, "CollectionItem", ({ enumerable: true, get: function () { return Collection_1.CollectionItem; } }));
  12895. var Button_1 = __webpack_require__(/*! ./cmps/button/Button */ "./src/cmps/button/Button.tsx");
  12896. Object.defineProperty(exports, "Button", ({ enumerable: true, get: function () { return Button_1.Button; } }));
  12897. var Badge_1 = __webpack_require__(/*! ./cmps/badge/Badge */ "./src/cmps/badge/Badge.tsx");
  12898. Object.defineProperty(exports, "Badge", ({ enumerable: true, get: function () { return Badge_1.Badge; } }));
  12899. var Chip_1 = __webpack_require__(/*! ./cmps/chip/Chip */ "./src/cmps/chip/Chip.tsx");
  12900. Object.defineProperty(exports, "Chip", ({ enumerable: true, get: function () { return Chip_1.Chip; } }));
  12901. var Icon_1 = __webpack_require__(/*! ./cmps/icons/Icon */ "./src/cmps/icons/Icon.tsx");
  12902. Object.defineProperty(exports, "Icon", ({ enumerable: true, get: function () { return Icon_1.Icon; } }));
  12903. var Layouts_1 = __webpack_require__(/*! ./cmps/layouts/Layouts */ "./src/cmps/layouts/Layouts.tsx");
  12904. Object.defineProperty(exports, "Row", ({ enumerable: true, get: function () { return Layouts_1.Row; } }));
  12905. Object.defineProperty(exports, "Col", ({ enumerable: true, get: function () { return Layouts_1.Col; } }));
  12906. Object.defineProperty(exports, "Overlay", ({ enumerable: true, get: function () { return Layouts_1.Overlay; } }));
  12907. Object.defineProperty(exports, "Divider", ({ enumerable: true, get: function () { return Layouts_1.Divider; } }));
  12908. Object.defineProperty(exports, "Parallax", ({ enumerable: true, get: function () { return Layouts_1.Parallax; } }));
  12909. var Collapsible_1 = __webpack_require__(/*! ./cmps/collapsible/Collapsible */ "./src/cmps/collapsible/Collapsible.tsx");
  12910. Object.defineProperty(exports, "CollapsTrigger", ({ enumerable: true, get: function () { return Collapsible_1.CollapsTrigger; } }));
  12911. Object.defineProperty(exports, "Collapsible", ({ enumerable: true, get: function () { return Collapsible_1.Collapsible; } }));
  12912. Object.defineProperty(exports, "CollapsBody", ({ enumerable: true, get: function () { return Collapsible_1.CollapsBody; } }));
  12913. var Card_1 = __webpack_require__(/*! ./cmps/card/Card */ "./src/cmps/card/Card.tsx");
  12914. Object.defineProperty(exports, "Card", ({ enumerable: true, get: function () { return Card_1.Card; } }));
  12915. Object.defineProperty(exports, "CardContent", ({ enumerable: true, get: function () { return Card_1.CardContent; } }));
  12916. Object.defineProperty(exports, "CardTitle", ({ enumerable: true, get: function () { return Card_1.CardTitle; } }));
  12917. Object.defineProperty(exports, "CardAction", ({ enumerable: true, get: function () { return Card_1.CardAction; } }));
  12918. var NavBar_1 = __webpack_require__(/*! ./cmps/navigation/NavBar */ "./src/cmps/navigation/NavBar.tsx");
  12919. Object.defineProperty(exports, "NavBar", ({ enumerable: true, get: function () { return NavBar_1.NavBar; } }));
  12920. Object.defineProperty(exports, "NavBarGroup", ({ enumerable: true, get: function () { return NavBar_1.NavBarGroup; } }));
  12921. Object.defineProperty(exports, "NavBarItem", ({ enumerable: true, get: function () { return NavBar_1.NavBarItem; } }));
  12922. Object.defineProperty(exports, "NavBarBrand", ({ enumerable: true, get: function () { return NavBar_1.NavBarBrand; } }));
  12923. var Navigation_1 = __webpack_require__(/*! ./cmps/navigation/Navigation */ "./src/cmps/navigation/Navigation.tsx");
  12924. Object.defineProperty(exports, "Navigation", ({ enumerable: true, get: function () { return Navigation_1.Navigation; } }));
  12925. var SideNav_1 = __webpack_require__(/*! ./cmps/navigation/SideNav */ "./src/cmps/navigation/SideNav.tsx");
  12926. Object.defineProperty(exports, "SideNav", ({ enumerable: true, get: function () { return SideNav_1.SideNav; } }));
  12927. Object.defineProperty(exports, "SideNavEl", ({ enumerable: true, get: function () { return SideNav_1.SideNavEl; } }));
  12928. Object.defineProperty(exports, "SideNavUser", ({ enumerable: true, get: function () { return SideNav_1.SideNavUser; } }));
  12929. var Progress_1 = __webpack_require__(/*! ./cmps/progress/Progress */ "./src/cmps/progress/Progress.tsx");
  12930. Object.defineProperty(exports, "Progress", ({ enumerable: true, get: function () { return Progress_1.Progress; } }));
  12931. Object.defineProperty(exports, "Preloader", ({ enumerable: true, get: function () { return Progress_1.Preloader; } }));
  12932. var Modal_1 = __webpack_require__(/*! ./cmps/modal/Modal */ "./src/cmps/modal/Modal.tsx");
  12933. Object.defineProperty(exports, "Modal", ({ enumerable: true, get: function () { return Modal_1.Modal; } }));
  12934. Object.defineProperty(exports, "ModalContent", ({ enumerable: true, get: function () { return Modal_1.ModalContent; } }));
  12935. Object.defineProperty(exports, "ModalFooter", ({ enumerable: true, get: function () { return Modal_1.ModalFooter; } }));
  12936. Object.defineProperty(exports, "ModalHeader", ({ enumerable: true, get: function () { return Modal_1.ModalHeader; } }));
  12937. ////////ux
  12938. // export { Login, LoginProps } from "./ux";
  12939. // ///DataTable
  12940. // import DataTable from './DataTable/DataTable';
  12941. //
  12942. // export { defaultThemes, createTheme } from './DataTable/themes';
  12943. // export * from './DataTable/constants';
  12944. // export type {
  12945. // TableProps,
  12946. // TableProps as IDataTableProps, // this is for backwards compat with v6
  12947. // TableColumn,
  12948. // TableRow,
  12949. // TableStyles,
  12950. // Theme,
  12951. // Themes,
  12952. // ConditionalStyles,
  12953. // ExpanderComponentProps,
  12954. // PaginationComponentProps,
  12955. // PaginationOptions,
  12956. // PaginationServerOptions,
  12957. // ContextMessage,
  12958. // SortOrder,
  12959. // SortFunction,
  12960. // Selector,
  12961. // } from './DataTable/types';
  12962. //
  12963. // export default DataTable;
  12964. })();
  12965. /******/ return __webpack_exports__;
  12966. /******/ })()
  12967. ;
  12968. });
  12969. //# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDhCQUE4QjtBQUM5Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUM7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDOztBQUVBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCOztBQUVBO0FBQ0EsNkJBQTZCO0FBQzdCOztBQUVBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esc0NBQXNDO0FBQ3RDLHlGQUF5RjtBQUN6Riw2Q0FBNkM7QUFDN0MsMENBQTBDO0FBQzFDO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLDRCQUE0QjtBQUM1QiwwQkFBMEI7QUFDMUIseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0IsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxPQUFPLHc2Q0FBdzZDLEtBQUssV0FBVyxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssV0FBVyxNQUFNLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxPQUFPLE1BQU0sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLFVBQVUsS0FBSyxNQUFNLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxRQUFRLFFBQVEscUJBQXFCLFFBQVEsYUFBYSxLQUFLLFdBQVcscUJBQXFCLFdBQVcsVUFBVSxVQUFVLFVBQVUsUUFBUSxPQUFPLFVBQVUscUJBQXFCLFFBQVEsT0FBTyxVQUFVLHFCQUFxQixRQUFRLGFBQWEsTUFBTSxXQUFXLHFCQUFxQixRQUFRLFFBQVEsV0FBVyxxQkFBcUIsUUFBUSxhQUFhLEtBQUssV0FBVyxxQkFBcUIsV0FBVyxXQUFXLFdBQVcsUUFBUSxVQUFVLHFCQUFxQixRQUFRLE9BQU8sVUFBVSxRQUFRLE9BQU8sVUFBVSxRQUFRLFVBQVUscUJBQXFCLFFBQVEsWUFBWSxxQkFBcUIsUUFBUSxpQkFBaUIscUJBQXFCLFFBQVEsT0FBTyxxQkFBcUIsUUFBUSxRQUFRLHFCQUFxQixRQUFRLFFBQVEsV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sVUFBVSxRQUFRLE9BQU8sV0FBVyxXQUFXLFFBQVEsWUFBWSxPQUFPLHFCQUFxQixRQUFRLGFBQWEsS0FBSyxXQUFXLFVBQVUsUUFBUSxPQUFPLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixVQUFVLFdBQVcsc0JBQXNCLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxVQUFVLFFBQVEsUUFBUSxxQkFBcUIsV0FBVyxXQUFXLHFCQUFxQixXQUFXLFdBQVcsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFFBQVEsT0FBTyxVQUFVLFdBQVcsVUFBVSxRQUFRLE9BQU8sV0FBVyxVQUFVLFVBQVUsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsUUFBUSxPQUFPLFVBQVUsVUFBVSxXQUFXLFFBQVEsT0FBTyxVQUFVLFVBQVUsV0FBVyxXQUFXLFVBQVUsUUFBUSxPQUFPLFVBQVUsV0FBVyxVQUFVLFdBQVcsVUFBVSxXQUFXLFVBQVUsV0FBVyxPQUFPLE9BQU8sV0FBVyxVQUFVLE9BQU8sT0FBTyxVQUFVLFVBQVUsUUFBUSxhQUFhLEtBQUssVUFBVSxVQUFVLFdBQVcsVUFBVSxXQUFXLFdBQVcsUUFBUSxPQUFPLFVBQVUsVUFBVSxXQUFXLFdBQVcsVUFBVSxVQUFVLFFBQVEsT0FBTyxXQUFXLFVBQVUsV0FBVyxVQUFVLFdBQVcsVUFBVSxVQUFVLFFBQVEsWUFBWSxLQUFLLFVBQVUsVUFBVSxXQUFXLFVBQVUsV0FBVyxVQUFVLFFBQVEsT0FBTyxXQUFXLFFBQVEsT0FBTyxXQUFXLFFBQVEsT0FBTyxXQUFXLFFBQVEsT0FBTyxVQUFVLFFBQVEsT0FBTyxVQUFVLFVBQVUsUUFBUSxPQUFPLFVBQVUsV0FBVyxVQUFVLFFBQVEsT0FBTyxXQUFXLFVBQVUsVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsUUFBUSxPQUFPLFdBQVcsVUFBVSxVQUFVLFVBQVUsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFFBQVEsT0FBTyxXQUFXLFFBQVEsYUFBYSxLQUFLLFdBQVcsUUFBUSxPQUFPLFdBQVcsUUFBUSxhQUFhLEtBQUssV0FBVyxRQUFRLGFBQWEsS0FBSyxXQUFXLFFBQVEsYUFBYSxLQUFLLFdBQVcsUUFBUSxhQUFhLEtBQUssV0FBVyxRQUFRLGFBQWEsS0FBSyxXQUFXLFFBQVEsT0FBTyxXQUFXLE9BQU8sT0FBTyxXQUFXLFFBQVEsYUFBYSxLQUFLLEtBQUssV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsT0FBTyxPQUFPLFdBQVcsV0FBVyxVQUFVLFVBQVUsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLE9BQU8sT0FBTyxXQUFXLE9BQU8sT0FBTyxXQUFXLE9BQU8sT0FBTyxXQUFXLE9BQU8sT0FBTyxXQUFXLE9BQU8sT0FBTyxXQUFXLE9BQU8sT0FBTyxXQUFXLE9BQU8sT0FBTyxXQUFXLE9BQU8sT0FBTyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsT0FBTyxPQUFPLFdBQVcsVUFBVSxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxXQUFXLFFBQVEsT0FBTyxXQUFXLFdBQVcsT0FBTyxPQUFPLFdBQVcsVUFBVSxVQUFVLFVBQVUsUUFBUSxPQUFPLFdBQVcsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFFBQVEsT0FBTyxVQUFVLFFBQVEsYUFBYSxLQUFLLFVBQVUsUUFBUSxPQUFPLFVBQVUsVUFBVSxVQUFVLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxPQUFPLE9BQU8sVUFBVSxPQUFPLE9BQU8sTUFBTSxXQUFXLE9BQU8sS0FBSyxPQUFPLFVBQVUsT0FBTyxPQUFPLFVBQVUsT0FBTyxPQUFPLFVBQVUsT0FBTyxPQUFPLFdBQVcsV0FBVyxXQUFXLFVBQVUsVUFBVSxXQUFXLE9BQU8sT0FBTyxVQUFVLE9BQU8sT0FBTyxXQUFXLFdBQVcsV0FBVyxVQUFVLFVBQVUsV0FBVyxPQUFPLE9BQU8sVUFBVSxRQUFRLE9BQU8sVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsVUFBVSxXQUFXLFFBQVEsT0FBTyxVQUFVLFVBQVUsT0FBTyxPQUFPLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxPQUFPLE9BQU8sV0FBVyxXQUFXLFVBQVUsUUFBUSxPQUFPLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFdBQVcsUUFBUSxTQUFTLFVBQVUsVUFBVSxRQUFRLE9BQU8sVUFBVSxVQUFVLFdBQVcsUUFBUSxPQUFPLHFCQUFxQixxQkFBcUIsc0JBQXNCLHNCQUFzQixzQkFBc0IsV0FBVyxLQUFLLE1BQU0sUUFBUSxPQUFPLFVBQVUsV0FBVyxPQUFPLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxZQUFZLFdBQVcsUUFBUSxPQUFPLFVBQVUsUUFBUSxPQUFPLFdBQVcsUUFBUSxPQUFPLFdBQVcsUUFBUSxPQUFPLFVBQVUsV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLE9BQU8sT0FBTyxhQUFhLGVBQWUsYUFBYSxVQUFVLFdBQVcsT0FBTyxPQUFPLGFBQWEsUUFBUSxPQUFPLFdBQVcsV0FBVyxXQUFXLE9BQU8sUUFBUSxXQUFXLFVBQVUsVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLE9BQU8sT0FBTyxVQUFVLFdBQVcsVUFBVSxXQUFXLFdBQVcsT0FBTyxPQUFPLFVBQVUsT0FBTyxPQUFPLFVBQVUsT0FBTyxPQUFPLFdBQVcsVUFBVSxVQUFVLE9BQU8sT0FBTyxXQUFXLE9BQU8sT0FBTyxZQUFZLGNBQWMsUUFBUSxPQUFPLFVBQVUsT0FBTyxPQUFPLFVBQVUsV0FBVyxXQUFXLFFBQVEsT0FBTyxhQUFhLFFBQVEsT0FBTyxhQUFhLGFBQWEsV0FBVyxPQUFPLE9BQU8sV0FBVyxPQUFPLE9BQU8sV0FBVyxRQUFRLE9BQU8sVUFBVSxZQUFZLFNBQVMsT0FBTyxVQUFVLFVBQVUsUUFBUSxPQUFPLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxVQUFVLFVBQVUsV0FBVyxPQUFPLE9BQU8sV0FBVyxPQUFPLE9BQU8sV0FBVyxRQUFRLFFBQVEsTUFBTSxLQUFLLEtBQUssV0FBVyxPQUFPLE1BQU0sT0FBTyxLQUFLLFdBQVcsT0FBTyxNQUFNLE9BQU8sS0FBSyxXQUFXLE9BQU8sTUFBTSxPQUFPLEtBQUssV0FBVyxPQUFPLE1BQU0sT0FBTyxLQUFLLFdBQVcsT0FBTyxNQUFNLE9BQU8sS0FBSyxXQUFXLE9BQU8sTUFBTSxPQUFPLEtBQUssV0FBVyxPQUFPLE1BQU0sT0FBTyxLQUFLLFdBQVcsT0FBTyxNQUFNLE9BQU8sS0FBSyxXQUFXLE9BQU8sTUFBTSxPQUFPLEtBQUssV0FBVyxPQUFPLE1BQU0sT0FBTyxLQUFLLFdBQVcsT0FBTyxNQUFNLE9BQU8sS0FBSyxXQUFXLE9BQU8sTUFBTSxPQUFPLEtBQUssV0FBVyxPQUFPLE1BQU0sUUFBUSxNQUFNLEtBQUssV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxRQUFRLE9BQU8sVUFBVSxXQUFXLFdBQVcsUUFBUSxPQUFPLFVBQVUsV0FBVyxXQUFXLFdBQVcsUUFBUSxPQUFPLFdBQVcsUUFBUSxPQUFPLFVBQVUsVUFBVSxXQUFXLFdBQVcsVUFBVSxXQUFXLFVBQVUsVUFBVSxVQUFVLFdBQVcsT0FBTyxPQUFPLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxPQUFPLE9BQU8sVUFBVSxPQUFPLE9BQU8sV0FBVyxRQUFRLE9BQU8sV0FBVyxVQUFVLFdBQVcsWUFBWSxZQUFZLFlBQVksUUFBUSxPQUFPLFdBQVcsUUFBUSxPQUFPLFdBQVcsUUFBUSxPQUFPLFdBQVcsUUFBUSxPQUFPLFdBQVcsVUFBVSxXQUFXLFFBQVEsT0FBTyxXQUFXLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsT0FBTyxPQUFPLFVBQVUsYUFBYSxZQUFZLE9BQU8sT0FBTyxVQUFVLFdBQVcsVUFBVSxVQUFVLFdBQVcsT0FBTyxPQUFPLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxRQUFRLE9BQU8sVUFBVSxXQUFXLFdBQVcsWUFBWSxZQUFZLFVBQVUsV0FBVyxPQUFPLE9BQU8sV0FBVyxXQUFXLE9BQU8sT0FBTyxVQUFVLE9BQU8sT0FBTyxXQUFXLFVBQVUsV0FBVyxXQUFXLFVBQVUsVUFBVSxZQUFZLFVBQVUsVUFBVSxXQUFXLFdBQVcsT0FBTyxPQUFPLFdBQVcsV0FBVyxPQUFPLE9BQU8sVUFBVSxXQUFXLFFBQVEsT0FBTyxXQUFXLFVBQVUsV0FBVyxRQUFRLE9BQU8sV0FBVyxXQUFXLFFBQVEsT0FBTyxXQUFXLFdBQVcsV0FBVyxXQUFXLFFBQVEsT0FBTyxVQUFVLFVBQVUsV0FBVyxXQUFXLFVBQVUsYUFBYSxhQUFhLE9BQU8sT0FBTyxVQUFVLE9BQU8sT0FBTyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsUUFBUSxPQUFPLFdBQVcsUUFBUSxPQUFPLFVBQVUsV0FBVyxXQUFXLFVBQVUsUUFBUSxRQUFRLFVBQVUsV0FBVyxPQUFPLFFBQVEsVUFBVSxPQUFPLFFBQVEsV0FBVyxVQUFVLFdBQVcsVUFBVSxVQUFVLE9BQU8sUUFBUSxXQUFXLE9BQU8sUUFBUSxXQUFXLE9BQU8sUUFBUSxVQUFVLFlBQVksUUFBUSxRQUFRLFdBQVcsUUFBUSxPQUFPLFVBQVUsV0FBVyxPQUFPLE9BQU8sV0FBVyxVQUFVLFdBQVcsT0FBTyxPQUFPLFdBQVcsVUFBVSxRQUFRLE9BQU8sV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLE9BQU8sT0FBTyxhQUFhLGVBQWUsYUFBYSxVQUFVLFdBQVcsT0FBTyxPQUFPLFdBQVcsV0FBVyxXQUFXLE9BQU8sUUFBUSxXQUFXLFVBQVUsVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLE9BQU8sT0FBTyxVQUFVLFdBQVcsVUFBVSxXQUFXLFdBQVcsT0FBTyxPQUFPLFVBQVUsT0FBTyxPQUFPLFVBQVUsT0FBTyxPQUFPLFdBQVcsVUFBVSxVQUFVLE9BQU8sT0FBTyxXQUFXLE9BQU8sT0FBTyxZQUFZLGNBQWMsUUFBUSxPQUFPLFVBQVUsT0FBTyxPQUFPLFVBQVUsV0FBVyxXQUFXLFFBQVEsT0FBTyxhQUFhLFFBQVEsT0FBTyxZQUFZLFlBQVksV0FBVyxPQUFPLE9BQU8sV0FBVyxPQUFPLE9BQU8sV0FBVyxPQUFPLE9BQU8sVUFBVSxXQUFXLFNBQVMsT0FBTyxZQUFZLFFBQVEsT0FBTyxVQUFVLGFBQWEsU0FBUyxPQUFPLGFBQWEsY0FBYyxTQUFTLE9BQU8sTUFBTSxXQUFXLEtBQUssWUFBWSxTQUFTLGFBQWEsaUJBQWlCLFdBQVcsVUFBVSxZQUFZLFlBQVksVUFBVSxVQUFVLFVBQVUsWUFBWSxjQUFjLFlBQVksWUFBWSxXQUFXLFdBQVcsT0FBTywrQkFBK0IsYUFBYSxlQUFlLFFBQVEsK0JBQStCLGFBQWEsUUFBUSxtQkFBbUIsV0FBVyxXQUFXLE9BQU8sbUJBQW1CLFdBQVcsUUFBUSxtQkFBbUIsV0FBVyxRQUFRLG1CQUFtQixXQUFXLE9BQU8sbUJBQW1CLFVBQVUsT0FBTyxhQUFhLDZCQUE2QixXQUFXLFdBQVcsUUFBUSwrQkFBK0IsYUFBYSxhQUFhLFFBQVEsdURBQXVELFdBQVcsV0FBVyxXQUFXLFFBQVEsK0JBQStCLFdBQVcsV0FBVyxTQUFTLCtCQUErQixXQUFXLFdBQVcsUUFBUSxtQkFBbUIsVUFBVSxVQUFVLFdBQVcsVUFBVSxVQUFVLFVBQVUsV0FBVyxRQUFRLE9BQU8sWUFBWSxXQUFXLFdBQVcsT0FBTyxPQUFPLFdBQVcsV0FBVyxXQUFXLE9BQU8sUUFBUSxXQUFXLE9BQU8sT0FBTyxVQUFVLE9BQU8sUUFBUSxXQUFXLE9BQU8sT0FBTyxZQUFZLGFBQWEsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLE9BQU8sT0FBTyxXQUFXLFdBQVcsT0FBTyxPQUFPLFdBQVcsV0FBVyxPQUFPLE9BQU8sV0FBVyxXQUFXLFVBQVUsVUFBVSxXQUFXLE9BQU8sT0FBTyxVQUFVLFdBQVcsVUFBVSxVQUFVLE9BQU8sT0FBTyxXQUFXLFdBQVcsWUFBWSxZQUFZLE9BQU8sT0FBTyxXQUFXLFFBQVEsWUFBWSxXQUFXLFVBQVUsV0FBVyxPQUFPLE9BQU8sWUFBWSxRQUFRLE9BQU8sS0FBSyxVQUFVLFdBQVcsT0FBTyxLQUFLLE9BQU8sS0FBSyxVQUFVLFdBQVcsT0FBTyxNQUFNLGFBQWEsS0FBSyxVQUFVLFdBQVcsV0FBVyxPQUFPLE9BQU8sVUFBVSxXQUFXLFdBQVcsVUFBVSxXQUFXLE9BQU8sT0FBTyxZQUFZLFdBQVcsV0FBVyxVQUFVLE9BQU8sT0FBTyxVQUFVLE9BQU8sT0FBTyxVQUFVLFVBQVUsT0FBTyxPQUFPLFdBQVcsVUFBVSxVQUFVLFdBQVcsVUFBVSxXQUFXLFlBQVksUUFBUSxZQUFZLEtBQUssVUFBVSxXQUFXLFlBQVksT0FBTyxPQUFPLFdBQVcsc0JBQXNCLHNCQUFzQixVQUFVLFlBQVksWUFBWSxRQUFRLE9BQU8sV0FBVyxXQUFXLFdBQVcsc0JBQXNCLHNCQUFzQixXQUFXLFVBQVUsVUFBVSxRQUFRLGFBQWEsS0FBSyxVQUFVLFFBQVEsT0FBTyxXQUFXLFFBQVEsYUFBYSxLQUFLLFdBQVcsUUFBUSxRQUFRLE1BQU0sTUFBTSxXQUFXLFVBQVUsV0FBVyxTQUFTLFNBQVMsV0FBVyxXQUFXLFVBQVUsV0FBVyxVQUFVLFdBQVcsVUFBVSxXQUFXLFdBQVcsU0FBUyxTQUFTLFVBQVUsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFNBQVMsY0FBYyxVQUFVLFdBQVcsU0FBUyxTQUFTLFdBQVcsU0FBUyxRQUFRLFdBQVcsU0FBUyxjQUFjLEtBQUssV0FBVyxTQUFTLFVBQVUsWUFBWSxRQUFRLFNBQVMsYUFBYSxTQUFTLFFBQVEsV0FBVyxTQUFTLGNBQWMsS0FBSyxXQUFXLFNBQVMsY0FBYyxLQUFLLFdBQVcsU0FBUyxjQUFjLEtBQUssV0FBVyxTQUFTLFFBQVEsVUFBVSxhQUFhLFNBQVMsY0FBYyxNQUFNLFdBQVcsYUFBYSxTQUFTLFFBQVEsYUFBYSxTQUFTLFFBQVEsYUFBYSxTQUFTLFFBQVEsYUFBYSxlQUFlLFNBQVMsUUFBUSxNQUFNLFdBQVcsTUFBTSxXQUFXLFVBQVUsV0FBVyxTQUFTLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxXQUFXLFVBQVUsV0FBVyxVQUFVLFdBQVcsVUFBVSxXQUFXLFFBQVEsUUFBUSxVQUFVLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxVQUFVLFdBQVcsUUFBUSxRQUFRLFVBQVUsV0FBVyxRQUFRLFFBQVEsVUFBVSxhQUFhLFFBQVEsUUFBUSxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsU0FBUyxRQUFRLFVBQVUsVUFBVSxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxRQUFRLFFBQVEsV0FBVyxXQUFXLFNBQVMsY0FBYyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxRQUFRLFFBQVEsV0FBVyxXQUFXLFNBQVMsUUFBUSxXQUFXLFFBQVEsU0FBUyxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxRQUFRLFFBQVEsVUFBVSxVQUFVLFdBQVcsVUFBVSxVQUFVLFdBQVcsV0FBVyxRQUFRLFFBQVEsVUFBVSxVQUFVLFdBQVcsV0FBVyxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsVUFBVSxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsUUFBUSxRQUFRLFVBQVUsVUFBVSxVQUFVLFdBQVcsWUFBWSxXQUFXLFFBQVEsUUFBUSxXQUFXLGFBQWEsYUFBYSxRQUFRLFFBQVEsV0FBVyxZQUFZLGFBQWEsUUFBUSxRQUFRLFdBQVcsV0FBVyxRQUFRLFFBQVEsV0FBVyxhQUFhLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxhQUFhLGVBQWUsU0FBUyxRQUFRLE1BQU0sTUFBTSxXQUFXLFdBQVcsU0FBUyxRQUFRLFVBQVUsU0FBUyxRQUFRLFVBQVUsVUFBVSxVQUFVLFFBQVEsUUFBUSxhQUFhLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxZQUFZLFNBQVMsUUFBUSxVQUFVLFdBQVcsV0FBVyxVQUFVLFVBQVUsYUFBYSxjQUFjLFlBQVksV0FBVyxVQUFVLFFBQVEsUUFBUSxVQUFVLFdBQVcsV0FBVyxVQUFVLFVBQVUsV0FBVyxVQUFVLFVBQVUsV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsYUFBYSxhQUFhLFNBQVMsU0FBUyxXQUFXLFdBQVcsU0FBUyxTQUFTLFdBQVcsV0FBVyxTQUFTLFFBQVEsVUFBVSxXQUFXLFNBQVMsU0FBUyxZQUFZLFNBQVMsUUFBUSxNQUFNLEtBQUssVUFBVSxTQUFTLFFBQVEsV0FBVyxVQUFVLFFBQVEsYUFBYSxZQUFZLFdBQVcsYUFBYSxhQUFhLFlBQVksUUFBUSxRQUFRLFdBQVcsU0FBUyxRQUFRLFlBQVksUUFBUSxRQUFRLFVBQVUsV0FBVyxRQUFRLFFBQVEsV0FBVyxVQUFVLFdBQVcsVUFBVSxXQUFXLFVBQVUsV0FBVyxhQUFhLFdBQVcsVUFBVSxXQUFXLFVBQVUsVUFBVSxXQUFXLFVBQVUsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsUUFBUSxRQUFRLFdBQVcsVUFBVSxZQUFZLFNBQVMsUUFBUSxhQUFhLFNBQVMsUUFBUSxhQUFhLFFBQVEsUUFBUSxhQUFhLFNBQVMsUUFBUSxhQUFhLFlBQVksV0FBVyxTQUFTLFFBQVEsYUFBYSxTQUFTLFVBQVUsYUFBYSxhQUFhLFNBQVMsUUFBUSxhQUFhLFNBQVMsUUFBUSxhQUFhLFFBQVEsUUFBUSxhQUFhLFNBQVMsUUFBUSxXQUFXLFVBQVUsV0FBVyxTQUFTLFFBQVEsWUFBWSxVQUFVLFFBQVEsV0FBVyxVQUFVLFNBQVMsUUFBUSxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxXQUFXLFNBQVMsUUFBUSxNQUFNLEtBQUssV0FBVyxRQUFRLFFBQVEsV0FBVyxXQUFXLFFBQVEsUUFBUSxXQUFXLFNBQVMsUUFBUSxVQUFVLFdBQVcsYUFBYSxPQUFPLFFBQVEsVUFBVSxRQUFRLFFBQVEsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsUUFBUSxRQUFRLFVBQVUsU0FBUyxRQUFRLE1BQU0sS0FBSyxXQUFXLFNBQVMsU0FBUyxVQUFVLFNBQVMsUUFBUSxXQUFXLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFFBQVEsUUFBUSxVQUFVLFNBQVMsUUFBUSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLGFBQWEsYUFBYSxXQUFXLFdBQVcsUUFBUSxRQUFRLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxVQUFVLFdBQVcsVUFBVSxVQUFVLFNBQVMsUUFBUSxXQUFXLFNBQVMsUUFBUSxZQUFZLFlBQVksVUFBVSxTQUFTLFFBQVEsV0FBVyxVQUFVLFVBQVUsV0FBVyxhQUFhLGFBQWEsV0FBVyxhQUFhLGFBQWEsV0FBVyxTQUFTLFFBQVEsV0FBVyxTQUFTLFFBQVEsV0FBVyxXQUFXLFdBQVcsU0FBUyxRQUFRLFlBQVksWUFBWSxVQUFVLFNBQVMsUUFBUSxVQUFVLFNBQVMsUUFBUSxXQUFXLFVBQVUsVUFBVSxXQUFXLGFBQWEsYUFBYSxZQUFZLFNBQVMsUUFBUSxXQUFXLFdBQVcsU0FBUyxRQUFRLFdBQVcsU0FBUyxRQUFRLFdBQVcsWUFBWSxXQUFXLFdBQVcsV0FBVyxXQUFXLFNBQVMsUUFBUSxXQUFXLFNBQVMsUUFBUSxXQUFXLFNBQVMsUUFBUSxXQUFXLFVBQVUsVUFBVSxXQUFXLGFBQWEsYUFBYSxTQUFTLFFBQVEsV0FBVyxTQUFTLFFBQVEsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxTQUFTLFFBQVEsV0FBVyxTQUFTLFFBQVEsV0FBVyxTQUFTLFFBQVEsVUFBVSxVQUFVLFdBQVcsVUFBVSxXQUFXLFNBQVMsUUFBUSxVQUFVLFVBQVUsWUFBWSxXQUFXLFdBQVcsV0FBVyxTQUFTLFFBQVEsWUFBWSxVQUFVLFFBQVEsWUFBWSxVQUFVLFFBQVEsWUFBWSxVQUFVLFFBQVEsWUFBWSxVQUFVLFFBQVEsWUFBWSxVQUFVLFFBQVEsWUFBWSxVQUFVLFFBQVEsV0FBVyxXQUFXLFlBQVksWUFBWSxZQUFZLFdBQVcsV0FBVyxVQUFVLFdBQVcsU0FBUyxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFlBQVksVUFBVSxRQUFRLFdBQVcsU0FBUyxRQUFRLFVBQVUsV0FBVyxVQUFVLFNBQVMsUUFBUSxLQUFLLFVBQVUsUUFBUSxLQUFLLFFBQVEsS0FBSyxVQUFVLFFBQVEsS0FBSyxRQUFRLFdBQVcsV0FBVyxTQUFTLFFBQVEsV0FBVyxXQUFXLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxVQUFVLFNBQVMsUUFBUSxXQUFXLFdBQVcsV0FBVyxRQUFRLFFBQVEsVUFBVSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsV0FBVyxXQUFXLFVBQVUsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLEtBQUssV0FBVyxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsV0FBVyxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsV0FBVyxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsV0FBVyxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsV0FBVyxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsV0FBVyxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsV0FBVyxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsV0FBVyxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxZQUFZLFVBQVUsVUFBVSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLEtBQUssUUFBUSxLQUFLLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsWUFBWSxVQUFVLFVBQVUsUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFlBQVksUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxLQUFLLFFBQVEsS0FBSyxXQUFXLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxXQUFXLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxVQUFVLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxXQUFXLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxXQUFXLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxVQUFVLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxXQUFXLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxXQUFXLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxVQUFVLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxXQUFXLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxXQUFXLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxVQUFVLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsTUFBTSxRQUFRLFVBQVUsWUFBWSxZQUFZLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLGNBQWMsYUFBYSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsUUFBUSxRQUFRLFVBQVUsVUFBVSxXQUFXLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFdBQVcsUUFBUSxRQUFRLFdBQVcsVUFBVSxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxVQUFVLFFBQVEsUUFBUSxXQUFXLFdBQVcsUUFBUSxRQUFRLGNBQWMsYUFBYSxhQUFhLGNBQWMsYUFBYSxpQkFBaUIsYUFBYSxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsYUFBYSxRQUFRLFFBQVEsWUFBWSxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsY0FBYyxRQUFRLFNBQVMsVUFBVSxhQUFhLGlCQUFpQixjQUFjLFVBQVUsV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsVUFBVSxXQUFXLFdBQVcsYUFBYSxjQUFjLGNBQWMsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsV0FBVyxXQUFXLFFBQVEsUUFBUSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsUUFBUSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsVUFBVSxRQUFRLFNBQVMsWUFBWSxhQUFhLFFBQVEsUUFBUSxXQUFXLFdBQVcsUUFBUSxRQUFRLFdBQVcsV0FBVyxTQUFTLFFBQVEsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFFBQVEsUUFBUSxVQUFVLFNBQVMsUUFBUSxVQUFVLFdBQVcsVUFBVSxRQUFRLFFBQVEsVUFBVSxVQUFVLFNBQVMsUUFBUSxLQUFLLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFdBQVcsUUFBUSxLQUFLLFNBQVMsYUFBYSxRQUFRLFNBQVMsWUFBWSxTQUFTLFFBQVEsVUFBVSxTQUFTLFFBQVEsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsV0FBVyxVQUFVLFVBQVUsU0FBUyxRQUFRLFdBQVcsV0FBVyxTQUFTLFNBQVMsWUFBWSxlQUFlLGFBQWEsWUFBWSxlQUFlLGNBQWMsYUFBYSxXQUFXLFdBQVcsU0FBUyxzQkFBc0IsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFFBQVEsc0JBQXNCLFdBQVcsV0FBVyxTQUFTLFlBQVksYUFBYSxhQUFhLFFBQVEsWUFBWSxjQUFjLGNBQWMsU0FBUyxTQUFTLFdBQVcsU0FBUyxRQUFRLFdBQVcsYUFBYSxpQkFBaUIsY0FBYyxXQUFXLFdBQVcsVUFBVSxRQUFRLFFBQVEsY0FBYyxTQUFTLFFBQVEsWUFBWSxhQUFhLGNBQWMsV0FBVyxVQUFVLGFBQWEsZ0JBQWdCLGlCQUFpQixhQUFhLGNBQWMsaUJBQWlCLGNBQWMsVUFBVSxXQUFXLFFBQVEsUUFBUSxhQUFhLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxhQUFhLGdCQUFnQixhQUFhLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxjQUFjLFFBQVEsUUFBUSxhQUFhLGdCQUFnQixRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsY0FBYyxRQUFRLFFBQVEsV0FBVyxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxXQUFXLFdBQVcsYUFBYSxpQkFBaUIsaUJBQWlCLFNBQVMsUUFBUSxZQUFZLFNBQVMsUUFBUSxXQUFXLFVBQVUsVUFBVSxXQUFXLFdBQVcsVUFBVSxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxVQUFVLFVBQVUsV0FBVyxVQUFVLFVBQVUsV0FBVyxVQUFVLFFBQVEsUUFBUSxXQUFXLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsVUFBVSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFVBQVUsVUFBVSxVQUFVLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFVBQVUsWUFBWSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxVQUFVLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxXQUFXLFVBQVUsVUFBVSxXQUFXLFFBQVEsUUFBUSxVQUFVLFdBQVcsV0FBVyxVQUFVLFVBQVUsV0FBVyxXQUFXLFVBQVUsY0FBYyxhQUFhLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxVQUFVLFVBQVUsV0FBVyxXQUFXLFVBQVUsVUFBVSxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxXQUFXLFVBQVUsVUFBVSxVQUFVLGFBQWEsZ0JBQWdCLGdCQUFnQixnQkFBZ0IsY0FBYyxTQUFTLFFBQVEsV0FBVyxXQUFXLGFBQWEsYUFBYSxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxXQUFXLFdBQVcsVUFBVSxTQUFTLFFBQVEsYUFBYSxpQkFBaUIsZ0JBQWdCLGFBQWEsUUFBUSxRQUFRLGNBQWMsU0FBUyxRQUFRLGFBQWEsaUJBQWlCLGdCQUFnQixRQUFRLFFBQVEsY0FBYyxTQUFTLFFBQVEsVUFBVSxTQUFTLFFBQVEsVUFBVSxVQUFVLFNBQVMsUUFBUSxXQUFXLFdBQVcsV0FBVyxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsWUFBWSxZQUFZLFFBQVEsUUFBUSxZQUFZLFlBQVksUUFBUSxRQUFRLFVBQVUsV0FBVyxXQUFXLFFBQVEsUUFBUSxZQUFZLFlBQVksUUFBUSxRQUFRLFVBQVUsWUFBWSxZQUFZLFFBQVEsUUFBUSxZQUFZLFlBQVksUUFBUSxRQUFRLFVBQVUsWUFBWSxZQUFZLFFBQVEsUUFBUSxZQUFZLFlBQVksUUFBUSxRQUFRLFVBQVUsV0FBVyxXQUFXLFFBQVEsUUFBUSxZQUFZLFlBQVksUUFBUSxRQUFRLFVBQVUsWUFBWSxZQUFZLFFBQVEsUUFBUSxZQUFZLFlBQVksUUFBUSxRQUFRLFVBQVUsWUFBWSxZQUFZLFFBQVEsUUFBUSxZQUFZLFlBQVksUUFBUSxRQUFRLFVBQVUsV0FBVyxXQUFXLFFBQVEsUUFBUSxZQUFZLFlBQVksUUFBUSxRQUFRLFVBQVUsWUFBWSxZQUFZLFFBQVEsUUFBUSxZQUFZLFlBQVksUUFBUSxRQUFRLFlBQVksV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFNBQVMsUUFBUSxVQUFVLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsUUFBUSxRQUFRLHFCQUFxQixxQkFBcUIsV0FBVyxVQUFVLFVBQVUsV0FBVyxRQUFRLFFBQVEsV0FBVyxVQUFVLFVBQVUsUUFBUSxRQUFRLEtBQUssV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLE1BQU0sUUFBUSxXQUFXLFlBQVksYUFBYSxXQUFXLGFBQWEsU0FBUyxRQUFRLFdBQVcsV0FBVyxhQUFhLGFBQWEsV0FBVyxRQUFRLFFBQVEsVUFBVSxXQUFXLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxVQUFVLFdBQVcsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFdBQVcsV0FBVyxRQUFRLFFBQVEsV0FBVyxVQUFVLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxXQUFXLFdBQVcsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFdBQVcsVUFBVSxVQUFVLFFBQVEsUUFBUSxVQUFVLFdBQVcsVUFBVSxXQUFXLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFVBQVUsV0FBVyxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxRQUFRLFFBQVEsWUFBWSxhQUFhLFVBQVUsVUFBVSxVQUFVLFlBQVksT0FBTyxRQUFRLFlBQVksYUFBYSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxXQUFXLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsV0FBVyxXQUFXLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFlBQVksZUFBZSxhQUFhLFdBQVcsUUFBUSxRQUFRLGFBQWEsUUFBUSxRQUFRLFlBQVksYUFBYSxhQUFhLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsVUFBVSxTQUFTLGVBQWUsS0FBSyxXQUFXLFdBQVcsV0FBVyxnQkFBZ0IsS0FBSyxLQUFLLFdBQVcsV0FBVyxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxVQUFVLFFBQVEsUUFBUSxXQUFXLFdBQVcsV0FBVyxTQUFTLFFBQVEsS0FBSyxXQUFXLFFBQVEsS0FBSyxRQUFRLEtBQUssV0FBVyxRQUFRLEtBQUssUUFBUSxXQUFXLFVBQVUsVUFBVSxVQUFVLGNBQWMsU0FBUyxTQUFTLFdBQVcsU0FBUyxTQUFTLFdBQVcsU0FBUyxTQUFTLFdBQVcsU0FBUyxTQUFTLFdBQVcsU0FBUyxtQkFBbUIsS0FBSyxLQUFLLFdBQVcsV0FBVyxXQUFXLFNBQVMsUUFBUSxXQUFXLFdBQVcsV0FBVyxTQUFTLFFBQVEsV0FBVyxXQUFXLFdBQVcsU0FBUyxRQUFRLFdBQVcsV0FBVyxXQUFXLFNBQVMsWUFBWSxXQUFXLFVBQVUsV0FBVyxXQUFXLFNBQVMsUUFBUSxLQUFLLFdBQVcsdUJBQXVCLE1BQU0sV0FBVyx1QkFBdUIsTUFBTSxXQUFXLHVCQUF1QixNQUFNLFdBQVcsdUJBQXVCLE1BQU0sV0FBVyx1QkFBdUIsTUFBTSxXQUFXLHVCQUF1QixNQUFNLFdBQVcsdUJBQXVCLE1BQU0sV0FBVyx1QkFBdUIsU0FBUyxRQUFRLEtBQUssV0FBVyx1QkFBdUIsTUFBTSxXQUFXLHVCQUF1QixNQUFNLFdBQVcsdUJBQXVCLE1BQU0sV0FBVyx1QkFBdUIsTUFBTSxXQUFXLHVCQUF1QixNQUFNLFdBQVcsdUJBQXVCLE1BQU0sV0FBVyx1QkFBdUIsTUFBTSxXQUFXLHVCQUF1QixTQUFTLFFBQVEsS0FBSyxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsS0FBSyxRQUFRLEtBQUssVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLEtBQUssUUFBUSxLQUFLLFVBQVUsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFVBQVUsUUFBUSxLQUFLLFFBQVEsS0FBSyxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsS0FBSyxRQUFRLEtBQUssVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLEtBQUssUUFBUSxLQUFLLFVBQVUsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFVBQVUsUUFBUSxLQUFLLFFBQVEsS0FBSyxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsS0FBSyxRQUFRLEtBQUssVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLEtBQUssVUFBVSxLQUFLLEtBQUssV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxTQUFTLFFBQVEsVUFBVSxVQUFVLFNBQVMsUUFBUSxXQUFXLFdBQVcsVUFBVSxVQUFVLFdBQVcsV0FBVyxRQUFRLFFBQVEsVUFBVSxVQUFVLHNCQUFzQixXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFVBQVUsVUFBVSxVQUFVLFFBQVEsUUFBUSxVQUFVLFdBQVcsV0FBVyxXQUFXLFFBQVEsUUFBUSxVQUFVLFdBQVcsV0FBVyxXQUFXLFNBQVMsUUFBUSxXQUFXLFdBQVcsV0FBVyxTQUFTLFFBQVEsV0FBVyxXQUFXLFdBQVcsU0FBUyxRQUFRLEtBQUssV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLEtBQUssUUFBUSxLQUFLLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxRQUFRLFdBQVcsUUFBUSxLQUFLLFFBQVEsS0FBSyxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsUUFBUSxXQUFXLFFBQVEsS0FBSyxRQUFRLEtBQUssV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLFFBQVEsV0FBVyxRQUFRLEtBQUssUUFBUSxXQUFXLFdBQVcsV0FBVyxTQUFTLFFBQVEsS0FBSyxVQUFVLFFBQVEsUUFBUSxVQUFVLFFBQVEsS0FBSyxRQUFRLEtBQUssVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLEtBQUssUUFBUSxXQUFXLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsUUFBUSxRQUFRLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxZQUFZLFFBQVEsUUFBUSxZQUFZLFFBQVEsUUFBUSxVQUFVLFdBQVcsV0FBVyxVQUFVLFVBQVUsVUFBVSxXQUFXLFdBQVcsUUFBUSxRQUFRLFVBQVUsV0FBVyxXQUFXLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFNBQVMsUUFBUSxLQUFLLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxVQUFVLFFBQVEsUUFBUSxVQUFVLFVBQVUsUUFBUSxLQUFLLFFBQVEsS0FBSyxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxVQUFVLFFBQVEsS0FBSyxRQUFRLFdBQVcsV0FBVyxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsUUFBUSxRQUFRLFdBQVcsV0FBVyxRQUFRLFFBQVEsV0FBVyxXQUFXLFFBQVEsUUFBUSxXQUFXLFdBQVcsU0FBUyxRQUFRLEtBQUssVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLEtBQUssUUFBUSxZQUFZLFdBQVcsUUFBUSxRQUFRLFVBQVUsVUFBVSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxTQUFTLFFBQVEsS0FBSyxVQUFVLFdBQVcsUUFBUSxRQUFRLFVBQVUsV0FBVyxRQUFRLFFBQVEsVUFBVSxXQUFXLFFBQVEsS0FBSyxRQUFRLGNBQWMsYUFBYSxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsVUFBVSxVQUFVLFdBQVcsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFdBQVcsYUFBYSxZQUFZLGNBQWMsY0FBYyxVQUFVLFdBQVcsUUFBUSxRQUFRLGNBQWMsUUFBUSxRQUFRLFVBQVUsUUFBUSxRQUFRLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxZQUFZLFlBQVksV0FBVyxXQUFXLFFBQVEsUUFBUSxVQUFVLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxXQUFXLFVBQVUsV0FBVyxVQUFVLFNBQVMsUUFBUSxXQUFXLFNBQVMsUUFBUSxVQUFVLFVBQVUsVUFBVSxVQUFVLFNBQVMsUUFBUSxVQUFVLFNBQVMsUUFBUSxjQUFjLGdCQUFnQixZQUFZLGFBQWEsaUJBQWlCLFFBQVEsUUFBUSxVQUFVLFFBQVEsUUFBUSxVQUFVLFdBQVcsY0FBYyxhQUFhLFFBQVEsUUFBUSxXQUFXLFdBQVcsUUFBUSxRQUFRLFlBQVksUUFBUSxVQUFVLFVBQVUsVUFBVSxhQUFhLGlCQUFpQixRQUFRLFFBQVEsV0FBVyxVQUFVLFFBQVEsUUFBUSxLQUFLLFdBQVcsU0FBUyxLQUFLLFFBQVEsVUFBVSxXQUFXLFVBQVUsYUFBYSxhQUFhLFFBQVEsUUFBUSxhQUFhLGlCQUFpQixRQUFRLFFBQVEsV0FBVyxhQUFhLGNBQWMsY0FBYyxhQUFhLFFBQVEsUUFBUSxVQUFVLFVBQVUsUUFBUSxRQUFRLFVBQVUsV0FBVyxRQUFRLFFBQVEsTUFBTSxXQUFXLFdBQVcsUUFBUSxRQUFRLFVBQVUsVUFBVSxRQUFRLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxVQUFVLFFBQVEsS0FBSyxRQUFRLFVBQVUsVUFBVSxRQUFRLFVBQVUsVUFBVSxXQUFXLFFBQVEsUUFBUSxXQUFX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QStCLDhCQUE4QixHQUFHLCtDQUErQyx5Q0FBeUMsR0FBRyxxQkFBcUIseUNBQXlDLEdBQUcsK0JBQStCLDhCQUE4QixHQUFHLCtDQUErQyx5Q0FBeUMsR0FBRyxxQkFBcUIseUNBQXlDLEdBQUcsK0JBQStCLDhCQUE4QixHQUFHLCtDQUErQyx5Q0FBeUMsR0FBRyxxQkFBcUIseUNBQXlDLEdBQUcsK0JBQStCLDhCQUE4QixHQUFHLCtDQUErQyx5Q0FBeUMsR0FBRyxvQkFBb0IseUNBQXlDLEdBQUcsOEJBQThCLDhCQUE4QixHQUFHLDhDQUE4Qyx5Q0FBeUMsR0FBRyxvQkFBb0IseUNBQXlDLEdBQUcsOEJBQThCLDhCQUE4QixHQUFHLDhDQUE4Qyx5Q0FBeUMsR0FBRyxvQkFBb0IseUNBQXlDLEdBQUcsOEJBQThCLDhCQUE4QixHQUFHLDhDQUE4Qyx5Q0FBeUMsR0FBRyxvQkFBb0IseUNBQXlDLEdBQUcsOEJBQThCLDhCQUE4QixHQUFHLDhDQUE4Qyx5Q0FBeUMsR0FBRyxvQkFBb0IseUNBQXlDLEdBQUcsOEJBQThCLDhCQUE4QixHQUFHLDhDQUE4Qyx5Q0FBeUMsR0FBRyxvQkFBb0IseUNBQXlDLEdBQUcsOEJBQThCLDhCQUE4QixHQUFHLDhDQUE4Qyx5Q0FBeUMsR0FBRyxvQkFBb0IseUNBQXlDLEdBQUcsOEJBQThCLDhCQUE4QixHQUFHLDhDQUE4Qyx5Q0FBeUMsR0FBRyxvQkFBb0IseUNBQXlDLEdBQUcsOEJBQThCLDhCQUE4QixHQUFHLDhDQUE4Qyx5Q0FBeUMsR0FBRyxpQkFBaUIseUNBQXlDLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHFDQUFxQyx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywwQkFBMEIseUNBQXlDLEdBQUcsb0NBQW9DLDhCQUE4QixHQUFHLG9EQUFvRCx5Q0FBeUMsR0FBRywwQkFBMEIseUNBQXlDLEdBQUcsb0NBQW9DLDhCQUE4QixHQUFHLG9EQUFvRCx5Q0FBeUMsR0FBRywwQkFBMEIseUNBQXlDLEdBQUcsb0NBQW9DLDhCQUE4QixHQUFHLG9EQUFvRCx5Q0FBeUMsR0FBRywwQkFBMEIseUNBQXlDLEdBQUcsb0NBQW9DLDhCQUE4QixHQUFHLG9EQUFvRCx5Q0FBeUMsR0FBRywwQkFBMEIseUNBQXlDLEdBQUcsb0NBQW9DLDhCQUE4QixHQUFHLG9EQUFvRCx5Q0FBeUMsR0FBRywwQkFBMEIseUNBQXlDLEdBQUcsb0NBQW9DLDhCQUE4QixHQUFHLG9EQUFvRCx5Q0FBeUMsR0FBRywwQkFBMEIseUNBQXlDLEdBQUcsb0NBQW9DLDhCQUE4QixHQUFHLG9EQUFvRCx5Q0FBeUMsR0FBRywwQkFBMEIseUNBQXlDLEdBQUcsb0NBQW9DLDhCQUE4QixHQUFHLG9EQUFvRCx5Q0FBeUMsR0FBRyxXQUFXLHlDQUF5QyxHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRywrQkFBK0IseUNBQXlDLEdBQUcscUJBQXFCLHlDQUF5QyxHQUFHLCtCQUErQiw4QkFBOEIsR0FBRywrQ0FBK0MseUNBQXlDLEdBQUcscUJBQXFCLHlDQUF5QyxHQUFHLCtCQUErQiw4QkFBOEIsR0FBRywrQ0FBK0MseUNBQXlDLEdBQUcscUJBQXFCLHlDQUF5QyxHQUFHLCtCQUErQiw4QkFBOEIsR0FBRywrQ0FBK0MseUNBQXlDLEdBQUcscUJBQXFCLHlDQUF5QyxHQUFHLCtCQUErQiw4QkFBOEIsR0FBRywrQ0FBK0MseUNBQXlDLEdBQUcscUJBQXFCLHlDQUF5QyxHQUFHLCtCQUErQiw4QkFBOEIsR0FBRywrQ0FBK0MseUNBQXlDLEdBQUcs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LCtDQUErQyx5Q0FBeUMsR0FBRyxxQkFBcUIseUNBQXlDLEdBQUcsK0JBQStCLDhCQUE4QixHQUFHLCtDQUErQyx5Q0FBeUMsR0FBRyxxQkFBcUIseUNBQXlDLEdBQUcsK0JBQStCLDhCQUE4QixHQUFHLCtDQUErQyx5Q0FBeUMsR0FBRyxxQkFBcUIseUNBQXlDLEdBQUcsK0JBQStCLDhCQUE4QixHQUFHLCtDQUErQyx5Q0FBeUMsR0FBRyxxQkFBcUIseUNBQXlDLEdBQUcsK0JBQStCLDhCQUE4QixHQUFHLCtDQUErQyx5Q0FBeUMsR0FBRyxrQkFBa0IseUNBQXlDLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHNDQUFzQyx5Q0FBeUMsR0FBRyw0QkFBNEIseUNBQXlDLEdBQUcsc0NBQXNDLDhCQUE4QixHQUFHLHNEQUFzRCx5Q0FBeUMsR0FBRyw0QkFBNEIseUNBQXlDLEdBQUcsc0NBQXNDLDhCQUE4QixHQUFHLHNEQUFzRCx5Q0FBeUMsR0FBRyw0QkFBNEIseUNBQXlDLEdBQUcsc0NBQXNDLDhCQUE4QixHQUFHLHNEQUFzRCx5Q0FBeUMsR0FBRyw0QkFBNEIseUNBQXlDLEdBQUcsc0NBQXNDLDhCQUE4QixHQUFHLHNEQUFzRCx5Q0FBeUMsR0FBRyw0QkFBNEIseUNBQXlDLEdBQUcsc0NBQXNDLDhCQUE4QixHQUFHLHNEQUFzRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRywyQkFBMkIseUNBQXlDLEdBQUcscUNBQXFDLDhCQUE4QixHQUFHLHFEQUFxRCx5Q0FBeUMsR0FBRyxXQUFXLHlDQUF5QyxHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRywrQkFBK0IseUNBQXlDLEdBQUcscUJBQXFCLHlDQUF5QyxHQUFHLCtCQUErQiw4QkFBOEIsR0FBRywrQ0FBK0MseUNBQXlDLEdBQUcscUJBQXFCLHlDQUF5QyxHQUFHLCtCQUErQiw4QkFBOEIsR0FBRywrQ0FBK0MseUNBQXlDLEdBQUcscUJBQXFCLHlDQUF5QyxHQUFHLCtCQUErQiw4QkFBOEIsR0FBRywrQ0FBK0MseUNBQXlDLEdBQUcscUJBQXFCLHlDQUF5QyxHQUFHLCtCQUErQiw4QkFBOEIsR0FBRywrQ0FBK0MseUNBQXlDLEdBQUcscUJBQXFCLHlDQUF5QyxHQUFHLCtCQUErQiw4QkFBOEIsR0FBRywrQ0FBK0MseUNBQXlDLEdBQUcsb0JBQW9CLHlDQUF5QyxHQUFHLDhCQUE4Qiw4QkFBOEIsR0FBRyw4Q0FBOEMseUNBQXlDLEdBQUcsb0JBQW9CLHlDQUF5QyxHQUFHLDhCQUE4Qiw4QkFBOEIsR0FBRyw4Q0FBOEMseUNBQXlDLEdBQUcsb0JBQW9CLHlDQUF5QyxHQUFHLDhCQUE4Qiw4QkFBOEIsR0FBRyw4Q0FBOEMseUNBQXlDLEdBQUcsb0JBQW9CLHlDQUF5QyxHQUFHLDhCQUE4Qiw4QkFBOEIsR0FBRyw4Q0FBOEMseUNBQXlDLEdBQUcsb0JBQW9CLHlDQUF5QyxHQUFHLDhCQUE4Qiw4QkFBOEIsR0FBRyw4Q0FBOEMseUNBQXlDLEdBQUcsb0JBQW9CLHlDQUF5QyxHQUFHLDhCQUE4Qiw4QkFBOEIsR0FBRyw4Q0FBOEMseUNBQXlDLEdBQUcsb0JBQW9CLHlDQUF5QyxHQUFHLDhCQUE4Qiw4QkFBOEIsR0FBRyw4Q0FBOEMseUNBQXlDLEdBQUcsb0JBQW9CLHlDQUF5QyxH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QUFLLGtCQUFrQiw0QkFBNEIsd0JBQXdCLGlCQUFpQixrQkFBa0IsS0FBSyxrQkFBa0IsaUJBQWlCLHdCQUF3QixpQkFBaUIsa0JBQWtCLEtBQUssa0JBQWtCLDRCQUE0Qix3QkFBd0IsaUJBQWlCLGtCQUFrQixLQUFLLGtCQUFrQiw0QkFBNEIsd0JBQXdCLGlCQUFpQixrQkFBa0IsS0FBSyxrQkFBa0IsaUJBQWlCLHdCQUF3QixpQkFBaUIsa0JBQWtCLEtBQUssa0JBQWtCLDRCQUE0Qix3QkFBd0IsaUJBQWlCLGtCQUFrQixLQUFLLGtCQUFrQiw0QkFBNEIsd0JBQXdCLGlCQUFpQixrQkFBa0IsS0FBSyxrQkFBa0IsaUJBQWlCLHdCQUF3QixpQkFBaUIsa0JBQWtCLEtBQUssbUJBQW1CLDRCQUE0Qix3QkFBd0IsaUJBQWlCLGtCQUFrQixLQUFLLG1CQUFtQiw0QkFBNEIsd0JBQXdCLGlCQUFpQixrQkFBa0IsS0FBSyxtQkFBbUIsa0JBQWtCLHdCQUF3QixpQkFBaUIsa0JBQWtCLEtBQUsseUJBQXlCLGlDQUFpQyxLQUFLLHVCQUF1QiwyQkFBMkIsS0FBSyx1QkFBdUIsMEJBQTBCLEtBQUsseUJBQXlCLGtDQUFrQyxLQUFLLHVCQUF1Qiw0QkFBNEIsS0FBSyx1QkFBdUIsMkJBQTJCLEtBQUsseUJBQXlCLHVCQUF1QixLQUFLLHVCQUF1QixpQkFBaUIsS0FBSyx1QkFBdUIsZ0JBQWdCLEtBQUsseUJBQXlCLGtDQUFrQyxLQUFLLHVCQUF1Qiw0QkFBNEIsS0FBSyx1QkFBdUIsMkJBQTJCLEtBQUsseUJBQXlCLGtDQUFrQyxLQUFLLHVCQUF1Qiw0QkFBNEIsS0FBSyx1QkFBdUIsMkJBQTJCLEtBQUsseUJBQXlCLHVCQUF1QixLQUFLLHVCQUF1QixpQkFBaUIsS0FBSyx1QkFBdUIsZ0JBQWdCLEtBQUsseUJBQXlCLGtDQUFrQyxLQUFLLHVCQUF1Qiw0QkFBNEIsS0FBSyx1QkFBdUIsMkJBQTJCLEtBQUsseUJBQXlCLGtDQUFrQyxLQUFLLHVCQUF1Qiw0QkFBNEIsS0FBSyx1QkFBdUIsMkJBQTJCLEtBQUss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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDViw4QkFBOEI7QUFDOUIsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLEtBQUs7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCw0QkFBNEI7QUFDNUIsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVEsSUFBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxTQUFTLEtBQXFDO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0Isc0JBQXNCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVSxJQUFxQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNCQUFzQiwyQkFBMkI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNLEtBQXFDLDRGQUE0RixDQUFNO0FBQzdJO0FBQ0E7O0FBRUEsb0JBQW9CLGdDQUFnQztBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNCQUFzQixnQ0FBZ0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGlIQUFpSDtBQUNqSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FB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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEI7O0FBRTFCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9EQUFvRDs7QUFFcEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGlDQUFpQzs7QUFFakM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLFdBQVcsR0FBRztBQUNkLFdBQVcsR0FBRztBQUNkLFdBQVcsZUFBZTtBQUMxQixXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7O0FBRVI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssR0FBRztBQUNSOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFD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QSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLElBQUk7QUFDbkQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLElBQUk7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQztBQUMxQzs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1Qzs7QUFFdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0EsU0FBUztBQUNULHVCQUF1QjtBQUN2QjtBQUNBLFNBQVM7QUFDVCx1QkFBdUI7QUFDdkI7QUFDQSxTQUFTO0FBQ1Qsd0JBQXdCO0FBQ3hCO0FBQ0EsU0FBUztBQUNULHdCQUF3QjtBQUN4QjtBQUNBLFNBQVM7QUFDVCxpQ0FBaUM7QUFDakM7QUFDQSxTQUFTO0FBQ1QsMkJBQTJCO0FBQzNCO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMkRBQTJEOztBQUUzRDtBQUNBOztBQUVBO0FBQ0EsMkRB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O0FBQ3BILCtDQUE4QyxFQUFFLHFDQUFxQyxnQ0FBZ0MsRUFBQztBQUN0SCxtQkFBbUIsbUJBQU8sQ0FBQywwRUFBOEI7QUFDekQsOENBQTZDLEVBQUUscUNBQXFDLG1DQUFtQyxFQUFDO0FBQ3hILGdCQUFnQixtQkFBTyxDQUFDLG9FQUEyQjtBQUNuRCwyQ0FBMEMsRUFBRSxxQ0FBcUMsNkJBQTZCLEVBQUM7QUFDL0csNkNBQTRDLEVBQUUscUNBQXFDLCtCQUErQixFQUFDO0FBQ25ILCtDQUE4QyxFQUFFLHFDQUFxQyxpQ0FBaUMsRUFBQztBQUN2SCxpQkFBaUIsbUJBQU8sQ0FBQyxrRUFBMEI7QUFDbkQsNENBQTJDLEVBQUUscUNBQXFDLCtCQUErQixFQUFDO0FBQ2xILDZDQUE0QyxFQUFFLHFDQUFxQyxnQ0FBZ0MsRUFBQztBQUNwSCxjQUFjLG1CQUFPLENBQUMsc0RBQW9CO0FBQzFDLHlDQUF3QyxFQUFFLHFDQUFxQyx5QkFBeUIsRUFBQztBQUN6RyxnREFBK0MsRUFBRSxxQ0FBcUMsZ0NBQWdDLEVBQUM7QUFDdkgsK0NBQThDLEVBQUUscUNBQXFDLCtCQUErQixFQUFDO0FBQ3JILCtDQUE4QyxFQUFFLHFDQUFxQywrQkFBK0IsRUFBQztBQUNySDtBQUNBLFlBQVksb0JBQW9CO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBLFlBQVksNkJBQTZCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZDN2NHBwL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9ub2RlX21vZHVsZXMvYXV0b3NpemUvZGlzdC9hdXRvc2l6ZS5qcyIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9ub2RlX21vZHVsZXMvY29tcHV0ZWQtc3R5bGUvZGlzdC9jb21wdXRlZFN0eWxlLmNvbW1vbmpzLmpzIiwid2VicGFjazovL2QzdjRwcC8uL3NyYy9zYXNzL2QzdjRwcC5zY3NzIiwid2VicGFjazovL2QzdjRwcC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vbm9kZV9tb2R1bGVzL29iamVjdC1hc3NpZ24vaW5kZXguanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvY2hlY2tQcm9wVHlwZXMuanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMuanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzIiwid2VicGFjazovL2QzdjRwcC8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9oYXMuanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcyIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcyIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vc3JjL3Nhc3MvZDN2NHBwLnNjc3M/NTQ1OCIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzIiwid2VicGFjazovL2QzdjRwcC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovL2QzdjRwcC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzIiwid2VicGFjazovL2QzdjRwcC8uL3NyYy9jbXBzL2JhZGdlL0JhZGdlLnRzeCIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9zcmMvY21wcy9idXR0b24vQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9zcmMvY21wcy9jYXJkL0NhcmQudHN4Iiwid2VicGFjazovL2QzdjRwcC8uL3NyYy9jbXBzL2NoaXAvQ2hpcC50c3giLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vc3JjL2NtcHMvY29sbGFwc2libGUvQ29sbGFwc2libGUudHN4Iiwid2VicGFjazovL2QzdjRwcC8uL3NyYy9jbXBzL2NvbGxlY3Rpb25zL0NvbGxlY3Rpb24udHN4Iiwid2VicGFjazovL2QzdjRwcC8uL3NyYy9jbXBzL2Zvcm1zL0ZpZWxkLnRzeCIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9zcmMvY21wcy9mb3Jtcy9UZXh0YXJlYS50c3giLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vc3JjL2NtcHMvZm9ybXMvbGluZS1oZWlnaHQudHN4Iiwid2VicGFjazovL2QzdjRwcC8uL3NyYy9jbXBzL2Zvcm1zL3JleC50c3giLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vc3JjL2NtcHMvaWNvbnMvSWNvbi50c3giLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vc3JjL2NtcHMvbGF5b3V0cy9MYXlvdXRzLnRzeCIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9zcmMvY21wcy9tb2RhbC9Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vc3JjL2NtcHMvbmF2aWdhdGlvbi9OYXZCYXIudHN4Iiwid2VicGFjazovL2QzdjRwcC8uL3NyYy9jbXBzL25hdmlnYXRpb24vTmF2aWdhdGlvbi50c3giLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vc3JjL2NtcHMvbmF2aWdhdGlvbi9TaWRlTmF2LnRzeCIsIndlYnBhY2s6Ly9kM3Y0cHAvLi9zcmMvY21wcy9wcm9ncmVzcy9Qcm9ncmVzcy50c3giLCJ3ZWJwYWNrOi8vZDN2NHBwL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2QzdjRwcC93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9kM3Y0cHAvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2QzdjRwcC93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2QzdjRwcC93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL2QzdjRwcC93ZWJwYWNrL3J1bnRpbWUvbm9kZSBtb2R1bGUgZGVjb3JhdG9yIiwid2VicGFjazovL2QzdjRwcC93ZWJwYWNrL3J1bnRpbWUvbm9uY2UiLCJ3ZWJwYWNrOi8vZDN2NHBwLy4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcImQzdjRwcFwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJkM3Y0cHBcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCAoKSA9PiB7XG5yZXR1cm4gIiwiLyohXG5cdGF1dG9zaXplIDQuMC40XG5cdGxpY2Vuc2U6IE1JVFxuXHRodHRwOi8vd3d3LmphY2tsbW9vcmUuY29tL2F1dG9zaXplXG4qL1xuKGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcblx0aWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0ZGVmaW5lKFsnbW9kdWxlJywgJ2V4cG9ydHMnXSwgZmFjdG9yeSk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGV4cG9ydHMgIT09IFwidW5kZWZpbmVkXCIpIHtcblx0XHRmYWN0b3J5KG1vZHVsZSwgZXhwb3J0cyk7XG5cdH0gZWxzZSB7XG5cdFx0dmFyIG1vZCA9IHtcblx0XHRcdGV4cG9ydHM6IHt9XG5cdFx0fTtcblx0XHRmYWN0b3J5KG1vZCwgbW9kLmV4cG9ydHMpO1xuXHRcdGdsb2JhbC5hdXRvc2l6ZSA9IG1vZC5leHBvcnRzO1xuXHR9XG59KSh0aGlzLCBmdW5jdGlvbiAobW9kdWxlLCBleHBvcnRzKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuXHR2YXIgbWFwID0gdHlwZW9mIE1hcCA9PT0gXCJmdW5jdGlvblwiID8gbmV3IE1hcCgpIDogZnVuY3Rpb24gKCkge1xuXHRcdHZhciBrZXlzID0gW107XG5cdFx0dmFyIHZhbHVlcyA9IFtdO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGhhczogZnVuY3Rpb24gaGFzKGtleSkge1xuXHRcdFx0XHRyZXR1cm4ga2V5cy5pbmRleE9mKGtleSkgPiAtMTtcblx0XHRcdH0sXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uIGdldChrZXkpIHtcblx0XHRcdFx0cmV0dXJuIHZhbHVlc1trZXlzLmluZGV4T2Yoa2V5KV07XG5cdFx0XHR9LFxuXHRcdFx0c2V0OiBmdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSkge1xuXHRcdFx0XHRpZiAoa2V5cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG5cdFx0XHRcdFx0a2V5cy5wdXNoKGtleSk7XG5cdFx0XHRcdFx0dmFsdWVzLnB1c2godmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0ZGVsZXRlOiBmdW5jdGlvbiBfZGVsZXRlKGtleSkge1xuXHRcdFx0XHR2YXIgaW5kZXggPSBrZXlzLmluZGV4T2Yoa2V5KTtcblx0XHRcdFx0aWYgKGluZGV4ID4gLTEpIHtcblx0XHRcdFx0XHRrZXlzLnNwbGljZShpbmRleCwgMSk7XG5cdFx0XHRcdFx0dmFsdWVzLnNwbGljZShpbmRleCwgMSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9KCk7XG5cblx0dmFyIGNyZWF0ZUV2ZW50ID0gZnVuY3Rpb24gY3JlYXRlRXZlbnQobmFtZSkge1xuXHRcdHJldHVybiBuZXcgRXZlbnQobmFtZSwgeyBidWJibGVzOiB0cnVlIH0pO1xuXHR9O1xuXHR0cnkge1xuXHRcdG5ldyBFdmVudCgndGVzdCcpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0Ly8gSUUgZG9lcyBub3Qgc3VwcG9ydCBgbmV3IEV2ZW50KClgXG5cdFx0Y3JlYXRlRXZlbnQgPSBmdW5jdGlvbiBjcmVhdGVFdmVudChuYW1lKSB7XG5cdFx0XHR2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7XG5cdFx0XHRldnQuaW5pdEV2ZW50KG5hbWUsIHRydWUsIGZhbHNlKTtcblx0XHRcdHJldHVybiBldnQ7XG5cdFx0fTtcblx0fVxuXG5cdGZ1bmN0aW9uIGFzc2lnbih0YSkge1xuXHRcdGlmICghdGEgfHwgIXRhLm5vZGVOYW1lIHx8IHRhLm5vZGVOYW1lICE9PSAnVEVYVEFSRUEnIHx8IG1hcC5oYXModGEpKSByZXR1cm47XG5cblx0XHR2YXIgaGVpZ2h0T2Zmc2V0ID0gbnVsbDtcblx0XHR2YXIgY2xpZW50V2lkdGggPSBudWxsO1xuXHRcdHZhciBjYWNoZWRIZWlnaHQgPSBudWxsO1xuXG5cdFx0ZnVuY3Rpb24gaW5pdCgpIHtcblx0XHRcdHZhciBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhLCBudWxsKTtcblxuXHRcdFx0aWYgKHN0eWxlLnJlc2l6ZSA9PT0gJ3ZlcnRpY2FsJykge1xuXHRcdFx0XHR0YS5zdHlsZS5yZXNpemUgPSAnbm9uZSc7XG5cdFx0XHR9IGVsc2UgaWYgKHN0eWxlLnJlc2l6ZSA9PT0gJ2JvdGgnKSB7XG5cdFx0XHRcdHRhLnN0eWxlLnJlc2l6ZSA9ICdob3Jpem9udGFsJztcblx0XHRcdH1cblxuXHRcdFx0aWYgKHN0eWxlLmJveFNpemluZyA9PT0gJ2NvbnRlbnQtYm94Jykge1xuXHRcdFx0XHRoZWlnaHRPZmZzZXQgPSAtKHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ1RvcCkgKyBwYXJzZUZsb2F0KHN0eWxlLnBhZGRpbmdCb3R0b20pKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGhlaWdodE9mZnNldCA9IHBhcnNlRmxvYXQoc3R5bGUuYm9yZGVyVG9wV2lkdGgpICsgcGFyc2VGbG9hdChzdHlsZS5ib3JkZXJCb3R0b21XaWR0aCk7XG5cdFx0XHR9XG5cdFx0XHQvLyBGaXggd2hlbiBhIHRleHRhcmVhIGlzIG5vdCBvbiBkb2N1bWVudCBib2R5IGFuZCBoZWlnaHRPZmZzZXQgaXMgTm90IGEgTnVtYmVyXG5cdFx0XHRpZiAoaXNOYU4oaGVpZ2h0T2Zmc2V0KSkge1xuXHRcdFx0XHRoZWlnaHRPZmZzZXQgPSAwO1xuXHRcdFx0fVxuXG5cdFx0XHR1cGRhdGUoKTtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiBjaGFuZ2VPdmVyZmxvdyh2YWx1ZSkge1xuXHRcdFx0e1xuXHRcdFx0XHQvLyBDaHJvbWUvU2FmYXJpLXNwZWNpZmljIGZpeDpcblx0XHRcdFx0Ly8gV2hlbiB0aGUgdGV4dGFyZWEgeS1vdmVyZmxvdyBpcyBoaWRkZW4sIENocm9tZS9TYWZhcmkgZG8gbm90IHJlZmxvdyB0aGUgdGV4dCB0byBhY2NvdW50IGZvciB0aGUgc3BhY2Vcblx0XHRcdFx0Ly8gbWFkZSBhdmFpbGFibGUgYnkgcmVtb3ZpbmcgdGhlIHNjcm9sbGJhci4gVGhlIGZvbGxvd2luZyBmb3JjZXMgdGhlIG5lY2Vzc2FyeSB0ZXh0IHJlZmxvdy5cblx0XHRcdFx0dmFyIHdpZHRoID0gdGEuc3R5bGUud2lkdGg7XG5cdFx0XHRcdHRhLnN0eWxlLndpZHRoID0gJzBweCc7XG5cdFx0XHRcdC8vIEZvcmNlIHJlZmxvdzpcblx0XHRcdFx0LyoganNoaW50IGlnbm9yZTpzdGFydCAqL1xuXHRcdFx0XHR0YS5vZmZzZXRXaWR0aDtcblx0XHRcdFx0LyoganNoaW50IGlnbm9yZTplbmQgKi9cblx0XHRcdFx0dGEuc3R5bGUud2lkdGggPSB3aWR0aDtcblx0XHRcdH1cblxuXHRcdFx0dGEuc3R5bGUub3ZlcmZsb3dZID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gZ2V0UGFyZW50T3ZlcmZsb3dzKGVsKSB7XG5cdFx0XHR2YXIgYXJyID0gW107XG5cblx0XHRcdHdoaWxlIChlbCAmJiBlbC5wYXJlbnROb2RlICYmIGVsLnBhcmVudE5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSB7XG5cdFx0XHRcdGlmIChlbC5wYXJlbnROb2RlLnNjcm9sbFRvcCkge1xuXHRcdFx0XHRcdGFyci5wdXNoKHtcblx0XHRcdFx0XHRcdG5vZGU6IGVsLnBhcmVudE5vZGUsXG5cdFx0XHRcdFx0XHRzY3JvbGxUb3A6IGVsLnBhcmVudE5vZGUuc2Nyb2xsVG9wXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWwgPSBlbC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gYXJyO1xuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIHJlc2l6ZSgpIHtcblx0XHRcdGlmICh0YS5zY3JvbGxIZWlnaHQgPT09IDApIHtcblx0XHRcdFx0Ly8gSWYgdGhlIHNjcm9sbEhlaWdodCBpcyAwLCB0aGVuIHRoZSBlbGVtZW50IHByb2JhYmx5IGhhcyBkaXNwbGF5Om5vbmUgb3IgaXMgZGV0YWNoZWQgZnJvbSB0aGUgRE9NLlxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHZhciBvdmVyZmxvd3MgPSBnZXRQYXJlbnRPdmVyZmxvd3ModGEpO1xuXHRcdFx0dmFyIGRvY1RvcCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wOyAvLyBOZWVkZWQgZm9yIE1vYmlsZSBJRSAodGlja2V0ICMyNDApXG5cblx0XHRcdHRhLnN0eWxlLmhlaWdodCA9ICcnO1xuXHRcdFx0dGEuc3R5bGUuaGVpZ2h0ID0gdGEuc2Nyb2xsSGVpZ2h0ICsgaGVpZ2h0T2Zmc2V0ICsgJ3B4JztcblxuXHRcdFx0Ly8gdXNlZCB0byBjaGVjayBpZiBhbiB1cGRhdGUgaXMgYWN0dWFsbHkgbmVjZXNzYXJ5IG9uIHdpbmRvdy5yZXNpemVcblx0XHRcdGNsaWVudFdpZHRoID0gdGEuY2xpZW50V2lkdGg7XG5cblx0XHRcdC8vIHByZXZlbnRzIHNjcm9sbC1wb3NpdGlvbiBqdW1waW5nXG5cdFx0XHRvdmVyZmxvd3MuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHtcblx0XHRcdFx0ZWwubm9kZS5zY3JvbGxUb3AgPSBlbC5zY3JvbGxUb3A7XG5cdFx0XHR9KTtcblxuXHRcdFx0aWYgKGRvY1RvcCkge1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID0gZG9jVG9wO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIHVwZGF0ZSgpIHtcblx0XHRcdHJlc2l6ZSgpO1xuXG5cdFx0XHR2YXIgc3R5bGVIZWlnaHQgPSBNYXRoLnJvdW5kKHBhcnNlRmxvYXQodGEuc3R5bGUuaGVpZ2h0KSk7XG5cdFx0XHR2YXIgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YSwgbnVsbCk7XG5cblx0XHRcdC8vIFVzaW5nIG9mZnNldEhlaWdodCBhcyBhIHJlcGxhY2VtZW50IGZvciBjb21wdXRlZC5oZWlnaHQgaW4gSUUsIGJlY2F1c2UgSUUgZG9lcyBub3QgYWNjb3VudCB1c2Ugb2YgYm9yZGVyLWJveFxuXHRcdFx0dmFyIGFjdHVhbEhlaWdodCA9IGNvbXB1dGVkLmJveFNpemluZyA9PT0gJ2NvbnRlbnQtYm94JyA/IE1hdGgucm91bmQocGFyc2VGbG9hdChjb21wdXRlZC5oZWlnaHQpKSA6IHRhLm9mZnNldEhlaWdodDtcblxuXHRcdFx0Ly8gVGhlIGFjdHVhbCBoZWlnaHQgbm90IG1hdGNoaW5nIHRoZSBzdHlsZSBoZWlnaHQgKHNldCB2aWEgdGhlIHJlc2l6ZSBtZXRob2QpIGluZGljYXRlcyB0aGF0IFxuXHRcdFx0Ly8gdGhlIG1heC1oZWlnaHQgaGFzIGJlZW4gZXhjZWVkZWQsIGluIHdoaWNoIGNhc2UgdGhlIG92ZXJmbG93IHNob3VsZCBiZSBhbGxvd2VkLlxuXHRcdFx0aWYgKGFjdHVhbEhlaWdodCA8IHN0eWxlSGVpZ2h0KSB7XG5cdFx0XHRcdGlmIChjb21wdXRlZC5vdmVyZmxvd1kgPT09ICdoaWRkZW4nKSB7XG5cdFx0XHRcdFx0Y2hhbmdlT3ZlcmZsb3coJ3Njcm9sbCcpO1xuXHRcdFx0XHRcdHJlc2l6ZSgpO1xuXHRcdFx0XHRcdGFjdHVhbEhlaWdodCA9IGNvbXB1dGVkLmJveFNpemluZyA9PT0gJ2NvbnRlbnQtYm94JyA/IE1hdGgucm91bmQocGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YSwgbnVsbCkuaGVpZ2h0KSkgOiB0YS5vZmZzZXRIZWlnaHQ7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIE5vcm1hbGx5IGtlZXAgb3ZlcmZsb3cgc2V0IHRvIGhpZGRlbiwgdG8gYXZvaWQgZmxhc2ggb2Ygc2Nyb2xsYmFyIGFzIHRoZSB0ZXh0YXJlYSBleHBhbmRzLlxuXHRcdFx0XHRpZiAoY29tcHV0ZWQub3ZlcmZsb3dZICE9PSAnaGlkZGVuJykge1xuXHRcdFx0XHRcdGNoYW5nZU92ZXJmbG93KCdoaWRkZW4nKTtcblx0XHRcdFx0XHRyZXNpemUoKTtcblx0XHRcdFx0XHRhY3R1YWxIZWlnaHQgPSBjb21wdXRlZC5ib3hTaXppbmcgPT09ICdjb250ZW50LWJveCcgPyBNYXRoLnJvdW5kKHBhcnNlRmxvYXQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGEsIG51bGwpLmhlaWdodCkpIDogdGEub2Zmc2V0SGVpZ2h0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmIChjYWNoZWRIZWlnaHQgIT09IGFjdHVhbEhlaWdodCkge1xuXHRcdFx0XHRjYWNoZWRIZWlnaHQgPSBhY3R1YWxIZWlnaHQ7XG5cdFx0XHRcdHZhciBldnQgPSBjcmVhdGVFdmVudCgnYXV0b3NpemU6cmVzaXplZCcpO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdHRhLmRpc3BhdGNoRXZlbnQoZXZ0KTtcblx0XHRcdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRcdFx0Ly8gRmlyZWZveCB3aWxsIHRocm93IGFuIGVycm9yIG9uIGRpc3BhdGNoRXZlbnQgZm9yIGEgZGV0YWNoZWQgZWxlbWVudFxuXHRcdFx0XHRcdC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTg4OTM3NlxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dmFyIHBhZ2VSZXNpemUgPSBmdW5jdGlvbiBwYWdlUmVzaXplKCkge1xuXHRcdFx0aWYgKHRhLmNsaWVudFdpZHRoICE9PSBjbGllbnRXaWR0aCkge1xuXHRcdFx0XHR1cGRhdGUoKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0dmFyIGRlc3Ryb3kgPSBmdW5jdGlvbiAoc3R5bGUpIHtcblx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBwYWdlUmVzaXplLCBmYWxzZSk7XG5cdFx0XHR0YS5yZW1vdmVFdmVudExpc3RlbmVyKCdpbnB1dCcsIHVwZGF0ZSwgZmFsc2UpO1xuXHRcdFx0dGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB1cGRhdGUsIGZhbHNlKTtcblx0XHRcdHRhLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2F1dG9zaXplOmRlc3Ryb3knLCBkZXN0cm95LCBmYWxzZSk7XG5cdFx0XHR0YS5yZW1vdmVFdmVudExpc3RlbmVyKCdhdXRvc2l6ZTp1cGRhdGUnLCB1cGRhdGUsIGZhbHNlKTtcblxuXHRcdFx0T2JqZWN0LmtleXMoc3R5bGUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuXHRcdFx0XHR0YS5zdHlsZVtrZXldID0gc3R5bGVba2V5XTtcblx0XHRcdH0pO1xuXG5cdFx0XHRtYXAuZGVsZXRlKHRhKTtcblx0XHR9LmJpbmQodGEsIHtcblx0XHRcdGhlaWdodDogdGEuc3R5bGUuaGVpZ2h0LFxuXHRcdFx0cmVzaXplOiB0YS5zdHlsZS5yZXNpemUsXG5cdFx0XHRvdmVyZmxvd1k6IHRhLnN0eWxlLm92ZXJmbG93WSxcblx0XHRcdG92ZXJmbG93WDogdGEuc3R5bGUub3ZlcmZsb3dYLFxuXHRcdFx0d29yZFdyYXA6IHRhLnN0eWxlLndvcmRXcmFwXG5cdFx0fSk7XG5cblx0XHR0YS5hZGRFdmVudExpc3RlbmVyKCdhdXRvc2l6ZTpkZXN0cm95JywgZGVzdHJveSwgZmFsc2UpO1xuXG5cdFx0Ly8gSUU5IGRvZXMgbm90IGZpcmUgb25wcm9wZXJ0eWNoYW5nZSBvciBvbmlucHV0IGZvciBkZWxldGlvbnMsXG5cdFx0Ly8gc28gYmluZGluZyB0byBvbmtleXVwIHRvIGNhdGNoIG1vc3Qgb2YgdGhvc2UgZXZlbnRzLlxuXHRcdC8vIFRoZXJlIGlzIG5vIHdheSB0aGF0IEkga25vdyBvZiB0byBkZXRlY3Qgc29tZXRoaW5nIGxpa2UgJ2N1dCcgaW4gSUU5LlxuXHRcdGlmICgnb25wcm9wZXJ0eWNoYW5nZScgaW4gdGEgJiYgJ29uaW5wdXQnIGluIHRhKSB7XG5cdFx0XHR0YS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHVwZGF0ZSwgZmFsc2UpO1xuXHRcdH1cblxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBwYWdlUmVzaXplLCBmYWxzZSk7XG5cdFx0dGEuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCB1cGRhdGUsIGZhbHNlKTtcblx0XHR0YS5hZGRFdmVudExpc3RlbmVyKCdhdXRvc2l6ZTp1cGRhdGUnLCB1cGRhdGUsIGZhbHNlKTtcblx0XHR0YS5zdHlsZS5vdmVyZmxvd1ggPSAnaGlkZGVuJztcblx0XHR0YS5zdHlsZS53b3JkV3JhcCA9ICdicmVhay13b3JkJztcblxuXHRcdG1hcC5zZXQodGEsIHtcblx0XHRcdGRlc3Ryb3k6IGRlc3Ryb3ksXG5cdFx0XHR1cGRhdGU6IHVwZGF0ZVxuXHRcdH0pO1xuXG5cdFx0aW5pdCgpO1xuXHR9XG5cblx0ZnVuY3Rpb24gZGVzdHJveSh0YSkge1xuXHRcdHZhciBtZXRob2RzID0gbWFwLmdldCh0YSk7XG5cdFx0aWYgKG1ldGhvZHMpIHtcblx0XHRcdG1ldGhvZHMuZGVzdHJveSgpO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIHVwZGF0ZSh0YSkge1xuXHRcdHZhciBtZXRob2RzID0gbWFwLmdldCh0YSk7XG5cdFx0aWYgKG1ldGhvZHMpIHtcblx0XHRcdG1ldGhvZHMudXBkYXRlKCk7XG5cdFx0fVxuXHR9XG5cblx0dmFyIGF1dG9zaXplID0gbnVsbDtcblxuXHQvLyBEbyBub3RoaW5nIGluIE5vZGUuanMgZW52aXJvbm1lbnQgYW5kIElFOCAob3IgbG93ZXIpXG5cdGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93LmdldENvbXB1dGVkU3R5bGUgIT09ICdmdW5jdGlvbicpIHtcblx0XHRhdXRvc2l6ZSA9IGZ1bmN0aW9uIGF1dG9zaXplKGVsKSB7XG5cdFx0XHRyZXR1cm4gZWw7XG5cdFx0fTtcblx0XHRhdXRvc2l6ZS5kZXN0cm95ID0gZnVuY3Rpb24gKGVsKSB7XG5cdFx0XHRyZXR1cm4gZWw7XG5cdFx0fTtcblx0XHRhdXRvc2l6ZS51cGRhdGUgPSBmdW5jdGlvbiAoZWwpIHtcblx0XHRcdHJldHVybiBlbDtcblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGF1dG9zaXplID0gZnVuY3Rpb24gYXV0b3NpemUoZWwsIG9wdGlvbnMpIHtcblx0XHRcdGlmIChlbCkge1xuXHRcdFx0XHRBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGVsLmxlbmd0aCA/IGVsIDogW2VsXSwgZnVuY3Rpb24gKHgpIHtcblx0XHRcdFx0XHRyZXR1cm4gYXNzaWduKHgsIG9wdGlvbnMpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBlbDtcblx0XHR9O1xuXHRcdGF1dG9zaXplLmRlc3Ryb3kgPSBmdW5jdGlvbiAoZWwpIHtcblx0XHRcdGlmIChlbCkge1xuXHRcdFx0XHRBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGVsLmxlbmd0aCA/IGVsIDogW2VsXSwgZGVzdHJveSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZWw7XG5cdFx0fTtcblx0XHRhdXRvc2l6ZS51cGRhdGUgPSBmdW5jdGlvbiAoZWwpIHtcblx0XHRcdGlmIChlbCkge1xuXHRcdFx0XHRBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGVsLmxlbmd0aCA/IGVsIDogW2VsXSwgdXBkYXRlKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBlbDtcblx0XHR9O1xuXHR9XG5cblx0ZXhwb3J0cy5kZWZhdWx0ID0gYXV0b3NpemU7XG5cdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xufSk7IiwiLy8gREVWOiBXZSBkb24ndCB1c2UgdmFyIGJ1dCBmYXZvciBwYXJhbWV0ZXJzIHNpbmNlIHRoZXNlIHBsYXkgbmljZXIgd2l0aCBtaW5pZmljYXRpb25cbmZ1bmN0aW9uIGNvbXB1dGVkU3R5bGUoZWwsIHByb3AsIGdldENvbXB1dGVkU3R5bGUsIHN0eWxlKSB7XG4gIGdldENvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZTtcbiAgc3R5bGUgPVxuICAgICAgLy8gSWYgd2UgaGF2ZSBnZXRDb21wdXRlZFN0eWxlXG4gICAgICBnZXRDb21wdXRlZFN0eWxlID9cbiAgICAgICAgLy8gUXVlcnkgaXRcbiAgICAgICAgLy8gVE9ETzogRnJvbSBDU1MtUXVlcnkgbm90ZXMsIHdlIG1pZ2h0IG5lZWQgKG5vZGUsIG51bGwpIGZvciBGRlxuICAgICAgICBnZXRDb21wdXRlZFN0eWxlKGVsKSA6XG5cbiAgICAgIC8vIE90aGVyd2lzZSwgd2UgYXJlIGluIElFIGFuZCB1c2UgY3VycmVudFN0eWxlXG4gICAgICAgIGVsLmN1cnJlbnRTdHlsZTtcbiAgaWYgKHN0eWxlKSB7XG4gICAgcmV0dXJuIHN0eWxlXG4gICAgW1xuICAgICAgLy8gU3dpdGNoIHRvIGNhbWVsQ2FzZSBmb3IgQ1NTT01cbiAgICAgIC8vIERFVjogR3JhYmJlZCBmcm9tIGpRdWVyeVxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvYmxvYi8xLjktc3RhYmxlL3NyYy9jc3MuanMjTDE5MS1MMTk0XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9ibG9iLzEuOS1zdGFibGUvc3JjL2NvcmUuanMjTDU5My1MNTk3XG4gICAgICBwcm9wLnJlcGxhY2UoLy0oXFx3KS9naSwgZnVuY3Rpb24gKHdvcmQsIGxldHRlcikge1xuICAgICAgICByZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7XG4gICAgICB9KVxuICAgIF07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb21wdXRlZFN0eWxlO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVVidW50dSk7XCJdKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgQGNoYXJzZXQgXCJVVEYtOFwiO1xuLndlYm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2MmQ2ICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLXRleHQge1xuICBjb2xvcjogIzAwNjJkNiAhaW1wb3J0YW50O1xufVxuXG4ud2Viby13YXZlcyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjJkNiAhaW1wb3J0YW50O1xufVxuXG4ud2Viby5jaGF3bGF3IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzOWI0MyAhaW1wb3J0YW50O1xufVxuXG4ud2Viby10ZXh0LnRleHQtY2hhd2xhdyB7XG4gIGNvbG9yOiAjZjM5YjQzICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLXdhdmVzLndhdmVzLWNoYXdsYXcgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMzliNDMgIWltcG9ydGFudDtcbn1cblxuLndlYm8uc2Vjb25kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdGQSAhaW1wb3J0YW50O1xufVxuXG4ud2Viby10ZXh0LnRleHQtc2Vjb25kIHtcbiAgY29sb3I6ICMwMDc3RkEgIWltcG9ydGFudDtcbn1cblxuLndlYm8td2F2ZXMud2F2ZXMtc2Vjb25kIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0ZBICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLnRoaXJkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA5YmRkZCAhaW1wb3J0YW50O1xufVxuXG4ud2Viby10ZXh0LnRleHQtdGhpcmQge1xuICBjb2xvcjogIzA5YmRkZCAhaW1wb3J0YW50O1xufVxuXG4ud2Viby13YXZlcy53YXZlcy10aGlyZCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA5YmRkZCAhaW1wb3J0YW50O1xufVxuXG4ud2Viby5mb3VydGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JlN2ZlICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLXRleHQudGV4dC1mb3VydGgge1xuICBjb2xvcjogI2NiZTdmZSAhaW1wb3J0YW50O1xufVxuXG4ud2Viby13YXZlcy53YXZlcy1mb3VydGggLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYmU3ZmUgIWltcG9ydGFudDtcbn1cblxuLndlYm8ubGlnaHRlbi01IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiZGVmYiAhaW1wb3J0YW50O1xufVxuXG4ud2Viby10ZXh0LnRleHQtbGlnaHRlbi01IHtcbiAgY29sb3I6ICNiYmRlZmIgIWltcG9ydGFudDtcbn1cblxuLndlYm8td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJkZWZiICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLmxpZ2h0ZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjUgIWltcG9ydGFudDtcbn1cblxuLndlYm8tdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XG4gIGNvbG9yOiAjNDJhNWY1ICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNSAhaW1wb3J0YW50O1xufVxuXG4ud2Viby5saWdodGVuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLXRleHQudGV4dC1saWdodGVuLTMge1xuICBjb2xvcjogIzc5ODZjYiAhaW1wb3J0YW50O1xufVxuXG4ud2Viby13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTg2Y2IgIWltcG9ydGFudDtcbn1cblxuLndlYm8ubGlnaHRlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUxMmRhOCAhaW1wb3J0YW50O1xufVxuXG4ud2Viby10ZXh0LnRleHQtbGlnaHRlbi0yIHtcbiAgY29sb3I6ICM1MTJkYTggIWltcG9ydGFudDtcbn1cblxuLndlYm8td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTEyZGE4ICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLmxpZ2h0ZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyODM1OTMgIWltcG9ydGFudDtcbn1cblxuLndlYm8tdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XG4gIGNvbG9yOiAjMjgzNTkzICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4MzU5MyAhaW1wb3J0YW50O1xufVxuXG4ud2Viby5kYXJrZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMDE4MWUgIWltcG9ydGFudDtcbn1cblxuLndlYm8tdGV4dC50ZXh0LWRhcmtlbi0xIHtcbiAgY29sb3I6ICNkMDE4MWUgIWltcG9ydGFudDtcbn1cblxuLndlYm8td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMDE4MWUgIWltcG9ydGFudDtcbn1cblxuLndlYm8uZGFya2VuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjkxNTFiICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLXRleHQudGV4dC1kYXJrZW4tMiB7XG4gIGNvbG9yOiAjYjkxNTFiICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjkxNTFiICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLmRhcmtlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2EyMTMxOCAhaW1wb3J0YW50O1xufVxuXG4ud2Viby10ZXh0LnRleHQtZGFya2VuLTMge1xuICBjb2xvcjogI2EyMTMxOCAhaW1wb3J0YW50O1xufVxuXG4ud2Viby13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2EyMTMxOCAhaW1wb3J0YW50O1xufVxuXG4ud2Viby5iLSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0OWNlNWYgIWltcG9ydGFudDtcbn1cblxuLndlYm8tdGV4dC50ZXh0LWItIHtcbiAgY29sb3I6ICM0OWNlNWYgIWltcG9ydGFudDtcbn1cblxuLndlYm8td2F2ZXMud2F2ZXMtYi0gLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0OWNlNWYgIWltcG9ydGFudDtcbn1cblxuLndlYm8uZGFya2VuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGIxMDE0ICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLXRleHQudGV4dC1kYXJrZW4tNCB7XG4gIGNvbG9yOiAjOGIxMDE0ICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJvLXdhdmVzLndhdmVzLWRhcmtlbi00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGIxMDE0ICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtdGV4dCB7XG4gIGNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzYgIWltcG9ydGFudDtcbn1cblxuLnJlZC5saWdodGVuLTUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYmVlICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XG4gIGNvbG9yOiAjZmZlYmVlICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYmVlICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQubGlnaHRlbi00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2RkMiAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXRleHQudGV4dC1saWdodGVuLTQge1xuICBjb2xvcjogI2ZmY2RkMiAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2RkMiAhaW1wb3J0YW50O1xufVxuXG4ucmVkLmxpZ2h0ZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZjlhOWEgIWltcG9ydGFudDtcbn1cblxuLnJlZC10ZXh0LnRleHQtbGlnaHRlbi0zIHtcbiAgY29sb3I6ICNlZjlhOWEgIWltcG9ydGFudDtcbn1cblxuLnJlZC13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZjlhOWEgIWltcG9ydGFudDtcbn1cblxuLnJlZC5saWdodGVuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTU3MzczICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XG4gIGNvbG9yOiAjZTU3MzczICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTU3MzczICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQubGlnaHRlbi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXRleHQudGV4dC1saWdodGVuLTEge1xuICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50O1xufVxuXG4ucmVkLmRhcmtlbi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1MzkzNSAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXRleHQudGV4dC1kYXJrZW4tMSB7XG4gIGNvbG9yOiAjZTUzOTM1ICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTM5MzUgIWltcG9ydGFudDtcbn1cblxuLnJlZC5kYXJrZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMzJmMmYgIWltcG9ydGFudDtcbn1cblxuLnJlZC10ZXh0LnRleHQtZGFya2VuLTIge1xuICBjb2xvcjogI2QzMmYyZiAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDMyZjJmICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQuZGFya2VuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzYyODI4ICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtdGV4dC50ZXh0LWRhcmtlbi0zIHtcbiAgY29sb3I6ICNjNjI4MjggIWltcG9ydGFudDtcbn1cblxuLnJlZC13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M2MjgyOCAhaW1wb3J0YW50O1xufVxuXG4ucmVkLmRhcmtlbi00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I3MWMxYyAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXRleHQudGV4dC1kYXJrZW4tNCB7XG4gIGNvbG9yOiAjYjcxYzFjICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNzFjMWMgIWltcG9ydGFudDtcbn1cblxuLnJlZC5hY2NlbnQtMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjhhODAgIWltcG9ydGFudDtcbn1cblxuLnJlZC10ZXh0LnRleHQtYWNjZW50LTEge1xuICBjb2xvcjogI2ZmOGE4MCAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY4YTgwICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQuYWNjZW50LTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtdGV4dC50ZXh0LWFjY2VudC0yIHtcbiAgY29sb3I6ICNmZjUyNTIgIWltcG9ydGFudDtcbn1cblxuLnJlZC13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MiAhaW1wb3J0YW50O1xufVxuXG4ucmVkLmFjY2VudC0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMTc0NCAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXRleHQudGV4dC1hY2NlbnQtMyB7XG4gIGNvbG9yOiAjZmYxNzQ0ICFpbXBvcnRhbnQ7XG59XG5cbi5yZWQtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjE3NDQgIWltcG9ydGFudDtcbn1cblxuLnJlZC5hY2NlbnQtNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNTAwMDAgIWltcG9ydGFudDtcbn1cblxuLnJlZC10ZXh0LnRleHQtYWNjZW50LTQge1xuICBjb2xvcjogI2Q1MDAwMCAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDUwMDAwICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5MWU2MyAhaW1wb3J0YW50O1xufVxuXG4ucGluay10ZXh0IHtcbiAgY29sb3I6ICNlOTFlNjMgIWltcG9ydGFudDtcbn1cblxuLnBpbmstd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOTFlNjMgIWltcG9ydGFudDtcbn1cblxuLnBpbmsubGlnaHRlbi01IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZTRlYyAhaW1wb3J0YW50O1xufVxuXG4ucGluay10ZXh0LnRleHQtbGlnaHRlbi01IHtcbiAgY29sb3I6ICNmY2U0ZWMgIWltcG9ydGFudDtcbn1cblxuLnBpbmstd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNlNGVjICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLmxpZ2h0ZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGJiZDAgIWltcG9ydGFudDtcbn1cblxuLnBpbmstdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XG4gIGNvbG9yOiAjZjhiYmQwICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4YmJkMCAhaW1wb3J0YW50O1xufVxuXG4ucGluay5saWdodGVuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ4ZmIxICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLXRleHQudGV4dC1saWdodGVuLTMge1xuICBjb2xvcjogI2Y0OGZiMSAhaW1wb3J0YW50O1xufVxuXG4ucGluay13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDhmYjEgIWltcG9ydGFudDtcbn1cblxuLnBpbmsubGlnaHRlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwNjI5MiAhaW1wb3J0YW50O1xufVxuXG4ucGluay10ZXh0LnRleHQtbGlnaHRlbi0yIHtcbiAgY29sb3I6ICNmMDYyOTIgIWltcG9ydGFudDtcbn1cblxuLnBpbmstd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjA2MjkyICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLmxpZ2h0ZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzQwN2EgIWltcG9ydGFudDtcbn1cblxuLnBpbmstdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XG4gIGNvbG9yOiAjZWM0MDdhICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjNDA3YSAhaW1wb3J0YW50O1xufVxuXG4ucGluay5kYXJrZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkODFiNjAgIWltcG9ydGFudDtcbn1cblxuLnBpbmstdGV4dC50ZXh0LWRhcmtlbi0xIHtcbiAgY29sb3I6ICNkODFiNjAgIWltcG9ydGFudDtcbn1cblxuLnBpbmstd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkODFiNjAgIWltcG9ydGFudDtcbn1cblxuLnBpbmsuZGFya2VuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzIxODViICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLXRleHQudGV4dC1kYXJrZW4tMiB7XG4gIGNvbG9yOiAjYzIxODViICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzIxODViICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLmRhcmtlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FkMTQ1NyAhaW1wb3J0YW50O1xufVxuXG4ucGluay10ZXh0LnRleHQtZGFya2VuLTMge1xuICBjb2xvcjogI2FkMTQ1NyAhaW1wb3J0YW50O1xufVxuXG4ucGluay13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FkMTQ1NyAhaW1wb3J0YW50O1xufVxuXG4ucGluay5kYXJrZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODBlNGYgIWltcG9ydGFudDtcbn1cblxuLnBpbmstdGV4dC50ZXh0LWRhcmtlbi00IHtcbiAgY29sb3I6ICM4ODBlNGYgIWltcG9ydGFudDtcbn1cblxuLnBpbmstd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODBlNGYgIWltcG9ydGFudDtcbn1cblxuLnBpbmsuYWNjZW50LTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY4MGFiICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLXRleHQudGV4dC1hY2NlbnQtMSB7XG4gIGNvbG9yOiAjZmY4MGFiICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY4MGFiICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLmFjY2VudC0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNDA4MSAhaW1wb3J0YW50O1xufVxuXG4ucGluay10ZXh0LnRleHQtYWNjZW50LTIge1xuICBjb2xvcjogI2ZmNDA4MSAhaW1wb3J0YW50O1xufVxuXG4ucGluay13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNDA4MSAhaW1wb3J0YW50O1xufVxuXG4ucGluay5hY2NlbnQtMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNTAwNTcgIWltcG9ydGFudDtcbn1cblxuLnBpbmstdGV4dC50ZXh0LWFjY2VudC0zIHtcbiAgY29sb3I6ICNmNTAwNTcgIWltcG9ydGFudDtcbn1cblxuLnBpbmstd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNTAwNTcgIWltcG9ydGFudDtcbn1cblxuLnBpbmsuYWNjZW50LTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzUxMTYyICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLXRleHQudGV4dC1hY2NlbnQtNCB7XG4gIGNvbG9yOiAjYzUxMTYyICFpbXBvcnRhbnQ7XG59XG5cbi5waW5rLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzUxMTYyICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWMyN2IwICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtdGV4dCB7XG4gIGNvbG9yOiAjOWMyN2IwICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5YzI3YjAgIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS5saWdodGVuLTUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNlNWY1ICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XG4gIGNvbG9yOiAjZjNlNWY1ICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNlNWY1ICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUubGlnaHRlbi00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UxYmVlNyAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLXRleHQudGV4dC1saWdodGVuLTQge1xuICBjb2xvcjogI2UxYmVlNyAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UxYmVlNyAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLmxpZ2h0ZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZTkzZDggIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi0zIHtcbiAgY29sb3I6ICNjZTkzZDggIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZTkzZDggIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS5saWdodGVuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmE2OGM4ICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XG4gIGNvbG9yOiAjYmE2OGM4ICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmE2OGM4ICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUubGlnaHRlbi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FiNDdiYyAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLXRleHQudGV4dC1saWdodGVuLTEge1xuICBjb2xvcjogI2FiNDdiYyAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FiNDdiYyAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLmRhcmtlbi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhlMjRhYSAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLXRleHQudGV4dC1kYXJrZW4tMSB7XG4gIGNvbG9yOiAjOGUyNGFhICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ZTI0YWEgIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS5kYXJrZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3YjFmYTIgIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS10ZXh0LnRleHQtZGFya2VuLTIge1xuICBjb2xvcjogIzdiMWZhMiAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2IxZmEyICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUuZGFya2VuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmExYjlhICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtdGV4dC50ZXh0LWRhcmtlbi0zIHtcbiAgY29sb3I6ICM2YTFiOWEgIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZhMWI5YSAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLmRhcmtlbi00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRhMTQ4YyAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLXRleHQudGV4dC1kYXJrZW4tNCB7XG4gIGNvbG9yOiAjNGExNDhjICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0YTE0OGMgIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS5hY2NlbnQtMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYTgwZmMgIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS10ZXh0LnRleHQtYWNjZW50LTEge1xuICBjb2xvcjogI2VhODBmYyAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWE4MGZjICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUuYWNjZW50LTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTA0MGZiICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtdGV4dC50ZXh0LWFjY2VudC0yIHtcbiAgY29sb3I6ICNlMDQwZmIgIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwNDBmYiAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLmFjY2VudC0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1MDBmOSAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLXRleHQudGV4dC1hY2NlbnQtMyB7XG4gIGNvbG9yOiAjZDUwMGY5ICFpbXBvcnRhbnQ7XG59XG5cbi5wdXJwbGUtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNTAwZjkgIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS5hY2NlbnQtNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhYTAwZmYgIWltcG9ydGFudDtcbn1cblxuLnB1cnBsZS10ZXh0LnRleHQtYWNjZW50LTQge1xuICBjb2xvcjogI2FhMDBmZiAhaW1wb3J0YW50O1xufVxuXG4ucHVycGxlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWEwMGZmICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NzNhYjcgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLXRleHQge1xuICBjb2xvcjogIzY3M2FiNyAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NzNhYjcgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLmxpZ2h0ZW4tNSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGU3ZjYgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLXRleHQudGV4dC1saWdodGVuLTUge1xuICBjb2xvcjogI2VkZTdmNiAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlN2Y2ICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS5saWdodGVuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFjNGU5ICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi00IHtcbiAgY29sb3I6ICNkMWM0ZTkgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxYzRlOSAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUubGlnaHRlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzOWRkYiAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUtdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XG4gIGNvbG9yOiAjYjM5ZGRiICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMzlkZGIgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLmxpZ2h0ZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NTc1Y2QgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLXRleHQudGV4dC1saWdodGVuLTIge1xuICBjb2xvcjogIzk1NzVjZCAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTU3NWNkICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS5saWdodGVuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi0xIHtcbiAgY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMiAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUuZGFya2VuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWUzNWIxICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS10ZXh0LnRleHQtZGFya2VuLTEge1xuICBjb2xvcjogIzVlMzViMSAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ZTM1YjEgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLmRhcmtlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUxMmRhOCAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUtdGV4dC50ZXh0LWRhcmtlbi0yIHtcbiAgY29sb3I6ICM1MTJkYTggIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTEyZGE4ICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS5kYXJrZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NTI3YTAgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLXRleHQudGV4dC1kYXJrZW4tMyB7XG4gIGNvbG9yOiAjNDUyN2EwICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ1MjdhMCAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUuZGFya2VuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzExYjkyICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS10ZXh0LnRleHQtZGFya2VuLTQge1xuICBjb2xvcjogIzMxMWI5MiAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMTFiOTIgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLmFjY2VudC0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzODhmZiAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUtdGV4dC50ZXh0LWFjY2VudC0xIHtcbiAgY29sb3I6ICNiMzg4ZmYgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjM4OGZmICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS5hY2NlbnQtMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3YzRkZmYgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLXRleHQudGV4dC1hY2NlbnQtMiB7XG4gIGNvbG9yOiAjN2M0ZGZmICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdjNGRmZiAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUuYWNjZW50LTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjUxZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLXB1cnBsZS10ZXh0LnRleHQtYWNjZW50LTMge1xuICBjb2xvcjogIzY1MWZmZiAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NTFmZmYgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLmFjY2VudC00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlYSAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1wdXJwbGUtdGV4dC50ZXh0LWFjY2VudC00IHtcbiAgY29sb3I6ICM2MjAwZWEgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtcHVycGxlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVhICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28tdGV4dCB7XG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28td2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby5saWdodGVuLTUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlYWY2ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28tdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XG4gIGNvbG9yOiAjZThlYWY2ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlYWY2ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28ubGlnaHRlbi00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M1Y2FlOSAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLXRleHQudGV4dC1saWdodGVuLTQge1xuICBjb2xvcjogI2M1Y2FlOSAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M1Y2FlOSAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLmxpZ2h0ZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZmE4ZGEgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby10ZXh0LnRleHQtbGlnaHRlbi0zIHtcbiAgY29sb3I6ICM5ZmE4ZGEgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZmE4ZGEgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby5saWdodGVuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28tdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XG4gIGNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28ubGlnaHRlbi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjNmJjMCAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLXRleHQudGV4dC1saWdodGVuLTEge1xuICBjb2xvcjogIzVjNmJjMCAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjNmJjMCAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLmRhcmtlbi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM5NDlhYiAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLXRleHQudGV4dC1kYXJrZW4tMSB7XG4gIGNvbG9yOiAjMzk0OWFiICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOTQ5YWIgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby5kYXJrZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDNmOWYgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby10ZXh0LnRleHQtZGFya2VuLTIge1xuICBjb2xvcjogIzMwM2Y5ZiAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzZjlmICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28uZGFya2VuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgzNTkzICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28tdGV4dC50ZXh0LWRhcmtlbi0zIHtcbiAgY29sb3I6ICMyODM1OTMgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4MzU5MyAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLmRhcmtlbi00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMjM3ZSAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLXRleHQudGV4dC1kYXJrZW4tNCB7XG4gIGNvbG9yOiAjMWEyMzdlICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28td2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYTIzN2UgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby5hY2NlbnQtMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YzllZmYgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby10ZXh0LnRleHQtYWNjZW50LTEge1xuICBjb2xvcjogIzhjOWVmZiAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGM5ZWZmICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28uYWNjZW50LTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTM2ZGZlICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28tdGV4dC50ZXh0LWFjY2VudC0yIHtcbiAgY29sb3I6ICM1MzZkZmUgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUzNmRmZSAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLmFjY2VudC0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNkNWFmZSAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLXRleHQudGV4dC1hY2NlbnQtMyB7XG4gIGNvbG9yOiAjM2Q1YWZlICFpbXBvcnRhbnQ7XG59XG5cbi5pbmRpZ28td2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZDVhZmUgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby5hY2NlbnQtNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDRmZmUgIWltcG9ydGFudDtcbn1cblxuLmluZGlnby10ZXh0LnRleHQtYWNjZW50LTQge1xuICBjb2xvcjogIzMwNGZmZSAhaW1wb3J0YW50O1xufVxuXG4uaW5kaWdvLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzA0ZmZlICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMyAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS10ZXh0IHtcbiAgY29sb3I6ICMyMTk2ZjMgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjMgIWltcG9ydGFudDtcbn1cblxuLmJsdWUubGlnaHRlbi01IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzZjJmZCAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi01IHtcbiAgY29sb3I6ICNlM2YyZmQgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNmMmZkICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLmxpZ2h0ZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmRlZmIgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XG4gIGNvbG9yOiAjYmJkZWZiICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiZGVmYiAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS5saWdodGVuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTBjYWY5ICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLXRleHQudGV4dC1saWdodGVuLTMge1xuICBjb2xvcjogIzkwY2FmOSAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MGNhZjkgIWltcG9ydGFudDtcbn1cblxuLmJsdWUubGlnaHRlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNiAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi0yIHtcbiAgY29sb3I6ICM2NGI1ZjYgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2ICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLmxpZ2h0ZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjUgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XG4gIGNvbG9yOiAjNDJhNWY1ICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNSAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS5kYXJrZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTg4ZTUgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtdGV4dC50ZXh0LWRhcmtlbi0xIHtcbiAgY29sb3I6ICMxZTg4ZTUgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTg4ZTUgIWltcG9ydGFudDtcbn1cblxuLmJsdWUuZGFya2VuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NmQyICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLXRleHQudGV4dC1kYXJrZW4tMiB7XG4gIGNvbG9yOiAjMTk3NmQyICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NmQyICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLmRhcmtlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1NjVjMCAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS10ZXh0LnRleHQtZGFya2VuLTMge1xuICBjb2xvcjogIzE1NjVjMCAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1NjVjMCAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS5kYXJrZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDQ3YTEgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtdGV4dC50ZXh0LWRhcmtlbi00IHtcbiAgY29sb3I6ICMwZDQ3YTEgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDQ3YTEgIWltcG9ydGFudDtcbn1cblxuLmJsdWUuYWNjZW50LTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJiMWZmICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLXRleHQudGV4dC1hY2NlbnQtMSB7XG4gIGNvbG9yOiAjODJiMWZmICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJiMWZmICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLmFjY2VudC0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZiAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS10ZXh0LnRleHQtYWNjZW50LTIge1xuICBjb2xvcjogIzQ0OGFmZiAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZiAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS5hY2NlbnQtMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTc5ZmYgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtdGV4dC50ZXh0LWFjY2VudC0zIHtcbiAgY29sb3I6ICMyOTc5ZmYgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTc5ZmYgIWltcG9ydGFudDtcbn1cblxuLmJsdWUuYWNjZW50LTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjk2MmZmICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLXRleHQudGV4dC1hY2NlbnQtNCB7XG4gIGNvbG9yOiAjMjk2MmZmICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjk2MmZmICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzYTlmNCAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS10ZXh0IHtcbiAgY29sb3I6ICMwM2E5ZjQgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwM2E5ZjQgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUubGlnaHRlbi01IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UxZjVmZSAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi01IHtcbiAgY29sb3I6ICNlMWY1ZmUgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFmNWZlICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLmxpZ2h0ZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiM2U1ZmMgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XG4gIGNvbG9yOiAjYjNlNWZjICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzZTVmYyAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS5saWdodGVuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODFkNGZhICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLXRleHQudGV4dC1saWdodGVuLTMge1xuICBjb2xvcjogIzgxZDRmYSAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MWQ0ZmEgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUubGlnaHRlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRmYzNmNyAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi0yIHtcbiAgY29sb3I6ICM0ZmMzZjcgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGZjM2Y3ICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLmxpZ2h0ZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOWI2ZjYgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XG4gIGNvbG9yOiAjMjliNmY2ICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5YjZmNiAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS5kYXJrZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMzliZTUgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWRhcmtlbi0xIHtcbiAgY29sb3I6ICMwMzliZTUgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMzliZTUgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUuZGFya2VuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI4OGQxICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLXRleHQudGV4dC1kYXJrZW4tMiB7XG4gIGNvbG9yOiAjMDI4OGQxICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI4OGQxICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLmRhcmtlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAyNzdiZCAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS10ZXh0LnRleHQtZGFya2VuLTMge1xuICBjb2xvcjogIzAyNzdiZCAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAyNzdiZCAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS5kYXJrZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMTU3OWIgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWRhcmtlbi00IHtcbiAgY29sb3I6ICMwMTU3OWIgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMTU3OWIgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUuYWNjZW50LTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODBkOGZmICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLXRleHQudGV4dC1hY2NlbnQtMSB7XG4gIGNvbG9yOiAjODBkOGZmICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODBkOGZmICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLmFjY2VudC0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQwYzRmZiAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS10ZXh0LnRleHQtYWNjZW50LTIge1xuICBjb2xvcjogIzQwYzRmZiAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQwYzRmZiAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtYmx1ZS5hY2NlbnQtMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGIwZmYgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWFjY2VudC0zIHtcbiAgY29sb3I6ICMwMGIwZmYgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGIwZmYgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWJsdWUuYWNjZW50LTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5MWVhICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLXRleHQudGV4dC1hY2NlbnQtNCB7XG4gIGNvbG9yOiAjMDA5MWVhICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ibHVlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5MWVhICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYmNkNCAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi10ZXh0IHtcbiAgY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDtcbn1cblxuLmN5YW4td2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDtcbn1cblxuLmN5YW4ubGlnaHRlbi01IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZjdmYSAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi10ZXh0LnRleHQtbGlnaHRlbi01IHtcbiAgY29sb3I6ICNlMGY3ZmEgIWltcG9ydGFudDtcbn1cblxuLmN5YW4td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBmN2ZhICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLmxpZ2h0ZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMmViZjIgIWltcG9ydGFudDtcbn1cblxuLmN5YW4tdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XG4gIGNvbG9yOiAjYjJlYmYyICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IyZWJmMiAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi5saWdodGVuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODBkZWVhICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLXRleHQudGV4dC1saWdodGVuLTMge1xuICBjb2xvcjogIzgwZGVlYSAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MGRlZWEgIWltcG9ydGFudDtcbn1cblxuLmN5YW4ubGlnaHRlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkZDBlMSAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi10ZXh0LnRleHQtbGlnaHRlbi0yIHtcbiAgY29sb3I6ICM0ZGQwZTEgIWltcG9ydGFudDtcbn1cblxuLmN5YW4td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRkMGUxICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLmxpZ2h0ZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmM2ZGEgIWltcG9ydGFudDtcbn1cblxuLmN5YW4tdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XG4gIGNvbG9yOiAjMjZjNmRhICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YzZkYSAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi5kYXJrZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGFjYzEgIWltcG9ydGFudDtcbn1cblxuLmN5YW4tdGV4dC50ZXh0LWRhcmtlbi0xIHtcbiAgY29sb3I6ICMwMGFjYzEgIWltcG9ydGFudDtcbn1cblxuLmN5YW4td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGFjYzEgIWltcG9ydGFudDtcbn1cblxuLmN5YW4uZGFya2VuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N2E3ICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLXRleHQudGV4dC1kYXJrZW4tMiB7XG4gIGNvbG9yOiAjMDA5N2E3ICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N2E3ICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLmRhcmtlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwODM4ZiAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi10ZXh0LnRleHQtZGFya2VuLTMge1xuICBjb2xvcjogIzAwODM4ZiAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwODM4ZiAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi5kYXJrZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDYwNjQgIWltcG9ydGFudDtcbn1cblxuLmN5YW4tdGV4dC50ZXh0LWRhcmtlbi00IHtcbiAgY29sb3I6ICMwMDYwNjQgIWltcG9ydGFudDtcbn1cblxuLmN5YW4td2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDYwNjQgIWltcG9ydGFudDtcbn1cblxuLmN5YW4uYWNjZW50LTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODRmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLXRleHQudGV4dC1hY2NlbnQtMSB7XG4gIGNvbG9yOiAjODRmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODRmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLmFjY2VudC0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4ZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi10ZXh0LnRleHQtYWNjZW50LTIge1xuICBjb2xvcjogIzE4ZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4ZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uY3lhbi5hY2NlbnQtMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZmYgIWltcG9ydGFudDtcbn1cblxuLmN5YW4tdGV4dC50ZXh0LWFjY2VudC0zIHtcbiAgY29sb3I6ICMwMGU1ZmYgIWltcG9ydGFudDtcbn1cblxuLmN5YW4td2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZmYgIWltcG9ydGFudDtcbn1cblxuLmN5YW4uYWNjZW50LTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiOGQ0ICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLXRleHQudGV4dC1hY2NlbnQtNCB7XG4gIGNvbG9yOiAjMDBiOGQ0ICFpbXBvcnRhbnQ7XG59XG5cbi5jeWFuLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiOGQ0ICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTY4OCAhaW1wb3J0YW50O1xufVxuXG4udGVhbC10ZXh0IHtcbiAgY29sb3I6ICMwMDk2ODggIWltcG9ydGFudDtcbn1cblxuLnRlYWwtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDk2ODggIWltcG9ydGFudDtcbn1cblxuLnRlYWwubGlnaHRlbi01IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZjJmMSAhaW1wb3J0YW50O1xufVxuXG4udGVhbC10ZXh0LnRleHQtbGlnaHRlbi01IHtcbiAgY29sb3I6ICNlMGYyZjEgIWltcG9ydGFudDtcbn1cblxuLnRlYWwtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBmMmYxICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLmxpZ2h0ZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMmRmZGIgIWltcG9ydGFudDtcbn1cblxuLnRlYWwtdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XG4gIGNvbG9yOiAjYjJkZmRiICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IyZGZkYiAhaW1wb3J0YW50O1xufVxuXG4udGVhbC5saWdodGVuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODBjYmM0ICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLXRleHQudGV4dC1saWdodGVuLTMge1xuICBjb2xvcjogIzgwY2JjNCAhaW1wb3J0YW50O1xufVxuXG4udGVhbC13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MGNiYzQgIWltcG9ydGFudDtcbn1cblxuLnRlYWwubGlnaHRlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjZhYyAhaW1wb3J0YW50O1xufVxuXG4udGVhbC10ZXh0LnRleHQtbGlnaHRlbi0yIHtcbiAgY29sb3I6ICM0ZGI2YWMgIWltcG9ydGFudDtcbn1cblxuLnRlYWwtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiNmFjICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLmxpZ2h0ZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWEgIWltcG9ydGFudDtcbn1cblxuLnRlYWwtdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XG4gIGNvbG9yOiAjMjZhNjlhICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YSAhaW1wb3J0YW50O1xufVxuXG4udGVhbC5kYXJrZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDg5N2IgIWltcG9ydGFudDtcbn1cblxuLnRlYWwtdGV4dC50ZXh0LWRhcmtlbi0xIHtcbiAgY29sb3I6ICMwMDg5N2IgIWltcG9ydGFudDtcbn1cblxuLnRlYWwtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDg5N2IgIWltcG9ydGFudDtcbn1cblxuLnRlYWwuZGFya2VuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OTZiICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLXRleHQudGV4dC1kYXJrZW4tMiB7XG4gIGNvbG9yOiAjMDA3OTZiICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OTZiICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLmRhcmtlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjk1YyAhaW1wb3J0YW50O1xufVxuXG4udGVhbC10ZXh0LnRleHQtZGFya2VuLTMge1xuICBjb2xvcjogIzAwNjk1YyAhaW1wb3J0YW50O1xufVxuXG4udGVhbC13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjk1YyAhaW1wb3J0YW50O1xufVxuXG4udGVhbC5kYXJrZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDRkNDAgIWltcG9ydGFudDtcbn1cblxuLnRlYWwtdGV4dC50ZXh0LWRhcmtlbi00IHtcbiAgY29sb3I6ICMwMDRkNDAgIWltcG9ydGFudDtcbn1cblxuLnRlYWwtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDRkNDAgIWltcG9ydGFudDtcbn1cblxuLnRlYWwuYWNjZW50LTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdmZmViICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLXRleHQudGV4dC1hY2NlbnQtMSB7XG4gIGNvbG9yOiAjYTdmZmViICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdmZmViICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLmFjY2VudC0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0ZmZkYSAhaW1wb3J0YW50O1xufVxuXG4udGVhbC10ZXh0LnRleHQtYWNjZW50LTIge1xuICBjb2xvcjogIzY0ZmZkYSAhaW1wb3J0YW50O1xufVxuXG4udGVhbC13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0ZmZkYSAhaW1wb3J0YW50O1xufVxuXG4udGVhbC5hY2NlbnQtMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZGU5YjYgIWltcG9ydGFudDtcbn1cblxuLnRlYWwtdGV4dC50ZXh0LWFjY2VudC0zIHtcbiAgY29sb3I6ICMxZGU5YjYgIWltcG9ydGFudDtcbn1cblxuLnRlYWwtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZGU5YjYgIWltcG9ydGFudDtcbn1cblxuLnRlYWwuYWNjZW50LTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiZmE1ICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLXRleHQudGV4dC1hY2NlbnQtNCB7XG4gIGNvbG9yOiAjMDBiZmE1ICFpbXBvcnRhbnQ7XG59XG5cbi50ZWFsLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiZmE1ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTAgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLXRleHQge1xuICBjb2xvcjogIzRjYWY1MCAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4td2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTAgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLmxpZ2h0ZW4tNSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOGY1ZTkgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLXRleHQudGV4dC1saWdodGVuLTUge1xuICBjb2xvcjogI2U4ZjVlOSAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThmNWU5ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi5saWdodGVuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzhlNmM5ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi00IHtcbiAgY29sb3I6ICNjOGU2YzkgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M4ZTZjOSAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4ubGlnaHRlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E1ZDZhNyAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XG4gIGNvbG9yOiAjYTVkNmE3ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhNWQ2YTcgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLmxpZ2h0ZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MWM3ODQgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLXRleHQudGV4dC1saWdodGVuLTIge1xuICBjb2xvcjogIzgxYzc4NCAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODFjNzg0ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi5saWdodGVuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjZiYjZhICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi0xIHtcbiAgY29sb3I6ICM2NmJiNmEgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2YmI2YSAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4uZGFya2VuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDNhMDQ3ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi10ZXh0LnRleHQtZGFya2VuLTEge1xuICBjb2xvcjogIzQzYTA0NyAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0M2EwNDcgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLmRhcmtlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4OGUzYyAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4tdGV4dC50ZXh0LWRhcmtlbi0yIHtcbiAgY29sb3I6ICMzODhlM2MgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzg4ZTNjICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi5kYXJrZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZTdkMzIgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLXRleHQudGV4dC1kYXJrZW4tMyB7XG4gIGNvbG9yOiAjMmU3ZDMyICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJlN2QzMiAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4uZGFya2VuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWI1ZTIwICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi10ZXh0LnRleHQtZGFya2VuLTQge1xuICBjb2xvcjogIzFiNWUyMCAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4td2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYjVlMjAgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLmFjY2VudC0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I5ZjZjYSAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4tdGV4dC50ZXh0LWFjY2VudC0xIHtcbiAgY29sb3I6ICNiOWY2Y2EgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjlmNmNhICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi5hY2NlbnQtMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2OWYwYWUgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLXRleHQudGV4dC1hY2NlbnQtMiB7XG4gIGNvbG9yOiAjNjlmMGFlICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY5ZjBhZSAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4uYWNjZW50LTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNjc2ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmVlbi10ZXh0LnRleHQtYWNjZW50LTMge1xuICBjb2xvcjogIzAwZTY3NiAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4td2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU2NzYgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLmFjY2VudC00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYzg1MyAhaW1wb3J0YW50O1xufVxuXG4uZ3JlZW4tdGV4dC50ZXh0LWFjY2VudC00IHtcbiAgY29sb3I6ICMwMGM4NTMgIWltcG9ydGFudDtcbn1cblxuLmdyZWVuLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBjODUzICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGEgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLXRleHQge1xuICBjb2xvcjogIzhiYzM0YSAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4td2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGEgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLmxpZ2h0ZW4tNSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWY4ZTkgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLXRleHQudGV4dC1saWdodGVuLTUge1xuICBjb2xvcjogI2YxZjhlOSAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmOGU5ICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi5saWdodGVuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNlZGM4ICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi00IHtcbiAgY29sb3I6ICNkY2VkYzggIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjZWRjOCAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4ubGlnaHRlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M1ZTFhNSAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XG4gIGNvbG9yOiAjYzVlMWE1ICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNWUxYTUgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLmxpZ2h0ZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhZWQ1ODEgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLXRleHQudGV4dC1saWdodGVuLTIge1xuICBjb2xvcjogI2FlZDU4MSAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWVkNTgxICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi5saWdodGVuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWNjYzY1ICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi0xIHtcbiAgY29sb3I6ICM5Y2NjNjUgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzljY2M2NSAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4uZGFya2VuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2NiMzQyICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi10ZXh0LnRleHQtZGFya2VuLTEge1xuICBjb2xvcjogIzdjYjM0MiAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Y2IzNDIgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLmRhcmtlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4OWYzOCAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWRhcmtlbi0yIHtcbiAgY29sb3I6ICM2ODlmMzggIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjg5ZjM4ICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi5kYXJrZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NThiMmYgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLXRleHQudGV4dC1kYXJrZW4tMyB7XG4gIGNvbG9yOiAjNTU4YjJmICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1OGIyZiAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4uZGFya2VuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM2OTFlICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi10ZXh0LnRleHQtZGFya2VuLTQge1xuICBjb2xvcjogIzMzNjkxZSAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4td2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzY5MWUgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLmFjY2VudC0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjZmY5MCAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWFjY2VudC0xIHtcbiAgY29sb3I6ICNjY2ZmOTAgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NmZjkwICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi5hY2NlbnQtMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMmZmNTkgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLXRleHQudGV4dC1hY2NlbnQtMiB7XG4gIGNvbG9yOiAjYjJmZjU5ICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IyZmY1OSAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4uYWNjZW50LTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzZmZjAzICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC1ncmVlbi10ZXh0LnRleHQtYWNjZW50LTMge1xuICBjb2xvcjogIzc2ZmYwMyAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4td2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3NmZmMDMgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLmFjY2VudC00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0ZGQxNyAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWFjY2VudC00IHtcbiAgY29sb3I6ICM2NGRkMTcgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LWdyZWVuLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRkZDE3ICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NkZGMzOSAhaW1wb3J0YW50O1xufVxuXG4ubGltZS10ZXh0IHtcbiAgY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDtcbn1cblxuLmxpbWUubGlnaHRlbi01IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZmJlNyAhaW1wb3J0YW50O1xufVxuXG4ubGltZS10ZXh0LnRleHQtbGlnaHRlbi01IHtcbiAgY29sb3I6ICNmOWZiZTcgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmYmU3ICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLmxpZ2h0ZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGY0YzMgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XG4gIGNvbG9yOiAjZjBmNGMzICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjRjMyAhaW1wb3J0YW50O1xufVxuXG4ubGltZS5saWdodGVuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlZTljICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLXRleHQudGV4dC1saWdodGVuLTMge1xuICBjb2xvcjogI2U2ZWU5YyAhaW1wb3J0YW50O1xufVxuXG4ubGltZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmVlOWMgIWltcG9ydGFudDtcbn1cblxuLmxpbWUubGlnaHRlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjZTc3NSAhaW1wb3J0YW50O1xufVxuXG4ubGltZS10ZXh0LnRleHQtbGlnaHRlbi0yIHtcbiAgY29sb3I6ICNkY2U3NzUgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNlNzc1ICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLmxpZ2h0ZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNGUxNTcgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XG4gIGNvbG9yOiAjZDRlMTU3ICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZTE1NyAhaW1wb3J0YW50O1xufVxuXG4ubGltZS5kYXJrZW4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMGNhMzMgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtdGV4dC50ZXh0LWRhcmtlbi0xIHtcbiAgY29sb3I6ICNjMGNhMzMgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMGNhMzMgIWltcG9ydGFudDtcbn1cblxuLmxpbWUuZGFya2VuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWZiNDJiICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLXRleHQudGV4dC1kYXJrZW4tMiB7XG4gIGNvbG9yOiAjYWZiNDJiICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWZiNDJiICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLmRhcmtlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzllOWQyNCAhaW1wb3J0YW50O1xufVxuXG4ubGltZS10ZXh0LnRleHQtZGFya2VuLTMge1xuICBjb2xvcjogIzllOWQyNCAhaW1wb3J0YW50O1xufVxuXG4ubGltZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzllOWQyNCAhaW1wb3J0YW50O1xufVxuXG4ubGltZS5kYXJrZW4tNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4Mjc3MTcgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtdGV4dC50ZXh0LWRhcmtlbi00IHtcbiAgY29sb3I6ICM4Mjc3MTcgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4Mjc3MTcgIWltcG9ydGFudDtcbn1cblxuLmxpbWUuYWNjZW50LTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmZjgxICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLXRleHQudGV4dC1hY2NlbnQtMSB7XG4gIGNvbG9yOiAjZjRmZjgxICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmZjgxICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLmFjY2VudC0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZmY0MSAhaW1wb3J0YW50O1xufVxuXG4ubGltZS10ZXh0LnRleHQtYWNjZW50LTIge1xuICBjb2xvcjogI2VlZmY0MSAhaW1wb3J0YW50O1xufVxuXG4ubGltZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZmY0MSAhaW1wb3J0YW50O1xufVxuXG4ubGltZS5hY2NlbnQtMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNmZmMDAgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtdGV4dC50ZXh0LWFjY2VudC0zIHtcbiAgY29sb3I6ICNjNmZmMDAgIWltcG9ydGFudDtcbn1cblxuLmxpbWUtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNmZmMDAgIWltcG9ydGFudDtcbn1cblxuLmxpbWUuYWNjZW50LTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWVlYTAwICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLXRleHQudGV4dC1hY2NlbnQtNCB7XG4gIGNvbG9yOiAjYWVlYTAwICFpbXBvcnRhbnQ7XG59XG5cbi5saW1lLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWVlYTAwICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctdGV4dCB7XG4gIGNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmViM2IgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy5saWdodGVuLTUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZGU3ICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XG4gIGNvbG9yOiAjZmZmZGU3ICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZGU3ICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3cubGlnaHRlbi00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjljNCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LXRleHQudGV4dC1saWdodGVuLTQge1xuICBjb2xvcjogI2ZmZjljNCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjljNCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LmxpZ2h0ZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY1OWQgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy10ZXh0LnRleHQtbGlnaHRlbi0zIHtcbiAgY29sb3I6ICNmZmY1OWQgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY1OWQgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy5saWdodGVuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmMTc2ICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XG4gIGNvbG9yOiAjZmZmMTc2ICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmMTc2ICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3cubGlnaHRlbi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWU1OCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LXRleHQudGV4dC1saWdodGVuLTEge1xuICBjb2xvcjogI2ZmZWU1OCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWU1OCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LmRhcmtlbi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZDgzNSAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LXRleHQudGV4dC1kYXJrZW4tMSB7XG4gIGNvbG9yOiAjZmRkODM1ICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGQ4MzUgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy5kYXJrZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYmMwMmQgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy10ZXh0LnRleHQtZGFya2VuLTIge1xuICBjb2xvcjogI2ZiYzAyZCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJjMDJkICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3cuZGFya2VuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlhODI1ICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctdGV4dC50ZXh0LWRhcmtlbi0zIHtcbiAgY29sb3I6ICNmOWE4MjUgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5YTgyNSAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LmRhcmtlbi00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1N2YxNyAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LXRleHQudGV4dC1kYXJrZW4tNCB7XG4gIGNvbG9yOiAjZjU3ZjE3ICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNTdmMTcgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy5hY2NlbnQtMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmOGQgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy10ZXh0LnRleHQtYWNjZW50LTEge1xuICBjb2xvcjogI2ZmZmY4ZCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZjhkICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3cuYWNjZW50LTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZjAwICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctdGV4dC50ZXh0LWFjY2VudC0yIHtcbiAgY29sb3I6ICNmZmZmMDAgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmYwMCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LmFjY2VudC0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWEwMCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LXRleHQudGV4dC1hY2NlbnQtMyB7XG4gIGNvbG9yOiAjZmZlYTAwICFpbXBvcnRhbnQ7XG59XG5cbi55ZWxsb3ctd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmVhMDAgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy5hY2NlbnQtNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ2MDAgIWltcG9ydGFudDtcbn1cblxuLnllbGxvdy10ZXh0LnRleHQtYWNjZW50LTQge1xuICBjb2xvcjogI2ZmZDYwMCAhaW1wb3J0YW50O1xufVxuXG4ueWVsbG93LXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNjAwICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmMxMDcgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLXRleHQge1xuICBjb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXItd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmMxMDcgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLmxpZ2h0ZW4tNSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY4ZTEgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLXRleHQudGV4dC1saWdodGVuLTUge1xuICBjb2xvcjogI2ZmZjhlMSAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXItd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOGUxICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci5saWdodGVuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlY2IzICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci10ZXh0LnRleHQtbGlnaHRlbi00IHtcbiAgY29sb3I6ICNmZmVjYjMgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWNiMyAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXIubGlnaHRlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTA4MiAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXItdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XG4gIGNvbG9yOiAjZmZlMDgyICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmUwODIgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLmxpZ2h0ZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ1NGYgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLXRleHQudGV4dC1saWdodGVuLTIge1xuICBjb2xvcjogI2ZmZDU0ZiAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXItd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNTRmICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci5saWdodGVuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjYTI4ICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci10ZXh0LnRleHQtbGlnaHRlbi0xIHtcbiAgY29sb3I6ICNmZmNhMjggIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2EyOCAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXIuZGFya2VuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiMzAwICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci10ZXh0LnRleHQtZGFya2VuLTEge1xuICBjb2xvcjogI2ZmYjMwMCAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXItd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmIzMDAgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLmRhcmtlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYTAwMCAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXItdGV4dC50ZXh0LWRhcmtlbi0yIHtcbiAgY29sb3I6ICNmZmEwMDAgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhMDAwICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci5kYXJrZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjhmMDAgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLXRleHQudGV4dC1kYXJrZW4tMyB7XG4gIGNvbG9yOiAjZmY4ZjAwICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOGYwMCAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXIuZGFya2VuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci10ZXh0LnRleHQtZGFya2VuLTQge1xuICBjb2xvcjogI2ZmNmYwMCAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXItd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDAgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLmFjY2VudC0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTU3ZiAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXItdGV4dC50ZXh0LWFjY2VudC0xIHtcbiAgY29sb3I6ICNmZmU1N2YgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTdmICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci5hY2NlbnQtMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDAgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLXRleHQudGV4dC1hY2NlbnQtMiB7XG4gIGNvbG9yOiAjZmZkNzQwICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MCAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXIuYWNjZW50LTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjNDAwICFpbXBvcnRhbnQ7XG59XG5cbi5hbWJlci10ZXh0LnRleHQtYWNjZW50LTMge1xuICBjb2xvcjogI2ZmYzQwMCAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXItd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmM0MDAgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLmFjY2VudC00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWIwMCAhaW1wb3J0YW50O1xufVxuXG4uYW1iZXItdGV4dC50ZXh0LWFjY2VudC00IHtcbiAgY29sb3I6ICNmZmFiMDAgIWltcG9ydGFudDtcbn1cblxuLmFtYmVyLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhYjAwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5ODAwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2UtdGV4dCB7XG4gIGNvbG9yOiAjZmY5ODAwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2Utd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjk4MDAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS5saWdodGVuLTUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmM2UwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XG4gIGNvbG9yOiAjZmZmM2UwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2Utd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmM2UwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2UubGlnaHRlbi00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTBiMiAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLXRleHQudGV4dC1saWdodGVuLTQge1xuICBjb2xvcjogI2ZmZTBiMiAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTBiMiAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLmxpZ2h0ZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNjODAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS10ZXh0LnRleHQtbGlnaHRlbi0zIHtcbiAgY29sb3I6ICNmZmNjODAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNjODAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS5saWdodGVuLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiNzRkICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XG4gIGNvbG9yOiAjZmZiNzRkICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2Utd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiNzRkICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2UubGlnaHRlbi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYTcyNiAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLXRleHQudGV4dC1saWdodGVuLTEge1xuICBjb2xvcjogI2ZmYTcyNiAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYTcyNiAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLmRhcmtlbi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiOGMwMCAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLXRleHQudGV4dC1kYXJrZW4tMSB7XG4gIGNvbG9yOiAjZmI4YzAwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2Utd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYjhjMDAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS5kYXJrZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNTdjMDAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTIge1xuICBjb2xvcjogI2Y1N2MwMCAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjU3YzAwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2UuZGFya2VuLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWY2YzAwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2UtdGV4dC50ZXh0LWRhcmtlbi0zIHtcbiAgY29sb3I6ICNlZjZjMDAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmNmMwMCAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLmRhcmtlbi00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2NTEwMCAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLXRleHQudGV4dC1kYXJrZW4tNCB7XG4gIGNvbG9yOiAjZTY1MTAwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2Utd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNjUxMDAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS5hY2NlbnQtMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQxODAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTEge1xuICBjb2xvcjogI2ZmZDE4MCAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkMTgwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2UuYWNjZW50LTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhYjQwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2UtdGV4dC50ZXh0LWFjY2VudC0yIHtcbiAgY29sb3I6ICNmZmFiNDAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWI0MCAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLmFjY2VudC0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOTEwMCAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLXRleHQudGV4dC1hY2NlbnQtMyB7XG4gIGNvbG9yOiAjZmY5MTAwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmFuZ2Utd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjkxMDAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS5hY2NlbnQtNCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZkMDAgIWltcG9ydGFudDtcbn1cblxuLm9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTQge1xuICBjb2xvcjogI2ZmNmQwMCAhaW1wb3J0YW50O1xufVxuXG4ub3JhbmdlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZDAwICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjIgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLXRleHQge1xuICBjb2xvcjogI2ZmNTcyMiAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2Utd2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjIgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLmxpZ2h0ZW4tNSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYmU5ZTcgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLXRleHQudGV4dC1saWdodGVuLTUge1xuICBjb2xvcjogI2ZiZTllNyAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2Utd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJlOWU3ICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS5saWdodGVuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjY2JjICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS10ZXh0LnRleHQtbGlnaHRlbi00IHtcbiAgY29sb3I6ICNmZmNjYmMgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2NiYyAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2UubGlnaHRlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWI5MSAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XG4gIGNvbG9yOiAjZmZhYjkxICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmFiOTEgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLmxpZ2h0ZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjhhNjUgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLXRleHQudGV4dC1saWdodGVuLTIge1xuICBjb2xvcjogI2ZmOGE2NSAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2Utd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY4YTY1ICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS5saWdodGVuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3MDQzICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS10ZXh0LnRleHQtbGlnaHRlbi0xIHtcbiAgY29sb3I6ICNmZjcwNDMgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzA0MyAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2UuZGFya2VuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ1MTFlICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTEge1xuICBjb2xvcjogI2Y0NTExZSAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2Utd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDUxMWUgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLmRhcmtlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2NGExOSAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWRhcmtlbi0yIHtcbiAgY29sb3I6ICNlNjRhMTkgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0YTE5ICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS5kYXJrZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkODQzMTUgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLXRleHQudGV4dC1kYXJrZW4tMyB7XG4gIGNvbG9yOiAjZDg0MzE1ICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4NDMxNSAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2UuZGFya2VuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmYzNjBjICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTQge1xuICBjb2xvcjogI2JmMzYwYyAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2Utd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZjM2MGMgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLmFjY2VudC0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOWU4MCAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWFjY2VudC0xIHtcbiAgY29sb3I6ICNmZjllODAgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5ZTgwICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS5hY2NlbnQtMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZlNDAgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLXRleHQudGV4dC1hY2NlbnQtMiB7XG4gIGNvbG9yOiAjZmY2ZTQwICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmU0MCAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2UuYWNjZW50LTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYzZDAwICFpbXBvcnRhbnQ7XG59XG5cbi5kZWVwLW9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTMge1xuICBjb2xvcjogI2ZmM2QwMCAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2Utd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjNkMDAgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLmFjY2VudC00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkMmMwMCAhaW1wb3J0YW50O1xufVxuXG4uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWFjY2VudC00IHtcbiAgY29sb3I6ICNkZDJjMDAgIWltcG9ydGFudDtcbn1cblxuLmRlZXAtb3JhbmdlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGQyYzAwICFpbXBvcnRhbnQ7XG59XG5cbi5icm93biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTU1NDggIWltcG9ydGFudDtcbn1cblxuLmJyb3duLXRleHQge1xuICBjb2xvcjogIzc5NTU0OCAhaW1wb3J0YW50O1xufVxuXG4uYnJvd24td2F2ZXMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTU1NDggIWltcG9ydGFudDtcbn1cblxuLmJyb3duLmxpZ2h0ZW4tNSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmViZTkgIWltcG9ydGFudDtcbn1cblxuLmJyb3duLXRleHQudGV4dC1saWdodGVuLTUge1xuICBjb2xvcjogI2VmZWJlOSAhaW1wb3J0YW50O1xufVxuXG4uYnJvd24td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlYmU5ICFpbXBvcnRhbnQ7XG59XG5cbi5icm93bi5saWdodGVuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XG59XG5cbi5icm93bi10ZXh0LnRleHQtbGlnaHRlbi00IHtcbiAgY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDtcbn1cblxuLmJyb3duLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q3Y2NjOCAhaW1wb3J0YW50O1xufVxuXG4uYnJvd24ubGlnaHRlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JjYWFhNCAhaW1wb3J0YW50O1xufVxuXG4uYnJvd24tdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XG4gIGNvbG9yOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XG59XG5cbi5icm93bi13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiY2FhYTQgIWltcG9ydGFudDtcbn1cblxuLmJyb3duLmxpZ2h0ZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhMTg4N2YgIWltcG9ydGFudDtcbn1cblxuLmJyb3duLXRleHQudGV4dC1saWdodGVuLTIge1xuICBjb2xvcjogI2ExODg3ZiAhaW1wb3J0YW50O1xufVxuXG4uYnJvd24td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTE4ODdmICFpbXBvcnRhbnQ7XG59XG5cbi5icm93bi5saWdodGVuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XG59XG5cbi5icm93bi10ZXh0LnRleHQtbGlnaHRlbi0xIHtcbiAgY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDtcbn1cblxuLmJyb3duLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhkNmU2MyAhaW1wb3J0YW50O1xufVxuXG4uYnJvd24uZGFya2VuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmQ0YzQxICFpbXBvcnRhbnQ7XG59XG5cbi5icm93bi10ZXh0LnRleHQtZGFya2VuLTEge1xuICBjb2xvcjogIzZkNGM0MSAhaW1wb3J0YW50O1xufVxuXG4uYnJvd24td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ZDRjNDEgIWltcG9ydGFudDtcbn1cblxuLmJyb3duLmRhcmtlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVkNDAzNyAhaW1wb3J0YW50O1xufVxuXG4uYnJvd24tdGV4dC50ZXh0LWRhcmtlbi0yIHtcbiAgY29sb3I6ICM1ZDQwMzcgIWltcG9ydGFudDtcbn1cblxuLmJyb3duLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XG59XG5cbi5icm93bi5kYXJrZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZTM0MmUgIWltcG9ydGFudDtcbn1cblxuLmJyb3duLXRleHQudGV4dC1kYXJrZW4tMyB7XG4gIGNvbG9yOiAjNGUzNDJlICFpbXBvcnRhbnQ7XG59XG5cbi5icm93bi13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRlMzQyZSAhaW1wb3J0YW50O1xufVxuXG4uYnJvd24uZGFya2VuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2UyNzIzICFpbXBvcnRhbnQ7XG59XG5cbi5icm93bi10ZXh0LnRleHQtZGFya2VuLTQge1xuICBjb2xvcjogIzNlMjcyMyAhaW1wb3J0YW50O1xufVxuXG4uYnJvd24td2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZTI3MjMgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGIgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS10ZXh0IHtcbiAgY29sb3I6ICM2MDdkOGIgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS13YXZlcyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4YiAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS1ncmV5LmxpZ2h0ZW4tNSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VmZjEgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS10ZXh0LnRleHQtbGlnaHRlbi01IHtcbiAgY29sb3I6ICNlY2VmZjEgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS13YXZlcy53YXZlcy1saWdodGVuLTUgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VmZjEgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS5saWdodGVuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLWdyZXktdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XG4gIGNvbG9yOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLWdyZXktd2F2ZXMud2F2ZXMtbGlnaHRlbi00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLWdyZXkubGlnaHRlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYmVjNSAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS1ncmV5LXRleHQudGV4dC1saWdodGVuLTMge1xuICBjb2xvcjogI2IwYmVjNSAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS1ncmV5LXdhdmVzLndhdmVzLWxpZ2h0ZW4tMyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYmVjNSAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS1ncmV5LmxpZ2h0ZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MGE0YWUgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS10ZXh0LnRleHQtbGlnaHRlbi0yIHtcbiAgY29sb3I6ICM5MGE0YWUgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS13YXZlcy53YXZlcy1saWdodGVuLTIgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MGE0YWUgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS5saWdodGVuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzg5MDljICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLWdyZXktdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XG4gIGNvbG9yOiAjNzg5MDljICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLWdyZXktd2F2ZXMud2F2ZXMtbGlnaHRlbi0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzg5MDljICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLWdyZXkuZGFya2VuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ2ZTdhICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLWdyZXktdGV4dC50ZXh0LWRhcmtlbi0xIHtcbiAgY29sb3I6ICM1NDZlN2EgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS13YXZlcy53YXZlcy1kYXJrZW4tMSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0NmU3YSAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS1ncmV5LmRhcmtlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ1NWE2NCAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS1ncmV5LXRleHQudGV4dC1kYXJrZW4tMiB7XG4gIGNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLWdyZXktd2F2ZXMud2F2ZXMtZGFya2VuLTIgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NTVhNjQgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS5kYXJrZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzQ3NGYgIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS10ZXh0LnRleHQtZGFya2VuLTMge1xuICBjb2xvcjogIzM3NDc0ZiAhaW1wb3J0YW50O1xufVxuXG4uYmx1ZS1ncmV5LXdhdmVzLndhdmVzLWRhcmtlbi0zIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc0NzRmICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLWdyZXkuZGFya2VuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjYzMjM4ICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlLWdyZXktdGV4dC50ZXh0LWRhcmtlbi00IHtcbiAgY29sb3I6ICMyNjMyMzggIWltcG9ydGFudDtcbn1cblxuLmJsdWUtZ3JleS13YXZlcy53YXZlcy1kYXJrZW4tNCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2MzIzOCAhaW1wb3J0YW50O1xufVxuXG4uZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZTllOWUgIWltcG9ydGFudDtcbn1cblxuLmdyZXktdGV4dCB7XG4gIGNvbG9yOiAjOWU5ZTllICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LXdhdmVzIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWU5ZTllICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LmxpZ2h0ZW4tNSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDtcbn1cblxuLmdyZXktdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XG4gIGNvbG9yOiAjZmFmYWZhICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LXdhdmVzLndhdmVzLWxpZ2h0ZW4tNSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuXG4uZ3JleS5saWdodGVuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LXRleHQudGV4dC1saWdodGVuLTQge1xuICBjb2xvcjogI2Y1ZjVmNSAhaW1wb3J0YW50O1xufVxuXG4uZ3JleS13YXZlcy53YXZlcy1saWdodGVuLTQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjUgIWltcG9ydGFudDtcbn1cblxuLmdyZXkubGlnaHRlbi0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZSAhaW1wb3J0YW50O1xufVxuXG4uZ3JleS10ZXh0LnRleHQtbGlnaHRlbi0zIHtcbiAgY29sb3I6ICNlZWVlZWUgIWltcG9ydGFudDtcbn1cblxuLmdyZXktd2F2ZXMud2F2ZXMtbGlnaHRlbi0zIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LmxpZ2h0ZW4tMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDtcbn1cblxuLmdyZXktdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XG4gIGNvbG9yOiAjZTBlMGUwICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LXdhdmVzLndhdmVzLWxpZ2h0ZW4tMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMCAhaW1wb3J0YW50O1xufVxuXG4uZ3JleS5saWdodGVuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LXRleHQudGV4dC1saWdodGVuLTEge1xuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xufVxuXG4uZ3JleS13YXZlcy53YXZlcy1saWdodGVuLTEgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQgIWltcG9ydGFudDtcbn1cblxuLmdyZXkuZGFya2VuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzU3NTc1ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LXRleHQudGV4dC1kYXJrZW4tMSB7XG4gIGNvbG9yOiAjNzU3NTc1ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LXdhdmVzLndhdmVzLWRhcmtlbi0xIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzU3NTc1ICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LmRhcmtlbi0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYxNjE2MSAhaW1wb3J0YW50O1xufVxuXG4uZ3JleS10ZXh0LnRleHQtZGFya2VuLTIge1xuICBjb2xvcjogIzYxNjE2MSAhaW1wb3J0YW50O1xufVxuXG4uZ3JleS13YXZlcy53YXZlcy1kYXJrZW4tMiAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYxNjE2MSAhaW1wb3J0YW50O1xufVxuXG4uZ3JleS5kYXJrZW4tMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDIgIWltcG9ydGFudDtcbn1cblxuLmdyZXktdGV4dC50ZXh0LWRhcmtlbi0zIHtcbiAgY29sb3I6ICM0MjQyNDIgIWltcG9ydGFudDtcbn1cblxuLmdyZXktd2F2ZXMud2F2ZXMtZGFya2VuLTMgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDIgIWltcG9ydGFudDtcbn1cblxuLmdyZXkuZGFya2VuLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LXRleHQudGV4dC1kYXJrZW4tNCB7XG4gIGNvbG9yOiAjMjEyMTIxICFpbXBvcnRhbnQ7XG59XG5cbi5ncmV5LXdhdmVzLndhdmVzLWRhcmtlbi00IC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxICFpbXBvcnRhbnQ7XG59XG5cbi5ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cblxuLmJsYWNrLXRleHQge1xuICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuXG4ud2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi53aGl0ZS10ZXh0IHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLnRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLnRyYW5zcGFyZW50LXRleHQge1xuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBwcmlzbS5qcyBUd2lsaWdodCB0aGVtZVxuICogQmFzZWQgKG1vcmUgb3IgbGVzcykgb24gdGhlIFR3aWxpZ2h0IHRoZW1lIG9yaWdpbmFsbHkgb2YgVGV4dG1hdGUgZmFtZS5cbiAqIEBhdXRob3IgUmVteSBCYWNoXG4gKi9cbmNvZGVbY2xhc3MqPWxhbmd1YWdlLV0sXG5wcmVbY2xhc3MqPWxhbmd1YWdlLV0ge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgTW9uYWNvLCBcIkFuZGFsZSBNb25vXCIsIFwiVWJ1bnR1IE1vbm9cIiwgbW9ub3NwYWNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LXNoYWRvdzogMCAtMC4xZW0gMC4yZW0gYmxhY2s7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICAtbW96LXRhYi1zaXplOiA0O1xuICAtby10YWItc2l6ZTogNDtcbiAgdGFiLXNpemU6IDQ7XG4gIC13ZWJraXQtaHlwaGVuczogbm9uZTtcbiAgLW1vei1oeXBoZW5zOiBub25lO1xuICAtbXMtaHlwaGVuczogbm9uZTtcbiAgaHlwaGVuczogbm9uZTtcbn1cblxucHJlW2NsYXNzKj1sYW5ndWFnZS1dLFxuOm5vdChwcmUpID4gY29kZVtjbGFzcyo9bGFuZ3VhZ2UtXSB7XG4gIGJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOCUpOyAvKiAjMTQxNDE0ICovXG59XG5cbi8qIENvZGUgYmxvY2tzICovXG5wcmVbY2xhc3MqPWxhbmd1YWdlLV0ge1xuICBib3JkZXItcmFkaXVzOiAwLjVlbTtcbiAgYm9yZGVyOiAwLjNlbSBzb2xpZCBoc2woMCwgMCUsIDMzJSk7IC8qICMyODJBMkIgKi9cbiAgYm94LXNoYWRvdzogMXB4IDFweCAwLjVlbSBibGFjayBpbnNldDtcbiAgbWFyZ2luOiAwLjVlbSAwO1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogMWVtO1xufVxuXG5wcmVbY2xhc3MqPWxhbmd1YWdlLV06Oi1tb3otc2VsZWN0aW9uIHtcbiAgLyogRmlyZWZveCAqL1xuICBiYWNrZ3JvdW5kOiBoc2woMjAwLCA0JSwgMTYlKTsgLyogIzI4MkEyQiAqL1xufVxuXG5wcmVbY2xhc3MqPWxhbmd1YWdlLV06OnNlbGVjdGlvbiB7XG4gIC8qIFNhZmFyaSAqL1xuICBiYWNrZ3JvdW5kOiBoc2woMjAwLCA0JSwgMTYlKTsgLyogIzI4MkEyQiAqL1xufVxuXG4vKiBUZXh0IFNlbGVjdGlvbiBjb2xvdXIgKi9cbnByZVtjbGFzcyo9bGFuZ3VhZ2UtXTo6LW1vei1zZWxlY3Rpb24sIHByZVtjbGFzcyo9bGFuZ3VhZ2UtXSA6Oi1tb3otc2VsZWN0aW9uLFxuY29kZVtjbGFzcyo9bGFuZ3VhZ2UtXTo6LW1vei1zZWxlY3Rpb24sIGNvZGVbY2xhc3MqPWxhbmd1YWdlLV0gOjotbW96LXNlbGVjdGlvbiB7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCA5MyUsIDAuMTUpOyAvKiAjRURFREVEICovXG59XG5cbnByZVtjbGFzcyo9bGFuZ3VhZ2UtXTo6c2VsZWN0aW9uLCBwcmVbY2xhc3MqPWxhbmd1YWdlLV0gOjpzZWxlY3Rpb24sXG5jb2RlW2NsYXNzKj1sYW5ndWFnZS1dOjpzZWxlY3Rpb24sIGNvZGVbY2xhc3MqPWxhbmd1YWdlLV0gOjpzZWxlY3Rpb24ge1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogaHNsYSgwLCAwJSwgOTMlLCAwLjE1KTsgLyogI0VERURFRCAqL1xufVxuXG4vKiBJbmxpbmUgY29kZSAqL1xuOm5vdChwcmUpID4gY29kZVtjbGFzcyo9bGFuZ3VhZ2UtXSB7XG4gIGJvcmRlci1yYWRpdXM6IDAuM2VtO1xuICBib3JkZXI6IDAuMTNlbSBzb2xpZCBoc2woMCwgMCUsIDMzJSk7IC8qICM1NDU0NTQgKi9cbiAgYm94LXNoYWRvdzogMXB4IDFweCAwLjNlbSAtMC4xZW0gYmxhY2sgaW5zZXQ7XG4gIHBhZGRpbmc6IDAuMTVlbSAwLjJlbSAwLjA1ZW07XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi50b2tlbi5jb21tZW50LFxuLnRva2VuLnByb2xvZyxcbi50b2tlbi5kb2N0eXBlLFxuLnRva2VuLmNkYXRhIHtcbiAgY29sb3I6IGhzbCgwLCAwJSwgNDclKTsgLyogIzc3Nzc3NyAqL1xufVxuXG4udG9rZW4ucHVuY3R1YXRpb24ge1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5uYW1lc3BhY2Uge1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi50b2tlbi50YWcsXG4udG9rZW4uYm9vbGVhbixcbi50b2tlbi5udW1iZXIsXG4udG9rZW4uZGVsZXRlZCB7XG4gIGNvbG9yOiBoc2woMTQsIDU4JSwgNTUlKTsgLyogI0NGNkE0QyAqL1xufVxuXG4udG9rZW4ua2V5d29yZCxcbi50b2tlbi5wcm9wZXJ0eSxcbi50b2tlbi5zZWxlY3Rvcixcbi50b2tlbi5jb25zdGFudCxcbi50b2tlbi5zeW1ib2wsXG4udG9rZW4uYnVpbHRpbiB7XG4gIGNvbG9yOiBoc2woNTMsIDg5JSwgNzklKTsgLyogI0Y5RUU5OCAqL1xufVxuXG4udG9rZW4uYXR0ci1uYW1lLFxuLnRva2VuLmF0dHItdmFsdWUsXG4udG9rZW4uc3RyaW5nLFxuLnRva2VuLmNoYXIsXG4udG9rZW4ub3BlcmF0b3IsXG4udG9rZW4uZW50aXR5LFxuLnRva2VuLnVybCxcbi5sYW5ndWFnZS1jc3MgLnRva2VuLnN0cmluZyxcbi5zdHlsZSAudG9rZW4uc3RyaW5nLFxuLnRva2VuLnZhcmlhYmxlLFxuLnRva2VuLmluc2VydGVkIHtcbiAgY29sb3I6IGhzbCg3NiwgMjElLCA1MiUpOyAvKiAjOEY5RDZBICovXG59XG5cbi50b2tlbi5hdHJ1bGUge1xuICBjb2xvcjogaHNsKDIxOCwgMjIlLCA1NSUpOyAvKiAjNzU4N0E2ICovXG59XG5cbi50b2tlbi5yZWdleCxcbi50b2tlbi5pbXBvcnRhbnQge1xuICBjb2xvcjogaHNsKDQyLCA3NSUsIDY1JSk7IC8qICNFOUMwNjIgKi9cbn1cblxuLnRva2VuLmltcG9ydGFudCxcbi50b2tlbi5ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi50b2tlbi5pdGFsaWMge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi50b2tlbi5lbnRpdHkge1xuICBjdXJzb3I6IGhlbHA7XG59XG5cbnByZVtkYXRhLWxpbmVdIHtcbiAgcGFkZGluZzogMWVtIDAgMWVtIDNlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiBNYXJrdXAgKi9cbi5sYW5ndWFnZS1tYXJrdXAgLnRva2VuLnRhZyxcbi5sYW5ndWFnZS1tYXJrdXAgLnRva2VuLmF0dHItbmFtZSxcbi5sYW5ndWFnZS1tYXJrdXAgLnRva2VuLnB1bmN0dWF0aW9uIHtcbiAgY29sb3I6IGhzbCgzMywgMzMlLCA1MiUpOyAvKiAjQUM4ODVCICovXG59XG5cbi8qIE1ha2UgdGhlIHRva2VucyBzaXQgYWJvdmUgdGhlIGxpbmUgaGlnaGxpZ2h0IHNvIHRoZSBjb2xvdXJzIGRvbid0IGxvb2sgZmFkZWQuICovXG4udG9rZW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5saW5lLWhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDMzJSwgMC4yNSk7IC8qICM1NDU0NTQgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBoc2xhKDAsIDAlLCAzMyUsIDAuMSkgNzAlLCBoc2xhKDAsIDAlLCAzMyUsIDApKTsgLyogIzU0NTQ1NCAqL1xuICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIGhzbCgwLCAwJSwgMzMlKTsgLyogIzU0NTQ1NCAqL1xuICBib3JkZXItdG9wOiAxcHggZGFzaGVkIGhzbCgwLCAwJSwgMzMlKTsgLyogIzU0NTQ1NCAqL1xuICBsZWZ0OiAwO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbWFyZ2luLXRvcDogMC43NWVtOyAvKiBTYW1lIGFzIC5wcmlzbeKAmXMgcGFkZGluZy10b3AgKi9cbiAgcGFkZGluZzogaW5oZXJpdCAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgei1pbmRleDogMDtcbn1cblxuLmxpbmUtaGlnaGxpZ2h0OmJlZm9yZSxcbi5saW5lLWhpZ2hsaWdodFtkYXRhLWVuZF06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMjE1LCAxNSUsIDU5JSk7IC8qICM4Nzk0QTYgKi9cbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IHdoaXRlO1xuICBjb2xvcjogaHNsKDI0LCAyMCUsIDk1JSk7IC8qICNGNUYyRjAgKi9cbiAgY29udGVudDogYXR0cihkYXRhLXN0YXJ0KTtcbiAgZm9udDogYm9sZCA2NSUvMS41IHNhbnMtc2VyaWY7XG4gIGxlZnQ6IDAuNmVtO1xuICBtaW4td2lkdGg6IDFlbTtcbiAgcGFkZGluZzogMCAwLjVlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0b3A6IDAuNGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogMC4zZW07XG59XG5cbi5saW5lLWhpZ2hsaWdodFtkYXRhLWVuZF06YWZ0ZXIge1xuICBib3R0b206IDAuNGVtO1xuICBjb250ZW50OiBhdHRyKGRhdGEtZW5kKTtcbiAgdG9wOiBhdXRvO1xufVxuXG4ud2luZG93IHtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgd2lkdGg6IDYwMHB4O1xuICBtYXJnaW46IDc1cHggYXV0bztcbiAgYmFja2dyb3VuZDogIzJjM2U1MDtcbiAgaGVpZ2h0OiAzNTBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBkaXNwbGF5OiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMTBweCAxMHB4IDEwcHggIzg4ODg4ODtcbn1cblxuLmFmdGVyY2xvc2Uge1xuICBjb2xvcjogIzM0NDk1ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ub3BlbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAxNXB4O1xuICBiYWNrZ3JvdW5kOiAjMmVjYzcxO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLmJhc2gge1xuICB3aWR0aDogNjAwcHg7XG4gIGJhY2tncm91bmQ6ICMzNDQ5NWU7XG4gIGhlaWdodDogMzEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgdG9wOiA0MHB4O1xuICBkaXNwbGF5OiBhYnNvbHV0ZTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYmFzaCAuY29tbWFuZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJ1c2VyQG1hY2hpbmUgXFwkIDogXCI7XG4gIGNvbG9yOiAjMmVjYzcxO1xufVxuLmJhc2ggLnJlc3VsdGE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiPj5cIjtcbiAgY29sb3I6ICMyZWNjNzE7XG59XG5cbi8qIGVmZmVjdGVkIGJ5IGNvbnRyb2xsZXJzICovXG4ud2luZG93bWF4IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogYXV0bztcbiAgYmFja2dyb3VuZDogIzJjM2U1MDtcbiAgaGVpZ2h0OiAxMDAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZGlzcGxheTogcmVsYXRpdmU7XG59XG5cbi53aW5kb3dtaW4ge1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogNDVweDtcbiAgYmFja2dyb3VuZDogIzJjM2U1MDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLmJhc2htYXgge1xuICBkaXNwbGF5OiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMzNDQ5NWU7XG4gIGhlaWdodDogOTYwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm90dG9tOiAwO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLyogIS0tZW5kLS0hICovXG4uYnV0dG9ucyB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDEzcHggNHB4O1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jbG9zZSB7XG4gIGJhY2tncm91bmQ6ICNlNzRjM2M7XG59XG5cbi5tYXhpbWl6ZSB7XG4gIGJhY2tncm91bmQ6ICNmMWM0MGY7XG59XG5cbi5taW5pbWl6ZSB7XG4gIGJhY2tncm91bmQ6ICMyZWNjNzE7XG59XG5cbi5yZXN1bHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29udHJvbHMge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHRvcDogMDtcbn1cblxuLnRpdGxlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ubWF0ZXJpYWwtdG9vbHRpcCB7XG4gIHBhZGRpbmc6IDEwcHggOHB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIHotaW5kZXg6IDIwMDA7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6ICNmZmY7XG4gIG1pbi1oZWlnaHQ6IDM2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMjMyMzI7XG59XG5cbi5iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiA3cHg7XG4gIHdpZHRoOiAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAwIDAgNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzIzMjtcbiAgei1pbmRleDogLTE7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2hhZG93LTAge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIDJkcCBlbGV2YXRpb24gbW9kaWZpZWQqL1xuLnNoYWRvdy0xLCBuYXYsIC5kcm9wZG93bi1jb250ZW50LCAuY2FyZCwgLmNhcmQtcGFuZWwsIC5idG4tZmxvYXRpbmcsIC5idG4sIC5idG4tc21hbGwsIC5idG4tbGFyZ2UsIC5jb2xsYXBzaWJsZSB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLnNoYWRvdy0xLWhhbGYsIC5idG4tZmxvYXRpbmc6aG92ZXIsIC5idG46aG92ZXIsIC5idG4tc21hbGw6aG92ZXIsIC5idG4tbGFyZ2U6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDNweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA3cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi8qIDZkcCBlbGV2YXRpb24gbW9kaWZpZWQqL1xuLnNoYWRvdy0yIHtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuLyogMTJkcCBlbGV2YXRpb24gbW9kaWZpZWQqL1xuLnNoYWRvdy0zIHtcbiAgYm94LXNoYWRvdzogMCA4cHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4vKiAxNmRwIGVsZXZhdGlvbiAqL1xuLnNoYWRvdy00IHtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgOHB4IDEwcHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi8qIDI0ZHAgZWxldmF0aW9uICovXG4uc2hhZG93LTUsIC5tb2RhbCB7XG4gIGJveC1zaGFkb3c6IDAgMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLyogMjRkcCBlbGV2YXRpb24gKi9cbi5pbnZlcnQtc2hhZG93LTUge1xuICBib3gtc2hhZG93OiAzOHB4IDAgMCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDQ2cHggMCAwIDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMTVweCAwIDAgMCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi5ob3ZlcmFibGUge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjVzO1xufVxuLmhvdmVyYWJsZTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE3cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNnB4IDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xufVxuXG4vKiFcbiAqIFdhdmVzIHYwLjYuMFxuICogaHR0cDovL2ZpYW4ubXkuaWQvV2F2ZXNcbiAqXG4gKiBDb3B5cmlnaHQgMjAxNCBBbGZpYW5hIEUuIFNpYnVlYSBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9maWFucy9XYXZlcy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cbi53YXZlcy1lZmZlY3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogMC4zcyBlYXNlLW91dDtcbn1cbi53YXZlcy1lZmZlY3QgLndhdmVzLXJpcHBsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBvcGFjaXR5OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHRyYW5zaXRpb246IGFsbCAwLjdzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLndhdmVzLWVmZmVjdC53YXZlcy1saWdodCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTtcbn1cbi53YXZlcy1lZmZlY3Qud2F2ZXMtcmVkIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjcpO1xufVxuLndhdmVzLWVmZmVjdC53YXZlcy15ZWxsb3cgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMzUsIDU5LCAwLjcpO1xufVxuLndhdmVzLWVmZmVjdC53YXZlcy1vcmFuZ2UgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxNTIsIDAsIDAuNyk7XG59XG4ud2F2ZXMtZWZmZWN0LndhdmVzLXB1cnBsZSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTYsIDM5LCAxNzYsIDAuNyk7XG59XG4ud2F2ZXMtZWZmZWN0LndhdmVzLWdyZWVuIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjcpO1xufVxuLndhdmVzLWVmZmVjdC53YXZlcy10ZWFsIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE1MCwgMTM2LCAwLjcpO1xufVxuLndhdmVzLWVmZmVjdCBpbnB1dFt0eXBlPWJ1dHRvbl0sIC53YXZlcy1lZmZlY3QgaW5wdXRbdHlwZT1yZXNldF0sIC53YXZlcy1lZmZlY3QgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgYm9yZGVyOiAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4ud2F2ZXMtZWZmZWN0IGltZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogLTE7XG59XG5cbi53YXZlcy1ub3RyYW5zaXRpb24ge1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi53YXZlcy1jaXJjbGUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSAxMDAlLCBibGFjayAxMDAlKTtcbn1cblxuLndhdmVzLWlucHV0LXdyYXBwZXIge1xuICBib3JkZXItcmFkaXVzOiAwLjJlbTtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cbi53YXZlcy1pbnB1dC13cmFwcGVyIC53YXZlcy1idXR0b24taW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbn1cblxuLndhdmVzLWNpcmNsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDIuNWVtO1xuICBoZWlnaHQ6IDIuNWVtO1xuICBsaW5lLWhlaWdodDogMi41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiBub25lO1xufVxuXG4ud2F2ZXMtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogRmlyZWZveCBCdWc6IGxpbmsgbm90IHRyaWdnZXJlZCAqL1xuLndhdmVzLWVmZmVjdCAud2F2ZXMtcmlwcGxlIHtcbiAgei1pbmRleDogLTE7XG59XG5cbi5tb2RhbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIHBhZGRpbmc6IDA7XG4gIG1heC1oZWlnaHQ6IDcwJTtcbiAgd2lkdGg6IDU1JTtcbiAgbWFyZ2luOiBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHdpbGwtY2hhbmdlOiB0b3AsIG9wYWNpdHk7XG59XG4ubW9kYWw6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogOTkycHgpIHtcbiAgLm1vZGFsIHtcbiAgICB3aWR0aDogODAlO1xuICB9XG59XG4ubW9kYWwgaDEsIC5tb2RhbCBoMiwgLm1vZGFsIGgzLCAubW9kYWwgaDQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLm1vZGFsIC5tb2RhbC1jb250ZW50IHtcbiAgcGFkZGluZzogMjRweDtcbn1cbi5tb2RhbCAubW9kYWwtY2xvc2Uge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubW9kYWwgLm1vZGFsLWZvb3RlciB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBwYWRkaW5nOiA0cHggNnB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4sIC5tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4tc21hbGwsIC5tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4tbGFyZ2UsIC5tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4tZmxhdCB7XG4gIG1hcmdpbjogNnB4IDA7XG59XG4ubW9kYWwgLm1vZGFsLWhlYWRlciB7XG4gIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBwYWRkaW5nOiA2cHggNHB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5tb2RhbCAubW9kYWwtaGVhZGVyIC5idG4sIC5tb2RhbCAubW9kYWwtaGVhZGVyIC5idG4tc21hbGwsIC5tb2RhbCAubW9kYWwtaGVhZGVyIC5idG4tbGFyZ2UsIC5tb2RhbCAubW9kYWwtaGVhZGVyIC5idG4tZmxhdCB7XG4gIG1hcmdpbjogNnB4IDA7XG59XG5cbi5tb2RhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk7XG4gIHRvcDogLTI1JTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxMjUlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG59XG5cbi5tb2RhbC5tb2RhbC1maXhlZC1mb290ZXIge1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDcwJTtcbn1cbi5tb2RhbC5tb2RhbC1maXhlZC1mb290ZXIgLm1vZGFsLWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNTZweCk7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLm1vZGFsLm1vZGFsLWZpeGVkLWZvb3RlciAubW9kYWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG59XG5cbi5tb2RhbC5ib3R0b20tc2hlZXQge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogLTEwMCU7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDQ1JTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lsbC1jaGFuZ2U6IGJvdHRvbSwgb3BhY2l0eTtcbn1cblxuaHRtbCxcbmJvZHksXG4jcm9vdCB7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4qIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubm9zZWxlY3Qge1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7IC8qIGlPUyBTYWZhcmkgKi9cbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogU2FmYXJpICovXG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTsgLyogS29ucXVlcm9yIEhUTUwgKi9cbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsgLyogT2xkIHZlcnNpb25zIG9mIEZpcmVmb3ggKi9cbiAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAvKiBJbnRlcm5ldCBFeHBsb3Jlci9FZGdlICovXG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAvKiBOb24tcHJlZml4ZWQgdmVyc2lvbiwgY3VycmVudGx5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZCBieSBDaHJvbWUsIEVkZ2UsIE9wZXJhIGFuZCBGaXJlZm94ICovXG59XG5cbnVsOm5vdCguYnJvd3Nlci1kZWZhdWx0KSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxudWw6bm90KC5icm93c2VyLWRlZmF1bHQpID4gbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbmEge1xuICBjb2xvcjogIzAzOWJlNTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4udy0xMDAge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnJpZ2h0LWFsaWduIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jZW50ZXItYWxpZ24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi52LWNlbnRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5tYjEge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uY29sbGVjdGlvbiB7XG4gIG1hcmdpbjogMC4zMzMzMzMzMzMzcmVtIDAgMC42NjY2NjY2NjY3cmVtIDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDtcbn1cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uaG92ZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xufVxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hdmF0YXIge1xuICBtaW4taGVpZ2h0OiA4NHB4O1xuICBwYWRkaW5nLWxlZnQ6IDcycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyOm5vdCguY2lyY2xlLWNsaXBwZXIpID4gLmNpcmNsZSxcbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIDpub3QoLmNpcmNsZS1jbGlwcGVyKSA+IC5jaXJjbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA0MnB4O1xuICBoZWlnaHQ6IDQycHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGxlZnQ6IDE1cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIGkuY2lyY2xlIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogNDJweDtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIC50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIHAge1xuICBtYXJnaW46IDA7XG59XG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciAuc2Vjb25kYXJ5LWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTZweDtcbiAgcmlnaHQ6IDE2cHg7XG59XG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xuICBjb2xvcjogcmdiKDIzNC4yNSwgMjUwLjI1LCAyNDguNzUpO1xufVxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hY3RpdmUgLnNlY29uZGFyeS1jb250ZW50IHtcbiAgY29sb3I6ICNmZmY7XG59XG4uY29sbGVjdGlvbiBhLmNvbGxlY3Rpb24taXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0cmFuc2l0aW9uOiAwLjI1cztcbiAgY29sb3I6ICMyNmE2OWE7XG59XG4uY29sbGVjdGlvbiBhLmNvbGxlY3Rpb24taXRlbTpub3QoLmFjdGl2ZSk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xufVxuLmNvbGxlY3Rpb24ud2l0aC1oZWFkZXIgLmNvbGxlY3Rpb24taGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTA7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbn1cbi5jb2xsZWN0aW9uLndpdGgtaGVhZGVyIC5jb2xsZWN0aW9uLWl0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG59XG4uY29sbGVjdGlvbi53aXRoLWhlYWRlciAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciB7XG4gIHBhZGRpbmctbGVmdDogNzJweDtcbn1cblxuLnNlY29uZGFyeS1jb250ZW50IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb2xvcjogIzI2YTY5YTtcbn1cblxuLmNvbGxhcHNpYmxlIC5jb2xsZWN0aW9uIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5tb2RhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogMTAwdnc7XG4gIHBhZGRpbmc6IDIwcHggMCAyMHB4IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgei1pbmRleDogOTk5O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5tb2RhbC1vdmVybGF5IC5pbm5lcmZvcm0ge1xuICBtYXgtd2lkdGg6IDY1MHB4O1xufVxuLm1vZGFsLW92ZXJsYXkgLmlubmVyZm9ybSBmb3JtIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuICBNZWRpYSBRdWVyeSBDbGFzc2VzXG4qKioqKioqKioqKioqKioqKioqKioqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogNjAwcHgpIHtcbiAgLmhpZGUtb24tc21hbGwtb25seSwgLmhpZGUtb24tc21hbGwtYW5kLWRvd24ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiA5OTJweCkge1xuICAuaGlkZS1vbi1tZWQtYW5kLWRvd24ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiA2MDFweCkge1xuICAuaGlkZS1vbi1tZWQtYW5kLXVwIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5oaWRlLW9uLW1lZC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogOTkzcHgpIHtcbiAgLmhpZGUtb24tbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDEyMDFweCkge1xuICAuaGlkZS1vbi1leHRyYS1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogMTIwMXB4KSB7XG4gIC5zaG93LW9uLWV4dHJhLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDk5M3B4KSB7XG4gIC5zaG93LW9uLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuc2hvdy1vbi1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogNjAwcHgpIHtcbiAgLnNob3ctb24tc21hbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogNjAxcHgpIHtcbiAgLnNob3ctb24tbWVkaXVtLWFuZC11cCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiA5OTJweCkge1xuICAuc2hvdy1vbi1tZWRpdW0tYW5kLWRvd24ge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogNjAwcHgpIHtcbiAgLmNlbnRlci1vbi1zbWFsbC1vbmx5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKipcbiAgVXRpbGl0eSBDbGFzc2VzXG4qKioqKioqKioqKioqKioqKioqL1xuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5sZWZ0LWFsaWduIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnJpZ2h0LWFsaWduIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jZW50ZXIsIC5jZW50ZXItYWxpZ24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi5uby1zZWxlY3Qge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmNlbnRlci1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4udHJ1bmNhdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG5zcGFuLmJhZGdlIHtcbiAgbWluLXdpZHRoOiAzcmVtO1xuICBwYWRkaW5nOiAwIDZweDtcbiAgbWFyZ2luLWxlZnQ6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBjb2xvcjogIzc1NzU3NTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuc3Bhbi5iYWRnZS5uZXcge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cbnNwYW4uYmFkZ2UubmV3OmFmdGVyIHtcbiAgY29udGVudDogXCIgbmV3XCI7XG59XG5zcGFuLmJhZGdlW2RhdGEtYmFkZ2UtY2FwdGlvbl06OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCIgYXR0cihkYXRhLWJhZGdlLWNhcHRpb24pO1xufVxuXG5uYXYgdWwgYSBzcGFuLmJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bztcbn1cblxuLmNvbGxlY3Rpb24taXRlbSBzcGFuLmJhZGdlIHtcbiAgbWFyZ2luLXRvcDogY2FsYygwLjc1cmVtIC0gMTFweCk7XG59XG5cbi5jb2xsYXBzaWJsZSBzcGFuLmJhZGdlIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5zaWRlbmF2IHNwYW4uYmFkZ2Uge1xuICBtYXJnaW4tdG9wOiAxMS41cHg7XG59XG5cbnRhYmxlIHNwYW4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLmNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMzJweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBsaW5lLWhlaWdodDogMzJweDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmNoaXA6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5jaGlwID4gaW1nIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMCA4cHggMCAtMTJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLmNoaXAgLmNsb3NlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uY2hpcHMge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOWU5ZTllO1xuICBib3gtc2hhZG93OiBub25lO1xuICBtYXJnaW46IDAgMCA4cHggMDtcbiAgbWluLWhlaWdodDogNDVweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG59XG4uY2hpcHMuZm9jdXMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzI2YTY5YTtcbiAgYm94LXNoYWRvdzogMCAxcHggMCAwICMyNmE2OWE7XG59XG4uY2hpcHM6aG92ZXIge1xuICBjdXJzb3I6IHRleHQ7XG59XG4uY2hpcHMgLmlucHV0IHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBsaW5lLWhlaWdodDogMzJweDtcbiAgb3V0bGluZTogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMjBweCAhaW1wb3J0YW50O1xufVxuLmNoaXBzIC5pbnB1dDpmb2N1cyB7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4uY2hpcHMgLmF1dG9jb21wbGV0ZS1jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnByZWZpeCB+IC5jaGlwcyB7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICB3aWR0aDogOTIlO1xuICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG59XG5cbi5jaGlwczplbXB0eSB+IGxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTQwJSk7XG59XG5cbi5jb2xsYXBzaWJsZSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGQ7XG4gIG1hcmdpbjogMC4zMzMzMzMzMzMzcmVtIDAgMC42NjY2NjY2NjY3cmVtIDA7XG59XG5cbi5jb2xsYXBzaWJsZS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xufVxuLmNvbGxhcHNpYmxlLWhlYWRlcjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uY29sbGFwc2libGUtaGVhZGVyIGkge1xuICB3aWR0aDogMnJlbTtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG59XG5cbi5rZXlib2FyZC1mb2N1c2VkIC5jb2xsYXBzaWJsZS1oZWFkZXI6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuXG4uY29sbGFwc2libGUtYm9keSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAycmVtO1xufVxuXG4uc2lkZW5hdiAuY29sbGFwc2libGUsXG4uc2lkZW5hdi5maXhlZCAuY29sbGFwc2libGUge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uc2lkZW5hdiAuY29sbGFwc2libGUgbGksXG4uc2lkZW5hdi5maXhlZCAuY29sbGFwc2libGUgbGkge1xuICBwYWRkaW5nOiAwO1xufVxuLnNpZGVuYXYgLmNvbGxhcHNpYmxlLWhlYWRlcixcbi5zaWRlbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBwYWRkaW5nOiAwIDE1cHg7XG59XG4uc2lkZW5hdiAuY29sbGFwc2libGUtaGVhZGVyOmhvdmVyLFxuLnNpZGVuYXYuZml4ZWQgLmNvbGxhcHNpYmxlLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4uc2lkZW5hdiAuY29sbGFwc2libGUtaGVhZGVyIGksXG4uc2lkZW5hdi5maXhlZCAuY29sbGFwc2libGUtaGVhZGVyIGkge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cbi5zaWRlbmF2IC5jb2xsYXBzaWJsZS1ib2R5LFxuLnNpZGVuYXYuZml4ZWQgLmNvbGxhcHNpYmxlLWJvZHkge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uc2lkZW5hdiAuY29sbGFwc2libGUtYm9keSBsaSBhLFxuLnNpZGVuYXYuZml4ZWQgLmNvbGxhcHNpYmxlLWJvZHkgbGkgYSB7XG4gIHBhZGRpbmc6IDAgMjIuNXB4IDAgMzBweDtcbn1cblxuLmNvbGxhcHNpYmxlLnBvcG91dCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5jb2xsYXBzaWJsZS5wb3BvdXQgPiBsaSB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNiksIDAgMnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBtYXJnaW46IDAgMjRweDtcbiAgdHJhbnNpdGlvbjogbWFyZ2luIDAuMzVzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cbi5jb2xsYXBzaWJsZS5wb3BvdXQgPiBsaS5hY3RpdmUge1xuICBib3gtc2hhZG93OiAwIDVweCAxMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE4KSwgMCA0cHggMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIG1hcmdpbjogMTZweCAwO1xufVxuXG4uY29sbGVjdGlvbiB7XG4gIG1hcmdpbjogMC4zMzMzMzMzMzMzcmVtIDAgMC42NjY2NjY2NjY3cmVtIDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDtcbn1cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIHtcbiAgbWluLWhlaWdodDogODRweDtcbiAgcGFkZGluZy1sZWZ0OiA3MnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhcjpub3QoLmNpcmNsZS1jbGlwcGVyKSA+IC5jaXJjbGUsXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciA6bm90KC5jaXJjbGUtY2xpcHBlcikgPiAuY2lyY2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsZWZ0OiAxNXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciBpLmNpcmNsZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDQycHg7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciAudGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciBwIHtcbiAgbWFyZ2luOiAwO1xufVxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hdmF0YXIgLnNlY29uZGFyeS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE2cHg7XG4gIHJpZ2h0OiAxNnB4O1xufVxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgY29sb3I6IHJnYigyMzQuMjUsIDI1MC4yNSwgMjQ4Ljc1KTtcbn1cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYWN0aXZlIC5zZWNvbmRhcnktY29udGVudCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmNvbGxlY3Rpb24gYS5jb2xsZWN0aW9uLWl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNpdGlvbjogMC4yNXM7XG4gIGNvbG9yOiAjMjZhNjlhO1xufVxuLmNvbGxlY3Rpb24gYS5jb2xsZWN0aW9uLWl0ZW06bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbn1cbi5jb2xsZWN0aW9uLndpdGgtaGVhZGVyIC5jb2xsZWN0aW9uLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwO1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG59XG4uY29sbGVjdGlvbi53aXRoLWhlYWRlciAuY29sbGVjdGlvbi1pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xufVxuLmNvbGxlY3Rpb24ud2l0aC1oZWFkZXIgLmNvbGxlY3Rpb24taXRlbS5hdmF0YXIge1xuICBwYWRkaW5nLWxlZnQ6IDcycHg7XG59XG4uY29sbGVjdGlvbiAuc2Vjb25kYXJ5LWNvbnRlbnQge1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbG9yOiAjMjZhNjlhO1xufVxuXG5zZWxlY3Q6Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggc29saWQgcmdiKDIwMS4wNSwgMjQyLjY1LCAyMzguNzUpO1xufVxuXG5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDEuOCwgMTgyLjYsIDE2OS40KTtcbn1cblxubGFiZWwge1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6ICM5ZTllOWU7XG59XG5cbi8qIFRleHQgSW5wdXRzICsgVGV4dGFyZWFcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBTdHlsZSBQbGFjZWhvbGRlcnMgKi9cbjo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2QxZDFkMTtcbn1cblxuLyogVGV4dCBpbnB1dHMgKi9cbmlucHV0Om5vdChbdHlwZV0pLFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCksXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCksXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCksXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpLFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCksXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCksXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpLFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxcbnRleHRhcmVhLnRleHRhcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5ZTllOWU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGhlaWdodDogNTZweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MsIGJvcmRlciAwLjNzO1xufVxuaW5wdXQ6bm90KFt0eXBlXSk6ZGlzYWJsZWQsIGlucHV0Om5vdChbdHlwZV0pW3JlYWRvbmx5PXJlYWRvbmx5XSxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0sXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0sXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldLFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0sXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0sXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0sXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0sXG50ZXh0YXJlYS50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhLnRleHRhcmVhW3JlYWRvbmx5PXJlYWRvbmx5XSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG5pbnB1dDpub3QoW3R5cGVdKTpkaXNhYmxlZCArIGxhYmVsLCBpbnB1dDpub3QoW3R5cGVdKVtyZWFkb25seT1yZWFkb25seV0gKyBsYWJlbCxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkICsgbGFiZWwsXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0gKyBsYWJlbCxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCArIGxhYmVsLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSArIGxhYmVsLFxuaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkICsgbGFiZWwsXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldICsgbGFiZWwsXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkICsgbGFiZWwsXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSArIGxhYmVsLFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSArIGxhYmVsLFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSArIGxhYmVsLFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkICsgbGFiZWwsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldICsgbGFiZWwsXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0gKyBsYWJlbCxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldICsgbGFiZWwsXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkICsgbGFiZWwsXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSArIGxhYmVsLFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCArIGxhYmVsLFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0gKyBsYWJlbCxcbnRleHRhcmVhLnRleHRhcmVhOmRpc2FibGVkICsgbGFiZWwsXG50ZXh0YXJlYS50ZXh0YXJlYVtyZWFkb25seT1yZWFkb25seV0gKyBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLFxudGV4dGFyZWEudGV4dGFyZWE6Zm9jdXM6bm90KFtyZWFkb25seV0pIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyNmE2OWE7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgMCAjMjZhNjlhO1xufVxuaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxudGV4dGFyZWEudGV4dGFyZWE6Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwge1xuICBjb2xvcjogIzI2YTY5YTtcbn1cbmlucHV0Om5vdChbdHlwZV0pOmZvY3VzLnZhbGlkIH4gbGFiZWwsXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IGxhYmVsLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gbGFiZWwsXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gbGFiZWwsXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IGxhYmVsLFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gbGFiZWwsXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxcbnRleHRhcmVhLnRleHRhcmVhOmZvY3VzLnZhbGlkIH4gbGFiZWwge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbmlucHV0Om5vdChbdHlwZV0pOmZvY3VzLmludmFsaWQgfiBsYWJlbCxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IGxhYmVsLFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IGxhYmVsLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IGxhYmVsLFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxcbnRleHRhcmVhLnRleHRhcmVhOmZvY3VzLmludmFsaWQgfiBsYWJlbCB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuaW5wdXQ6bm90KFt0eXBlXSkudmFsaWRhdGUgKyBsYWJlbCxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkYXRlICsgbGFiZWwsXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUgKyBsYWJlbCxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZSArIGxhYmVsLFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZSArIGxhYmVsLFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUgKyBsYWJlbCxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkYXRlICsgbGFiZWwsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUgKyBsYWJlbCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZSArIGxhYmVsLFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZSArIGxhYmVsLFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZSArIGxhYmVsLFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZSArIGxhYmVsLFxudGV4dGFyZWEudGV4dGFyZWEudmFsaWRhdGUgKyBsYWJlbCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogVmFsaWRhdGlvbiBTYXNzIFBsYWNlaG9sZGVycyAqL1xuLnNlbGVjdC13cmFwcGVyLnZhbGlkID4gaW5wdXQuc2VsZWN0LWRyb3Bkb3duLCBpbnB1dDpub3QoW3R5cGVdKS52YWxpZCwgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMudmFsaWQsXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkLFxuaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkLFxuaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkLFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQsXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkLFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQsXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQsXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkLFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQsXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkLFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCxcbnRleHRhcmVhLnRleHRhcmVhLnZhbGlkLFxudGV4dGFyZWEudGV4dGFyZWE6Zm9jdXMudmFsaWQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzRjYWY1MDtcbiAgYm94LXNoYWRvdzogMCAxcHggMCAwICM0Y2FmNTA7XG59XG5cbi5zZWxlY3Qtd3JhcHBlci5pbnZhbGlkID4gaW5wdXQuc2VsZWN0LWRyb3Bkb3duLCAuc2VsZWN0LXdyYXBwZXIuaW52YWxpZCA+IGlucHV0LnNlbGVjdC1kcm9wZG93bjpmb2N1cywgaW5wdXQ6bm90KFt0eXBlXSkuaW52YWxpZCwgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMuaW52YWxpZCxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQsXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQsXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkLFxuaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQsXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQsXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQsXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkLFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQsXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkLFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQsXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQsXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQsXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQsXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQsXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQsXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQsXG50ZXh0YXJlYS50ZXh0YXJlYS5pbnZhbGlkLFxudGV4dGFyZWEudGV4dGFyZWE6Zm9jdXMuaW52YWxpZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjQ0MzM2O1xuICBib3gtc2hhZG93OiAwIDFweCAwIDAgI2Y0NDMzNjtcbn1cblxuLnNlbGVjdC13cmFwcGVyLnZhbGlkIC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLCAuc2VsZWN0LXdyYXBwZXIuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSwgaW5wdXQ6bm90KFt0eXBlXSkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSwgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSwgaW5wdXQ6bm90KFt0eXBlXSkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSwgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxudGV4dGFyZWEudGV4dGFyZWEudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxcbnRleHRhcmVhLnRleHRhcmVhOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXG50ZXh0YXJlYS50ZXh0YXJlYS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxudGV4dGFyZWEudGV4dGFyZWE6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc2VsZWN0LXdyYXBwZXIudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsIGlucHV0Om5vdChbdHlwZV0pLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLCBpbnB1dDpub3QoW3R5cGVdKTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxudGV4dGFyZWEudGV4dGFyZWEudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG50ZXh0YXJlYS50ZXh0YXJlYTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1zdWNjZXNzKTtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG5cbi5zZWxlY3Qtd3JhcHBlci5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLCBpbnB1dDpub3QoW3R5cGVdKS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLCBpbnB1dDpub3QoW3R5cGVdKTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcbnRleHRhcmVhLnRleHRhcmVhLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXG50ZXh0YXJlYS50ZXh0YXJlYTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLWVycm9yKTtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5zZWxlY3Qtd3JhcHBlciArIGxhYmVsOmFmdGVyLCBpbnB1dDpub3QoW3R5cGVdKSArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCkgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCkgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWw6YWZ0ZXIsXG50ZXh0YXJlYS50ZXh0YXJlYSArIGxhYmVsOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiAwLjJzIG9wYWNpdHkgZWFzZS1vdXQsIDAuMnMgY29sb3IgZWFzZS1vdXQ7XG59XG5cbi5pbnB1dC1maWVsZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5pbnB1dC1maWVsZC5pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4uaW5wdXQtZmllbGQuaW5saW5lIGlucHV0LFxuLmlucHV0LWZpZWxkLmlubGluZSAuc2VsZWN0LWRyb3Bkb3duIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5pbnB1dC1maWVsZC5jb2wgbGFiZWwge1xuICBsZWZ0OiAwLjVyZW07XG59XG4uaW5wdXQtZmllbGQuY29sIC5wcmVmaXggfiBsYWJlbCxcbi5pbnB1dC1maWVsZC5jb2wgLnByZWZpeCB+IC52YWxpZGF0ZSB+IGxhYmVsIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0gLSAxcmVtKTtcbn1cbi5pbnB1dC1maWVsZCA+IGxhYmVsIHtcbiAgY29sb3I6ICM5ZTllOWU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIGN1cnNvcjogdGV4dDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZS1vdXQsIGNvbG9yIDAuMnMgZWFzZS1vdXQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gIHRleHQtYWxpZ246IGluaXRpYWw7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnB4KTtcbn1cbi5pbnB1dC1maWVsZCA+IGxhYmVsOm5vdCgubGFiZWwtaWNvbikuYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNHB4KSBzY2FsZSgwLjgpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG59XG4uaW5wdXQtZmllbGQgPiBpbnB1dFt0eXBlXTotd2Via2l0LWF1dG9maWxsOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpub3QoW3R5cGU9c2VhcmNoXSkgKyBsYWJlbCwgLmlucHV0LWZpZWxkID4gaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCkgKyBsYWJlbCwgLmlucHV0LWZpZWxkID4gaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkgKyBsYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTRweCkgc2NhbGUoMC44KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xufVxuLmlucHV0LWZpZWxkIC5oZWxwZXItdGV4dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMThweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uaW5wdXQtZmllbGQgLmhlbHBlci10ZXh0OjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuLmlucHV0LWZpZWxkIC5wcmVmaXgge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA1NnB4O1xuICBmb250LXNpemU6IDJyZW07XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XG59XG4uaW5wdXQtZmllbGQgLnByZWZpeC5hY3RpdmUge1xuICBjb2xvcjogIzI2YTY5YTtcbn1cbi5pbnB1dC1maWVsZCAucHJlZml4IH4gaW5wdXQsXG4uaW5wdXQtZmllbGQgLnByZWZpeCB+IHRleHRhcmVhLFxuLmlucHV0LWZpZWxkIC5wcmVmaXggfiBsYWJlbCxcbi5pbnB1dC1maWVsZCAucHJlZml4IH4gLnZhbGlkYXRlIH4gbGFiZWwsXG4uaW5wdXQtZmllbGQgLnByZWZpeCB+IC5oZWxwZXItdGV4dCxcbi5pbnB1dC1maWVsZCAucHJlZml4IH4gLmF1dG9jb21wbGV0ZS1jb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gIHdpZHRoOiA5MiU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtKTtcbn1cbi5pbnB1dC1maWVsZCAucHJlZml4IH4gbGFiZWwge1xuICBtYXJnaW4tbGVmdDogM3JlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IDk5MnB4KSB7XG4gIC5pbnB1dC1maWVsZCAucHJlZml4IH4gaW5wdXQge1xuICAgIHdpZHRoOiA4NiU7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiA2MDBweCkge1xuICAuaW5wdXQtZmllbGQgLnByZWZpeCB+IGlucHV0IHtcbiAgICB3aWR0aDogODAlO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtKTtcbiAgfVxufVxuXG4vKiBTZWFyY2ggRmllbGQgKi9cbi5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXNlYXJjaF0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IDAuM3MgYmFja2dyb3VuZC1jb2xvcjtcbn1cbi5uYXYtd3JhcHBlciAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cmVtKTtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czpub3QoLmJyb3dzZXItZGVmYXVsdCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiAjNDQ0O1xufVxuLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czpub3QoLmJyb3dzZXItZGVmYXVsdCkgKyBsYWJlbCBpLCAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzOm5vdCguYnJvd3Nlci1kZWZhdWx0KSB+IC5tZGktbmF2aWdhdGlvbi1jbG9zZSwgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czpub3QoLmJyb3dzZXItZGVmYXVsdCkgfiAubWF0ZXJpYWwtaWNvbnMge1xuICBjb2xvcjogIzQ0NDtcbn1cbi5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXNlYXJjaF0gKyAubGFiZWwtaWNvbiB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgbGVmdDogMXJlbTtcbn1cbi5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXNlYXJjaF0gfiAubWRpLW5hdmlnYXRpb24tY2xvc2UsIC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXNlYXJjaF0gfiAubWF0ZXJpYWwtaWNvbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDFyZW07XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDJyZW07XG4gIHRyYW5zaXRpb246IDAuM3MgY29sb3I7XG59XG5cbi8qIFRleHRhcmVhICovXG50ZXh0YXJlYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDU2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxudGV4dGFyZWEudGV4dGFyZWEge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBvdmVyZmxvdy15OiBoaWRkZW47IC8qIHByZXZlbnRzIHNjcm9sbCBiYXIgZmxhc2ggKi9cbiAgcGFkZGluZzogMC44cmVtIDAgMC44cmVtIDA7IC8qIHByZXZlbnRzIHRleHQganVtcCBvbiBFbnRlciBrZXlwcmVzcyAqL1xuICByZXNpemU6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDU2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5oaWRkZW5kaXYge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyAvKiBmdXR1cmUgdmVyc2lvbiBvZiBkZXByZWNhdGVkICd3b3JkLXdyYXAnICovXG4gIHBhZGRpbmctdG9wOiAxLjJyZW07IC8qIHByZXZlbnRzIHRleHQganVtcCBvbiBFbnRlciBrZXlwcmVzcyAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgei1pbmRleDogLTE7XG59XG5cbi8qIEF1dG9jb21wbGV0ZSAqL1xuLmF1dG9jb21wbGV0ZS1jb250ZW50IGxpIC5oaWdobGlnaHQge1xuICBjb2xvcjogIzQ0NDtcbn1cbi5hdXRvY29tcGxldGUtY29udGVudCBsaSBpbWcge1xuICBtYXJnaW46IDVweCAxNXB4O1xufVxuXG4vKiBDaGFyYWN0ZXIgQ291bnRlciAqL1xuLmNoYXJhY3Rlci1jb3VudGVyIHtcbiAgbWluLWhlaWdodDogMThweDtcbn1cblxuLyogUmFkaW8gQnV0dG9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblt0eXBlPXJhZGlvXTpub3QoOmNoZWNrZWQpLFxuW3R5cGU9cmFkaW9dOmNoZWNrZWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5bdHlwZT1yYWRpb106bm90KDpjaGVja2VkKSArIHNwYW4sXG5bdHlwZT1yYWRpb106Y2hlY2tlZCArIHNwYW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMzVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMjVweDtcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdHJhbnNpdGlvbjogMC4yOHMgZWFzZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cblt0eXBlPXJhZGlvXSArIHNwYW46YmVmb3JlLFxuW3R5cGU9cmFkaW9dICsgc3BhbjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDRweDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNpdGlvbjogMC4yOHMgZWFzZTtcbn1cblxuLyogVW5jaGVja2VkIHN0eWxlcyAqL1xuW3R5cGU9cmFkaW9dOm5vdCg6Y2hlY2tlZCkgKyBzcGFuOmJlZm9yZSxcblt0eXBlPXJhZGlvXTpub3QoOmNoZWNrZWQpICsgc3BhbjphZnRlcixcblt0eXBlPXJhZGlvXTpjaGVja2VkICsgc3BhbjpiZWZvcmUsXG5bdHlwZT1yYWRpb106Y2hlY2tlZCArIHNwYW46YWZ0ZXIsXG5bdHlwZT1yYWRpb10ud2l0aC1nYXA6Y2hlY2tlZCArIHNwYW46YmVmb3JlLFxuW3R5cGU9cmFkaW9dLndpdGgtZ2FwOmNoZWNrZWQgKyBzcGFuOmFmdGVyIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5bdHlwZT1yYWRpb106bm90KDpjaGVja2VkKSArIHNwYW46YmVmb3JlLFxuW3R5cGU9cmFkaW9dOm5vdCg6Y2hlY2tlZCkgKyBzcGFuOmFmdGVyIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzVhNWE1YTtcbn1cblxuW3R5cGU9cmFkaW9dOm5vdCg6Y2hlY2tlZCkgKyBzcGFuOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbn1cblxuLyogQ2hlY2tlZCBzdHlsZXMgKi9cblt0eXBlPXJhZGlvXTpjaGVja2VkICsgc3BhbjpiZWZvcmUge1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuW3R5cGU9cmFkaW9dOmNoZWNrZWQgKyBzcGFuOmFmdGVyLFxuW3R5cGU9cmFkaW9dLndpdGgtZ2FwOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSxcblt0eXBlPXJhZGlvXS53aXRoLWdhcDpjaGVja2VkICsgc3BhbjphZnRlciB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMyNmE2OWE7XG59XG5cblt0eXBlPXJhZGlvXTpjaGVja2VkICsgc3BhbjphZnRlcixcblt0eXBlPXJhZGlvXS53aXRoLWdhcDpjaGVja2VkICsgc3BhbjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XG59XG5cblt0eXBlPXJhZGlvXTpjaGVja2VkICsgc3BhbjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG59XG5cbi8qIFJhZGlvIFdpdGggZ2FwICovXG5bdHlwZT1yYWRpb10ud2l0aC1nYXA6Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG5cbi8qIEZvY3VzZWQgc3R5bGVzICovXG5bdHlwZT1yYWRpb10udGFiYmVkOmZvY3VzICsgc3BhbjpiZWZvcmUge1xuICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLyogRGlzYWJsZWQgUmFkaW8gV2l0aCBnYXAgKi9cblt0eXBlPXJhZGlvXS53aXRoLWdhcDpkaXNhYmxlZDpjaGVja2VkICsgc3BhbjpiZWZvcmUge1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuXG5bdHlwZT1yYWRpb10ud2l0aC1nYXA6ZGlzYWJsZWQ6Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG5cbi8qIERpc2FibGVkIHN0eWxlICovXG5bdHlwZT1yYWRpb106ZGlzYWJsZWQ6bm90KDpjaGVja2VkKSArIHNwYW46YmVmb3JlLFxuW3R5cGU9cmFkaW9dOmRpc2FibGVkOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG5cblt0eXBlPXJhZGlvXTpkaXNhYmxlZCArIHNwYW4ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cblxuW3R5cGU9cmFkaW9dOmRpc2FibGVkOm5vdCg6Y2hlY2tlZCkgKyBzcGFuOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cblxuW3R5cGU9cmFkaW9dOmRpc2FibGVkOmNoZWNrZWQgKyBzcGFuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbiAgYm9yZGVyLWNvbG9yOiAjOTQ5NDk0O1xufVxuXG4vKiBDaGVja2JveGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogUmVtb3ZlIGRlZmF1bHQgY2hlY2tib3ggKi9cblt0eXBlPWNoZWNrYm94XTpub3QoOmNoZWNrZWQpLFxuW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5bdHlwZT1jaGVja2JveF0ge1xuICAvKiBjaGVja2JveCBhc3BlY3QgKi9cbn1cblt0eXBlPWNoZWNrYm94XSArIHNwYW46bm90KC5sZXZlcikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMzVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMjVweDtcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5bdHlwZT1jaGVja2JveF0gKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSwgW3R5cGU9Y2hlY2tib3hdOm5vdCguZmlsbGVkLWluKSArIHNwYW46bm90KC5sZXZlcik6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgei1pbmRleDogMDtcbiAgYm9yZGVyOiAycHggc29saWQgIzVhNWE1YTtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHRyYW5zaXRpb246IDAuMnM7XG59XG5bdHlwZT1jaGVja2JveF06bm90KC5maWxsZWQtaW4pICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XG4gIGJvcmRlcjogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbn1cblt0eXBlPWNoZWNrYm94XTpub3QoOmNoZWNrZWQpOmRpc2FibGVkICsgc3Bhbjpub3QoLmxldmVyKTpiZWZvcmUge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG5bdHlwZT1jaGVja2JveF0udGFiYmVkOmZvY3VzICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG5bdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIHNwYW46bm90KC5sZXZlcik6YmVmb3JlIHtcbiAgdG9wOiAtNHB4O1xuICBsZWZ0OiAtNXB4O1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBib3JkZXItdG9wOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMyNmE2OWE7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMjZhNjlhO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0MGRlZyk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xufVxuW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6ZGlzYWJsZWQgKyBzcGFuOmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC40Mik7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuXG4vKiBJbmRldGVybWluYXRlIGNoZWNrYm94ICovXG5bdHlwZT1jaGVja2JveF06aW5kZXRlcm1pbmF0ZSArIHNwYW46bm90KC5sZXZlcik6YmVmb3JlIHtcbiAgdG9wOiAtMTFweDtcbiAgbGVmdDogLTEycHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjMjZhNjlhO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xufVxuW3R5cGU9Y2hlY2tib3hdOmluZGV0ZXJtaW5hdGU6ZGlzYWJsZWQgKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC40Mik7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5bdHlwZT1jaGVja2JveF0uZmlsbGVkLWluICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblt0eXBlPWNoZWNrYm94XS5maWxsZWQtaW4gKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSxcblt0eXBlPWNoZWNrYm94XS5maWxsZWQtaW4gKyBzcGFuOm5vdCgubGV2ZXIpOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvKiAuMXMgZGVsYXkgaXMgZm9yIGNoZWNrIGFuaW1hdGlvbiAqL1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4yNXMsIGJhY2tncm91bmQtY29sb3IgMC4yNXMsIHdpZHRoIDAuMnMgMC4xcywgaGVpZ2h0IDAuMnMgMC4xcywgdG9wIDAuMnMgMC4xcywgbGVmdCAwLjJzIDAuMXM7XG4gIHotaW5kZXg6IDE7XG59XG5bdHlwZT1jaGVja2JveF0uZmlsbGVkLWluOm5vdCg6Y2hlY2tlZCkgKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBsZWZ0OiA2cHg7XG4gIHRvcDogMTBweDtcbiAgdHJhbnNmb3JtOiByb3RhdGVaKDM3ZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xufVxuW3R5cGU9Y2hlY2tib3hdLmZpbGxlZC1pbjpub3QoOmNoZWNrZWQpICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDJweCBzb2xpZCAjNWE1YTVhO1xuICB0b3A6IDBweDtcbiAgei1pbmRleDogMDtcbn1cblt0eXBlPWNoZWNrYm94XS5maWxsZWQtaW46Y2hlY2tlZCArIHNwYW46bm90KC5sZXZlcik6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxcHg7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMTNweDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjZmZmO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjtcbiAgdHJhbnNmb3JtOiByb3RhdGVaKDM3ZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xufVxuW3R5cGU9Y2hlY2tib3hdLmZpbGxlZC1pbjpjaGVja2VkICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyOiAycHggc29saWQgIzI2YTY5YTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgei1pbmRleDogMDtcbn1cblt0eXBlPWNoZWNrYm94XS5maWxsZWQtaW4udGFiYmVkOmZvY3VzICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWNvbG9yOiAjNWE1YTVhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5bdHlwZT1jaGVja2JveF0uZmlsbGVkLWluLnRhYmJlZDpjaGVja2VkOmZvY3VzICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgYm9yZGVyLWNvbG9yOiAjMjZhNjlhO1xufVxuW3R5cGU9Y2hlY2tib3hdLmZpbGxlZC1pbjpkaXNhYmxlZDpub3QoOmNoZWNrZWQpICsgc3Bhbjpub3QoLmxldmVyKTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5bdHlwZT1jaGVja2JveF0uZmlsbGVkLWluOmRpc2FibGVkOm5vdCg6Y2hlY2tlZCkgKyBzcGFuOm5vdCgubGV2ZXIpOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk0OTQ5NDtcbn1cblt0eXBlPWNoZWNrYm94XS5maWxsZWQtaW46ZGlzYWJsZWQ6Y2hlY2tlZCArIHNwYW46bm90KC5sZXZlcik6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5bdHlwZT1jaGVja2JveF0uZmlsbGVkLWluOmRpc2FibGVkOmNoZWNrZWQgKyBzcGFuOm5vdCgubGV2ZXIpOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk0OTQ5NDtcbiAgYm9yZGVyLWNvbG9yOiAjOTQ5NDk0O1xufVxuXG4vKiBTd2l0Y2hcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc3dpdGNoLFxuLnN3aXRjaCAqIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5zd2l0Y2ggbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zd2l0Y2ggbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuLnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgLmxldmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzMi4wNjI1LCAxOTkuNDM3NSwgMTkzLjEyMTA5Mzc1KTtcbn1cbi5zd2l0Y2ggbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIC5sZXZlcjpiZWZvcmUsIC5zd2l0Y2ggbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIC5sZXZlcjphZnRlciB7XG4gIGxlZnQ6IDE4cHg7XG59XG4uc3dpdGNoIGxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAubGV2ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xufVxuXG4uc3dpdGNoIGxhYmVsIC5sZXZlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDE2cHg7XG59XG4uc3dpdGNoIGxhYmVsIC5sZXZlcjpiZWZvcmUsIC5zd2l0Y2ggbGFiZWwgLmxldmVyOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAtM3B4O1xuICB0cmFuc2l0aW9uOiBsZWZ0IDAuM3MgZWFzZSwgYmFja2dyb3VuZCAwLjNzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xufVxuLnN3aXRjaCBsYWJlbCAubGV2ZXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzOCwgMTY2LCAxNTQsIDAuMTUpO1xufVxuLnN3aXRjaCBsYWJlbCAubGV2ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjFGMUYxO1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG5pbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOm5vdCg6ZGlzYWJsZWQpIH4gLmxldmVyOmFjdGl2ZTo6YmVmb3JlLFxuaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpub3QoOmRpc2FibGVkKS50YWJiZWQ6Zm9jdXMgfiAubGV2ZXI6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMi40KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzOCwgMTY2LCAxNTQsIDAuMTUpO1xufVxuXG5pbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoOmRpc2FibGVkKSB+IC5sZXZlcjphY3RpdmU6YmVmb3JlLFxuaW5wdXRbdHlwZT1jaGVja2JveF06bm90KDpkaXNhYmxlZCkudGFiYmVkOmZvY3VzIH4gLmxldmVyOjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDIuNCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG59XG5cbi5zd2l0Y2ggaW5wdXRbdHlwZT1jaGVja2JveF1bZGlzYWJsZWRdICsgLmxldmVyIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4uc3dpdGNoIGxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdW2Rpc2FibGVkXSArIC5sZXZlcjphZnRlcixcbi5zd2l0Y2ggbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF1bZGlzYWJsZWRdOmNoZWNrZWQgKyAubGV2ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTQ5NDk0O1xufVxuXG4vKiBTZWxlY3QgRmllbGRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5zZWxlY3Qge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5zZWxlY3QuYnJvd3Nlci1kZWZhdWx0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbnNlbGVjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2YyZjJmMjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBoZWlnaHQ6IDU2cHg7XG59XG5cbi5zZWxlY3QtbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5zZWxlY3Qtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5zZWxlY3Qtd3JhcHBlci52YWxpZCArIGxhYmVsLCAuc2VsZWN0LXdyYXBwZXIuaW52YWxpZCArIGxhYmVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNlbGVjdC13cmFwcGVyIGlucHV0LnNlbGVjdC1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzllOWU5ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgaGVpZ2h0OiA1NnB4O1xuICBsaW5lLWhlaWdodDogNTZweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgei1pbmRleDogMTtcbn1cbi5zZWxlY3Qtd3JhcHBlciBpbnB1dC5zZWxlY3QtZHJvcGRvd246Zm9jdXMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzI2YTY5YTtcbn1cbi5zZWxlY3Qtd3JhcHBlciAuY2FyZXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHotaW5kZXg6IDA7XG4gIGZpbGw6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc2VsZWN0LXdyYXBwZXIgKyBsYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMjZweDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbnNlbGVjdDpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuXG4uc2VsZWN0LXdyYXBwZXIuZGlzYWJsZWQgKyBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnNlbGVjdC13cmFwcGVyLmRpc2FibGVkIC5jYXJldCB7XG4gIGZpbGw6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG5cbi5zZWxlY3Qtd3JhcHBlciBpbnB1dC5zZWxlY3QtZHJvcGRvd246ZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnNlbGVjdC13cmFwcGVyIGkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4uc2VsZWN0LWRyb3Bkb3duIGxpLmRpc2FibGVkLFxuLnNlbGVjdC1kcm9wZG93biBsaS5kaXNhYmxlZCA+IHNwYW4sXG4uc2VsZWN0LWRyb3Bkb3duIGxpLm9wdGdyb3VwIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbmJvZHkua2V5Ym9hcmQtZm9jdXNlZCAuc2VsZWN0LWRyb3Bkb3duLmRyb3Bkb3duLWNvbnRlbnQgbGk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4uc2VsZWN0LWRyb3Bkb3duLmRyb3Bkb3duLWNvbnRlbnQgbGk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuLnNlbGVjdC1kcm9wZG93bi5kcm9wZG93bi1jb250ZW50IGxpLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbn1cblxuLnByZWZpeCB+IC5zZWxlY3Qtd3JhcHBlciB7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICB3aWR0aDogOTIlO1xuICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG59XG5cbi5wcmVmaXggfiBsYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtO1xufVxuXG4uc2VsZWN0LWRyb3Bkb3duIGxpIGltZyB7XG4gIG1hcmdpbjogNXB4IDE1cHg7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLnNlbGVjdC1kcm9wZG93biBsaS5vcHRncm91cC5zZWxlY3RlZCA+IHNwYW4ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xufVxuLnNlbGVjdC1kcm9wZG93biBsaS5vcHRncm91cCA+IHNwYW4ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnNlbGVjdC1kcm9wZG93biBsaS5vcHRncm91cCB+IGxpLm9wdGdyb3VwLW9wdGlvbiB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cblxuLyogRmlsZSBJbnB1dFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5maWxlLWZpZWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmZpbGUtZmllbGQgLmZpbGUtcGF0aC13cmFwcGVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuLmZpbGUtZmllbGQgaW5wdXQuZmlsZS1wYXRoIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uZmlsZS1maWVsZCAuYnRuLCAuZmlsZS1maWVsZCAuYnRuLXNtYWxsLCAuZmlsZS1maWVsZCAuYnRuLWxhcmdlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogNTZweDtcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XG59XG4uZmlsZS1maWVsZCBzcGFuIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmZpbGUtZmllbGQgaW5wdXRbdHlwZT1maWxlXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xufVxuLmZpbGUtZmllbGQgaW5wdXRbdHlwZT1maWxlXTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBSYW5nZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5yYW5nZS1maWVsZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV0sXG5pbnB1dFt0eXBlPXJhbmdlXSArIC50aHVtYiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDE1cHggMDtcbiAgcGFkZGluZzogMDtcbn1cbmlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV0gKyAudGh1bWIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XG4gIG1hcmdpbi1sZWZ0OiA3cHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5pbnB1dFt0eXBlPXJhbmdlXSArIC50aHVtYiAudmFsdWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDMwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICMyNmE2OWE7XG4gIGZvbnQtc2l6ZTogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuaW5wdXRbdHlwZT1yYW5nZV0gKyAudGh1bWIuYWN0aXZlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlIDUwJSA1MCUgMDtcbn1cbmlucHV0W3R5cGU9cmFuZ2VdICsgLnRodW1iLmFjdGl2ZSAudmFsdWUge1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG5pbnB1dFt0eXBlPXJhbmdlXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6ICNjMmMwYzI7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IDE0cHg7XG4gIHdpZHRoOiAxNHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6ICMyNmE2OWE7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zcztcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICBtYXJnaW46IC01cHggMCAwIDA7XG59XG5cbi5rZXlib2FyZC1mb2N1c2VkIGlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzOm5vdCguYWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoMzgsIDE2NiwgMTU0LCAwLjI2KTtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV0ge1xuICAvKiBmaXggZm9yIEZGIHVuYWJsZSB0byBhcHBseSBmb2N1cyBzdHlsZSBidWcgICovXG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAvKnJlcXVpcmVkIGZvciBwcm9wZXIgdHJhY2sgc2l6aW5nIGluIEZGKi9cbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdHJhY2sge1xuICBoZWlnaHQ6IDNweDtcbiAgYmFja2dyb3VuZDogI2MyYzBjMjtcbiAgYm9yZGVyOiBub25lO1xufVxuXG5pbnB1dFt0eXBlPXJhbmdlXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdGh1bWIge1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogMTRweDtcbiAgd2lkdGg6IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogIzI2YTY5YTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjNzO1xuICBtYXJnaW4tdG9wOiAtNXB4O1xufVxuXG5pbnB1dFt0eXBlPXJhbmdlXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCAjZmZmO1xuICBvdXRsaW5lLW9mZnNldDogLTFweDtcbn1cblxuLmtleWJvYXJkLWZvY3VzZWQgaW5wdXRbdHlwZT1yYW5nZV06Zm9jdXM6bm90KC5hY3RpdmUpOjotbW96LXJhbmdlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDM4LCAxNjYsIDE1NCwgMC4yNik7XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdHJhY2sge1xuICBoZWlnaHQ6IDNweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci13aWR0aDogNnB4IDA7XG4gIC8qcmVtb3ZlIGRlZmF1bHQgdGljayBtYXJrcyovXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLWxvd2VyIHtcbiAgYmFja2dyb3VuZDogIzc3Nztcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLXVwcGVyIHtcbiAgYmFja2dyb3VuZDogI2RkZDtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10aHVtYiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiAxNHB4O1xuICB3aWR0aDogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiAjMjZhNjlhO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3M7XG59XG5cbi5rZXlib2FyZC1mb2N1c2VkIGlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzOm5vdCguYWN0aXZlKTo6LW1zLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDM4LCAxNjYsIDE1NCwgMC4yNik7XG59XG5cbi5wYXJhbGxheCB7XG4gIC8qIFNldCBhIHNwZWNpZmljIGhlaWdodCAqL1xuICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgLyogQ3JlYXRlIHRoZSBwYXJhbGxheCBzY3JvbGxpbmcgZWZmZWN0ICovXG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbn1cblxuLnNjZW5lIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IDIwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDO1xuICBtYXJnaW46IDgwcHg7XG4gIHBlcnNwZWN0aXZlOiA0MDBweDtcbn1cblxuLmN1YmUge1xuICB3aWR0aDogMjAwcHg7XG4gIGhlaWdodDogMjAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC00MDBweCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcztcbn1cblxuLmN1YmUuc2hvdy1mcm9udCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigtMTBweCkgcm90YXRlWSgwZGVnKTtcbn1cblxuLmN1YmUuc2hvdy1yaWdodCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigtMTBweCkgcm90YXRlWSgtOTBkZWcpO1xufVxuXG4uY3ViZS5zaG93LWJhY2sge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTEwcHgpIHJvdGF0ZVkoLTE4MGRlZyk7XG59XG5cbi5jdWJlLnNob3ctbGVmdCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigtMTBweCkgcm90YXRlWSg5MGRlZyk7XG59XG5cbi5jdWJlLnNob3ctdG9wIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0xMHB4KSByb3RhdGVYKC05MGRlZyk7XG59XG5cbi5jdWJlLnNob3ctYm90dG9tIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0xMHB4KSByb3RhdGVYKDkwZGVnKTtcbn1cblxuLmN1YmVfX2ZhY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7XG4gIGxpbmUtaGVpZ2h0OiAyMDBweDtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jdWJlX19mYWNlLS1mcm9udCB7XG4gIGJhY2tncm91bmQ6IGhzbGEoMCwgMTAwJSwgNTAlLCAwLjcpO1xufVxuXG4uY3ViZV9fZmFjZS0tcmlnaHQge1xuICBiYWNrZ3JvdW5kOiBoc2xhKDYwLCAxMDAlLCA1MCUsIDAuNyk7XG59XG5cbi5jdWJlX19mYWNlLS1iYWNrIHtcbiAgYmFja2dyb3VuZDogaHNsYSgxMjAsIDEwMCUsIDUwJSwgMC43KTtcbn1cblxuLmN1YmVfX2ZhY2UtLWxlZnQge1xuICBiYWNrZ3JvdW5kOiBoc2xhKDE4MCwgMTAwJSwgNTAlLCAwLjcpO1xufVxuXG4uY3ViZV9fZmFjZS0tdG9wIHtcbiAgYmFja2dyb3VuZDogaHNsYSgyNDAsIDEwMCUsIDUwJSwgMC43KTtcbn1cblxuLmN1YmVfX2ZhY2UtLWJvdHRvbSB7XG4gIGJhY2tncm91bmQ6IGhzbGEoMzAwLCAxMDAlLCA1MCUsIDAuNyk7XG59XG5cbi5jdWJlX19mYWNlLS1mcm9udCB7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgwZGVnKSB0cmFuc2xhdGVaKDEwMHB4KTtcbn1cblxuLmN1YmVfX2ZhY2UtLXJpZ2h0IHtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVaKDEwMHB4KTtcbn1cblxuLmN1YmVfX2ZhY2UtLWJhY2sge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKSB0cmFuc2xhdGVaKDEwMHB4KTtcbn1cblxuLmN1YmVfX2ZhY2UtLWxlZnQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTkwZGVnKSB0cmFuc2xhdGVaKDEwMHB4KTtcbn1cblxuLmN1YmVfX2ZhY2UtLXRvcCB7XG4gIHRyYW5zZm9ybTogcm90YXRlWCg5MGRlZykgdHJhbnNsYXRlWigxMDBweCk7XG59XG5cbi5jdWJlX19mYWNlLS1ib3R0b20ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoLTkwZGVnKSB0cmFuc2xhdGVaKDEwMHB4KTtcbn1cblxubGFiZWwge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5jb250YWluZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMjgwcHg7XG4gIHdpZHRoOiA5MCU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDYwMXB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiA4NSU7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDk5M3B4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiA3MCU7XG4gIH1cbn1cbi5jb2wgLnJvdyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjVyZW07XG59XG5cbi5zZWN0aW9uIHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuLnNlY3Rpb24ubm8tcGFkIHtcbiAgcGFkZGluZzogMDtcbn1cbi5zZWN0aW9uLm5vLXBhZC1ib3Qge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cbi5zZWN0aW9uLm5vLXBhZC10b3Age1xuICBwYWRkaW5nLXRvcDogMDtcbn1cblxuLnJvdyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4ucm93OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoO1xufVxuLnJvdyAuY29sIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDAgMC41cmVtO1xuICBtaW4taGVpZ2h0OiAxcHg7XG59XG4ucm93IC5jb2xbY2xhc3MqPXB1c2gtXSwgLnJvdyAuY29sW2NsYXNzKj1wdWxsLV0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucm93IC5jb2wuczEge1xuICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnJvdyAuY29sLnMyIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG4ucm93IC5jb2wuczMge1xuICB3aWR0aDogMjUlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG4ucm93IC5jb2wuczQge1xuICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cbi5yb3cgLmNvbC5zNSB7XG4gIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnJvdyAuY29sLnM2IHtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnJvdyAuY29sLnM3IHtcbiAgd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG4ucm93IC5jb2wuczgge1xuICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cbi5yb3cgLmNvbC5zOSB7XG4gIHdpZHRoOiA3NSU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cbi5yb3cgLmNvbC5zMTAge1xuICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cbi5yb3cgLmNvbC5zMTEge1xuICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cbi5yb3cgLmNvbC5zMTIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnJvdyAuY29sLm9mZnNldC1zMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzMzMlO1xufVxuLnJvdyAuY29sLnB1bGwtczEge1xuICByaWdodDogOC4zMzMzMzMzMzMzJTtcbn1cbi5yb3cgLmNvbC5wdXNoLXMxIHtcbiAgbGVmdDogOC4zMzMzMzMzMzMzJTtcbn1cbi5yb3cgLmNvbC5vZmZzZXQtczIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XG59XG4ucm93IC5jb2wucHVsbC1zMiB7XG4gIHJpZ2h0OiAxNi42NjY2NjY2NjY3JTtcbn1cbi5yb3cgLmNvbC5wdXNoLXMyIHtcbiAgbGVmdDogMTYuNjY2NjY2NjY2NyU7XG59XG4ucm93IC5jb2wub2Zmc2V0LXMzIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTtcbn1cbi5yb3cgLmNvbC5wdWxsLXMzIHtcbiAgcmlnaHQ6IDI1JTtcbn1cbi5yb3cgLmNvbC5wdXNoLXMzIHtcbiAgbGVmdDogMjUlO1xufVxuLnJvdyAuY29sLm9mZnNldC1zNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzJTtcbn1cbi5yb3cgLmNvbC5wdWxsLXM0IHtcbiAgcmlnaHQ6IDMzLjMzMzMzMzMzMzMlO1xufVxuLnJvdyAuY29sLnB1c2gtczQge1xuICBsZWZ0OiAzMy4zMzMzMzMzMzMzJTtcbn1cbi5yb3cgLmNvbC5vZmZzZXQtczUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NyU7XG59XG4ucm93IC5jb2wucHVsbC1zNSB7XG4gIHJpZ2h0OiA0MS42NjY2NjY2NjY3JTtcbn1cbi5yb3cgLmNvbC5wdXNoLXM1IHtcbiAgbGVmdDogNDEuNjY2NjY2NjY2NyU7XG59XG4ucm93IC5jb2wub2Zmc2V0LXM2IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcbn1cbi5yb3cgLmNvbC5wdWxsLXM2IHtcbiAgcmlnaHQ6IDUwJTtcbn1cbi5yb3cgLmNvbC5wdXNoLXM2IHtcbiAgbGVmdDogNTAlO1xufVxuLnJvdyAuY29sLm9mZnNldC1zNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbn1cbi5yb3cgLmNvbC5wdWxsLXM3IHtcbiAgcmlnaHQ6IDU4LjMzMzMzMzMzMzMlO1xufVxuLnJvdyAuY29sLnB1c2gtczcge1xuICBsZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbn1cbi5yb3cgLmNvbC5vZmZzZXQtczgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7XG59XG4ucm93IC5jb2wucHVsbC1zOCB7XG4gIHJpZ2h0OiA2Ni42NjY2NjY2NjY3JTtcbn1cbi5yb3cgLmNvbC5wdXNoLXM4IHtcbiAgbGVmdDogNjYuNjY2NjY2NjY2NyU7XG59XG4ucm93IC5jb2wub2Zmc2V0LXM5IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTtcbn1cbi5yb3cgLmNvbC5wdWxsLXM5IHtcbiAgcmlnaHQ6IDc1JTtcbn1cbi5yb3cgLmNvbC5wdXNoLXM5IHtcbiAgbGVmdDogNzUlO1xufVxuLnJvdyAuY29sLm9mZnNldC1zMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG59XG4ucm93IC5jb2wucHVsbC1zMTAge1xuICByaWdodDogODMuMzMzMzMzMzMzMyU7XG59XG4ucm93IC5jb2wucHVzaC1zMTAge1xuICBsZWZ0OiA4My4zMzMzMzMzMzMzJTtcbn1cbi5yb3cgLmNvbC5vZmZzZXQtczExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjclO1xufVxuLnJvdyAuY29sLnB1bGwtczExIHtcbiAgcmlnaHQ6IDkxLjY2NjY2NjY2NjclO1xufVxuLnJvdyAuY29sLnB1c2gtczExIHtcbiAgbGVmdDogOTEuNjY2NjY2NjY2NyU7XG59XG4ucm93IC5jb2wub2Zmc2V0LXMxMiB7XG4gIG1hcmdpbi1sZWZ0OiAxMDAlO1xufVxuLnJvdyAuY29sLnB1bGwtczEyIHtcbiAgcmlnaHQ6IDEwMCU7XG59XG4ucm93IC5jb2wucHVzaC1zMTIge1xuICBsZWZ0OiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogNjAxcHgpIHtcbiAgLnJvdyAuY29sLm0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5tMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLm0zIHtcbiAgICB3aWR0aDogMjUlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLm00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5tNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLm04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubTkge1xuICAgIHdpZHRoOiA3NSU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLW0xIHtcbiAgICByaWdodDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1tMSB7XG4gICAgbGVmdDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LW0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1tMiB7XG4gICAgbGVmdDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1tMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1tMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1tMyB7XG4gICAgbGVmdDogMjUlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1tNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLW00IHtcbiAgICBsZWZ0OiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LW01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1tNSB7XG4gICAgbGVmdDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1tNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1tNiB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1tNiB7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1tNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLW03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LW04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1tOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1tOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1tOSB7XG4gICAgcmlnaHQ6IDc1JTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1tOSB7XG4gICAgbGVmdDogNzUlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbTEwIHtcbiAgICByaWdodDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LW0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLW0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLW0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1tMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLW0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiA5OTNweCkge1xuICAucm93IC5jb2wubDEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLmwyIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubDMge1xuICAgIHdpZHRoOiAyNSU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubDQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5sNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLmw2IHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLmw3IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubDgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5sOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5sMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5sMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5sMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1sMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbDEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLWwxIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbDIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1sMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLWwyIHtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LWwzIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLWwzIHtcbiAgICByaWdodDogMjUlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLWwzIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1sNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLWw0IHtcbiAgICByaWdodDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbDQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbDUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1sNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLWw1IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LWw2IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLWw2IHtcbiAgICByaWdodDogNTAlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLWw2IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1sNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLWw3IHtcbiAgICByaWdodDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbDcge1xuICAgIGxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbDgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1sOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLWw4IHtcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LWw5IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLWw5IHtcbiAgICByaWdodDogNzUlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLWw5IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1sMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1sMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1sMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbDExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbDExIHtcbiAgICByaWdodDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbDExIHtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LWwxMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbDEyIHtcbiAgICByaWdodDogMTAwJTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1sMTIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDEyMDFweCkge1xuICAucm93IC5jb2wueGwxIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC54bDIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC54bDMge1xuICAgIHdpZHRoOiAyNSU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wueGw0IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wueGw1IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wueGw2IHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLnhsNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLnhsOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLnhsOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC54bDEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wueGwxMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLnhsMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC14bDEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLXhsMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gteGwxIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQteGwyIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwteGwyIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gteGwyIHtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LXhsMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAucm93IC5jb2wucHVsbC14bDMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gteGwzIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC14bDQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC14bDQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVzaC14bDQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQteGw1IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwteGw1IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gteGw1IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LXhsNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC14bDYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gteGw2IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC14bDcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC14bDcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVzaC14bDcge1xuICAgIGxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQteGw4IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwteGw4IHtcbiAgICByaWdodDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gteGw4IHtcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LXhsOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAucm93IC5jb2wucHVsbC14bDkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gteGw5IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC14bDEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwteGwxMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLXhsMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQteGwxMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLXhsMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVzaC14bDExIHtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LXhsMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLXhsMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLXhsMTIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbn1cblxuLnNpZGVuYXYge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAzMDBweDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgKyA2MHB4KTtcbiAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSk7XG4gIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB6LWluZGV4OiA5OTk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDUlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzO1xufVxuLnNpZGVuYXYucmlnaHQtYWxpZ25lZCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG4uc2lkZW5hdiAuY29sbGFwc2libGUge1xuICBtYXJnaW46IDA7XG59XG4uc2lkZW5hdiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuLnNpZGVuYXYgbGkgLmljb25TaWRlTGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uc2lkZW5hdiBsaSAuaWNvblNpZGVMaW5rIHN2ZyB7XG4gIHN0cm9rZTogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICB3aWR0aDogMzBweDtcbn1cbi5zaWRlbmF2IGxpLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4uc2lkZW5hdiBsaS5hY3RpdmUgc3ZnIHtcbiAgc3Ryb2tlOiB3aGl0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMzBweDtcbn1cbi5zaWRlbmF2IGxpLmxhc3Qge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IGNhbGMoMTAwJSAtIDQ1cHggLSAzNXB4KTtcbn1cbi5zaWRlbmF2IGxpID4gYSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGhlaWdodDogNDVweDtcbiAgbGluZS1oZWlnaHQ6IDQ1cHg7XG4gIHBhZGRpbmc6IDAgMzBweDtcbn1cbi5zaWRlbmF2IGxpID4gYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4uc2lkZW5hdiBsaSA+IGEuYnRuLCAuc2lkZW5hdiBsaSA+IGEuYnRuLXNtYWxsLCAuc2lkZW5hdiBsaSA+IGEuYnRuLWxhcmdlLCAuc2lkZW5hdiBsaSA+IGEuYnRuLWZsYXQsIC5zaWRlbmF2IGxpID4gYS5idG4tZmxvYXRpbmcge1xuICBtYXJnaW46IDEwcHggMTVweDtcbn1cbi5zaWRlbmF2IGxpID4gYS5idG4sIC5zaWRlbmF2IGxpID4gYS5idG4tc21hbGwsIC5zaWRlbmF2IGxpID4gYS5idG4tbGFyZ2UsIC5zaWRlbmF2IGxpID4gYS5idG4tZmxvYXRpbmcge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5zaWRlbmF2IGxpID4gYS5idG4tZmxhdCB7XG4gIGNvbG9yOiAjMzQzNDM0O1xufVxuLnNpZGVuYXYgbGkgPiBhLmJ0bjpob3ZlciwgLnNpZGVuYXYgbGkgPiBhLmJ0bi1zbWFsbDpob3ZlciwgLnNpZGVuYXYgbGkgPiBhLmJ0bi1sYXJnZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2NC43NSwgNjQuNzUsIDY0Ljc1KTtcbn1cbi5zaWRlbmF2IGxpID4gYS5idG4tZmxvYXRpbmc6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzNDM0O1xufVxuLnNpZGVuYXYgbGkgPiBhID4gaSwgLnNpZGVuYXYgbGkgPiBhID4gW2NsYXNzXj1tZGktXSxcbi5zaWRlbmF2IGxpID4gYSBsaSA+IGEgPiBbY2xhc3MqPW1kaS1dLCAuc2lkZW5hdiBsaSA+IGEgPiBpLnMtaWNvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBoZWlnaHQ6IDQ1cHg7XG4gIGxpbmUtaGVpZ2h0OiA0NXB4O1xuICBtYXJnaW46IDAgMzBweCAwIDA7XG4gIHdpZHRoOiAyMi41cHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnNpZGVuYXYgLmRpdmlkZXIge1xuICBtYXJnaW46IDcuNXB4IDAgMCAwO1xufVxuLnNpZGVuYXYgLnN1YmhlYWRlciB7XG4gIGN1cnNvcjogaW5pdGlhbDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiA0NXB4O1xufVxuLnNpZGVuYXYgLnN1YmhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNpZGVuYXYgLnVzZXItdmlldyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMzBweCAzMHB4IDA7XG4gIG1hcmdpbi1ib3R0b206IDcuNXB4O1xufVxuLnNpZGVuYXYgLnVzZXItdmlldyA+IGEge1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG59XG4uc2lkZW5hdiAudXNlci12aWV3ID4gYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNpZGVuYXYgLnVzZXItdmlldyAuYmFja2dyb3VuZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAtMTtcbn1cbi5zaWRlbmF2IC51c2VyLXZpZXcgLmNpcmNsZSxcbi5zaWRlbmF2IC51c2VyLXZpZXcgLm5hbWUsXG4uc2lkZW5hdiAudXNlci12aWV3IC5lbWFpbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnNpZGVuYXYgLnVzZXItdmlldyAuY2lyY2xlIHtcbiAgaGVpZ2h0OiA2NHB4O1xuICB3aWR0aDogNjRweDtcbn1cbi5zaWRlbmF2IC51c2VyLXZpZXcgLm5hbWUsXG4uc2lkZW5hdiAudXNlci12aWV3IC5lbWFpbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIyLjVweDtcbn1cbi5zaWRlbmF2IC51c2VyLXZpZXcgLm5hbWUge1xuICBtYXJnaW4tdG9wOiAxNnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnNpZGVuYXYgLnVzZXItdmlldyAuZW1haWwge1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmRyYWctdGFyZ2V0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTBweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDk5ODtcbn1cbi5kcmFnLXRhcmdldC5yaWdodC1hbGlnbmVkIHtcbiAgcmlnaHQ6IDA7XG59XG5cbi5zaWRlbmF2LnNpZGVuYXYtZml4ZWQge1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbi5zaWRlbmF2LnNpZGVuYXYtZml4ZWQucmlnaHQtYWxpZ25lZCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiA5OTJweCkge1xuICAuc2lkZW5hdi5zaWRlbmF2LWZpeGVkIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICB9XG4gIC5zaWRlbmF2LnNpZGVuYXYtZml4ZWQucmlnaHQtYWxpZ25lZCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNSUpO1xuICB9XG4gIC5zaWRlbmF2ID4gYSB7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICB9XG4gIC5zaWRlbmF2IC51c2VyLXZpZXcge1xuICAgIHBhZGRpbmc6IDE1cHggMTVweCAwO1xuICB9XG59XG4uc2lkZW5hdiAuY29sbGFwc2libGUtYm9keSA+IHVsOm5vdCguY29sbGFwc2libGUpID4gbGkuYWN0aXZlLFxuLnNpZGVuYXYuc2lkZW5hdi1maXhlZCAuY29sbGFwc2libGUtYm9keSA+IHVsOm5vdCguY29sbGFwc2libGUpID4gbGkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkwY2FmOTtcbn1cbi5zaWRlbmF2IC5jb2xsYXBzaWJsZS1ib2R5ID4gdWw6bm90KC5jb2xsYXBzaWJsZSkgPiBsaS5hY3RpdmUgYSxcbi5zaWRlbmF2LnNpZGVuYXYtZml4ZWQgLmNvbGxhcHNpYmxlLWJvZHkgPiB1bDpub3QoLmNvbGxhcHNpYmxlKSA+IGxpLmFjdGl2ZSBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5zaWRlbmF2IC5jb2xsYXBzaWJsZS1ib2R5IHtcbiAgcGFkZGluZzogMDtcbn1cblxuLnNpZGVuYXYtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAxMjB2aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB6LWluZGV4OiA5OTc7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi53aXRoLXNpZGUtbmF2LW9wZW4ge1xuICBwYWRkaW5nLWxlZnQ6IDMwMHB4O1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDFzO1xufVxuXG4uYnRuLCAuYnRuLXNtYWxsLCAuYnRuLWxhcmdlLFxuLmJ0bi1mbGF0IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAzNnB4O1xuICBsaW5lLWhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLmRpc2FibGVkLFxuLmJ0bi1mbG9hdGluZy5kaXNhYmxlZCxcbi5idG4tbGFyZ2UuZGlzYWJsZWQsXG4uYnRuLXNtYWxsLmRpc2FibGVkLFxuLmJ0bi1mbGF0LmRpc2FibGVkLFxuLmJ0bjpkaXNhYmxlZCxcbi5idG4tZmxvYXRpbmc6ZGlzYWJsZWQsXG4uYnRuLWxhcmdlOmRpc2FibGVkLFxuLmJ0bi1zbWFsbDpkaXNhYmxlZCxcbi5idG4tZmxhdDpkaXNhYmxlZCxcbi5idG5bZGlzYWJsZWRdLFxuLmJ0bi1mbG9hdGluZ1tkaXNhYmxlZF0sXG4uYnRuLWxhcmdlW2Rpc2FibGVkXSxcbi5idG4tc21hbGxbZGlzYWJsZWRdLFxuLmJ0bi1mbGF0W2Rpc2FibGVkXSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREZERkRGICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiAjOUY5RjlGICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5idG4uZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLWZsb2F0aW5nLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1sYXJnZS5kaXNhYmxlZDpob3Zlcixcbi5idG4tc21hbGwuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLWZsYXQuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuOmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1mbG9hdGluZzpkaXNhYmxlZDpob3Zlcixcbi5idG4tbGFyZ2U6ZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLXNtYWxsOmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1mbGF0OmRpc2FibGVkOmhvdmVyLFxuLmJ0bltkaXNhYmxlZF06aG92ZXIsXG4uYnRuLWZsb2F0aW5nW2Rpc2FibGVkXTpob3Zlcixcbi5idG4tbGFyZ2VbZGlzYWJsZWRdOmhvdmVyLFxuLmJ0bi1zbWFsbFtkaXNhYmxlZF06aG92ZXIsXG4uYnRuLWZsYXRbZGlzYWJsZWRdOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RGREZERiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzlGOUY5RiAhaW1wb3J0YW50O1xufVxuXG4uYnRuLFxuLmJ0bi1zbWFsbCxcbi5idG4tbGFyZ2UsXG4uYnRuLWZsb2F0aW5nLFxuLmJ0bi1mbGF0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBvdXRsaW5lOiAwO1xufVxuLmJ0biBpLFxuLmJ0bi1mbG9hdGluZyBpLFxuLmJ0bi1sYXJnZSBpLFxuLmJ0bi1zbWFsbCBpLFxuLmJ0bi1mbGF0IGkge1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5idG46Zm9jdXMsIC5idG4tc21hbGw6Zm9jdXMsIC5idG4tbGFyZ2U6Zm9jdXMsXG4uYnRuLWZsb2F0aW5nOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2LjUsIDI2LjUsIDI2LjUpO1xufVxuXG4uYnRuLCAuYnRuLXNtYWxsLCAuYnRuLWxhcmdlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0MzQzNDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLW91dDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmJ0bjpob3ZlciwgLmJ0bi1zbWFsbDpob3ZlciwgLmJ0bi1sYXJnZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2NC43NSwgNjQuNzUsIDY0Ljc1KTtcbn1cblxuLmJ0bi1mbG9hdGluZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uYnRuLWZsb2F0aW5nOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbn1cbi5idG4tZmxvYXRpbmc6YmVmb3JlIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZmxvYXRpbmcuYnRuLWxhcmdlIHtcbiAgd2lkdGg6IDU2cHg7XG4gIGhlaWdodDogNTZweDtcbiAgcGFkZGluZzogMDtcbn1cbi5idG4tZmxvYXRpbmcuYnRuLWxhcmdlLmhhbGZ3YXktZmFiIHtcbiAgYm90dG9tOiAyOHB4O1xufVxuLmJ0bi1mbG9hdGluZy5idG4tbGFyZ2UgaSB7XG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xufVxuLmJ0bi1mbG9hdGluZy5idG4tc21hbGwge1xuICB3aWR0aDogMzIuNHB4O1xuICBoZWlnaHQ6IDMyLjRweDtcbn1cbi5idG4tZmxvYXRpbmcuYnRuLXNtYWxsLmhhbGZ3YXktZmFiIHtcbiAgYm90dG9tOiAxNi4ycHg7XG59XG4uYnRuLWZsb2F0aW5nLmJ0bi1zbWFsbCBpIHtcbiAgbGluZS1oZWlnaHQ6IDMyLjRweDtcbn1cbi5idG4tZmxvYXRpbmcuaGFsZndheS1mYWIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAyNHB4O1xuICBib3R0b206IDIwcHg7XG59XG4uYnRuLWZsb2F0aW5nLmhhbGZ3YXktZmFiLmxlZnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMjRweDtcbn1cbi5idG4tZmxvYXRpbmcgaSB7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogNDBweDtcbn1cblxuYnV0dG9uLmJ0bi1mbG9hdGluZyB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLmZpeGVkLWFjdGlvbi1idG4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAyM3B4O1xuICBib3R0b206IDIzcHg7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB6LWluZGV4OiA5OTc7XG59XG4uZml4ZWQtYWN0aW9uLWJ0bi5hY3RpdmUgdWwge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLWxlZnQsIC5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1yaWdodCB7XG4gIHBhZGRpbmc6IDAgMCAwIDE1cHg7XG59XG4uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tbGVmdCB1bCwgLmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLXJpZ2h0IHVsIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHJpZ2h0OiA2NHB4O1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG4gIC8qd2lkdGggMTAwJSBvbmx5IGdvZXMgdG8gd2lkdGggb2YgYnV0dG9uIGNvbnRhaW5lciAqL1xuICB3aWR0aDogNTAwcHg7XG59XG4uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tbGVmdCB1bCBsaSwgLmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLXJpZ2h0IHVsIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDcuNXB4IDE1cHggMCAwO1xufVxuLmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLXJpZ2h0IHtcbiAgcGFkZGluZzogMCAxNXB4IDAgMDtcbn1cbi5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1yaWdodCB1bCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpcmVjdGlvbjogcnRsO1xuICBsZWZ0OiA2NHB4O1xuICByaWdodDogYXV0bztcbn1cbi5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1yaWdodCB1bCBsaSB7XG4gIG1hcmdpbjogNy41cHggMCAwIDE1cHg7XG59XG4uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tYm90dG9tIHtcbiAgcGFkZGluZzogMCAwIDE1cHggMDtcbn1cbi5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1ib3R0b20gdWwge1xuICB0b3A6IDY0cHg7XG4gIGJvdHRvbTogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuLmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLWJvdHRvbSB1bCBsaSB7XG4gIG1hcmdpbjogMTVweCAwIDAgMDtcbn1cbi5maXhlZC1hY3Rpb24tYnRuLnRvb2xiYXIge1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDU2cHg7XG59XG4uZml4ZWQtYWN0aW9uLWJ0bi50b29sYmFyLmFjdGl2ZSA+IGEgaSB7XG4gIG9wYWNpdHk6IDA7XG59XG4uZml4ZWQtYWN0aW9uLWJ0bi50b29sYmFyIHVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDE7XG59XG4uZml4ZWQtYWN0aW9uLWJ0bi50b29sYmFyIHVsIGxpIHtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5maXhlZC1hY3Rpb24tYnRuLnRvb2xiYXIgdWwgbGkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XG4gIHotaW5kZXg6IDE7XG59XG4uZml4ZWQtYWN0aW9uLWJ0bi50b29sYmFyIHVsIGxpIGEgaSB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuLmZpeGVkLWFjdGlvbi1idG4gdWwge1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNjRweDtcbiAgbWFyZ2luOiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4uZml4ZWQtYWN0aW9uLWJ0biB1bCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4uZml4ZWQtYWN0aW9uLWJ0biB1bCBhLmJ0bi1mbG9hdGluZyB7XG4gIG9wYWNpdHk6IDA7XG59XG4uZml4ZWQtYWN0aW9uLWJ0biAuZmFiLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG59XG5cbi5idG4tZmxhdCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzM0MzQzNDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG59XG4uYnRuLWZsYXQ6Zm9jdXMsIC5idG4tZmxhdDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYnRuLWZsYXQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uYnRuLWZsYXQuZGlzYWJsZWQsIC5idG4tZmxhdC5idG4tZmxhdFtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiKDE3OC41LCAxNzguNSwgMTc4LjUpICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmJ0bi1sYXJnZSB7XG4gIGhlaWdodDogNTRweDtcbiAgbGluZS1oZWlnaHQ6IDU0cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgcGFkZGluZzogMCAyOHB4O1xufVxuLmJ0bi1sYXJnZSBpIHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG59XG5cbi5idG4tc21hbGwge1xuICBoZWlnaHQ6IDMyLjRweDtcbiAgbGluZS1oZWlnaHQ6IDMyLjRweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmJ0bi1zbWFsbCBpIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG59XG5cbi5idG4tYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNvbW11blRhYkhlYWRlciwgLnRhYnMuYWN0aXZlVGFiLTIgLnRhYi1oZWFkZXItb3ZlcjIgLnRhYi1oZWFkZXIsIC50YWJzLmFjdGl2ZVRhYi0yIC50YWItaGVhZGVyLW92ZXIxIC50YWItaGVhZGVyLCAudGFicy5hY3RpdmVUYWItMiAudGFiLWhlYWRlci1vdmVyMCAudGFiLWhlYWRlciwgLnRhYnMuYWN0aXZlVGFiLTEgLnRhYi1oZWFkZXItb3ZlcjIgLnRhYi1oZWFkZXIsIC50YWJzLmFjdGl2ZVRhYi0xIC50YWItaGVhZGVyLW92ZXIxIC50YWItaGVhZGVyLCAudGFicy5hY3RpdmVUYWItMSAudGFiLWhlYWRlci1vdmVyMCAudGFiLWhlYWRlciwgLnRhYnMuYWN0aXZlVGFiLTAgLnRhYi1oZWFkZXItb3ZlcjIgLnRhYi1oZWFkZXIsIC50YWJzLmFjdGl2ZVRhYi0wIC50YWItaGVhZGVyLW92ZXIxIC50YWItaGVhZGVyLCAudGFicy5hY3RpdmVUYWItMCAudGFiLWhlYWRlci1vdmVyMCAudGFiLWhlYWRlciB7XG4gIGhlaWdodDogMTAwcHg7XG4gIHBhZGRpbmc6IDQwcHg7XG59XG5cbi50YWJzIHtcbiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTUwcHgpO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHggIWltcG9ydGFudDtcbn1cbi50YWJzIC5pbm5lcnBhZ2Uge1xuICBtaW4taGVpZ2h0OiA3MFZIICFpbXBvcnRhbnQ7XG59XG4udGFicyAudGFicy1oZWFkZXItb3ZlcmxheSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMTAwcHg7XG59XG4udGFicy5hY3RpdmVUYWItMCAudGFiLWhlYWRlci1vdmVyMCB7XG4gIGZsZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjcuOTQzMzk2MjI2NCwgMTk2LjM1ODQ5MDU2NiwgMjUyLjU1NjYwMzc3MzYpO1xuICBib3JkZXItcmFkaXVzOiA0MHB4IDAgMCAwO1xufVxuLnRhYnMuYWN0aXZlVGFiLTAgLnRhYi1oZWFkZXItb3ZlcjAgLnRhYi1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JlN2ZlO1xuICBib3JkZXItcmFkaXVzOiA0MHB4IDQwcHggMCAwO1xufVxuLnRhYnMuYWN0aXZlVGFiLTAgLnRhYi1oZWFkZXItb3ZlcjEge1xuICBmbGV4OiAxO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMC4yNXR1cm4sICNjYmU3ZmUsIHJnYig1Mi44ODY3OTI0NTI4LCAxNjEuNzE2OTgxMTMyMSwgMjUxLjExMzIwNzU0NzIpKTtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDtcbn1cbi50YWJzLmFjdGl2ZVRhYi0wIC50YWItaGVhZGVyLW92ZXIxIC50YWItaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNy45NDMzOTYyMjY0LCAxOTYuMzU4NDkwNTY2LCAyNTIuNTU2NjAzNzczNik7XG4gIGJvcmRlci1yYWRpdXM6IDAgNDBweCAwIDQwcHg7XG59XG4udGFicy5hY3RpdmVUYWItMCAudGFiLWhlYWRlci1vdmVyMiB7XG4gIGZsZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjcuOTQzMzk2MjI2NCwgMTk2LjM1ODQ5MDU2NiwgMjUyLjU1NjYwMzc3MzYpO1xuICBib3JkZXItcmFkaXVzOiAwIDQwcHggMCAwO1xufVxuLnRhYnMuYWN0aXZlVGFiLTAgLnRhYi1oZWFkZXItb3ZlcjIgLnRhYi1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTIuODg2NzkyNDUyOCwgMTYxLjcxNjk4MTEzMjEsIDI1MS4xMTMyMDc1NDcyKTtcbiAgYm9yZGVyLXJhZGl1czogMCA0MHB4IDAgNDBweDtcbn1cbi50YWJzLmFjdGl2ZVRhYi0xIC50YWItaGVhZGVyLW92ZXIwIHtcbiAgZmxleDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NiZTdmZTtcbiAgYm9yZGVyLXJhZGl1czogNDBweCAwIDAgMDtcbn1cbi50YWJzLmFjdGl2ZVRhYi0xIC50YWItaGVhZGVyLW92ZXIwIC50YWItaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNy45NDMzOTYyMjY0LCAxOTYuMzU4NDkwNTY2LCAyNTIuNTU2NjAzNzczNik7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHggMCA0MHB4IDA7XG59XG4udGFicy5hY3RpdmVUYWItMSAudGFiLWhlYWRlci1vdmVyMSB7XG4gIGZsZXg6IDE7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwLjI1dHVybiwgcmdiKDEyNy45NDMzOTYyMjY0LCAxOTYuMzU4NDkwNTY2LCAyNTIuNTU2NjAzNzczNiksIHJnYig1Mi44ODY3OTI0NTI4LCAxNjEuNzE2OTgxMTMyMSwgMjUxLjExMzIwNzU0NzIpKTtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDtcbn1cbi50YWJzLmFjdGl2ZVRhYi0xIC50YWItaGVhZGVyLW92ZXIxIC50YWItaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NiZTdmZTtcbiAgYm9yZGVyLXJhZGl1czogNDBweCA0MHB4IDAgMDtcbn1cbi50YWJzLmFjdGl2ZVRhYi0xIC50YWItaGVhZGVyLW92ZXIyIHtcbiAgZmxleDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NiZTdmZTtcbiAgYm9yZGVyLXJhZGl1czogMCA0MHB4IDAgMDtcbn1cbi50YWJzLmFjdGl2ZVRhYi0xIC50YWItaGVhZGVyLW92ZXIyIC50YWItaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDUyLjg4Njc5MjQ1MjgsIDE2MS43MTY5ODExMzIxLCAyNTEuMTEzMjA3NTQ3Mik7XG4gIGJvcmRlci1yYWRpdXM6IDAgNDBweCAwIDQwcHg7XG59XG4udGFicy5hY3RpdmVUYWItMiAudGFiLWhlYWRlci1vdmVyMCB7XG4gIGZsZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1Mi44ODY3OTI0NTI4LCAxNjEuNzE2OTgxMTMyMSwgMjUxLjExMzIwNzU0NzIpO1xuICBib3JkZXItcmFkaXVzOiA0MHB4IDAgMCAwO1xufVxuLnRhYnMuYWN0aXZlVGFiLTIgLnRhYi1oZWFkZXItb3ZlcjAgLnRhYi1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI3Ljk0MzM5NjIyNjQsIDE5Ni4zNTg0OTA1NjYsIDI1Mi41NTY2MDM3NzM2KTtcbiAgYm9yZGVyLXJhZGl1czogNDBweCAwIDQwcHggMDtcbn1cbi50YWJzLmFjdGl2ZVRhYi0yIC50YWItaGVhZGVyLW92ZXIxIHtcbiAgZmxleDogMTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDAuMjV0dXJuLCByZ2IoMTI3Ljk0MzM5NjIyNjQsIDE5Ni4zNTg0OTA1NjYsIDI1Mi41NTY2MDM3NzM2KSwgI2NiZTdmZSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7XG59XG4udGFicy5hY3RpdmVUYWItMiAudGFiLWhlYWRlci1vdmVyMSAudGFiLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1Mi44ODY3OTI0NTI4LCAxNjEuNzE2OTgxMTMyMSwgMjUxLjExMzIwNzU0NzIpO1xuICBib3JkZXItcmFkaXVzOiA0MHB4IDAgNDBweCAwO1xufVxuLnRhYnMuYWN0aXZlVGFiLTIgLnRhYi1oZWFkZXItb3ZlcjIge1xuICBmbGV4OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTIuODg2NzkyNDUyOCwgMTYxLjcxNjk4MTEzMjEsIDI1MS4xMTMyMDc1NDcyKTtcbiAgYm9yZGVyLXJhZGl1czogMCA0MHB4IDAgMDtcbn1cbi50YWJzLmFjdGl2ZVRhYi0yIC50YWItaGVhZGVyLW92ZXIyIC50YWItaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NiZTdmZTtcbiAgYm9yZGVyLXJhZGl1czogNDBweCA0MHB4IDAgMDtcbn1cbi50YWJzIC50YWItY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYmU3ZmU7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci10b3A6IDA7XG4gIG1pbi1oZWlnaHQ6IDcwdmg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA0MHB4IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuXG4ubG9hZGVyLW92ZXJsYXkge1xuICB6LWluZGV4OiA5OTk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMHZ3O1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAyLCAxMDAsIDEwMCwgMC42MDMpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5sb2FkZXItb3ZlcmxheSAubG9hZGVyIHtcbiAgYm9yZGVyOiA3cHggc29saWQgI2YzZjNmMzsgLyogTGlnaHQgZ3JleSAqL1xuICBib3JkZXItdG9wOiA3cHggc29saWQgIzJlYTJjYzsgLyogQmx1ZSAqL1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHdpZHRoOiA3MHB4O1xuICBoZWlnaHQ6IDcwcHg7XG4gIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XG59XG4ubG9hZGVyLW92ZXJsYXkgLmxvYWRlci10ZXh0IHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBjb2xvcjogIzJlYTJjYztcbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbi5jYXJkLXBhbmVsIHtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI1cztcbiAgcGFkZGluZzogMjRweDtcbiAgbWFyZ2luOiAwLjMzMzMzMzMzMzNyZW0gMCAwLjY2NjY2NjY2NjdyZW0gMDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4uY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwLjMzMzMzMzMzMzNyZW0gMCAwLjY2NjY2NjY2NjdyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI1cztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuLmNhcmQgLmNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uY2FyZCAuY2FyZC10aXRsZS5hY3RpdmF0b3Ige1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2FyZC5zbWFsbCwgLmNhcmQubWVkaXVtLCAuY2FyZC5sYXJnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jYXJkLnNtYWxsIC5jYXJkLWltYWdlLCAuY2FyZC5tZWRpdW0gLmNhcmQtaW1hZ2UsIC5jYXJkLmxhcmdlIC5jYXJkLWltYWdlIHtcbiAgbWF4LWhlaWdodDogNjAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNhcmQuc21hbGwgLmNhcmQtaW1hZ2UgKyAuY2FyZC1jb250ZW50LCAuY2FyZC5tZWRpdW0gLmNhcmQtaW1hZ2UgKyAuY2FyZC1jb250ZW50LCAuY2FyZC5sYXJnZSAuY2FyZC1pbWFnZSArIC5jYXJkLWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiA0MCU7XG59XG4uY2FyZC5zbWFsbCAuY2FyZC1jb250ZW50LCAuY2FyZC5tZWRpdW0gLmNhcmQtY29udGVudCwgLmNhcmQubGFyZ2UgLmNhcmQtY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uY2FyZC5zbWFsbCAuY2FyZC1hY3Rpb24sIC5jYXJkLm1lZGl1bSAuY2FyZC1hY3Rpb24sIC5jYXJkLmxhcmdlIC5jYXJkLWFjdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbn1cbi5jYXJkLnNtYWxsIHtcbiAgaGVpZ2h0OiAzMDBweDtcbn1cbi5jYXJkLm1lZGl1bSB7XG4gIGhlaWdodDogNDAwcHg7XG59XG4uY2FyZC5sYXJnZSB7XG4gIGhlaWdodDogNTAwcHg7XG59XG4uY2FyZC5ob3Jpem9udGFsIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5jYXJkLmhvcml6b250YWwuc21hbGwgLmNhcmQtaW1hZ2UsIC5jYXJkLmhvcml6b250YWwubWVkaXVtIC5jYXJkLWltYWdlLCAuY2FyZC5ob3Jpem9udGFsLmxhcmdlIC5jYXJkLWltYWdlIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5jYXJkLmhvcml6b250YWwuc21hbGwgLmNhcmQtaW1hZ2UgaW1nLCAuY2FyZC5ob3Jpem9udGFsLm1lZGl1bSAuY2FyZC1pbWFnZSBpbWcsIC5jYXJkLmhvcml6b250YWwubGFyZ2UgLmNhcmQtaW1hZ2UgaW1nIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmNhcmQuaG9yaXpvbnRhbCAuY2FyZC1pbWFnZSB7XG4gIG1heC13aWR0aDogNTAlO1xufVxuLmNhcmQuaG9yaXpvbnRhbCAuY2FyZC1pbWFnZSBpbWcge1xuICBib3JkZXItcmFkaXVzOiAycHggMCAwIDJweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogYXV0bztcbn1cbi5jYXJkLmhvcml6b250YWwgLmNhcmQtc3RhY2tlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jYXJkLmhvcml6b250YWwgLmNhcmQtc3RhY2tlZCAuY2FyZC1jb250ZW50IHtcbiAgZmxleC1ncm93OiAxO1xufVxuLmNhcmQuc3RpY2t5LWFjdGlvbiAuY2FyZC1hY3Rpb24ge1xuICB6LWluZGV4OiAyO1xufVxuLmNhcmQuc3RpY2t5LWFjdGlvbiAuY2FyZC1yZXZlYWwge1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcbn1cbi5jYXJkIC5jYXJkLWltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNhcmQgLmNhcmQtaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY2FyZCAuY2FyZC1pbWFnZSAuY2FyZC10aXRsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAyNHB4O1xufVxuLmNhcmQgLmNhcmQtY29udGVudCB7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O1xufVxuLmNhcmQgLmNhcmQtY29udGVudCBwIHtcbiAgbWFyZ2luOiAwO1xufVxuLmNhcmQgLmNhcmQtY29udGVudCAuY2FyZC10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMzJweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLmNhcmQgLmNhcmQtY29udGVudCAuY2FyZC10aXRsZSBpIHtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG59XG4uY2FyZCAuY2FyZC1hY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxNjAsIDE2MCwgMTYwLCAwLjIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDE2cHggMjRweDtcbn1cbi5jYXJkIC5jYXJkLWFjdGlvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDJweCAycHg7XG59XG4uY2FyZCAuY2FyZC1hY3Rpb24gYTpub3QoLmJ0bik6bm90KC5idG4tbGFyZ2UpOm5vdCguYnRuLXNtYWxsKTpub3QoLmJ0bi1sYXJnZSk6bm90KC5idG4tZmxvYXRpbmcpIHtcbiAgY29sb3I6ICNmZmFiNDA7XG4gIG1hcmdpbi1yaWdodDogMjRweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmNhcmQgLmNhcmQtYWN0aW9uIGE6bm90KC5idG4pOm5vdCguYnRuLWxhcmdlKTpub3QoLmJ0bi1zbWFsbCk6bm90KC5idG4tbGFyZ2UpOm5vdCguYnRuLWZsb2F0aW5nKTpob3ZlciB7XG4gIGNvbG9yOiByZ2IoMjU1LCAyMTUuODU4NjM4NzQzNSwgMTY2KTtcbn1cbi5jYXJkIC5jYXJkLXJldmVhbCB7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIHRvcDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAzO1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNhcmQgLmNhcmQtcmV2ZWFsIC5jYXJkLXRpdGxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAgICBAbGljZW5zZVxuICAgIENvcHlyaWdodCAoYykgMjAxNCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dFxuICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0XG4gICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0XG4gICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc29cbiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTVFlMRVMgRk9SIFRIRSBTUElOTkVSICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuICogQ29uc3RhbnRzOlxuICogICAgICBTVFJPS0VXSURUSCA9IDNweFxuICogICAgICBBUkNTSVpFICAgICA9IDI3MCBkZWdyZWVzIChhbW91bnQgb2YgY2lyY2xlIHRoZSBhcmMgdGFrZXMgdXApXG4gKiAgICAgIEFSQ1RJTUUgICAgID0gMTMzM21zICh0aW1lIGl0IHRha2VzIHRvIGV4cGFuZCBhbmQgY29udHJhY3QgYXJjKVxuICogICAgICBBUkNTVEFSVFJPVCA9IDIxNiBkZWdyZWVzIChob3cgbXVjaCB0aGUgc3RhcnQgbG9jYXRpb24gb2YgdGhlIGFyY1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCByb3RhdGUgZWFjaCB0aW1lLCAyMTYgZ2l2ZXMgdXMgYVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUgcG9pbnRlZCBzdGFyIHNoYXBlIChpdCdzIDM2MC81ICogMykuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIGEgNyBwb2ludGVkIHN0YXIsIHdlIG1pZ2h0IGRvXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYwLzcgKiAzID0gMTU0LjI4NilcbiAqICAgICAgQ09OVEFJTkVSV0lEVEggPSAyOHB4XG4gKiAgICAgIFNIUklOS19USU1FID0gNDAwbXNcbiAqL1xuLnByZWxvYWRlci13cmFwcGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG59XG4ucHJlbG9hZGVyLXdyYXBwZXIuc21hbGwge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xufVxuLnByZWxvYWRlci13cmFwcGVyLmJpZyB7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDY0cHg7XG59XG4ucHJlbG9hZGVyLXdyYXBwZXIuYWN0aXZlIHtcbiAgLyogZHVyYXRpb246IDM2MCAqIEFSQ1RJTUUgLyAoQVJDU1RBUlRST1QgKyAoMzYwLUFSQ1NJWkUpKSAqL1xuICAtd2Via2l0LWFuaW1hdGlvbjogY29udGFpbmVyLXJvdGF0ZSAxNTY4bXMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgMTU2OG1zIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGNvbnRhaW5lci1yb3RhdGUge1xuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGNvbnRhaW5lci1yb3RhdGUge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLnNwaW5uZXItbGF5ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIGJvcmRlci1jb2xvcjogIzI2YTY5YTtcbn1cblxuLnNwaW5uZXItYmx1ZSxcbi5zcGlubmVyLWJsdWUtb25seSB7XG4gIGJvcmRlci1jb2xvcjogIzQyODVmNDtcbn1cblxuLnNwaW5uZXItcmVkLFxuLnNwaW5uZXItcmVkLW9ubHkge1xuICBib3JkZXItY29sb3I6ICNkYjQ0Mzc7XG59XG5cbi5zcGlubmVyLXllbGxvdyxcbi5zcGlubmVyLXllbGxvdy1vbmx5IHtcbiAgYm9yZGVyLWNvbG9yOiAjZjRiNDAwO1xufVxuXG4uc3Bpbm5lci1ncmVlbixcbi5zcGlubmVyLWdyZWVuLW9ubHkge1xuICBib3JkZXItY29sb3I6ICMwZjlkNTg7XG59XG5cbi8qKlxuICogSU1QT1JUQU5UIE5PVEUgQUJPVVQgQ1NTIEFOSU1BVElPTiBQUk9QRVJUSUVTIChrZWFudWxlZSk6XG4gKlxuICogaU9TIFNhZmFyaSAodGVzdGVkIG9uIGlPUyA4LjEpIGRvZXMgbm90IGhhbmRsZSBhbmltYXRpb24tZGVsYXkgdmVyeSB3ZWxsIC0gaXQgZG9lc24ndFxuICogZ3VhcmFudGVlIHRoYXQgdGhlIGFuaW1hdGlvbiB3aWxsIHN0YXJ0IF9leGFjdGx5XyBhZnRlciB0aGF0IHZhbHVlLiBTbyB3ZSBhdm9pZCB1c2luZ1xuICogYW5pbWF0aW9uLWRlbGF5IGFuZCBpbnN0ZWFkIHNldCBjdXN0b20ga2V5ZnJhbWVzIGZvciBlYWNoIGNvbG9yIChhcyByZWR1bmRhbnQgYXMgaXRcbiAqIHNlZW1zKS5cbiAqXG4gKiBXZSB3cml0ZSBvdXQgZWFjaCBhbmltYXRpb24gaW4gZnVsbCAoaW5zdGVhZCBvZiBzZXBhcmF0aW5nIGFuaW1hdGlvbi1uYW1lLFxuICogYW5pbWF0aW9uLWR1cmF0aW9uLCBldGMuKSBiZWNhdXNlIHVuZGVyIHRoZSBwb2x5ZmlsbCwgU2FmYXJpIGRvZXMgbm90IHJlY29nbml6ZSB0aG9zZVxuICogc3BlY2lmaWMgcHJvcGVydGllcyBwcm9wZXJseSwgdHJlYXRzIHRoZW0gYXMgLXdlYmtpdC1hbmltYXRpb24sIGFuZCBvdmVycmlkZXMgdGhlXG4gKiBvdGhlciBhbmltYXRpb24gcnVsZXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vUG9seW1lci9wbGF0Zm9ybS9pc3N1ZXMvNTMuXG4gKi9cbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ibHVlIHtcbiAgLyogZHVyYXRpb25zOiA0ICogQVJDVElNRSAqL1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIGJsdWUtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbiAgYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgYmx1ZS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xufVxuXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItcmVkIHtcbiAgLyogZHVyYXRpb25zOiA0ICogQVJDVElNRSAqL1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIHJlZC1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xuICBhbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCByZWQtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbn1cblxuLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5zcGlubmVyLXllbGxvdyB7XG4gIC8qIGR1cmF0aW9uczogNCAqIEFSQ1RJTUUgKi9cbiAgLXdlYmtpdC1hbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCB5ZWxsb3ctZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbiAgYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgeWVsbG93LWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG59XG5cbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ncmVlbiB7XG4gIC8qIGR1cmF0aW9uczogNCAqIEFSQ1RJTUUgKi9cbiAgLXdlYmtpdC1hbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBncmVlbi1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xuICBhbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBncmVlbi1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xufVxuXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLFxuLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5zcGlubmVyLWJsdWUtb25seSxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1yZWQtb25seSxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci15ZWxsb3ctb25seSxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ncmVlbi1vbmx5IHtcbiAgLyogZHVyYXRpb25zOiA0ICogQVJDVElNRSAqL1xuICBvcGFjaXR5OiAxO1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG4gIGFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmaWxsLXVuZmlsbC1yb3RhdGUge1xuICAxMi41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xuICB9IC8qIDAuNSAqIEFSQ1NJWkUgKi9cbiAgMjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIH0gLyogMSAgICogQVJDU0laRSAqL1xuICAzNy41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0MDVkZWcpO1xuICB9IC8qIDEuNSAqIEFSQ1NJWkUgKi9cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDU0MGRlZyk7XG4gIH0gLyogMiAgICogQVJDU0laRSAqL1xuICA2Mi41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg2NzVkZWcpO1xuICB9IC8qIDIuNSAqIEFSQ1NJWkUgKi9cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDgxMGRlZyk7XG4gIH0gLyogMyAgICogQVJDU0laRSAqL1xuICA4Ny41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5NDVkZWcpO1xuICB9IC8qIDMuNSAqIEFSQ1NJWkUgKi9cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZyk7XG4gIH0gLyogNCAgICogQVJDU0laRSAqL1xufVxuQGtleWZyYW1lcyBmaWxsLXVuZmlsbC1yb3RhdGUge1xuICAxMi41JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgfSAvKiAwLjUgKiBBUkNTSVpFICovXG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcbiAgfSAvKiAxICAgKiBBUkNTSVpFICovXG4gIDM3LjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0MDVkZWcpO1xuICB9IC8qIDEuNSAqIEFSQ1NJWkUgKi9cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpO1xuICB9IC8qIDIgICAqIEFSQ1NJWkUgKi9cbiAgNjIuNSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDY3NWRlZyk7XG4gIH0gLyogMi41ICogQVJDU0laRSAqL1xuICA3NSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDgxMGRlZyk7XG4gIH0gLyogMyAgICogQVJDU0laRSAqL1xuICA4Ny41JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTQ1ZGVnKTtcbiAgfSAvKiAzLjUgKiBBUkNTSVpFICovXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMDgwZGVnKTtcbiAgfSAvKiA0ICAgKiBBUkNTSVpFICovXG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgYmx1ZS1mYWRlLWluLW91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMjUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDI2JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA4OSUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYmx1ZS1mYWRlLWluLW91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMjUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDI2JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA4OSUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyByZWQtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDE1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAyNSUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUxJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQGtleWZyYW1lcyByZWQtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDE1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAyNSUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUxJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIHllbGxvdy1mYWRlLWluLW91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA3NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNzYlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHllbGxvdy1mYWRlLWluLW91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA3NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNzYlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZ3JlZW4tZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDY1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA3NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZ3JlZW4tZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDY1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA3NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi8qKlxuICogUGF0Y2ggdGhlIGdhcCB0aGF0IGFwcGVhciBiZXR3ZWVuIHRoZSB0d28gYWRqYWNlbnQgZGl2LmNpcmNsZS1jbGlwcGVyIHdoaWxlIHRoZVxuICogc3Bpbm5lciBpcyByb3RhdGluZyAoYXBwZWFycyBvbiBDaHJvbWUgMzgsIFNhZmFyaSA3LjEsIGFuZCBJRSAxMSkuXG4gKi9cbi5nYXAtcGF0Y2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogNDUlO1xuICB3aWR0aDogMTAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbn1cblxuLmdhcC1wYXRjaCAuY2lyY2xlIHtcbiAgd2lkdGg6IDEwMDAlO1xuICBsZWZ0OiAtNDUwJTtcbn1cblxuLmNpcmNsZS1jbGlwcGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xufVxuLmNpcmNsZS1jbGlwcGVyIC5jaXJjbGUge1xuICB3aWR0aDogMjAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItd2lkdGg6IDNweDsgLyogU1RST0tFV0lEVEggKi9cbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBub25lO1xuICBhbmltYXRpb246IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xufVxuLmNpcmNsZS1jbGlwcGVyLmxlZnQgLmNpcmNsZSB7XG4gIGxlZnQ6IDA7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpO1xufVxuLmNpcmNsZS1jbGlwcGVyLnJpZ2h0IC5jaXJjbGUge1xuICBsZWZ0OiAtMTAwJTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEyOWRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMjlkZWcpO1xufVxuXG4uYWN0aXZlIC5jaXJjbGUtY2xpcHBlci5sZWZ0IC5jaXJjbGUge1xuICAvKiBkdXJhdGlvbjogQVJDVElNRSAqL1xuICAtd2Via2l0LWFuaW1hdGlvbjogbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG4gIGFuaW1hdGlvbjogbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG59XG5cbi5hY3RpdmUgLmNpcmNsZS1jbGlwcGVyLnJpZ2h0IC5jaXJjbGUge1xuICAvKiBkdXJhdGlvbjogQVJDVElNRSAqL1xuICAtd2Via2l0LWFuaW1hdGlvbjogcmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xuICBhbmltYXRpb246IHJpZ2h0LXNwaW4gMTMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGxlZnQtc3BpbiB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpO1xuICB9XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgbGVmdC1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIHJpZ2h0LXNwaW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTtcbiAgfVxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyByaWdodC1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7XG4gIH1cbn1cbiNzcGlubmVyQ29udGFpbmVyLmNvb2xkb3duIHtcbiAgLyogZHVyYXRpb246IFNIUklOS19USU1FICovXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIDE1NjhtcyBsaW5lYXIgaW5maW5pdGUsIGZhZGUtb3V0IDQwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIGFuaW1hdGlvbjogY29udGFpbmVyLXJvdGF0ZSAxNTY4bXMgbGluZWFyIGluZmluaXRlLCBmYWRlLW91dCA0MDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGUtb3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLnByb2dyZXNzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDRweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWNlY2U2O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG1hcmdpbjogMC4zMzMzMzMzMzMzcmVtIDAgMC42NjY2NjY2NjY3cmVtIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucHJvZ3Jlc3MgLmRldGVybWluYXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XG59XG4ucHJvZ3Jlc3MgLmluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xufVxuLnByb2dyZXNzIC5pbmRldGVybWluYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpbGwtY2hhbmdlOiBsZWZ0LCByaWdodDtcbiAgYW5pbWF0aW9uOiBpbmRldGVybWluYXRlIDIuMXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuODE1LCAwLjczNSwgMC4zOTUpIGluZmluaXRlO1xufVxuLnByb2dyZXNzIC5pbmRldGVybWluYXRlOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lsbC1jaGFuZ2U6IGxlZnQsIHJpZ2h0O1xuICBhbmltYXRpb246IGluZGV0ZXJtaW5hdGUtc2hvcnQgMi4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpIGluZmluaXRlO1xuICBhbmltYXRpb24tZGVsYXk6IDEuMTVzO1xufVxuXG5Aa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUge1xuICAwJSB7XG4gICAgbGVmdDogLTM1JTtcbiAgICByaWdodDogMTAwJTtcbiAgfVxuICA2MCUge1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgcmlnaHQ6IC05MCU7XG4gIH1cbiAgMTAwJSB7XG4gICAgbGVmdDogMTAwJTtcbiAgICByaWdodDogLTkwJTtcbiAgfVxufVxuQGtleWZyYW1lcyBpbmRldGVybWluYXRlLXNob3J0IHtcbiAgMCUge1xuICAgIGxlZnQ6IC0yMDAlO1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIDYwJSB7XG4gICAgbGVmdDogMTA3JTtcbiAgICByaWdodDogLTglO1xuICB9XG4gIDEwMCUge1xuICAgIGxlZnQ6IDEwNyU7XG4gICAgcmlnaHQ6IC04JTtcbiAgfVxufVxuLmZsYXNoLW1lc3NhZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDJweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHotaW5kZXg6IDk5OTk5O1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZmxhc2gtbWVzc2FnZS5pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JlZGRiZTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzcyOGY3Mjtcbn1cbi5mbGFzaC1tZXNzYWdlLndhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVlNmQwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWE3ZDE3O1xufVxuLmZsYXNoLW1lc3NhZ2UuZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTViMmJjO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTMzMjU3O1xufVxuXG5Aa2V5ZnJhbWVzIG1lc3NhZ2VJbiB7XG4gIGZyb20ge1xuICAgIHJpZ2h0OiA4MCU7XG4gIH1cbiAgdG8ge1xuICAgIHJpZ2h0OiAwO1xuICB9XG59XG4ucHVsc2Uge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnB1bHNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcywgdHJhbnNmb3JtIDAuM3M7XG4gIGFuaW1hdGlvbjogcHVsc2UtYW5pbWF0aW9uIDFzIGN1YmljLWJlemllcigwLjI0LCAwLCAwLjM4LCAxKSBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBwdWxzZS1hbmltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIH1cbn1cbi5kcm9wZG93bi1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBmbG93O1xuICBtaW4td2lkdGg6IDEwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogOTk5OTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xufVxuLmRyb3Bkb3duLWNvbnRlbnQ6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmRyb3Bkb3duLWNvbnRlbnQgbGkge1xuICBjbGVhcjogYm90aDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWluLWhlaWdodDogNTBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uZHJvcGRvd24tY29udGVudCBsaTpob3ZlciwgLmRyb3Bkb3duLWNvbnRlbnQgbGkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cbi5kcm9wZG93bi1jb250ZW50IGxpOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5kcm9wZG93bi1jb250ZW50IGxpLmRpdmlkZXIge1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbn1cbi5kcm9wZG93bi1jb250ZW50IGxpID4gYSwgLmRyb3Bkb3duLWNvbnRlbnQgbGkgPiBzcGFuIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzI2YTY5YTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICBwYWRkaW5nOiAxNHB4IDE2cHg7XG59XG4uZHJvcGRvd24tY29udGVudCBsaSA+IHNwYW4gPiBsYWJlbCB7XG4gIHRvcDogMXB4O1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDE4cHg7XG59XG4uZHJvcGRvd24tY29udGVudCBsaSA+IGEgPiBpIHtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMCAyNHB4IDAgMDtcbiAgd2lkdGg6IDI0cHg7XG59XG5cbmJvZHkua2V5Ym9hcmQtZm9jdXNlZCAuZHJvcGRvd24tY29udGVudCBsaTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTcuNiwgMjE3LjYsIDIxNy42KTtcbn1cblxuLmlucHV0LWZpZWxkLmNvbCAuZHJvcGRvd24tY29udGVudCBbdHlwZT1jaGVja2JveF0gKyBsYWJlbCB7XG4gIHRvcDogMXB4O1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDE4cHg7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmRyb3Bkb3duLXRyaWdnZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbm5hdiB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTBjYWY5O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1NnB4O1xuICBsaW5lLWhlaWdodDogNTZweDtcbn1cbm5hdi5uYXYtZXh0ZW5kZWQge1xuICBoZWlnaHQ6IGF1dG87XG59XG5uYXYubmF2LWV4dGVuZGVkIC5uYXYtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDU2cHg7XG4gIGhlaWdodDogYXV0bztcbn1cbm5hdi5uYXYtZXh0ZW5kZWQgLm5hdi1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxubmF2IGEge1xuICBjb2xvcjogI2ZmZjtcbn1cbm5hdiBpLFxubmF2IFtjbGFzc149bWRpLV0sIG5hdiBbY2xhc3MqPW1kaS1dLFxubmF2IGkucy1pY29ucyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGhlaWdodDogNTZweDtcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XG59XG5uYXYgLm5hdi13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiA5OTNweCkge1xuICBuYXYgYS5zaWRlbmF2LXRyaWdnZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbm5hdiAuc2lkZW5hdi10cmlnZ2VyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiA1NnB4O1xuICBtYXJnaW46IDAgMThweDtcbn1cbm5hdiAuc2lkZW5hdi10cmlnZ2VyIGkge1xuICBoZWlnaHQ6IDU2cHg7XG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xufVxubmF2IC5icmFuZC1sb2dvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDIuMXJlbTtcbiAgcGFkZGluZzogMDtcbn1cbm5hdiAuYnJhbmQtbG9nbyBpbWcuY2lyY2xlIHtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzJweDtcbn1cbm5hdiAuYnJhbmQtbG9nby5jZW50ZXIge1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IDk5MnB4KSB7XG4gIG5hdiAuYnJhbmQtbG9nbyB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxuICBuYXYgLmJyYW5kLWxvZ28ubGVmdCwgbmF2IC5icmFuZC1sb2dvLnJpZ2h0IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICBuYXYgLmJyYW5kLWxvZ28ubGVmdCB7XG4gICAgbGVmdDogMC41cmVtO1xuICB9XG4gIG5hdiAuYnJhbmQtbG9nby5yaWdodCB7XG4gICAgcmlnaHQ6IDAuNXJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG59XG5uYXYgLmJyYW5kLWxvZ28ucmlnaHQge1xuICByaWdodDogMC41cmVtO1xuICBwYWRkaW5nOiAwO1xufVxubmF2IC5icmFuZC1sb2dvIGksXG5uYXYgLmJyYW5kLWxvZ28gW2NsYXNzXj1tZGktXSwgbmF2IC5icmFuZC1sb2dvIFtjbGFzcyo9bWRpLV0sXG5uYXYgLmJyYW5kLWxvZ28gaS5zLWljb25zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cbm5hdiAubmF2LXRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDMycHg7XG4gIHBhZGRpbmc6IDI4cHggMDtcbn1cbm5hdiB1bCB7XG4gIG1hcmdpbjogMDtcbn1cbm5hdiB1bCBsaSB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDA7XG59XG5uYXYgdWwgbGkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxubmF2IHVsIGEge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbm5hdiB1bCBhLmJ0biwgbmF2IHVsIGEuYnRuLXNtYWxsLCBuYXYgdWwgYS5idG4tbGFyZ2UsIG5hdiB1bCBhLmJ0bi1mbGF0LCBuYXYgdWwgYS5idG4tZmxvYXRpbmcge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxubmF2IHVsIGEuYnRuID4gLm1hdGVyaWFsLWljb25zLCBuYXYgdWwgYS5idG4tc21hbGwgPiAubWF0ZXJpYWwtaWNvbnMsIG5hdiB1bCBhLmJ0bi1sYXJnZSA+IC5tYXRlcmlhbC1pY29ucywgbmF2IHVsIGEuYnRuLWZsYXQgPiAubWF0ZXJpYWwtaWNvbnMsIG5hdiB1bCBhLmJ0bi1mbG9hdGluZyA+IC5tYXRlcmlhbC1pY29ucyB7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5uYXYgdWwgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbm5hdiB1bC5sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5uYXYgZm9ybSB7XG4gIGhlaWdodDogMTAwJTtcbn1cbm5hdiAuaW5wdXQtZmllbGQge1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogMTAwJTtcbn1cbm5hdiAuaW5wdXQtZmllbGQgaW5wdXQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbn1cbm5hdiAuaW5wdXQtZmllbGQgaW5wdXQ6Zm9jdXMsIG5hdiAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT10ZXh0XTp2YWxpZCwgbmF2IC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXBhc3N3b3JkXTp2YWxpZCwgbmF2IC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPWVtYWlsXTp2YWxpZCwgbmF2IC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXVybF06dmFsaWQsIG5hdiAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1kYXRlXTp2YWxpZCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbm5hdiAuaW5wdXQtZmllbGQgbGFiZWwge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5uYXYgLmlucHV0LWZpZWxkIGxhYmVsIGkge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xufVxubmF2IC5pbnB1dC1maWVsZCBsYWJlbC5hY3RpdmUgaSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ubmF2YmFyLWZpeGVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDU2cHg7XG4gIHotaW5kZXg6IDk5Nztcbn1cbi5uYXZiYXItZml4ZWQgbmF2IHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiA2MDFweCkge1xuICBuYXYubmF2LWV4dGVuZGVkIC5uYXYtd3JhcHBlciB7XG4gICAgbWluLWhlaWdodDogNjRweDtcbiAgfVxuICBuYXYsIG5hdiAubmF2LXdyYXBwZXIgaSwgbmF2IGEuc2lkZW5hdi10cmlnZ2VyLCBuYXYgYS5zaWRlbmF2LXRyaWdnZXIgaSB7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICB9XG4gIC5uYXZiYXItZml4ZWQge1xuICAgIGhlaWdodDogNjRweDtcbiAgfVxufWAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3Nhc3MvZDN2NHBwLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL19jb2xvcnMuc2Nzc1wiLFwid2VicGFjazovLy4vc3JjL3Nhc3MvX2NvZGUtZGFyay5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fdGVybWluYWwuc2Nzc1wiLFwid2VicGFjazovLy4vc3JjL3Nhc3MvX3Rvb2x0aXAuc2Nzc1wiLFwid2VicGFjazovLy4vc3JjL3Nhc3MvX3NoYWRvd3Muc2Nzc1wiLFwid2VicGFjazovLy4vc3JjL3Nhc3MvX3dhdmVzLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL19tb2RhbC5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fZ2xvYmFsLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL192YXJpYWJsZXMuc2Nzc1wiLFwid2VicGFjazovLy4vc3JjL3Nhc3MvX2JhZGdlcy5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fY2hpcHMuc2Nzc1wiLFwid2VicGFjazovLy4vc3JjL3Nhc3MvX2NvbGxhcHNpYmxlLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL19jb2xsZWN0aW9uLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL2Zvcm1zL19mb3Jtcy5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9mb3Jtcy9faW5wdXQtZmllbGRzLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL2Zvcm1zL19yYWRpby1idXR0b25zLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL2Zvcm1zL19jaGVja2JveGVzLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL2Zvcm1zL19zd2l0Y2hlcy5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9mb3Jtcy9fc2VsZWN0LnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL2Zvcm1zL19maWxlLWlucHV0LnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL2Zvcm1zL19yYW5nZS5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fcGFyYWxheC5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fY3ViZS5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fZ3JpZC5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fc2lkZW5hdi5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fYnV0dG9ucy5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fdGFicy5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fbG9hZGVyLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL19jYXJkcy5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fcHJlbG9hZGVyLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL19wcm9ncmVzcy5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fZmxhc2gtbWVzc2FnZS5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi9zcmMvc2Fzcy9fcHVsc2Uuc2Nzc1wiLFwid2VicGFjazovLy4vc3JjL3Nhc3MvX2Ryb3Bkb3duLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9zYXNzL19uYXZiYXIuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSxnQkFBZ0I7QUNLVjtFQUNFLG9DQUFBO0FERlI7O0FDSU07RUFDRSx5QkFBQTtBRERSOztBQ0dNO0VBQ0Usb0NBQUE7QURBUjs7QUNHTTtFQUNFLG9DQUFBO0FEQVI7O0FDRU07RUFDRSx5QkFBQTtBRENSOztBQ0NNO0VBQ0Usb0NBQUE7QURFUjs7QUNUTTtFQUNFLG9DQUFBO0FEWVI7O0FDVk07RUFDRSx5QkFBQTtBRGFSOztBQ1hNO0VBQ0Usb0NBQUE7QURjUjs7QUNyQk07RUFDRSxvQ0FBQTtBRHdCUjs7QUN0Qk07RUFDRSx5QkFBQTtBRHlCUjs7QUN2Qk07RUFDRSxvQ0FBQTtBRDBCUjs7QUNqQ007RUFDRSxvQ0FBQTtBRG9DUjs7QUNsQ007RUFDRSx5QkFBQTtBRHFDUjs7QUNuQ007RUFDRSxvQ0FBQTtBRHNDUjs7QUM3Q007RUFDRSxvQ0FBQTtBRGdEUjs7QUM5Q007RUFDRSx5QkFBQTtBRGlEUjs7QUMvQ007RUFDRSxvQ0FBQTtBRGtEUjs7QUN6RE07RUFDRSxvQ0FBQTtBRDREUjs7QUMxRE07RUFDRSx5QkFBQTtBRDZEUjs7QUMzRE07RUFDRSxvQ0FBQTtBRDhEUjs7QUNyRU07RUFDRSxvQ0FBQTtBRHdFUjs7QUN0RU07RUFDRSx5QkFBQTtBRHlFUjs7QUN2RU07RUFDRSxvQ0FBQTtBRDBFUjs7QUNqRk07RUFDRSxvQ0FBQTtBRG9GUjs7QUNsRk07RUFDRSx5QkFBQTtBRHFGUjs7QUNuRk07RUFDRSxvQ0FBQTtBRHNGUjs7QUM3Rk07RUFDRSxvQ0FBQTtBRGdHUjs7QUM5Rk07RUFDRSx5QkFBQTtBRGlHUjs7QUMvRk07RUFDRSxvQ0FBQTtBRGtHUjs7QUN6R007RUFDRSxvQ0FBQTtBRDRHUjs7QUMxR007RUFDRSx5QkFBQTtBRDZHUjs7QUMzR007RUFDRSxvQ0FBQTtBRDhHUjs7QUNySE07RUFDRSxvQ0FBQTtBRHdIUjs7QUN0SE07RUFDRSx5QkFBQTtBRHlIUjs7QUN2SE07RUFDRSxvQ0FBQTtBRDBIUjs7QUNqSU07RUFDRSxvQ0FBQTtBRG9JUjs7QUNsSU07RUFDRSx5QkFBQTtBRHFJUjs7QUNuSU07RUFDRSxvQ0FBQTtBRHNJUjs7QUM3SU07RUFDRSxvQ0FBQTtBRGdKUjs7QUM5SU07RUFDRSx5QkFBQTtBRGlKUjs7QUMvSU07RUFDRSxvQ0FBQTtBRGtKUjs7QUN6Sk07RUFDRSxvQ0FBQTtBRDRKUjs7QUMxSk07RUFDRSx5QkFBQTtBRDZKUjs7QUMzSk07RUFDRSxvQ0FBQTtBRDhKUjs7QUMvS007RUFDRSxvQ0FBQTtBRGtMUjs7QUNoTE07RUFDRSx5QkFBQTtBRG1MUjs7QUNqTE07RUFDRSxvQ0FBQTtBRG9MUjs7QUNqTE07RUFDRSxvQ0FBQTtBRG9MUjs7QUNsTE07RUFDRSx5QkFBQTtBRHFMUjs7QUNuTE07RUFDRSxvQ0FBQTtBRHNMUjs7QUM3TE07RUFDRSxvQ0FBQTtBRGdNUjs7QUM5TE07RUFDRSx5QkFBQTtBRGlNUjs7QUMvTE07RUFDRSxvQ0FBQTtBRGtNUjs7QUN6TU07RUFDRSxvQ0FBQTtBRDRNUjs7QUMxTU07RUFDRSx5QkFBQTtBRDZNUjs7QUMzTU07RUFDRSxvQ0FBQTtBRDhNUjs7QUNyTk07RUFDRSxvQ0FBQTtBRHdOUjs7QUN0Tk07RUFDRSx5QkFBQTtBRHlOUjs7QUN2Tk07RUFDRSxvQ0FBQTtBRDBOUjs7QUNqT007RUFDRSxvQ0FBQTtBRG9PUjs7QUNsT007RUFDRSx5QkFBQTtBRHFPUjs7QUNuT007RUFDRSxvQ0FBQTtBRHNPUjs7QUM3T007RUFDRSxvQ0FBQTtBRGdQUjs7QUM5T007RUFDRSx5QkFBQTtBRGlQUjs7QUMvT007RUFDRSxvQ0FBQTtBRGtQUjs7QUN6UE07RUFDRSxvQ0FBQTtBRDRQUjs7QUMxUE07RUFDRSx5QkFBQTtBRDZQUjs7QUMzUE07RUFDRSxvQ0FBQTtBRDhQUjs7QUNyUU07RUFDRSxvQ0FBQTtBRHdRUjs7QUN0UU07RUFDRSx5QkFBQTtBRHlRUjs7QUN2UU07RUFDRSxvQ0FBQTtBRDBRUjs7QUNqUk07RUFDRSxvQ0FBQTtBRG9SUjs7QUNsUk07RUFDRSx5QkFBQTtBRHFSUjs7QUNuUk07RUFDRSxvQ0FBQTtBRHNSUjs7QUM3Uk07RUFDRSxvQ0FBQTtBRGdTUjs7QUM5Uk07RUFDRSx5QkFBQTtBRGlTUjs7QUMvUk07RUFDRSxvQ0FBQTtBRGtTUjs7QUN6U007RUFDRSxvQ0FBQTtBRDRTUjs7QUMxU007RUFDRSx5QkFBQTtBRDZTUjs7QUMzU007RUFDRSxvQ0FBQTtBRDhTUjs7QUNyVE07RUFDRSxvQ0FBQTtBRHdUUjs7QUN0VE07RUFDRSx5QkFBQTtBRHlUUjs7QUN2VE07RUFDRSxvQ0FBQTtBRDBUUjs7QUNqVU07RUFDRSxvQ0FBQTtBRG9VUjs7QUNsVU07RUFDRSx5QkFBQTtBRHFVUjs7QUNuVU07RUFDRSxvQ0FBQTtBRHNVUjs7QUN2Vk07RUFDRSxvQ0FBQTtBRDBWUjs7QUN4Vk07RUFDRSx5QkFBQTtBRDJWUjs7QUN6Vk07RUFDRSxvQ0FBQTtBRDRWUjs7QUN6Vk07RUFDRSxvQ0FBQTtBRDRWUjs7QUMxVk07RUFDRSx5QkFBQTtBRDZWUjs7QUMzVk07RUFDRSxvQ0FBQTtBRDhWUjs7QUNyV007RUFDRSxvQ0FBQTtBRHdXUjs7QUN0V007RUFDRSx5QkFBQTtBRHlXUjs7QUN2V007RUFDRSxvQ0FBQTtBRDBXUjs7QUNqWE07RUFDRSxvQ0FBQTtBRG9YUjs7QUNsWE07RUFDRSx5QkFBQTtBRHFYUjs7QUNuWE07RUFDRSxvQ0FBQTtBRHNYUjs7QUM3WE07RUFDRSxvQ0FBQTtBRGdZUjs7QUM5WE07RUFDRSx5QkFBQTtBRGlZUjs7QUMvWE07RUFDRSxvQ0FBQTtBRGtZUjs7QUN6WU07RUFDRSxvQ0FBQTtBRDRZUjs7QUMxWU07RUFDRSx5QkFBQTtBRDZZUjs7QUMzWU07RUFDRSxvQ0FBQTtBRDhZUjs7QUNyWk07RUFDRSxvQ0FBQTtBRHdaUjs7QUN0Wk07RUFDRSx5QkFBQTtBRHlaUjs7QUN2Wk07RUFDRSxvQ0FBQTtBRDBaUjs7QUNqYU07RUFDRSxvQ0FBQTtBRG9hUjs7QUNsYU07RUFDRSx5QkFBQTtBRHFhUjs7QUNuYU07RUFDRSxvQ0FBQTtBRHNhUjs7QUM3YU07RUFDRSxvQ0FBQTtBRGdiUjs7QUM5YU07RUFDRSx5QkFBQTtBRGliUjs7QUMvYU07RUFDRSxvQ0FBQTtBRGtiUjs7QUN6Yk07RUFDRSxvQ0FBQTtBRDRiUjs7QUMxYk07RUFDRSx5QkFBQTtBRDZiUjs7QUMzYk07RUFDRSxvQ0FBQTtBRDhiUjs7QUNyY007RUFDRSxvQ0FBQTtBRHdjUjs7QUN0Y007RUFDRSx5QkFBQTtBRHljUjs7QUN2Y007RUFDRSxvQ0FBQTtBRDBjUjs7QUNqZE07RUFDRSxvQ0FBQTtBRG9kUjs7QUNsZE07RUFDRSx5QkFBQTtBRHFkUjs7QUNuZE07RUFDRSxvQ0FBQTtBRHNkUjs7QUM3ZE07RUFDRSxvQ0FBQTtBRGdlUjs7QUM5ZE07RUFDRSx5QkFBQTtBRGllUjs7QUMvZE07RUFDRSxvQ0FBQTtBRGtlUjs7QUN6ZU07RUFDRSxvQ0FBQTtBRDRlUjs7QUMxZU07RUFDRSx5QkFBQTtBRDZlUjs7QUMzZU07RUFDRSxvQ0FBQTtBRDhlUjs7QUMvZk07RUFDRSxvQ0FBQTtBRGtnQlI7O0FDaGdCTTtFQUNFLHlCQUFBO0FEbWdCUjs7QUNqZ0JNO0VBQ0Usb0NBQUE7QURvZ0JSOztBQ2pnQk07RUFDRSxvQ0FBQTtBRG9nQlI7O0FDbGdCTTtFQUNFLHlCQUFBO0FEcWdCUjs7QUNuZ0JNO0VBQ0Usb0NBQUE7QURzZ0JSOztBQzdnQk07RUFDRSxvQ0FBQTtBRGdoQlI7O0FDOWdCTTtFQUNFLHlCQUFBO0FEaWhCUjs7QUMvZ0JNO0VBQ0Usb0NBQUE7QURraEJSOztBQ3poQk07RUFDRSxvQ0FBQTtBRDRoQlI7O0FDMWhCTTtFQUNFLHlCQUFBO0FENmhCUjs7QUMzaEJNO0VBQ0Usb0NBQUE7QUQ4aEJSOztBQ3JpQk07RUFDRSxvQ0FBQTtBRHdpQlI7O0FDdGlCTTtFQUNFLHlCQUFBO0FEeWlCUjs7QUN2aUJNO0VBQ0Usb0NBQUE7QUQwaUJSOztBQ2pqQk07RUFDRSxvQ0FBQTtBRG9qQlI7O0FDbGpCTTtFQUNFLHlCQUFBO0FEcWpCUjs7QUNuakJNO0VBQ0Usb0NBQUE7QURzakJSOztBQzdqQk07RUFDRSxvQ0FBQTtBRGdrQlI7O0FDOWpCTTtFQUNFLHlCQUFBO0FEaWtCUjs7QUMvakJNO0VBQ0Usb0NBQUE7QURra0JSOztBQ3prQk07RUFDRSxvQ0FBQTtBRDRrQlI7O0FDMWtCTTtFQUNFLHlCQUFBO0FENmtCUjs7QUMza0JNO0VBQ0Usb0NBQUE7QUQ4a0JSOztBQ3JsQk07RUFDRSxvQ0FBQTtBRHdsQlI7O0FDdGxCTTtFQUNFLHlCQUFBO0FEeWxCUjs7QUN2bEJNO0VBQ0Usb0NBQUE7QUQwbEJSOztBQ2ptQk07RUFDRSxvQ0FBQTtBRG9tQlI7O0FDbG1CTTtFQUNFLHlCQUFBO0FEcW1CUjs7QUNubUJNO0VBQ0Usb0NBQUE7QURzbUJSOztBQzdtQk07RUFDRSxvQ0FBQTtBRGduQlI7O0FDOW1CTTtFQUNFLHlCQUFBO0FEaW5CUjs7QUMvbUJNO0VBQ0Usb0NBQUE7QURrbkJSOztBQ3puQk07RUFDRSxvQ0FBQTtBRDRuQlI7O0FDMW5CTTtFQUNFLHlCQUFBO0FENm5CUjs7QUMzbkJNO0VBQ0Usb0NBQUE7QUQ4bkJSOztBQ3JvQk07RUFDRSxvQ0FBQTtBRHdvQlI7O0FDdG9CTTtFQUNFLHlCQUFBO0FEeW9CUjs7QUN2b0JNO0VBQ0Usb0NBQUE7QUQwb0JSOztBQ2pwQk07RUFDRSxvQ0FBQTtBRG9wQlI7O0FDbHBCTTtFQUNFLHlCQUFBO0FEcXBCUjs7QUNucEJNO0VBQ0Usb0NBQUE7QURzcEJSOztBQ3ZxQk07RUFDRSxvQ0FBQTtBRDBxQlI7O0FDeHFCTTtFQUNFLHlCQUFBO0FEMnFCUjs7QUN6cUJNO0VBQ0Usb0NBQUE7QUQ0cUJSOztBQ3pxQk07RUFDRSxvQ0FBQTtBRDRxQlI7O0FDMXFCTTtFQUNFLHlCQUFBO0FENnFCUjs7QUMzcUJNO0VBQ0Usb0NBQUE7QUQ4cUJSOztBQ3JyQk07RUFDRSxvQ0FBQTtBRHdyQlI7O0FDdHJCTTtFQUNFLHlCQUFBO0FEeXJCUjs7QUN2ckJNO0VBQ0Usb0NBQUE7QUQwckJSOztBQ2pzQk07RUFDRSxvQ0FBQTtBRG9zQlI7O0FDbHNCTTtFQUNFLHlCQUFBO0FEcXNCUjs7QUNuc0JNO0VBQ0Usb0NBQUE7QURzc0JSOztBQzdzQk07RUFDRSxvQ0FBQTtBRGd0QlI7O0FDOXNCTTtFQUNFLHlCQUFBO0FEaXRCUjs7QUMvc0JNO0VBQ0Usb0NBQUE7QURrdEJSOztBQ3p0Qk07RUFDRSxvQ0FBQTtBRDR0QlI7O0FDMXRCTTtFQUNFLHlCQUFBO0FENnRCUjs7QUMzdEJNO0VBQ0Usb0NBQUE7QUQ4dEJSOztBQ3J1Qk07RUFDRSxvQ0FBQTtBRHd1QlI7O0FDdHVCTTtFQUNFLHlCQUFBO0FEeXVCUjs7QUN2dUJNO0VBQ0Usb0NBQUE7QUQwdUJSOztBQ2p2Qk07RUFDRSxvQ0FBQTtBRG92QlI7O0FDbHZCTTtFQUNFLHlCQUFBO0FEcXZCUjs7QUNudkJNO0VBQ0Usb0NBQUE7QURzdkJSOztBQzd2Qk07RUFDRSxvQ0FBQTtBRGd3QlI7O0FDOXZCTTtFQUNFLHlCQUFBO0FEaXdCUjs7QUMvdkJNO0VBQ0Usb0NBQUE7QURrd0JSOztBQ3p3Qk07RUFDRSxvQ0FBQTtBRDR3QlI7O0FDMXdCTTtFQUNFLHlCQUFBO0FENndCUjs7QUMzd0JNO0VBQ0Usb0NBQUE7QUQ4d0JSOztBQ3J4Qk07RUFDRSxvQ0FBQTtBRHd4QlI7O0FDdHhCTTtFQUNFLHlCQUFBO0FEeXhCUjs7QUN2eEJNO0VBQ0Usb0NBQUE7QUQweEJSOztBQ2p5Qk07RUFDRSxvQ0FBQTtBRG95QlI7O0FDbHlCTTtFQUNFLHlCQUFBO0FEcXlCUjs7QUNueUJNO0VBQ0Usb0NBQUE7QURzeUJSOztBQzd5Qk07RUFDRSxvQ0FBQTtBRGd6QlI7O0FDOXlCTTtFQUNFLHlCQUFBO0FEaXpCUjs7QUMveUJNO0VBQ0Usb0NBQUE7QURrekJSOztBQ3p6Qk07RUFDRSxvQ0FBQTtBRDR6QlI7O0FDMXpCTTtFQUNFLHlCQUFBO0FENnpCUjs7QUMzekJNO0VBQ0Usb0NBQUE7QUQ4ekJSOztBQy8wQk07RUFDRSxvQ0FBQTtBRGsxQlI7O0FDaDFCTTtFQUNFLHlCQUFBO0FEbTFCUjs7QUNqMUJNO0VBQ0Usb0NBQUE7QURvMUJSOztBQ2oxQk07RUFDRSxvQ0FBQTtBRG8xQlI7O0FDbDFCTTtFQUNFLHlCQUFBO0FEcTFCUjs7QUNuMUJNO0VBQ0Usb0NBQUE7QURzMUJSOztBQzcxQk07RUFDRSxvQ0FBQTtBRGcyQlI7O0FDOTFCTTtFQUNFLHlCQUFBO0FEaTJCUjs7QUMvMUJNO0VBQ0Usb0NBQUE7QURrMkJSOztBQ3oyQk07RUFDRSxvQ0FBQTtBRDQyQlI7O0FDMTJCTTtFQUNFLHlCQUFBO0FENjJCUjs7QUMzMkJNO0VBQ0Usb0NBQUE7QUQ4MkJSOztBQ3IzQk07RUFDRSxvQ0FBQTtBRHczQlI7O0FDdDNCTTtFQUNFLHlCQUFBO0FEeTNCUjs7QUN2M0JNO0VBQ0Usb0NBQUE7QUQwM0JSOztBQ2o0Qk07RUFDRSxvQ0FBQTtBRG80QlI7O0FDbDRCTTtFQUNFLHlCQUFBO0FEcTRCUjs7QUNuNEJNO0VBQ0Usb0NBQUE7QURzNEJSOztBQzc0Qk07RUFDRSxvQ0FBQTtBRGc1QlI7O0FDOTRCTTtFQUNFLHlCQUFBO0FEaTVCUjs7QUMvNEJNO0VBQ0Usb0NBQUE7QURrNUJSOztBQ3o1Qk07RUFDRSxvQ0FBQTtBRDQ1QlI7O0FDMTVCTTtFQUNFLHlCQUFBO0FENjVCUjs7QUMzNUJNO0VBQ0Usb0NBQUE7QUQ4NUJSOztBQ3I2Qk07RUFDRSxvQ0FBQTtBRHc2QlI7O0FDdDZCTTtFQUNFLHlCQUFBO0FEeTZCUjs7QUN2NkJNO0VBQ0Usb0NBQUE7QUQwNkJSOztBQ2o3Qk07RUFDRSxvQ0FBQTtBRG83QlI7O0FDbDdCTTtFQUNFLHlCQUFBO0FEcTdCUjs7QUNuN0JNO0VBQ0Usb0NBQUE7QURzN0JSOztBQzc3Qk07RUFDRSxvQ0FBQTtBRGc4QlI7O0FDOTdCTTtFQUNFLHlCQUFBO0FEaThCUjs7QUMvN0JNO0VBQ0Usb0NBQUE7QURrOEJSOztBQ3o4Qk07RUFDRSxvQ0FBQTtBRDQ4QlI7O0FDMThCTTtFQUNFLHlCQUFBO0FENjhCUjs7QUMzOEJNO0VBQ0Usb0NBQUE7QUQ4OEJSOztBQ3I5Qk07RUFDRSxvQ0FBQTtBRHc5QlI7O0FDdDlCTTtFQUNFLHlCQUFBO0FEeTlCUjs7QUN2OUJNO0VBQ0Usb0NBQUE7QUQwOUJSOztBQ2orQk07RUFDRSxvQ0FBQTtBRG8rQlI7O0FDbCtCTTtFQUNFLHlCQUFBO0FEcStCUjs7QUNuK0JNO0VBQ0Usb0NBQUE7QURzK0JSOztBQ3YvQk07RUFDRSxvQ0FBQTtBRDAvQlI7O0FDeC9CTTtFQUNFLHlCQUFBO0FEMi9CUjs7QUN6L0JNO0VBQ0Usb0NBQUE7QUQ0L0JSOztBQ3ovQk07RUFDRSxvQ0FBQTtBRDQvQlI7O0FDMS9CTTtFQUNFLHlCQUFBO0FENi9CUjs7QUMzL0JNO0VBQ0Usb0NBQUE7QUQ4L0JSOztBQ3JnQ007RUFDRSxvQ0FBQTtBRHdnQ1I7O0FDdGdDTTtFQUNFLHlCQUFBO0FEeWdDUjs7QUN2Z0NNO0VBQ0Usb0NBQUE7QUQwZ0NSOztBQ2poQ007RUFDRSxvQ0FBQTtBRG9oQ1I7O0FDbGhDTTtFQUNFLHlCQUFBO0FEcWhDUjs7QUNuaENNO0VBQ0Usb0NBQUE7QURzaENSOztBQzdoQ007RUFDRSxvQ0FBQTtBRGdpQ1I7O0FDOWhDTTtFQUNFLHlCQUFBO0FEaWlDUjs7QUMvaENNO0VBQ0Usb0NBQUE7QURraUNSOztBQ3ppQ007RUFDRSxvQ0FBQTtBRDRpQ1I7O0FDMWlDTTtFQUNFLHlCQUFBO0FENmlDUjs7QUMzaUNNO0VBQ0Usb0NBQUE7QUQ4aUNSOztBQ3JqQ007RUFDRSxvQ0FBQTtBRHdqQ1I7O0FDdGpDTTtFQUNFLHlCQUFBO0FEeWpDUjs7QUN2akNNO0VBQ0Usb0NBQUE7QUQwakNSOztBQ2prQ007RUFDRSxvQ0FBQTtBRG9rQ1I7O0FDbGtDTTtFQUNFLHlCQUFBO0FEcWtDUjs7QUNua0NNO0VBQ0Usb0NBQUE7QURza0NSOztBQzdrQ007RUFDRSxvQ0FBQTtBRGdsQ1I7O0FDOWtDTTtFQUNFLHlCQUFBO0FEaWxDUjs7QUMva0NNO0VBQ0Usb0NBQUE7QURrbENSOztBQ3psQ007RUFDRSxvQ0FBQTtBRDRsQ1I7O0FDMWxDTTtFQUNFLHlCQUFBO0FENmxDUjs7QUMzbENNO0VBQ0Usb0NBQUE7QUQ4bENSOztBQ3JtQ007RUFDRSxvQ0FBQTtBRHdtQ1I7O0FDdG1DTTtFQUNFLHlCQUFBO0FEeW1DUjs7QUN2bUNNO0VBQ0Usb0NBQUE7QUQwbUNSOztBQ2puQ007RUFDRSxvQ0FBQTtBRG9uQ1I7O0FDbG5DTTtFQUNFLHlCQUFBO0FEcW5DUjs7QUNubkNNO0VBQ0Usb0NBQUE7QURzbkNSOztBQzduQ007RUFDRSxvQ0FBQTtBRGdvQ1I7O0FDOW5DTTtFQUNFLHlCQUFBO0FEaW9DUjs7QUMvbkNNO0VBQ0Usb0NBQUE7QURrb0NSOztBQ3pvQ007RUFDRSxvQ0FBQTtBRDRvQ1I7O0FDMW9DTTtFQUNFLHlCQUFBO0FENm9DUjs7QUMzb0NNO0VBQ0Usb0NBQUE7QUQ4b0NSOztBQy9wQ007RUFDRSxvQ0FBQTtBRGtxQ1I7O0FDaHFDTTtFQUNFLHlCQUFBO0FEbXFDUjs7QUNqcUNNO0VBQ0Usb0NBQUE7QURvcUNSOztBQ2pxQ007RUFDRSxvQ0FBQTtBRG9xQ1I7O0FDbHFDTTtFQUNFLHlCQUFBO0FEcXFDUjs7QUNucUNNO0VBQ0Usb0NBQUE7QURzcUNSOztBQzdxQ007RUFDRSxvQ0FBQTtBRGdyQ1I7O0FDOXFDTTtFQUNFLHlCQUFBO0FEaXJDUjs7QUMvcUNNO0VBQ0Usb0NBQUE7QURrckNSOztBQ3pyQ007RUFDRSxvQ0FBQTtBRDRyQ1I7O0FDMXJDTTtFQUNFLHlCQUFBO0FENnJDUjs7QUMzckNNO0VBQ0Usb0NBQUE7QUQ4ckNSOztBQ3JzQ007RUFDRSxvQ0FBQTtBRHdzQ1I7O0FDdHNDTTtFQUNFLHlCQUFBO0FEeXNDUjs7QUN2c0NNO0VBQ0Usb0NBQUE7QUQwc0NSOztBQ2p0Q007RUFDRSxvQ0FBQTtBRG90Q1I7O0FDbHRDTTtFQUNFLHlCQUFBO0FEcXRDUjs7QUNudENNO0VBQ0Usb0NBQUE7QURzdENSOztBQzd0Q007RUFDRSxvQ0FBQTtBRGd1Q1I7O0FDOXRDTTtFQUNFLHlCQUFBO0FEaXVDUjs7QUMvdENNO0VBQ0Usb0NBQUE7QURrdUNSOztBQ3p1Q007RUFDRSxvQ0FBQTtBRDR1Q1I7O0FDMXVDTTtFQUNFLHlCQUFBO0FENnVDUjs7QUMzdUNNO0VBQ0Usb0NBQUE7QUQ4dUNSOztBQ3J2Q007RUFDRSxvQ0FBQTtBRHd2Q1I7O0FDdHZDTTtFQUNFLHlCQUFBO0FEeXZDUjs7QUN2dkNNO0VBQ0Usb0NBQUE7QUQwdkNSOztBQ2p3Q007RUFDRSxvQ0FBQTtBRG93Q1I7O0FDbHdDTTtFQUNFLHlCQUFBO0FEcXdDUjs7QUNud0NNO0VBQ0Usb0NBQUE7QURzd0NSOztBQzd3Q007RUFDRSxvQ0FBQTtBRGd4Q1I7O0FDOXdDTTtFQUNFLHlCQUFBO0FEaXhDUjs7QUMvd0NNO0VBQ0Usb0NBQUE7QURreENSOztBQ3p4Q007RUFDRSxvQ0FBQTtBRDR4Q1I7O0FDMXhDTTtFQUNFLHlCQUFBO0FENnhDUjs7QUMzeENNO0VBQ0Usb0NBQUE7QUQ4eENSOztBQ3J5Q007RUFDRSxvQ0FBQTtBRHd5Q1I7O0FDdHlDTTtFQUNFLHlCQUFBO0FEeXlDUjs7QUN2eUNNO0VBQ0Usb0NBQUE7QUQweUNSOztBQ2p6Q007RUFDRSxvQ0FBQTtBRG96Q1I7O0FDbHpDTTtFQUNFLHlCQUFBO0FEcXpDUjs7QUNuekNNO0VBQ0Usb0NBQUE7QURzekNSOztBQ3YwQ007RUFDRSxvQ0FBQTtBRDAwQ1I7O0FDeDBDTTtFQUNFLHlCQUFBO0FEMjBDUjs7QUN6MENNO0VBQ0Usb0NBQUE7QUQ0MENSOztBQ3owQ007RUFDRSxvQ0FBQTtBRDQwQ1I7O0FDMTBDTTtFQUNFLHlCQUFBO0FENjBDUjs7QUMzMENNO0VBQ0Usb0NBQUE7QUQ4MENSOztBQ3IxQ007RUFDRSxvQ0FBQTtBRHcxQ1I7O0FDdDFDTTtFQUNFLHlCQUFBO0FEeTFDUjs7QUN2MUNNO0VBQ0Usb0NBQUE7QUQwMUNSOztBQ2oyQ007RUFDRSxvQ0FBQTtBRG8yQ1I7O0FDbDJDTTtFQUNFLHlCQUFBO0FEcTJDUjs7QUNuMkNNO0VBQ0Usb0NBQUE7QURzMkNSOztBQzcyQ007RUFDRSxvQ0FBQTtBRGczQ1I7O0FDOTJDTTtFQUNFLHlCQUFBO0FEaTNDUjs7QUMvMkNNO0VBQ0Usb0NBQUE7QURrM0NSOztBQ3ozQ007RUFDRSxvQ0FBQTtBRDQzQ1I7O0FDMTNDTTtFQUNFLHlCQUFBO0FENjNDUjs7QUMzM0NNO0VBQ0Usb0NBQUE7QUQ4M0NSOztBQ3I0Q007RUFDRSxvQ0FBQTtBRHc0Q1I7O0FDdDRDTTtFQUNFLHlCQUFBO0FEeTRDUjs7QUN2NENNO0VBQ0Usb0NBQUE7QUQwNENSOztBQ2o1Q007RUFDRSxvQ0FBQTtBRG81Q1I7O0FDbDVDTTtFQUNFLHlCQUFBO0FEcTVDUjs7QUNuNUNNO0VBQ0Usb0NBQUE7QURzNUNSOztBQzc1Q007RUFDRSxvQ0FBQTtBRGc2Q1I7O0FDOTVDTTtFQUNFLHlCQUFBO0FEaTZDUjs7QUMvNUNNO0VBQ0Usb0NBQUE7QURrNkNSOztBQ3o2Q007RUFDRSxvQ0FBQTtBRDQ2Q1I7O0FDMTZDTTtFQUNFLHlCQUFBO0FENjZDUjs7QUMzNkNNO0VBQ0Usb0NBQUE7QUQ4NkNSOztBQ3I3Q007RUFDRSxvQ0FBQTtBRHc3Q1I7O0FDdDdDTTtFQUNFLHlCQUFBO0FEeTdDUjs7QUN2N0NNO0VBQ0Usb0NBQUE7QUQwN0NSOztBQ2o4Q007RUFDRSxvQ0FBQTtBRG84Q1I7O0FDbDhDTTtFQUNFLHlCQUFBO0FEcThDUjs7QUNuOENNO0VBQ0Usb0NBQUE7QURzOENSOztBQzc4Q007RUFDRSxvQ0FBQTtBRGc5Q1I7O0FDOThDTTtFQUNFLHlCQUFBO0FEaTlDUjs7QUMvOENNO0VBQ0Usb0NBQUE7QURrOUNSOztBQ3o5Q007RUFDRSxvQ0FBQTtBRDQ5Q1I7O0FDMTlDTTtFQUNFLHlCQUFBO0FENjlDUjs7QUMzOUNNO0VBQ0Usb0NBQUE7QUQ4OUNSOztBQy8rQ007RUFDRSxvQ0FBQTtBRGsvQ1I7O0FDaC9DTTtFQUNFLHlCQUFBO0FEbS9DUjs7QUNqL0NNO0VBQ0Usb0NBQUE7QURvL0NSOztBQ2ovQ007RUFDRSxvQ0FBQTtBRG8vQ1I7O0FDbC9DTTtFQUNFLHlCQUFBO0FEcS9DUjs7QUNuL0NNO0VBQ0Usb0NBQUE7QURzL0NSOztBQzcvQ007RUFDRSxvQ0FBQTtBRGdnRFI7O0FDOS9DTTtFQUNFLHlCQUFBO0FEaWdEUjs7QUMvL0NNO0VBQ0Usb0NBQUE7QURrZ0RSOztBQ3pnRE07RUFDRSxvQ0FBQTtBRDRnRFI7O0FDMWdETTtFQUNFLHlCQUFBO0FENmdEUjs7QUMzZ0RNO0VBQ0Usb0NBQUE7QUQ4Z0RSOztBQ3JoRE07RUFDRSxvQ0FBQTtBRHdoRFI7O0FDdGhETTtFQUNFLHlCQUFBO0FEeWhEUjs7QUN2aERNO0VBQ0Usb0NBQUE7QUQwaERSOztBQ2ppRE07RUFDRSxvQ0FBQTtBRG9pRFI7O0FDbGlETTtFQUNFLHlCQUFBO0FEcWlEUjs7QUNuaURNO0VBQ0Usb0NBQUE7QURzaURSOztBQzdpRE07RUFDRSxvQ0FBQTtBRGdqRFI7O0FDOWlETTtFQUNFLHlCQUFBO0FEaWpEUjs7QUMvaURNO0VBQ0Usb0NBQUE7QURrakRSOztBQ3pqRE07RUFDRSxvQ0FBQTtBRDRqRFI7O0FDMWpETTtFQUNFLHlCQUFBO0FENmpEUjs7QUMzakRNO0VBQ0Usb0NBQUE7QUQ4akRSOztBQ3JrRE07RUFDRSxvQ0FBQTtBRHdrRFI7O0FDdGtETTtFQUNFLHlCQUFBO0FEeWtEUjs7QUN2a0RNO0VBQ0Usb0NBQUE7QUQwa0RSOztBQ2psRE07RUFDRSxvQ0FBQTtBRG9sRFI7O0FDbGxETTtFQUNFLHlCQUFBO0FEcWxEUjs7QUNubERNO0VBQ0Usb0NBQUE7QURzbERSOztBQzdsRE07RUFDRSxvQ0FBQTtBRGdtRFI7O0FDOWxETTtFQUNFLHlCQUFBO0FEaW1EUjs7QUMvbERNO0VBQ0Usb0NBQUE7QURrbURSOztBQ3ptRE07RUFDRSxvQ0FBQTtBRDRtRFI7O0FDMW1ETTtFQUNFLHlCQUFBO0FENm1EUjs7QUMzbURNO0VBQ0Usb0NBQUE7QUQ4bURSOztBQ3JuRE07RUFDRSxvQ0FBQTtBRHduRFI7O0FDdG5ETTtFQUNFLHlCQUFBO0FEeW5EUjs7QUN2bkRNO0VBQ0Usb0NBQUE7QUQwbkRSOztBQ2pvRE07RUFDRSxvQ0FBQTtBRG9vRFI7O0FDbG9ETTtFQUNFLHlCQUFBO0FEcW9EUjs7QUNub0RNO0VBQ0Usb0NBQUE7QURzb0RSOztBQ3ZwRE07RUFDRSxvQ0FBQTtBRDBwRFI7O0FDeHBETTtFQUNFLHlCQUFBO0FEMnBEUjs7QUN6cERNO0VBQ0Usb0NBQUE7QUQ0cERSOztBQ3pwRE07RUFDRSxvQ0FBQTtBRDRwRFI7O0FDMXBETTtFQUNFLHlCQUFBO0FENnBEUjs7QUMzcERNO0VBQ0Usb0NBQUE7QUQ4cERSOztBQ3JxRE07RUFDRSxvQ0FBQTtBRHdxRFI7O0FDdHFETTtFQUNFLHlCQUFBO0FEeXFEUjs7QUN2cURNO0VBQ0Usb0NBQUE7QUQwcURSOztBQ2pyRE07RUFDRSxvQ0FBQTtBRG9yRFI7O0FDbHJETTtFQUNFLHlCQUFBO0FEcXJEUjs7QUNuckRNO0VBQ0Usb0NBQUE7QURzckRSOztBQzdyRE07RUFDRSxvQ0FBQTtBRGdzRFI7O0FDOXJETTtFQUNFLHlCQUFBO0FEaXNEUjs7QUMvckRNO0VBQ0Usb0NBQUE7QURrc0RSOztBQ3pzRE07RUFDRSxvQ0FBQTtBRDRzRFI7O0FDMXNETTtFQUNFLHlCQUFBO0FENnNEUjs7QUMzc0RNO0VBQ0Usb0NBQUE7QUQ4c0RSOztBQ3J0RE07RUFDRSxvQ0FBQTtBRHd0RFI7O0FDdHRETTtFQUNFLHlCQUFBO0FEeXREUjs7QUN2dERNO0VBQ0Usb0NBQUE7QUQwdERSOztBQ2p1RE07RUFDRSxvQ0FBQTtBRG91RFI7O0FDbHVETTtFQUNFLHlCQUFBO0FEcXVEUjs7QUNudURNO0VBQ0Usb0NBQUE7QURzdURSOztBQzd1RE07RUFDRSxvQ0FBQTtBRGd2RFI7O0FDOXVETTtFQUNFLHlCQUFBO0FEaXZEUjs7QUMvdURNO0VBQ0Usb0NBQUE7QURrdkRSOztBQ3p2RE07RUFDRSxvQ0FBQTtBRDR2RFI7O0FDMXZETTtFQUNFLHlCQUFBO0FENnZEUjs7QUMzdkRNO0VBQ0Usb0NBQUE7QUQ4dkRSOztBQ3J3RE07RUFDRSxvQ0FBQTtBRHd3RFI7O0FDdHdETTtFQUNFLHlCQUFBO0FEeXdEUjs7QUN2d0RNO0VBQ0Usb0NBQUE7QUQwd0RSOztBQ2p4RE07RUFDRSxvQ0FBQTtBRG94RFI7O0FDbHhETTtFQUNFLHlCQUFBO0FEcXhEUjs7QUNueERNO0VBQ0Usb0NBQUE7QURzeERSOztBQzd4RE07RUFDRSxvQ0FBQTtBRGd5RFI7O0FDOXhETTtFQUNFLHlCQUFBO0FEaXlEUjs7QUMveERNO0VBQ0Usb0NBQUE7QURreURSOztBQ3p5RE07RUFDRSxvQ0FBQTtBRDR5RFI7O0FDMXlETTtFQUNFLHlCQUFBO0FENnlEUjs7QUMzeURNO0VBQ0Usb0NBQUE7QUQ4eURSOztBQy96RE07RUFDRSxvQ0FBQTtBRGswRFI7O0FDaDBETTtFQUNFLHlCQUFBO0FEbTBEUjs7QUNqMERNO0VBQ0Usb0NBQUE7QURvMERSOztBQ2owRE07RUFDRSxvQ0FBQTtBRG8wRFI7O0FDbDBETTtFQUNFLHlCQUFBO0FEcTBEUjs7QUNuMERNO0VBQ0Usb0NBQUE7QURzMERSOztBQzcwRE07RUFDRSxvQ0FBQTtBRGcxRFI7O0FDOTBETTtFQUNFLHlCQUFBO0FEaTFEUjs7QUMvMERNO0VBQ0Usb0NBQUE7QURrMURSOztBQ3oxRE07RUFDRSxvQ0FBQTtBRDQxRFI7O0FDMTFETTtFQUNFLHlCQUFBO0FENjFEUjs7QUMzMURNO0VBQ0Usb0NBQUE7QUQ4MURSOztBQ3IyRE07RUFDRSxvQ0FBQTtBRHcyRFI7O0FDdDJETTtFQUNFLHlCQUFBO0FEeTJEUjs7QUN2MkRNO0VBQ0Usb0NBQUE7QUQwMkRSOztBQ2ozRE07RUFDRSxvQ0FBQTtBRG8zRFI7O0FDbDNETTtFQUNFLHlCQUFBO0FEcTNEUjs7QUNuM0RNO0VBQ0Usb0NBQUE7QURzM0RSOztBQzczRE07RUFDRSxvQ0FBQTtBRGc0RFI7O0FDOTNETTtFQUNFLHlCQUFBO0FEaTREUjs7QUMvM0RNO0VBQ0Usb0NBQUE7QURrNERSOztBQ3o0RE07RUFDRSxvQ0FBQTtBRDQ0RFI7O0FDMTRETTtFQUNFLHlCQUFBO0FENjREUjs7QUMzNERNO0VBQ0Usb0NBQUE7QUQ4NERSOztBQ3I1RE07RUFDRSxvQ0FBQTtBRHc1RFI7O0FDdDVETTtFQUNFLHlCQUFBO0FEeTVEUjs7QUN2NURNO0VBQ0Usb0NBQUE7QUQwNURSOztBQ2o2RE07RUFDRSxvQ0FBQTtBRG82RFI7O0FDbDZETTtFQUNFLHlCQUFBO0FEcTZEUjs7QUNuNkRNO0VBQ0Usb0NBQUE7QURzNkRSOztBQzc2RE07RUFDRSxvQ0FBQTtBRGc3RFI7O0FDOTZETTtFQUNFLHlCQUFBO0FEaTdEUjs7QUMvNkRNO0VBQ0Usb0NBQUE7QURrN0RSOztBQ3o3RE07RUFDRSxvQ0FBQTtBRDQ3RFI7O0FDMTdETTtFQUNFLHlCQUFBO0FENjdEUjs7QUMzN0RNO0VBQ0Usb0NBQUE7QUQ4N0RSOztBQ3I4RE07RUFDRSxvQ0FBQTtBRHc4RFI7O0FDdDhETTtFQUNFLHlCQUFBO0FEeThEUjs7QUN2OERNO0VBQ0Usb0NBQUE7QUQwOERSOztBQ2o5RE07RUFDRSxvQ0FBQTtBRG85RFI7O0FDbDlETTtFQUNFLHlCQUFBO0FEcTlEUjs7QUNuOURNO0VBQ0Usb0NBQUE7QURzOURSOztBQ3YrRE07RUFDRSxvQ0FBQTtBRDArRFI7O0FDeCtETTtFQUNFLHlCQUFBO0FEMitEUjs7QUN6K0RNO0VBQ0Usb0NBQUE7QUQ0K0RSOztBQ3orRE07RUFDRSxvQ0FBQTtBRDQrRFI7O0FDMStETTtFQUNFLHlCQUFBO0FENitEUjs7QUMzK0RNO0VBQ0Usb0NBQUE7QUQ4K0RSOztBQ3IvRE07RUFDRSxvQ0FBQTtBRHcvRFI7O0FDdC9ETTtFQUNFLHlCQUFBO0FEeS9EUjs7QUN2L0RNO0VBQ0Usb0NBQUE7QUQwL0RSOztBQ2pnRU07RUFDRSxvQ0FBQTtBRG9nRVI7O0FDbGdFTTtFQUNFLHlCQUFBO0FEcWdFUjs7QUNuZ0VNO0VBQ0Usb0NBQUE7QURzZ0VSOztBQzdnRU07RUFDRSxvQ0FBQTtBRGdoRVI7O0FDOWdFTTtFQUNFLHlCQUFBO0FEaWhFUjs7QUMvZ0VNO0VBQ0Usb0NBQUE7QURraEVSOztBQ3poRU07RUFDRSxvQ0FBQTtBRDRoRVI7O0FDMWhFTTtFQUNFLHlCQUFBO0FENmhFUjs7QUMzaEVNO0VBQ0Usb0NBQUE7QUQ4aEVSOztBQ3JpRU07RUFDRSxvQ0FBQTtBRHdpRVI7O0FDdGlFTTtFQUNFLHlCQUFBO0FEeWlFUjs7QUN2aUVNO0VBQ0Usb0NBQUE7QUQwaUVSOztBQ2pqRU07RUFDRSxvQ0FBQTtBRG9qRVI7O0FDbGpFTTtFQUNFLHlCQUFBO0FEcWpFUjs7QUNuakVNO0VBQ0Usb0NBQUE7QURzakVSOztBQzdqRU07RUFDRSxvQ0FBQTtBRGdrRVI7O0FDOWpFTTtFQUNFLHlCQUFBO0FEaWtFUjs7QUMvakVNO0VBQ0Usb0NBQUE7QURra0VSOztBQ3prRU07RUFDRSxvQ0FBQTtBRDRrRVI7O0FDMWtFTTtFQUNFLHlCQUFBO0FENmtFUjs7QUMza0VNO0VBQ0Usb0NBQUE7QUQ4a0VSOztBQ3JsRU07RUFDRSxvQ0FBQTtBRHdsRVI7O0FDdGxFTTtFQUNFLHlCQUFBO0FEeWxFUjs7QUN2bEVNO0VBQ0Usb0NBQUE7QUQwbEVSOztBQ2ptRU07RUFDRSxvQ0FBQTtBRG9tRVI7O0FDbG1FTTtFQUNFLHlCQUFBO0FEcW1FUjs7QUNubUVNO0VBQ0Usb0NBQUE7QURzbUVSOztBQzdtRU07RUFDRSxvQ0FBQTtBRGduRVI7O0FDOW1FTTtFQUNFLHlCQUFBO0FEaW5FUjs7QUMvbUVNO0VBQ0Usb0NBQUE7QURrbkVSOztBQ3puRU07RUFDRSxvQ0FBQTtBRDRuRVI7O0FDMW5FTTtFQUNFLHlCQUFBO0FENm5FUjs7QUMzbkVNO0VBQ0Usb0NBQUE7QUQ4bkVSOztBQy9vRU07RUFDRSxvQ0FBQTtBRGtwRVI7O0FDaHBFTTtFQUNFLHlCQUFBO0FEbXBFUjs7QUNqcEVNO0VBQ0Usb0NBQUE7QURvcEVSOztBQ2pwRU07RUFDRSxvQ0FBQTtBRG9wRVI7O0FDbHBFTTtFQUNFLHlCQUFBO0FEcXBFUjs7QUNucEVNO0VBQ0Usb0NBQUE7QURzcEVSOztBQzdwRU07RUFDRSxvQ0FBQTtBRGdxRVI7O0FDOXBFTTtFQUNFLHlCQUFBO0FEaXFFUjs7QUMvcEVNO0VBQ0Usb0NBQUE7QURrcUVSOztBQ3pxRU07RUFDRSxvQ0FBQTtBRDRxRVI7O0FDMXFFTTtFQUNFLHlCQUFBO0FENnFFUjs7QUMzcUVNO0VBQ0Usb0NBQUE7QUQ4cUVSOztBQ3JyRU07RUFDRSxvQ0FBQTtBRHdyRVI7O0FDdHJFTTtFQUNFLHlCQUFBO0FEeXJFUjs7QUN2ckVNO0VBQ0Usb0NBQUE7QUQwckVSOztBQ2pzRU07RUFDRSxvQ0FBQTtBRG9zRVI7O0FDbHNFTTtFQUNFLHlCQUFBO0FEcXNFUjs7QUNuc0VNO0VBQ0Usb0NBQUE7QURzc0VSOztBQzdzRU07RUFDRSxvQ0FBQTtBRGd0RVI7O0FDOXNFTTtFQUNFLHlCQUFBO0FEaXRFUjs7QUMvc0VNO0VBQ0Usb0NBQUE7QURrdEVSOztBQ3p0RU07RUFDRSxvQ0FBQTtBRDR0RVI7O0FDMXRFTTtFQUNFLHlCQUFBO0FENnRFUjs7QUMzdEVNO0VBQ0Usb0NBQUE7QUQ4dEVSOztBQ3J1RU07RUFDRSxvQ0FBQTtBRHd1RVI7O0FDdHVFTTtFQUNFLHlCQUFBO0FEeXVFUjs7QUN2dUVNO0VBQ0Usb0NBQUE7QUQwdUVSOztBQ2p2RU07RUFDRSxvQ0FBQTtBRG92RVI7O0FDbHZFTTtFQUNFLHlCQUFBO0FEcXZFUjs7QUNudkVNO0VBQ0Usb0NBQUE7QURzdkVSOztBQzd2RU07RUFDRSxvQ0FBQTtBRGd3RVI7O0FDOXZFTTtFQUNFLHlCQUFBO0FEaXdFUjs7QUMvdkVNO0VBQ0Usb0NBQUE7QURrd0VSOztBQ3p3RU07RUFDRSxvQ0FBQTtBRDR3RVI7O0FDMXdFTTtFQUNFLHlCQUFBO0FENndFUjs7QUMzd0VNO0VBQ0Usb0NBQUE7QUQ4d0VSOztBQ3J4RU07RUFDRSxvQ0FBQTtBRHd4RVI7O0FDdHhFTTtFQUNFLHlCQUFBO0FEeXhFUjs7QUN2eEVNO0VBQ0Usb0NBQUE7QUQweEVSOztBQ2p5RU07RUFDRSxvQ0FBQTtBRG95RVI7O0FDbHlFTTtFQUNFLHlCQUFBO0FEcXlFUjs7QUNueUVNO0VBQ0Usb0NBQUE7QURzeUVSOztBQ3Z6RU07RUFDRSxvQ0FBQTtBRDB6RVI7O0FDeHpFTTtFQUNFLHlCQUFBO0FEMnpFUjs7QUN6ekVNO0VBQ0Usb0NBQUE7QUQ0ekVSOztBQ3p6RU07RUFDRSxvQ0FBQTtBRDR6RVI7O0FDMXpFTTtFQUNFLHlCQUFBO0FENnpFUjs7QUMzekVNO0VBQ0Usb0NBQUE7QUQ4ekVSOztBQ3IwRU07RUFDRSxvQ0FBQTtBRHcwRVI7O0FDdDBFTTtFQUNFLHlCQUFBO0FEeTBFUjs7QUN2MEVNO0VBQ0Usb0NBQUE7QUQwMEVSOztBQ2oxRU07RUFDRSxvQ0FBQTtBRG8xRVI7O0FDbDFFTTtFQUNFLHlCQUFBO0FEcTFFUjs7QUNuMUVNO0VBQ0Usb0NBQUE7QURzMUVSOztBQzcxRU07RUFDRSxvQ0FBQTtBRGcyRVI7O0FDOTFFTTtFQUNFLHlCQUFBO0FEaTJFUjs7QUMvMUVNO0VBQ0Usb0NBQUE7QURrMkVSOztBQ3oyRU07RUFDRSxvQ0FBQTtBRDQyRVI7O0FDMTJFTTtFQUNFLHlCQUFBO0FENjJFUjs7QUMzMkVNO0VBQ0Usb0NBQUE7QUQ4MkVSOztBQ3IzRU07RUFDRSxvQ0FBQTtBRHczRVI7O0FDdDNFTTtFQUNFLHlCQUFBO0FEeTNFUjs7QUN2M0VNO0VBQ0Usb0NBQUE7QUQwM0VSOztBQ2o0RU07RUFDRSxvQ0FBQTtBRG80RVI7O0FDbDRFTTtFQUNFLHlCQUFBO0FEcTRFUjs7QUNuNEVNO0VBQ0Usb0NBQUE7QURzNEVSOztBQzc0RU07RUFDRSxvQ0FBQTtBRGc1RVI7O0FDOTRFTTtFQUNFLHlCQUFBO0FEaTVFUjs7QUMvNEVNO0VBQ0Usb0NBQUE7QURrNUVSOztBQ3o1RU07RUFDRSxvQ0FBQTtBRDQ1RVI7O0FDMTVFTTtFQUNFLHlCQUFBO0FENjVFUjs7QUMzNUVNO0VBQ0Usb0NBQUE7QUQ4NUVSOztBQ3I2RU07RUFDRSxvQ0FBQTtBRHc2RVI7O0FDdDZFTTtFQUNFLHlCQUFBO0FEeTZFUjs7QUN2NkVNO0VBQ0Usb0NBQUE7QUQwNkVSOztBQ2o3RU07RUFDRSxvQ0FBQTtBRG83RVI7O0FDbDdFTTtFQUNFLHlCQUFBO0FEcTdFUjs7QUNuN0VNO0VBQ0Usb0NBQUE7QURzN0VSOztBQzc3RU07RUFDRSxvQ0FBQTtBRGc4RVI7O0FDOTdFTTtFQUNFLHlCQUFBO0FEaThFUjs7QUMvN0VNO0VBQ0Usb0NBQUE7QURrOEVSOztBQ3o4RU07RUFDRSxvQ0FBQTtBRDQ4RVI7O0FDMThFTTtFQUNFLHlCQUFBO0FENjhFUjs7QUMzOEVNO0VBQ0Usb0NBQUE7QUQ4OEVSOztBQy85RU07RUFDRSxvQ0FBQTtBRGsrRVI7O0FDaCtFTTtFQUNFLHlCQUFBO0FEbStFUjs7QUNqK0VNO0VBQ0Usb0NBQUE7QURvK0VSOztBQ2orRU07RUFDRSxvQ0FBQTtBRG8rRVI7O0FDbCtFTTtFQUNFLHlCQUFBO0FEcStFUjs7QUNuK0VNO0VBQ0Usb0NBQUE7QURzK0VSOztBQzcrRU07RUFDRSxvQ0FBQTtBRGcvRVI7O0FDOStFTTtFQUNFLHlCQUFBO0FEaS9FUjs7QUMvK0VNO0VBQ0Usb0NBQUE7QURrL0VSOztBQ3ovRU07RUFDRSxvQ0FBQTtBRDQvRVI7O0FDMS9FTTtFQUNFLHlCQUFBO0FENi9FUjs7QUMzL0VNO0VBQ0Usb0NBQUE7QUQ4L0VSOztBQ3JnRk07RUFDRSxvQ0FBQTtBRHdnRlI7O0FDdGdGTTtFQUNFLHlCQUFBO0FEeWdGUjs7QUN2Z0ZNO0VBQ0Usb0NBQUE7QUQwZ0ZSOztBQ2poRk07RUFDRSxvQ0FBQTtBRG9oRlI7O0FDbGhGTTtFQUNFLHlCQUFBO0FEcWhGUjs7QUNuaEZNO0VBQ0Usb0NBQUE7QURzaEZSOztBQzdoRk07RUFDRSxvQ0FBQTtBRGdpRlI7O0FDOWhGTTtFQUNFLHlCQUFBO0FEaWlGUjs7QUMvaEZNO0VBQ0Usb0NBQUE7QURraUZSOztBQ3ppRk07RUFDRSxvQ0FBQTtBRDRpRlI7O0FDMWlGTTtFQUNFLHlCQUFBO0FENmlGUjs7QUMzaUZNO0VBQ0Usb0NBQUE7QUQ4aUZSOztBQ3JqRk07RUFDRSxvQ0FBQTtBRHdqRlI7O0FDdGpGTTtFQUNFLHlCQUFBO0FEeWpGUjs7QUN2akZNO0VBQ0Usb0NBQUE7QUQwakZSOztBQ2prRk07RUFDRSxvQ0FBQTtBRG9rRlI7O0FDbGtGTTtFQUNFLHlCQUFBO0FEcWtGUjs7QUNua0ZNO0VBQ0Usb0NBQUE7QURza0ZSOztBQzdrRk07RUFDRSxvQ0FBQTtBRGdsRlI7O0FDOWtGTTtFQUNFLHlCQUFBO0FEaWxGUjs7QUMva0ZNO0VBQ0Usb0NBQUE7QURrbEZSOztBQ3psRk07RUFDRSxvQ0FBQTtBRDRsRlI7O0FDMWxGTTtFQUNFLHlCQUFBO0FENmxGUjs7QUMzbEZNO0VBQ0Usb0NBQUE7QUQ4bEZSOztBQ3JtRk07RUFDRSxvQ0FBQTtBRHdtRlI7O0FDdG1GTTtFQUNFLHlCQUFBO0FEeW1GUjs7QUN2bUZNO0VBQ0Usb0NBQUE7QUQwbUZSOztBQ2puRk07RUFDRSxvQ0FBQTtBRG9uRlI7O0FDbG5GTTtFQUNFLHlCQUFBO0FEcW5GUjs7QUNubkZNO0VBQ0Usb0NBQUE7QURzbkZSOztBQ3ZvRk07RUFDRSxvQ0FBQTtBRDBvRlI7O0FDeG9GTTtFQUNFLHlCQUFBO0FEMm9GUjs7QUN6b0ZNO0VBQ0Usb0NBQUE7QUQ0b0ZSOztBQ3pvRk07RUFDRSxvQ0FBQTtBRDRvRlI7O0FDMW9GTTtFQUNFLHlCQUFBO0FENm9GUjs7QUMzb0ZNO0VBQ0Usb0NBQUE7QUQ4b0ZSOztBQ3JwRk07RUFDRSxvQ0FBQTtBRHdwRlI7O0FDdHBGTTtFQUNFLHlCQUFBO0FEeXBGUjs7QUN2cEZNO0VBQ0Usb0NBQUE7QUQwcEZSOztBQ2pxRk07RUFDRSxvQ0FBQTtBRG9xRlI7O0FDbHFGTTtFQUNFLHlCQUFBO0FEcXFGUjs7QUNucUZNO0VBQ0Usb0NBQUE7QURzcUZSOztBQzdxRk07RUFDRSxvQ0FBQTtBRGdyRlI7O0FDOXFGTTtFQUNFLHlCQUFBO0FEaXJGUjs7QUMvcUZNO0VBQ0Usb0NBQUE7QURrckZSOztBQ3pyRk07RUFDRSxvQ0FBQTtBRDRyRlI7O0FDMXJGTTtFQUNFLHlCQUFBO0FENnJGUjs7QUMzckZNO0VBQ0Usb0NBQUE7QUQ4ckZSOztBQ3JzRk07RUFDRSxvQ0FBQTtBRHdzRlI7O0FDdHNGTTtFQUNFLHlCQUFBO0FEeXNGUjs7QUN2c0ZNO0VBQ0Usb0NBQUE7QUQwc0ZSOztBQ2p0Rk07RUFDRSxvQ0FBQTtBRG90RlI7O0FDbHRGTTtFQUNFLHlCQUFBO0FEcXRGUjs7QUNudEZNO0VBQ0Usb0NBQUE7QURzdEZSOztBQzd0Rk07RUFDRSxvQ0FBQTtBRGd1RlI7O0FDOXRGTTtFQUNFLHlCQUFBO0FEaXVGUjs7QUMvdEZNO0VBQ0Usb0NBQUE7QURrdUZSOztBQ3p1Rk07RUFDRSxvQ0FBQTtBRDR1RlI7O0FDMXVGTTtFQUNFLHlCQUFBO0FENnVGUjs7QUMzdUZNO0VBQ0Usb0NBQUE7QUQ4dUZSOztBQ3J2Rk07RUFDRSxvQ0FBQTtBRHd2RlI7O0FDdHZGTTtFQUNFLHlCQUFBO0FEeXZGUjs7QUN2dkZNO0VBQ0Usb0NBQUE7QUQwdkZSOztBQ2p3Rk07RUFDRSxvQ0FBQTtBRG93RlI7O0FDbHdGTTtFQUNFLHlCQUFBO0FEcXdGUjs7QUNud0ZNO0VBQ0Usb0NBQUE7QURzd0ZSOztBQzd3Rk07RUFDRSxvQ0FBQTtBRGd4RlI7O0FDOXdGTTtFQUNFLHlCQUFBO0FEaXhGUjs7QUMvd0ZNO0VBQ0Usb0NBQUE7QURreEZSOztBQ3p4Rk07RUFDRSxvQ0FBQTtBRDR4RlI7O0FDMXhGTTtFQUNFLHlCQUFBO0FENnhGUjs7QUMzeEZNO0VBQ0Usb0NBQUE7QUQ4eEZSOztBQy95Rk07RUFDRSxvQ0FBQTtBRGt6RlI7O0FDaHpGTTtFQUNFLHlCQUFBO0FEbXpGUjs7QUNqekZNO0VBQ0Usb0NBQUE7QURvekZSOztBQ2p6Rk07RUFDRSxvQ0FBQTtBRG96RlI7O0FDbHpGTTtFQUNFLHlCQUFBO0FEcXpGUjs7QUNuekZNO0VBQ0Usb0NBQUE7QURzekZSOztBQzd6Rk07RUFDRSxvQ0FBQTtBRGcwRlI7O0FDOXpGTTtFQUNFLHlCQUFBO0FEaTBGUjs7QUMvekZNO0VBQ0Usb0NBQUE7QURrMEZSOztBQ3owRk07RUFDRSxvQ0FBQTtBRDQwRlI7O0FDMTBGTTtFQUNFLHlCQUFBO0FENjBGUjs7QUMzMEZNO0VBQ0Usb0NBQUE7QUQ4MEZSOztBQ3IxRk07RUFDRSxvQ0FBQTtBRHcxRlI7O0FDdDFGTTtFQUNFLHlCQUFBO0FEeTFGUjs7QUN2MUZNO0VBQ0Usb0NBQUE7QUQwMUZSOztBQ2oyRk07RUFDRSxvQ0FBQTtBRG8yRlI7O0FDbDJGTTtFQUNFLHlCQUFBO0FEcTJGUjs7QUNuMkZNO0VBQ0Usb0NBQUE7QURzMkZSOztBQzcyRk07RUFDRSxvQ0FBQTtBRGczRlI7O0FDOTJGTTtFQUNFLHlCQUFBO0FEaTNGUjs7QUMvMkZNO0VBQ0Usb0NBQUE7QURrM0ZSOztBQ3ozRk07RUFDRSxvQ0FBQTtBRDQzRlI7O0FDMTNGTTtFQUNFLHlCQUFBO0FENjNGUjs7QUMzM0ZNO0VBQ0Usb0NBQUE7QUQ4M0ZSOztBQ3I0Rk07RUFDRSxvQ0FBQTtBRHc0RlI7O0FDdDRGTTtFQUNFLHlCQUFBO0FEeTRGUjs7QUN2NEZNO0VBQ0Usb0NBQUE7QUQwNEZSOztBQ2o1Rk07RUFDRSxvQ0FBQTtBRG81RlI7O0FDbDVGTTtFQUNFLHlCQUFBO0FEcTVGUjs7QUNuNUZNO0VBQ0Usb0NBQUE7QURzNUZSOztBQ3Y2Rk07RUFDRSxvQ0FBQTtBRDA2RlI7O0FDeDZGTTtFQUNFLHlCQUFBO0FEMjZGUjs7QUN6NkZNO0VBQ0Usb0NBQUE7QUQ0NkZSOztBQ3o2Rk07RUFDRSxvQ0FBQTtBRDQ2RlI7O0FDMTZGTTtFQUNFLHlCQUFBO0FENjZGUjs7QUMzNkZNO0VBQ0Usb0NBQUE7QUQ4NkZSOztBQ3I3Rk07RUFDRSxvQ0FBQTtBRHc3RlI7O0FDdDdGTTtFQUNFLHlCQUFBO0FEeTdGUjs7QUN2N0ZNO0VBQ0Usb0NBQUE7QUQwN0ZSOztBQ2o4Rk07RUFDRSxvQ0FBQTtBRG84RlI7O0FDbDhGTTtFQUNFLHlCQUFBO0FEcThGUjs7QUNuOEZNO0VBQ0Usb0NBQUE7QURzOEZSOztBQzc4Rk07RUFDRSxvQ0FBQTtBRGc5RlI7O0FDOThGTTtFQUNFLHlCQUFBO0FEaTlGUjs7QUMvOEZNO0VBQ0Usb0NBQUE7QURrOUZSOztBQ3o5Rk07RUFDRSxvQ0FBQTtBRDQ5RlI7O0FDMTlGTTtFQUNFLHlCQUFBO0FENjlGUjs7QUMzOUZNO0VBQ0Usb0NBQUE7QUQ4OUZSOztBQ3IrRk07RUFDRSxvQ0FBQTtBRHcrRlI7O0FDdCtGTTtFQUNFLHlCQUFBO0FEeStGUjs7QUN2K0ZNO0VBQ0Usb0NBQUE7QUQwK0ZSOztBQ2ovRk07RUFDRSxvQ0FBQTtBRG8vRlI7O0FDbC9GTTtFQUNFLHlCQUFBO0FEcS9GUjs7QUNuL0ZNO0VBQ0Usb0NBQUE7QURzL0ZSOztBQzcvRk07RUFDRSxvQ0FBQTtBRGdnR1I7O0FDOS9GTTtFQUNFLHlCQUFBO0FEaWdHUjs7QUMvL0ZNO0VBQ0Usb0NBQUE7QURrZ0dSOztBQ3pnR007RUFDRSxvQ0FBQTtBRDRnR1I7O0FDMWdHTTtFQUNFLHlCQUFBO0FENmdHUjs7QUMzZ0dNO0VBQ0Usb0NBQUE7QUQ4Z0dSOztBQy9oR007RUFDRSxvQ0FBQTtBRGtpR1I7O0FDaGlHTTtFQUNFLHlCQUFBO0FEbWlHUjs7QUNqaUdNO0VBQ0Usb0NBQUE7QURvaUdSOztBQ2ppR007RUFDRSxvQ0FBQTtBRG9pR1I7O0FDbGlHTTtFQUNFLHlCQUFBO0FEcWlHUjs7QUNuaUdNO0VBQ0Usb0NBQUE7QURzaUdSOztBQzdpR007RUFDRSxvQ0FBQTtBRGdqR1I7O0FDOWlHTTtFQUNFLHlCQUFBO0FEaWpHUjs7QUMvaUdNO0VBQ0Usb0NBQUE7QURrakdSOztBQ3pqR007RUFDRSxvQ0FBQTtBRDRqR1I7O0FDMWpHTTtFQUNFLHlCQUFBO0FENmpHUjs7QUMzakdNO0VBQ0Usb0NBQUE7QUQ4akdSOztBQ3JrR007RUFDRSxvQ0FBQTtBRHdrR1I7O0FDdGtHTTtFQUNFLHlCQUFBO0FEeWtHUjs7QUN2a0dNO0VBQ0Usb0NBQUE7QUQwa0dSOztBQ2psR007RUFDRSxvQ0FBQTtBRG9sR1I7O0FDbGxHTTtFQUNFLHlCQUFBO0FEcWxHUjs7QUNubEdNO0VBQ0Usb0NBQUE7QURzbEdSOztBQzdsR007RUFDRSxvQ0FBQTtBRGdtR1I7O0FDOWxHTTtFQUNFLHlCQUFB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VCtrSTFCO0FhanZJUTtFQUNFLFdBQUE7QWJtdklWO0FhL3VJSTtFQUNFLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGNKakZZO0FUazBJbEI7QWEvdUlRO0VBQ0Usc0JKd0prQjtBVHlsSTVCO0FhM3VJTTtFQUNFLHNCSjhJYztFSTdJZCxnQ0FBQTtFQUNBLGtCQUFBO0FiNnVJUjtBYTN1SU07RUFDRSxrQkFBQTtBYjZ1SVI7QWEzdUlNO0VBQ0Usa0JBQUE7QWI2dUlSO0FhMXVJSTtFQUNFLFlBQUE7RUFDQSxjSnhHWTtBVG8xSWxCOztBY3gxSUE7RUFDRSw4Q0x5RmE7QVRrd0lmOztBY3gxSUE7RUFDRSxhQUFBO0VBQ0EseUNMNEt3QjtBVCtxSTFCOztBY3gxSUE7RUFDRSxpQkwyRGdCO0VLMURoQixjTGdEbUI7QVQyeUlyQjs7QWV2MklBOytFQUFBO0FBR0EsdUJBQUE7QUFFQTtFQUNFLGNOc0V1QjtBVGt5SXpCOztBZXIySUEsZ0JBQUE7QUFFQTs7Ozs7Ozs7Ozs7OztFQWVFLDZCQUFBO0VBQ0EsWUFBQTtFQUNBLGdDTmlDYTtFTWhDYixnQkFBQTtFQUNBLGFBQUE7RUFDQSxZTmNhO0VNYmIsV0FBQTtFQUNBLGVOaUNnQjtFTWhDaEIsaUJOa0NhO0VNakNiLFVOa0NjO0VNakNkLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSx3Q0FBQTtBZnEySUY7QWVsMklFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBRUUsMEJONEJtQjtFTTNCbkIsNkNONkJvQjtBVDgxSXhCO0FldjNJRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUVFLDBCTnFCbUI7QVQyM0l2QjtBZTU0SUU7Ozs7Ozs7Ozs7Ozs7RUFDRSxnQ0FBQTtFQUNBLDZCQUFBO0FmMDVJSjtBZXQ1SUU7Ozs7Ozs7Ozs7Ozs7RUFDRSxjTnhEYztBVDQ5SWxCO0FlOTRJRTs7Ozs7Ozs7Ozs7OztFQUNFLGNOOUVZO0FUMCtJaEI7QWU5NElFOzs7Ozs7Ozs7Ozs7O0VBQ0UsY041RlU7QVR3L0lkO0FleDVJRTs7Ozs7Ozs7Ozs7OztFQUNFLFdBQUE7QWZzNklKO0FlNTVJQSxpQ0FBQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQ0UsZ0NBQUE7RUFDQSw2QkFBQTtBZnM3SUY7O0FlcDdJQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUNFLGdDTjlDcUI7RU0rQ3JCLDZCQUFBO0FmKzhJRjs7QWU3OElBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQ0Usa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0FmZ2dKRjs7QWU5L0lBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQ0UsMkJBQUE7RUFDQSxjTjVIYztBVHFwSmhCOztBZXZoSkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFDRSx5QkFBQTtFQUNBLGNOL0hZO0FUaXJKZDs7QWVoakpBOzs7Ozs7Ozs7Ozs7O0VBQ0UsY0FBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBQ0EsVUFBQTtFQUNBLHNEQUFBO0FmK2pKRjs7QWUxakpBO0VBeUJFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtBZnFpSkY7QWU5akpFO0VBQ0UscUJBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0FmZ2tKSjtBZTlqSkk7O0VBRUUsbUJBQUE7QWZna0pOO0FlMWpKSTtFQUNFLFlBQUE7QWY0akpOO0FlempKSTs7RUFFRSwrQkFBQTtBZjJqSk47QWVuakpFO0VBQ0UsY050SGlCO0VNdUhqQixrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsZUFBQTtFQUNBLFlBQUE7RUFDQSx3REFBQTtFQUNBLHlCQUFBO0VBQ0EsbUJBQUE7RUFDQSwyQkFBQTtBZnFqSko7QWVuakpJO0VBQ0UsdUNBQUE7RUFDQSxxQkFBQTtBZnFqSk47QWVoakpFO0VBR0UsdUNBQUE7RUFDQSxxQkFBQTtBZmdqSko7QWU3aUpFO0VBUUUsa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxlQUFBO0VBQ0EsMEJBQUE7QWZ3aUpKO0FlbmpKSTtFQUNFLFVBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0FmcWpKTjtBZTFpSkU7RUFDRSxrQkFBQTtFQUNBLFdOaExXO0VNaUxYLGVObkpjO0VNb0pkLHNCQUFBO0FmNGlKSjtBZXppSkk7RUFBVyxjTjdORztBVHl3SmxCO0FlemlKRTs7Ozs7O0VBTUUsaUJBQUE7RUFDQSxVQUFBO0VBQ0Esd0JBQUE7QWYyaUpKO0FleGlKRTtFQUFrQixpQkFBQTtBZjJpSnBCO0FlemlKRTtFQUNFO0lBQ0UsVUFBQTtJQUNBLHdCQUFBO0VmMmlKSjtBQUNGO0FleGlKRTtFQUNFO0lBQ0UsVUFBQTtJQUNBLHdCQUFBO0VmMGlKSjtBQUNGOztBZXJpSkEsaUJBQUE7QUFFQTtFQUNFLGNBQUE7RUFDQSxvQkFBQTtFQUNBLGlDQUFBO0FmdWlKRjtBZXJpSkU7RUFDRSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSx3QkFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTtBZnVpSko7QWVwaUpFO0VBQ0Usc0JOcE5lO0VNcU5mLFNBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7QWZzaUpKO0FlcGlKSTtFQUdFLFdBQUE7QWZvaUpOO0FlaGlKRTtFQUNFLGVBQUE7RUFDQSxVQUFBO0Fma2lKSjtBZS9oSkU7RUFFRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsZU4vTmM7RU1nT2Qsc0JBQUE7QWZnaUpKOztBZTNoSkEsYUFBQTtBQUdBO0VBQ0UsV0FBQTtFQUNBLFlOeFFhO0VNeVFiLDZCQUFBO0FmNGhKRjtBZTFoSkU7RUFDRSxtQkFBQTtFQUNBLGtCQUFBLEVBQUEsOEJBQUE7RUFDQSwwQkFBQSxFQUFBLHlDQUFBO0VBQ0EsWUFBQTtFQUNBLGdCTmhSVztFTWlSWCxzQkFBQTtBZjRoSko7O0FldGhKQTtFQUNFLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSxxQkFBQTtFQUNBLHlCQUFBLEVBQUEsNkNBQUE7RUFDQSxtQkFBQSxFQUFBLHlDQUFBO0VBR0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtBZnVoSkY7O0FlbmhKQSxpQkFBQTtBQUdJO0VBQWEsV0FBQTtBZnFoSmpCO0FlbmhKSTtFQUdFLGdCQUFBO0FmbWhKTjs7QWU5Z0pBLHNCQUFBO0FBQ0E7RUFDRSxnQkFBQTtBZmloSkY7O0FnQmwzSkE7K0VBQUE7QUFJQTs7RUFFRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxvQkFBQTtBaEJtM0pGOztBZ0JoM0pBOztFQUVFLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7RUFDQSxpQkFBQTtBaEJtM0pGOztBZ0JoM0pBOztFQUVFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLHNCQUFBO0FoQm0zSkY7O0FnQmgzSkEscUJBQUE7QUFDQTs7Ozs7O0VBTUUsa0JBQUE7QWhCbTNKRjs7QWdCaDNKQTs7RUFFRSx5QkFBQTtBaEJtM0pGOztBZ0JoM0pBO0VBQ0UsbUJBQUE7QWhCbTNKRjs7QWdCaDNKQSxtQkFBQTtBQUNBO0VBQ0UsNkJBQUE7QWhCbTNKRjs7QWdCaDNKQTs7O0VBR0UseUJQaUJhO0FUazJKZjs7QWdCaDNKQTs7RUFFRSx5QlBoRWdCO0FUbTdKbEI7O0FnQmgzSkE7RUFDRSxzQkFBQTtBaEJtM0pGOztBZ0JoM0pBLG1CQUFBO0FBQ0E7RUFDRSxxQkFBQTtBaEJtM0pGOztBZ0JoM0pBLG1CQUFBO0FBQ0E7RUFDRSx5Q0FBQTtBaEJtM0pGOztBZ0JoM0pBLDRCQUFBO0FBQ0E7RUFDRSxxQ0FBQTtBaEJtM0pGOztBZ0JoM0pBO0VBQ0UsWUFBQTtFQUNBLHFDUHRCcUI7QVR5NEp2Qjs7QWdCaDNKQSxtQkFBQTtBQUNBOztFQUVFLDZCQUFBO0VBQ0EsaUNQN0JxQjtBVGc1SnZCOztBZ0JoM0pBO0VBQ0UsMEJQakNxQjtBVG81SnZCOztBZ0JoM0pBO0VBQ0UsaUNQckNxQjtBVHc1SnZCOztBZ0JoM0pBO0VBQ0UscUNQekNxQjtFTzBDckIscUJQekMyQjtBVDQ1SjdCOztBaUJwK0pBOytFQUFBO0FBR0EsNEJBQUE7QUFDQTs7RUFFRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxvQkFBQTtBakJzK0pGOztBaUJsK0pBO0VBYUUsb0JBQUE7QWpCeTlKRjtBaUJwK0pFO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtBakJzK0pKO0FpQmwrSkU7RUFFRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QWpCbStKSjtBaUJoK0pFO0VBQ0UsU0FBQTtFQUNBLG1CQUFBO0FqQmsrSko7QWlCLzlKRTtFQUNFLFlBQUE7RUFDQSxxQ1J1Qm1CO0FUMDhKdkI7QWlCNzlKRTtFQUNFLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTtBakIrOUpKOztBaUIxOUpFO0VBQ0UsU0FBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlDQUFBO0VBQ0Esa0NBQUE7RUFDQSwrQlJZVztFUVhYLGdDUldXO0VRVlgsd0JBQUE7RUFDQSwyQkFBQTtFQUNBLDJCQUFBO0FqQjY5Sko7QWlCMTlKRTtFQUNFLDJDQUFBO0VBQ0EsNENBQUE7QWpCNDlKSjs7QWlCeDlKQSwyQkFBQTtBQUVFO0VBQ0UsVUFBQTtFQUNBLFdBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSwrQlJWVztFUVdYLG1CQUFBO0VBQ0Esd0JBQUE7RUFDQSwyQkFBQTtFQUNBLDJCQUFBO0FqQjA5Sko7QWlCdDlKRTtFQUNFLDJDQUFBO0VBQ0EsNkJBQUE7QWpCdzlKSjs7QWlCajlKRTtFQUNFLGtCQUFBO0FqQm85Sko7QWlCajlKRTs7RUFFRSxXQUFBO0VBQ0EsT0FBQTtFQUNBLGtCQUFBO0VBQ0EscUNBQUE7RUFDQSxrSEFBQTtFQUNBLFVBQUE7QWpCbTlKSjtBaUIvOEpFO0VBQ0UsUUFBQTtFQUNBLFNBQUE7RUFDQSw2QkFBQTtFQUNBLFNBQUE7RUFDQSxTQUFBO0VBQ0EseUJBQUE7RUFDQSwyQkFBQTtBakJpOUpKO0FpQjk4SkU7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUNBLDZCQUFBO0VBQ0EseUJBQUE7RUFDQSxRQUFBO0VBQ0EsVUFBQTtBakJnOUpKO0FpQjM4Skk7RUFDRSxNQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsaUNBQUE7RUFDQSxrQ0FBQTtFQUNBLDRCQUFBO0VBQ0EsNkJBQUE7RUFDQSx5QkFBQTtFQUNBLDJCQUFBO0FqQjY4Sk47QWlCMThKSTtFQUNFLE1BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0VBQ0EseUJSN0pZO0VROEpaLFVBQUE7QWpCNDhKTjtBaUJ2OEpFO0VBQ0Usa0JBQUE7RUFDQSxxQlIxRmdCO0VRMkZoQixvQ0FBQTtBakJ5OEpKO0FpQnQ4SkU7RUFDRSxrQkFBQTtFQUNBLHlCUjNLYztFUTRLZCxxQlI1S2M7QVRvbktsQjtBaUJwOEpFO0VBQ0UsNkJBQUE7RUFDQSw2QkFBQTtBakJzOEpKO0FpQm44SkU7RUFDRSx5QkFBQTtFQUNBLHlCUnBIeUI7QVR5aks3QjtBaUJsOEpFO0VBQ0UsNkJBQUE7QWpCbzhKSjtBaUJqOEpFO0VBQ0UseUJSNUh5QjtFUTZIekIscUJSN0h5QjtBVGdrSzdCOztBa0J4b0tBOytFQUFBO0FBR0E7O0VBRUUsd0NBQUE7RUFDQSxpQkFBQTtBbEIwb0tGOztBa0J2b0tBO0VBQ0UsZUFBQTtBbEIwb0tGOztBa0J2b0tBO0VBQ0UsVUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0FsQjBvS0Y7QWtCeG9LRTtFQUNFLHVEVGtGc0I7QVR3aksxQjtBa0J4b0tJO0VBQ0UsVUFBQTtBbEIwb0tOO0FrQnZvS0k7RUFDRSx5QlRyQlk7QVQ4cEtsQjs7QWtCcG9LQTtFQUNFLFdBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxxQ1RrRTBCO0VTakUxQixtQlRrRWM7RVNoRWQsZ0NBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7QWxCc29LRjtBa0Jwb0tFO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSwyRkFBQTtBbEJzb0tKO0FrQm5vS0U7RUFDRSwwQ0FBQTtBbEJxb0tKO0FrQmxvS0U7RUFDRSx5QlR5Q2tCO0VTeENsQix5SEFBQTtBbEJvb0tKOztBa0IvbktBOztFQUVFLHFCQUFBO0VBQ0EsMENBQUE7QWxCa29LRjs7QWtCL25LQTs7RUFFRSxxQkFBQTtFQUNBLHFDQUFBO0FsQmtvS0Y7O0FrQjluS0E7RUFDRSxlQUFBO0VBQ0EscUNBQUE7QWxCaW9LRjs7QWtCOW5LQTs7RUFFRSx5QlRmMkI7QVRncEs3Qjs7QW1CeHRLQTsrRUFBQTtBQUdBO0VBQVMsYUFBQTtBbkIydEtUOztBbUIxdEtBO0VBQXlCLGNBQUE7QW5COHRLekI7O0FtQjV0S0E7RUFDRSwwQ1ZtRmtCO0VVbEZsQixXQUFBO0VBQ0EsWVZzRmU7RVVyRmYseUJWK0VjO0VVOUVkLGtCVnFGYztFVXBGZCxZVmlDYTtBVDhyS2Y7O0FtQjV0S0E7RUFDRSxrQkFBQTtBbkIrdEtGOztBbUI1dEtBO0VBcUNFLGtCQUFBO0FuQjJyS0Y7QW1CcnNLRTtFQUVFLFdBQUE7RUFDQSxvQkFBQTtBbkJzc0tKO0FtQjdyS0U7RUFJRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSw2QkFBQTtFQUNBLFlBQUE7RUFDQSxnQ1ZMVztFVU1YLGFBQUE7RUFDQSxZVnZCVztFVXdCWCxpQlZ4Qlc7RVV5QlgsV0FBQTtFQUNBLGVWTGM7RVVNZCxpQlZKVztFVUtYLFVBQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0FuQjRyS0o7QW1CN3NLSTtFQUNFLGdDQUFBO0FuQitzS047QW1CNXJLRTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RUFDQSx5QkFBQTtBbkI4cktKO0FtQjNyS0U7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxpQlZ0QmM7QVRtdEtsQjs7QW1CeHJLQTtFQUNFLDBCVjNCcUI7QVRzdEt2Qjs7QW1CdnJLRTtFQUNFLDBCVmhDbUI7QVQwdEt2QjtBbUJ4cktFO0VBQ0UseUJWbkNtQjtBVDZ0S3ZCOztBbUJ0cktBO0VBQ0UsMEJWeENxQjtFVXlDckIsZUFBQTtFQUNBLGlCQUFBO0FuQnlyS0Y7O0FtQnRyS0E7RUFDRSx5QlZwQnNCO0FUNnNLeEI7O0FtQnRyS0E7OztFQUdFLHlCVjFCc0I7RVUyQnRCLDZCQUFBO0FuQnlyS0Y7O0FtQnJyS0U7RUFDRSxxQ1ZwQ2tCO0FUNHRLdEI7O0FtQmxyS0k7RUFDRSxxQ1Y1Q2dCO0FUaXVLdEI7QW1CbHJLSTtFQUNFLHFDVjlDbUI7QVRrdUt6Qjs7QW1COXFLQTtFQUNFLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLHdCQUFBO0FuQmlyS0Y7O0FtQjlxS0E7RUFBa0IsaUJBQUE7QW5Ca3JLbEI7O0FtQjlxS0U7RUFHRSxnQkFBQTtFQUNBLFlBQUE7QW5CK3FLSjs7QW1CdnFLRTtFQUNFLHlCQUFBO0FuQjBxS0o7QW1CdnFLRTtFQUNFLHlCQUFBO0FuQnlxS0o7QW1CdHFLRTtFQUNFLGtCQUFBO0FuQndxS0o7O0FvQnoxS0E7K0VBQUE7QUFHQTtFQUNFLGtCQUFBO0FwQjIxS0Y7QW9CejFLRTtFQUNFLGdCQUFBO0VBQ0Esa0JBQUE7QXBCMjFLSjtBb0J4MUtFO0VBQWtCLFdBQUE7QXBCMjFLcEI7QW9CejFLRTtFQUNFLFdBQUE7RUFDQSxZWDhCVztFVzdCWCxpQlg2Qlc7QVQ4ektmO0FvQngxS0U7RUFDRSxlQUFBO0FwQjAxS0o7QW9CdjFLRTtFQU9FLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0EsVUFBQTtFQUNBLHdCQUFBO0FwQm0xS0o7QW9CbDJLSTtFQUNFLGFBQUE7QXBCbzJLTjs7QXFCLzNLQTsrRUFBQTtBQUdBO0VBQ0Usa0JBQUE7QXJCaTRLRjs7QXFCOTNLQTs7RUFHRSxlQUFBO0FyQmc0S0Y7O0FxQjczS0E7RUFDRSxrQkFBQTtFQUNBLDZCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7QXJCZzRLRjtBcUI5M0tFO0VBQ0UsYUFBQTtBckJnNEtKOztBcUI1M0tBO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLGtCQUFBO0VBQ0EseUJaOUJnQjtFWStCaEIsZ0JBQUE7RUFFQSx5QkFBQTtFQUNBLHlCQUFBO0FyQjgzS0Y7QXFCNTNLRTtFQUNFLGNBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxjWnhDYztFWXlDZCxZQUFBO0VBQ0Esd0JBQUE7QXJCODNLSjtBcUIzM0tFO0VBQ0UsNEJBQUE7QXJCNjNLSjtBcUIzM0tJO0VBQ0UsV1pRYTtFWVBiLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7QXJCNjNLTjs7QXFCdjJLQTtFQUNFLHdCQUFBO0FyQjAyS0Y7O0FxQnYyS0E7RUFuQkUsV1pzQmE7RVlyQmIsbUJBQUE7RUFDQSxZQUFBO0FyQjgzS0Y7O0FxQnoyS0E7RUFqQkUsWUFBQTtFQUNBLFlaYWE7RVlaYixXWmFZO0VZWlosa0JBQUE7RUFDQSxtQlpyRWdCO0VZc0VoQiwyQkFBQTtFQWNBLHdCQUFBO0VBQ0EseUJackZnQjtFWXNGaEIseUJBQUE7RUFDQSxrQkFBQTtBckJpM0tGOztBcUI3MktBO0VBQ0UsK0NBQUE7QXJCZzNLRjs7QXFCNTJLQTtFQUNFLGdEQUFBO0VBQ0EsdUJBQUE7RUFFQSx5Q0FBQTtBckI4MktGOztBcUIzMktBO0VBNUNFLFdac0JhO0VZckJiLG1CQUFBO0VBQ0EsWUFBQTtBckIyNUtGOztBcUI3MktBO0VBQ0UsU0FBQTtBckJnM0tGOztBcUI3MktBO0VBOUNFLFlBQUE7RUFDQSxZWmFhO0VZWmIsV1phWTtFWVpaLGtCQUFBO0VBQ0EsbUJackVnQjtFWXNFaEIsMkJBQUE7RUEyQ0EsZ0JBQUE7QXJCcTNLRjs7QXFCajNLQTtFQUNFLHVCQUFBO0VBQ0Esb0JBQUE7QXJCbzNLRjs7QXFCajNLQTtFQUNFLCtDQUFBO0FyQm8zS0Y7O0FxQmgzS0E7RUFDRSxXWi9DYTtFWWtEYix1QkFBQTtFQUdBLHlCQUFBO0VBQ0EsbUJBQUE7RUFFQSw0QkFBQTtFQUNBLGtCQUFBO0FyQjgyS0Y7O0FxQjMyS0E7RUFDRSxnQkFBQTtBckI4MktGOztBcUIzMktBO0VBQ0UsZ0JBQUE7QXJCODJLRjs7QXFCMzJLQTtFQXBGRSxZQUFBO0VBQ0EsWVphYTtFWVpiLFdaYVk7RVlaWixrQkFBQTtFQUNBLG1CWnJFZ0I7RVlzRWhCLDJCQUFBO0FyQm04S0Y7O0FxQmgzS0E7RUFDRSwrQ0FBQTtBckJtM0tGOztBc0JsaExBO0VBRUUsMEJBQUE7RUFDQSxpQkFBQTtFQUVBLHlDQUFBO0VBQ0EsNEJBQUE7RUFDQSwyQkFBQTtFQUNBLDRCQUFBO0VBQ0Esc0JBQUE7QXRCbWhMRjs7QXVCM2hMQTtFQUFJLHNCQUFBO0F2QitoTEo7O0F1QjdoTEE7RUFBTyx1QkFBQTtBdkJpaUxQOztBdUIvaExBO0VBQ0UsWUFOVztFQU9YLGFBUFc7RUFRWCxzQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBdkJraUxGOztBdUIvaExBO0VBQ0UsWUFkVztFQWVYLGFBZlc7RUFnQlgsa0JBQUE7RUFDQSw0QkFBQTtFQUNBLDZCQUFBO0VBQ0Esd0JBQUE7QXZCa2lMRjs7QXVCL2hMQTtFQUFvQiwwQ0FBQTtBdkJtaUxwQjs7QXVCbGlMQTtFQUFvQiw0Q0FBQTtBdkJzaUxwQjs7QXVCcmlMQTtFQUFvQiw2Q0FBQTtBdkJ5aUxwQjs7QXVCeGlMQTtFQUFvQiwyQ0FBQTtBdkI0aUxwQjs7QXVCM2lMQTtFQUFvQiw0Q0FBQTtBdkIraUxwQjs7QXVCOWlMQTtFQUFvQiwyQ0FBQTtBdkJrakxwQjs7QXVCaGpMQTtFQUNFLGtCQUFBO0VBQ0EsWUEvQlc7RUFnQ1gsYUFoQ1c7RUFpQ1gsdUJBQUE7RUFDQSxrQkFsQ1c7RUFtQ1gsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0F2Qm1qTEY7O0F1QmhqTEE7RUFBc0IsbUNBQUE7QXZCb2pMdEI7O0F1Qm5qTEE7RUFBc0Isb0NBQUE7QXZCdWpMdEI7O0F1QnRqTEE7RUFBc0IscUNBQUE7QXZCMGpMdEI7O0F1QnpqTEE7RUFBc0IscUNBQUE7QXZCNmpMdEI7O0F1QjVqTEE7RUFBc0IscUNBQUE7QXZCZ2tMdEI7O0F1Qi9qTEE7RUFBc0IscUNBQUE7QXZCbWtMdEI7O0F1QmprTEE7RUFBc0IsMENBQUE7QXZCcWtMdEI7O0F1QnBrTEE7RUFBc0IsMkNBQUE7QXZCd2tMdEI7O0F1QnZrTEE7RUFBc0IsNENBQUE7QXZCMmtMdEI7O0F1QjFrTEE7RUFBc0IsNENBQUE7QXZCOGtMdEI7O0F1QjdrTEE7RUFBc0IsMkNBQUE7QXZCaWxMdEI7O0F1QmhsTEE7RUFBc0IsNENBQUE7QXZCb2xMdEI7O0F1QmxsTEE7RUFBUSxrQkFBQTtBdkJzbExSOztBd0I1b0xBO0VBQ0UsY0FBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtBeEIrb0xGOztBd0I3b0xBO0VBQ0U7SUFDRSxVQUFBO0V4QmdwTEY7QUFDRjtBd0I5b0xBO0VBQ0U7SUFDRSxVQUFBO0V4QmdwTEY7QUFDRjtBd0I5b0xBO0VBQ0Usb0JBQUE7RUFDQSxxQkFBQTtBeEJncExGOztBd0I3b0xBO0VBQ0UsaUJBQUE7RUFDQSxvQkFBQTtBeEJncExGO0F3QjlvTEU7RUFDRSxVQUFBO0F4QmdwTEo7QXdCOW9MRTtFQUNFLGlCQUFBO0F4QmdwTEo7QXdCOW9MRTtFQUNFLGNBQUE7QXhCZ3BMSjs7QXdCeG5MQTtFQUNFLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtBeEIybkxGO0F3QnhuTEU7RUFDRSxXQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7QXhCMG5MSjtBd0J2bkxFO0VBQ0UsV0FBQTtFQUNBLHNCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0F4QnluTEo7QXdCdm5MSTtFQUVFLGtCQUFBO0F4QnduTE47QXdCbG5MTTtFQUNFLG9CQUZLO0VBMUNYLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7QXhCaXFMRjtBd0J4bkxNO0VBQ0UscUJBRks7RUExQ1gsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtBeEJ1cUxGO0F3QjluTE07RUFDRSxVQUZLO0VBMUNYLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7QXhCNnFMRjtBd0Jwb0xNO0VBQ0UscUJBRks7RUExQ1gsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtBeEJtckxGO0F3QjFvTE07RUFDRSxxQkFGSztFQTFDWCxpQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0F4QnlyTEY7QXdCaHBMTTtFQUNFLFVBRks7RUExQ1gsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtBeEIrckxGO0F3QnRwTE07RUFDRSxxQkFGSztFQTFDWCxpQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0F4QnFzTEY7QXdCNXBMTTtFQUNFLHFCQUZLO0VBMUNYLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7QXhCMnNMRjtBd0JscUxNO0VBQ0UsVUFGSztFQTFDWCxpQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0F4Qml0TEY7QXdCeHFMTTtFQUNFLHFCQUZLO0VBMUNYLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7QXhCdXRMRjtBd0I5cUxNO0VBQ0UscUJBRks7RUExQ1gsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtBeEI2dExGO0F3QnByTE07RUFDRSxXQUZLO0VBMUNYLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7QXhCbXVMRjtBd0JodUxFO0VBQ0UsMEJBOENTO0F4Qm9yTGI7QXdCaHVMRTtFQUNFLG9CQTJDUztBeEJ1ckxiO0F3Qmh1TEU7RUFDRSxtQkF3Q1M7QXhCMHJMYjtBd0J6dUxFO0VBQ0UsMkJBOENTO0F4QjZyTGI7QXdCenVMRTtFQUNFLHFCQTJDUztBeEJnc0xiO0F3Qnp1TEU7RUFDRSxvQkF3Q1M7QXhCbXNMYjtBd0JsdkxFO0VBQ0UsZ0JBOENTO0F4QnNzTGI7QXdCbHZMRTtFQUNFLFVBMkNTO0F4QnlzTGI7QXdCbHZMRTtFQUNFLFNBd0NTO0F4QjRzTGI7QXdCM3ZMRTtFQUNFLDJCQThDUztBeEIrc0xiO0F3QjN2TEU7RUFDRSxxQkEyQ1M7QXhCa3RMYjtBd0IzdkxFO0VBQ0Usb0JBd0NTO0F4QnF0TGI7QXdCcHdMRTtFQUNFLDJCQThDUztBeEJ3dExiO0F3QnB3TEU7RUFDRSxxQkEyQ1M7QXhCMnRMYjtBd0Jwd0xFO0VBQ0Usb0JBd0NTO0F4Qjh0TGI7QXdCN3dMRTtFQUNFLGdCQThDUztBeEJpdUxiO0F3Qjd3TEU7RUFDRSxVQTJDUztBeEJvdUxiO0F3Qjd3TEU7RUFDRSxTQXdDUztBeEJ1dUxiO0F3QnR4TEU7RUFDRSwyQkE4Q1M7QXhCMHVMYjtBd0J0eExFO0VBQ0UscUJBMkNTO0F4QjZ1TGI7QXdCdHhMRTtFQUNFLG9CQXdDUztBeEJndkxiO0F3Qi94TEU7RUFDRSwyQkE4Q1M7QXhCbXZMYjtBd0IveExFO0VBQ0UscUJBMkNTO0F4QnN2TGI7QXdCL3hMRTtFQUNFLG9CQXdDUztBeEJ5dkxiO0F3Qnh5TEU7RUFDRSxnQkE4Q1M7QXhCNHZMYjtBd0J4eUxFO0VBQ0UsVUEyQ1M7QXhCK3ZMYjtBd0J4eUxFO0VBQ0UsU0F3Q1M7QXhCa3dMYjtBd0JqekxFO0VBQ0UsMkJBOENTO0F4QnF3TGI7QXdCanpMRTtFQUNFLHFCQTJDUztBeEJ3d0xiO0F3Qmp6TEU7RUFDRSxvQkF3Q1M7QXhCMndMYjtBd0IxekxFO0VBQ0UsMkJBOENTO0F4Qjh3TGI7QXdCMXpMRTtFQUNFLHFCQTJDUztBeEJpeExiO0F3QjF6TEU7RUFDRSxvQkF3Q1M7QXhCb3hMYjtBd0JuMExFO0VBQ0UsaUJBOENTO0F4QnV4TGI7QXdCbjBMRTtFQUNFLFdBMkNTO0F4QjB4TGI7QXdC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QnRtTkE7Ozs7Ozs7Ozs7Ozs7OztFQWVFLG9CQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQkFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtBMUJ5bU5GO0EwQnhtTkU7Ozs7Ozs7Ozs7Ozs7OztFQUNFLG9DQUFBO0VBQ0EseUJBQUE7QTFCd25OSjs7QTBCbm5OQTs7Ozs7RUFLRSxlakJvSWlCO0VpQm5JakIsVUFBQTtBMUJzbk5GO0EwQnJuTkU7Ozs7O0VBQ0UsaUJqQmtJb0I7RWlCaklwQixvQkFBQTtBMUIybk5KOztBMEJwbk5FOztFQUNFLHVDQUFBO0ExQnduTko7O0EwQm5uTkE7RUFDRSxxQkFBQTtFQUNBLFdqQmlGb0I7RWlCaEZwQix5QmpCa0Z5QjtFaUJqRnpCLGtCQUFBO0VBQ0EscUJBQUE7RUFFQSwwQ0FBQTtFQUNBLGVBQUE7QTFCcW5ORjtBMEJwbk5FO0VBQ0UsMENqQnFINkI7QVRpZ05qQzs7QTBCaG5OQTtFQXdDRSxxQkFBQTtFQUNBLFdqQjRGc0I7RWlCM0Z0QixrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLFdqQnlGcUI7RWlCeEZyQixZakJ3RnFCO0VpQnZGckIsaUJqQnVGcUI7RWlCdEZyQixVQUFBO0VBQ0EseUJqQjdIZ0I7RWlCOEhoQixrQmpCcUZ1QjtFaUJuRnZCLGlDQUFBO0VBQ0EsZUFBQTtFQUNBLHNCQUFBO0ExQjJrTkY7QTBCaG9ORTtFQUNFLHlCakI5RWM7QVRndE5sQjtBMEIvbk5FO0VBQ0UsZ0JBQUE7QTFCaW9OSjtBMEIvbk5FO0VBSUUsV2pCMEd5QjtFaUJ6R3pCLFlqQnlHeUI7RWlCeEd6QixVQUFBO0ExQjhuTko7QTBCbm9OSTtFQUNFLFlBQUE7QTFCcW9OTjtBMEJob05JO0VBQ0UsaUJqQnNHdUI7QVQ0aE43QjtBMEI5bk5FO0VBSUUsYWpCb0d5QjtFaUJuR3pCLGNqQm1HeUI7QVQwaE43QjtBMEJqb05JO0VBQ0UsY0FBQTtBMUJtb05OO0EwQi9uTkk7RUFDRSxtQmpCaUd1QjtBVGdpTjdCO0EwQjduTkU7RUFLRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxZ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TSxVQUFBO0U5Qnd2T047RThCdnZPQTtJQUFNLFVBQUE7RTlCMHZPTjtFOEJ6dk9BO0lBQU8sVUFBQTtFOUI0dk9QO0FBQ0Y7QThCMXZPQTtFQUNFO0lBQU8sVUFBQTtFOUI2dk9QO0U4QjV2T0E7SUFBTSxVQUFBO0U5Qit2T047RThCOXZPQTtJQUFNLFVBQUE7RTlCaXdPTjtFOEJod09BO0lBQU0sVUFBQTtFOUJtd09OO0U4Qmx3T0E7SUFBTSxVQUFBO0U5QnF3T047QUFDRjtBOEJud09BO0VBQ0U7SUFBTyxVQUFBO0U5QnN3T1A7RThCcndPQTtJQUFNLFVBQUE7RTlCd3dPTjtFOEJ2d09BO0lBQU0sVUFBQTtFOUIwd09OO0U4Qnp3T0E7SUFBTSxVQUFBO0U5QjR3T047RThCM3dPQTtJQUFNLFVBQUE7RTlCOHdPTjtBQUNGO0E4QjV3T0E7RUFDRTtJQUFPLFVBQUE7RTlCK3dPUDtFOEI5d09BO0lBQU0sVUFBQTtFOUJpeE9OO0U4Qmh4T0E7SUFBTSxVQUFBO0U5Qm14T047RThCbHhPQTtJQUFNLFVBQUE7RTlCcXhPTjtFOEJweE9BO0lBQU0sVUFBQTtFOUJ1eE9OO0FBQ0Y7QThCcnhPQTtFQUNFO0lBQU8sVUFBQTtFOUJ3eE9QO0U4QnZ4T0E7SUFBTSxVQUFBO0U5QjB4T047RThCenhPQTtJQUFNLFVBQUE7RTlCNHhPTjtFOEIzeE9BO0lBQU0sVUFBQTtFOUI4eE9OO0U4Qjd4T0E7SUFBTSxVQUFBO0U5Qmd5T047QUFDRjtBOEI5eE9BO0VBQ0U7SUFBTyxVQUFBO0U5Qml5T1A7RThCaHlPQTtJQUFNLFVBQUE7RTlCbXlPTjtFOEJseU9BO0lBQU0sVUFBQTtFOUJxeU9OO0U4QnB5T0E7SUFBTSxVQUFBO0U5QnV5T047RThCdHlPQTtJQUFPLFVBQUE7RTlCeXlPUDtBQUNGO0E4QnZ5T0E7RUFDRTtJQUFPLFVBQUE7RTlCMHlPUDtFOEJ6eU9BO0lBQU0sVUFBQTtFOUI0eU9OO0U4QjN5T0E7SUFBTSxVQUFBO0U5Qjh5T047RThCN3lPQTtJQUFNLFVBQUE7RTlCZ3pPTjtFOEIveU9BO0lBQU8sVUFBQTtF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O0VBQWEsVzFCN0NDO0FUaTNQcEI7O0FtQzl6UEE7RUFDRSxrQkFBQTtFQUNBLFkxQnhEcUI7RTBCeURyQixZQUFBO0FuQ2kwUEY7QW1DL3pQRTtFQUNFLGVBQUE7QW5DaTBQSjs7QW1DOXpQQTtFQUNFO0lBQ0UsZ0IxQm5FWTtFVG80UGQ7RW1DL3pQQTtJQUNFLFkxQnRFWTtJMEJ1RVosaUIxQnZFWTtFVHc0UGQ7RW1DL3pQQTtJQUNFLFkxQjFFWTtFVDI0UGQ7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAY2hhcnNldCBcXFwiVVRGLThcXFwiO1xcbkBpbXBvcnQgJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1VYnVudHUnO1xcbi53ZWJvIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDYyZDYgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8tdGV4dCB7XFxuICBjb2xvcjogIzAwNjJkNiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby13YXZlcyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDYyZDYgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8uY2hhd2xhdyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjM5YjQzICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXRleHQudGV4dC1jaGF3bGF3IHtcXG4gIGNvbG9yOiAjZjM5YjQzICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXdhdmVzLndhdmVzLWNoYXdsYXcgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjM5YjQzICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLnNlY29uZCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0ZBICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXRleHQudGV4dC1zZWNvbmQge1xcbiAgY29sb3I6ICMwMDc3RkEgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8td2F2ZXMud2F2ZXMtc2Vjb25kIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdGQSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby50aGlyZCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDliZGRkICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXRleHQudGV4dC10aGlyZCB7XFxuICBjb2xvcjogIzA5YmRkZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby13YXZlcy53YXZlcy10aGlyZCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwOWJkZGQgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8uZm91cnRoIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjYmU3ZmUgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8tdGV4dC50ZXh0LWZvdXJ0aCB7XFxuICBjb2xvcjogI2NiZTdmZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby13YXZlcy53YXZlcy1mb3VydGggLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JlN2ZlICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLmxpZ2h0ZW4tNSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJkZWZiICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXRleHQudGV4dC1saWdodGVuLTUge1xcbiAgY29sb3I6ICNiYmRlZmIgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiZGVmYiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby5saWdodGVuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby10ZXh0LnRleHQtbGlnaHRlbi00IHtcXG4gIGNvbG9yOiAjNDJhNWY1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjUgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8ubGlnaHRlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTg2Y2IgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8tdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XFxuICBjb2xvcjogIzc5ODZjYiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLmxpZ2h0ZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTEyZGE4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXRleHQudGV4dC1saWdodGVuLTIge1xcbiAgY29sb3I6ICM1MTJkYTggIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUxMmRhOCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby5saWdodGVuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4MzU5MyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby10ZXh0LnRleHQtbGlnaHRlbi0xIHtcXG4gIGNvbG9yOiAjMjgzNTkzICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyODM1OTMgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8uZGFya2VuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwMTgxZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby10ZXh0LnRleHQtZGFya2VuLTEge1xcbiAgY29sb3I6ICNkMDE4MWUgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDAxODFlICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLmRhcmtlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiOTE1MWIgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8tdGV4dC50ZXh0LWRhcmtlbi0yIHtcXG4gIGNvbG9yOiAjYjkxNTFiICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I5MTUxYiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby5kYXJrZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIxMzE4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXRleHQudGV4dC1kYXJrZW4tMyB7XFxuICBjb2xvcjogI2EyMTMxOCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNhMjEzMTggIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8uYi0ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ5Y2U1ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2Viby10ZXh0LnRleHQtYi0ge1xcbiAgY29sb3I6ICM0OWNlNWYgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8td2F2ZXMud2F2ZXMtYi0gLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDljZTVmICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLmRhcmtlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM4YjEwMTQgIWltcG9ydGFudDtcXG59XFxuXFxuLndlYm8tdGV4dC50ZXh0LWRhcmtlbi00IHtcXG4gIGNvbG9yOiAjOGIxMDE0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi53ZWJvLXdhdmVzLndhdmVzLWRhcmtlbi00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiMTAxNCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzYgIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC10ZXh0IHtcXG4gIGNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQubGlnaHRlbi01IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmViZWUgIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC10ZXh0LnRleHQtbGlnaHRlbi01IHtcXG4gIGNvbG9yOiAjZmZlYmVlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWJlZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLmxpZ2h0ZW4tNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjZGQyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XFxuICBjb2xvcjogI2ZmY2RkMiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNkZDIgIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC5saWdodGVuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmOWE5YSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLXRleHQudGV4dC1saWdodGVuLTMge1xcbiAgY29sb3I6ICNlZjlhOWEgIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWY5YTlhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQubGlnaHRlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTczNzMgIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC10ZXh0LnRleHQtbGlnaHRlbi0yIHtcXG4gIGNvbG9yOiAjZTU3MzczICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1NzM3MyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLmxpZ2h0ZW4tMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWY1MzUwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XFxuICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZjUzNTAgIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC5kYXJrZW4tMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTUzOTM1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtdGV4dC50ZXh0LWRhcmtlbi0xIHtcXG4gIGNvbG9yOiAjZTUzOTM1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTUzOTM1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQuZGFya2VuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QzMmYyZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLXRleHQudGV4dC1kYXJrZW4tMiB7XFxuICBjb2xvcjogI2QzMmYyZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QzMmYyZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLmRhcmtlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjNjI4MjggIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC10ZXh0LnRleHQtZGFya2VuLTMge1xcbiAgY29sb3I6ICNjNjI4MjggIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjNjI4MjggIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC5kYXJrZW4tNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjcxYzFjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtdGV4dC50ZXh0LWRhcmtlbi00IHtcXG4gIGNvbG9yOiAjYjcxYzFjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjcxYzFjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQuYWNjZW50LTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOGE4MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLXRleHQudGV4dC1hY2NlbnQtMSB7XFxuICBjb2xvcjogI2ZmOGE4MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOGE4MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLmFjY2VudC0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTIgIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC10ZXh0LnRleHQtYWNjZW50LTIge1xcbiAgY29sb3I6ICNmZjUyNTIgIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTIgIWltcG9ydGFudDtcXG59XFxuXFxuLnJlZC5hY2NlbnQtMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYxNzQ0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtdGV4dC50ZXh0LWFjY2VudC0zIHtcXG4gIGNvbG9yOiAjZmYxNzQ0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYxNzQ0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5yZWQuYWNjZW50LTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1MDAwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLXRleHQudGV4dC1hY2NlbnQtNCB7XFxuICBjb2xvcjogI2Q1MDAwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucmVkLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1MDAwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluayB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTkxZTYzICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLXRleHQge1xcbiAgY29sb3I6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmstd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTkxZTYzICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLmxpZ2h0ZW4tNSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNlNGVjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLXRleHQudGV4dC1saWdodGVuLTUge1xcbiAgY29sb3I6ICNmY2U0ZWMgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmstd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZTRlYyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay5saWdodGVuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4YmJkMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay10ZXh0LnRleHQtbGlnaHRlbi00IHtcXG4gIGNvbG9yOiAjZjhiYmQwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGJiZDAgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmsubGlnaHRlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDhmYjEgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmstdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XFxuICBjb2xvcjogI2Y0OGZiMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ4ZmIxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLmxpZ2h0ZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjA2MjkyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLXRleHQudGV4dC1saWdodGVuLTIge1xcbiAgY29sb3I6ICNmMDYyOTIgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmstd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwNjI5MiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay5saWdodGVuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjNDA3YSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay10ZXh0LnRleHQtbGlnaHRlbi0xIHtcXG4gIGNvbG9yOiAjZWM0MDdhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzQwN2EgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmsuZGFya2VuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4MWI2MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay10ZXh0LnRleHQtZGFya2VuLTEge1xcbiAgY29sb3I6ICNkODFiNjAgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmstd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDgxYjYwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLmRhcmtlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjMjE4NWIgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmstdGV4dC50ZXh0LWRhcmtlbi0yIHtcXG4gIGNvbG9yOiAjYzIxODViICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MyMTg1YiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay5kYXJrZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWQxNDU3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLXRleHQudGV4dC1kYXJrZW4tMyB7XFxuICBjb2xvcjogI2FkMTQ1NyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNhZDE0NTcgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmsuZGFya2VuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4MGU0ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay10ZXh0LnRleHQtZGFya2VuLTQge1xcbiAgY29sb3I6ICM4ODBlNGYgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmstd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODgwZTRmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLmFjY2VudC0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjgwYWIgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmstdGV4dC50ZXh0LWFjY2VudC0xIHtcXG4gIGNvbG9yOiAjZmY4MGFiICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmODBhYiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay5hY2NlbnQtMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY0MDgxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLXRleHQudGV4dC1hY2NlbnQtMiB7XFxuICBjb2xvcjogI2ZmNDA4MSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjQwODEgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmsuYWNjZW50LTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1MDA1NyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucGluay10ZXh0LnRleHQtYWNjZW50LTMge1xcbiAgY29sb3I6ICNmNTAwNTcgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmstd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjUwMDU3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLmFjY2VudC00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjNTExNjIgIWltcG9ydGFudDtcXG59XFxuXFxuLnBpbmstdGV4dC50ZXh0LWFjY2VudC00IHtcXG4gIGNvbG9yOiAjYzUxMTYyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5waW5rLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M1MTE2MiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM5YzI3YjAgIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS10ZXh0IHtcXG4gIGNvbG9yOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUubGlnaHRlbi01IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2U1ZjUgIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi01IHtcXG4gIGNvbG9yOiAjZjNlNWY1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZTVmNSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLmxpZ2h0ZW4tNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFiZWU3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XFxuICBjb2xvcjogI2UxYmVlNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMWJlZTcgIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS5saWdodGVuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NlOTNkOCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLXRleHQudGV4dC1saWdodGVuLTMge1xcbiAgY29sb3I6ICNjZTkzZDggIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2U5M2Q4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUubGlnaHRlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiYTY4YzggIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi0yIHtcXG4gIGNvbG9yOiAjYmE2OGM4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JhNjhjOCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLmxpZ2h0ZW4tMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWI0N2JjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XFxuICBjb2xvcjogI2FiNDdiYyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNhYjQ3YmMgIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS5kYXJrZW4tMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGUyNGFhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtdGV4dC50ZXh0LWRhcmtlbi0xIHtcXG4gIGNvbG9yOiAjOGUyNGFhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGUyNGFhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUuZGFya2VuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdiMWZhMiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLXRleHQudGV4dC1kYXJrZW4tMiB7XFxuICBjb2xvcjogIzdiMWZhMiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdiMWZhMiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLmRhcmtlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2YTFiOWEgIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS10ZXh0LnRleHQtZGFya2VuLTMge1xcbiAgY29sb3I6ICM2YTFiOWEgIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2YTFiOWEgIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS5kYXJrZW4tNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGExNDhjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtdGV4dC50ZXh0LWRhcmtlbi00IHtcXG4gIGNvbG9yOiAjNGExNDhjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGExNDhjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUuYWNjZW50LTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhODBmYyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLXRleHQudGV4dC1hY2NlbnQtMSB7XFxuICBjb2xvcjogI2VhODBmYyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhODBmYyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLmFjY2VudC0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDQwZmIgIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS10ZXh0LnRleHQtYWNjZW50LTIge1xcbiAgY29sb3I6ICNlMDQwZmIgIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDQwZmIgIWltcG9ydGFudDtcXG59XFxuXFxuLnB1cnBsZS5hY2NlbnQtMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDUwMGY5ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtdGV4dC50ZXh0LWFjY2VudC0zIHtcXG4gIGNvbG9yOiAjZDUwMGY5ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDUwMGY5ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5wdXJwbGUuYWNjZW50LTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FhMDBmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLXRleHQudGV4dC1hY2NlbnQtNCB7XFxuICBjb2xvcjogI2FhMDBmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ucHVycGxlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FhMDBmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY3M2FiNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtdGV4dCB7XFxuICBjb2xvcjogIzY3M2FiNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS5saWdodGVuLTUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZTdmNiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XFxuICBjb2xvcjogI2VkZTdmNiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZTdmNiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUubGlnaHRlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWM0ZTkgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLXRleHQudGV4dC1saWdodGVuLTQge1xcbiAgY29sb3I6ICNkMWM0ZTkgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWM0ZTkgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLmxpZ2h0ZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjM5ZGRiICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi0zIHtcXG4gIGNvbG9yOiAjYjM5ZGRiICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjM5ZGRiICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS5saWdodGVuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk1NzVjZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XFxuICBjb2xvcjogIzk1NzVjZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk1NzVjZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUubGlnaHRlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLXRleHQudGV4dC1saWdodGVuLTEge1xcbiAgY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLmRhcmtlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1ZTM1YjEgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLXRleHQudGV4dC1kYXJrZW4tMSB7XFxuICBjb2xvcjogIzVlMzViMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWUzNWIxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS5kYXJrZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTEyZGE4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS10ZXh0LnRleHQtZGFya2VuLTIge1xcbiAgY29sb3I6ICM1MTJkYTggIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUxMmRhOCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUuZGFya2VuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ1MjdhMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtdGV4dC50ZXh0LWRhcmtlbi0zIHtcXG4gIGNvbG9yOiAjNDUyN2EwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0NTI3YTAgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLmRhcmtlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMzMTFiOTIgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLXRleHQudGV4dC1kYXJrZW4tNCB7XFxuICBjb2xvcjogIzMxMWI5MiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzExYjkyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS5hY2NlbnQtMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjM4OGZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS10ZXh0LnRleHQtYWNjZW50LTEge1xcbiAgY29sb3I6ICNiMzg4ZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzODhmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUuYWNjZW50LTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdjNGRmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtdGV4dC50ZXh0LWFjY2VudC0yIHtcXG4gIGNvbG9yOiAjN2M0ZGZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3YzRkZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLmFjY2VudC0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2NTFmZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLXRleHQudGV4dC1hY2NlbnQtMyB7XFxuICBjb2xvcjogIzY1MWZmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1wdXJwbGUtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjUxZmZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS5hY2NlbnQtNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLXB1cnBsZS10ZXh0LnRleHQtYWNjZW50LTQge1xcbiAgY29sb3I6ICM2MjAwZWEgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtcHVycGxlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlYSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby10ZXh0IHtcXG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28td2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28ubGlnaHRlbi01IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlOGVhZjYgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby10ZXh0LnRleHQtbGlnaHRlbi01IHtcXG4gIGNvbG9yOiAjZThlYWY2ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZWFmNiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLmxpZ2h0ZW4tNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzVjYWU5ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28tdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XFxuICBjb2xvcjogI2M1Y2FlOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjNWNhZTkgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby5saWdodGVuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzlmYThkYSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLXRleHQudGV4dC1saWdodGVuLTMge1xcbiAgY29sb3I6ICM5ZmE4ZGEgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWZhOGRhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28ubGlnaHRlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTg2Y2IgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby10ZXh0LnRleHQtbGlnaHRlbi0yIHtcXG4gIGNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5ODZjYiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLmxpZ2h0ZW4tMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWM2YmMwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28tdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XFxuICBjb2xvcjogIzVjNmJjMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1YzZiYzAgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby5kYXJrZW4tMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzk0OWFiICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28tdGV4dC50ZXh0LWRhcmtlbi0xIHtcXG4gIGNvbG9yOiAjMzk0OWFiICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzk0OWFiICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28uZGFya2VuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwM2Y5ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLXRleHQudGV4dC1kYXJrZW4tMiB7XFxuICBjb2xvcjogIzMwM2Y5ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwM2Y5ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLmRhcmtlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyODM1OTMgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby10ZXh0LnRleHQtZGFya2VuLTMge1xcbiAgY29sb3I6ICMyODM1OTMgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyODM1OTMgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby5kYXJrZW4tNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWEyMzdlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28tdGV4dC50ZXh0LWRhcmtlbi00IHtcXG4gIGNvbG9yOiAjMWEyMzdlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28td2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWEyMzdlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28uYWNjZW50LTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhjOWVmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLXRleHQudGV4dC1hY2NlbnQtMSB7XFxuICBjb2xvcjogIzhjOWVmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhjOWVmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLmFjY2VudC0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1MzZkZmUgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby10ZXh0LnRleHQtYWNjZW50LTIge1xcbiAgY29sb3I6ICM1MzZkZmUgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1MzZkZmUgIWltcG9ydGFudDtcXG59XFxuXFxuLmluZGlnby5hY2NlbnQtMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q1YWZlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28tdGV4dC50ZXh0LWFjY2VudC0zIHtcXG4gIGNvbG9yOiAjM2Q1YWZlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28td2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q1YWZlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5pbmRpZ28uYWNjZW50LTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwNGZmZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLXRleHQudGV4dC1hY2NlbnQtNCB7XFxuICBjb2xvcjogIzMwNGZmZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uaW5kaWdvLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwNGZmZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLXRleHQge1xcbiAgY29sb3I6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLmxpZ2h0ZW4tNSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNmMmZkICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLXRleHQudGV4dC1saWdodGVuLTUge1xcbiAgY29sb3I6ICNlM2YyZmQgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzZjJmZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS5saWdodGVuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiZGVmYiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi00IHtcXG4gIGNvbG9yOiAjYmJkZWZiICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmRlZmIgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUubGlnaHRlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MGNhZjkgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XFxuICBjb2xvcjogIzkwY2FmOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTBjYWY5ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLmxpZ2h0ZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLXRleHQudGV4dC1saWdodGVuLTIge1xcbiAgY29sb3I6ICM2NGI1ZjYgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS5saWdodGVuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi0xIHtcXG4gIGNvbG9yOiAjNDJhNWY1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjUgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUuZGFya2VuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODhlNSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS10ZXh0LnRleHQtZGFya2VuLTEge1xcbiAgY29sb3I6ICMxZTg4ZTUgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU4OGU1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLmRhcmtlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTc2ZDIgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtdGV4dC50ZXh0LWRhcmtlbi0yIHtcXG4gIGNvbG9yOiAjMTk3NmQyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZkMiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS5kYXJrZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTU2NWMwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLXRleHQudGV4dC1kYXJrZW4tMyB7XFxuICBjb2xvcjogIzE1NjVjMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMxNTY1YzAgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUuZGFya2VuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkNDdhMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS10ZXh0LnRleHQtZGFya2VuLTQge1xcbiAgY29sb3I6ICMwZDQ3YTEgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ0N2ExICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLmFjY2VudC0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM4MmIxZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtdGV4dC50ZXh0LWFjY2VudC0xIHtcXG4gIGNvbG9yOiAjODJiMWZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgyYjFmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS5hY2NlbnQtMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLXRleHQudGV4dC1hY2NlbnQtMiB7XFxuICBjb2xvcjogIzQ0OGFmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUuYWNjZW50LTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5NzlmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS10ZXh0LnRleHQtYWNjZW50LTMge1xcbiAgY29sb3I6ICMyOTc5ZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjk3OWZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLmFjY2VudC00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTYyZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtdGV4dC50ZXh0LWFjY2VudC00IHtcXG4gIGNvbG9yOiAjMjk2MmZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5NjJmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDNhOWY0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLXRleHQge1xcbiAgY29sb3I6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDNhOWY0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLmxpZ2h0ZW4tNSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFmNWZlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLXRleHQudGV4dC1saWdodGVuLTUge1xcbiAgY29sb3I6ICNlMWY1ZmUgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UxZjVmZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS5saWdodGVuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzZTVmYyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi00IHtcXG4gIGNvbG9yOiAjYjNlNWZjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiM2U1ZmMgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUubGlnaHRlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM4MWQ0ZmEgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XFxuICBjb2xvcjogIzgxZDRmYSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODFkNGZhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLmxpZ2h0ZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGZjM2Y3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLXRleHQudGV4dC1saWdodGVuLTIge1xcbiAgY29sb3I6ICM0ZmMzZjcgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRmYzNmNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS5saWdodGVuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5YjZmNiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi0xIHtcXG4gIGNvbG9yOiAjMjliNmY2ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyOWI2ZjYgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUuZGFya2VuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzOWJlNSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS10ZXh0LnRleHQtZGFya2VuLTEge1xcbiAgY29sb3I6ICMwMzliZTUgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDM5YmU1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLmRhcmtlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjg4ZDEgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWRhcmtlbi0yIHtcXG4gIGNvbG9yOiAjMDI4OGQxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAyODhkMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS5kYXJrZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI3N2JkICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLXRleHQudGV4dC1kYXJrZW4tMyB7XFxuICBjb2xvcjogIzAyNzdiZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjc3YmQgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUuZGFya2VuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxNTc5YiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS10ZXh0LnRleHQtZGFya2VuLTQge1xcbiAgY29sb3I6ICMwMTU3OWIgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE1NzliICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLmFjY2VudC0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM4MGQ4ZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWFjY2VudC0xIHtcXG4gIGNvbG9yOiAjODBkOGZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgwZDhmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS5hY2NlbnQtMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDBjNGZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLXRleHQudGV4dC1hY2NlbnQtMiB7XFxuICBjb2xvcjogIzQwYzRmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0MGM0ZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUuYWNjZW50LTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjBmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtYmx1ZS10ZXh0LnRleHQtYWNjZW50LTMge1xcbiAgY29sb3I6ICMwMGIwZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiMGZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLmFjY2VudC00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDkxZWEgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWFjY2VudC00IHtcXG4gIGNvbG9yOiAjMDA5MWVhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ibHVlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTFlYSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiY2Q0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLXRleHQge1xcbiAgY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4td2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiY2Q0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLmxpZ2h0ZW4tNSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBmN2ZhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLXRleHQudGV4dC1saWdodGVuLTUge1xcbiAgY29sb3I6ICNlMGY3ZmEgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZjdmYSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi5saWdodGVuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IyZWJmMiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi10ZXh0LnRleHQtbGlnaHRlbi00IHtcXG4gIGNvbG9yOiAjYjJlYmYyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiMmViZjIgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4ubGlnaHRlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM4MGRlZWEgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4tdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XFxuICBjb2xvcjogIzgwZGVlYSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODBkZWVhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLmxpZ2h0ZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRkMGUxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLXRleHQudGV4dC1saWdodGVuLTIge1xcbiAgY29sb3I6ICM0ZGQwZTEgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkZDBlMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi5saWdodGVuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YzZkYSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi10ZXh0LnRleHQtbGlnaHRlbi0xIHtcXG4gIGNvbG9yOiAjMjZjNmRhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmM2ZGEgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4uZGFya2VuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYWNjMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi10ZXh0LnRleHQtZGFya2VuLTEge1xcbiAgY29sb3I6ICMwMGFjYzEgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhY2MxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLmRhcmtlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDk3YTcgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4tdGV4dC50ZXh0LWRhcmtlbi0yIHtcXG4gIGNvbG9yOiAjMDA5N2E3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTdhNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi5kYXJrZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MzhmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLXRleHQudGV4dC1kYXJrZW4tMyB7XFxuICBjb2xvcjogIzAwODM4ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDgzOGYgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4uZGFya2VuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjA2NCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi10ZXh0LnRleHQtZGFya2VuLTQge1xcbiAgY29sb3I6ICMwMDYwNjQgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4td2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2MDY0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLmFjY2VudC0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM4NGZmZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4tdGV4dC50ZXh0LWFjY2VudC0xIHtcXG4gIGNvbG9yOiAjODRmZmZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg0ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi5hY2NlbnQtMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMThmZmZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLXRleHQudGV4dC1hY2NlbnQtMiB7XFxuICBjb2xvcjogIzE4ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMxOGZmZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4uYWNjZW50LTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY3lhbi10ZXh0LnRleHQtYWNjZW50LTMge1xcbiAgY29sb3I6ICMwMGU1ZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4td2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWZmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLmFjY2VudC00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI4ZDQgIWltcG9ydGFudDtcXG59XFxuXFxuLmN5YW4tdGV4dC50ZXh0LWFjY2VudC00IHtcXG4gIGNvbG9yOiAjMDBiOGQ0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jeWFuLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjhkNCAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Njg4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLXRleHQge1xcbiAgY29sb3I6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Njg4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLmxpZ2h0ZW4tNSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBmMmYxICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLXRleHQudGV4dC1saWdodGVuLTUge1xcbiAgY29sb3I6ICNlMGYyZjEgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZjJmMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC5saWdodGVuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IyZGZkYiAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC10ZXh0LnRleHQtbGlnaHRlbi00IHtcXG4gIGNvbG9yOiAjYjJkZmRiICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiMmRmZGIgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwubGlnaHRlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM4MGNiYzQgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwtdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XFxuICBjb2xvcjogIzgwY2JjNCAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODBjYmM0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLmxpZ2h0ZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiNmFjICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLXRleHQudGV4dC1saWdodGVuLTIge1xcbiAgY29sb3I6ICM0ZGI2YWMgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjZhYyAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC5saWdodGVuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YSAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC10ZXh0LnRleHQtbGlnaHRlbi0xIHtcXG4gIGNvbG9yOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWEgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwuZGFya2VuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwODk3YiAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC10ZXh0LnRleHQtZGFya2VuLTEge1xcbiAgY29sb3I6ICMwMDg5N2IgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4OTdiICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLmRhcmtlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc5NmIgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwtdGV4dC50ZXh0LWRhcmtlbi0yIHtcXG4gIGNvbG9yOiAjMDA3OTZiICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzk2YiAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC5kYXJrZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2OTVjICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLXRleHQudGV4dC1kYXJrZW4tMyB7XFxuICBjb2xvcjogIzAwNjk1YyAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDY5NWMgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwuZGFya2VuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGQ0MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC10ZXh0LnRleHQtZGFya2VuLTQge1xcbiAgY29sb3I6ICMwMDRkNDAgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0ZDQwICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLmFjY2VudC0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNhN2ZmZWIgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwtdGV4dC50ZXh0LWFjY2VudC0xIHtcXG4gIGNvbG9yOiAjYTdmZmViICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E3ZmZlYiAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC5hY2NlbnQtMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRmZmRhICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLXRleHQudGV4dC1hY2NlbnQtMiB7XFxuICBjb2xvcjogIzY0ZmZkYSAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGZmZGEgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwuYWNjZW50LTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkZTliNiAhaW1wb3J0YW50O1xcbn1cXG5cXG4udGVhbC10ZXh0LnRleHQtYWNjZW50LTMge1xcbiAgY29sb3I6ICMxZGU5YjYgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWRlOWI2ICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLmFjY2VudC00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGJmYTUgIWltcG9ydGFudDtcXG59XFxuXFxuLnRlYWwtdGV4dC50ZXh0LWFjY2VudC00IHtcXG4gIGNvbG9yOiAjMDBiZmE1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi50ZWFsLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYmZhNSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4tdGV4dCB7XFxuICBjb2xvcjogIzRjYWY1MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4td2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi5saWdodGVuLTUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZjVlOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XFxuICBjb2xvcjogI2U4ZjVlOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZjVlOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4ubGlnaHRlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGU2YzkgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLXRleHQudGV4dC1saWdodGVuLTQge1xcbiAgY29sb3I6ICNjOGU2YzkgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGU2YzkgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLmxpZ2h0ZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTVkNmE3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi0zIHtcXG4gIGNvbG9yOiAjYTVkNmE3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTVkNmE3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi5saWdodGVuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgxYzc4NCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XFxuICBjb2xvcjogIzgxYzc4NCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgxYzc4NCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4ubGlnaHRlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2NmJiNmEgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLXRleHQudGV4dC1saWdodGVuLTEge1xcbiAgY29sb3I6ICM2NmJiNmEgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2NmJiNmEgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLmRhcmtlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0M2EwNDcgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLXRleHQudGV4dC1kYXJrZW4tMSB7XFxuICBjb2xvcjogIzQzYTA0NyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDNhMDQ3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi5kYXJrZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzg4ZTNjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi10ZXh0LnRleHQtZGFya2VuLTIge1xcbiAgY29sb3I6ICMzODhlM2MgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4OGUzYyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4uZGFya2VuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJlN2QzMiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4tdGV4dC50ZXh0LWRhcmtlbi0zIHtcXG4gIGNvbG9yOiAjMmU3ZDMyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyZTdkMzIgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLmRhcmtlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMxYjVlMjAgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLXRleHQudGV4dC1kYXJrZW4tNCB7XFxuICBjb2xvcjogIzFiNWUyMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4td2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWI1ZTIwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi5hY2NlbnQtMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjlmNmNhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi10ZXh0LnRleHQtYWNjZW50LTEge1xcbiAgY29sb3I6ICNiOWY2Y2EgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I5ZjZjYSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4uYWNjZW50LTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY5ZjBhZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4tdGV4dC50ZXh0LWFjY2VudC0yIHtcXG4gIGNvbG9yOiAjNjlmMGFlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2OWYwYWUgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLmFjY2VudC0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU2NzYgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLXRleHQudGV4dC1hY2NlbnQtMyB7XFxuICBjb2xvcjogIzAwZTY3NiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JlZW4td2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNjc2ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi5hY2NlbnQtNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBjODUzICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmVlbi10ZXh0LnRleHQtYWNjZW50LTQge1xcbiAgY29sb3I6ICMwMGM4NTMgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZWVuLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYzg1MyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4tdGV4dCB7XFxuICBjb2xvcjogIzhiYzM0YSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4td2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi5saWdodGVuLTUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjhlOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XFxuICBjb2xvcjogI2YxZjhlOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjhlOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4ubGlnaHRlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VkYzggIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLXRleHQudGV4dC1saWdodGVuLTQge1xcbiAgY29sb3I6ICNkY2VkYzggIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VkYzggIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLmxpZ2h0ZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzVlMWE1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi0zIHtcXG4gIGNvbG9yOiAjYzVlMWE1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzVlMWE1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi5saWdodGVuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FlZDU4MSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XFxuICBjb2xvcjogI2FlZDU4MSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FlZDU4MSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4ubGlnaHRlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM5Y2NjNjUgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLXRleHQudGV4dC1saWdodGVuLTEge1xcbiAgY29sb3I6ICM5Y2NjNjUgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM5Y2NjNjUgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLmRhcmtlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3Y2IzNDIgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLXRleHQudGV4dC1kYXJrZW4tMSB7XFxuICBjb2xvcjogIzdjYjM0MiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2NiMzQyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi5kYXJrZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjg5ZjM4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi10ZXh0LnRleHQtZGFya2VuLTIge1xcbiAgY29sb3I6ICM2ODlmMzggIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4OWYzOCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4uZGFya2VuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1OGIyZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWRhcmtlbi0zIHtcXG4gIGNvbG9yOiAjNTU4YjJmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1NThiMmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLmRhcmtlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzY5MWUgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLXRleHQudGV4dC1kYXJrZW4tNCB7XFxuICBjb2xvcjogIzMzNjkxZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4td2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM2OTFlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi5hY2NlbnQtMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NmZjkwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi10ZXh0LnRleHQtYWNjZW50LTEge1xcbiAgY29sb3I6ICNjY2ZmOTAgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjZmY5MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4uYWNjZW50LTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IyZmY1OSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWFjY2VudC0yIHtcXG4gIGNvbG9yOiAjYjJmZjU5ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiMmZmNTkgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLmFjY2VudC0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3NmZmMDMgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLXRleHQudGV4dC1hY2NlbnQtMyB7XFxuICBjb2xvcjogIzc2ZmYwMyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlnaHQtZ3JlZW4td2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzZmZjAzICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi5hY2NlbnQtNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRkZDE3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saWdodC1ncmVlbi10ZXh0LnRleHQtYWNjZW50LTQge1xcbiAgY29sb3I6ICM2NGRkMTcgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpZ2h0LWdyZWVuLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0ZGQxNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2RkYzM5ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLXRleHQge1xcbiAgY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUtd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2RkYzM5ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLmxpZ2h0ZW4tNSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmYmU3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLXRleHQudGV4dC1saWdodGVuLTUge1xcbiAgY29sb3I6ICNmOWZiZTcgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZmJlNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS5saWdodGVuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjRjMyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS10ZXh0LnRleHQtbGlnaHRlbi00IHtcXG4gIGNvbG9yOiAjZjBmNGMzICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGY0YzMgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUubGlnaHRlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmVlOWMgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUtdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XFxuICBjb2xvcjogI2U2ZWU5YyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlZTljICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLmxpZ2h0ZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNlNzc1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLXRleHQudGV4dC1saWdodGVuLTIge1xcbiAgY29sb3I6ICNkY2U3NzUgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUtd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjZTc3NSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS5saWdodGVuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZTE1NyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS10ZXh0LnRleHQtbGlnaHRlbi0xIHtcXG4gIGNvbG9yOiAjZDRlMTU3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkNGUxNTcgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUuZGFya2VuLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MwY2EzMyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS10ZXh0LnRleHQtZGFya2VuLTEge1xcbiAgY29sb3I6ICNjMGNhMzMgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUtd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzBjYTMzICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLmRhcmtlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNhZmI0MmIgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUtdGV4dC50ZXh0LWRhcmtlbi0yIHtcXG4gIGNvbG9yOiAjYWZiNDJiICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FmYjQyYiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS5kYXJrZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWU5ZDI0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLXRleHQudGV4dC1kYXJrZW4tMyB7XFxuICBjb2xvcjogIzllOWQyNCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZTlkMjQgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUuZGFya2VuLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgyNzcxNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS10ZXh0LnRleHQtZGFya2VuLTQge1xcbiAgY29sb3I6ICM4Mjc3MTcgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUtd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODI3NzE3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLmFjY2VudC0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGZmODEgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUtdGV4dC50ZXh0LWFjY2VudC0xIHtcXG4gIGNvbG9yOiAjZjRmZjgxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZmY4MSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS5hY2NlbnQtMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVmZjQxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLXRleHQudGV4dC1hY2NlbnQtMiB7XFxuICBjb2xvcjogI2VlZmY0MSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWZmNDEgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUuYWNjZW50LTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M2ZmYwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGltZS10ZXh0LnRleHQtYWNjZW50LTMge1xcbiAgY29sb3I6ICNjNmZmMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUtd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzZmZjAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLmFjY2VudC00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNhZWVhMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmxpbWUtdGV4dC50ZXh0LWFjY2VudC00IHtcXG4gIGNvbG9yOiAjYWVlYTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saW1lLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FlZWEwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmViM2IgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy10ZXh0IHtcXG4gIGNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3cubGlnaHRlbi01IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZkZTcgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy10ZXh0LnRleHQtbGlnaHRlbi01IHtcXG4gIGNvbG9yOiAjZmZmZGU3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmRlNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LmxpZ2h0ZW4tNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOWM0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XFxuICBjb2xvcjogI2ZmZjljNCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY5YzQgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy5saWdodGVuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjU5ZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LXRleHQudGV4dC1saWdodGVuLTMge1xcbiAgY29sb3I6ICNmZmY1OWQgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNTlkICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3cubGlnaHRlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYxNzYgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy10ZXh0LnRleHQtbGlnaHRlbi0yIHtcXG4gIGNvbG9yOiAjZmZmMTc2ICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjE3NiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LmxpZ2h0ZW4tMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XFxuICBjb2xvcjogI2ZmZWU1OCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmVlNTggIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy5kYXJrZW4tMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRkODM1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctdGV4dC50ZXh0LWRhcmtlbi0xIHtcXG4gIGNvbG9yOiAjZmRkODM1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRkODM1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3cuZGFya2VuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiYzAyZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LXRleHQudGV4dC1kYXJrZW4tMiB7XFxuICBjb2xvcjogI2ZiYzAyZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiYzAyZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LmRhcmtlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWE4MjUgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy10ZXh0LnRleHQtZGFya2VuLTMge1xcbiAgY29sb3I6ICNmOWE4MjUgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWE4MjUgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy5kYXJrZW4tNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjU3ZjE3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctdGV4dC50ZXh0LWRhcmtlbi00IHtcXG4gIGNvbG9yOiAjZjU3ZjE3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjU3ZjE3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3cuYWNjZW50LTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmY4ZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LXRleHQudGV4dC1hY2NlbnQtMSB7XFxuICBjb2xvcjogI2ZmZmY4ZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmY4ZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LmFjY2VudC0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy10ZXh0LnRleHQtYWNjZW50LTIge1xcbiAgY29sb3I6ICNmZmZmMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLnllbGxvdy5hY2NlbnQtMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctdGV4dC50ZXh0LWFjY2VudC0zIHtcXG4gIGNvbG9yOiAjZmZlYTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3ctd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi55ZWxsb3cuYWNjZW50LTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDYwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LXRleHQudGV4dC1hY2NlbnQtNCB7XFxuICBjb2xvcjogI2ZmZDYwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ueWVsbG93LXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDYwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItdGV4dCB7XFxuICBjb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci5saWdodGVuLTUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjhlMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XFxuICBjb2xvcjogI2ZmZjhlMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjhlMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXIubGlnaHRlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmVjYjMgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLXRleHQudGV4dC1saWdodGVuLTQge1xcbiAgY29sb3I6ICNmZmVjYjMgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmVjYjMgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLmxpZ2h0ZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlMDgyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci10ZXh0LnRleHQtbGlnaHRlbi0zIHtcXG4gIGNvbG9yOiAjZmZlMDgyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlMDgyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci5saWdodGVuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDU0ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XFxuICBjb2xvcjogI2ZmZDU0ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDU0ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXIubGlnaHRlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNhMjggIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLXRleHQudGV4dC1saWdodGVuLTEge1xcbiAgY29sb3I6ICNmZmNhMjggIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNhMjggIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLmRhcmtlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmIzMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLXRleHQudGV4dC1kYXJrZW4tMSB7XFxuICBjb2xvcjogI2ZmYjMwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiMzAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci5kYXJrZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhMDAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci10ZXh0LnRleHQtZGFya2VuLTIge1xcbiAgY29sb3I6ICNmZmEwMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYTAwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXIuZGFya2VuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOGYwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItdGV4dC50ZXh0LWRhcmtlbi0zIHtcXG4gIGNvbG9yOiAjZmY4ZjAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjhmMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLmRhcmtlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLXRleHQudGV4dC1kYXJrZW4tNCB7XFxuICBjb2xvcjogI2ZmNmYwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci5hY2NlbnQtMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTdmICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci10ZXh0LnRleHQtYWNjZW50LTEge1xcbiAgY29sb3I6ICNmZmU1N2YgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTU3ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXIuYWNjZW50LTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItdGV4dC50ZXh0LWFjY2VudC0yIHtcXG4gIGNvbG9yOiAjZmZkNzQwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLmFjY2VudC0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmM0MDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLXRleHQudGV4dC1hY2NlbnQtMyB7XFxuICBjb2xvcjogI2ZmYzQwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYW1iZXItd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjNDAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci5hY2NlbnQtNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhYjAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5hbWJlci10ZXh0LnRleHQtYWNjZW50LTQge1xcbiAgY29sb3I6ICNmZmFiMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmFtYmVyLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWIwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjk4MDAgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS10ZXh0IHtcXG4gIGNvbG9yOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2Utd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2UubGlnaHRlbi01IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYzZTAgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS10ZXh0LnRleHQtbGlnaHRlbi01IHtcXG4gIGNvbG9yOiAjZmZmM2UwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2Utd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNlMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLmxpZ2h0ZW4tNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlMGIyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XFxuICBjb2xvcjogI2ZmZTBiMiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmUwYjIgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS5saWdodGVuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2M4MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLXRleHQudGV4dC1saWdodGVuLTMge1xcbiAgY29sb3I6ICNmZmNjODAgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjYzgwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2UubGlnaHRlbi0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmI3NGQgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS10ZXh0LnRleHQtbGlnaHRlbi0yIHtcXG4gIGNvbG9yOiAjZmZiNzRkICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2Utd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYjc0ZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLmxpZ2h0ZW4tMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhNzI2ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XFxuICBjb2xvcjogI2ZmYTcyNiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmE3MjYgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS5kYXJrZW4tMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmI4YzAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2UtdGV4dC50ZXh0LWRhcmtlbi0xIHtcXG4gIGNvbG9yOiAjZmI4YzAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2Utd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmI4YzAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2UuZGFya2VuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1N2MwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLXRleHQudGV4dC1kYXJrZW4tMiB7XFxuICBjb2xvcjogI2Y1N2MwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1N2MwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLmRhcmtlbi0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZjZjMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTMge1xcbiAgY29sb3I6ICNlZjZjMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZjZjMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS5kYXJrZW4tNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY1MTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2UtdGV4dC50ZXh0LWRhcmtlbi00IHtcXG4gIGNvbG9yOiAjZTY1MTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2Utd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY1MTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2UuYWNjZW50LTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDE4MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLXRleHQudGV4dC1hY2NlbnQtMSB7XFxuICBjb2xvcjogI2ZmZDE4MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDE4MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLmFjY2VudC0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmFiNDAgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTIge1xcbiAgY29sb3I6ICNmZmFiNDAgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmFiNDAgIWltcG9ydGFudDtcXG59XFxuXFxuLm9yYW5nZS5hY2NlbnQtMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5MTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2UtdGV4dC50ZXh0LWFjY2VudC0zIHtcXG4gIGNvbG9yOiAjZmY5MTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2Utd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5MTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5vcmFuZ2UuYWNjZW50LTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmQwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLXRleHQudGV4dC1hY2NlbnQtNCB7XFxuICBjb2xvcjogI2ZmNmQwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ub3JhbmdlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmQwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2Uge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2UtdGV4dCB7XFxuICBjb2xvcjogI2ZmNTcyMiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2Utd2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS5saWdodGVuLTUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiZTllNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XFxuICBjb2xvcjogI2ZiZTllNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2Utd2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiZTllNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2UubGlnaHRlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNjYmMgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLXRleHQudGV4dC1saWdodGVuLTQge1xcbiAgY29sb3I6ICNmZmNjYmMgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNjYmMgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLmxpZ2h0ZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhYjkxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS10ZXh0LnRleHQtbGlnaHRlbi0zIHtcXG4gIGNvbG9yOiAjZmZhYjkxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhYjkxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS5saWdodGVuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOGE2NSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XFxuICBjb2xvcjogI2ZmOGE2NSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2Utd2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOGE2NSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2UubGlnaHRlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjcwNDMgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLXRleHQudGV4dC1saWdodGVuLTEge1xcbiAgY29sb3I6ICNmZjcwNDMgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjcwNDMgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLmRhcmtlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDUxMWUgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLXRleHQudGV4dC1kYXJrZW4tMSB7XFxuICBjb2xvcjogI2Y0NTExZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2Utd2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ1MTFlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS5kYXJrZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0YTE5ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTIge1xcbiAgY29sb3I6ICNlNjRhMTkgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2NGExOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2UuZGFya2VuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4NDMxNSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWRhcmtlbi0zIHtcXG4gIGNvbG9yOiAjZDg0MzE1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkODQzMTUgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLmRhcmtlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiZjM2MGMgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLXRleHQudGV4dC1kYXJrZW4tNCB7XFxuICBjb2xvcjogI2JmMzYwYyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2Utd2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmYzNjBjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS5hY2NlbnQtMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5ZTgwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTEge1xcbiAgY29sb3I6ICNmZjllODAgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLXdhdmVzLndhdmVzLWFjY2VudC0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOWU4MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2UuYWNjZW50LTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmU0MCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWFjY2VudC0yIHtcXG4gIGNvbG9yOiAjZmY2ZTQwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS13YXZlcy53YXZlcy1hY2NlbnQtMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZlNDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLmFjY2VudC0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjNkMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLXRleHQudGV4dC1hY2NlbnQtMyB7XFxuICBjb2xvcjogI2ZmM2QwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZGVlcC1vcmFuZ2Utd2F2ZXMud2F2ZXMtYWNjZW50LTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYzZDAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS5hY2NlbnQtNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGQyYzAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5kZWVwLW9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTQge1xcbiAgY29sb3I6ICNkZDJjMDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmRlZXAtb3JhbmdlLXdhdmVzLndhdmVzLWFjY2VudC00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkMmMwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5NTU0OCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24tdGV4dCB7XFxuICBjb2xvcjogIzc5NTU0OCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24td2F2ZXMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5icm93bi5saWdodGVuLTUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWJlOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24tdGV4dC50ZXh0LWxpZ2h0ZW4tNSB7XFxuICBjb2xvcjogI2VmZWJlOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24td2F2ZXMud2F2ZXMtbGlnaHRlbi01IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWJlOSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24ubGlnaHRlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuXFxuLmJyb3duLXRleHQudGV4dC1saWdodGVuLTQge1xcbiAgY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuXFxuLmJyb3duLXdhdmVzLndhdmVzLWxpZ2h0ZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuXFxuLmJyb3duLmxpZ2h0ZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5icm93bi10ZXh0LnRleHQtbGlnaHRlbi0zIHtcXG4gIGNvbG9yOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5icm93bi13YXZlcy53YXZlcy1saWdodGVuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5icm93bi5saWdodGVuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ExODg3ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24tdGV4dC50ZXh0LWxpZ2h0ZW4tMiB7XFxuICBjb2xvcjogI2ExODg3ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24td2F2ZXMud2F2ZXMtbGlnaHRlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ExODg3ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24ubGlnaHRlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuXFxuLmJyb3duLXRleHQudGV4dC1saWdodGVuLTEge1xcbiAgY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuXFxuLmJyb3duLXdhdmVzLndhdmVzLWxpZ2h0ZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuXFxuLmJyb3duLmRhcmtlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2ZDRjNDEgIWltcG9ydGFudDtcXG59XFxuXFxuLmJyb3duLXRleHQudGV4dC1kYXJrZW4tMSB7XFxuICBjb2xvcjogIzZkNGM0MSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24td2F2ZXMud2F2ZXMtZGFya2VuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmQ0YzQxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5icm93bi5kYXJrZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5icm93bi10ZXh0LnRleHQtZGFya2VuLTIge1xcbiAgY29sb3I6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuXFxuLmJyb3duLXdhdmVzLndhdmVzLWRhcmtlbi0yIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24uZGFya2VuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRlMzQyZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24tdGV4dC50ZXh0LWRhcmtlbi0zIHtcXG4gIGNvbG9yOiAjNGUzNDJlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5icm93bi13YXZlcy53YXZlcy1kYXJrZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZTM0MmUgIWltcG9ydGFudDtcXG59XFxuXFxuLmJyb3duLmRhcmtlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMzZTI3MjMgIWltcG9ydGFudDtcXG59XFxuXFxuLmJyb3duLXRleHQudGV4dC1kYXJrZW4tNCB7XFxuICBjb2xvcjogIzNlMjcyMyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYnJvd24td2F2ZXMud2F2ZXMtZGFya2VuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2UyNzIzICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLWdyZXkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS1ncmV5LXRleHQge1xcbiAgY29sb3I6ICM2MDdkOGIgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS13YXZlcyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGIgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS5saWdodGVuLTUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWZmMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS1ncmV5LXRleHQudGV4dC1saWdodGVuLTUge1xcbiAgY29sb3I6ICNlY2VmZjEgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS13YXZlcy53YXZlcy1saWdodGVuLTUgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZmYxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLWdyZXkubGlnaHRlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS10ZXh0LnRleHQtbGlnaHRlbi00IHtcXG4gIGNvbG9yOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLWdyZXktd2F2ZXMud2F2ZXMtbGlnaHRlbi00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS1ncmV5LmxpZ2h0ZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLWdyZXktdGV4dC50ZXh0LWxpZ2h0ZW4tMyB7XFxuICBjb2xvcjogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS1ncmV5LXdhdmVzLndhdmVzLWxpZ2h0ZW4tMyAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiMGJlYzUgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS5saWdodGVuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkwYTRhZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS1ncmV5LXRleHQudGV4dC1saWdodGVuLTIge1xcbiAgY29sb3I6ICM5MGE0YWUgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS13YXZlcy53YXZlcy1saWdodGVuLTIgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTBhNGFlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLWdyZXkubGlnaHRlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS10ZXh0LnRleHQtbGlnaHRlbi0xIHtcXG4gIGNvbG9yOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLWdyZXktd2F2ZXMud2F2ZXMtbGlnaHRlbi0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS1ncmV5LmRhcmtlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDZlN2EgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS10ZXh0LnRleHQtZGFya2VuLTEge1xcbiAgY29sb3I6ICM1NDZlN2EgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS13YXZlcy53YXZlcy1kYXJrZW4tMSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDZlN2EgIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS5kYXJrZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLWdyZXktdGV4dC50ZXh0LWRhcmtlbi0yIHtcXG4gIGNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLWdyZXktd2F2ZXMud2F2ZXMtZGFya2VuLTIgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ibHVlLWdyZXkuZGFya2VuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS1ncmV5LXRleHQudGV4dC1kYXJrZW4tMyB7XFxuICBjb2xvcjogIzM3NDc0ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS1ncmV5LXdhdmVzLndhdmVzLWRhcmtlbi0zIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0ZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmx1ZS1ncmV5LmRhcmtlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNjMyMzggIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS10ZXh0LnRleHQtZGFya2VuLTQge1xcbiAgY29sb3I6ICMyNjMyMzggIWltcG9ydGFudDtcXG59XFxuXFxuLmJsdWUtZ3JleS13YXZlcy53YXZlcy1kYXJrZW4tNCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNjMyMzggIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZXkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JleS10ZXh0IHtcXG4gIGNvbG9yOiAjOWU5ZTllICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmV5LXdhdmVzIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JleS5saWdodGVuLTUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JleS10ZXh0LnRleHQtbGlnaHRlbi01IHtcXG4gIGNvbG9yOiAjZmFmYWZhICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmV5LXdhdmVzLndhdmVzLWxpZ2h0ZW4tNSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZXkubGlnaHRlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZXktdGV4dC50ZXh0LWxpZ2h0ZW4tNCB7XFxuICBjb2xvcjogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JleS13YXZlcy53YXZlcy1saWdodGVuLTQgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmV5LmxpZ2h0ZW4tMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmV5LXRleHQudGV4dC1saWdodGVuLTMge1xcbiAgY29sb3I6ICNlZWVlZWUgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZXktd2F2ZXMud2F2ZXMtbGlnaHRlbi0zIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JleS5saWdodGVuLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JleS10ZXh0LnRleHQtbGlnaHRlbi0yIHtcXG4gIGNvbG9yOiAjZTBlMGUwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmV5LXdhdmVzLndhdmVzLWxpZ2h0ZW4tMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZXkubGlnaHRlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZXktdGV4dC50ZXh0LWxpZ2h0ZW4tMSB7XFxuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JleS13YXZlcy53YXZlcy1saWdodGVuLTEgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmV5LmRhcmtlbi0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3NTc1NzUgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZXktdGV4dC50ZXh0LWRhcmtlbi0xIHtcXG4gIGNvbG9yOiAjNzU3NTc1ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmV5LXdhdmVzLndhdmVzLWRhcmtlbi0xIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc1NzU3NSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JleS5kYXJrZW4tMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmV5LXRleHQudGV4dC1kYXJrZW4tMiB7XFxuICBjb2xvcjogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JleS13YXZlcy53YXZlcy1kYXJrZW4tMiAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZXkuZGFya2VuLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MiAhaW1wb3J0YW50O1xcbn1cXG5cXG4uZ3JleS10ZXh0LnRleHQtZGFya2VuLTMge1xcbiAgY29sb3I6ICM0MjQyNDIgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZXktd2F2ZXMud2F2ZXMtZGFya2VuLTMgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmV5LmRhcmtlbi00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjEgIWltcG9ydGFudDtcXG59XFxuXFxuLmdyZXktdGV4dC50ZXh0LWRhcmtlbi00IHtcXG4gIGNvbG9yOiAjMjEyMTIxICFpbXBvcnRhbnQ7XFxufVxcblxcbi5ncmV5LXdhdmVzLndhdmVzLWRhcmtlbi00IC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmxhY2sge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uYmxhY2stdGV4dCB7XFxuICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2hpdGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2hpdGUtdGV4dCB7XFxuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4udHJhbnNwYXJlbnQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuXFxuLnRyYW5zcGFyZW50LXRleHQge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcblxcbi8qKlxcbiAqIHByaXNtLmpzIFR3aWxpZ2h0IHRoZW1lXFxuICogQmFzZWQgKG1vcmUgb3IgbGVzcykgb24gdGhlIFR3aWxpZ2h0IHRoZW1lIG9yaWdpbmFsbHkgb2YgVGV4dG1hdGUgZmFtZS5cXG4gKiBAYXV0aG9yIFJlbXkgQmFjaFxcbiAqL1xcbmNvZGVbY2xhc3MqPWxhbmd1YWdlLV0sXFxucHJlW2NsYXNzKj1sYW5ndWFnZS1dIHtcXG4gIGNvbG9yOiB3aGl0ZTtcXG4gIGJhY2tncm91bmQ6IG5vbmU7XFxuICBmb250LWZhbWlseTogQ29uc29sYXMsIE1vbmFjbywgXFxcIkFuZGFsZSBNb25vXFxcIiwgXFxcIlVidW50dSBNb25vXFxcIiwgbW9ub3NwYWNlO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIHRleHQtc2hhZG93OiAwIC0wLjFlbSAwLjJlbSBibGFjaztcXG4gIHdoaXRlLXNwYWNlOiBwcmU7XFxuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcXG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcXG4gIHdvcmQtd3JhcDogbm9ybWFsO1xcbiAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gIC1tb3otdGFiLXNpemU6IDQ7XFxuICAtby10YWItc2l6ZTogNDtcXG4gIHRhYi1zaXplOiA0O1xcbiAgLXdlYmtpdC1oeXBoZW5zOiBub25lO1xcbiAgLW1vei1oeXBoZW5zOiBub25lO1xcbiAgLW1zLWh5cGhlbnM6IG5vbmU7XFxuICBoeXBoZW5zOiBub25lO1xcbn1cXG5cXG5wcmVbY2xhc3MqPWxhbmd1YWdlLV0sXFxuOm5vdChwcmUpID4gY29kZVtjbGFzcyo9bGFuZ3VhZ2UtXSB7XFxuICBiYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDglKTsgLyogIzE0MTQxNCAqL1xcbn1cXG5cXG4vKiBDb2RlIGJsb2NrcyAqL1xcbnByZVtjbGFzcyo9bGFuZ3VhZ2UtXSB7XFxuICBib3JkZXItcmFkaXVzOiAwLjVlbTtcXG4gIGJvcmRlcjogMC4zZW0gc29saWQgaHNsKDAsIDAlLCAzMyUpOyAvKiAjMjgyQTJCICovXFxuICBib3gtc2hhZG93OiAxcHggMXB4IDAuNWVtIGJsYWNrIGluc2V0O1xcbiAgbWFyZ2luOiAwLjVlbSAwO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICBwYWRkaW5nOiAxZW07XFxufVxcblxcbnByZVtjbGFzcyo9bGFuZ3VhZ2UtXTo6LW1vei1zZWxlY3Rpb24ge1xcbiAgLyogRmlyZWZveCAqL1xcbiAgYmFja2dyb3VuZDogaHNsKDIwMCwgNCUsIDE2JSk7IC8qICMyODJBMkIgKi9cXG59XFxuXFxucHJlW2NsYXNzKj1sYW5ndWFnZS1dOjpzZWxlY3Rpb24ge1xcbiAgLyogU2FmYXJpICovXFxuICBiYWNrZ3JvdW5kOiBoc2woMjAwLCA0JSwgMTYlKTsgLyogIzI4MkEyQiAqL1xcbn1cXG5cXG4vKiBUZXh0IFNlbGVjdGlvbiBjb2xvdXIgKi9cXG5wcmVbY2xhc3MqPWxhbmd1YWdlLV06Oi1tb3otc2VsZWN0aW9uLCBwcmVbY2xhc3MqPWxhbmd1YWdlLV0gOjotbW96LXNlbGVjdGlvbixcXG5jb2RlW2NsYXNzKj1sYW5ndWFnZS1dOjotbW96LXNlbGVjdGlvbiwgY29kZVtjbGFzcyo9bGFuZ3VhZ2UtXSA6Oi1tb3otc2VsZWN0aW9uIHtcXG4gIHRleHQtc2hhZG93OiBub25lO1xcbiAgYmFja2dyb3VuZDogaHNsYSgwLCAwJSwgOTMlLCAwLjE1KTsgLyogI0VERURFRCAqL1xcbn1cXG5cXG5wcmVbY2xhc3MqPWxhbmd1YWdlLV06OnNlbGVjdGlvbiwgcHJlW2NsYXNzKj1sYW5ndWFnZS1dIDo6c2VsZWN0aW9uLFxcbmNvZGVbY2xhc3MqPWxhbmd1YWdlLV06OnNlbGVjdGlvbiwgY29kZVtjbGFzcyo9bGFuZ3VhZ2UtXSA6OnNlbGVjdGlvbiB7XFxuICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gIGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDkzJSwgMC4xNSk7IC8qICNFREVERUQgKi9cXG59XFxuXFxuLyogSW5saW5lIGNvZGUgKi9cXG46bm90KHByZSkgPiBjb2RlW2NsYXNzKj1sYW5ndWFnZS1dIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuM2VtO1xcbiAgYm9yZGVyOiAwLjEzZW0gc29saWQgaHNsKDAsIDAlLCAzMyUpOyAvKiAjNTQ1NDU0ICovXFxuICBib3gtc2hhZG93OiAxcHggMXB4IDAuM2VtIC0wLjFlbSBibGFjayBpbnNldDtcXG4gIHBhZGRpbmc6IDAuMTVlbSAwLjJlbSAwLjA1ZW07XFxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbn1cXG5cXG4udG9rZW4uY29tbWVudCxcXG4udG9rZW4ucHJvbG9nLFxcbi50b2tlbi5kb2N0eXBlLFxcbi50b2tlbi5jZGF0YSB7XFxuICBjb2xvcjogaHNsKDAsIDAlLCA0NyUpOyAvKiAjNzc3Nzc3ICovXFxufVxcblxcbi50b2tlbi5wdW5jdHVhdGlvbiB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcblxcbi5uYW1lc3BhY2Uge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG5cXG4udG9rZW4udGFnLFxcbi50b2tlbi5ib29sZWFuLFxcbi50b2tlbi5udW1iZXIsXFxuLnRva2VuLmRlbGV0ZWQge1xcbiAgY29sb3I6IGhzbCgxNCwgNTglLCA1NSUpOyAvKiAjQ0Y2QTRDICovXFxufVxcblxcbi50b2tlbi5rZXl3b3JkLFxcbi50b2tlbi5wcm9wZXJ0eSxcXG4udG9rZW4uc2VsZWN0b3IsXFxuLnRva2VuLmNvbnN0YW50LFxcbi50b2tlbi5zeW1ib2wsXFxuLnRva2VuLmJ1aWx0aW4ge1xcbiAgY29sb3I6IGhzbCg1MywgODklLCA3OSUpOyAvKiAjRjlFRTk4ICovXFxufVxcblxcbi50b2tlbi5hdHRyLW5hbWUsXFxuLnRva2VuLmF0dHItdmFsdWUsXFxuLnRva2VuLnN0cmluZyxcXG4udG9rZW4uY2hhcixcXG4udG9rZW4ub3BlcmF0b3IsXFxuLnRva2VuLmVudGl0eSxcXG4udG9rZW4udXJsLFxcbi5sYW5ndWFnZS1jc3MgLnRva2VuLnN0cmluZyxcXG4uc3R5bGUgLnRva2VuLnN0cmluZyxcXG4udG9rZW4udmFyaWFibGUsXFxuLnRva2VuLmluc2VydGVkIHtcXG4gIGNvbG9yOiBoc2woNzYsIDIxJSwgNTIlKTsgLyogIzhGOUQ2QSAqL1xcbn1cXG5cXG4udG9rZW4uYXRydWxlIHtcXG4gIGNvbG9yOiBoc2woMjE4LCAyMiUsIDU1JSk7IC8qICM3NTg3QTYgKi9cXG59XFxuXFxuLnRva2VuLnJlZ2V4LFxcbi50b2tlbi5pbXBvcnRhbnQge1xcbiAgY29sb3I6IGhzbCg0MiwgNzUlLCA2NSUpOyAvKiAjRTlDMDYyICovXFxufVxcblxcbi50b2tlbi5pbXBvcnRhbnQsXFxuLnRva2VuLmJvbGQge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcblxcbi50b2tlbi5pdGFsaWMge1xcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcbn1cXG5cXG4udG9rZW4uZW50aXR5IHtcXG4gIGN1cnNvcjogaGVscDtcXG59XFxuXFxucHJlW2RhdGEtbGluZV0ge1xcbiAgcGFkZGluZzogMWVtIDAgMWVtIDNlbTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuXFxuLyogTWFya3VwICovXFxuLmxhbmd1YWdlLW1hcmt1cCAudG9rZW4udGFnLFxcbi5sYW5ndWFnZS1tYXJrdXAgLnRva2VuLmF0dHItbmFtZSxcXG4ubGFuZ3VhZ2UtbWFya3VwIC50b2tlbi5wdW5jdHVhdGlvbiB7XFxuICBjb2xvcjogaHNsKDMzLCAzMyUsIDUyJSk7IC8qICNBQzg4NUIgKi9cXG59XFxuXFxuLyogTWFrZSB0aGUgdG9rZW5zIHNpdCBhYm92ZSB0aGUgbGluZSBoaWdobGlnaHQgc28gdGhlIGNvbG91cnMgZG9uJ3QgbG9vayBmYWRlZC4gKi9cXG4udG9rZW4ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgei1pbmRleDogMTtcXG59XFxuXFxuLmxpbmUtaGlnaGxpZ2h0IHtcXG4gIGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDMzJSwgMC4yNSk7IC8qICM1NDU0NTQgKi9cXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgaHNsYSgwLCAwJSwgMzMlLCAwLjEpIDcwJSwgaHNsYSgwLCAwJSwgMzMlLCAwKSk7IC8qICM1NDU0NTQgKi9cXG4gIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgaHNsKDAsIDAlLCAzMyUpOyAvKiAjNTQ1NDU0ICovXFxuICBib3JkZXItdG9wOiAxcHggZGFzaGVkIGhzbCgwLCAwJSwgMzMlKTsgLyogIzU0NTQ1NCAqL1xcbiAgbGVmdDogMDtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgbWFyZ2luLXRvcDogMC43NWVtOyAvKiBTYW1lIGFzIC5wcmlzbeKAmXMgcGFkZGluZy10b3AgKi9cXG4gIHBhZGRpbmc6IGluaGVyaXQgMDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcmlnaHQ6IDA7XFxuICB3aGl0ZS1zcGFjZTogcHJlO1xcbiAgei1pbmRleDogMDtcXG59XFxuXFxuLmxpbmUtaGlnaGxpZ2h0OmJlZm9yZSxcXG4ubGluZS1oaWdobGlnaHRbZGF0YS1lbmRdOmFmdGVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMTUsIDE1JSwgNTklKTsgLyogIzg3OTRBNiAqL1xcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XFxuICBib3gtc2hhZG93OiAwIDFweCB3aGl0ZTtcXG4gIGNvbG9yOiBoc2woMjQsIDIwJSwgOTUlKTsgLyogI0Y1RjJGMCAqL1xcbiAgY29udGVudDogYXR0cihkYXRhLXN0YXJ0KTtcXG4gIGZvbnQ6IGJvbGQgNjUlLzEuNSBzYW5zLXNlcmlmO1xcbiAgbGVmdDogMC42ZW07XFxuICBtaW4td2lkdGg6IDFlbTtcXG4gIHBhZGRpbmc6IDAgMC41ZW07XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gIHRvcDogMC40ZW07XFxuICB2ZXJ0aWNhbC1hbGlnbjogMC4zZW07XFxufVxcblxcbi5saW5lLWhpZ2hsaWdodFtkYXRhLWVuZF06YWZ0ZXIge1xcbiAgYm90dG9tOiAwLjRlbTtcXG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1lbmQpO1xcbiAgdG9wOiBhdXRvO1xcbn1cXG5cXG4ud2luZG93IHtcXG4gIGZvbnQtZmFtaWx5OiBcXFwiVWJ1bnR1XFxcIiwgc2Fucy1zZXJpZjtcXG4gIGZvbnQtc2l6ZTogMTdweDtcXG4gIHdpZHRoOiA2MDBweDtcXG4gIG1hcmdpbjogNzVweCBhdXRvO1xcbiAgYmFja2dyb3VuZDogIzJjM2U1MDtcXG4gIGhlaWdodDogMzUwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBkaXNwbGF5OiByZWxhdGl2ZTtcXG4gIGJveC1zaGFkb3c6IDEwcHggMTBweCAxMHB4ICM4ODg4ODg7XFxufVxcblxcbi5hZnRlcmNsb3NlIHtcXG4gIGNvbG9yOiAjMzQ0OTVlO1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuXFxuLm9wZW4ge1xcbiAgY29sb3I6ICNmZmY7XFxuICBwYWRkaW5nOiAxNXB4O1xcbiAgYmFja2dyb3VuZDogIzJlY2M3MTtcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gIGJvcmRlcjogbm9uZTtcXG59XFxuXFxuLmJhc2gge1xcbiAgd2lkdGg6IDYwMHB4O1xcbiAgYmFja2dyb3VuZDogIzM0NDk1ZTtcXG4gIGhlaWdodDogMzEwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICB0b3A6IDQwcHg7XFxuICBkaXNwbGF5OiBhYnNvbHV0ZTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuLmJhc2ggLmNvbW1hbmQ6OmJlZm9yZSB7XFxuICBjb250ZW50OiBcXFwidXNlckBtYWNoaW5lICQgOiBcXFwiO1xcbiAgY29sb3I6ICMyZWNjNzE7XFxufVxcbi5iYXNoIC5yZXN1bHRhOjpiZWZvcmUge1xcbiAgY29udGVudDogXFxcIj4+XFxcIjtcXG4gIGNvbG9yOiAjMmVjYzcxO1xcbn1cXG5cXG4vKiBlZmZlY3RlZCBieSBjb250cm9sbGVycyAqL1xcbi53aW5kb3dtYXgge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXJnaW46IGF1dG87XFxuICBiYWNrZ3JvdW5kOiAjMmMzZTUwO1xcbiAgaGVpZ2h0OiAxMDAwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBkaXNwbGF5OiByZWxhdGl2ZTtcXG59XFxuXFxuLndpbmRvd21pbiB7XFxuICB3aWR0aDogMzAwcHg7XFxuICBoZWlnaHQ6IDQ1cHg7XFxuICBiYWNrZ3JvdW5kOiAjMmMzZTUwO1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgYm90dG9tOiAwO1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbn1cXG5cXG4uYmFzaG1heCB7XFxuICBkaXNwbGF5OiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZDogIzM0NDk1ZTtcXG4gIGhlaWdodDogOTYwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBib3R0b206IDA7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuXFxuLyogIS0tZW5kLS0hICovXFxuLmJ1dHRvbnMge1xcbiAgd2lkdGg6IDE1cHg7XFxuICBoZWlnaHQ6IDE1cHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBmbG9hdDogcmlnaHQ7XFxuICBtYXJnaW46IDEzcHggNHB4O1xcbiAgYm9yZGVyOiBub25lO1xcbn1cXG5cXG4uY2xvc2Uge1xcbiAgYmFja2dyb3VuZDogI2U3NGMzYztcXG59XFxuXFxuLm1heGltaXplIHtcXG4gIGJhY2tncm91bmQ6ICNmMWM0MGY7XFxufVxcblxcbi5taW5pbWl6ZSB7XFxuICBiYWNrZ3JvdW5kOiAjMmVjYzcxO1xcbn1cXG5cXG4ucmVzdWx0IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcblxcbi5jb250cm9scyB7XFxuICBoZWlnaHQ6IDQwcHg7XFxuICB0b3A6IDA7XFxufVxcblxcbi50aXRsZSB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgcGFkZGluZzogMTBweDtcXG59XFxuXFxuLm1hdGVyaWFsLXRvb2x0aXAge1xcbiAgcGFkZGluZzogMTBweCA4cHg7XFxuICBmb250LXNpemU6IDFyZW07XFxuICB6LWluZGV4OiAyMDAwO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgY29sb3I6ICNmZmY7XFxuICBtaW4taGVpZ2h0OiAzNnB4O1xcbiAgbGluZS1oZWlnaHQ6IDEyMCU7XFxuICBvcGFjaXR5OiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGxlZnQ6IDA7XFxuICB0b3A6IDA7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMzMjMyMzI7XFxufVxcblxcbi5iYWNrZHJvcCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBvcGFjaXR5OiAwO1xcbiAgaGVpZ2h0OiA3cHg7XFxuICB3aWR0aDogMTRweDtcXG4gIGJvcmRlci1yYWRpdXM6IDAgMCA1MCUgNTAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzIzMjtcXG4gIHotaW5kZXg6IC0xO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG5cXG4uc2hhZG93LTAge1xcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4vKiAyZHAgZWxldmF0aW9uIG1vZGlmaWVkKi9cXG4uc2hhZG93LTEsIG5hdiwgLmRyb3Bkb3duLWNvbnRlbnQsIC5jYXJkLCAuY2FyZC1wYW5lbCwgLmJ0bi1mbG9hdGluZywgLmJ0biwgLmJ0bi1zbWFsbCwgLmJ0bi1sYXJnZSwgLmNvbGxhcHNpYmxlIHtcXG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcXG59XFxuXFxuLnNoYWRvdy0xLWhhbGYsIC5idG4tZmxvYXRpbmc6aG92ZXIsIC5idG46aG92ZXIsIC5idG4tc21hbGw6aG92ZXIsIC5idG4tbGFyZ2U6aG92ZXIge1xcbiAgYm94LXNoYWRvdzogMCAzcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggN3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xcbn1cXG5cXG4vKiA2ZHAgZWxldmF0aW9uIG1vZGlmaWVkKi9cXG4uc2hhZG93LTIge1xcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcXG59XFxuXFxuLyogMTJkcCBlbGV2YXRpb24gbW9kaWZpZWQqL1xcbi5zaGFkb3ctMyB7XFxuICBib3gtc2hhZG93OiAwIDhweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMik7XFxufVxcblxcbi8qIDE2ZHAgZWxldmF0aW9uICovXFxuLnNoYWRvdy00IHtcXG4gIGJveC1zaGFkb3c6IDAgMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDhweCAxMHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xcbn1cXG5cXG4vKiAyNGRwIGVsZXZhdGlvbiAqL1xcbi5zaGFkb3ctNSwgLm1vZGFsIHtcXG4gIGJveC1zaGFkb3c6IDAgMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcXG59XFxuXFxuLyogMjRkcCBlbGV2YXRpb24gKi9cXG4uaW52ZXJ0LXNoYWRvdy01IHtcXG4gIGJveC1zaGFkb3c6IDM4cHggMCAwIDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgNDZweCAwIDAgMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAxNXB4IDAgMCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcXG59XFxuXFxuLmhvdmVyYWJsZSB7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjVzO1xcbn1cXG4uaG92ZXJhYmxlOmhvdmVyIHtcXG4gIGJveC1zaGFkb3c6IDAgOHB4IDE3cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNnB4IDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xcbn1cXG5cXG4vKiFcXG4gKiBXYXZlcyB2MC42LjBcXG4gKiBodHRwOi8vZmlhbi5teS5pZC9XYXZlc1xcbiAqXFxuICogQ29weXJpZ2h0IDIwMTQgQWxmaWFuYSBFLiBTaWJ1ZWEgYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9maWFucy9XYXZlcy9ibG9iL21hc3Rlci9MSUNFTlNFXFxuICovXFxuLndhdmVzLWVmZmVjdCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIHotaW5kZXg6IDE7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGVhc2Utb3V0O1xcbn1cXG4ud2F2ZXMtZWZmZWN0IC53YXZlcy1yaXBwbGUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgd2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxuICBtYXJnaW4tdG9wOiAtMTBweDtcXG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcXG4gIG9wYWNpdHk6IDA7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC43cyBlYXNlLW91dDtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLndhdmVzLWVmZmVjdC53YXZlcy1saWdodCAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XFxufVxcbi53YXZlcy1lZmZlY3Qud2F2ZXMtcmVkIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC43KTtcXG59XFxuLndhdmVzLWVmZmVjdC53YXZlcy15ZWxsb3cgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjM1LCA1OSwgMC43KTtcXG59XFxuLndhdmVzLWVmZmVjdC53YXZlcy1vcmFuZ2UgLndhdmVzLXJpcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjcpO1xcbn1cXG4ud2F2ZXMtZWZmZWN0LndhdmVzLXB1cnBsZSAud2F2ZXMtcmlwcGxlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTU2LCAzOSwgMTc2LCAwLjcpO1xcbn1cXG4ud2F2ZXMtZWZmZWN0LndhdmVzLWdyZWVuIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC43KTtcXG59XFxuLndhdmVzLWVmZmVjdC53YXZlcy10ZWFsIC53YXZlcy1yaXBwbGUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNTAsIDEzNiwgMC43KTtcXG59XFxuLndhdmVzLWVmZmVjdCBpbnB1dFt0eXBlPWJ1dHRvbl0sIC53YXZlcy1lZmZlY3QgaW5wdXRbdHlwZT1yZXNldF0sIC53YXZlcy1lZmZlY3QgaW5wdXRbdHlwZT1zdWJtaXRdIHtcXG4gIGJvcmRlcjogMDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xcbiAgYmFja2dyb3VuZDogbm9uZTtcXG59XFxuLndhdmVzLWVmZmVjdCBpbWcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgei1pbmRleDogLTE7XFxufVxcblxcbi53YXZlcy1ub3RyYW5zaXRpb24ge1xcbiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4ud2F2ZXMtY2lyY2xlIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcXG4gIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSAxMDAlLCBibGFjayAxMDAlKTtcXG59XFxuXFxuLndhdmVzLWlucHV0LXdyYXBwZXIge1xcbiAgYm9yZGVyLXJhZGl1czogMC4yZW07XFxuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xcbn1cXG4ud2F2ZXMtaW5wdXQtd3JhcHBlciAud2F2ZXMtYnV0dG9uLWlucHV0IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAxO1xcbn1cXG5cXG4ud2F2ZXMtY2lyY2xlIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHdpZHRoOiAyLjVlbTtcXG4gIGhlaWdodDogMi41ZW07XFxuICBsaW5lLWhlaWdodDogMi41ZW07XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAtd2Via2l0LW1hc2staW1hZ2U6IG5vbmU7XFxufVxcblxcbi53YXZlcy1ibG9jayB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuXFxuLyogRmlyZWZveCBCdWc6IGxpbmsgbm90IHRyaWdnZXJlZCAqL1xcbi53YXZlcy1lZmZlY3QgLndhdmVzLXJpcHBsZSB7XFxuICB6LWluZGV4OiAtMTtcXG59XFxuXFxuLm1vZGFsIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWF4LWhlaWdodDogNzAlO1xcbiAgd2lkdGg6IDU1JTtcXG4gIG1hcmdpbjogYXV0bztcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICB3aWxsLWNoYW5nZTogdG9wLCBvcGFjaXR5O1xcbn1cXG4ubW9kYWw6Zm9jdXMge1xcbiAgb3V0bGluZTogbm9uZTtcXG59XFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogOTkycHgpIHtcXG4gIC5tb2RhbCB7XFxuICAgIHdpZHRoOiA4MCU7XFxuICB9XFxufVxcbi5tb2RhbCBoMSwgLm1vZGFsIGgyLCAubW9kYWwgaDMsIC5tb2RhbCBoNCB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4ubW9kYWwgLm1vZGFsLWNvbnRlbnQge1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuLm1vZGFsIC5tb2RhbC1jbG9zZSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5tb2RhbCAubW9kYWwtZm9vdGVyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcXG4gIHBhZGRpbmc6IDRweCA2cHg7XFxuICBoZWlnaHQ6IDU2cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4ubW9kYWwgLm1vZGFsLWZvb3RlciAuYnRuLCAubW9kYWwgLm1vZGFsLWZvb3RlciAuYnRuLXNtYWxsLCAubW9kYWwgLm1vZGFsLWZvb3RlciAuYnRuLWxhcmdlLCAubW9kYWwgLm1vZGFsLWZvb3RlciAuYnRuLWZsYXQge1xcbiAgbWFyZ2luOiA2cHggMDtcXG59XFxuLm1vZGFsIC5tb2RhbC1oZWFkZXIge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xcbiAgcGFkZGluZzogNnB4IDRweDtcXG4gIGhlaWdodDogNTZweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbi5tb2RhbCAubW9kYWwtaGVhZGVyIC5idG4sIC5tb2RhbCAubW9kYWwtaGVhZGVyIC5idG4tc21hbGwsIC5tb2RhbCAubW9kYWwtaGVhZGVyIC5idG4tbGFyZ2UsIC5tb2RhbCAubW9kYWwtaGVhZGVyIC5idG4tZmxhdCB7XFxuICBtYXJnaW46IDZweCAwO1xcbn1cXG5cXG4ubW9kYWwtb3ZlcmxheSB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB6LWluZGV4OiA5OTk7XFxuICB0b3A6IC0yNSU7XFxuICBsZWZ0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBoZWlnaHQ6IDEyNSU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGJhY2tncm91bmQ6ICMwMDA7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XFxufVxcblxcbi5tb2RhbC5tb2RhbC1maXhlZC1mb290ZXIge1xcbiAgcGFkZGluZzogMDtcXG4gIGhlaWdodDogNzAlO1xcbn1cXG4ubW9kYWwubW9kYWwtZml4ZWQtZm9vdGVyIC5tb2RhbC1jb250ZW50IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogY2FsYygxMDAlIC0gNTZweCk7XFxuICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbn1cXG4ubW9kYWwubW9kYWwtZml4ZWQtZm9vdGVyIC5tb2RhbC1mb290ZXIge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvdHRvbTogMDtcXG59XFxuXFxuLm1vZGFsLmJvdHRvbS1zaGVldCB7XFxuICB0b3A6IGF1dG87XFxuICBib3R0b206IC0xMDAlO1xcbiAgbWFyZ2luOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXgtaGVpZ2h0OiA0NSU7XFxuICBib3JkZXItcmFkaXVzOiAwO1xcbiAgd2lsbC1jaGFuZ2U6IGJvdHRvbSwgb3BhY2l0eTtcXG59XFxuXFxuaHRtbCxcXG5ib2R5LFxcbiNyb290IHtcXG4gIG1hcmdpbjogMDtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuXFxuKiB7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG59XFxuXFxuLm5vc2VsZWN0IHtcXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgLyogaU9TIFNhZmFyaSAqL1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogU2FmYXJpICovXFxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7IC8qIEtvbnF1ZXJvciBIVE1MICovXFxuICAtbW96LXVzZXItc2VsZWN0OiBub25lOyAvKiBPbGQgdmVyc2lvbnMgb2YgRmlyZWZveCAqL1xcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAvKiBJbnRlcm5ldCBFeHBsb3Jlci9FZGdlICovXFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIC8qIE5vbi1wcmVmaXhlZCB2ZXJzaW9uLCBjdXJyZW50bHlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZCBieSBDaHJvbWUsIEVkZ2UsIE9wZXJhIGFuZCBGaXJlZm94ICovXFxufVxcblxcbnVsOm5vdCguYnJvd3Nlci1kZWZhdWx0KSB7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XFxufVxcbnVsOm5vdCguYnJvd3Nlci1kZWZhdWx0KSA+IGxpIHtcXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcXG59XFxuXFxuYSB7XFxuICBjb2xvcjogIzAzOWJlNTtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcblxcbi53LTEwMCB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuXFxuLnJpZ2h0LWFsaWduIHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5cXG4uY2VudGVyLWFsaWduIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuXFxuLnYtY2VudGVyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG5cXG4ubWIxIHtcXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XFxufVxcblxcbi5jb2xsZWN0aW9uIHtcXG4gIG1hcmdpbjogMC4zMzMzMzMzMzMzcmVtIDAgMC42NjY2NjY2NjY3cmVtIDA7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcXG4gIHBhZGRpbmc6IDEwcHggMjBweDtcXG4gIG1hcmdpbjogMDtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmhvdmVyOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XFxufVxcbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIHtcXG4gIG1pbi1oZWlnaHQ6IDg0cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDcycHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyOm5vdCguY2lyY2xlLWNsaXBwZXIpID4gLmNpcmNsZSxcXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciA6bm90KC5jaXJjbGUtY2xpcHBlcikgPiAuY2lyY2xlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiA0MnB4O1xcbiAgaGVpZ2h0OiA0MnB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGxlZnQ6IDE1cHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciBpLmNpcmNsZSB7XFxuICBmb250LXNpemU6IDE4cHg7XFxuICBsaW5lLWhlaWdodDogNDJweDtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hdmF0YXIgLnRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG59XFxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hdmF0YXIgcCB7XFxuICBtYXJnaW46IDA7XFxufVxcbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIC5zZWNvbmRhcnktY29udGVudCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDE2cHg7XFxuICByaWdodDogMTZweDtcXG59XFxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbTpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XFxufVxcbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XFxuICBjb2xvcjogcmdiKDIzNC4yNSwgMjUwLjI1LCAyNDguNzUpO1xcbn1cXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmFjdGl2ZSAuc2Vjb25kYXJ5LWNvbnRlbnQge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5jb2xsZWN0aW9uIGEuY29sbGVjdGlvbi1pdGVtIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgdHJhbnNpdGlvbjogMC4yNXM7XFxuICBjb2xvcjogIzI2YTY5YTtcXG59XFxuLmNvbGxlY3Rpb24gYS5jb2xsZWN0aW9uLWl0ZW06bm90KC5hY3RpdmUpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XFxufVxcbi5jb2xsZWN0aW9uLndpdGgtaGVhZGVyIC5jb2xsZWN0aW9uLWhlYWRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XFxufVxcbi5jb2xsZWN0aW9uLndpdGgtaGVhZGVyIC5jb2xsZWN0aW9uLWl0ZW0ge1xcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xcbn1cXG4uY29sbGVjdGlvbi53aXRoLWhlYWRlciAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciB7XFxuICBwYWRkaW5nLWxlZnQ6IDcycHg7XFxufVxcblxcbi5zZWNvbmRhcnktY29udGVudCB7XFxuICBmbG9hdDogcmlnaHQ7XFxuICBjb2xvcjogIzI2YTY5YTtcXG59XFxuXFxuLmNvbGxhcHNpYmxlIC5jb2xsZWN0aW9uIHtcXG4gIG1hcmdpbjogMDtcXG4gIGJvcmRlcjogbm9uZTtcXG59XFxuXFxuLm1vZGFsLW92ZXJsYXkge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAxMDB2aDtcXG4gIHdpZHRoOiAxMDB2dztcXG4gIHBhZGRpbmc6IDIwcHggMCAyMHB4IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XFxuICB6LWluZGV4OiA5OTk7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5tb2RhbC1vdmVybGF5IC5pbm5lcmZvcm0ge1xcbiAgbWF4LXdpZHRoOiA2NTBweDtcXG59XFxuLm1vZGFsLW92ZXJsYXkgLmlubmVyZm9ybSBmb3JtIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcblxcbi8qKioqKioqKioqKioqKioqKioqKipcXG4gIE1lZGlhIFF1ZXJ5IENsYXNzZXNcXG4qKioqKioqKioqKioqKioqKioqKioqL1xcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IDYwMHB4KSB7XFxuICAuaGlkZS1vbi1zbWFsbC1vbmx5LCAuaGlkZS1vbi1zbWFsbC1hbmQtZG93biB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuXFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogOTkycHgpIHtcXG4gIC5oaWRlLW9uLW1lZC1hbmQtZG93biB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuXFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogNjAxcHgpIHtcXG4gIC5oaWRlLW9uLW1lZC1hbmQtdXAge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xcbiAgLmhpZGUtb24tbWVkLW9ubHkge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDk5M3B4KSB7XFxuICAuaGlkZS1vbi1sYXJnZS1vbmx5IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiAxMjAxcHgpIHtcXG4gIC5oaWRlLW9uLWV4dHJhLWxhcmdlLW9ubHkge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDEyMDFweCkge1xcbiAgLnNob3ctb24tZXh0cmEtbGFyZ2Uge1xcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiA5OTNweCkge1xcbiAgLnNob3ctb24tbGFyZ2Uge1xcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcXG4gIC5zaG93LW9uLW1lZGl1bSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IDYwMHB4KSB7XFxuICAuc2hvdy1vbi1zbWFsbCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDYwMXB4KSB7XFxuICAuc2hvdy1vbi1tZWRpdW0tYW5kLXVwIHtcXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuXFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogOTkycHgpIHtcXG4gIC5zaG93LW9uLW1lZGl1bS1hbmQtZG93biB7XFxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IDYwMHB4KSB7XFxuICAuY2VudGVyLW9uLXNtYWxsLW9ubHkge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB9XFxufVxcblxcbi8qKioqKioqKioqKioqKioqKioqXFxuICBVdGlsaXR5IENsYXNzZXNcXG4qKioqKioqKioqKioqKioqKioqL1xcbi5oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuXFxuLmxlZnQtYWxpZ24ge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuXFxuLnJpZ2h0LWFsaWduIHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5cXG4uY2VudGVyLCAuY2VudGVyLWFsaWduIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuXFxuLmxlZnQge1xcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcXG59XFxuXFxuLnJpZ2h0IHtcXG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubm8tc2VsZWN0IHtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG5cXG4uY2lyY2xlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuXFxuLmNlbnRlci1ibG9jayB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbn1cXG5cXG4udHJ1bmNhdGUge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbn1cXG5cXG4ubm8tcGFkZGluZyB7XFxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XFxufVxcblxcbnNwYW4uYmFkZ2Uge1xcbiAgbWluLXdpZHRoOiAzcmVtO1xcbiAgcGFkZGluZzogMCA2cHg7XFxuICBtYXJnaW4tbGVmdDogMTRweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xcbiAgaGVpZ2h0OiAyMnB4O1xcbiAgY29sb3I6ICM3NTc1NzU7XFxuICBmbG9hdDogcmlnaHQ7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbn1cXG5zcGFuLmJhZGdlLm5ldyB7XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgZm9udC1zaXplOiAwLjhyZW07XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxufVxcbnNwYW4uYmFkZ2UubmV3OmFmdGVyIHtcXG4gIGNvbnRlbnQ6IFxcXCIgbmV3XFxcIjtcXG59XFxuc3Bhbi5iYWRnZVtkYXRhLWJhZGdlLWNhcHRpb25dOjphZnRlciB7XFxuICBjb250ZW50OiBcXFwiIFxcXCIgYXR0cihkYXRhLWJhZGdlLWNhcHRpb24pO1xcbn1cXG5cXG5uYXYgdWwgYSBzcGFuLmJhZGdlIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZsb2F0OiBub25lO1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xcbiAgaGVpZ2h0OiAyMnB4O1xcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bztcXG59XFxuXFxuLmNvbGxlY3Rpb24taXRlbSBzcGFuLmJhZGdlIHtcXG4gIG1hcmdpbi10b3A6IGNhbGMoMC43NXJlbSAtIDExcHgpO1xcbn1cXG5cXG4uY29sbGFwc2libGUgc3Bhbi5iYWRnZSB7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG59XFxuXFxuLnNpZGVuYXYgc3Bhbi5iYWRnZSB7XFxuICBtYXJnaW4tdG9wOiAxMS41cHg7XFxufVxcblxcbnRhYmxlIHNwYW4uYmFkZ2Uge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgZmxvYXQ6IG5vbmU7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG59XFxuXFxuLmNoaXAge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgZm9udC1zaXplOiAxM3B4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIHBhZGRpbmc6IDAgMTJweDtcXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XFxufVxcbi5jaGlwOmZvY3VzIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5jaGlwID4gaW1nIHtcXG4gIGZsb2F0OiBsZWZ0O1xcbiAgbWFyZ2luOiAwIDhweCAwIC0xMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgd2lkdGg6IDMycHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5jaGlwIC5jbG9zZSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBmbG9hdDogcmlnaHQ7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbn1cXG5cXG4uY2hpcHMge1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5ZTllOWU7XFxuICBib3gtc2hhZG93OiBub25lO1xcbiAgbWFyZ2luOiAwIDAgOHB4IDA7XFxuICBtaW4taGVpZ2h0OiA0NXB4O1xcbiAgb3V0bGluZTogbm9uZTtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xcbn1cXG4uY2hpcHMuZm9jdXMge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyNmE2OWE7XFxuICBib3gtc2hhZG93OiAwIDFweCAwIDAgIzI2YTY5YTtcXG59XFxuLmNoaXBzOmhvdmVyIHtcXG4gIGN1cnNvcjogdGV4dDtcXG59XFxuLmNoaXBzIC5pbnB1dCB7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgYm9yZGVyOiAwO1xcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGhlaWdodDogNTZweDtcXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgb3V0bGluZTogMDtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG4gIHdpZHRoOiAxMjBweCAhaW1wb3J0YW50O1xcbn1cXG4uY2hpcHMgLmlucHV0OmZvY3VzIHtcXG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uY2hpcHMgLmF1dG9jb21wbGV0ZS1jb250ZW50IHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbn1cXG5cXG4ucHJlZml4IH4gLmNoaXBzIHtcXG4gIG1hcmdpbi1sZWZ0OiAzcmVtO1xcbiAgd2lkdGg6IDkyJTtcXG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtKTtcXG59XFxuXFxuLmNoaXBzOmVtcHR5IH4gbGFiZWwge1xcbiAgZm9udC1zaXplOiAwLjhyZW07XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0MCUpO1xcbn1cXG5cXG4uY29sbGFwc2libGUge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XFxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkO1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkO1xcbiAgbWFyZ2luOiAwLjMzMzMzMzMzMzNyZW0gMCAwLjY2NjY2NjY2NjdyZW0gMDtcXG59XFxuXFxuLmNvbGxhcHNpYmxlLWhlYWRlciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICBwYWRkaW5nOiAxcmVtO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xcbn1cXG4uY29sbGFwc2libGUtaGVhZGVyOmZvY3VzIHtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5jb2xsYXBzaWJsZS1oZWFkZXIgaSB7XFxuICB3aWR0aDogMnJlbTtcXG4gIGZvbnQtc2l6ZTogMS42cmVtO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xcbn1cXG5cXG4ua2V5Ym9hcmQtZm9jdXNlZCAuY29sbGFwc2libGUtaGVhZGVyOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XFxufVxcblxcbi5jb2xsYXBzaWJsZS1ib2R5IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBwYWRkaW5nOiAycmVtO1xcbn1cXG5cXG4uc2lkZW5hdiAuY29sbGFwc2libGUsXFxuLnNpZGVuYXYuZml4ZWQgLmNvbGxhcHNpYmxlIHtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5zaWRlbmF2IC5jb2xsYXBzaWJsZSBsaSxcXG4uc2lkZW5hdi5maXhlZCAuY29sbGFwc2libGUgbGkge1xcbiAgcGFkZGluZzogMDtcXG59XFxuLnNpZGVuYXYgLmNvbGxhcHNpYmxlLWhlYWRlcixcXG4uc2lkZW5hdi5maXhlZCAuY29sbGFwc2libGUtaGVhZGVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICBoZWlnaHQ6IGluaGVyaXQ7XFxuICBwYWRkaW5nOiAwIDE1cHg7XFxufVxcbi5zaWRlbmF2IC5jb2xsYXBzaWJsZS1oZWFkZXI6aG92ZXIsXFxuLnNpZGVuYXYuZml4ZWQgLmNvbGxhcHNpYmxlLWhlYWRlcjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xcbn1cXG4uc2lkZW5hdiAuY29sbGFwc2libGUtaGVhZGVyIGksXFxuLnNpZGVuYXYuZml4ZWQgLmNvbGxhcHNpYmxlLWhlYWRlciBpIHtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbn1cXG4uc2lkZW5hdiAuY29sbGFwc2libGUtYm9keSxcXG4uc2lkZW5hdi5maXhlZCAuY29sbGFwc2libGUtYm9keSB7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbn1cXG4uc2lkZW5hdiAuY29sbGFwc2libGUtYm9keSBsaSBhLFxcbi5zaWRlbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1ib2R5IGxpIGEge1xcbiAgcGFkZGluZzogMCAyMi41cHggMCAzMHB4O1xcbn1cXG5cXG4uY29sbGFwc2libGUucG9wb3V0IHtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5jb2xsYXBzaWJsZS5wb3BvdXQgPiBsaSB7XFxuICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcXG4gIG1hcmdpbjogMCAyNHB4O1xcbiAgdHJhbnNpdGlvbjogbWFyZ2luIDAuMzVzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcXG59XFxuLmNvbGxhcHNpYmxlLnBvcG91dCA+IGxpLmFjdGl2ZSB7XFxuICBib3gtc2hhZG93OiAwIDVweCAxMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE4KSwgMCA0cHggMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxuICBtYXJnaW46IDE2cHggMDtcXG59XFxuXFxuLmNvbGxlY3Rpb24ge1xcbiAgbWFyZ2luOiAwLjMzMzMzMzMzMzNyZW0gMCAwLjY2NjY2NjY2NjdyZW0gMDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBsaW5lLWhlaWdodDogMS41cmVtO1xcbiAgcGFkZGluZzogMTBweCAyMHB4O1xcbiAgbWFyZ2luOiAwO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIHtcXG4gIG1pbi1oZWlnaHQ6IDg0cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDcycHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyOm5vdCguY2lyY2xlLWNsaXBwZXIpID4gLmNpcmNsZSxcXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciA6bm90KC5jaXJjbGUtY2xpcHBlcikgPiAuY2lyY2xlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiA0MnB4O1xcbiAgaGVpZ2h0OiA0MnB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGxlZnQ6IDE1cHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciBpLmNpcmNsZSB7XFxuICBmb250LXNpemU6IDE4cHg7XFxuICBsaW5lLWhlaWdodDogNDJweDtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hdmF0YXIgLnRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG59XFxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hdmF0YXIgcCB7XFxuICBtYXJnaW46IDA7XFxufVxcbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIC5zZWNvbmRhcnktY29udGVudCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDE2cHg7XFxuICByaWdodDogMTZweDtcXG59XFxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbTpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XFxufVxcbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XFxuICBjb2xvcjogcmdiKDIzNC4yNSwgMjUwLjI1LCAyNDguNzUpO1xcbn1cXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmFjdGl2ZSAuc2Vjb25kYXJ5LWNvbnRlbnQge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5jb2xsZWN0aW9uIGEuY29sbGVjdGlvbi1pdGVtIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgdHJhbnNpdGlvbjogMC4yNXM7XFxuICBjb2xvcjogIzI2YTY5YTtcXG59XFxuLmNvbGxlY3Rpb24gYS5jb2xsZWN0aW9uLWl0ZW06bm90KC5hY3RpdmUpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XFxufVxcbi5jb2xsZWN0aW9uLndpdGgtaGVhZGVyIC5jb2xsZWN0aW9uLWhlYWRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XFxufVxcbi5jb2xsZWN0aW9uLndpdGgtaGVhZGVyIC5jb2xsZWN0aW9uLWl0ZW0ge1xcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xcbn1cXG4uY29sbGVjdGlvbi53aXRoLWhlYWRlciAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciB7XFxuICBwYWRkaW5nLWxlZnQ6IDcycHg7XFxufVxcbi5jb2xsZWN0aW9uIC5zZWNvbmRhcnktY29udGVudCB7XFxuICBmbG9hdDogcmlnaHQ7XFxuICBjb2xvcjogIzI2YTY5YTtcXG59XFxuXFxuc2VsZWN0OmZvY3VzIHtcXG4gIG91dGxpbmU6IDFweCBzb2xpZCByZ2IoMjAxLjA1LCAyNDIuNjUsIDIzOC43NSk7XFxufVxcblxcbmJ1dHRvbjpmb2N1cyB7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQxLjgsIDE4Mi42LCAxNjkuNCk7XFxufVxcblxcbmxhYmVsIHtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgY29sb3I6ICM5ZTllOWU7XFxufVxcblxcbi8qIFRleHQgSW5wdXRzICsgVGV4dGFyZWFcXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xcbi8qIFN0eWxlIFBsYWNlaG9sZGVycyAqL1xcbjo6cGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICNkMWQxZDE7XFxufVxcblxcbi8qIFRleHQgaW5wdXRzICovXFxuaW5wdXQ6bm90KFt0eXBlXSksXFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCksXFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxcXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpLFxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCksXFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxcXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpLFxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCksXFxudGV4dGFyZWEudGV4dGFyZWEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXI6IG5vbmU7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzllOWU5ZTtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgaGVpZ2h0OiA1NnB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBtYXJnaW46IDAgMCA4cHggMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3gtc2hhZG93OiBub25lO1xcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MsIGJvcmRlciAwLjNzO1xcbn1cXG5pbnB1dDpub3QoW3R5cGVdKTpkaXNhYmxlZCwgaW5wdXQ6bm90KFt0eXBlXSlbcmVhZG9ubHk9cmVhZG9ubHldLFxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSxcXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQsXFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSxcXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQsXFxuaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSxcXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldLFxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSxcXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCxcXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0sXFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0sXFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0sXFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCxcXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSxcXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldLFxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQsXFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0sXFxudGV4dGFyZWEudGV4dGFyZWE6ZGlzYWJsZWQsXFxudGV4dGFyZWEudGV4dGFyZWFbcmVhZG9ubHk9cmVhZG9ubHldIHtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCByZ2JhKDAsIDAsIDAsIDAuNDIpO1xcbn1cXG5pbnB1dDpub3QoW3R5cGVdKTpkaXNhYmxlZCArIGxhYmVsLCBpbnB1dDpub3QoW3R5cGVdKVtyZWFkb25seT1yZWFkb25seV0gKyBsYWJlbCxcXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCArIGxhYmVsLFxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSArIGxhYmVsLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCArIGxhYmVsLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0gKyBsYWJlbCxcXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldICsgbGFiZWwsXFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCArIGxhYmVsLFxcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldICsgbGFiZWwsXFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0gKyBsYWJlbCxcXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCArIGxhYmVsLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PXJlYWRvbmx5XSArIGxhYmVsLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCArIGxhYmVsLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT1yZWFkb25seV0gKyBsYWJlbCxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldICsgbGFiZWwsXFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCArIGxhYmVsLFxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldICsgbGFiZWwsXFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCArIGxhYmVsLFxcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldICsgbGFiZWwsXFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCArIGxhYmVsLFxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9cmVhZG9ubHldICsgbGFiZWwsXFxudGV4dGFyZWEudGV4dGFyZWE6ZGlzYWJsZWQgKyBsYWJlbCxcXG50ZXh0YXJlYS50ZXh0YXJlYVtyZWFkb25seT1yZWFkb25seV0gKyBsYWJlbCB7XFxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcXG59XFxuaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXM6bm90KFtyZWFkb25seV0pLFxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksXFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksXFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksXFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksXFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksXFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksXFxudGV4dGFyZWEudGV4dGFyZWE6Zm9jdXM6bm90KFtyZWFkb25seV0pIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMjZhNjlhO1xcbiAgYm94LXNoYWRvdzogMCAxcHggMCAwICMyNmE2OWE7XFxufVxcbmlucHV0Om5vdChbdHlwZV0pOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxcbnRleHRhcmVhLnRleHRhcmVhOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsIHtcXG4gIGNvbG9yOiAjMjZhNjlhO1xcbn1cXG5pbnB1dDpub3QoW3R5cGVdKTpmb2N1cy52YWxpZCB+IGxhYmVsLFxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gbGFiZWwsXFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gbGFiZWwsXFxuaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gbGFiZWwsXFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IGxhYmVsLFxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gbGFiZWwsXFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxcXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gbGFiZWwsXFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IGxhYmVsLFxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxcXG50ZXh0YXJlYS50ZXh0YXJlYTpmb2N1cy52YWxpZCB+IGxhYmVsIHtcXG4gIGNvbG9yOiAjNGNhZjUwO1xcbn1cXG5pbnB1dDpub3QoW3R5cGVdKTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsXFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IGxhYmVsLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsXFxuaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxcXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxcXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsXFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IGxhYmVsLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsXFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxcXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxcXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxcXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxcXG50ZXh0YXJlYS50ZXh0YXJlYTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwge1xcbiAgY29sb3I6ICNmNDQzMzY7XFxufVxcbmlucHV0Om5vdChbdHlwZV0pLnZhbGlkYXRlICsgbGFiZWwsXFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkYXRlICsgbGFiZWwsXFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZSArIGxhYmVsLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZSArIGxhYmVsLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZSArIGxhYmVsLFxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUgKyBsYWJlbCxcXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkYXRlICsgbGFiZWwsXFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZSArIGxhYmVsLFxcbnRleHRhcmVhLnRleHRhcmVhLnZhbGlkYXRlICsgbGFiZWwge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi8qIFZhbGlkYXRpb24gU2FzcyBQbGFjZWhvbGRlcnMgKi9cXG4uc2VsZWN0LXdyYXBwZXIudmFsaWQgPiBpbnB1dC5zZWxlY3QtZHJvcGRvd24sIGlucHV0Om5vdChbdHlwZV0pLnZhbGlkLCBpbnB1dDpub3QoW3R5cGVdKTpmb2N1cy52YWxpZCxcXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCxcXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQsXFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQsXFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkLFxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkLFxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQsXFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCxcXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkLFxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQsXFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCxcXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkLFxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQsXFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCxcXG50ZXh0YXJlYS50ZXh0YXJlYS52YWxpZCxcXG50ZXh0YXJlYS50ZXh0YXJlYTpmb2N1cy52YWxpZCB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzRjYWY1MDtcXG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgMCAjNGNhZjUwO1xcbn1cXG5cXG4uc2VsZWN0LXdyYXBwZXIuaW52YWxpZCA+IGlucHV0LnNlbGVjdC1kcm9wZG93biwgLnNlbGVjdC13cmFwcGVyLmludmFsaWQgPiBpbnB1dC5zZWxlY3QtZHJvcGRvd246Zm9jdXMsIGlucHV0Om5vdChbdHlwZV0pLmludmFsaWQsIGlucHV0Om5vdChbdHlwZV0pOmZvY3VzLmludmFsaWQsXFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCxcXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkLFxcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCxcXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQsXFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCxcXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQsXFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCxcXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQsXFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkLFxcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCxcXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQsXFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkLFxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCxcXG50ZXh0YXJlYS50ZXh0YXJlYS5pbnZhbGlkLFxcbnRleHRhcmVhLnRleHRhcmVhOmZvY3VzLmludmFsaWQge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmNDQzMzY7XFxuICBib3gtc2hhZG93OiAwIDFweCAwIDAgI2Y0NDMzNjtcXG59XFxuXFxuLnNlbGVjdC13cmFwcGVyLnZhbGlkIC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLCAuc2VsZWN0LXdyYXBwZXIuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSwgaW5wdXQ6bm90KFt0eXBlXSkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSwgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSwgaW5wdXQ6bm90KFt0eXBlXSkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSwgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbmlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxcXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxcXG5pbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxcXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxcXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxcXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXFxudGV4dGFyZWEudGV4dGFyZWEudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxcXG50ZXh0YXJlYS50ZXh0YXJlYTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbnRleHRhcmVhLnRleHRhcmVhLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sXFxudGV4dGFyZWEudGV4dGFyZWE6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG5cXG4uc2VsZWN0LXdyYXBwZXIudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsIGlucHV0Om5vdChbdHlwZV0pLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLCBpbnB1dDpub3QoW3R5cGVdKTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG50ZXh0YXJlYS50ZXh0YXJlYS52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG50ZXh0YXJlYS50ZXh0YXJlYTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlciB7XFxuICBjb250ZW50OiBhdHRyKGRhdGEtc3VjY2Vzcyk7XFxuICBjb2xvcjogIzRjYWY1MDtcXG59XFxuXFxuLnNlbGVjdC13cmFwcGVyLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsIGlucHV0Om5vdChbdHlwZV0pLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsIGlucHV0Om5vdChbdHlwZV0pOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixcXG50ZXh0YXJlYS50ZXh0YXJlYS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbnRleHRhcmVhLnRleHRhcmVhOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIge1xcbiAgY29udGVudDogYXR0cihkYXRhLWVycm9yKTtcXG4gIGNvbG9yOiAjZjQ0MzM2O1xcbn1cXG5cXG4uc2VsZWN0LXdyYXBwZXIgKyBsYWJlbDphZnRlciwgaW5wdXQ6bm90KFt0eXBlXSkgKyBsYWJlbDphZnRlcixcXG5pbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSArIGxhYmVsOmFmdGVyLFxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSArIGxhYmVsOmFmdGVyLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSArIGxhYmVsOmFmdGVyLFxcbmlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkgKyBsYWJlbDphZnRlcixcXG5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSArIGxhYmVsOmFmdGVyLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWw6YWZ0ZXIsXFxuaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWw6YWZ0ZXIsXFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWw6YWZ0ZXIsXFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSArIGxhYmVsOmFmdGVyLFxcbmlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCkgKyBsYWJlbDphZnRlcixcXG5pbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWw6YWZ0ZXIsXFxudGV4dGFyZWEudGV4dGFyZWEgKyBsYWJlbDphZnRlciB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogMDtcXG4gIG9wYWNpdHk6IDA7XFxuICB0cmFuc2l0aW9uOiAwLjJzIG9wYWNpdHkgZWFzZS1vdXQsIDAuMnMgY29sb3IgZWFzZS1vdXQ7XFxufVxcblxcbi5pbnB1dC1maWVsZCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBtYXJnaW4tdG9wOiAxcmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG59XFxuLmlucHV0LWZpZWxkLmlubGluZSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgbWFyZ2luLWxlZnQ6IDVweDtcXG59XFxuLmlucHV0LWZpZWxkLmlubGluZSBpbnB1dCxcXG4uaW5wdXQtZmllbGQuaW5saW5lIC5zZWxlY3QtZHJvcGRvd24ge1xcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG59XFxuLmlucHV0LWZpZWxkLmNvbCBsYWJlbCB7XFxuICBsZWZ0OiAwLjVyZW07XFxufVxcbi5pbnB1dC1maWVsZC5jb2wgLnByZWZpeCB+IGxhYmVsLFxcbi5pbnB1dC1maWVsZC5jb2wgLnByZWZpeCB+IC52YWxpZGF0ZSB+IGxhYmVsIHtcXG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtIC0gMXJlbSk7XFxufVxcbi5pbnB1dC1maWVsZCA+IGxhYmVsIHtcXG4gIGNvbG9yOiAjOWU5ZTllO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGN1cnNvcjogdGV4dDtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2Utb3V0LCBjb2xvciAwLjJzIGVhc2Utb3V0O1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcXG4gIHRleHQtYWxpZ246IGluaXRpYWw7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJweCk7XFxufVxcbi5pbnB1dC1maWVsZCA+IGxhYmVsOm5vdCgubGFiZWwtaWNvbikuYWN0aXZlIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTRweCkgc2NhbGUoMC44KTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcXG59XFxuLmlucHV0LWZpZWxkID4gaW5wdXRbdHlwZV06LXdlYmtpdC1hdXRvZmlsbDpub3QoLmJyb3dzZXItZGVmYXVsdCk6bm90KFt0eXBlPXNlYXJjaF0pICsgbGFiZWwsIC5pbnB1dC1maWVsZCA+IGlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWwsIC5pbnB1dC1maWVsZCA+IGlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWwge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNHB4KSBzY2FsZSgwLjgpO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xcbn1cXG4uaW5wdXQtZmllbGQgLmhlbHBlci10ZXh0IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG1pbi1oZWlnaHQ6IDE4cHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xcbn1cXG4uaW5wdXQtZmllbGQgLmhlbHBlci10ZXh0OjphZnRlciB7XFxuICBvcGFjaXR5OiAxO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmlucHV0LWZpZWxkIC5wcmVmaXgge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDU2cHg7XFxuICBmb250LXNpemU6IDJyZW07XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xcbn1cXG4uaW5wdXQtZmllbGQgLnByZWZpeC5hY3RpdmUge1xcbiAgY29sb3I6ICMyNmE2OWE7XFxufVxcbi5pbnB1dC1maWVsZCAucHJlZml4IH4gaW5wdXQsXFxuLmlucHV0LWZpZWxkIC5wcmVmaXggfiB0ZXh0YXJlYSxcXG4uaW5wdXQtZmllbGQgLnByZWZpeCB+IGxhYmVsLFxcbi5pbnB1dC1maWVsZCAucHJlZml4IH4gLnZhbGlkYXRlIH4gbGFiZWwsXFxuLmlucHV0LWZpZWxkIC5wcmVmaXggfiAuaGVscGVyLXRleHQsXFxuLmlucHV0LWZpZWxkIC5wcmVmaXggfiAuYXV0b2NvbXBsZXRlLWNvbnRlbnQge1xcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XFxuICB3aWR0aDogOTIlO1xcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pO1xcbn1cXG4uaW5wdXQtZmllbGQgLnByZWZpeCB+IGxhYmVsIHtcXG4gIG1hcmdpbi1sZWZ0OiAzcmVtO1xcbn1cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiA5OTJweCkge1xcbiAgLmlucHV0LWZpZWxkIC5wcmVmaXggfiBpbnB1dCB7XFxuICAgIHdpZHRoOiA4NiU7XFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtKTtcXG4gIH1cXG59XFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogNjAwcHgpIHtcXG4gIC5pbnB1dC1maWVsZCAucHJlZml4IH4gaW5wdXQge1xcbiAgICB3aWR0aDogODAlO1xcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XFxuICB9XFxufVxcblxcbi8qIFNlYXJjaCBGaWVsZCAqL1xcbi5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXNlYXJjaF0ge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gIHRyYW5zaXRpb246IDAuM3MgYmFja2dyb3VuZC1jb2xvcjtcXG59XFxuLm5hdi13cmFwcGVyIC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXNlYXJjaF0ge1xcbiAgaGVpZ2h0OiBpbmhlcml0O1xcbiAgcGFkZGluZy1sZWZ0OiA0cmVtO1xcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDRyZW0pO1xcbiAgYm9yZGVyOiAwO1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czpub3QoLmJyb3dzZXItZGVmYXVsdCkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJvcmRlcjogMDtcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxuICBjb2xvcjogIzQ0NDtcXG59XFxuLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czpub3QoLmJyb3dzZXItZGVmYXVsdCkgKyBsYWJlbCBpLCAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzOm5vdCguYnJvd3Nlci1kZWZhdWx0KSB+IC5tZGktbmF2aWdhdGlvbi1jbG9zZSwgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czpub3QoLmJyb3dzZXItZGVmYXVsdCkgfiAubWF0ZXJpYWwtaWNvbnMge1xcbiAgY29sb3I6ICM0NDQ7XFxufVxcbi5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXNlYXJjaF0gKyAubGFiZWwtaWNvbiB7XFxuICB0cmFuc2Zvcm06IG5vbmU7XFxuICBsZWZ0OiAxcmVtO1xcbn1cXG4uaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdIH4gLm1kaS1uYXZpZ2F0aW9uLWNsb3NlLCAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdIH4gLm1hdGVyaWFsLWljb25zIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAxcmVtO1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZm9udC1zaXplOiAycmVtO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjb2xvcjtcXG59XFxuXFxuLyogVGV4dGFyZWEgKi9cXG50ZXh0YXJlYSB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogNTZweDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG50ZXh0YXJlYS50ZXh0YXJlYSB7XFxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgb3ZlcmZsb3cteTogaGlkZGVuOyAvKiBwcmV2ZW50cyBzY3JvbGwgYmFyIGZsYXNoICovXFxuICBwYWRkaW5nOiAwLjhyZW0gMCAwLjhyZW0gMDsgLyogcHJldmVudHMgdGV4dCBqdW1wIG9uIEVudGVyIGtleXByZXNzICovXFxuICByZXNpemU6IG5vbmU7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG59XFxuXFxuLmhpZGRlbmRpdiB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XFxuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyAvKiBmdXR1cmUgdmVyc2lvbiBvZiBkZXByZWNhdGVkICd3b3JkLXdyYXAnICovXFxuICBwYWRkaW5nLXRvcDogMS4ycmVtOyAvKiBwcmV2ZW50cyB0ZXh0IGp1bXAgb24gRW50ZXIga2V5cHJlc3MgKi9cXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG5cXG4vKiBBdXRvY29tcGxldGUgKi9cXG4uYXV0b2NvbXBsZXRlLWNvbnRlbnQgbGkgLmhpZ2hsaWdodCB7XFxuICBjb2xvcjogIzQ0NDtcXG59XFxuLmF1dG9jb21wbGV0ZS1jb250ZW50IGxpIGltZyB7XFxuICBtYXJnaW46IDVweCAxNXB4O1xcbn1cXG5cXG4vKiBDaGFyYWN0ZXIgQ291bnRlciAqL1xcbi5jaGFyYWN0ZXItY291bnRlciB7XFxuICBtaW4taGVpZ2h0OiAxOHB4O1xcbn1cXG5cXG4vKiBSYWRpbyBCdXR0b25zXFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cXG5bdHlwZT1yYWRpb106bm90KDpjaGVja2VkKSxcXG5bdHlwZT1yYWRpb106Y2hlY2tlZCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBvcGFjaXR5OiAwO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcblxcblt0eXBlPXJhZGlvXTpub3QoOmNoZWNrZWQpICsgc3BhbixcXG5bdHlwZT1yYWRpb106Y2hlY2tlZCArIHNwYW4ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZy1sZWZ0OiAzNXB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgaGVpZ2h0OiAyNXB4O1xcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XFxuICBmb250LXNpemU6IDFyZW07XFxuICB0cmFuc2l0aW9uOiAwLjI4cyBlYXNlO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcblxcblt0eXBlPXJhZGlvXSArIHNwYW46YmVmb3JlLFxcblt0eXBlPXJhZGlvXSArIHNwYW46YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgdG9wOiAwO1xcbiAgbWFyZ2luOiA0cHg7XFxuICB3aWR0aDogMTZweDtcXG4gIGhlaWdodDogMTZweDtcXG4gIHotaW5kZXg6IDA7XFxuICB0cmFuc2l0aW9uOiAwLjI4cyBlYXNlO1xcbn1cXG5cXG4vKiBVbmNoZWNrZWQgc3R5bGVzICovXFxuW3R5cGU9cmFkaW9dOm5vdCg6Y2hlY2tlZCkgKyBzcGFuOmJlZm9yZSxcXG5bdHlwZT1yYWRpb106bm90KDpjaGVja2VkKSArIHNwYW46YWZ0ZXIsXFxuW3R5cGU9cmFkaW9dOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSxcXG5bdHlwZT1yYWRpb106Y2hlY2tlZCArIHNwYW46YWZ0ZXIsXFxuW3R5cGU9cmFkaW9dLndpdGgtZ2FwOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSxcXG5bdHlwZT1yYWRpb10ud2l0aC1nYXA6Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG5cXG5bdHlwZT1yYWRpb106bm90KDpjaGVja2VkKSArIHNwYW46YmVmb3JlLFxcblt0eXBlPXJhZGlvXTpub3QoOmNoZWNrZWQpICsgc3BhbjphZnRlciB7XFxuICBib3JkZXI6IDJweCBzb2xpZCAjNWE1YTVhO1xcbn1cXG5cXG5bdHlwZT1yYWRpb106bm90KDpjaGVja2VkKSArIHNwYW46YWZ0ZXIge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG59XFxuXFxuLyogQ2hlY2tlZCBzdHlsZXMgKi9cXG5bdHlwZT1yYWRpb106Y2hlY2tlZCArIHNwYW46YmVmb3JlIHtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbn1cXG5cXG5bdHlwZT1yYWRpb106Y2hlY2tlZCArIHNwYW46YWZ0ZXIsXFxuW3R5cGU9cmFkaW9dLndpdGgtZ2FwOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSxcXG5bdHlwZT1yYWRpb10ud2l0aC1nYXA6Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xcbiAgYm9yZGVyOiAycHggc29saWQgIzI2YTY5YTtcXG59XFxuXFxuW3R5cGU9cmFkaW9dOmNoZWNrZWQgKyBzcGFuOmFmdGVyLFxcblt0eXBlPXJhZGlvXS53aXRoLWdhcDpjaGVja2VkICsgc3BhbjphZnRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xcbn1cXG5cXG5bdHlwZT1yYWRpb106Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG59XFxuXFxuLyogUmFkaW8gV2l0aCBnYXAgKi9cXG5bdHlwZT1yYWRpb10ud2l0aC1nYXA6Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xcbn1cXG5cXG4vKiBGb2N1c2VkIHN0eWxlcyAqL1xcblt0eXBlPXJhZGlvXS50YWJiZWQ6Zm9jdXMgKyBzcGFuOmJlZm9yZSB7XFxuICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcXG59XFxuXFxuLyogRGlzYWJsZWQgUmFkaW8gV2l0aCBnYXAgKi9cXG5bdHlwZT1yYWRpb10ud2l0aC1nYXA6ZGlzYWJsZWQ6Y2hlY2tlZCArIHNwYW46YmVmb3JlIHtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC40Mik7XFxufVxcblxcblt0eXBlPXJhZGlvXS53aXRoLWdhcDpkaXNhYmxlZDpjaGVja2VkICsgc3BhbjphZnRlciB7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xcbn1cXG5cXG4vKiBEaXNhYmxlZCBzdHlsZSAqL1xcblt0eXBlPXJhZGlvXTpkaXNhYmxlZDpub3QoOmNoZWNrZWQpICsgc3BhbjpiZWZvcmUsXFxuW3R5cGU9cmFkaW9dOmRpc2FibGVkOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcXG59XFxuXFxuW3R5cGU9cmFkaW9dOmRpc2FibGVkICsgc3BhbiB7XFxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcXG59XFxuXFxuW3R5cGU9cmFkaW9dOmRpc2FibGVkOm5vdCg6Y2hlY2tlZCkgKyBzcGFuOmJlZm9yZSB7XFxuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XFxufVxcblxcblt0eXBlPXJhZGlvXTpkaXNhYmxlZDpjaGVja2VkICsgc3BhbjphZnRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xcbiAgYm9yZGVyLWNvbG9yOiAjOTQ5NDk0O1xcbn1cXG5cXG4vKiBDaGVja2JveGVzXFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cXG4vKiBSZW1vdmUgZGVmYXVsdCBjaGVja2JveCAqL1xcblt0eXBlPWNoZWNrYm94XTpub3QoOmNoZWNrZWQpLFxcblt0eXBlPWNoZWNrYm94XTpjaGVja2VkIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIG9wYWNpdHk6IDA7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuXFxuW3R5cGU9Y2hlY2tib3hdIHtcXG4gIC8qIGNoZWNrYm94IGFzcGVjdCAqL1xcbn1cXG5bdHlwZT1jaGVja2JveF0gKyBzcGFuOm5vdCgubGV2ZXIpIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctbGVmdDogMzVweDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGhlaWdodDogMjVweDtcXG4gIGxpbmUtaGVpZ2h0OiAyNXB4O1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcblt0eXBlPWNoZWNrYm94XSArIHNwYW46bm90KC5sZXZlcik6YmVmb3JlLCBbdHlwZT1jaGVja2JveF06bm90KC5maWxsZWQtaW4pICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMThweDtcXG4gIGhlaWdodDogMThweDtcXG4gIHotaW5kZXg6IDA7XFxuICBib3JkZXI6IDJweCBzb2xpZCAjNWE1YTVhO1xcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xcbiAgbWFyZ2luLXRvcDogM3B4O1xcbiAgdHJhbnNpdGlvbjogMC4ycztcXG59XFxuW3R5cGU9Y2hlY2tib3hdOm5vdCguZmlsbGVkLWluKSArIHNwYW46bm90KC5sZXZlcik6YWZ0ZXIge1xcbiAgYm9yZGVyOiAwO1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG59XFxuW3R5cGU9Y2hlY2tib3hdOm5vdCg6Y2hlY2tlZCk6ZGlzYWJsZWQgKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSB7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xcbn1cXG5bdHlwZT1jaGVja2JveF0udGFiYmVkOmZvY3VzICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgYm9yZGVyOiAwO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XFxufVxcblxcblt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgc3Bhbjpub3QoLmxldmVyKTpiZWZvcmUge1xcbiAgdG9wOiAtNHB4O1xcbiAgbGVmdDogLTVweDtcXG4gIHdpZHRoOiAxMnB4O1xcbiAgaGVpZ2h0OiAyMnB4O1xcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMyNmE2OWE7XFxuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzI2YTY5YTtcXG4gIHRyYW5zZm9ybTogcm90YXRlKDQwZGVnKTtcXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcXG59XFxuW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6ZGlzYWJsZWQgKyBzcGFuOmJlZm9yZSB7XFxuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNDIpO1xcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC40Mik7XFxufVxcblxcbi8qIEluZGV0ZXJtaW5hdGUgY2hlY2tib3ggKi9cXG5bdHlwZT1jaGVja2JveF06aW5kZXRlcm1pbmF0ZSArIHNwYW46bm90KC5sZXZlcik6YmVmb3JlIHtcXG4gIHRvcDogLTExcHg7XFxuICBsZWZ0OiAtMTJweDtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgaGVpZ2h0OiAyMnB4O1xcbiAgYm9yZGVyLXRvcDogbm9uZTtcXG4gIGJvcmRlci1sZWZ0OiBub25lO1xcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzI2YTY5YTtcXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XFxufVxcblt0eXBlPWNoZWNrYm94XTppbmRldGVybWluYXRlOmRpc2FibGVkICsgc3Bhbjpub3QoLmxldmVyKTpiZWZvcmUge1xcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjQyKTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG5bdHlwZT1jaGVja2JveF0uZmlsbGVkLWluICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxufVxcblt0eXBlPWNoZWNrYm94XS5maWxsZWQtaW4gKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSxcXG5bdHlwZT1jaGVja2JveF0uZmlsbGVkLWluICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIGxlZnQ6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAvKiAuMXMgZGVsYXkgaXMgZm9yIGNoZWNrIGFuaW1hdGlvbiAqL1xcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMjVzLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzLCB3aWR0aCAwLjJzIDAuMXMsIGhlaWdodCAwLjJzIDAuMXMsIHRvcCAwLjJzIDAuMXMsIGxlZnQgMC4ycyAwLjFzO1xcbiAgei1pbmRleDogMTtcXG59XFxuW3R5cGU9Y2hlY2tib3hdLmZpbGxlZC1pbjpub3QoOmNoZWNrZWQpICsgc3Bhbjpub3QoLmxldmVyKTpiZWZvcmUge1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBib3JkZXI6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGxlZnQ6IDZweDtcXG4gIHRvcDogMTBweDtcXG4gIHRyYW5zZm9ybTogcm90YXRlWigzN2RlZyk7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XFxufVxcblt0eXBlPWNoZWNrYm94XS5maWxsZWQtaW46bm90KDpjaGVja2VkKSArIHNwYW46bm90KC5sZXZlcik6YWZ0ZXIge1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgd2lkdGg6IDIwcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkICM1YTVhNWE7XFxuICB0b3A6IDBweDtcXG4gIHotaW5kZXg6IDA7XFxufVxcblt0eXBlPWNoZWNrYm94XS5maWxsZWQtaW46Y2hlY2tlZCArIHNwYW46bm90KC5sZXZlcik6YmVmb3JlIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDFweDtcXG4gIHdpZHRoOiA4cHg7XFxuICBoZWlnaHQ6IDEzcHg7XFxuICBib3JkZXItdG9wOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgI2ZmZjtcXG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZmZmO1xcbiAgdHJhbnNmb3JtOiByb3RhdGVaKDM3ZGVnKTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcXG59XFxuW3R5cGU9Y2hlY2tib3hdLmZpbGxlZC1pbjpjaGVja2VkICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XFxuICB0b3A6IDA7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkICMyNmE2OWE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xcbiAgei1pbmRleDogMDtcXG59XFxuW3R5cGU9Y2hlY2tib3hdLmZpbGxlZC1pbi50YWJiZWQ6Zm9jdXMgKyBzcGFuOm5vdCgubGV2ZXIpOmFmdGVyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIGJvcmRlci1jb2xvcjogIzVhNWE1YTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcXG59XFxuW3R5cGU9Y2hlY2tib3hdLmZpbGxlZC1pbi50YWJiZWQ6Y2hlY2tlZDpmb2N1cyArIHNwYW46bm90KC5sZXZlcik6YWZ0ZXIge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcXG4gIGJvcmRlci1jb2xvcjogIzI2YTY5YTtcXG59XFxuW3R5cGU9Y2hlY2tib3hdLmZpbGxlZC1pbjpkaXNhYmxlZDpub3QoOmNoZWNrZWQpICsgc3Bhbjpub3QoLmxldmVyKTpiZWZvcmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcXG59XFxuW3R5cGU9Y2hlY2tib3hdLmZpbGxlZC1pbjpkaXNhYmxlZDpub3QoOmNoZWNrZWQpICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk0OTQ5NDtcXG59XFxuW3R5cGU9Y2hlY2tib3hdLmZpbGxlZC1pbjpkaXNhYmxlZDpjaGVja2VkICsgc3Bhbjpub3QoLmxldmVyKTpiZWZvcmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcblt0eXBlPWNoZWNrYm94XS5maWxsZWQtaW46ZGlzYWJsZWQ6Y2hlY2tlZCArIHNwYW46bm90KC5sZXZlcik6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk0OTQ5NDtcXG4gIGJvcmRlci1jb2xvcjogIzk0OTQ5NDtcXG59XFxuXFxuLyogU3dpdGNoXFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cXG4uc3dpdGNoLFxcbi5zd2l0Y2ggKiB7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcblxcbi5zd2l0Y2ggbGFiZWwge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4uc3dpdGNoIGxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcXG4gIG9wYWNpdHk6IDA7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG59XFxuLnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgLmxldmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzIuMDYyNSwgMTk5LjQzNzUsIDE5My4xMjEwOTM3NSk7XFxufVxcbi5zd2l0Y2ggbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIC5sZXZlcjpiZWZvcmUsIC5zd2l0Y2ggbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIC5sZXZlcjphZnRlciB7XFxuICBsZWZ0OiAxOHB4O1xcbn1cXG4uc3dpdGNoIGxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAubGV2ZXI6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcXG59XFxuXFxuLnN3aXRjaCBsYWJlbCAubGV2ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMzZweDtcXG4gIGhlaWdodDogMTRweDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XFxuICBib3JkZXItcmFkaXVzOiAxNXB4O1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2U7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgbWFyZ2luOiAwIDE2cHg7XFxufVxcbi5zd2l0Y2ggbGFiZWwgLmxldmVyOmJlZm9yZSwgLnN3aXRjaCBsYWJlbCAubGV2ZXI6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGxlZnQ6IDA7XFxuICB0b3A6IC0zcHg7XFxuICB0cmFuc2l0aW9uOiBsZWZ0IDAuM3MgZWFzZSwgYmFja2dyb3VuZCAwLjNzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xcbn1cXG4uc3dpdGNoIGxhYmVsIC5sZXZlcjpiZWZvcmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzOCwgMTY2LCAxNTQsIDAuMTUpO1xcbn1cXG4uc3dpdGNoIGxhYmVsIC5sZXZlcjphZnRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjFGMUYxO1xcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcXG59XFxuXFxuaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpub3QoOmRpc2FibGVkKSB+IC5sZXZlcjphY3RpdmU6OmJlZm9yZSxcXG5pbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOm5vdCg6ZGlzYWJsZWQpLnRhYmJlZDpmb2N1cyB+IC5sZXZlcjo6YmVmb3JlIHtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMi40KTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzgsIDE2NiwgMTU0LCAwLjE1KTtcXG59XFxuXFxuaW5wdXRbdHlwZT1jaGVja2JveF06bm90KDpkaXNhYmxlZCkgfiAubGV2ZXI6YWN0aXZlOmJlZm9yZSxcXG5pbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoOmRpc2FibGVkKS50YWJiZWQ6Zm9jdXMgfiAubGV2ZXI6OmJlZm9yZSB7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDIuNCk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xcbn1cXG5cXG4uc3dpdGNoIGlucHV0W3R5cGU9Y2hlY2tib3hdW2Rpc2FibGVkXSArIC5sZXZlciB7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xcbn1cXG5cXG4uc3dpdGNoIGxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdW2Rpc2FibGVkXSArIC5sZXZlcjphZnRlcixcXG4uc3dpdGNoIGxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdW2Rpc2FibGVkXTpjaGVja2VkICsgLmxldmVyOmFmdGVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM5NDk0OTQ7XFxufVxcblxcbi8qIFNlbGVjdCBGaWVsZFxcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXFxuc2VsZWN0IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcblxcbnNlbGVjdC5icm93c2VyLWRlZmF1bHQge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcblxcbnNlbGVjdCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBhZGRpbmc6IDVweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjI7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcblxcbi5zZWxlY3QtbGFiZWwge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG5cXG4uc2VsZWN0LXdyYXBwZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uc2VsZWN0LXdyYXBwZXIudmFsaWQgKyBsYWJlbCwgLnNlbGVjdC13cmFwcGVyLmludmFsaWQgKyBsYWJlbCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4uc2VsZWN0LXdyYXBwZXIgaW5wdXQuc2VsZWN0LWRyb3Bkb3duIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5ZTllOWU7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgaGVpZ2h0OiA1NnB4O1xcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIG1hcmdpbjogMCAwIDhweCAwO1xcbiAgcGFkZGluZzogMDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB6LWluZGV4OiAxO1xcbn1cXG4uc2VsZWN0LXdyYXBwZXIgaW5wdXQuc2VsZWN0LWRyb3Bkb3duOmZvY3VzIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMjZhNjlhO1xcbn1cXG4uc2VsZWN0LXdyYXBwZXIgLmNhcmV0IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbWFyZ2luOiBhdXRvIDA7XFxuICB6LWluZGV4OiAwO1xcbiAgZmlsbDogcmdiYSgwLCAwLCAwLCAwLjg3KTtcXG59XFxuLnNlbGVjdC13cmFwcGVyICsgbGFiZWwge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtMjZweDtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbn1cXG5cXG5zZWxlY3Q6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XFxufVxcblxcbi5zZWxlY3Qtd3JhcHBlci5kaXNhYmxlZCArIGxhYmVsIHtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xcbn1cXG4uc2VsZWN0LXdyYXBwZXIuZGlzYWJsZWQgLmNhcmV0IHtcXG4gIGZpbGw6IHJnYmEoMCwgMCwgMCwgMC40Mik7XFxufVxcblxcbi5zZWxlY3Qtd3JhcHBlciBpbnB1dC5zZWxlY3QtZHJvcGRvd246ZGlzYWJsZWQge1xcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuXFxuLnNlbGVjdC13cmFwcGVyIGkge1xcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcXG59XFxuXFxuLnNlbGVjdC1kcm9wZG93biBsaS5kaXNhYmxlZCxcXG4uc2VsZWN0LWRyb3Bkb3duIGxpLmRpc2FibGVkID4gc3BhbixcXG4uc2VsZWN0LWRyb3Bkb3duIGxpLm9wdGdyb3VwIHtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuYm9keS5rZXlib2FyZC1mb2N1c2VkIC5zZWxlY3QtZHJvcGRvd24uZHJvcGRvd24tY29udGVudCBsaTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xcbn1cXG5cXG4uc2VsZWN0LWRyb3Bkb3duLmRyb3Bkb3duLWNvbnRlbnQgbGk6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA4KTtcXG59XFxuLnNlbGVjdC1kcm9wZG93bi5kcm9wZG93bi1jb250ZW50IGxpLnNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XFxufVxcblxcbi5wcmVmaXggfiAuc2VsZWN0LXdyYXBwZXIge1xcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XFxuICB3aWR0aDogOTIlO1xcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pO1xcbn1cXG5cXG4ucHJlZml4IH4gbGFiZWwge1xcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XFxufVxcblxcbi5zZWxlY3QtZHJvcGRvd24gbGkgaW1nIHtcXG4gIG1hcmdpbjogNXB4IDE1cHg7XFxuICBmbG9hdDogcmlnaHQ7XFxufVxcblxcbi5zZWxlY3QtZHJvcGRvd24gbGkub3B0Z3JvdXAuc2VsZWN0ZWQgPiBzcGFuIHtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XFxufVxcbi5zZWxlY3QtZHJvcGRvd24gbGkub3B0Z3JvdXAgPiBzcGFuIHtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XFxufVxcbi5zZWxlY3QtZHJvcGRvd24gbGkub3B0Z3JvdXAgfiBsaS5vcHRncm91cC1vcHRpb24ge1xcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xcbn1cXG5cXG4vKiBGaWxlIElucHV0XFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cXG4uZmlsZS1maWVsZCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5maWxlLWZpZWxkIC5maWxlLXBhdGgtd3JhcHBlciB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xcbn1cXG4uZmlsZS1maWVsZCBpbnB1dC5maWxlLXBhdGgge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5maWxlLWZpZWxkIC5idG4sIC5maWxlLWZpZWxkIC5idG4tc21hbGwsIC5maWxlLWZpZWxkIC5idG4tbGFyZ2Uge1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICBoZWlnaHQ6IDU2cHg7XFxuICBsaW5lLWhlaWdodDogNTZweDtcXG59XFxuLmZpbGUtZmllbGQgc3BhbiB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5maWxlLWZpZWxkIGlucHV0W3R5cGU9ZmlsZV0ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgb3BhY2l0eTogMDtcXG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcXG59XFxuLmZpbGUtZmllbGQgaW5wdXRbdHlwZT1maWxlXTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuXFxuLyogUmFuZ2VcXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xcbi5yYW5nZS1maWVsZCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcblxcbmlucHV0W3R5cGU9cmFuZ2VdLFxcbmlucHV0W3R5cGU9cmFuZ2VdICsgLnRodW1iIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV0ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXI6IG5vbmU7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXJnaW46IDE1cHggMDtcXG4gIHBhZGRpbmc6IDA7XFxufVxcbmlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxufVxcblxcbmlucHV0W3R5cGU9cmFuZ2VdICsgLnRodW1iIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMTBweDtcXG4gIGxlZnQ6IDA7XFxuICBib3JkZXI6IG5vbmU7XFxuICBoZWlnaHQ6IDA7XFxuICB3aWR0aDogMDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XFxuICBtYXJnaW4tbGVmdDogN3B4O1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XFxufVxcbmlucHV0W3R5cGU9cmFuZ2VdICsgLnRodW1iIC52YWx1ZSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAzMHB4O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgY29sb3I6ICMyNmE2OWE7XFxuICBmb250LXNpemU6IDA7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XFxufVxcbmlucHV0W3R5cGU9cmFuZ2VdICsgLnRodW1iLmFjdGl2ZSB7XFxuICBib3JkZXItcmFkaXVzOiA1MCUgNTAlIDUwJSAwO1xcbn1cXG5pbnB1dFt0eXBlPXJhbmdlXSArIC50aHVtYi5hY3RpdmUgLnZhbHVlIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxuICBmb250LXNpemU6IDEwcHg7XFxufVxcblxcbmlucHV0W3R5cGU9cmFuZ2VdIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcXG4gIGhlaWdodDogM3B4O1xcbiAgYmFja2dyb3VuZDogI2MyYzBjMjtcXG4gIGJvcmRlcjogbm9uZTtcXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGhlaWdodDogMTRweDtcXG4gIHdpZHRoOiAxNHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogIzI2YTY5YTtcXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zcztcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xcbiAgbWFyZ2luOiAtNXB4IDAgMCAwO1xcbn1cXG5cXG4ua2V5Ym9hcmQtZm9jdXNlZCBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1czpub3QoLmFjdGl2ZSk6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgzOCwgMTY2LCAxNTQsIDAuMjYpO1xcbn1cXG5cXG5pbnB1dFt0eXBlPXJhbmdlXSB7XFxuICAvKiBmaXggZm9yIEZGIHVuYWJsZSB0byBhcHBseSBmb2N1cyBzdHlsZSBidWcgICovXFxuICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcXG4gIC8qcmVxdWlyZWQgZm9yIHByb3BlciB0cmFjayBzaXppbmcgaW4gRkYqL1xcbn1cXG5cXG5pbnB1dFt0eXBlPXJhbmdlXTo6LW1vei1yYW5nZS10cmFjayB7XFxuICBoZWlnaHQ6IDNweDtcXG4gIGJhY2tncm91bmQ6ICNjMmMwYzI7XFxuICBib3JkZXI6IG5vbmU7XFxufVxcblxcbmlucHV0W3R5cGU9cmFuZ2VdOjotbW96LWZvY3VzLWlubmVyIHtcXG4gIGJvcmRlcjogMDtcXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdGh1bWIge1xcbiAgYm9yZGVyOiBub25lO1xcbiAgaGVpZ2h0OiAxNHB4O1xcbiAgd2lkdGg6IDE0cHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiAjMjZhNjlhO1xcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjNzO1xcbiAgbWFyZ2luLXRvcDogLTVweDtcXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV06LW1vei1mb2N1c3Jpbmcge1xcbiAgb3V0bGluZTogMXB4IHNvbGlkICNmZmY7XFxuICBvdXRsaW5lLW9mZnNldDogLTFweDtcXG59XFxuXFxuLmtleWJvYXJkLWZvY3VzZWQgaW5wdXRbdHlwZT1yYW5nZV06Zm9jdXM6bm90KC5hY3RpdmUpOjotbW96LXJhbmdlLXRodW1iIHtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgzOCwgMTY2LCAxNTQsIDAuMjYpO1xcbn1cXG5cXG5pbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRyYWNrIHtcXG4gIGhlaWdodDogM3B4O1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXdpZHRoOiA2cHggMDtcXG4gIC8qcmVtb3ZlIGRlZmF1bHQgdGljayBtYXJrcyovXFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcblxcbmlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmlsbC1sb3dlciB7XFxuICBiYWNrZ3JvdW5kOiAjNzc3O1xcbn1cXG5cXG5pbnB1dFt0eXBlPXJhbmdlXTo6LW1zLWZpbGwtdXBwZXIge1xcbiAgYmFja2dyb3VuZDogI2RkZDtcXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10aHVtYiB7XFxuICBib3JkZXI6IG5vbmU7XFxuICBoZWlnaHQ6IDE0cHg7XFxuICB3aWR0aDogMTRweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6ICMyNmE2OWE7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3M7XFxufVxcblxcbi5rZXlib2FyZC1mb2N1c2VkIGlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzOm5vdCguYWN0aXZlKTo6LW1zLXRodW1iIHtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgzOCwgMTY2LCAxNTQsIDAuMjYpO1xcbn1cXG5cXG4ucGFyYWxsYXgge1xcbiAgLyogU2V0IGEgc3BlY2lmaWMgaGVpZ2h0ICovXFxuICBtaW4taGVpZ2h0OiA1MDBweDtcXG4gIC8qIENyZWF0ZSB0aGUgcGFyYWxsYXggc2Nyb2xsaW5nIGVmZmVjdCAqL1xcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xcbn1cXG5cXG4qIHtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcblxcbmJvZHkge1xcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XFxufVxcblxcbi5zY2VuZSB7XFxuICB3aWR0aDogMjAwcHg7XFxuICBoZWlnaHQ6IDIwMHB4O1xcbiAgYm9yZGVyOiAxcHggc29saWQgI0NDQztcXG4gIG1hcmdpbjogODBweDtcXG4gIHBlcnNwZWN0aXZlOiA0MDBweDtcXG59XFxuXFxuLmN1YmUge1xcbiAgd2lkdGg6IDIwMHB4O1xcbiAgaGVpZ2h0OiAyMDBweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTQwMHB4KTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcztcXG59XFxuXFxuLmN1YmUuc2hvdy1mcm9udCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTEwcHgpIHJvdGF0ZVkoMGRlZyk7XFxufVxcblxcbi5jdWJlLnNob3ctcmlnaHQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0xMHB4KSByb3RhdGVZKC05MGRlZyk7XFxufVxcblxcbi5jdWJlLnNob3ctYmFjayB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTEwcHgpIHJvdGF0ZVkoLTE4MGRlZyk7XFxufVxcblxcbi5jdWJlLnNob3ctbGVmdCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTEwcHgpIHJvdGF0ZVkoOTBkZWcpO1xcbn1cXG5cXG4uY3ViZS5zaG93LXRvcCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTEwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcXG59XFxuXFxuLmN1YmUuc2hvdy1ib3R0b20ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0xMHB4KSByb3RhdGVYKDkwZGVnKTtcXG59XFxuXFxuLmN1YmVfX2ZhY2Uge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDIwMHB4O1xcbiAgaGVpZ2h0OiAyMDBweDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xcbiAgbGluZS1oZWlnaHQ6IDIwMHB4O1xcbiAgZm9udC1zaXplOiA0MHB4O1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICBjb2xvcjogd2hpdGU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcblxcbi5jdWJlX19mYWNlLS1mcm9udCB7XFxuICBiYWNrZ3JvdW5kOiBoc2xhKDAsIDEwMCUsIDUwJSwgMC43KTtcXG59XFxuXFxuLmN1YmVfX2ZhY2UtLXJpZ2h0IHtcXG4gIGJhY2tncm91bmQ6IGhzbGEoNjAsIDEwMCUsIDUwJSwgMC43KTtcXG59XFxuXFxuLmN1YmVfX2ZhY2UtLWJhY2sge1xcbiAgYmFja2dyb3VuZDogaHNsYSgxMjAsIDEwMCUsIDUwJSwgMC43KTtcXG59XFxuXFxuLmN1YmVfX2ZhY2UtLWxlZnQge1xcbiAgYmFja2dyb3VuZDogaHNsYSgxODAsIDEwMCUsIDUwJSwgMC43KTtcXG59XFxuXFxuLmN1YmVfX2ZhY2UtLXRvcCB7XFxuICBiYWNrZ3JvdW5kOiBoc2xhKDI0MCwgMTAwJSwgNTAlLCAwLjcpO1xcbn1cXG5cXG4uY3ViZV9fZmFjZS0tYm90dG9tIHtcXG4gIGJhY2tncm91bmQ6IGhzbGEoMzAwLCAxMDAlLCA1MCUsIDAuNyk7XFxufVxcblxcbi5jdWJlX19mYWNlLS1mcm9udCB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZykgdHJhbnNsYXRlWigxMDBweCk7XFxufVxcblxcbi5jdWJlX19mYWNlLS1yaWdodCB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVooMTAwcHgpO1xcbn1cXG5cXG4uY3ViZV9fZmFjZS0tYmFjayB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKSB0cmFuc2xhdGVaKDEwMHB4KTtcXG59XFxuXFxuLmN1YmVfX2ZhY2UtLWxlZnQge1xcbiAgdHJhbnNmb3JtOiByb3RhdGVZKC05MGRlZykgdHJhbnNsYXRlWigxMDBweCk7XFxufVxcblxcbi5jdWJlX19mYWNlLS10b3Age1xcbiAgdHJhbnNmb3JtOiByb3RhdGVYKDkwZGVnKSB0cmFuc2xhdGVaKDEwMHB4KTtcXG59XFxuXFxuLmN1YmVfX2ZhY2UtLWJvdHRvbSB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZVgoLTkwZGVnKSB0cmFuc2xhdGVaKDEwMHB4KTtcXG59XFxuXFxubGFiZWwge1xcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xcbn1cXG5cXG4uY29udGFpbmVyIHtcXG4gIG1hcmdpbjogMCBhdXRvO1xcbiAgbWF4LXdpZHRoOiAxMjgwcHg7XFxuICB3aWR0aDogOTAlO1xcbn1cXG5cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiA2MDFweCkge1xcbiAgLmNvbnRhaW5lciB7XFxuICAgIHdpZHRoOiA4NSU7XFxuICB9XFxufVxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDk5M3B4KSB7XFxuICAuY29udGFpbmVyIHtcXG4gICAgd2lkdGg6IDcwJTtcXG4gIH1cXG59XFxuLmNvbCAucm93IHtcXG4gIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xcbiAgbWFyZ2luLXJpZ2h0OiAtMC41cmVtO1xcbn1cXG5cXG4uc2VjdGlvbiB7XFxuICBwYWRkaW5nLXRvcDogMXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xcbn1cXG4uc2VjdGlvbi5uby1wYWQge1xcbiAgcGFkZGluZzogMDtcXG59XFxuLnNlY3Rpb24ubm8tcGFkLWJvdCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnNlY3Rpb24ubm8tcGFkLXRvcCB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuXFxuLnJvdyB7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIG1hcmdpbi1yaWdodDogYXV0bztcXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XFxufVxcbi5yb3c6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBkaXNwbGF5OiB0YWJsZTtcXG4gIGNsZWFyOiBib3RoO1xcbn1cXG4ucm93IC5jb2wge1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgcGFkZGluZzogMCAwLjVyZW07XFxuICBtaW4taGVpZ2h0OiAxcHg7XFxufVxcbi5yb3cgLmNvbFtjbGFzcyo9cHVzaC1dLCAucm93IC5jb2xbY2xhc3MqPXB1bGwtXSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5yb3cgLmNvbC5zMSB7XFxuICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgbGVmdDogYXV0bztcXG4gIHJpZ2h0OiBhdXRvO1xcbn1cXG4ucm93IC5jb2wuczIge1xcbiAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICBsZWZ0OiBhdXRvO1xcbiAgcmlnaHQ6IGF1dG87XFxufVxcbi5yb3cgLmNvbC5zMyB7XFxuICB3aWR0aDogMjUlO1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICBsZWZ0OiBhdXRvO1xcbiAgcmlnaHQ6IGF1dG87XFxufVxcbi5yb3cgLmNvbC5zNCB7XFxuICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIGxlZnQ6IGF1dG87XFxuICByaWdodDogYXV0bztcXG59XFxuLnJvdyAuY29sLnM1IHtcXG4gIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgbGVmdDogYXV0bztcXG4gIHJpZ2h0OiBhdXRvO1xcbn1cXG4ucm93IC5jb2wuczYge1xcbiAgd2lkdGg6IDUwJTtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgbGVmdDogYXV0bztcXG4gIHJpZ2h0OiBhdXRvO1xcbn1cXG4ucm93IC5jb2wuczcge1xcbiAgd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICBsZWZ0OiBhdXRvO1xcbiAgcmlnaHQ6IGF1dG87XFxufVxcbi5yb3cgLmNvbC5zOCB7XFxuICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIGxlZnQ6IGF1dG87XFxuICByaWdodDogYXV0bztcXG59XFxuLnJvdyAuY29sLnM5IHtcXG4gIHdpZHRoOiA3NSU7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIGxlZnQ6IGF1dG87XFxuICByaWdodDogYXV0bztcXG59XFxuLnJvdyAuY29sLnMxMCB7XFxuICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIGxlZnQ6IGF1dG87XFxuICByaWdodDogYXV0bztcXG59XFxuLnJvdyAuY29sLnMxMSB7XFxuICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIGxlZnQ6IGF1dG87XFxuICByaWdodDogYXV0bztcXG59XFxuLnJvdyAuY29sLnMxMiB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgbGVmdDogYXV0bztcXG4gIHJpZ2h0OiBhdXRvO1xcbn1cXG4ucm93IC5jb2wub2Zmc2V0LXMxIHtcXG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzMzMlO1xcbn1cXG4ucm93IC5jb2wucHVsbC1zMSB7XFxuICByaWdodDogOC4zMzMzMzMzMzMzJTtcXG59XFxuLnJvdyAuY29sLnB1c2gtczEge1xcbiAgbGVmdDogOC4zMzMzMzMzMzMzJTtcXG59XFxuLnJvdyAuY29sLm9mZnNldC1zMiB7XFxuICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XFxufVxcbi5yb3cgLmNvbC5wdWxsLXMyIHtcXG4gIHJpZ2h0OiAxNi42NjY2NjY2NjY3JTtcXG59XFxuLnJvdyAuY29sLnB1c2gtczIge1xcbiAgbGVmdDogMTYuNjY2NjY2NjY2NyU7XFxufVxcbi5yb3cgLmNvbC5vZmZzZXQtczMge1xcbiAgbWFyZ2luLWxlZnQ6IDI1JTtcXG59XFxuLnJvdyAuY29sLnB1bGwtczMge1xcbiAgcmlnaHQ6IDI1JTtcXG59XFxuLnJvdyAuY29sLnB1c2gtczMge1xcbiAgbGVmdDogMjUlO1xcbn1cXG4ucm93IC5jb2wub2Zmc2V0LXM0IHtcXG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzJTtcXG59XFxuLnJvdyAuY29sLnB1bGwtczQge1xcbiAgcmlnaHQ6IDMzLjMzMzMzMzMzMzMlO1xcbn1cXG4ucm93IC5jb2wucHVzaC1zNCB7XFxuICBsZWZ0OiAzMy4zMzMzMzMzMzMzJTtcXG59XFxuLnJvdyAuY29sLm9mZnNldC1zNSB7XFxuICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NyU7XFxufVxcbi5yb3cgLmNvbC5wdWxsLXM1IHtcXG4gIHJpZ2h0OiA0MS42NjY2NjY2NjY3JTtcXG59XFxuLnJvdyAuY29sLnB1c2gtczUge1xcbiAgbGVmdDogNDEuNjY2NjY2NjY2NyU7XFxufVxcbi5yb3cgLmNvbC5vZmZzZXQtczYge1xcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcXG59XFxuLnJvdyAuY29sLnB1bGwtczYge1xcbiAgcmlnaHQ6IDUwJTtcXG59XFxuLnJvdyAuY29sLnB1c2gtczYge1xcbiAgbGVmdDogNTAlO1xcbn1cXG4ucm93IC5jb2wub2Zmc2V0LXM3IHtcXG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzJTtcXG59XFxuLnJvdyAuY29sLnB1bGwtczcge1xcbiAgcmlnaHQ6IDU4LjMzMzMzMzMzMzMlO1xcbn1cXG4ucm93IC5jb2wucHVzaC1zNyB7XFxuICBsZWZ0OiA1OC4zMzMzMzMzMzMzJTtcXG59XFxuLnJvdyAuY29sLm9mZnNldC1zOCB7XFxuICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7XFxufVxcbi5yb3cgLmNvbC5wdWxsLXM4IHtcXG4gIHJpZ2h0OiA2Ni42NjY2NjY2NjY3JTtcXG59XFxuLnJvdyAuY29sLnB1c2gtczgge1xcbiAgbGVmdDogNjYuNjY2NjY2NjY2NyU7XFxufVxcbi5yb3cgLmNvbC5vZmZzZXQtczkge1xcbiAgbWFyZ2luLWxlZnQ6IDc1JTtcXG59XFxuLnJvdyAuY29sLnB1bGwtczkge1xcbiAgcmlnaHQ6IDc1JTtcXG59XFxuLnJvdyAuY29sLnB1c2gtczkge1xcbiAgbGVmdDogNzUlO1xcbn1cXG4ucm93IC5jb2wub2Zmc2V0LXMxMCB7XFxuICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XFxufVxcbi5yb3cgLmNvbC5wdWxsLXMxMCB7XFxuICByaWdodDogODMuMzMzMzMzMzMzMyU7XFxufVxcbi5yb3cgLmNvbC5wdXNoLXMxMCB7XFxuICBsZWZ0OiA4My4zMzMzMzMzMzMzJTtcXG59XFxuLnJvdyAuY29sLm9mZnNldC1zMTEge1xcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjclO1xcbn1cXG4ucm93IC5jb2wucHVsbC1zMTEge1xcbiAgcmlnaHQ6IDkxLjY2NjY2NjY2NjclO1xcbn1cXG4ucm93IC5jb2wucHVzaC1zMTEge1xcbiAgbGVmdDogOTEuNjY2NjY2NjY2NyU7XFxufVxcbi5yb3cgLmNvbC5vZmZzZXQtczEyIHtcXG4gIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbn1cXG4ucm93IC5jb2wucHVsbC1zMTIge1xcbiAgcmlnaHQ6IDEwMCU7XFxufVxcbi5yb3cgLmNvbC5wdXNoLXMxMiB7XFxuICBsZWZ0OiAxMDAlO1xcbn1cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiA2MDFweCkge1xcbiAgLnJvdyAuY29sLm0xIHtcXG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC5tMiB7XFxuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLm0zIHtcXG4gICAgd2lkdGg6IDI1JTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLm00IHtcXG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wubTUge1xcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC5tNiB7XFxuICAgIHdpZHRoOiA1MCU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC5tNyB7XFxuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLm04IHtcXG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wubTkge1xcbiAgICB3aWR0aDogNzUlO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wubTEwIHtcXG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wubTExIHtcXG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wubTEyIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQtbTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLW0xIHtcXG4gICAgcmlnaHQ6IDguMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC1tMSB7XFxuICAgIGxlZnQ6IDguMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LW0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwtbTIge1xcbiAgICByaWdodDogMTYuNjY2NjY2NjY2NyU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC1tMiB7XFxuICAgIGxlZnQ6IDE2LjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC1tMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC1tMyB7XFxuICAgIHJpZ2h0OiAyNSU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC1tMyB7XFxuICAgIGxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQtbTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC1tNCB7XFxuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMzMzJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLW00IHtcXG4gICAgbGVmdDogMzMuMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LW01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwtbTUge1xcbiAgICByaWdodDogNDEuNjY2NjY2NjY2NyU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC1tNSB7XFxuICAgIGxlZnQ6IDQxLjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC1tNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC1tNiB7XFxuICAgIHJpZ2h0OiA1MCU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC1tNiB7XFxuICAgIGxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQtbTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC1tNyB7XFxuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMzMzJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLW03IHtcXG4gICAgbGVmdDogNTguMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LW04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwtbTgge1xcbiAgICByaWdodDogNjYuNjY2NjY2NjY2NyU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC1tOCB7XFxuICAgIGxlZnQ6IDY2LjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC1tOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC1tOSB7XFxuICAgIHJpZ2h0OiA3NSU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC1tOSB7XFxuICAgIGxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQtbTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwtbTEwIHtcXG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gtbTEwIHtcXG4gICAgbGVmdDogODMuMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LW0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLW0xMSB7XFxuICAgIHJpZ2h0OiA5MS42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLW0xMSB7XFxuICAgIGxlZnQ6IDkxLjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC1tMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLW0xMiB7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gtbTEyIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gIH1cXG59XFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogOTkzcHgpIHtcXG4gIC5yb3cgLmNvbC5sMSB7XFxuICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wubDIge1xcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC5sMyB7XFxuICAgIHdpZHRoOiAyNSU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC5sNCB7XFxuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLmw1IHtcXG4gICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wubDYge1xcbiAgICB3aWR0aDogNTAlO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wubDcge1xcbiAgICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC5sOCB7XFxuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLmw5IHtcXG4gICAgd2lkdGg6IDc1JTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLmwxMCB7XFxuICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLmwxMSB7XFxuICAgIHdpZHRoOiA5MS42NjY2NjY2NjY3JTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLmwxMiB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LWwxIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC1sMSB7XFxuICAgIHJpZ2h0OiA4LjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gtbDEge1xcbiAgICBsZWZ0OiA4LjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC1sMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLWwyIHtcXG4gICAgcmlnaHQ6IDE2LjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gtbDIge1xcbiAgICBsZWZ0OiAxNi42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQtbDMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwtbDMge1xcbiAgICByaWdodDogMjUlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gtbDMge1xcbiAgICBsZWZ0OiAyNSU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LWw0IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwtbDQge1xcbiAgICByaWdodDogMzMuMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC1sNCB7XFxuICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC1sNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLWw1IHtcXG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gtbDUge1xcbiAgICBsZWZ0OiA0MS42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQtbDYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwtbDYge1xcbiAgICByaWdodDogNTAlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gtbDYge1xcbiAgICBsZWZ0OiA1MCU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LWw3IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwtbDcge1xcbiAgICByaWdodDogNTguMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC1sNyB7XFxuICAgIGxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC1sOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLWw4IHtcXG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gtbDgge1xcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQtbDkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwtbDkge1xcbiAgICByaWdodDogNzUlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gtbDkge1xcbiAgICBsZWZ0OiA3NSU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LWwxMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMzMzJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLWwxMCB7XFxuICAgIHJpZ2h0OiA4My4zMzMzMzMzMzMzJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLWwxMCB7XFxuICAgIGxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC1sMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC1sMTEge1xcbiAgICByaWdodDogOTEuNjY2NjY2NjY2NyU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC1sMTEge1xcbiAgICBsZWZ0OiA5MS42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQtbDEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC1sMTIge1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLWwxMiB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICB9XFxufVxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDEyMDFweCkge1xcbiAgLnJvdyAuY29sLnhsMSB7XFxuICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wueGwyIHtcXG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wueGwzIHtcXG4gICAgd2lkdGg6IDI1JTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLnhsNCB7XFxuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLnhsNSB7XFxuICAgIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLnhsNiB7XFxuICAgIHdpZHRoOiA1MCU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC54bDcge1xcbiAgICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC54bDgge1xcbiAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC54bDkge1xcbiAgICB3aWR0aDogNzUlO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IGF1dG87XFxuICB9XFxuICAucm93IC5jb2wueGwxMCB7XFxuICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgfVxcbiAgLnJvdyAuY29sLnhsMTEge1xcbiAgICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC54bDEyIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgICByaWdodDogYXV0bztcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQteGwxIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC14bDEge1xcbiAgICByaWdodDogOC4zMzMzMzMzMzMzJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLXhsMSB7XFxuICAgIGxlZnQ6IDguMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LXhsMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLXhsMiB7XFxuICAgIHJpZ2h0OiAxNi42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLXhsMiB7XFxuICAgIGxlZnQ6IDE2LjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC14bDMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwteGwzIHtcXG4gICAgcmlnaHQ6IDI1JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLXhsMyB7XFxuICAgIGxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQteGw0IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwteGw0IHtcXG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gteGw0IHtcXG4gICAgbGVmdDogMzMuMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LXhsNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLXhsNSB7XFxuICAgIHJpZ2h0OiA0MS42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLXhsNSB7XFxuICAgIGxlZnQ6IDQxLjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC14bDYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwteGw2IHtcXG4gICAgcmlnaHQ6IDUwJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLXhsNiB7XFxuICAgIGxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQteGw3IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwteGw3IHtcXG4gICAgcmlnaHQ6IDU4LjMzMzMzMzMzMzMlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gteGw3IHtcXG4gICAgbGVmdDogNTguMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LXhsOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLXhsOCB7XFxuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NjY3JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLXhsOCB7XFxuICAgIGxlZnQ6IDY2LjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC14bDkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1bGwteGw5IHtcXG4gICAgcmlnaHQ6IDc1JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdXNoLXhsOSB7XFxuICAgIGxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5vZmZzZXQteGwxMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMzMzJTtcXG4gIH1cXG4gIC5yb3cgLmNvbC5wdWxsLXhsMTAge1xcbiAgICByaWdodDogODMuMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC14bDEwIHtcXG4gICAgbGVmdDogODMuMzMzMzMzMzMzMyU7XFxuICB9XFxuICAucm93IC5jb2wub2Zmc2V0LXhsMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC14bDExIHtcXG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLnB1c2gteGwxMSB7XFxuICAgIGxlZnQ6IDkxLjY2NjY2NjY2NjclO1xcbiAgfVxcbiAgLnJvdyAuY29sLm9mZnNldC14bDEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAucm93IC5jb2wucHVsbC14bDEyIHtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICAucm93IC5jb2wucHVzaC14bDEyIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gIH1cXG59XFxuXFxuLnNpZGVuYXYge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgd2lkdGg6IDMwMHB4O1xcbiAgbGVmdDogMDtcXG4gIHRvcDogMDtcXG4gIG1hcmdpbjogMDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGhlaWdodDogY2FsYygxMDAlICsgNjBweCk7XFxuICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlKTtcXG4gIHBhZGRpbmctYm90dG9tOiA2MHB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIHotaW5kZXg6IDk5OTtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDUlKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcztcXG59XFxuLnNpZGVuYXYucmlnaHQtYWxpZ25lZCB7XFxuICByaWdodDogMDtcXG4gIGxlZnQ6IGF1dG87XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxufVxcbi5zaWRlbmF2IC5jb2xsYXBzaWJsZSB7XFxuICBtYXJnaW46IDA7XFxufVxcbi5zaWRlbmF2IGxpIHtcXG4gIGZsb2F0OiBub25lO1xcbn1cXG4uc2lkZW5hdiBsaSAuaWNvblNpZGVMaW5rIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uc2lkZW5hdiBsaSAuaWNvblNpZGVMaW5rIHN2ZyB7XFxuICBzdHJva2U6IHJnYmEoMCwgMCwgMCwgMC4yKTtcXG4gIHdpZHRoOiAzMHB4O1xcbn1cXG4uc2lkZW5hdiBsaS5hY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcXG59XFxuLnNpZGVuYXYgbGkuYWN0aXZlIHN2ZyB7XFxuICBzdHJva2U6IHdoaXRlICFpbXBvcnRhbnQ7XFxuICB3aWR0aDogMzBweDtcXG59XFxuLnNpZGVuYXYgbGkubGFzdCB7XFxuICBwb3NpdGlvbjogc3RpY2t5O1xcbiAgdG9wOiBjYWxjKDEwMCUgLSA0NXB4IC0gMzVweCk7XFxufVxcbi5zaWRlbmF2IGxpID4gYSB7XFxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNzAwO1xcbiAgaGVpZ2h0OiA0NXB4O1xcbiAgbGluZS1oZWlnaHQ6IDQ1cHg7XFxuICBwYWRkaW5nOiAwIDMwcHg7XFxufVxcbi5zaWRlbmF2IGxpID4gYTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xcbn1cXG4uc2lkZW5hdiBsaSA+IGEuYnRuLCAuc2lkZW5hdiBsaSA+IGEuYnRuLXNtYWxsLCAuc2lkZW5hdiBsaSA+IGEuYnRuLWxhcmdlLCAuc2lkZW5hdiBsaSA+IGEuYnRuLWZsYXQsIC5zaWRlbmF2IGxpID4gYS5idG4tZmxvYXRpbmcge1xcbiAgbWFyZ2luOiAxMHB4IDE1cHg7XFxufVxcbi5zaWRlbmF2IGxpID4gYS5idG4sIC5zaWRlbmF2IGxpID4gYS5idG4tc21hbGwsIC5zaWRlbmF2IGxpID4gYS5idG4tbGFyZ2UsIC5zaWRlbmF2IGxpID4gYS5idG4tZmxvYXRpbmcge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5zaWRlbmF2IGxpID4gYS5idG4tZmxhdCB7XFxuICBjb2xvcjogIzM0MzQzNDtcXG59XFxuLnNpZGVuYXYgbGkgPiBhLmJ0bjpob3ZlciwgLnNpZGVuYXYgbGkgPiBhLmJ0bi1zbWFsbDpob3ZlciwgLnNpZGVuYXYgbGkgPiBhLmJ0bi1sYXJnZTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjQuNzUsIDY0Ljc1LCA2NC43NSk7XFxufVxcbi5zaWRlbmF2IGxpID4gYS5idG4tZmxvYXRpbmc6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0MzQzNDtcXG59XFxuLnNpZGVuYXYgbGkgPiBhID4gaSwgLnNpZGVuYXYgbGkgPiBhID4gW2NsYXNzXj1tZGktXSxcXG4uc2lkZW5hdiBsaSA+IGEgbGkgPiBhID4gW2NsYXNzKj1tZGktXSwgLnNpZGVuYXYgbGkgPiBhID4gaS5zLWljb24ge1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICBoZWlnaHQ6IDQ1cHg7XFxuICBsaW5lLWhlaWdodDogNDVweDtcXG4gIG1hcmdpbjogMCAzMHB4IDAgMDtcXG4gIHdpZHRoOiAyMi41cHg7XFxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG59XFxuLnNpZGVuYXYgLmRpdmlkZXIge1xcbiAgbWFyZ2luOiA3LjVweCAwIDAgMDtcXG59XFxuLnNpZGVuYXYgLnN1YmhlYWRlciB7XFxuICBjdXJzb3I6IGluaXRpYWw7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0NXB4O1xcbn1cXG4uc2lkZW5hdiAuc3ViaGVhZGVyOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2lkZW5hdiAudXNlci12aWV3IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmc6IDMwcHggMzBweCAwO1xcbiAgbWFyZ2luLWJvdHRvbTogNy41cHg7XFxufVxcbi5zaWRlbmF2IC51c2VyLXZpZXcgPiBhIHtcXG4gIGhlaWdodDogYXV0bztcXG4gIHBhZGRpbmc6IDA7XFxufVxcbi5zaWRlbmF2IC51c2VyLXZpZXcgPiBhOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2lkZW5hdiAudXNlci12aWV3IC5iYWNrZ3JvdW5kIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAtMTtcXG59XFxuLnNpZGVuYXYgLnVzZXItdmlldyAuY2lyY2xlLFxcbi5zaWRlbmF2IC51c2VyLXZpZXcgLm5hbWUsXFxuLnNpZGVuYXYgLnVzZXItdmlldyAuZW1haWwge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcbi5zaWRlbmF2IC51c2VyLXZpZXcgLmNpcmNsZSB7XFxuICBoZWlnaHQ6IDY0cHg7XFxuICB3aWR0aDogNjRweDtcXG59XFxuLnNpZGVuYXYgLnVzZXItdmlldyAubmFtZSxcXG4uc2lkZW5hdiAudXNlci12aWV3IC5lbWFpbCB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBsaW5lLWhlaWdodDogMjIuNXB4O1xcbn1cXG4uc2lkZW5hdiAudXNlci12aWV3IC5uYW1lIHtcXG4gIG1hcmdpbi10b3A6IDE2cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4uc2lkZW5hdiAudXNlci12aWV3IC5lbWFpbCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcblxcbi5kcmFnLXRhcmdldCB7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTBweDtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIHotaW5kZXg6IDk5ODtcXG59XFxuLmRyYWctdGFyZ2V0LnJpZ2h0LWFsaWduZWQge1xcbiAgcmlnaHQ6IDA7XFxufVxcblxcbi5zaWRlbmF2LnNpZGVuYXYtZml4ZWQge1xcbiAgbGVmdDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XFxuLnNpZGVuYXYuc2lkZW5hdi1maXhlZC5yaWdodC1hbGlnbmVkIHtcXG4gIHJpZ2h0OiAwO1xcbiAgbGVmdDogYXV0bztcXG59XFxuXFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogOTkycHgpIHtcXG4gIC5zaWRlbmF2LnNpZGVuYXYtZml4ZWQge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xcbiAgfVxcbiAgLnNpZGVuYXYuc2lkZW5hdi1maXhlZC5yaWdodC1hbGlnbmVkIHtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNSUpO1xcbiAgfVxcbiAgLnNpZGVuYXYgPiBhIHtcXG4gICAgcGFkZGluZzogMCAxNXB4O1xcbiAgfVxcbiAgLnNpZGVuYXYgLnVzZXItdmlldyB7XFxuICAgIHBhZGRpbmc6IDE1cHggMTVweCAwO1xcbiAgfVxcbn1cXG4uc2lkZW5hdiAuY29sbGFwc2libGUtYm9keSA+IHVsOm5vdCguY29sbGFwc2libGUpID4gbGkuYWN0aXZlLFxcbi5zaWRlbmF2LnNpZGVuYXYtZml4ZWQgLmNvbGxhcHNpYmxlLWJvZHkgPiB1bDpub3QoLmNvbGxhcHNpYmxlKSA+IGxpLmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTBjYWY5O1xcbn1cXG4uc2lkZW5hdiAuY29sbGFwc2libGUtYm9keSA+IHVsOm5vdCguY29sbGFwc2libGUpID4gbGkuYWN0aXZlIGEsXFxuLnNpZGVuYXYuc2lkZW5hdi1maXhlZCAuY29sbGFwc2libGUtYm9keSA+IHVsOm5vdCguY29sbGFwc2libGUpID4gbGkuYWN0aXZlIGEge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcblxcbi5zaWRlbmF2IC5jb2xsYXBzaWJsZS1ib2R5IHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbi5zaWRlbmF2LW92ZXJsYXkge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgb3BhY2l0eTogMDtcXG4gIGhlaWdodDogMTIwdmg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XFxuICB6LWluZGV4OiA5OTc7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5cXG4ud2l0aC1zaWRlLW5hdi1vcGVuIHtcXG4gIHBhZGRpbmctbGVmdDogMzAwcHg7XFxuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDFzO1xcbn1cXG5cXG4uYnRuLCAuYnRuLXNtYWxsLCAuYnRuLWxhcmdlLFxcbi5idG4tZmxhdCB7XFxuICBib3JkZXI6IG5vbmU7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBoZWlnaHQ6IDM2cHg7XFxuICBsaW5lLWhlaWdodDogMzZweDtcXG4gIHBhZGRpbmc6IDAgMTZweDtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLmJ0bi5kaXNhYmxlZCxcXG4uYnRuLWZsb2F0aW5nLmRpc2FibGVkLFxcbi5idG4tbGFyZ2UuZGlzYWJsZWQsXFxuLmJ0bi1zbWFsbC5kaXNhYmxlZCxcXG4uYnRuLWZsYXQuZGlzYWJsZWQsXFxuLmJ0bjpkaXNhYmxlZCxcXG4uYnRuLWZsb2F0aW5nOmRpc2FibGVkLFxcbi5idG4tbGFyZ2U6ZGlzYWJsZWQsXFxuLmJ0bi1zbWFsbDpkaXNhYmxlZCxcXG4uYnRuLWZsYXQ6ZGlzYWJsZWQsXFxuLmJ0bltkaXNhYmxlZF0sXFxuLmJ0bi1mbG9hdGluZ1tkaXNhYmxlZF0sXFxuLmJ0bi1sYXJnZVtkaXNhYmxlZF0sXFxuLmJ0bi1zbWFsbFtkaXNhYmxlZF0sXFxuLmJ0bi1mbGF0W2Rpc2FibGVkXSB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNERkRGREYgIWltcG9ydGFudDtcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxuICBjb2xvcjogIzlGOUY5RiAhaW1wb3J0YW50O1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG4uYnRuLmRpc2FibGVkOmhvdmVyLFxcbi5idG4tZmxvYXRpbmcuZGlzYWJsZWQ6aG92ZXIsXFxuLmJ0bi1sYXJnZS5kaXNhYmxlZDpob3ZlcixcXG4uYnRuLXNtYWxsLmRpc2FibGVkOmhvdmVyLFxcbi5idG4tZmxhdC5kaXNhYmxlZDpob3ZlcixcXG4uYnRuOmRpc2FibGVkOmhvdmVyLFxcbi5idG4tZmxvYXRpbmc6ZGlzYWJsZWQ6aG92ZXIsXFxuLmJ0bi1sYXJnZTpkaXNhYmxlZDpob3ZlcixcXG4uYnRuLXNtYWxsOmRpc2FibGVkOmhvdmVyLFxcbi5idG4tZmxhdDpkaXNhYmxlZDpob3ZlcixcXG4uYnRuW2Rpc2FibGVkXTpob3ZlcixcXG4uYnRuLWZsb2F0aW5nW2Rpc2FibGVkXTpob3ZlcixcXG4uYnRuLWxhcmdlW2Rpc2FibGVkXTpob3ZlcixcXG4uYnRuLXNtYWxsW2Rpc2FibGVkXTpob3ZlcixcXG4uYnRuLWZsYXRbZGlzYWJsZWRdOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNERkRGREYgIWltcG9ydGFudDtcXG4gIGNvbG9yOiAjOUY5RjlGICFpbXBvcnRhbnQ7XFxufVxcblxcbi5idG4sXFxuLmJ0bi1zbWFsbCxcXG4uYnRuLWxhcmdlLFxcbi5idG4tZmxvYXRpbmcsXFxuLmJ0bi1mbGF0IHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5idG4gaSxcXG4uYnRuLWZsb2F0aW5nIGksXFxuLmJ0bi1sYXJnZSBpLFxcbi5idG4tc21hbGwgaSxcXG4uYnRuLWZsYXQgaSB7XFxuICBmb250LXNpemU6IDEuM3JlbTtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbn1cXG5cXG4uYnRuOmZvY3VzLCAuYnRuLXNtYWxsOmZvY3VzLCAuYnRuLWxhcmdlOmZvY3VzLFxcbi5idG4tZmxvYXRpbmc6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2LjUsIDI2LjUsIDI2LjUpO1xcbn1cXG5cXG4uYnRuLCAuYnRuLXNtYWxsLCAuYnRuLWxhcmdlIHtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0MzQzNDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLW91dDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLmJ0bjpob3ZlciwgLmJ0bi1zbWFsbDpob3ZlciwgLmJ0bi1sYXJnZTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjQuNzUsIDY0Ljc1LCA2NC43NSk7XFxufVxcblxcbi5idG4tZmxvYXRpbmcge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgY29sb3I6ICNmZmY7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgei1pbmRleDogMTtcXG4gIHdpZHRoOiA0MHB4O1xcbiAgaGVpZ2h0OiA0MHB4O1xcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XFxuICBwYWRkaW5nOiAwO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5idG4tZmxvYXRpbmc6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcXG59XFxuLmJ0bi1mbG9hdGluZzpiZWZvcmUge1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG59XFxuLmJ0bi1mbG9hdGluZy5idG4tbGFyZ2Uge1xcbiAgd2lkdGg6IDU2cHg7XFxuICBoZWlnaHQ6IDU2cHg7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG4uYnRuLWZsb2F0aW5nLmJ0bi1sYXJnZS5oYWxmd2F5LWZhYiB7XFxuICBib3R0b206IDI4cHg7XFxufVxcbi5idG4tZmxvYXRpbmcuYnRuLWxhcmdlIGkge1xcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XFxufVxcbi5idG4tZmxvYXRpbmcuYnRuLXNtYWxsIHtcXG4gIHdpZHRoOiAzMi40cHg7XFxuICBoZWlnaHQ6IDMyLjRweDtcXG59XFxuLmJ0bi1mbG9hdGluZy5idG4tc21hbGwuaGFsZndheS1mYWIge1xcbiAgYm90dG9tOiAxNi4ycHg7XFxufVxcbi5idG4tZmxvYXRpbmcuYnRuLXNtYWxsIGkge1xcbiAgbGluZS1oZWlnaHQ6IDMyLjRweDtcXG59XFxuLmJ0bi1mbG9hdGluZy5oYWxmd2F5LWZhYiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMjRweDtcXG4gIGJvdHRvbTogMjBweDtcXG59XFxuLmJ0bi1mbG9hdGluZy5oYWxmd2F5LWZhYi5sZWZ0IHtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgbGVmdDogMjRweDtcXG59XFxuLmJ0bi1mbG9hdGluZyBpIHtcXG4gIHdpZHRoOiBpbmhlcml0O1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgY29sb3I6ICNmZmY7XFxuICBmb250LXNpemU6IDEuNnJlbTtcXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbn1cXG5cXG5idXR0b24uYnRuLWZsb2F0aW5nIHtcXG4gIGJvcmRlcjogbm9uZTtcXG59XFxuXFxuLmZpeGVkLWFjdGlvbi1idG4ge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgcmlnaHQ6IDIzcHg7XFxuICBib3R0b206IDIzcHg7XFxuICBwYWRkaW5nLXRvcDogMTVweDtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICB6LWluZGV4OiA5OTc7XFxufVxcbi5maXhlZC1hY3Rpb24tYnRuLmFjdGl2ZSB1bCB7XFxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbn1cXG4uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tbGVmdCwgLmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLXJpZ2h0IHtcXG4gIHBhZGRpbmc6IDAgMCAwIDE1cHg7XFxufVxcbi5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1sZWZ0IHVsLCAuZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tcmlnaHQgdWwge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICByaWdodDogNjRweDtcXG4gIHRvcDogNTAlO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgbGVmdDogYXV0bztcXG4gIC8qd2lkdGggMTAwJSBvbmx5IGdvZXMgdG8gd2lkdGggb2YgYnV0dG9uIGNvbnRhaW5lciAqL1xcbiAgd2lkdGg6IDUwMHB4O1xcbn1cXG4uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tbGVmdCB1bCBsaSwgLmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLXJpZ2h0IHVsIGxpIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG1hcmdpbjogNy41cHggMTVweCAwIDA7XFxufVxcbi5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1yaWdodCB7XFxuICBwYWRkaW5nOiAwIDE1cHggMCAwO1xcbn1cXG4uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tcmlnaHQgdWwge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIGRpcmVjdGlvbjogcnRsO1xcbiAgbGVmdDogNjRweDtcXG4gIHJpZ2h0OiBhdXRvO1xcbn1cXG4uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tcmlnaHQgdWwgbGkge1xcbiAgbWFyZ2luOiA3LjVweCAwIDAgMTVweDtcXG59XFxuLmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLWJvdHRvbSB7XFxuICBwYWRkaW5nOiAwIDAgMTVweCAwO1xcbn1cXG4uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tYm90dG9tIHVsIHtcXG4gIHRvcDogNjRweDtcXG4gIGJvdHRvbTogYXV0bztcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxufVxcbi5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1ib3R0b20gdWwgbGkge1xcbiAgbWFyZ2luOiAxNXB4IDAgMCAwO1xcbn1cXG4uZml4ZWQtYWN0aW9uLWJ0bi50b29sYmFyIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcbi5maXhlZC1hY3Rpb24tYnRuLnRvb2xiYXIuYWN0aXZlID4gYSBpIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5maXhlZC1hY3Rpb24tYnRuLnRvb2xiYXIgdWwge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIHotaW5kZXg6IDE7XFxufVxcbi5maXhlZC1hY3Rpb24tYnRuLnRvb2xiYXIgdWwgbGkge1xcbiAgZmxleDogMTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG1hcmdpbjogMDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHRyYW5zaXRpb246IG5vbmU7XFxufVxcbi5maXhlZC1hY3Rpb24tYnRuLnRvb2xiYXIgdWwgbGkgYSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XFxuICB6LWluZGV4OiAxO1xcbn1cXG4uZml4ZWQtYWN0aW9uLWJ0bi50b29sYmFyIHVsIGxpIGEgaSB7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG59XFxuLmZpeGVkLWFjdGlvbi1idG4gdWwge1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiA2NHB4O1xcbiAgbWFyZ2luOiAwO1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG4uZml4ZWQtYWN0aW9uLWJ0biB1bCBsaSB7XFxuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xcbn1cXG4uZml4ZWQtYWN0aW9uLWJ0biB1bCBhLmJ0bi1mbG9hdGluZyB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4uZml4ZWQtYWN0aW9uLWJ0biAuZmFiLWJhY2tkcm9wIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAtMTtcXG4gIHdpZHRoOiA0MHB4O1xcbiAgaGVpZ2h0OiA0MHB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XFxufVxcblxcbi5idG4tZmxhdCB7XFxuICBib3gtc2hhZG93OiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBjb2xvcjogIzM0MzQzNDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcXG59XFxuLmJ0bi1mbGF0OmZvY3VzLCAuYnRuLWZsYXQ6aG92ZXIge1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLmJ0bi1mbGF0OmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcXG59XFxuLmJ0bi1mbGF0LmRpc2FibGVkLCAuYnRuLWZsYXQuYnRuLWZsYXRbZGlzYWJsZWRdIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogcmdiKDE3OC41LCAxNzguNSwgMTc4LjUpICFpbXBvcnRhbnQ7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcblxcbi5idG4tbGFyZ2Uge1xcbiAgaGVpZ2h0OiA1NHB4O1xcbiAgbGluZS1oZWlnaHQ6IDU0cHg7XFxuICBmb250LXNpemU6IDE1cHg7XFxuICBwYWRkaW5nOiAwIDI4cHg7XFxufVxcbi5idG4tbGFyZ2UgaSB7XFxuICBmb250LXNpemU6IDEuNnJlbTtcXG59XFxuXFxuLmJ0bi1zbWFsbCB7XFxuICBoZWlnaHQ6IDMyLjRweDtcXG4gIGxpbmUtaGVpZ2h0OiAzMi40cHg7XFxuICBmb250LXNpemU6IDEzcHg7XFxufVxcbi5idG4tc21hbGwgaSB7XFxuICBmb250LXNpemU6IDEuMnJlbTtcXG59XFxuXFxuLmJ0bi1ibG9jayB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuXFxuLmNvbW11blRhYkhlYWRlciwgLnRhYnMuYWN0aXZlVGFiLTIgLnRhYi1oZWFkZXItb3ZlcjIgLnRhYi1oZWFkZXIsIC50YWJzLmFjdGl2ZVRhYi0yIC50YWItaGVhZGVyLW92ZXIxIC50YWItaGVhZGVyLCAudGFicy5hY3RpdmVUYWItMiAudGFiLWhlYWRlci1vdmVyMCAudGFiLWhlYWRlciwgLnRhYnMuYWN0aXZlVGFiLTEgLnRhYi1oZWFkZXItb3ZlcjIgLnRhYi1oZWFkZXIsIC50YWJzLmFjdGl2ZVRhYi0xIC50YWItaGVhZGVyLW92ZXIxIC50YWItaGVhZGVyLCAudGFicy5hY3RpdmVUYWItMSAudGFiLWhlYWRlci1vdmVyMCAudGFiLWhlYWRlciwgLnRhYnMuYWN0aXZlVGFiLTAgLnRhYi1oZWFkZXItb3ZlcjIgLnRhYi1oZWFkZXIsIC50YWJzLmFjdGl2ZVRhYi0wIC50YWItaGVhZGVyLW92ZXIxIC50YWItaGVhZGVyLCAudGFicy5hY3RpdmVUYWItMCAudGFiLWhlYWRlci1vdmVyMCAudGFiLWhlYWRlciB7XFxuICBoZWlnaHQ6IDEwMHB4O1xcbiAgcGFkZGluZzogNDBweDtcXG59XFxuXFxuLnRhYnMge1xcbiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTUwcHgpO1xcbiAgbWFyZ2luLXRvcDogMzBweDtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG4gIGJvcmRlci1yYWRpdXM6IDQwcHggIWltcG9ydGFudDtcXG59XFxuLnRhYnMgLmlubmVycGFnZSB7XFxuICBtaW4taGVpZ2h0OiA3MFZIICFpbXBvcnRhbnQ7XFxufVxcbi50YWJzIC50YWJzLWhlYWRlci1vdmVybGF5IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBoZWlnaHQ6IDEwMHB4O1xcbn1cXG4udGFicy5hY3RpdmVUYWItMCAudGFiLWhlYWRlci1vdmVyMCB7XFxuICBmbGV4OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNy45NDMzOTYyMjY0LCAxOTYuMzU4NDkwNTY2LCAyNTIuNTU2NjAzNzczNik7XFxuICBib3JkZXItcmFkaXVzOiA0MHB4IDAgMCAwO1xcbn1cXG4udGFicy5hY3RpdmVUYWItMCAudGFiLWhlYWRlci1vdmVyMCAudGFiLWhlYWRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JlN2ZlO1xcbiAgYm9yZGVyLXJhZGl1czogNDBweCA0MHB4IDAgMDtcXG59XFxuLnRhYnMuYWN0aXZlVGFiLTAgLnRhYi1oZWFkZXItb3ZlcjEge1xcbiAgZmxleDogMTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwLjI1dHVybiwgI2NiZTdmZSwgcmdiKDUyLjg4Njc5MjQ1MjgsIDE2MS43MTY5ODExMzIxLCAyNTEuMTEzMjA3NTQ3MikpO1xcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDtcXG59XFxuLnRhYnMuYWN0aXZlVGFiLTAgLnRhYi1oZWFkZXItb3ZlcjEgLnRhYi1oZWFkZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNy45NDMzOTYyMjY0LCAxOTYuMzU4NDkwNTY2LCAyNTIuNTU2NjAzNzczNik7XFxuICBib3JkZXItcmFkaXVzOiAwIDQwcHggMCA0MHB4O1xcbn1cXG4udGFicy5hY3RpdmVUYWItMCAudGFiLWhlYWRlci1vdmVyMiB7XFxuICBmbGV4OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNy45NDMzOTYyMjY0LCAxOTYuMzU4NDkwNTY2LCAyNTIuNTU2NjAzNzczNik7XFxuICBib3JkZXItcmFkaXVzOiAwIDQwcHggMCAwO1xcbn1cXG4udGFicy5hY3RpdmVUYWItMCAudGFiLWhlYWRlci1vdmVyMiAudGFiLWhlYWRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTIuODg2NzkyNDUyOCwgMTYxLjcxNjk4MTEzMjEsIDI1MS4xMTMyMDc1NDcyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDAgNDBweCAwIDQwcHg7XFxufVxcbi50YWJzLmFjdGl2ZVRhYi0xIC50YWItaGVhZGVyLW92ZXIwIHtcXG4gIGZsZXg6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JlN2ZlO1xcbiAgYm9yZGVyLXJhZGl1czogNDBweCAwIDAgMDtcXG59XFxuLnRhYnMuYWN0aXZlVGFiLTEgLnRhYi1oZWFkZXItb3ZlcjAgLnRhYi1oZWFkZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNy45NDMzOTYyMjY0LCAxOTYuMzU4NDkwNTY2LCAyNTIuNTU2NjAzNzczNik7XFxuICBib3JkZXItcmFkaXVzOiA0MHB4IDAgNDBweCAwO1xcbn1cXG4udGFicy5hY3RpdmVUYWItMSAudGFiLWhlYWRlci1vdmVyMSB7XFxuICBmbGV4OiAxO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDAuMjV0dXJuLCByZ2IoMTI3Ljk0MzM5NjIyNjQsIDE5Ni4zNTg0OTA1NjYsIDI1Mi41NTY2MDM3NzM2KSwgcmdiKDUyLjg4Njc5MjQ1MjgsIDE2MS43MTY5ODExMzIxLCAyNTEuMTEzMjA3NTQ3MikpO1xcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDtcXG59XFxuLnRhYnMuYWN0aXZlVGFiLTEgLnRhYi1oZWFkZXItb3ZlcjEgLnRhYi1oZWFkZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NiZTdmZTtcXG4gIGJvcmRlci1yYWRpdXM6IDQwcHggNDBweCAwIDA7XFxufVxcbi50YWJzLmFjdGl2ZVRhYi0xIC50YWItaGVhZGVyLW92ZXIyIHtcXG4gIGZsZXg6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JlN2ZlO1xcbiAgYm9yZGVyLXJhZGl1czogMCA0MHB4IDAgMDtcXG59XFxuLnRhYnMuYWN0aXZlVGFiLTEgLnRhYi1oZWFkZXItb3ZlcjIgLnRhYi1oZWFkZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDUyLjg4Njc5MjQ1MjgsIDE2MS43MTY5ODExMzIxLCAyNTEuMTEzMjA3NTQ3Mik7XFxuICBib3JkZXItcmFkaXVzOiAwIDQwcHggMCA0MHB4O1xcbn1cXG4udGFicy5hY3RpdmVUYWItMiAudGFiLWhlYWRlci1vdmVyMCB7XFxuICBmbGV4OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDUyLjg4Njc5MjQ1MjgsIDE2MS43MTY5ODExMzIxLCAyNTEuMTEzMjA3NTQ3Mik7XFxuICBib3JkZXItcmFkaXVzOiA0MHB4IDAgMCAwO1xcbn1cXG4udGFicy5hY3RpdmVUYWItMiAudGFiLWhlYWRlci1vdmVyMCAudGFiLWhlYWRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI3Ljk0MzM5NjIyNjQsIDE5Ni4zNTg0OTA1NjYsIDI1Mi41NTY2MDM3NzM2KTtcXG4gIGJvcmRlci1yYWRpdXM6IDQwcHggMCA0MHB4IDA7XFxufVxcbi50YWJzLmFjdGl2ZVRhYi0yIC50YWItaGVhZGVyLW92ZXIxIHtcXG4gIGZsZXg6IDE7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMC4yNXR1cm4sIHJnYigxMjcuOTQzMzk2MjI2NCwgMTk2LjM1ODQ5MDU2NiwgMjUyLjU1NjYwMzc3MzYpLCAjY2JlN2ZlKTtcXG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7XFxufVxcbi50YWJzLmFjdGl2ZVRhYi0yIC50YWItaGVhZGVyLW92ZXIxIC50YWItaGVhZGVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1Mi44ODY3OTI0NTI4LCAxNjEuNzE2OTgxMTMyMSwgMjUxLjExMzIwNzU0NzIpO1xcbiAgYm9yZGVyLXJhZGl1czogNDBweCAwIDQwcHggMDtcXG59XFxuLnRhYnMuYWN0aXZlVGFiLTIgLnRhYi1oZWFkZXItb3ZlcjIge1xcbiAgZmxleDogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1Mi44ODY3OTI0NTI4LCAxNjEuNzE2OTgxMTMyMSwgMjUxLjExMzIwNzU0NzIpO1xcbiAgYm9yZGVyLXJhZGl1czogMCA0MHB4IDAgMDtcXG59XFxuLnRhYnMuYWN0aXZlVGFiLTIgLnRhYi1oZWFkZXItb3ZlcjIgLnRhYi1oZWFkZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NiZTdmZTtcXG4gIGJvcmRlci1yYWRpdXM6IDQwcHggNDBweCAwIDA7XFxufVxcbi50YWJzIC50YWItY29udGVudCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JlN2ZlO1xcbiAgcGFkZGluZzogMTBweDtcXG4gIGJvcmRlci10b3A6IDA7XFxuICBtaW4taGVpZ2h0OiA3MHZoO1xcbiAgYm9yZGVyLXJhZGl1czogMCAwIDQwcHggNDBweDtcXG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xcbn1cXG5cXG4ubG9hZGVyLW92ZXJsYXkge1xcbiAgei1pbmRleDogOTk5O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAxMDB2aDtcXG4gIHdpZHRoOiAxMDB2dztcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMiwgMTAwLCAxMDAsIDAuNjAzKTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbn1cXG4ubG9hZGVyLW92ZXJsYXkgLmxvYWRlciB7XFxuICBib3JkZXI6IDdweCBzb2xpZCAjZjNmM2YzOyAvKiBMaWdodCBncmV5ICovXFxuICBib3JkZXItdG9wOiA3cHggc29saWQgIzJlYTJjYzsgLyogQmx1ZSAqL1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgd2lkdGg6IDcwcHg7XFxuICBoZWlnaHQ6IDcwcHg7XFxuICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlO1xcbn1cXG4ubG9hZGVyLW92ZXJsYXkgLmxvYWRlci10ZXh0IHtcXG4gIG1hcmdpbi10b3A6IDIwcHg7XFxuICBmb250LXNpemU6IDI1cHg7XFxuICBjb2xvcjogIzJlYTJjYztcXG59XFxuQGtleWZyYW1lcyBzcGluIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gIH1cXG59XFxuXFxuLmNhcmQtcGFuZWwge1xcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI1cztcXG4gIHBhZGRpbmc6IDI0cHg7XFxuICBtYXJnaW46IDAuMzMzMzMzMzMzM3JlbSAwIDAuNjY2NjY2NjY2N3JlbSAwO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG59XFxuXFxuLmNhcmQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbWFyZ2luOiAwLjMzMzMzMzMzMzNyZW0gMCAwLjY2NjY2NjY2NjdyZW0gMDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjVzO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbn1cXG4uY2FyZCAuY2FyZC10aXRsZSB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBmb250LXdlaWdodDogMzAwO1xcbn1cXG4uY2FyZCAuY2FyZC10aXRsZS5hY3RpdmF0b3Ige1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4uY2FyZC5zbWFsbCwgLmNhcmQubWVkaXVtLCAuY2FyZC5sYXJnZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5jYXJkLnNtYWxsIC5jYXJkLWltYWdlLCAuY2FyZC5tZWRpdW0gLmNhcmQtaW1hZ2UsIC5jYXJkLmxhcmdlIC5jYXJkLWltYWdlIHtcXG4gIG1heC1oZWlnaHQ6IDYwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5jYXJkLnNtYWxsIC5jYXJkLWltYWdlICsgLmNhcmQtY29udGVudCwgLmNhcmQubWVkaXVtIC5jYXJkLWltYWdlICsgLmNhcmQtY29udGVudCwgLmNhcmQubGFyZ2UgLmNhcmQtaW1hZ2UgKyAuY2FyZC1jb250ZW50IHtcXG4gIG1heC1oZWlnaHQ6IDQwJTtcXG59XFxuLmNhcmQuc21hbGwgLmNhcmQtY29udGVudCwgLmNhcmQubWVkaXVtIC5jYXJkLWNvbnRlbnQsIC5jYXJkLmxhcmdlIC5jYXJkLWNvbnRlbnQge1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5jYXJkLnNtYWxsIC5jYXJkLWFjdGlvbiwgLmNhcmQubWVkaXVtIC5jYXJkLWFjdGlvbiwgLmNhcmQubGFyZ2UgLmNhcmQtYWN0aW9uIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmNhcmQuc21hbGwge1xcbiAgaGVpZ2h0OiAzMDBweDtcXG59XFxuLmNhcmQubWVkaXVtIHtcXG4gIGhlaWdodDogNDAwcHg7XFxufVxcbi5jYXJkLmxhcmdlIHtcXG4gIGhlaWdodDogNTAwcHg7XFxufVxcbi5jYXJkLmhvcml6b250YWwge1xcbiAgZGlzcGxheTogZmxleDtcXG59XFxuLmNhcmQuaG9yaXpvbnRhbC5zbWFsbCAuY2FyZC1pbWFnZSwgLmNhcmQuaG9yaXpvbnRhbC5tZWRpdW0gLmNhcmQtaW1hZ2UsIC5jYXJkLmhvcml6b250YWwubGFyZ2UgLmNhcmQtaW1hZ2Uge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgbWF4LWhlaWdodDogbm9uZTtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbn1cXG4uY2FyZC5ob3Jpem9udGFsLnNtYWxsIC5jYXJkLWltYWdlIGltZywgLmNhcmQuaG9yaXpvbnRhbC5tZWRpdW0gLmNhcmQtaW1hZ2UgaW1nLCAuY2FyZC5ob3Jpem9udGFsLmxhcmdlIC5jYXJkLWltYWdlIGltZyB7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5jYXJkLmhvcml6b250YWwgLmNhcmQtaW1hZ2Uge1xcbiAgbWF4LXdpZHRoOiA1MCU7XFxufVxcbi5jYXJkLmhvcml6b250YWwgLmNhcmQtaW1hZ2UgaW1nIHtcXG4gIGJvcmRlci1yYWRpdXM6IDJweCAwIDAgMnB4O1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgd2lkdGg6IGF1dG87XFxufVxcbi5jYXJkLmhvcml6b250YWwgLmNhcmQtc3RhY2tlZCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGZsZXg6IDE7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5jYXJkLmhvcml6b250YWwgLmNhcmQtc3RhY2tlZCAuY2FyZC1jb250ZW50IHtcXG4gIGZsZXgtZ3JvdzogMTtcXG59XFxuLmNhcmQuc3RpY2t5LWFjdGlvbiAuY2FyZC1hY3Rpb24ge1xcbiAgei1pbmRleDogMjtcXG59XFxuLmNhcmQuc3RpY2t5LWFjdGlvbiAuY2FyZC1yZXZlYWwge1xcbiAgei1pbmRleDogMTtcXG4gIHBhZGRpbmctYm90dG9tOiA2NHB4O1xcbn1cXG4uY2FyZCAuY2FyZC1pbWFnZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5jYXJkIC5jYXJkLWltYWdlIGltZyB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5jYXJkIC5jYXJkLWltYWdlIC5jYXJkLXRpdGxlIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIHBhZGRpbmc6IDI0cHg7XFxufVxcbi5jYXJkIC5jYXJkLWNvbnRlbnQge1xcbiAgcGFkZGluZzogMjRweDtcXG4gIGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O1xcbn1cXG4uY2FyZCAuY2FyZC1jb250ZW50IHAge1xcbiAgbWFyZ2luOiAwO1xcbn1cXG4uY2FyZCAuY2FyZC1jb250ZW50IC5jYXJkLXRpdGxlIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5jYXJkIC5jYXJkLWNvbnRlbnQgLmNhcmQtdGl0bGUgaSB7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG59XFxuLmNhcmQgLmNhcmQtYWN0aW9uIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxNjAsIDE2MCwgMTYwLCAwLjIpO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZzogMTZweCAyNHB4O1xcbn1cXG4uY2FyZCAuY2FyZC1hY3Rpb246bGFzdC1jaGlsZCB7XFxuICBib3JkZXItcmFkaXVzOiAwIDAgMnB4IDJweDtcXG59XFxuLmNhcmQgLmNhcmQtYWN0aW9uIGE6bm90KC5idG4pOm5vdCguYnRuLWxhcmdlKTpub3QoLmJ0bi1zbWFsbCk6bm90KC5idG4tbGFyZ2UpOm5vdCguYnRuLWZsb2F0aW5nKSB7XFxuICBjb2xvcjogI2ZmYWI0MDtcXG4gIG1hcmdpbi1yaWdodDogMjRweDtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxufVxcbi5jYXJkIC5jYXJkLWFjdGlvbiBhOm5vdCguYnRuKTpub3QoLmJ0bi1sYXJnZSk6bm90KC5idG4tc21hbGwpOm5vdCguYnRuLWxhcmdlKTpub3QoLmJ0bi1mbG9hdGluZyk6aG92ZXIge1xcbiAgY29sb3I6IHJnYigyNTUsIDIxNS44NTg2Mzg3NDM1LCAxNjYpO1xcbn1cXG4uY2FyZCAuY2FyZC1yZXZlYWwge1xcbiAgcGFkZGluZzogMjRweDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICB3aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBsZWZ0OiAwO1xcbiAgdG9wOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgei1pbmRleDogMztcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5jYXJkIC5jYXJkLXJldmVhbCAuY2FyZC10aXRsZSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuXFxuLypcXG4gICAgQGxpY2Vuc2VcXG4gICAgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cXG4gICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dFxcbiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dFxcbiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHRcXG4gICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc29cXG4gICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHRcXG4gKi9cXG4vKioqKioqKioqKioqKioqKioqKioqKioqKiovXFxuLyogU1RZTEVTIEZPUiBUSEUgU1BJTk5FUiAqL1xcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG4vKlxcbiAqIENvbnN0YW50czpcXG4gKiAgICAgIFNUUk9LRVdJRFRIID0gM3B4XFxuICogICAgICBBUkNTSVpFICAgICA9IDI3MCBkZWdyZWVzIChhbW91bnQgb2YgY2lyY2xlIHRoZSBhcmMgdGFrZXMgdXApXFxuICogICAgICBBUkNUSU1FICAgICA9IDEzMzNtcyAodGltZSBpdCB0YWtlcyB0byBleHBhbmQgYW5kIGNvbnRyYWN0IGFyYylcXG4gKiAgICAgIEFSQ1NUQVJUUk9UID0gMjE2IGRlZ3JlZXMgKGhvdyBtdWNoIHRoZSBzdGFydCBsb2NhdGlvbiBvZiB0aGUgYXJjXFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCByb3RhdGUgZWFjaCB0aW1lLCAyMTYgZ2l2ZXMgdXMgYVxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1IHBvaW50ZWQgc3RhciBzaGFwZSAoaXQncyAzNjAvNSAqIDMpLlxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgYSA3IHBvaW50ZWQgc3Rhciwgd2UgbWlnaHQgZG9cXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYwLzcgKiAzID0gMTU0LjI4NilcXG4gKiAgICAgIENPTlRBSU5FUldJRFRIID0gMjhweFxcbiAqICAgICAgU0hSSU5LX1RJTUUgPSA0MDBtc1xcbiAqL1xcbi5wcmVsb2FkZXItd3JhcHBlciB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogNTBweDtcXG4gIGhlaWdodDogNTBweDtcXG59XFxuLnByZWxvYWRlci13cmFwcGVyLnNtYWxsIHtcXG4gIHdpZHRoOiAzNnB4O1xcbiAgaGVpZ2h0OiAzNnB4O1xcbn1cXG4ucHJlbG9hZGVyLXdyYXBwZXIuYmlnIHtcXG4gIHdpZHRoOiA2NHB4O1xcbiAgaGVpZ2h0OiA2NHB4O1xcbn1cXG4ucHJlbG9hZGVyLXdyYXBwZXIuYWN0aXZlIHtcXG4gIC8qIGR1cmF0aW9uOiAzNjAgKiBBUkNUSU1FIC8gKEFSQ1NUQVJUUk9UICsgKDM2MC1BUkNTSVpFKSkgKi9cXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIDE1NjhtcyBsaW5lYXIgaW5maW5pdGU7XFxuICBhbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgMTU2OG1zIGxpbmVhciBpbmZpbml0ZTtcXG59XFxuXFxuQC13ZWJraXQta2V5ZnJhbWVzIGNvbnRhaW5lci1yb3RhdGUge1xcbiAgdG8ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgY29udGFpbmVyLXJvdGF0ZSB7XFxuICB0byB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcbi5zcGlubmVyLWxheWVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3BhY2l0eTogMDtcXG4gIGJvcmRlci1jb2xvcjogIzI2YTY5YTtcXG59XFxuXFxuLnNwaW5uZXItYmx1ZSxcXG4uc3Bpbm5lci1ibHVlLW9ubHkge1xcbiAgYm9yZGVyLWNvbG9yOiAjNDI4NWY0O1xcbn1cXG5cXG4uc3Bpbm5lci1yZWQsXFxuLnNwaW5uZXItcmVkLW9ubHkge1xcbiAgYm9yZGVyLWNvbG9yOiAjZGI0NDM3O1xcbn1cXG5cXG4uc3Bpbm5lci15ZWxsb3csXFxuLnNwaW5uZXIteWVsbG93LW9ubHkge1xcbiAgYm9yZGVyLWNvbG9yOiAjZjRiNDAwO1xcbn1cXG5cXG4uc3Bpbm5lci1ncmVlbixcXG4uc3Bpbm5lci1ncmVlbi1vbmx5IHtcXG4gIGJvcmRlci1jb2xvcjogIzBmOWQ1ODtcXG59XFxuXFxuLyoqXFxuICogSU1QT1JUQU5UIE5PVEUgQUJPVVQgQ1NTIEFOSU1BVElPTiBQUk9QRVJUSUVTIChrZWFudWxlZSk6XFxuICpcXG4gKiBpT1MgU2FmYXJpICh0ZXN0ZWQgb24gaU9TIDguMSkgZG9lcyBub3QgaGFuZGxlIGFuaW1hdGlvbi1kZWxheSB2ZXJ5IHdlbGwgLSBpdCBkb2Vzbid0XFxuICogZ3VhcmFudGVlIHRoYXQgdGhlIGFuaW1hdGlvbiB3aWxsIHN0YXJ0IF9leGFjdGx5XyBhZnRlciB0aGF0IHZhbHVlLiBTbyB3ZSBhdm9pZCB1c2luZ1xcbiAqIGFuaW1hdGlvbi1kZWxheSBhbmQgaW5zdGVhZCBzZXQgY3VzdG9tIGtleWZyYW1lcyBmb3IgZWFjaCBjb2xvciAoYXMgcmVkdW5kYW50IGFzIGl0XFxuICogc2VlbXMpLlxcbiAqXFxuICogV2Ugd3JpdGUgb3V0IGVhY2ggYW5pbWF0aW9uIGluIGZ1bGwgKGluc3RlYWQgb2Ygc2VwYXJhdGluZyBhbmltYXRpb24tbmFtZSxcXG4gKiBhbmltYXRpb24tZHVyYXRpb24sIGV0Yy4pIGJlY2F1c2UgdW5kZXIgdGhlIHBvbHlmaWxsLCBTYWZhcmkgZG9lcyBub3QgcmVjb2duaXplIHRob3NlXFxuICogc3BlY2lmaWMgcHJvcGVydGllcyBwcm9wZXJseSwgdHJlYXRzIHRoZW0gYXMgLXdlYmtpdC1hbmltYXRpb24sIGFuZCBvdmVycmlkZXMgdGhlXFxuICogb3RoZXIgYW5pbWF0aW9uIHJ1bGVzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcGxhdGZvcm0vaXNzdWVzLzUzLlxcbiAqL1xcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ibHVlIHtcXG4gIC8qIGR1cmF0aW9uczogNCAqIEFSQ1RJTUUgKi9cXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgYmx1ZS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xcbiAgYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgYmx1ZS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xcbn1cXG5cXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItcmVkIHtcXG4gIC8qIGR1cmF0aW9uczogNCAqIEFSQ1RJTUUgKi9cXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgcmVkLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XFxuICBhbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCByZWQtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcXG59XFxuXFxuLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5zcGlubmVyLXllbGxvdyB7XFxuICAvKiBkdXJhdGlvbnM6IDQgKiBBUkNUSU1FICovXFxuICAtd2Via2l0LWFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIHllbGxvdy1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xcbiAgYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgeWVsbG93LWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XFxufVxcblxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ncmVlbiB7XFxuICAvKiBkdXJhdGlvbnM6IDQgKiBBUkNUSU1FICovXFxuICAtd2Via2l0LWFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIGdyZWVuLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XFxuICBhbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBncmVlbi1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xcbn1cXG5cXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLFxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ibHVlLW9ubHksXFxuLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5zcGlubmVyLXJlZC1vbmx5LFxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci15ZWxsb3ctb25seSxcXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItZ3JlZW4tb25seSB7XFxuICAvKiBkdXJhdGlvbnM6IDQgKiBBUkNUSU1FICovXFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC1hbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xcbiAgYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcXG59XFxuXFxuQC13ZWJraXQta2V5ZnJhbWVzIGZpbGwtdW5maWxsLXJvdGF0ZSB7XFxuICAxMi41JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcXG4gIH0gLyogMC41ICogQVJDU0laRSAqL1xcbiAgMjUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xcbiAgfSAvKiAxICAgKiBBUkNTSVpFICovXFxuICAzNy41JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDA1ZGVnKTtcXG4gIH0gLyogMS41ICogQVJDU0laRSAqL1xcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpO1xcbiAgfSAvKiAyICAgKiBBUkNTSVpFICovXFxuICA2Mi41JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNjc1ZGVnKTtcXG4gIH0gLyogMi41ICogQVJDU0laRSAqL1xcbiAgNzUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg4MTBkZWcpO1xcbiAgfSAvKiAzICAgKiBBUkNTSVpFICovXFxuICA4Ny41JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTQ1ZGVnKTtcXG4gIH0gLyogMy41ICogQVJDU0laRSAqL1xcbiAgdG8ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpO1xcbiAgfSAvKiA0ICAgKiBBUkNTSVpFICovXFxufVxcbkBrZXlmcmFtZXMgZmlsbC11bmZpbGwtcm90YXRlIHtcXG4gIDEyLjUlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcXG4gIH0gLyogMC41ICogQVJDU0laRSAqL1xcbiAgMjUlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcXG4gIH0gLyogMSAgICogQVJDU0laRSAqL1xcbiAgMzcuNSUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0MDVkZWcpO1xcbiAgfSAvKiAxLjUgKiBBUkNTSVpFICovXFxuICA1MCUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpO1xcbiAgfSAvKiAyICAgKiBBUkNTSVpFICovXFxuICA2Mi41JSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDY3NWRlZyk7XFxuICB9IC8qIDIuNSAqIEFSQ1NJWkUgKi9cXG4gIDc1JSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDgxMGRlZyk7XFxuICB9IC8qIDMgICAqIEFSQ1NJWkUgKi9cXG4gIDg3LjUlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTQ1ZGVnKTtcXG4gIH0gLyogMy41ICogQVJDU0laRSAqL1xcbiAgdG8ge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMDgwZGVnKTtcXG4gIH0gLyogNCAgICogQVJDU0laRSAqL1xcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgYmx1ZS1mYWRlLWluLW91dCB7XFxuICBmcm9tIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG4gIDI1JSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxuICAyNiUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgODklIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIDkwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBibHVlLWZhZGUtaW4tb3V0IHtcXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbiAgMjUlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG4gIDI2JSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICA4OSUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgOTAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcmVkLWZhZGUtaW4tb3V0IHtcXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgMTUlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIDI1JSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxuICA1MCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbiAgNTElIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyByZWQtZmFkZS1pbi1vdXQge1xcbiAgZnJvbSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICAxNSUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgMjUlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxuICA1MSUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgeWVsbG93LWZhZGUtaW4tb3V0IHtcXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgNDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxuICA3NSUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbiAgNzYlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyB5ZWxsb3ctZmFkZS1pbi1vdXQge1xcbiAgZnJvbSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICA0MCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG4gIDc1JSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxuICA3NiUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgZ3JlZW4tZmFkZS1pbi1vdXQge1xcbiAgZnJvbSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICA2NSUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgNzUlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG4gIDkwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBncmVlbi1mYWRlLWluLW91dCB7XFxuICBmcm9tIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIDY1JSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICA3NSUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbiAgOTAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbn1cXG4vKipcXG4gKiBQYXRjaCB0aGUgZ2FwIHRoYXQgYXBwZWFyIGJldHdlZW4gdGhlIHR3byBhZGphY2VudCBkaXYuY2lyY2xlLWNsaXBwZXIgd2hpbGUgdGhlXFxuICogc3Bpbm5lciBpcyByb3RhdGluZyAoYXBwZWFycyBvbiBDaHJvbWUgMzgsIFNhZmFyaSA3LjEsIGFuZCBJRSAxMSkuXFxuICovXFxuLmdhcC1wYXRjaCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiA0NSU7XFxuICB3aWR0aDogMTAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcXG59XFxuXFxuLmdhcC1wYXRjaCAuY2lyY2xlIHtcXG4gIHdpZHRoOiAxMDAwJTtcXG4gIGxlZnQ6IC00NTAlO1xcbn1cXG5cXG4uY2lyY2xlLWNsaXBwZXIge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDUwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XFxufVxcbi5jaXJjbGUtY2xpcHBlciAuY2lyY2xlIHtcXG4gIHdpZHRoOiAyMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyLXdpZHRoOiAzcHg7IC8qIFNUUk9LRVdJRFRIICovXFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBub25lO1xcbiAgYW5pbWF0aW9uOiBub25lO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxufVxcbi5jaXJjbGUtY2xpcHBlci5sZWZ0IC5jaXJjbGUge1xcbiAgbGVmdDogMDtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTI5ZGVnKTtcXG4gIHRyYW5zZm9ybTogcm90YXRlKDEyOWRlZyk7XFxufVxcbi5jaXJjbGUtY2xpcHBlci5yaWdodCAuY2lyY2xlIHtcXG4gIGxlZnQ6IC0xMDAlO1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMjlkZWcpO1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTEyOWRlZyk7XFxufVxcblxcbi5hY3RpdmUgLmNpcmNsZS1jbGlwcGVyLmxlZnQgLmNpcmNsZSB7XFxuICAvKiBkdXJhdGlvbjogQVJDVElNRSAqL1xcbiAgLXdlYmtpdC1hbmltYXRpb246IGxlZnQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xcbiAgYW5pbWF0aW9uOiBsZWZ0LXNwaW4gMTMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcXG59XFxuXFxuLmFjdGl2ZSAuY2lyY2xlLWNsaXBwZXIucmlnaHQgLmNpcmNsZSB7XFxuICAvKiBkdXJhdGlvbjogQVJDVElNRSAqL1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHJpZ2h0LXNwaW4gMTMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcXG4gIGFuaW1hdGlvbjogcmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xcbn1cXG5cXG5ALXdlYmtpdC1rZXlmcmFtZXMgbGVmdC1zcGluIHtcXG4gIGZyb20ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTtcXG4gIH1cXG4gIHRvIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIGxlZnQtc3BpbiB7XFxuICBmcm9tIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTtcXG4gIH1cXG4gIHRvIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHJpZ2h0LXNwaW4ge1xcbiAgZnJvbSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDVkZWcpO1xcbiAgfVxcbiAgdG8ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHJpZ2h0LXNwaW4ge1xcbiAgZnJvbSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7XFxuICB9XFxuICB0byB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpO1xcbiAgfVxcbn1cXG4jc3Bpbm5lckNvbnRhaW5lci5jb29sZG93biB7XFxuICAvKiBkdXJhdGlvbjogU0hSSU5LX1RJTUUgKi9cXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIDE1NjhtcyBsaW5lYXIgaW5maW5pdGUsIGZhZGUtb3V0IDQwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICBhbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgMTU2OG1zIGxpbmVhciBpbmZpbml0ZSwgZmFkZS1vdXQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcXG59XFxuXFxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtb3V0IHtcXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIGZhZGUtb3V0IHtcXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbn1cXG4ucHJvZ3Jlc3Mge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiA0cHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FjZWNlNjtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIG1hcmdpbjogMC4zMzMzMzMzMzMzcmVtIDAgMC42NjY2NjY2NjY3cmVtIDA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucHJvZ3Jlc3MgLmRldGVybWluYXRlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxufVxcbi5wcm9ncmVzcyAuaW5kZXRlcm1pbmF0ZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xcbn1cXG4ucHJvZ3Jlc3MgLmluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICBib3R0b206IDA7XFxuICB3aWxsLWNoYW5nZTogbGVmdCwgcmlnaHQ7XFxuICBhbmltYXRpb246IGluZGV0ZXJtaW5hdGUgMi4xcyBjdWJpYy1iZXppZXIoMC42NSwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGU7XFxufVxcbi5wcm9ncmVzcyAuaW5kZXRlcm1pbmF0ZTphZnRlciB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lsbC1jaGFuZ2U6IGxlZnQsIHJpZ2h0O1xcbiAgYW5pbWF0aW9uOiBpbmRldGVybWluYXRlLXNob3J0IDIuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBpbmZpbml0ZTtcXG4gIGFuaW1hdGlvbi1kZWxheTogMS4xNXM7XFxufVxcblxcbkBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZSB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0zNSU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZS1zaG9ydCB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0yMDAlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG59XFxuLmZsYXNoLW1lc3NhZ2Uge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcGFkZGluZzogMnB4IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICB6LWluZGV4OiA5OTk5OTtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG4uZmxhc2gtbWVzc2FnZS5pbmZvIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiZWRkYmU7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNzI4ZjcyO1xcbn1cXG4uZmxhc2gtbWVzc2FnZS53YXJuIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWU2ZDA7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZWE3ZDE3O1xcbn1cXG4uZmxhc2gtbWVzc2FnZS5lcnJvciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTViMmJjO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UzMzI1NztcXG59XFxuXFxuQGtleWZyYW1lcyBtZXNzYWdlSW4ge1xcbiAgZnJvbSB7XFxuICAgIHJpZ2h0OiA4MCU7XFxuICB9XFxuICB0byB7XFxuICAgIHJpZ2h0OiAwO1xcbiAgfVxcbn1cXG4ucHVsc2Uge1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5wdWxzZTo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcywgdHJhbnNmb3JtIDAuM3M7XFxuICBhbmltYXRpb246IHB1bHNlLWFuaW1hdGlvbiAxcyBjdWJpYy1iZXppZXIoMC4yNCwgMCwgMC4zOCwgMSkgaW5maW5pdGU7XFxufVxcblxcbkBrZXlmcmFtZXMgcHVsc2UtYW5pbWF0aW9uIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XFxuICB9XFxufVxcbi5kcm9wZG93bi1jb250ZW50IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBtYXJnaW46IDA7XFxuICBkaXNwbGF5OiBmbG93O1xcbiAgbWluLXdpZHRoOiAxMDBweDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgdG9wOiAwO1xcbiAgei1pbmRleDogOTk5OTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcXG59XFxuLmRyb3Bkb3duLWNvbnRlbnQ6Zm9jdXMge1xcbiAgb3V0bGluZTogMDtcXG59XFxuLmRyb3Bkb3duLWNvbnRlbnQgbGkge1xcbiAgY2xlYXI6IGJvdGg7XFxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XFxuICBsaW5lLWhlaWdodDogMS41cmVtO1xcbiAgd2lkdGg6IDEwMCU7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cXG4uZHJvcGRvd24tY29udGVudCBsaTpob3ZlciwgLmRyb3Bkb3duLWNvbnRlbnQgbGkuYWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XFxufVxcbi5kcm9wZG93bi1jb250ZW50IGxpOmZvY3VzIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxufVxcbi5kcm9wZG93bi1jb250ZW50IGxpLmRpdmlkZXIge1xcbiAgbWluLWhlaWdodDogMDtcXG4gIGhlaWdodDogMXB4O1xcbn1cXG4uZHJvcGRvd24tY29udGVudCBsaSA+IGEsIC5kcm9wZG93bi1jb250ZW50IGxpID4gc3BhbiB7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBjb2xvcjogIzI2YTY5YTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbGluZS1oZWlnaHQ6IDIycHg7XFxuICBwYWRkaW5nOiAxNHB4IDE2cHg7XFxufVxcbi5kcm9wZG93bi1jb250ZW50IGxpID4gc3BhbiA+IGxhYmVsIHtcXG4gIHRvcDogMXB4O1xcbiAgbGVmdDogMDtcXG4gIGhlaWdodDogMThweDtcXG59XFxuLmRyb3Bkb3duLWNvbnRlbnQgbGkgPiBhID4gaSB7XFxuICBoZWlnaHQ6IGluaGVyaXQ7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gIGZsb2F0OiBsZWZ0O1xcbiAgbWFyZ2luOiAwIDI0cHggMCAwO1xcbiAgd2lkdGg6IDI0cHg7XFxufVxcblxcbmJvZHkua2V5Ym9hcmQtZm9jdXNlZCAuZHJvcGRvd24tY29udGVudCBsaTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE3LjYsIDIxNy42LCAyMTcuNik7XFxufVxcblxcbi5pbnB1dC1maWVsZC5jb2wgLmRyb3Bkb3duLWNvbnRlbnQgW3R5cGU9Y2hlY2tib3hdICsgbGFiZWwge1xcbiAgdG9wOiAxcHg7XFxuICBsZWZ0OiAwO1xcbiAgaGVpZ2h0OiAxOHB4O1xcbiAgdHJhbnNmb3JtOiBub25lO1xcbn1cXG5cXG4uZHJvcGRvd24tdHJpZ2dlciB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbm5hdiB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MGNhZjk7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogNTZweDtcXG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xcbn1cXG5uYXYubmF2LWV4dGVuZGVkIHtcXG4gIGhlaWdodDogYXV0bztcXG59XFxubmF2Lm5hdi1leHRlbmRlZCAubmF2LXdyYXBwZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG5uYXYubmF2LWV4dGVuZGVkIC5uYXYtY29udGVudCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbn1cXG5uYXYgYSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxubmF2IGksXFxubmF2IFtjbGFzc149bWRpLV0sIG5hdiBbY2xhc3MqPW1kaS1dLFxcbm5hdiBpLnMtaWNvbnMge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBoZWlnaHQ6IDU2cHg7XFxuICBsaW5lLWhlaWdodDogNTZweDtcXG59XFxubmF2IC5uYXYtd3JhcHBlciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDk5M3B4KSB7XFxuICBuYXYgYS5zaWRlbmF2LXRyaWdnZXIge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG5uYXYgLnNpZGVuYXYtdHJpZ2dlciB7XFxuICBmbG9hdDogbGVmdDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHotaW5kZXg6IDE7XFxuICBoZWlnaHQ6IDU2cHg7XFxuICBtYXJnaW46IDAgMThweDtcXG59XFxubmF2IC5zaWRlbmF2LXRyaWdnZXIgaSB7XFxuICBoZWlnaHQ6IDU2cHg7XFxuICBsaW5lLWhlaWdodDogNTZweDtcXG59XFxubmF2IC5icmFuZC1sb2dvIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgZm9udC1zaXplOiAyLjFyZW07XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5uYXYgLmJyYW5kLWxvZ28gaW1nLmNpcmNsZSB7XFxuICBoZWlnaHQ6IDMycHg7XFxuICB3aWR0aDogMzJweDtcXG59XFxubmF2IC5icmFuZC1sb2dvLmNlbnRlciB7XFxuICBsZWZ0OiA1MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XFxufVxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IDk5MnB4KSB7XFxuICBuYXYgLmJyYW5kLWxvZ28ge1xcbiAgICBsZWZ0OiA1MCU7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG4gIH1cXG4gIG5hdiAuYnJhbmQtbG9nby5sZWZ0LCBuYXYgLmJyYW5kLWxvZ28ucmlnaHQge1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0cmFuc2Zvcm06IG5vbmU7XFxuICB9XFxuICBuYXYgLmJyYW5kLWxvZ28ubGVmdCB7XFxuICAgIGxlZnQ6IDAuNXJlbTtcXG4gIH1cXG4gIG5hdiAuYnJhbmQtbG9nby5yaWdodCB7XFxuICAgIHJpZ2h0OiAwLjVyZW07XFxuICAgIGxlZnQ6IGF1dG87XFxuICB9XFxufVxcbm5hdiAuYnJhbmQtbG9nby5yaWdodCB7XFxuICByaWdodDogMC41cmVtO1xcbiAgcGFkZGluZzogMDtcXG59XFxubmF2IC5icmFuZC1sb2dvIGksXFxubmF2IC5icmFuZC1sb2dvIFtjbGFzc149bWRpLV0sIG5hdiAuYnJhbmQtbG9nbyBbY2xhc3MqPW1kaS1dLFxcbm5hdiAuYnJhbmQtbG9nbyBpLnMtaWNvbnMge1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XFxufVxcbm5hdiAubmF2LXRpdGxlIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZvbnQtc2l6ZTogMzJweDtcXG4gIHBhZGRpbmc6IDI4cHggMDtcXG59XFxubmF2IHVsIHtcXG4gIG1hcmdpbjogMDtcXG59XFxubmF2IHVsIGxpIHtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcXG4gIGZsb2F0OiBsZWZ0O1xcbiAgcGFkZGluZzogMDtcXG59XFxubmF2IHVsIGxpLmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XFxufVxcbm5hdiB1bCBhIHtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwYWRkaW5nOiAwIDE1cHg7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbm5hdiB1bCBhLmJ0biwgbmF2IHVsIGEuYnRuLXNtYWxsLCBuYXYgdWwgYS5idG4tbGFyZ2UsIG5hdiB1bCBhLmJ0bi1mbGF0LCBuYXYgdWwgYS5idG4tZmxvYXRpbmcge1xcbiAgbWFyZ2luLXRvcDogLTJweDtcXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xcbn1cXG5uYXYgdWwgYS5idG4gPiAubWF0ZXJpYWwtaWNvbnMsIG5hdiB1bCBhLmJ0bi1zbWFsbCA+IC5tYXRlcmlhbC1pY29ucywgbmF2IHVsIGEuYnRuLWxhcmdlID4gLm1hdGVyaWFsLWljb25zLCBuYXYgdWwgYS5idG4tZmxhdCA+IC5tYXRlcmlhbC1pY29ucywgbmF2IHVsIGEuYnRuLWZsb2F0aW5nID4gLm1hdGVyaWFsLWljb25zIHtcXG4gIGhlaWdodDogaW5oZXJpdDtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbn1cXG5uYXYgdWwgYTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XFxufVxcbm5hdiB1bC5sZWZ0IHtcXG4gIGZsb2F0OiBsZWZ0O1xcbn1cXG5uYXYgZm9ybSB7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbm5hdiAuaW5wdXQtZmllbGQge1xcbiAgbWFyZ2luOiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG5uYXYgLmlucHV0LWZpZWxkIGlucHV0IHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xcbn1cXG5uYXYgLmlucHV0LWZpZWxkIGlucHV0OmZvY3VzLCBuYXYgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9dGV4dF06dmFsaWQsIG5hdiAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1wYXNzd29yZF06dmFsaWQsIG5hdiAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1lbWFpbF06dmFsaWQsIG5hdiAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT11cmxdOnZhbGlkLCBuYXYgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9ZGF0ZV06dmFsaWQge1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxubmF2IC5pbnB1dC1maWVsZCBsYWJlbCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG5uYXYgLmlucHV0LWZpZWxkIGxhYmVsIGkge1xcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XFxufVxcbm5hdiAuaW5wdXQtZmllbGQgbGFiZWwuYWN0aXZlIGkge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcblxcbi5uYXZiYXItZml4ZWQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiA1NnB4O1xcbiAgei1pbmRleDogOTk3O1xcbn1cXG4ubmF2YmFyLWZpeGVkIG5hdiB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDYwMXB4KSB7XFxuICBuYXYubmF2LWV4dGVuZGVkIC5uYXYtd3JhcHBlciB7XFxuICAgIG1pbi1oZWlnaHQ6IDY0cHg7XFxuICB9XFxuICBuYXYsIG5hdiAubmF2LXdyYXBwZXIgaSwgbmF2IGEuc2lkZW5hdi10cmlnZ2VyLCBuYXYgYS5zaWRlbmF2LXRyaWdnZXIgaSB7XFxuICAgIGhlaWdodDogNjRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDY0cHg7XFxuICB9XFxuICAubmF2YmFyLWZpeGVkIHtcXG4gICAgaGVpZ2h0OiA2NHB4O1xcbiAgfVxcbn1cIixcIkBpbXBvcnQgXFxcIi4vY29sb3JzVmFyc1xcXCI7XFxuXFxuQGVhY2ggJGNvbG9yX25hbWUsICRjb2xvciBpbiAkY29sb3JzIHtcXG4gIEBlYWNoICRjb2xvcl90eXBlLCAkY29sb3JfdmFsdWUgaW4gJGNvbG9yIHtcXG4gICAgQGlmICRjb2xvcl90eXBlID09IFxcXCJiYXNlXFxcIiB7XFxuICAgICAgLiN7JGNvbG9yX25hbWV9IHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl92YWx1ZSAhaW1wb3J0YW50O1xcbiAgICAgIH1cXG4gICAgICAuI3skY29sb3JfbmFtZX0tdGV4dCB7XFxuICAgICAgICBjb2xvcjogJGNvbG9yX3ZhbHVlICFpbXBvcnRhbnQ7XFxuICAgICAgfVxcbiAgICAgIC4jeyRjb2xvcl9uYW1lfS13YXZlcyAud2F2ZXMtcmlwcGxlIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl92YWx1ZSAhaW1wb3J0YW50O1xcbiAgICAgIH1cXG4gICAgfSBAZWxzZSB7XFxuICAgICAgLiN7JGNvbG9yX25hbWV9LiN7JGNvbG9yX3R5cGV9IHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl92YWx1ZSAhaW1wb3J0YW50O1xcbiAgICAgIH1cXG4gICAgICAuI3skY29sb3JfbmFtZX0tdGV4dC50ZXh0LSN7JGNvbG9yX3R5cGV9IHtcXG4gICAgICAgIGNvbG9yOiAkY29sb3JfdmFsdWUgIWltcG9ydGFudDtcXG4gICAgICB9XFxuICAgICAgLiN7JGNvbG9yX25hbWV9LXdhdmVzLndhdmVzLSN7JGNvbG9yX3R5cGV9IC53YXZlcy1yaXBwbGUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ZhbHVlICFpbXBvcnRhbnQ7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxufVxcblxcbi8vIFNoYWRlVmFycyBjbGFzc2VzXFxuJHNoYWRlczogKFxcbiAgXFxcImJsYWNrXFxcIjogIzAwMDAwMCxcXG4gIFxcXCJ3aGl0ZVxcXCI6ICNmZmZmZmYsXFxuICBcXFwidHJhbnNwYXJlbnRcXFwiOiB0cmFuc3BhcmVudFxcbik7XFxuLy8gU2hhZGUgY2xhc3Nlc1xcbkBlYWNoICRjb2xvciwgJGNvbG9yX3ZhbHVlIGluICRzaGFkZXMge1xcbiAgLiN7JGNvbG9yfSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl92YWx1ZSAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLiN7JGNvbG9yfS10ZXh0IHtcXG4gICAgY29sb3I6ICRjb2xvcl92YWx1ZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5cXG5cXG5cXG4vLyB1c2FnZTogY29sb3IoXFxcIm5hbWVfb2ZfY29sb3JcXFwiLCBcXFwidHlwZV9vZl9jb2xvclxcXCIpXFxuLy8gdG8gYXZvaWQgdG8gcmVwZWF0aW5nIG1hcC1nZXQoJGNvbG9ycywgLi4uKVxcblxcbkBmdW5jdGlvbiBjb2xvcigkY29sb3IsICR0eXBlKSB7XFxuICBAaWYgbWFwLWhhcy1rZXkoJGNvbG9ycywgJGNvbG9yKSB7XFxuICAgICRjdXJyX2NvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsICRjb2xvcik7XFxuICAgIEBpZiBtYXAtaGFzLWtleSgkY3Vycl9jb2xvciwgJHR5cGUpIHtcXG4gICAgICBAcmV0dXJuIG1hcC1nZXQoJGN1cnJfY29sb3IsICR0eXBlKTtcXG4gICAgfVxcbiAgfVxcbiAgQHdhcm4gXFxcIlVua25vd24gYCN7JGNvbG9yfWAgLSBgI3skdHlwZX1gIGluICRjb2xvcnMuXFxcIjtcXG4gIEByZXR1cm4gbnVsbDtcXG59XFxuXCIsXCIvKipcXG4gKiBwcmlzbS5qcyBUd2lsaWdodCB0aGVtZVxcbiAqIEJhc2VkIChtb3JlIG9yIGxlc3MpIG9uIHRoZSBUd2lsaWdodCB0aGVtZSBvcmlnaW5hbGx5IG9mIFRleHRtYXRlIGZhbWUuXFxuICogQGF1dGhvciBSZW15IEJhY2hcXG4gKi9cXG4gY29kZVtjbGFzcyo9XFxcImxhbmd1YWdlLVxcXCJdLFxcbiBwcmVbY2xhc3MqPVxcXCJsYW5ndWFnZS1cXFwiXSB7XFxuXFx0IGNvbG9yOiB3aGl0ZTtcXG5cXHQgYmFja2dyb3VuZDogbm9uZTtcXG5cXHQgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBNb25hY28sICdBbmRhbGUgTW9ubycsICdVYnVudHUgTW9ubycsIG1vbm9zcGFjZTtcXG5cXHQgdGV4dC1hbGlnbjogbGVmdDtcXG5cXHQgdGV4dC1zaGFkb3c6IDAgLS4xZW0gLjJlbSBibGFjaztcXG5cXHQgd2hpdGUtc3BhY2U6IHByZTtcXG5cXHQgd29yZC1zcGFjaW5nOiBub3JtYWw7XFxuXFx0IHdvcmQtYnJlYWs6IG5vcm1hbDtcXG5cXHQgd29yZC13cmFwOiBub3JtYWw7XFxuXFx0IGxpbmUtaGVpZ2h0OiAxLjU7XFxuIFxcblxcdCAtbW96LXRhYi1zaXplOiA0O1xcblxcdCAtby10YWItc2l6ZTogNDtcXG5cXHQgdGFiLXNpemU6IDQ7XFxuIFxcblxcdCAtd2Via2l0LWh5cGhlbnM6IG5vbmU7XFxuXFx0IC1tb3otaHlwaGVuczogbm9uZTtcXG5cXHQgLW1zLWh5cGhlbnM6IG5vbmU7XFxuXFx0IGh5cGhlbnM6IG5vbmU7XFxuIH1cXG4gXFxuIHByZVtjbGFzcyo9XFxcImxhbmd1YWdlLVxcXCJdLFxcbiA6bm90KHByZSkgPiBjb2RlW2NsYXNzKj1cXFwibGFuZ3VhZ2UtXFxcIl0ge1xcblxcdCBiYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDglKTsgLyogIzE0MTQxNCAqL1xcbiB9XFxuIFxcbiAvKiBDb2RlIGJsb2NrcyAqL1xcbiBwcmVbY2xhc3MqPVxcXCJsYW5ndWFnZS1cXFwiXSB7XFxuXFx0IGJvcmRlci1yYWRpdXM6IC41ZW07XFxuXFx0IGJvcmRlcjogLjNlbSBzb2xpZCBoc2woMCwgMCUsIDMzJSk7IC8qICMyODJBMkIgKi9cXG5cXHQgYm94LXNoYWRvdzogMXB4IDFweCAuNWVtIGJsYWNrIGluc2V0O1xcblxcdCBtYXJnaW46IC41ZW0gMDtcXG5cXHQgb3ZlcmZsb3c6IGF1dG87XFxuXFx0IHBhZGRpbmc6IDFlbTtcXG4gfVxcbiBcXG4gcHJlW2NsYXNzKj1cXFwibGFuZ3VhZ2UtXFxcIl06Oi1tb3otc2VsZWN0aW9uIHtcXG5cXHQgLyogRmlyZWZveCAqL1xcblxcdCBiYWNrZ3JvdW5kOiBoc2woMjAwLCA0JSwgMTYlKTsgLyogIzI4MkEyQiAqL1xcbiB9XFxuIFxcbiBwcmVbY2xhc3MqPVxcXCJsYW5ndWFnZS1cXFwiXTo6c2VsZWN0aW9uIHtcXG5cXHQgLyogU2FmYXJpICovXFxuXFx0IGJhY2tncm91bmQ6IGhzbCgyMDAsIDQlLCAxNiUpOyAvKiAjMjgyQTJCICovXFxuIH1cXG4gXFxuIC8qIFRleHQgU2VsZWN0aW9uIGNvbG91ciAqL1xcbiBwcmVbY2xhc3MqPVxcXCJsYW5ndWFnZS1cXFwiXTo6LW1vei1zZWxlY3Rpb24sIHByZVtjbGFzcyo9XFxcImxhbmd1YWdlLVxcXCJdIDo6LW1vei1zZWxlY3Rpb24sXFxuIGNvZGVbY2xhc3MqPVxcXCJsYW5ndWFnZS1cXFwiXTo6LW1vei1zZWxlY3Rpb24sIGNvZGVbY2xhc3MqPVxcXCJsYW5ndWFnZS1cXFwiXSA6Oi1tb3otc2VsZWN0aW9uIHtcXG5cXHQgdGV4dC1zaGFkb3c6IG5vbmU7XFxuXFx0IGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDkzJSwgMC4xNSk7IC8qICNFREVERUQgKi9cXG4gfVxcbiBcXG4gcHJlW2NsYXNzKj1cXFwibGFuZ3VhZ2UtXFxcIl06OnNlbGVjdGlvbiwgcHJlW2NsYXNzKj1cXFwibGFuZ3VhZ2UtXFxcIl0gOjpzZWxlY3Rpb24sXFxuIGNvZGVbY2xhc3MqPVxcXCJsYW5ndWFnZS1cXFwiXTo6c2VsZWN0aW9uLCBjb2RlW2NsYXNzKj1cXFwibGFuZ3VhZ2UtXFxcIl0gOjpzZWxlY3Rpb24ge1xcblxcdCB0ZXh0LXNoYWRvdzogbm9uZTtcXG5cXHQgYmFja2dyb3VuZDogaHNsYSgwLCAwJSwgOTMlLCAwLjE1KTsgLyogI0VERURFRCAqL1xcbiB9XFxuIFxcbiAvKiBJbmxpbmUgY29kZSAqL1xcbiA6bm90KHByZSkgPiBjb2RlW2NsYXNzKj1cXFwibGFuZ3VhZ2UtXFxcIl0ge1xcblxcdCBib3JkZXItcmFkaXVzOiAuM2VtO1xcblxcdCBib3JkZXI6IC4xM2VtIHNvbGlkIGhzbCgwLCAwJSwgMzMlKTsgLyogIzU0NTQ1NCAqL1xcblxcdCBib3gtc2hhZG93OiAxcHggMXB4IC4zZW0gLS4xZW0gYmxhY2sgaW5zZXQ7XFxuXFx0IHBhZGRpbmc6IC4xNWVtIC4yZW0gLjA1ZW07XFxuXFx0IHdoaXRlLXNwYWNlOiBub3JtYWw7XFxuIH1cXG4gXFxuIC50b2tlbi5jb21tZW50LFxcbiAudG9rZW4ucHJvbG9nLFxcbiAudG9rZW4uZG9jdHlwZSxcXG4gLnRva2VuLmNkYXRhIHtcXG5cXHQgY29sb3I6IGhzbCgwLCAwJSwgNDclKTsgLyogIzc3Nzc3NyAqL1xcbiB9XFxuIFxcbiAudG9rZW4ucHVuY3R1YXRpb24ge1xcblxcdCBvcGFjaXR5OiAuNztcXG4gfVxcbiBcXG4gLm5hbWVzcGFjZSB7XFxuXFx0IG9wYWNpdHk6IC43O1xcbiB9XFxuIFxcbiAudG9rZW4udGFnLFxcbiAudG9rZW4uYm9vbGVhbixcXG4gLnRva2VuLm51bWJlcixcXG4gLnRva2VuLmRlbGV0ZWQge1xcblxcdCBjb2xvcjogaHNsKDE0LCA1OCUsIDU1JSk7IC8qICNDRjZBNEMgKi9cXG4gfVxcbiBcXG4gLnRva2VuLmtleXdvcmQsXFxuIC50b2tlbi5wcm9wZXJ0eSxcXG4gLnRva2VuLnNlbGVjdG9yLFxcbiAudG9rZW4uY29uc3RhbnQsXFxuIC50b2tlbi5zeW1ib2wsXFxuIC50b2tlbi5idWlsdGluIHtcXG5cXHQgY29sb3I6IGhzbCg1MywgODklLCA3OSUpOyAvKiAjRjlFRTk4ICovXFxuIH1cXG4gXFxuIC50b2tlbi5hdHRyLW5hbWUsXFxuIC50b2tlbi5hdHRyLXZhbHVlLFxcbiAudG9rZW4uc3RyaW5nLFxcbiAudG9rZW4uY2hhcixcXG4gLnRva2VuLm9wZXJhdG9yLFxcbiAudG9rZW4uZW50aXR5LFxcbiAudG9rZW4udXJsLFxcbiAubGFuZ3VhZ2UtY3NzIC50b2tlbi5zdHJpbmcsXFxuIC5zdHlsZSAudG9rZW4uc3RyaW5nLFxcbiAudG9rZW4udmFyaWFibGUsXFxuIC50b2tlbi5pbnNlcnRlZCB7XFxuXFx0IGNvbG9yOiBoc2woNzYsIDIxJSwgNTIlKTsgLyogIzhGOUQ2QSAqL1xcbiB9XFxuIFxcbiAudG9rZW4uYXRydWxlIHtcXG5cXHQgY29sb3I6IGhzbCgyMTgsIDIyJSwgNTUlKTsgLyogIzc1ODdBNiAqL1xcbiB9XFxuIFxcbiAudG9rZW4ucmVnZXgsXFxuIC50b2tlbi5pbXBvcnRhbnQge1xcblxcdCBjb2xvcjogaHNsKDQyLCA3NSUsIDY1JSk7IC8qICNFOUMwNjIgKi9cXG4gfVxcbiBcXG4gLnRva2VuLmltcG9ydGFudCxcXG4gLnRva2VuLmJvbGQge1xcblxcdCBmb250LXdlaWdodDogYm9sZDtcXG4gfVxcbiAudG9rZW4uaXRhbGljIHtcXG5cXHQgZm9udC1zdHlsZTogaXRhbGljO1xcbiB9XFxuIFxcbiAudG9rZW4uZW50aXR5IHtcXG5cXHQgY3Vyc29yOiBoZWxwO1xcbiB9XFxuIFxcbiBwcmVbZGF0YS1saW5lXSB7XFxuXFx0IHBhZGRpbmc6IDFlbSAwIDFlbSAzZW07XFxuXFx0IHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gfVxcbiBcXG4gLyogTWFya3VwICovXFxuIC5sYW5ndWFnZS1tYXJrdXAgLnRva2VuLnRhZyxcXG4gLmxhbmd1YWdlLW1hcmt1cCAudG9rZW4uYXR0ci1uYW1lLFxcbiAubGFuZ3VhZ2UtbWFya3VwIC50b2tlbi5wdW5jdHVhdGlvbiB7XFxuXFx0IGNvbG9yOiBoc2woMzMsIDMzJSwgNTIlKTsgLyogI0FDODg1QiAqL1xcbiB9XFxuIFxcbiAvKiBNYWtlIHRoZSB0b2tlbnMgc2l0IGFib3ZlIHRoZSBsaW5lIGhpZ2hsaWdodCBzbyB0aGUgY29sb3VycyBkb24ndCBsb29rIGZhZGVkLiAqL1xcbiAudG9rZW4ge1xcblxcdCBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFx0IHotaW5kZXg6IDE7XFxuIH1cXG4gXFxuIC5saW5lLWhpZ2hsaWdodCB7XFxuXFx0IGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDMzJSwgMC4yNSk7IC8qICM1NDU0NTQgKi9cXG5cXHQgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBoc2xhKDAsIDAlLCAzMyUsIC4xKSA3MCUsIGhzbGEoMCwgMCUsIDMzJSwgMCkpOyAvKiAjNTQ1NDU0ICovXFxuXFx0IGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgaHNsKDAsIDAlLCAzMyUpOyAvKiAjNTQ1NDU0ICovXFxuXFx0IGJvcmRlci10b3A6IDFweCBkYXNoZWQgaHNsKDAsIDAlLCAzMyUpOyAvKiAjNTQ1NDU0ICovXFxuXFx0IGxlZnQ6IDA7XFxuXFx0IGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcblxcdCBtYXJnaW4tdG9wOiAwLjc1ZW07IC8qIFNhbWUgYXMgLnByaXNt4oCZcyBwYWRkaW5nLXRvcCAqL1xcblxcdCBwYWRkaW5nOiBpbmhlcml0IDA7XFxuXFx0IHBvaW50ZXItZXZlbnRzOiBub25lO1xcblxcdCBwb3NpdGlvbjogYWJzb2x1dGU7XFxuXFx0IHJpZ2h0OiAwO1xcblxcdCB3aGl0ZS1zcGFjZTogcHJlO1xcblxcdCB6LWluZGV4OiAwO1xcbiB9XFxuIFxcbiAubGluZS1oaWdobGlnaHQ6YmVmb3JlLFxcbiAubGluZS1oaWdobGlnaHRbZGF0YS1lbmRdOmFmdGVyIHtcXG5cXHQgYmFja2dyb3VuZC1jb2xvcjogaHNsKDIxNSwgMTUlLCA1OSUpOyAvKiAjODc5NEE2ICovXFxuXFx0IGJvcmRlci1yYWRpdXM6IDk5OXB4O1xcblxcdCBib3gtc2hhZG93OiAwIDFweCB3aGl0ZTtcXG5cXHQgY29sb3I6IGhzbCgyNCwgMjAlLCA5NSUpOyAvKiAjRjVGMkYwICovXFxuXFx0IGNvbnRlbnQ6IGF0dHIoZGF0YS1zdGFydCk7XFxuXFx0IGZvbnQ6IGJvbGQgNjUlLzEuNSBzYW5zLXNlcmlmO1xcblxcdCBsZWZ0OiAuNmVtO1xcblxcdCBtaW4td2lkdGg6IDFlbTtcXG5cXHQgcGFkZGluZzogMCAuNWVtO1xcblxcdCBwb3NpdGlvbjogYWJzb2x1dGU7XFxuXFx0IHRleHQtYWxpZ246IGNlbnRlcjtcXG5cXHQgdGV4dC1zaGFkb3c6IG5vbmU7XFxuXFx0IHRvcDogLjRlbTtcXG5cXHQgdmVydGljYWwtYWxpZ246IC4zZW07XFxuIH1cXG4gXFxuIC5saW5lLWhpZ2hsaWdodFtkYXRhLWVuZF06YWZ0ZXIge1xcblxcdCBib3R0b206IC40ZW07XFxuXFx0IGNvbnRlbnQ6IGF0dHIoZGF0YS1lbmQpO1xcblxcdCB0b3A6IGF1dG87XFxuIH1cXG4gXCIsXCJAaW1wb3J0ICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9VWJ1bnR1JztcXG5cXG5cXG5cXG4ud2luZG93IHtcXG4gIGZvbnQtZmFtaWx5OiAnVWJ1bnR1Jywgc2Fucy1zZXJpZjsgXFxuICBmb250LXNpemUgOiAxN3B4IDtcXG4gIHdpZHRoIDogNjAwcHggOyBcXG4gIG1hcmdpbiA6IDc1cHggYXV0byA7IFxcbiAgYmFja2dyb3VuZCA6ICMyYzNlNTA7IFxcbiAgaGVpZ2h0IDogMzUwcHggOyBcXG4gIGJvcmRlci1yYWRpdXMgOiA1cHggO1xcbiAgZGlzcGxheSA6IHJlbGF0aXZlIDsgXFxuICAgYm94LXNoYWRvdzogMTBweCAxMHB4IDEwcHggICM4ODg4ODg7XFxufVxcblxcbi5hZnRlcmNsb3NlIHtcXG4gICAgY29sb3IgOiAjMzQ0OTVlIDsgXFxuICAgIGRpc3BsYXk6IG5vbmUgIDsgXFxuICAgIHRleHQtYWxpZ246IGNlbnRlciAgOyBcXG59XFxuXFxuLm9wZW4ge1xcbiAgICBjb2xvciA6ICNmZmYgOyBcXG4gICAgcGFkZGluZyA6IDE1cHggOyBcXG4gICAgYmFja2dyb3VuZDogIzJlY2M3MSA7IFxcbiAgICBib3JkZXItcmFkaXVzOiA0cHggOyBcXG4gICAgYm9yZGVyOiBub25lIDsgXFxufVxcblxcbi5iYXNoIHtcXG4gIHdpZHRoIDogNjAwcHggOyBcXG4gIGJhY2tncm91bmQgOiAjMzQ0OTVlOyBcXG4gIGhlaWdodCA6IDMxMHB4IDsgXFxuICBib3JkZXItcmFkaXVzIDogNXB4IDtcXG4gIHRvcDogNDBweDtcXG4gIGRpc3BsYXkgOiBhYnNvbHV0ZTsgXFxuICBjb2xvciA6ICNmZmYgO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIC5jb21tYW5ke1xcbiAgICAmOjpiZWZvcmV7XFxuICAgICAgICBjb250ZW50OiBcXFwidXNlckBtYWNoaW5lICQgOiBcXFwiO1xcbiAgICAgICAgY29sb3I6ICMyZWNjNzE7XFxuICAgIH1cXG5cXG4gIH1cXG4gIC5yZXN1bHRhe1xcbiAgICAmOjpiZWZvcmV7XFxuICAgICAgICBjb250ZW50OiBcXFwiPj5cXFwiO1xcbiAgICAgICAgY29sb3I6ICMyZWNjNzE7XFxuICAgIH1cXG5cXG4gIH1cXG59XFxuXFxuLyogZWZmZWN0ZWQgYnkgY29udHJvbGxlcnMgKi9cXG5cXG4ud2luZG93bWF4IHtcXG4gIHdpZHRoIDogMTAwJSA7IFxcbiAgbWFyZ2luIDogYXV0byA7IFxcbiAgYmFja2dyb3VuZCA6ICMyYzNlNTA7IFxcbiAgaGVpZ2h0IDogMTAwMHB4OyBcXG4gIGJvcmRlci1yYWRpdXMgOiA1cHggO1xcbiAgZGlzcGxheSA6IHJlbGF0aXZlIDsgXFxufVxcblxcbi53aW5kb3dtaW4ge1xcbiAgd2lkdGggOiAzMDBweCA7IFxcbiAgaGVpZ2h0IDogNDVweCA7XFxuICBiYWNrZ3JvdW5kIDogIzJjM2U1MDsgXFxuICBib3JkZXItcmFkaXVzIDogNXB4IDsgXFxuICBib3R0b20gOiAwIDsgXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxufVxcblxcbi5iYXNobWF4IHtcXG4gIGRpc3BsYXkgOiBhYnNvbHV0ZSA7IFxcbiAgd2lkdGggOiAxMDAlIDsgXFxuICBiYWNrZ3JvdW5kIDogIzM0NDk1ZTsgXFxuICBoZWlnaHQgOiA5NjBweCA7IFxcbiAgYm9yZGVyLXJhZGl1cyA6IDVweCA7XFxuICBib3R0b206IDA7XFxuICBjb2xvciA6ICNmZmYgO1xcbn1cXG5cXG4vKiAhLS1lbmQtLSEgKi9cXG5cXG4uYnV0dG9ucyB7XFxuICB3aWR0aCA6IDE1cHggO1xcbiAgaGVpZ2h0IDogMTVweCA7IFxcbiAgYm9yZGVyLXJhZGl1cyA6IDUwJSA7XFxuICBmbG9hdCA6IHJpZ2h0IDsgXFxuICBtYXJnaW4gOiAxM3B4IDRweDtcXG4gIGJvcmRlcjogbm9uZSA7IFxcbn1cXG5cXG4uY2xvc2Uge1xcbiAgYmFja2dyb3VuZCA6ICNlNzRjM2MgO1xcbn1cXG5cXG4ubWF4aW1pemV7XFxuICBiYWNrZ3JvdW5kIDogI2YxYzQwZiA7XFxufVxcblxcbi5taW5pbWl6ZXtcXG4gIGJhY2tncm91bmQgOiAjMmVjYzcxIDtcXG59XFxuXFxuLnJlc3VsdCB7XFxuICBkaXNwbGF5IDogbm9uZSA7XFxufVxcblxcbi5jb250cm9scyB7XFxuICBoZWlnaHQgOiA0MHB4IDsgXFxuICB0b3AgOiAwIDsgXFxufVxcblxcbi50aXRsZSB7XFxuICAgIGNvbG9yIDogI2ZmZiA7IFxcbiAgICBmb250LXdlaWdodDogYm9sZCA7IFxcbiAgICBwYWRkaW5nIDogMTBweDtcXG59XFxuXCIsXCIubWF0ZXJpYWwtdG9vbHRpcCB7XFxuICBwYWRkaW5nOiAxMHB4IDhweDtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIHotaW5kZXg6IDIwMDA7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBjb2xvcjogI2ZmZjtcXG4gIG1pbi1oZWlnaHQ6IDM2cHg7XFxuICBsaW5lLWhlaWdodDogMTIwJTtcXG4gIG9wYWNpdHk6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgbGVmdDogMDtcXG4gIHRvcDogMDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzIzMjtcXG59XFxuXFxuLmJhY2tkcm9wIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIG9wYWNpdHk6IDA7XFxuICBoZWlnaHQ6IDdweDtcXG4gIHdpZHRoOiAxNHB4O1xcbiAgYm9yZGVyLXJhZGl1czogMCAwIDUwJSA1MCU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyO1xcbiAgei1pbmRleDogLTE7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcblwiLFwiLy8gWi1sZXZlbHNcXG4uc2hhZG93LTAge1xcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4vKiAyZHAgZWxldmF0aW9uIG1vZGlmaWVkKi9cXG4uc2hhZG93LTEge1xcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSxcXG4gICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xcbn1cXG4uc2hhZG93LTEtaGFsZiB7XFxuICBib3gtc2hhZG93OiAwIDNweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA3cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLFxcbiAgICAwIDNweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7XFxufVxcblxcbi8qIDZkcCBlbGV2YXRpb24gbW9kaWZpZWQqL1xcbi5zaGFkb3ctMiB7XFxuICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSxcXG4gICAgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xcbn1cXG5cXG4vKiAxMmRwIGVsZXZhdGlvbiBtb2RpZmllZCovXFxuLnNoYWRvdy0zIHtcXG4gIGJveC1zaGFkb3c6IDAgOHB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksXFxuICAgIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcXG59XFxuXFxuLyogMTZkcCBlbGV2YXRpb24gKi9cXG4uc2hhZG93LTQge1xcbiAgYm94LXNoYWRvdzogMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksXFxuICAgIDAgNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgOHB4IDEwcHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMik7XFxufVxcblxcbi8qIDI0ZHAgZWxldmF0aW9uICovXFxuLnNoYWRvdy01IHtcXG4gIGJveC1zaGFkb3c6IDAgMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLFxcbiAgICAwIDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcXG59XFxuXFxuLyogMjRkcCBlbGV2YXRpb24gKi9cXG4uaW52ZXJ0LXNoYWRvdy01IHtcXG4gICAgYm94LXNoYWRvdzogXFxuICAgIDM4cHggMCAwIDAgcmdiYSgwLCAwLCAwLCAwLjE0KSxcXG4gICAgNDZweCAwIDAgMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCBcXG4gICAgMTVweCAwIDAgMCByZ2JhKDAsIDAsIDAsIDAuMik7XFxuICB9XFxuXFxuLmhvdmVyYWJsZSB7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjVzO1xcblxcbiAgJjpob3ZlciB7XFxuICAgIGJveC1zaGFkb3c6IDAgOHB4IDE3cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksXFxuICAgICAgMCA2cHggMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xOSk7XFxuICB9XFxufVxcblwiLFwiXFxuLyohXFxuICogV2F2ZXMgdjAuNi4wXFxuICogaHR0cDovL2ZpYW4ubXkuaWQvV2F2ZXNcXG4gKlxcbiAqIENvcHlyaWdodCAyMDE0IEFsZmlhbmEgRS4gU2lidWVhIGFuZCBvdGhlciBjb250cmlidXRvcnNcXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmlhbnMvV2F2ZXMvYmxvYi9tYXN0ZXIvTElDRU5TRVxcbiAqL1xcblxcblxcbi53YXZlcy1lZmZlY3Qge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICB6LWluZGV4OiAxO1xcbiAgdHJhbnNpdGlvbjogLjNzIGVhc2Utb3V0O1xcblxcbiAgLndhdmVzLXJpcHBsZSB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcbiAgICBtYXJnaW4tdG9wOi0xMHB4O1xcbiAgICBtYXJnaW4tbGVmdDotMTBweDtcXG4gICAgb3BhY2l0eTogMDtcXG5cXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjIpO1xcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC43cyBlYXNlLW91dDtcXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG5cXG4gIC8vIFdhdmVzIENvbG9yc1xcbiAgJi53YXZlcy1saWdodCAud2F2ZXMtcmlwcGxlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTtcXG4gIH1cXG4gICYud2F2ZXMtcmVkIC53YXZlcy1yaXBwbGUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAuNzApO1xcbiAgfVxcbiAgJi53YXZlcy15ZWxsb3cgLndhdmVzLXJpcHBsZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMzUsIDU5LCAuNzApO1xcbiAgfVxcbiAgJi53YXZlcy1vcmFuZ2UgLndhdmVzLXJpcHBsZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxNTIsIDAsIC43MCk7XFxuICB9XFxuICAmLndhdmVzLXB1cnBsZSAud2F2ZXMtcmlwcGxlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTYsIDM5LCAxNzYsIDAuNzApO1xcbiAgfVxcbiAgJi53YXZlcy1ncmVlbiAud2F2ZXMtcmlwcGxlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC43MCk7XFxuICB9XFxuICAmLndhdmVzLXRlYWwgLndhdmVzLXJpcHBsZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTUwLCAxMzYsIDAuNzApO1xcbiAgfVxcblxcbiAgLy8gU3R5bGUgaW5wdXQgYnV0dG9uIGJ1Zy5cXG4gIGlucHV0W3R5cGU9XFxcImJ1dHRvblxcXCJdLCBpbnB1dFt0eXBlPVxcXCJyZXNldFxcXCJdLCBpbnB1dFt0eXBlPVxcXCJzdWJtaXRcXFwiXSB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XFxuICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgfVxcblxcbiAgaW1nIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAtMTtcXG4gIH1cXG59XFxuXFxuLndhdmVzLW5vdHJhbnNpdGlvbiB7XFxuICB0cmFuc2l0aW9uOiBub25lICN7XFxcIiFpbXBvcnRhbnRcXFwifTtcXG59XFxuXFxuLndhdmVzLWNpcmNsZSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XFxuICAtd2Via2l0LW1hc2staW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgd2hpdGUgMTAwJSwgYmxhY2sgMTAwJSk7XFxufVxcblxcbi53YXZlcy1pbnB1dC13cmFwcGVyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMmVtO1xcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcXG5cXG4gIC53YXZlcy1idXR0b24taW5wdXQge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgei1pbmRleDogMTtcXG4gIH1cXG59XFxuXFxuLndhdmVzLWNpcmNsZSB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB3aWR0aDogMi41ZW07XFxuICBoZWlnaHQ6IDIuNWVtO1xcbiAgbGluZS1oZWlnaHQ6IDIuNWVtO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiBub25lO1xcbn1cXG5cXG4ud2F2ZXMtYmxvY2sge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcblxcbi8qIEZpcmVmb3ggQnVnOiBsaW5rIG5vdCB0cmlnZ2VyZWQgKi9cXG4ud2F2ZXMtZWZmZWN0IC53YXZlcy1yaXBwbGUge1xcbiAgei1pbmRleDogLTE7XFxufVwiLFwiLm1vZGFsIHtcXG4gICY6Zm9jdXMge1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgfVxcblxcbiAgQGV4dGVuZCAuc2hhZG93LTU7XFxuXFxuICAvL2Rpc3BsYXk6IG5vbmU7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xcbiAgcGFkZGluZzogMDtcXG4gIG1heC1oZWlnaHQ6IDcwJTtcXG4gIHdpZHRoOiA1NSU7XFxuICBtYXJnaW46IGF1dG87XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcblxcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgd2lsbC1jaGFuZ2U6IHRvcCwgb3BhY2l0eTtcXG5cXG4gIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcXG4gICB3aWR0aDogODAlO1xcbiAgfVxcblxcbiAgaDEsaDIsaDMsaDQge1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbiAgfVxcblxcbiAgLm1vZGFsLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nOiAyNHB4O1xcbiAgfVxcbiAgLm1vZGFsLWNsb3NlIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgfVxcblxcbiAgLm1vZGFsLWZvb3RlciB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xcbiAgICBwYWRkaW5nOiA0cHggNnB4O1xcbiAgICBoZWlnaHQ6IDU2cHg7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcXG5cXG4gICAgLmJ0biwgLmJ0bi1mbGF0IHtcXG4gICAgICBtYXJnaW46IDZweCAwO1xcbiAgICB9XFxuICB9XFxuICAubW9kYWwtaGVhZGVyIHtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDAgO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xcbiAgICBwYWRkaW5nOiA2cHggNHB4O1xcbiAgICBoZWlnaHQ6IDU2cHg7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcXG5cXG4gICAgLmJ0biwgLmJ0bi1mbGF0IHtcXG4gICAgICBtYXJnaW46IDZweCAwO1xcbiAgICB9XFxuICB9XFxufVxcbi5tb2RhbC1vdmVybGF5IHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHotaW5kZXg6IDk5OTtcXG4gIHRvcDogLTI1JTtcXG4gIGxlZnQ6IDA7XFxuICBib3R0b206IDA7XFxuICByaWdodDogMDtcXG4gIGhlaWdodDogMTI1JTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuXFxuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcXG59XFxuXFxuLy8gTW9kYWwgd2l0aCBmaXhlZCBhY3Rpb24gZm9vdGVyXFxuLm1vZGFsLm1vZGFsLWZpeGVkLWZvb3RlciB7XFxuICBwYWRkaW5nOiAwO1xcbiAgaGVpZ2h0OiA3MCU7XFxuXFxuICAubW9kYWwtY29udGVudCB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA1NnB4KTtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIG92ZXJmbG93LXk6IGF1dG87XFxuICB9XFxuXFxuICAubW9kYWwtZm9vdGVyIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogMDtcXG4gIH1cXG59XFxuXFxuLy8gTW9kYWwgQm90dG9tIFNoZWV0IFN0eWxlXFxuLm1vZGFsLmJvdHRvbS1zaGVldCB7XFxuICB0b3A6IGF1dG87XFxuICBib3R0b206IC0xMDAlO1xcbiAgbWFyZ2luOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXgtaGVpZ2h0OiA0NSU7XFxuICBib3JkZXItcmFkaXVzOiAwO1xcbiAgd2lsbC1jaGFuZ2U6IGJvdHRvbSwgb3BhY2l0eTtcXG59XFxuXCIsXCJodG1sLFxcbmJvZHksXFxuI3Jvb3Qge1xcbiAgbWFyZ2luOiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG5cXG5cXG4qIHtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbn1cXG5cXG4ubm9zZWxlY3Qge1xcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOyAvKiBpT1MgU2FmYXJpICovXFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyAvKiBTYWZhcmkgKi9cXG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTsgLyogS29ucXVlcm9yIEhUTUwgKi9cXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7IC8qIE9sZCB2ZXJzaW9ucyBvZiBGaXJlZm94ICovXFxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7IC8qIEludGVybmV0IEV4cGxvcmVyL0VkZ2UgKi9cXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgLyogTm9uLXByZWZpeGVkIHZlcnNpb24sIGN1cnJlbnRseVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkIGJ5IENocm9tZSwgRWRnZSwgT3BlcmEgYW5kIEZpcmVmb3ggKi9cXG59XFxuXFxudWwge1xcbiAgJjpub3QoLmJyb3dzZXItZGVmYXVsdCkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcXG5cXG4gICAgJiA+IGxpIHtcXG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuYSB7XFxuXFx0Y29sb3I6ICRsaW5rLWNvbG9yO1xcblxcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG5cXG4gIC8vIEdldHMgcmlkIG9mIHRhcCBhY3RpdmUgc3RhdGVcXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcblxcbi53LTEwMCB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuXFxuLnJpZ2h0LWFsaWduIHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4uY2VudGVyLWFsaWdue1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cXG4udi1jZW50ZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcblxcblxcbi5tYjEge1xcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG59XFxuXFxuXFxuLy8gQ29sbGVjdGlvbnNcXG4uY29sbGVjdGlvbiB7XFxuICBtYXJnaW46ICRlbGVtZW50LXRvcC1tYXJnaW4gMCAkZWxlbWVudC1ib3R0b20tbWFyZ2luIDA7XFxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sbGVjdGlvbi1ib3JkZXItY29sb3I7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLmNvbGxlY3Rpb24taXRlbSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xsZWN0aW9uLWJnLWNvbG9yO1xcbiAgICBsaW5lLWhlaWdodDogJGNvbGxlY3Rpb24tbGluZS1oZWlnaHQ7XFxuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbGxlY3Rpb24tYm9yZGVyLWNvbG9yO1xcblxcbiAgICAmLmhvdmVyIHtcXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xsZWN0aW9uLWhvdmVyLWJnLWNvbG9yO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAvLyBBdmF0YXIgQ29sbGVjdGlvblxcbiAgICAmLmF2YXRhciB7XFxuICAgICAgbWluLWhlaWdodDogODRweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDcycHg7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcblxcbiAgICAgIC8vIERvbid0IHN0eWxlIGNpcmNsZXMgaW5zaWRlIHByZWxvYWRlciBjbGFzc2VzLlxcbiAgICAgICY6bm90KC5jaXJjbGUtY2xpcHBlcikgPiAuY2lyY2xlLFxcbiAgICAgIDpub3QoLmNpcmNsZS1jbGlwcGVyKSA+IC5jaXJjbGUge1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgd2lkdGg6IDQycHg7XFxuICAgICAgICBoZWlnaHQ6IDQycHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgbGVmdDogMTVweDtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgfVxcblxcbiAgICAgIGkuY2lyY2xlIHtcXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xcbiAgICAgICAgY29sb3I6ICNmZmY7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICAgIH1cXG5cXG5cXG4gICAgICAudGl0bGUge1xcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICAgIH1cXG5cXG4gICAgICBwIHtcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICB9XFxuXFxuICAgICAgLnNlY29uZGFyeS1jb250ZW50IHtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHRvcDogMTZweDtcXG4gICAgICAgIHJpZ2h0OiAxNnB4O1xcbiAgICAgIH1cXG5cXG4gICAgfVxcblxcblxcbiAgICAmOmxhc3QtY2hpbGQge1xcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICAgIH1cXG5cXG4gICAgJi5hY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xsZWN0aW9uLWFjdGl2ZS1iZy1jb2xvcjtcXG4gICAgICBjb2xvcjogJGNvbGxlY3Rpb24tYWN0aXZlLWNvbG9yO1xcblxcbiAgICAgIC5zZWNvbmRhcnktY29udGVudCB7XFxuICAgICAgICBjb2xvcjogI2ZmZjtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIGEuY29sbGVjdGlvbi1pdGVtIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHRyYW5zaXRpb246IC4yNXM7XFxuICAgIGNvbG9yOiAkY29sbGVjdGlvbi1saW5rLWNvbG9yO1xcblxcbiAgICAmOm5vdCguYWN0aXZlKSB7XFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sbGVjdGlvbi1ob3Zlci1iZy1jb2xvcjtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gICYud2l0aC1oZWFkZXIge1xcbiAgICAuY29sbGVjdGlvbi1oZWFkZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xsZWN0aW9uLWJnLWNvbG9yO1xcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sbGVjdGlvbi1ib3JkZXItY29sb3I7XFxuICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xcbiAgICB9XFxuXFxuICAgIC5jb2xsZWN0aW9uLWl0ZW0ge1xcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcXG4gICAgfVxcblxcbiAgICAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciB7XFxuICAgICAgcGFkZGluZy1sZWZ0OiA3MnB4O1xcbiAgICB9XFxuICB9XFxuXFxufVxcblxcbi8vIE1hZGUgbGVzcyBzcGVjaWZpYyB0byBhbGxvdyBlYXNpZXIgb3ZlcnJpZGluZ1xcbi5zZWNvbmRhcnktY29udGVudCB7XFxuICBmbG9hdDogcmlnaHQ7XFxuICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcXG59XFxuXFxuLmNvbGxhcHNpYmxlIC5jb2xsZWN0aW9uIHtcXG4gIG1hcmdpbjogMDtcXG4gIGJvcmRlcjogbm9uZTtcXG59XFxuXFxuXFxuLm1vZGFsLW92ZXJsYXkge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAxMDB2aDtcXG4gIHdpZHRoOiAxMDB2dztcXG4gIHBhZGRpbmc6IDIwcHggMCAyMHB4IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTtcXG4gIHotaW5kZXg6IDk5OTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIC8vYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIC5pbm5lcmZvcm17XFxuICAgIG1heC13aWR0aDogNjUwcHg7XFxuICAgIGZvcm17XFxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgfVxcbiAgfVxcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG4vKioqKioqKioqKioqKioqKioqKioqXFxuICBNZWRpYSBRdWVyeSBDbGFzc2VzXFxuKioqKioqKioqKioqKioqKioqKioqKi9cXG4uaGlkZS1vbi1zbWFsbC1vbmx5LCAuaGlkZS1vbi1zbWFsbC1hbmQtZG93biB7XFxuICBAbWVkaWEgI3skc21hbGwtYW5kLWRvd259IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG4uaGlkZS1vbi1tZWQtYW5kLWRvd24ge1xcbiAgQG1lZGlhICN7JG1lZGl1bS1hbmQtZG93bn0ge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbi5oaWRlLW9uLW1lZC1hbmQtdXAge1xcbiAgQG1lZGlhICN7JG1lZGl1bS1hbmQtdXB9IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG4uaGlkZS1vbi1tZWQtb25seSB7XFxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRzbWFsbC1zY3JlZW4pIGFuZCAobWF4LXdpZHRoOiAkbWVkaXVtLXNjcmVlbikge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbi5oaWRlLW9uLWxhcmdlLW9ubHkge1xcbiAgQG1lZGlhICN7JGxhcmdlLWFuZC11cH0ge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbi5oaWRlLW9uLWV4dHJhLWxhcmdlLW9ubHkge1xcbiAgQG1lZGlhICN7JGV4dHJhLWxhcmdlLWFuZC11cH0ge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbi5zaG93LW9uLWV4dHJhLWxhcmdlIHtcXG4gIEBtZWRpYSAjeyRleHRyYS1sYXJnZS1hbmQtdXB9IHtcXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuLnNob3ctb24tbGFyZ2Uge1xcbiAgQG1lZGlhICN7JGxhcmdlLWFuZC11cH0ge1xcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG4uc2hvdy1vbi1tZWRpdW0ge1xcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkc21hbGwtc2NyZWVuKSBhbmQgKG1heC13aWR0aDogJG1lZGl1bS1zY3JlZW4pIHtcXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuLnNob3ctb24tc21hbGwge1xcbiAgQG1lZGlhICN7JHNtYWxsLWFuZC1kb3dufSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbi5zaG93LW9uLW1lZGl1bS1hbmQtdXAge1xcbiAgQG1lZGlhICN7JG1lZGl1bS1hbmQtdXB9IHtcXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuLnNob3ctb24tbWVkaXVtLWFuZC1kb3duIHtcXG4gIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuXFxuXFxuLy8gQ2VudGVyIHRleHQgb24gbW9iaWxlXFxuLmNlbnRlci1vbi1zbWFsbC1vbmx5IHtcXG4gIEBtZWRpYSAjeyRzbWFsbC1hbmQtZG93bn0ge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB9XFxufVxcblxcblxcblxcblxcblxcblxcblxcblxcbi8qKioqKioqKioqKioqKioqKioqXFxuICBVdGlsaXR5IENsYXNzZXNcXG4qKioqKioqKioqKioqKioqKioqL1xcblxcbi5oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuXFxuLy8gVGV4dCBBbGlnblxcbi5sZWZ0LWFsaWduIHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcbi5yaWdodC1hbGlnbiB7XFxuICB0ZXh0LWFsaWduOiByaWdodFxcbn1cXG4uY2VudGVyLCAuY2VudGVyLWFsaWduIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuXFxuLmxlZnQge1xcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcXG59XFxuLnJpZ2h0IHtcXG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xcbn1cXG5cXG4vLyBObyBUZXh0IFNlbGVjdFxcbi5uby1zZWxlY3Qge1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcblxcbi5jaXJjbGUge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG5cXG4uY2VudGVyLWJsb2NrIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxufVxcblxcbi50cnVuY2F0ZSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxufVxcblxcbi5uby1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG59XFxuXCIsXCJAdXNlIFxcXCJzYXNzOm1hdGhcXFwiO1xcbiRwcmltYXJ5LWNvbG9yOiBjb2xvcihcXFwiYmx1ZVxcXCIsIFxcXCJsaWdodGVuLTNcXFwiKSAhZGVmYXVsdDtcXG4kcHJpbWFyeS1jb2xvci1saWdodDogbGlnaHRlbigkcHJpbWFyeS1jb2xvciwgMTUlKSAhZGVmYXVsdDtcXG4kcHJpbWFyeS1jb2xvci1kYXJrOiBkYXJrZW4oJHByaW1hcnktY29sb3IsIDE1JSkgIWRlZmF1bHQ7XFxuXFxuJHNlY29uZGFyeS1jb2xvcjogY29sb3IoXFxcInRlYWxcXFwiLCBcXFwibGlnaHRlbi0xXFxcIikgIWRlZmF1bHQ7XFxuJHN1Y2Nlc3MtY29sb3I6IGNvbG9yKFxcXCJncmVlblxcXCIsIFxcXCJiYXNlXFxcIikgIWRlZmF1bHQ7XFxuJGVycm9yLWNvbG9yOiBjb2xvcihcXFwicmVkXFxcIiwgXFxcImJhc2VcXFwiKSAhZGVmYXVsdDtcXG4kbGluay1jb2xvcjogY29sb3IoXFxcImxpZ2h0LWJsdWVcXFwiLCBcXFwiZGFya2VuLTFcXFwiKSAhZGVmYXVsdDtcXG5cXG5cXG5cXG4vLyAyLiBCYWRnZXNcXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcblxcbiRiYWRnZS1iZy1jb2xvcjogJHNlY29uZGFyeS1jb2xvciAhZGVmYXVsdDtcXG4kYmFkZ2UtaGVpZ2h0OiAyMnB4ICFkZWZhdWx0O1xcblxcblxcblxcbi8vIDcuIENoaXBzXFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXG5cXG4kY2hpcC1iZy1jb2xvcjogI2U0ZTRlNCAhZGVmYXVsdDtcXG4kY2hpcC1ib3JkZXItY29sb3I6ICM5ZTllOWUgIWRlZmF1bHQ7XFxuJGNoaXAtc2VsZWN0ZWQtY29sb3I6ICMyNmE2OWEgIWRlZmF1bHQ7XFxuJGNoaXAtbWFyZ2luOiA1cHggIWRlZmF1bHQ7XFxuXFxuXFxuLy8gMTYuIFNwaW5uZXJzIHwgTG9hZGVyc1xcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxuXFxuJHNwaW5uZXItZGVmYXVsdC1jb2xvcjogJHNlY29uZGFyeS1jb2xvciAhZGVmYXVsdDtcXG5cXG4vLyAyNC4gUHJvZ3Jlc3MgQmFyXFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXG5cXG4kcHJvZ3Jlc3MtYmFyLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yICFkZWZhdWx0O1xcblxcblxcblxcblxcblxcbi8vaW5wdXRzXFxuXFxuJGlucHV0LWhlaWdodDogNTZweDtcXG5cXG4vLyA2LiBDb2xsYXBzaWJsZVxcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxuXFxuJGNvbGxhcHNpYmxlLWhlaWdodDogM3JlbSAhZGVmYXVsdDtcXG4kY29sbGFwc2libGUtbGluZS1oZWlnaHQ6ICRjb2xsYXBzaWJsZS1oZWlnaHQgIWRlZmF1bHQ7XFxuJGNvbGxhcHNpYmxlLWhlYWRlci1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcXG4kY29sbGFwc2libGUtYm9yZGVyLWNvbG9yOiAjZGRkICFkZWZhdWx0O1xcblxcbi8vIDEwLiBGb3Jtc1xcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxuXFxuLy8gVGV4dCBJbnB1dHMgKyBUZXh0YXJlYVxcbiRpbnB1dC1oZWlnaHQ6IDNyZW0gIWRlZmF1bHQ7XFxuJGlucHV0LWJvcmRlci1jb2xvcjogY29sb3IoXFxcImdyZXlcXFwiLCBcXFwiYmFzZVxcXCIpICFkZWZhdWx0O1xcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xcbiRpbnB1dC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xcbiRpbnB1dC1lcnJvci1jb2xvcjogJGVycm9yLWNvbG9yICFkZWZhdWx0O1xcbiRpbnB1dC1zdWNjZXNzLWNvbG9yOiAkc3VjY2Vzcy1jb2xvciAhZGVmYXVsdDtcXG4kaW5wdXQtZm9jdXMtY29sb3I6ICRzZWNvbmRhcnktY29sb3IgIWRlZmF1bHQ7XFxuJGlucHV0LWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcXG4kaW5wdXQtbWFyZ2luLWJvdHRvbTogOHB4O1xcbiRpbnB1dC1tYXJnaW46IDAgMCAkaW5wdXQtbWFyZ2luLWJvdHRvbSAwICFkZWZhdWx0O1xcbiRpbnB1dC1wYWRkaW5nOiAwICFkZWZhdWx0O1xcbiRsYWJlbC1mb250LXNpemU6IC44cmVtICFkZWZhdWx0O1xcbiRpbnB1dC1kaXNhYmxlZC1jb2xvcjogcmdiYSgwLDAsMCwgLjQyKSAhZGVmYXVsdDtcXG4kaW5wdXQtZGlzYWJsZWQtc29saWQtY29sb3I6ICM5NDk0OTQgIWRlZmF1bHQ7XFxuJGlucHV0LWRpc2FibGVkLWJvcmRlcjogMXB4IGRvdHRlZCAkaW5wdXQtZGlzYWJsZWQtY29sb3IgIWRlZmF1bHQ7XFxuJGlucHV0LWludmFsaWQtYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWVycm9yLWNvbG9yICFkZWZhdWx0O1xcbiRpbnB1dC1pY29uLXNpemU6IDJyZW07XFxuJHBsYWNlaG9sZGVyLXRleHQtY29sb3I6IGxpZ2h0ZW4oJGlucHV0LWJvcmRlci1jb2xvciwgMjAlKSAhZGVmYXVsdDtcXG5cXG4vLyBSYWRpbyBCdXR0b25zXFxuJHJhZGlvLWZpbGwtY29sb3I6ICRzZWNvbmRhcnktY29sb3IgIWRlZmF1bHQ7XFxuJHJhZGlvLWVtcHR5LWNvbG9yOiAjNWE1YTVhICFkZWZhdWx0O1xcbiRyYWRpby1ib3JkZXI6IDJweCBzb2xpZCAkcmFkaW8tZmlsbC1jb2xvciAhZGVmYXVsdDtcXG5cXG4vLyBSYW5nZVxcbiRyYW5nZS1oZWlnaHQ6IDE0cHggIWRlZmF1bHQ7XFxuJHJhbmdlLXdpZHRoOiAxNHB4ICFkZWZhdWx0O1xcbiR0cmFjay1oZWlnaHQ6IDNweCAhZGVmYXVsdDtcXG5cXG4vLyBTZWxlY3RcXG4kc2VsZWN0LWJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjIgIWRlZmF1bHQ7XFxuJHNlbGVjdC1iYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTApICFkZWZhdWx0O1xcbiRzZWxlY3QtZm9jdXM6IDFweCBzb2xpZCBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDQ3JSkgIWRlZmF1bHQ7XFxuJHNlbGVjdC1vcHRpb24taG92ZXI6IHJnYmEoMCwwLDAsLjA4KSAhZGVmYXVsdDtcXG4kc2VsZWN0LW9wdGlvbi1mb2N1czogcmdiYSgwLDAsMCwuMDgpICFkZWZhdWx0O1xcbiRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkOiByZ2JhKDAsMCwwLC4wMykgIWRlZmF1bHQ7XFxuJHNlbGVjdC1wYWRkaW5nOiA1cHggIWRlZmF1bHQ7XFxuJHNlbGVjdC1yYWRpdXM6IDJweCAhZGVmYXVsdDtcXG4kc2VsZWN0LWRpc2FibGVkLWNvbG9yOiByZ2JhKDAsMCwwLC4zKSAhZGVmYXVsdDtcXG5cXG4vLyBTd2l0Y2hlc1xcbiRzd2l0Y2gtYmctY29sb3I6ICRzZWNvbmRhcnktY29sb3IgIWRlZmF1bHQ7XFxuJHN3aXRjaC1jaGVja2VkLWxldmVyLWJnOiBkZXNhdHVyYXRlKGxpZ2h0ZW4oJHN3aXRjaC1iZy1jb2xvciwgMjUlKSwgMjUlKSAhZGVmYXVsdDtcXG4kc3dpdGNoLXVuY2hlY2tlZC1iZzogI0YxRjFGMSAhZGVmYXVsdDtcXG4kc3dpdGNoLXVuY2hlY2tlZC1sZXZlci1iZzogcmdiYSgwLDAsMCwuMzgpICFkZWZhdWx0O1xcbiRzd2l0Y2gtcmFkaXVzOiAxNXB4ICFkZWZhdWx0O1xcblxcbi8vIDExLiBHbG9iYWxcXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcblxcbi8vIE1lZGlhIFF1ZXJ5IFJhbmdlc1xcbiRzbWFsbC1zY3JlZW4tdXA6IDYwMXB4ICFkZWZhdWx0O1xcbiRtZWRpdW0tc2NyZWVuLXVwOiA5OTNweCAhZGVmYXVsdDtcXG4kbGFyZ2Utc2NyZWVuLXVwOiAxMjAxcHggIWRlZmF1bHQ7XFxuJHNtYWxsLXNjcmVlbjogNjAwcHggIWRlZmF1bHQ7XFxuJG1lZGl1bS1zY3JlZW46IDk5MnB4ICFkZWZhdWx0O1xcbiRsYXJnZS1zY3JlZW46IDEyMDBweCAhZGVmYXVsdDtcXG5cXG4kbWVkaXVtLWFuZC11cDogXFxcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogI3skc21hbGwtc2NyZWVuLXVwfSlcXFwiICFkZWZhdWx0O1xcbiRsYXJnZS1hbmQtdXA6IFxcXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6ICN7JG1lZGl1bS1zY3JlZW4tdXB9KVxcXCIgIWRlZmF1bHQ7XFxuJGV4dHJhLWxhcmdlLWFuZC11cDogXFxcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogI3skbGFyZ2Utc2NyZWVuLXVwfSlcXFwiICFkZWZhdWx0O1xcbiRzbWFsbC1hbmQtZG93bjogXFxcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogI3skc21hbGwtc2NyZWVufSlcXFwiICFkZWZhdWx0O1xcbiRtZWRpdW0tYW5kLWRvd246IFxcXCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6ICN7JG1lZGl1bS1zY3JlZW59KVxcXCIgIWRlZmF1bHQ7XFxuJG1lZGl1bS1vbmx5OiBcXFwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiAjeyRzbWFsbC1zY3JlZW4tdXB9KSBhbmQgKG1heC13aWR0aCA6ICN7JG1lZGl1bS1zY3JlZW59KVxcXCIgIWRlZmF1bHQ7XFxuXFxuXFxuXFxuLy8gMTIuIEdyaWRcXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcblxcbiRudW0tY29sczogMTIgIWRlZmF1bHQ7XFxuJGd1dHRlci13aWR0aDogMXJlbSAhZGVmYXVsdDtcXG4kZWxlbWVudC10b3AtbWFyZ2luOiBtYXRoLmRpdigkZ3V0dGVyLXdpZHRoLCAzKSAhZGVmYXVsdDtcXG4kZWxlbWVudC1ib3R0b20tbWFyZ2luOiBtYXRoLmRpdigkZ3V0dGVyLXdpZHRoICogMiwgMykgIWRlZmF1bHQ7XFxuXFxuLy8gMTMuIE5hdmlnYXRpb24gQmFyXFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXG5cXG4kbmF2YmFyLWhlaWdodDogNjRweCAhZGVmYXVsdDtcXG4kbmF2YmFyLWxpbmUtaGVpZ2h0OiAkbmF2YmFyLWhlaWdodCAhZGVmYXVsdDtcXG4kbmF2YmFyLWhlaWdodC1tb2JpbGU6IDU2cHggIWRlZmF1bHQ7XFxuJG5hdmJhci1saW5lLWhlaWdodC1tb2JpbGU6ICRuYXZiYXItaGVpZ2h0LW1vYmlsZSAhZGVmYXVsdDtcXG4kbmF2YmFyLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcXG4kbmF2YmFyLWZvbnQtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XFxuJG5hdmJhci1icmFuZC1mb250LXNpemU6IDIuMXJlbSAhZGVmYXVsdDtcXG5cXG5cXG4vLyAxNC4gU2lkZSBOYXZpZ2F0aW9uXFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXG4kYnV0dG9uLXJhaXNlZC1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcXG4kYnV0dG9uLWZsYXQtY29sb3I6ICMzNDM0MzQgIWRlZmF1bHQ7XFxuJGJ1dHRvbi1yYWlzZWQtYmFja2dyb3VuZDogIzM0MzQzNCAhZGVmYXVsdDtcXG4kcHJpbWFyeS1jb2xvcjojMzQzNDM0ICFkZWZhdWx0O1xcblxcblxcbiBcXG4kc2lkZW5hdi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XFxuJHNpZGVuYXYtZm9udC1zaXplOiAxNHB4ICFkZWZhdWx0O1xcbiRzaWRlbmF2LWZvbnQtY29sb3I6IHJnYmEoMCwwLDAsLjg3KSAhZGVmYXVsdDtcXG4kc2lkZW5hdi1iZy1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcXG4kc2lkZW5hdi1wYWRkaW5nOiAxNXB4ICFkZWZhdWx0O1xcbiRzaWRlbmF2LWl0ZW0taGVpZ2h0OiA0NXB4ICFkZWZhdWx0O1xcbiRzaWRlbmF2LWxpbmUtaGVpZ2h0OiAkc2lkZW5hdi1pdGVtLWhlaWdodCAhZGVmYXVsdDtcXG5cXG5cXG5cXG5cXG5cXG5cXG4vLyAzLiBCdXR0b25zXFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXG5cXG4kcHJpbWFyeS1jb2xvcjogZ3JlZW4gIWRlZmF1bHQ7XFxuJHByaW1hcnktY29sb3ItbGlnaHQ6IGxpZ2h0ZW4oJHByaW1hcnktY29sb3IsIDE1JSkgIWRlZmF1bHQ7XFxuJHByaW1hcnktY29sb3ItZGFyazogZGFya2VuKCRwcmltYXJ5LWNvbG9yLCAxNSUpICFkZWZhdWx0O1xcbiRzZWNvbmRhcnktY29sb3I6IHJlZCAhZGVmYXVsdDtcXG5cXG5cXG4vLyBTaGFyZWQgc3R5bGVzXFxuJGJ1dHRvbi1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XFxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWZvY3VzOiBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDQlKSAhZGVmYXVsdDtcXG4kYnV0dG9uLWZvbnQtc2l6ZTogMTRweCAhZGVmYXVsdDtcXG4kYnV0dG9uLWljb24tZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XFxuJGJ1dHRvbi1oZWlnaHQ6IDM2cHggIWRlZmF1bHQ7XFxuJGJ1dHRvbi1wYWRkaW5nOiAwIDE2cHggIWRlZmF1bHQ7XFxuJGJ1dHRvbi1yYWRpdXM6IDJweCAhZGVmYXVsdDtcXG5cXG4vLyBEaXNhYmxlZCBzdHlsZXNcXG4kYnV0dG9uLWRpc2FibGVkLWJhY2tncm91bmQ6ICNERkRGREYgIWRlZmF1bHQ7XFxuJGJ1dHRvbi1kaXNhYmxlZC1jb2xvcjogIzlGOUY5RiAhZGVmYXVsdDtcXG5cXG4vLyBSYWlzZWQgYnV0dG9uc1xcbiRidXR0b24tcmFpc2VkLWJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3IgIWRlZmF1bHQ7XFxuJGJ1dHRvbi1yYWlzZWQtYmFja2dyb3VuZC1ob3ZlcjogbGlnaHRlbigkYnV0dG9uLXJhaXNlZC1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XFxuJGJ1dHRvbi1yYWlzZWQtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XFxuXFxuLy8gTGFyZ2UgYnV0dG9uc1xcbiRidXR0b24tbGFyZ2UtZm9udC1zaXplOiAxNXB4ICFkZWZhdWx0O1xcbiRidXR0b24tbGFyZ2UtaWNvbi1mb250LXNpemU6IDEuNnJlbSAhZGVmYXVsdDtcXG4kYnV0dG9uLWxhcmdlLWhlaWdodDogJGJ1dHRvbi1oZWlnaHQgKiAxLjUgIWRlZmF1bHQ7XFxuJGJ1dHRvbi1mbG9hdGluZy1sYXJnZS1zaXplOiA1NnB4ICFkZWZhdWx0O1xcblxcbi8vIFNtYWxsIGJ1dHRvbnNcXG4kYnV0dG9uLXNtYWxsLWZvbnQtc2l6ZTogMTNweCAhZGVmYXVsdDtcXG4kYnV0dG9uLXNtYWxsLWljb24tZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XFxuJGJ1dHRvbi1zbWFsbC1oZWlnaHQ6ICRidXR0b24taGVpZ2h0ICogLjkgIWRlZmF1bHQ7XFxuJGJ1dHRvbi1mbG9hdGluZy1zbWFsbC1zaXplOiAkYnV0dG9uLWhlaWdodCAqIC45ICFkZWZhdWx0O1xcblxcbi8vIEZsYXQgYnV0dG9uc1xcbiRidXR0b24tZmxhdC1jb2xvcjogIzM0MzQzNCAhZGVmYXVsdDtcXG4kYnV0dG9uLWZsYXQtZGlzYWJsZWQtY29sb3I6IGxpZ2h0ZW4oIzk5OSwgMTAlKSAhZGVmYXVsdDtcXG5cXG4vLyBGbG9hdGluZyBidXR0b25zXFxuJGJ1dHRvbi1mbG9hdGluZy1iYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yICFkZWZhdWx0O1xcbiRidXR0b24tZmxvYXRpbmctYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1mbG9hdGluZy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xcbiRidXR0b24tZmxvYXRpbmctY29sb3I6ICNmZmYgIWRlZmF1bHQ7XFxuJGJ1dHRvbi1mbG9hdGluZy1zaXplOiA0MHB4ICFkZWZhdWx0O1xcbiRidXR0b24tZmxvYXRpbmctcmFkaXVzOiA1MCUgIWRlZmF1bHQ7XFxuXFxuXFxuXFxuXFxuLy8gNC4gQ2FyZHNcXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcblxcbiRjYXJkLXBhZGRpbmc6IDI0cHggIWRlZmF1bHQ7XFxuJGNhcmQtYmctY29sb3I6ICNmZmYgIWRlZmF1bHQ7XFxuJGNhcmQtbGluay1jb2xvcjogY29sb3IoXFxcIm9yYW5nZVxcXCIsIFxcXCJhY2NlbnQtMlxcXCIpICFkZWZhdWx0O1xcbiRjYXJkLWxpbmstY29sb3ItbGlnaHQ6IGxpZ2h0ZW4oJGNhcmQtbGluay1jb2xvciwgMjAlKSAhZGVmYXVsdDtcXG5cXG5cXG5cXG5cXG5cXG5cXG4vLyAyMy4gQ29sbGVjdGlvbnNcXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcblxcbiRjb2xsZWN0aW9uLWJvcmRlci1jb2xvcjogI2UwZTBlMCAhZGVmYXVsdDtcXG4kY29sbGVjdGlvbi1iZy1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcXG4kY29sbGVjdGlvbi1hY3RpdmUtYmctY29sb3I6ICRzZWNvbmRhcnktY29sb3IgIWRlZmF1bHQ7XFxuJGNvbGxlY3Rpb24tYWN0aXZlLWNvbG9yOiBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDU1JSkgIWRlZmF1bHQ7XFxuJGNvbGxlY3Rpb24taG92ZXItYmctY29sb3I6ICNkZGQgIWRlZmF1bHQ7XFxuJGNvbGxlY3Rpb24tbGluay1jb2xvcjogJHNlY29uZGFyeS1jb2xvciAhZGVmYXVsdDtcXG4kY29sbGVjdGlvbi1saW5lLWhlaWdodDogMS41cmVtICFkZWZhdWx0O1xcblxcblxcblxcblxcblxcbi8vIDkuIERyb3Bkb3duXFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXG5cXG4kZHJvcGRvd24tYmctY29sb3I6ICNmZmYgIWRlZmF1bHQ7XFxuJGRyb3Bkb3duLWhvdmVyLWJnLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xcbiRkcm9wZG93bi1jb2xvcjogJHNlY29uZGFyeS1jb2xvciAhZGVmYXVsdDtcXG4kZHJvcGRvd24taXRlbS1oZWlnaHQ6IDUwcHggIWRlZmF1bHQ7XFxuXFxuXFxuJG9mZi1ibGFjazogcmdiYSgwLCAwLCAwLCAwLjg3KSAhZGVmYXVsdDtcIixcIi8vIEJhZGdlc1xcbnNwYW4uYmFkZ2Uge1xcbiAgbWluLXdpZHRoOiAzcmVtO1xcbiAgcGFkZGluZzogMCA2cHg7XFxuICBtYXJnaW4tbGVmdDogMTRweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAkYmFkZ2UtaGVpZ2h0O1xcbiAgaGVpZ2h0OiAkYmFkZ2UtaGVpZ2h0O1xcbiAgY29sb3I6IGNvbG9yKCdncmV5JywgJ2Rhcmtlbi0xJyk7XFxuICBmbG9hdDogcmlnaHQ7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcblxcbiAgJi5uZXcge1xcbiAgICBmb250LXdlaWdodDogMzAwO1xcbiAgICBmb250LXNpemU6IDAuOHJlbTtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS1iZy1jb2xvcjtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgfVxcblxcbiAgJi5uZXc6YWZ0ZXIge1xcbiAgICBjb250ZW50OiBcXFwiIG5ld1xcXCI7XFxuICB9XFxuXFxuICAmW2RhdGEtYmFkZ2UtY2FwdGlvbl06OmFmdGVyIHtcXG4gICAgY29udGVudDogXFxcIiBcXFwiIGF0dHIoZGF0YS1iYWRnZS1jYXB0aW9uKTtcXG4gIH1cXG59XFxuXFxuLy8gU3BlY2lhbCBjYXNlc1xcbm5hdiB1bCBhIHNwYW4uYmFkZ2Uge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgZmxvYXQ6IG5vbmU7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgbGluZS1oZWlnaHQ6ICRiYWRnZS1oZWlnaHQ7XFxuICBoZWlnaHQ6ICRiYWRnZS1oZWlnaHQ7XFxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xcbn1cXG5cXG4vLyBMaW5lIGhlaWdodCBjZW50ZXJpbmdcXG4uY29sbGVjdGlvbi1pdGVtIHNwYW4uYmFkZ2Uge1xcbiAgbWFyZ2luLXRvcDogY2FsYyhjYWxjKCRjb2xsZWN0aW9uLWxpbmUtaGVpZ2h0IC8gMikgLSBjYWxjKCRiYWRnZS1oZWlnaHQgLyAyKSk7XFxufVxcblxcbi5jb2xsYXBzaWJsZSBzcGFuLmJhZGdlIHtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbn1cXG5cXG4uc2lkZW5hdiBzcGFuLmJhZGdlIHtcXG4gIG1hcmdpbi10b3A6IGNhbGMoY2FsYygkc2lkZW5hdi1saW5lLWhlaWdodCAvIDIpIC0gY2FsYygkYmFkZ2UtaGVpZ2h0IC8gMikpO1xcbn1cXG5cXG50YWJsZSBzcGFuLmJhZGdlIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZsb2F0OiBub25lO1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxufVxcblwiLFwiLmNoaXAge1xcbiAgJjpmb2N1cyB7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGlwLXNlbGVjdGVkLWNvbG9yO1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gIH1cXG5cXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGhlaWdodDogMzJweDtcXG4gIGZvbnQtc2l6ZTogMTNweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwuNik7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIHBhZGRpbmc6IDAgMTJweDtcXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hpcC1iZy1jb2xvcjtcXG4gIG1hcmdpbi1ib3R0b206ICRjaGlwLW1hcmdpbjtcXG4gIG1hcmdpbi1yaWdodDogJGNoaXAtbWFyZ2luO1xcblxcbiAgPiBpbWcge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luOiAwIDhweCAwIC0xMnB4O1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuICAgIHdpZHRoOiAzMnB4O1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB9XFxuXFxuICAuY2xvc2Uge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGZsb2F0OiByaWdodDtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogMzJweDtcXG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICB9XFxufVxcblxcbi5jaGlwcyB7XFxuICBib3JkZXI6IG5vbmU7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNoaXAtYm9yZGVyLWNvbG9yO1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG4gIG1hcmdpbjogJGlucHV0LW1hcmdpbjtcXG4gIG1pbi1oZWlnaHQ6IDQ1cHg7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgdHJhbnNpdGlvbjogYWxsIC4zcztcXG5cXG4gICYuZm9jdXMge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNoaXAtc2VsZWN0ZWQtY29sb3I7XFxuICAgIGJveC1zaGFkb3c6IDAgMXB4IDAgMCAkY2hpcC1zZWxlY3RlZC1jb2xvcjtcXG4gIH1cXG5cXG4gICY6aG92ZXIge1xcbiAgICBjdXJzb3I6IHRleHQ7XFxuICB9XFxuXFxuICAuaW5wdXQge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNvbG9yOiByZ2JhKDAsMCwwLC42KTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XFxuICAgIGhlaWdodDogJGlucHV0LWhlaWdodDtcXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICAgIG91dGxpbmU6IDA7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xcbiAgICB3aWR0aDogMTIwcHggIWltcG9ydGFudDtcXG4gIH1cXG5cXG4gIC5pbnB1dDpmb2N1cyB7XFxuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxuXFxuICAvLyBBdXRvY29tcGxldGVcXG4gIC5hdXRvY29tcGxldGUtY29udGVudCB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICB9XFxufVxcblxcbi8vIEZvcm0gcHJlZml4XFxuLnByZWZpeCB+IC5jaGlwcyB7XFxuICBtYXJnaW4tbGVmdDogM3JlbTtcXG4gIHdpZHRoOiA5MiU7XFxuICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XFxufVxcbi5jaGlwczplbXB0eSB+IGxhYmVsICB7XFxuICBmb250LXNpemU6IDAuOHJlbTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTQwJSk7XFxufVxcblwiLFwiLmNvbGxhcHNpYmxlIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sbGFwc2libGUtYm9yZGVyLWNvbG9yO1xcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbGxhcHNpYmxlLWJvcmRlci1jb2xvcjtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNvbGxhcHNpYmxlLWJvcmRlci1jb2xvcjtcXG4gIG1hcmdpbjogJGVsZW1lbnQtdG9wLW1hcmdpbiAwICRlbGVtZW50LWJvdHRvbS1tYXJnaW4gMDtcXG4gIEBleHRlbmQgLnNoYWRvdy0xO1xcbn1cXG5cXG4uY29sbGFwc2libGUtaGVhZGVyIHtcXG4gICY6Zm9jdXMge1xcbiAgICBvdXRsaW5lOiAwXFxuICB9XFxuXFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICBwYWRkaW5nOiAxcmVtO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbGxhcHNpYmxlLWhlYWRlci1jb2xvcjtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sbGFwc2libGUtYm9yZGVyLWNvbG9yO1xcblxcbiAgaSB7XFxuICAgIHdpZHRoOiAycmVtO1xcbiAgICBmb250LXNpemU6IDEuNnJlbTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcXG4gIH1cXG59XFxuLmtleWJvYXJkLWZvY3VzZWQgLmNvbGxhcHNpYmxlLWhlYWRlcjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xcbn1cXG5cXG4uY29sbGFwc2libGUtYm9keSB7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xsYXBzaWJsZS1ib3JkZXItY29sb3I7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgcGFkZGluZzogMnJlbTtcXG59XFxuXFxuLy8gU2lkZW5hdiBjb2xsYXBzaWJsZSBzdHlsaW5nXFxuLnNpZGVuYXYsXFxuLnNpZGVuYXYuZml4ZWQge1xcblxcbiAgLmNvbGxhcHNpYmxlIHtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcblxcbiAgICBsaSB7IHBhZGRpbmc6IDA7IH1cXG4gIH1cXG5cXG4gIC5jb2xsYXBzaWJsZS1oZWFkZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBwYWRkaW5nOiAwICRzaWRlbmF2LXBhZGRpbmc7XFxuXFxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC4wNSk7IH1cXG4gICAgaSB7IGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XFxuICB9XFxuXFxuICAuY29sbGFwc2libGUtYm9keSB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbGxhcHNpYmxlLWhlYWRlci1jb2xvcjtcXG5cXG4gICAgbGkgYSB7XFxuICAgICAgcGFkZGluZzogMCAoNy41cHggKyAkc2lkZW5hdi1wYWRkaW5nKVxcbiAgICAgICAgICAgICAgIDAgKDE1cHggKyAkc2lkZW5hdi1wYWRkaW5nKTtcXG4gICAgfVxcbiAgfVxcblxcbn1cXG5cXG4vLyBQb3BvdXQgQ29sbGFwc2libGVcXG5cXG4uY29sbGFwc2libGUucG9wb3V0IHtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxuICA+IGxpIHtcXG4gICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE2KSwgMCAycHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICAgIC8vIHRyYW5zZm9ybTogc2NhbGVYKC45Mik7XFxuICAgIG1hcmdpbjogMCAyNHB4O1xcbiAgICB0cmFuc2l0aW9uOiBtYXJnaW4gLjM1cyBjdWJpYy1iZXppZXIoMC4yNTAsIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xcbiAgfVxcbiAgPiBsaS5hY3RpdmUge1xcbiAgICBib3gtc2hhZG93OiAwIDVweCAxMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE4KSwgMCA0cHggMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxuICAgIG1hcmdpbjogMTZweCAwO1xcbiAgICAvLyB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcXG4gIH1cXG59XFxuXCIsXCIvLyAyMy4gQ29sbGVjdGlvbnMgLSB2YXJpYWJsZXNcXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcblxcbiRjb2xsZWN0aW9uLWJvcmRlci1jb2xvcjogI2UwZTBlMCAhZGVmYXVsdDtcXG4kY29sbGVjdGlvbi1iZy1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcXG4kY29sbGVjdGlvbi1hY3RpdmUtYmctY29sb3I6ICRzZWNvbmRhcnktY29sb3IgIWRlZmF1bHQ7XFxuJGNvbGxlY3Rpb24tYWN0aXZlLWNvbG9yOiBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDU1JSkgIWRlZmF1bHQ7XFxuJGNvbGxlY3Rpb24taG92ZXItYmctY29sb3I6ICNkZGQgIWRlZmF1bHQ7XFxuJGNvbGxlY3Rpb24tbGluay1jb2xvcjogJHNlY29uZGFyeS1jb2xvciAhZGVmYXVsdDtcXG4kY29sbGVjdGlvbi1saW5lLWhlaWdodDogMS41cmVtICFkZWZhdWx0O1xcbi8vIDIzLiBDb2xsZWN0aW9uc1xcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxuXFxuLmNvbGxlY3Rpb24ge1xcbiAgICBtYXJnaW46ICRlbGVtZW50LXRvcC1tYXJnaW4gMCAkZWxlbWVudC1ib3R0b20tbWFyZ2luIDA7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xsZWN0aW9uLWJvcmRlci1jb2xvcjtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBcXG4gICAgLmNvbGxlY3Rpb24taXRlbSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbGxlY3Rpb24tYmctY29sb3I7XFxuICAgICAgbGluZS1oZWlnaHQ6ICRjb2xsZWN0aW9uLWxpbmUtaGVpZ2h0O1xcbiAgICAgIHBhZGRpbmc6IDEwcHggMjBweDtcXG4gICAgICBtYXJnaW46IDA7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xsZWN0aW9uLWJvcmRlci1jb2xvcjtcXG4gIFxcbiAgICAgIC8vIEF2YXRhciBDb2xsZWN0aW9uXFxuICAgICAgJi5hdmF0YXIge1xcbiAgICAgICAgbWluLWhlaWdodDogODRweDtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogNzJweDtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIFxcbiAgICAgICAgLy8gRG9uJ3Qgc3R5bGUgY2lyY2xlcyBpbnNpZGUgcHJlbG9hZGVyIGNsYXNzZXMuXFxuICAgICAgICAmOm5vdCguY2lyY2xlLWNsaXBwZXIpID4gLmNpcmNsZSxcXG4gICAgICAgIDpub3QoLmNpcmNsZS1jbGlwcGVyKSA+IC5jaXJjbGUge1xcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICAgIHdpZHRoOiA0MnB4O1xcbiAgICAgICAgICBoZWlnaHQ6IDQycHg7XFxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICAgIGxlZnQ6IDE1cHg7XFxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGkuY2lyY2xlIHtcXG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogNDJweDtcXG4gICAgICAgICAgY29sb3I6ICNmZmY7XFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XFxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIH1cXG4gIFxcbiAgXFxuICAgICAgICAudGl0bGUge1xcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XFxuICAgICAgICB9XFxuICBcXG4gICAgICAgIHAge1xcbiAgICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICB9XFxuICBcXG4gICAgICAgIC5zZWNvbmRhcnktY29udGVudCB7XFxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgICAgdG9wOiAxNnB4O1xcbiAgICAgICAgICByaWdodDogMTZweDtcXG4gICAgICAgIH1cXG4gIFxcbiAgICAgIH1cXG4gIFxcbiAgXFxuICAgICAgJjpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICAgICAgfVxcbiAgXFxuICAgICAgJi5hY3RpdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbGxlY3Rpb24tYWN0aXZlLWJnLWNvbG9yO1xcbiAgICAgICAgY29sb3I6ICRjb2xsZWN0aW9uLWFjdGl2ZS1jb2xvcjtcXG4gIFxcbiAgICAgICAgLnNlY29uZGFyeS1jb250ZW50IHtcXG4gICAgICAgICAgY29sb3I6ICNmZmY7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9XFxuICAgIGEuY29sbGVjdGlvbi1pdGVte1xcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgIHRyYW5zaXRpb246IC4yNXM7XFxuICAgICAgY29sb3I6ICRjb2xsZWN0aW9uLWxpbmstY29sb3I7XFxuICAgICAgJjpub3QoLmFjdGl2ZSkge1xcbiAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xsZWN0aW9uLWhvdmVyLWJnLWNvbG9yO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgfVxcbiAgXFxuICAgICYud2l0aC1oZWFkZXIge1xcbiAgICAgIC5jb2xsZWN0aW9uLWhlYWRlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sbGVjdGlvbi1iZy1jb2xvcjtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sbGVjdGlvbi1ib3JkZXItY29sb3I7XFxuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XFxuICAgICAgfVxcbiAgICAgIC5jb2xsZWN0aW9uLWl0ZW0ge1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xcbiAgICAgIH1cXG4gICAgICAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciB7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDcycHg7XFxuICAgICAgfVxcbiAgICB9XFxuICAgIC5zZWNvbmRhcnktY29udGVudCB7XFxuICAgICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xcbiAgICB9XFxuICB9XCIsXCIvLyBSZW1vdmUgRm9jdXMgQm94ZXNcXG5zZWxlY3Q6Zm9jdXMge1xcbiAgb3V0bGluZTogJHNlbGVjdC1mb2N1cztcXG59XFxuXFxuYnV0dG9uOmZvY3VzIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQtZm9jdXM7XFxufVxcblxcbmxhYmVsIHtcXG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcXG4gIGNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xcbn1cXG5cXG5AaW1wb3J0ICdpbnB1dC1maWVsZHMnO1xcbkBpbXBvcnQgJ3JhZGlvLWJ1dHRvbnMnO1xcbkBpbXBvcnQgJ2NoZWNrYm94ZXMnO1xcbkBpbXBvcnQgJ3N3aXRjaGVzJztcXG5AaW1wb3J0ICdzZWxlY3QnO1xcbkBpbXBvcnQgJ2ZpbGUtaW5wdXQnO1xcbkBpbXBvcnQgJ3JhbmdlJztcXG5cIixcIi8qIFRleHQgSW5wdXRzICsgVGV4dGFyZWFcXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xcblxcbi8qIFN0eWxlIFBsYWNlaG9sZGVycyAqL1xcbkB1c2UgXFxcInNhc3M6bWF0aFxcXCI7XFxuOjpwbGFjZWhvbGRlciB7XFxuICBjb2xvcjogJHBsYWNlaG9sZGVyLXRleHQtY29sb3I7XFxufVxcblxcbi8qIFRleHQgaW5wdXRzICovXFxuXFxuaW5wdXQ6bm90KFt0eXBlXSksXFxuaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCksXFxuaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpLFxcbmlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxcXG5pbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpLFxcbmlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLFxcbmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpLFxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxcXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCksXFxuaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxcXG5pbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpLFxcbmlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCksXFxudGV4dGFyZWEudGV4dGFyZWEge1xcblxcbiAgLy8gR2VuZXJhbCBTdHlsZXNcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYm9yZGVyLWJvdHRvbTogJGlucHV0LWJvcmRlcjtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XFxuICBtYXJnaW46ICRpbnB1dC1tYXJnaW47XFxuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjNzLCBib3JkZXIgLjNzO1xcblxcbiAgLy8gRGlzYWJsZWQgaW5wdXQgc3R5bGVcXG4gICY6ZGlzYWJsZWQsXFxuICAmW3JlYWRvbmx5PVxcXCJyZWFkb25seVxcXCJdIHtcXG4gICAgY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1jb2xvcjtcXG4gICAgYm9yZGVyLWJvdHRvbTogJGlucHV0LWRpc2FibGVkLWJvcmRlcjtcXG4gIH1cXG5cXG4gIC8vIERpc2FibGVkIGxhYmVsIHN0eWxlXFxuICAmOmRpc2FibGVkK2xhYmVsLFxcbiAgJltyZWFkb25seT1cXFwicmVhZG9ubHlcXFwiXStsYWJlbCB7XFxuICAgIGNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtY29sb3I7XFxuICB9XFxuXFxuICAvLyBGb2N1c2VkIGlucHV0IHN0eWxlXFxuICAmOmZvY3VzOm5vdChbcmVhZG9ubHldKSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkaW5wdXQtZm9jdXMtY29sb3I7XFxuICAgIGJveC1zaGFkb3c6IDAgMXB4IDAgMCAkaW5wdXQtZm9jdXMtY29sb3I7XFxuICB9XFxuXFxuICAvLyBGb2N1c2VkIGxhYmVsIHN0eWxlXFxuICAmOmZvY3VzOm5vdChbcmVhZG9ubHldKStsYWJlbCB7XFxuICAgIGNvbG9yOiAkaW5wdXQtZm9jdXMtY29sb3I7XFxuICB9XFxuXFxuICAvLyBIaWRlIGhlbHBlciB0ZXh0IG9uIGRhdGEgbWVzc2FnZVxcbiAgJi52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbiAgJjpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLFxcbiAgJi5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLFxcbiAgJjpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdIHtcXG4gICAgQGV4dGVuZCAlaGlkZGVuLXRleHQ7XFxuICB9XFxuXFxuICAvLyBWYWxpZCBJbnB1dCBTdHlsZVxcbiAgJi52YWxpZCxcXG4gICY6Zm9jdXMudmFsaWQge1xcbiAgICBAZXh0ZW5kICV2YWxpZC1pbnB1dC1zdHlsZTtcXG4gIH1cXG5cXG4gIC8vIEN1c3RvbSBTdWNjZXNzIE1lc3NhZ2VcXG4gICYudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsXFxuICAmOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyIHtcXG4gICAgQGV4dGVuZCAlY3VzdG9tLXN1Y2Nlc3MtbWVzc2FnZTtcXG4gIH1cXG4gICY6Zm9jdXMudmFsaWQgfiBsYWJlbCB7XFxuICAgIGNvbG9yOiAkaW5wdXQtc3VjY2Vzcy1jb2xvcjtcXG4gIH1cXG5cXG4gIC8vIEludmFsaWQgSW5wdXQgU3R5bGVcXG4gICYuaW52YWxpZCxcXG4gICY6Zm9jdXMuaW52YWxpZCB7XFxuICAgIEBleHRlbmQgJWludmFsaWQtaW5wdXQtc3R5bGU7XFxuICB9XFxuXFxuICAvLyBDdXN0b20gRXJyb3IgbWVzc2FnZVxcbiAgJi5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLFxcbiAgJjpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyIHtcXG4gICAgQGV4dGVuZCAlY3VzdG9tLWVycm9yLW1lc3NhZ2U7XFxuICB9XFxuICAmOmZvY3VzLmludmFsaWQgfiBsYWJlbCB7XFxuICAgIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XFxuICB9XFxuXFxuICAvLyBGdWxsIHdpZHRoIGxhYmVsIHdoZW4gdXNpbmcgdmFsaWRhdGUgZm9yIGVycm9yIG1lc3NhZ2VzXFxuICAmLnZhbGlkYXRlICsgbGFiZWwge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG5cXG4gIC8vIEZvcm0gTWVzc2FnZSBTaGFyZWQgU3R5bGVzXFxuICAmICsgbGFiZWw6YWZ0ZXIge1xcbiAgICBAZXh0ZW5kICVpbnB1dC1hZnRlci1zdHlsZTtcXG4gIH1cXG59XFxuXFxuXFxuLyogVmFsaWRhdGlvbiBTYXNzIFBsYWNlaG9sZGVycyAqL1xcbiV2YWxpZC1pbnB1dC1zdHlsZSB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGlucHV0LXN1Y2Nlc3MtY29sb3I7XFxuICBib3gtc2hhZG93OiAwIDFweCAwIDAgJGlucHV0LXN1Y2Nlc3MtY29sb3I7XFxufVxcbiVpbnZhbGlkLWlucHV0LXN0eWxlIHtcXG4gIGJvcmRlci1ib3R0b206ICRpbnB1dC1pbnZhbGlkLWJvcmRlcjtcXG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgMCAkaW5wdXQtZXJyb3ItY29sb3I7XFxufVxcbiVoaWRkZW4tdGV4dCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4lY3VzdG9tLXN1Y2Nlc3MtbWVzc2FnZSB7XFxuICBjb250ZW50OiBhdHRyKGRhdGEtc3VjY2Vzcyk7XFxuICBjb2xvcjogJGlucHV0LXN1Y2Nlc3MtY29sb3I7XFxufVxcbiVjdXN0b20tZXJyb3ItbWVzc2FnZSB7XFxuICBjb250ZW50OiBhdHRyKGRhdGEtZXJyb3IpO1xcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcXG59XFxuJWlucHV0LWFmdGVyLXN0eWxlIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDEwMCU7XFxuICBsZWZ0OiAwO1xcbiAgb3BhY2l0eTogMDtcXG4gIHRyYW5zaXRpb246IC4ycyBvcGFjaXR5IGVhc2Utb3V0LCAuMnMgY29sb3IgZWFzZS1vdXQ7XFxufVxcblxcblxcbi8vIFN0eWxpbmcgZm9yIGlucHV0IGZpZWxkIHdyYXBwZXJcXG4uaW5wdXQtZmllbGQge1xcbiAgLy8gSW5saW5lIHN0eWxlc1xcbiAgJi5pbmxpbmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XFxuXFxuICAgIGlucHV0LFxcbiAgICAuc2VsZWN0LWRyb3Bkb3duIHtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgICB9XFxuICB9XFxuXFxuICAvLyBHdXR0ZXIgc3BhY2luZ1xcbiAgJi5jb2wge1xcbiAgICBsYWJlbCB7XFxuICAgICAgbGVmdDogbWF0aC5kaXYoJGd1dHRlci13aWR0aCwgMik7XFxuICAgIH1cXG5cXG4gICAgLnByZWZpeCB+IGxhYmVsLFxcbiAgICAucHJlZml4IH4gLnZhbGlkYXRlIH4gbGFiZWwge1xcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtIC0gI3skZ3V0dGVyLXdpZHRofSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG1hcmdpbi10b3A6IDFyZW07XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcblxcbiAgJiA+IGxhYmVsIHtcXG4gICAgY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBmb250LXNpemU6IDFyZW07XFxuICAgIGN1cnNvcjogdGV4dDtcXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycyBlYXNlLW91dCwgY29sb3IgLjJzIGVhc2Utb3V0O1xcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xcbiAgICB0ZXh0LWFsaWduOiBpbml0aWFsO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJweCk7XFxuXFxuICAgICY6bm90KC5sYWJlbC1pY29uKS5hY3RpdmUge1xcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTRweCkgc2NhbGUoLjgpO1xcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLy8gQXV0b2ZpbGwgKyBkYXRlICsgdGltZSBpbnB1dHNcXG4gICYgPiBpbnB1dFt0eXBlXTotd2Via2l0LWF1dG9maWxsOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpub3QoW3R5cGU9XFxcInNlYXJjaFxcXCJdKSArIGxhYmVsLFxcbiAgJiA+IGlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpICsgbGFiZWwsXFxuICAmID4gaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkgKyBsYWJlbCB7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTRweCkgc2NhbGUoLjgpO1xcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XFxuICB9XFxuXFxuICAuaGVscGVyLXRleHQge1xcbiAgICAmOjphZnRlciB7XFxuICAgICAgb3BhY2l0eTogMTtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgdG9wOiAwO1xcbiAgICAgIGxlZnQ6IDA7XFxuICAgIH1cXG5cXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBtaW4taGVpZ2h0OiAxOHB4O1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwuNTQpO1xcbiAgfVxcblxcbiAgLy8gUHJlZml4IEljb25zXFxuICAucHJlZml4IHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogJGlucHV0LWhlaWdodDtcXG4gICAgZm9udC1zaXplOiAkaW5wdXQtaWNvbi1zaXplO1xcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMnM7XFxuICAgLy8gdG9wOiAoJGlucHV0LWhlaWdodCAtICRpbnB1dC1pY29uLXNpemUpIC8gMjtcXG5cXG4gICAgJi5hY3RpdmUgeyBjb2xvcjogJGlucHV0LWZvY3VzLWNvbG9yOyB9XFxuICB9XFxuXFxuICAucHJlZml4IH4gaW5wdXQsXFxuICAucHJlZml4IH4gdGV4dGFyZWEsXFxuICAucHJlZml4IH4gbGFiZWwsXFxuICAucHJlZml4IH4gLnZhbGlkYXRlIH4gbGFiZWwsXFxuICAucHJlZml4IH4gLmhlbHBlci10ZXh0LFxcbiAgLnByZWZpeCB+IC5hdXRvY29tcGxldGUtY29udGVudCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzcmVtO1xcbiAgICB3aWR0aDogOTIlO1xcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XFxuICB9XFxuXFxuICAucHJlZml4IH4gbGFiZWwgeyBtYXJnaW4tbGVmdDogM3JlbTsgfVxcblxcbiAgQG1lZGlhICN7JG1lZGl1bS1hbmQtZG93bn0ge1xcbiAgICAucHJlZml4IH4gaW5wdXQge1xcbiAgICAgIHdpZHRoOiA4NiU7XFxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pO1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgI3skc21hbGwtYW5kLWRvd259IHtcXG4gICAgLnByZWZpeCB+IGlucHV0IHtcXG4gICAgICB3aWR0aDogODAlO1xcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtKTtcXG4gICAgfVxcbiAgfVxcbn1cXG5cXG5cXG4vKiBTZWFyY2ggRmllbGQgKi9cXG5cXG4uaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICB0cmFuc2l0aW9uOiAuM3MgYmFja2dyb3VuZC1jb2xvcjtcXG5cXG4gIC5uYXYtd3JhcHBlciAmIHtcXG4gICAgaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0cmVtKTtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbiAgfVxcblxcbiAgJjpmb2N1czpub3QoLmJyb3dzZXItZGVmYXVsdCkge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBjb2xvcjogIzQ0NDtcXG5cXG4gICAgJiArIGxhYmVsIGksXFxuICAgICYgfiAubWRpLW5hdmlnYXRpb24tY2xvc2UsXFxuICAgICYgfiAubWF0ZXJpYWwtaWNvbnMge1xcbiAgICAgIGNvbG9yOiAjNDQ0O1xcbiAgICB9XFxuICB9XFxuXFxuICAmICsgLmxhYmVsLWljb24ge1xcbiAgICB0cmFuc2Zvcm06IG5vbmU7XFxuICAgIGxlZnQ6IDFyZW07XFxuICB9XFxuXFxuICAmIH4gLm1kaS1uYXZpZ2F0aW9uLWNsb3NlLFxcbiAgJiB+IC5tYXRlcmlhbC1pY29ucyB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMXJlbTtcXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGZvbnQtc2l6ZTogJGlucHV0LWljb24tc2l6ZTtcXG4gICAgdHJhbnNpdGlvbjogLjNzIGNvbG9yO1xcbiAgfVxcbn1cXG5cXG5cXG4vKiBUZXh0YXJlYSAqL1xcblxcbi8vIERlZmF1bHQgdGV4dGFyZWFcXG50ZXh0YXJlYSB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogJGlucHV0LWhlaWdodDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcblxcbiAgJi50ZXh0YXJlYSB7XFxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93LXk6IGhpZGRlbjsgLyogcHJldmVudHMgc2Nyb2xsIGJhciBmbGFzaCAqL1xcbiAgICBwYWRkaW5nOiAuOHJlbSAwIC44cmVtIDA7IC8qIHByZXZlbnRzIHRleHQganVtcCBvbiBFbnRlciBrZXlwcmVzcyAqL1xcbiAgICByZXNpemU6IG5vbmU7XFxuICAgIG1pbi1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICB9XFxufVxcblxcbi8vIEZvciB0ZXh0YXJlYSBhdXRvcmVzaXplXFxuXFxuLmhpZGRlbmRpdiB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XFxuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyAvKiBmdXR1cmUgdmVyc2lvbiBvZiBkZXByZWNhdGVkICd3b3JkLXdyYXAnICovXFxuICBwYWRkaW5nLXRvcDogMS4ycmVtOyAvKiBwcmV2ZW50cyB0ZXh0IGp1bXAgb24gRW50ZXIga2V5cHJlc3MgKi9cXG5cXG4gIC8vIFJlZHVjZXMgcmVwYWludHNcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG5cXG5cXG4vKiBBdXRvY29tcGxldGUgKi9cXG4uYXV0b2NvbXBsZXRlLWNvbnRlbnQge1xcbiAgbGkge1xcbiAgICAuaGlnaGxpZ2h0IHsgY29sb3I6ICM0NDQ7IH1cXG5cXG4gICAgaW1nIHtcXG4gICAgICAvLyBoZWlnaHQ6ICRkcm9wZG93bi1pdGVtLWhlaWdodCAtIDEwO1xcbiAgICAgIC8vIHdpZHRoOiAkZHJvcGRvd24taXRlbS1oZWlnaHQgLSAxMDtcXG4gICAgICBtYXJnaW46IDVweCAxNXB4O1xcbiAgICB9XFxuICB9XFxufVxcblxcbi8qIENoYXJhY3RlciBDb3VudGVyICovXFxuLmNoYXJhY3Rlci1jb3VudGVyIHtcXG4gIG1pbi1oZWlnaHQ6IDE4cHg7XFxufVxcblwiLFwiLyogUmFkaW8gQnV0dG9uc1xcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXFxuXFxuLy8gUmVtb3ZlIGRlZmF1bHQgUmFkaW8gQnV0dG9uc1xcblt0eXBlPVxcXCJyYWRpb1xcXCJdOm5vdCg6Y2hlY2tlZCksXFxuW3R5cGU9XFxcInJhZGlvXFxcIl06Y2hlY2tlZCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBvcGFjaXR5OiAwO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcblxcblt0eXBlPVxcXCJyYWRpb1xcXCJdOm5vdCg6Y2hlY2tlZCkgKyBzcGFuLFxcblt0eXBlPVxcXCJyYWRpb1xcXCJdOmNoZWNrZWQgKyBzcGFuIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctbGVmdDogMzVweDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGhlaWdodDogMjVweDtcXG4gIGxpbmUtaGVpZ2h0OiAyNXB4O1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgdHJhbnNpdGlvbjogLjI4cyBlYXNlO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcblxcblt0eXBlPVxcXCJyYWRpb1xcXCJdICsgc3BhbjpiZWZvcmUsXFxuW3R5cGU9XFxcInJhZGlvXFxcIl0gKyBzcGFuOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHRvcDogMDtcXG4gIG1hcmdpbjogNHB4O1xcbiAgd2lkdGg6IDE2cHg7XFxuICBoZWlnaHQ6IDE2cHg7XFxuICB6LWluZGV4OiAwO1xcbiAgdHJhbnNpdGlvbjogLjI4cyBlYXNlO1xcbn1cXG5cXG4vKiBVbmNoZWNrZWQgc3R5bGVzICovXFxuW3R5cGU9XFxcInJhZGlvXFxcIl06bm90KDpjaGVja2VkKSArIHNwYW46YmVmb3JlLFxcblt0eXBlPVxcXCJyYWRpb1xcXCJdOm5vdCg6Y2hlY2tlZCkgKyBzcGFuOmFmdGVyLFxcblt0eXBlPVxcXCJyYWRpb1xcXCJdOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSxcXG5bdHlwZT1cXFwicmFkaW9cXFwiXTpjaGVja2VkICsgc3BhbjphZnRlcixcXG5bdHlwZT1cXFwicmFkaW9cXFwiXS53aXRoLWdhcDpjaGVja2VkICsgc3BhbjpiZWZvcmUsXFxuW3R5cGU9XFxcInJhZGlvXFxcIl0ud2l0aC1nYXA6Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG5cXG5bdHlwZT1cXFwicmFkaW9cXFwiXTpub3QoOmNoZWNrZWQpICsgc3BhbjpiZWZvcmUsXFxuW3R5cGU9XFxcInJhZGlvXFxcIl06bm90KDpjaGVja2VkKSArIHNwYW46YWZ0ZXIge1xcbiAgYm9yZGVyOiAycHggc29saWQgJHJhZGlvLWVtcHR5LWNvbG9yO1xcbn1cXG5cXG5bdHlwZT1cXFwicmFkaW9cXFwiXTpub3QoOmNoZWNrZWQpICsgc3BhbjphZnRlciB7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbn1cXG5cXG4vKiBDaGVja2VkIHN0eWxlcyAqL1xcblt0eXBlPVxcXCJyYWRpb1xcXCJdOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSB7XFxuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcXG59XFxuXFxuW3R5cGU9XFxcInJhZGlvXFxcIl06Y2hlY2tlZCArIHNwYW46YWZ0ZXIsXFxuW3R5cGU9XFxcInJhZGlvXFxcIl0ud2l0aC1nYXA6Y2hlY2tlZCArIHNwYW46YmVmb3JlLFxcblt0eXBlPVxcXCJyYWRpb1xcXCJdLndpdGgtZ2FwOmNoZWNrZWQgKyBzcGFuOmFmdGVyIHtcXG4gIGJvcmRlcjogJHJhZGlvLWJvcmRlcjtcXG59XFxuXFxuW3R5cGU9XFxcInJhZGlvXFxcIl06Y2hlY2tlZCArIHNwYW46YWZ0ZXIsXFxuW3R5cGU9XFxcInJhZGlvXFxcIl0ud2l0aC1nYXA6Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJhZGlvLWZpbGwtY29sb3I7XFxufVxcblxcblt0eXBlPVxcXCJyYWRpb1xcXCJdOmNoZWNrZWQgKyBzcGFuOmFmdGVyIHtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxufVxcblxcbi8qIFJhZGlvIFdpdGggZ2FwICovXFxuW3R5cGU9XFxcInJhZGlvXFxcIl0ud2l0aC1nYXA6Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSguNSk7XFxufVxcblxcbi8qIEZvY3VzZWQgc3R5bGVzICovXFxuW3R5cGU9XFxcInJhZGlvXFxcIl0udGFiYmVkOmZvY3VzICsgc3BhbjpiZWZvcmUge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDAsMCwwLC4xKTtcXG59XFxuXFxuLyogRGlzYWJsZWQgUmFkaW8gV2l0aCBnYXAgKi9cXG5bdHlwZT1cXFwicmFkaW9cXFwiXS53aXRoLWdhcDpkaXNhYmxlZDpjaGVja2VkICsgc3BhbjpiZWZvcmUge1xcbiAgYm9yZGVyOiAycHggc29saWQgJGlucHV0LWRpc2FibGVkLWNvbG9yO1xcbn1cXG5cXG5bdHlwZT1cXFwicmFkaW9cXFwiXS53aXRoLWdhcDpkaXNhYmxlZDpjaGVja2VkICsgc3BhbjphZnRlciB7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtY29sb3I7XFxufVxcblxcbi8qIERpc2FibGVkIHN0eWxlICovXFxuW3R5cGU9XFxcInJhZGlvXFxcIl06ZGlzYWJsZWQ6bm90KDpjaGVja2VkKSArIHNwYW46YmVmb3JlLFxcblt0eXBlPVxcXCJyYWRpb1xcXCJdOmRpc2FibGVkOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1jb2xvcjogJGlucHV0LWRpc2FibGVkLWNvbG9yO1xcbn1cXG5cXG5bdHlwZT1cXFwicmFkaW9cXFwiXTpkaXNhYmxlZCArIHNwYW4ge1xcbiAgY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1jb2xvcjtcXG59XFxuXFxuW3R5cGU9XFxcInJhZGlvXFxcIl06ZGlzYWJsZWQ6bm90KDpjaGVja2VkKSArIHNwYW46YmVmb3JlIHtcXG4gIGJvcmRlci1jb2xvcjogJGlucHV0LWRpc2FibGVkLWNvbG9yO1xcbn1cXG5cXG5bdHlwZT1cXFwicmFkaW9cXFwiXTpkaXNhYmxlZDpjaGVja2VkICsgc3BhbjphZnRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtY29sb3I7XFxuICBib3JkZXItY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1zb2xpZC1jb2xvcjtcXG59XFxuXCIsXCIvKiBDaGVja2JveGVzXFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cXG5cXG4vKiBSZW1vdmUgZGVmYXVsdCBjaGVja2JveCAqL1xcblt0eXBlPVxcXCJjaGVja2JveFxcXCJdOm5vdCg6Y2hlY2tlZCksXFxuW3R5cGU9XFxcImNoZWNrYm94XFxcIl06Y2hlY2tlZCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBvcGFjaXR5OiAwO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcblxcbi8vIENoZWNrYm94IFN0eWxlc1xcblt0eXBlPVxcXCJjaGVja2JveFxcXCJdIHtcXG4gIC8vIFRleHQgTGFiZWwgU3R5bGVcXG4gICsgc3Bhbjpub3QoLmxldmVyKSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgcGFkZGluZy1sZWZ0OiAzNXB4O1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgaGVpZ2h0OiAyNXB4O1xcbiAgICBsaW5lLWhlaWdodDogMjVweDtcXG4gICAgZm9udC1zaXplOiAxcmVtO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIH1cXG5cXG4gIC8qIGNoZWNrYm94IGFzcGVjdCAqL1xcbiAgKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSxcXG4gICY6bm90KC5maWxsZWQtaW4pICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgd2lkdGg6IDE4cHg7XFxuICAgIGhlaWdodDogMThweDtcXG4gICAgei1pbmRleDogMDtcXG4gICAgYm9yZGVyOiAycHggc29saWQgJHJhZGlvLWVtcHR5LWNvbG9yO1xcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7XFxuICAgIG1hcmdpbi10b3A6IDNweDtcXG4gICAgdHJhbnNpdGlvbjogLjJzO1xcbiAgfVxcblxcbiAgJjpub3QoLmZpbGxlZC1pbikgKyBzcGFuOm5vdCgubGV2ZXIpOmFmdGVyIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgfVxcblxcbiAgJjpub3QoOmNoZWNrZWQpOmRpc2FibGVkICsgc3Bhbjpub3QoLmxldmVyKTpiZWZvcmUge1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1jb2xvcjtcXG4gIH1cXG5cXG4gIC8vIEZvY3VzZWQgc3R5bGVzXFxuICAmLnRhYmJlZDpmb2N1cyArIHNwYW46bm90KC5sZXZlcik6YWZ0ZXIge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDAsMCwwLC4xKTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuMSk7XFxuICB9XFxufVxcblxcblt0eXBlPVxcXCJjaGVja2JveFxcXCJdOmNoZWNrZWQge1xcbiAgKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSB7XFxuICAgIHRvcDogLTRweDtcXG4gICAgbGVmdDogLTVweDtcXG4gICAgd2lkdGg6IDEycHg7XFxuICAgIGhlaWdodDogMjJweDtcXG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItcmlnaHQ6ICRyYWRpby1ib3JkZXI7XFxuICAgIGJvcmRlci1ib3R0b206ICRyYWRpby1ib3JkZXI7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDQwZGVnKTtcXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XFxuICB9XFxuXFxuICAmOmRpc2FibGVkICsgc3BhbjpiZWZvcmUge1xcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkaW5wdXQtZGlzYWJsZWQtY29sb3I7XFxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkaW5wdXQtZGlzYWJsZWQtY29sb3I7XFxuICB9XFxufVxcblxcbi8qIEluZGV0ZXJtaW5hdGUgY2hlY2tib3ggKi9cXG5bdHlwZT1cXFwiY2hlY2tib3hcXFwiXTppbmRldGVybWluYXRlIHtcXG4gICsgc3Bhbjpub3QoLmxldmVyKTpiZWZvcmUge1xcbiAgICB0b3A6IC0xMXB4O1xcbiAgICBsZWZ0OiAtMTJweDtcXG4gICAgd2lkdGg6IDEwcHg7XFxuICAgIGhlaWdodDogMjJweDtcXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcXG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XFxuICAgIGJvcmRlci1yaWdodDogJHJhZGlvLWJvcmRlcjtcXG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XFxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcXG4gIH1cXG5cXG4gIC8vIERpc2FibGVkIGluZGV0ZXJtaW5hdGVcXG4gICY6ZGlzYWJsZWQgKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSB7XFxuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICRpbnB1dC1kaXNhYmxlZC1jb2xvcjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcblxcbi8vIEZpbGxlZCBpbiBTdHlsZVxcblt0eXBlPVxcXCJjaGVja2JveFxcXCJdLmZpbGxlZC1pbiB7XFxuICAvLyBHZW5lcmFsXFxuICArIHNwYW46bm90KC5sZXZlcik6YWZ0ZXIge1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICB9XFxuXFxuICArIHNwYW46bm90KC5sZXZlcik6YmVmb3JlLFxcbiAgKyBzcGFuOm5vdCgubGV2ZXIpOmFmdGVyIHtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgLyogLjFzIGRlbGF5IGlzIGZvciBjaGVjayBhbmltYXRpb24gKi9cXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyIC4yNXMsIGJhY2tncm91bmQtY29sb3IgLjI1cywgd2lkdGggLjIwcyAuMXMsIGhlaWdodCAuMjBzIC4xcywgdG9wIC4yMHMgLjFzLCBsZWZ0IC4yMHMgLjFzO1xcbiAgICB6LWluZGV4OiAxO1xcbiAgfVxcblxcbiAgLy8gVW5jaGVja2VkIHN0eWxlXFxuICAmOm5vdCg6Y2hlY2tlZCkgKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSB7XFxuICAgIHdpZHRoOiAwO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBsZWZ0OiA2cHg7XFxuICAgIHRvcDogMTBweDtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDM3ZGVnKTtcXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xcbiAgfVxcblxcbiAgJjpub3QoOmNoZWNrZWQpICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkcmFkaW8tZW1wdHktY29sb3I7XFxuICAgIHRvcDogMHB4O1xcbiAgICB6LWluZGV4OiAwO1xcbiAgfVxcblxcbiAgLy8gQ2hlY2tlZCBzdHlsZVxcbiAgJjpjaGVja2VkIHtcXG4gICAgKyBzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZSB7XFxuICAgICAgdG9wOiAwO1xcbiAgICAgIGxlZnQ6IDFweDtcXG4gICAgICB3aWR0aDogOHB4O1xcbiAgICAgIGhlaWdodDogMTNweDtcXG4gICAgICBib3JkZXItdG9wOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkaW5wdXQtYmFja2dyb3VuZDtcXG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGlucHV0LWJhY2tncm91bmQ7XFxuICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDM3ZGVnKTtcXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XFxuICAgIH1cXG5cXG4gICAgKyBzcGFuOm5vdCgubGV2ZXIpOmFmdGVyIHtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgd2lkdGg6IDIwcHg7XFxuICAgICAgaGVpZ2h0OiAyMHB4O1xcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRzZWNvbmRhcnktY29sb3I7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcXG4gICAgICB6LWluZGV4OiAwO1xcbiAgICB9XFxuICB9XFxuXFxuICAvLyBGb2N1c2VkIHN0eWxlc1xcbiAgJi50YWJiZWQ6Zm9jdXMgKyBzcGFuOm5vdCgubGV2ZXIpOmFmdGVyIHtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICBib3JkZXItY29sb3I6ICRyYWRpby1lbXB0eS1jb2xvcjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuMSk7XFxuICB9XFxuXFxuICAmLnRhYmJlZDpjaGVja2VkOmZvY3VzICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcXG4gICAgYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xcbiAgfVxcblxcbiAgLy8gRGlzYWJsZWQgc3R5bGVcXG4gICY6ZGlzYWJsZWQ6bm90KDpjaGVja2VkKSArIHNwYW46bm90KC5sZXZlcik6YmVmb3JlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgfVxcblxcbiAgJjpkaXNhYmxlZDpub3QoOmNoZWNrZWQpICsgc3Bhbjpub3QoLmxldmVyKTphZnRlciB7XFxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1zb2xpZC1jb2xvcjtcXG4gIH1cXG5cXG4gICY6ZGlzYWJsZWQ6Y2hlY2tlZCArIHNwYW46bm90KC5sZXZlcik6YmVmb3JlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB9XFxuXFxuICAmOmRpc2FibGVkOmNoZWNrZWQgKyBzcGFuOm5vdCgubGV2ZXIpOmFmdGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLXNvbGlkLWNvbG9yO1xcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1zb2xpZC1jb2xvcjtcXG4gIH1cXG59XFxuXCIsXCIvKiBTd2l0Y2hcXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xcblxcbi5zd2l0Y2gsXFxuLnN3aXRjaCAqIHtcXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuXFxuLnN3aXRjaCBsYWJlbCB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5zd2l0Y2ggbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xcbiAgb3BhY2l0eTogMDtcXG4gIHdpZHRoOiAwO1xcbiAgaGVpZ2h0OiAwO1xcblxcbiAgJjpjaGVja2VkICsgLmxldmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN3aXRjaC1jaGVja2VkLWxldmVyLWJnO1xcblxcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XFxuICAgICAgbGVmdDogMThweDtcXG4gICAgfVxcblxcbiAgICAmOmFmdGVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dpdGNoLWJnLWNvbG9yO1xcbiAgICB9XFxuICB9XFxufVxcblxcbi5zd2l0Y2ggbGFiZWwgLmxldmVyIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDM2cHg7XFxuICBoZWlnaHQ6IDE0cHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dpdGNoLXVuY2hlY2tlZC1sZXZlci1iZztcXG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xcbiAgLy9tYXJnaW4tcmlnaHQ6IDEwcHg7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBtYXJnaW46IDAgMTZweDtcXG5cXG4gICY6YmVmb3JlLCAmOmFmdGVyIHtcXG4gICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHRvcDogLTNweDtcXG4gICAgdHJhbnNpdGlvbjogbGVmdCAwLjNzIGVhc2UsIGJhY2tncm91bmQgLjNzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gLjFzIGVhc2U7XFxuICB9XFxuXFxuICAmOmJlZm9yZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRzd2l0Y2gtYmctY29sb3IsIC44NSk7XFxuICB9XFxuXFxuICAmOmFmdGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN3aXRjaC11bmNoZWNrZWQtYmc7XFxuICAgIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICB9XFxufVxcblxcbi8vIFN3aXRjaCBhY3RpdmUgc3R5bGVcXG5pbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOm5vdCg6ZGlzYWJsZWQpIH4gLmxldmVyOmFjdGl2ZTo6YmVmb3JlLFxcbmlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6bm90KDpkaXNhYmxlZCkudGFiYmVkOmZvY3VzIH4gLmxldmVyOjpiZWZvcmUge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgyLjQpO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHN3aXRjaC1iZy1jb2xvciwgLjg1KTtcXG59XFxuXFxuaW5wdXRbdHlwZT1jaGVja2JveF06bm90KDpkaXNhYmxlZCkgfiAubGV2ZXI6YWN0aXZlOmJlZm9yZSxcXG5pbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoOmRpc2FibGVkKS50YWJiZWQ6Zm9jdXMgfiAubGV2ZXI6OmJlZm9yZSB7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDIuNCk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC4wOCk7XFxufVxcblxcbi8vIERpc2FibGVkIFN0eWxlc1xcbi5zd2l0Y2ggaW5wdXRbdHlwZT1jaGVja2JveF1bZGlzYWJsZWRdICsgLmxldmVyIHtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjEyKTtcXG59XFxuXFxuLnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XVtkaXNhYmxlZF0gKyAubGV2ZXI6YWZ0ZXIsXFxuLnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XVtkaXNhYmxlZF06Y2hlY2tlZCArIC5sZXZlcjphZnRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtc29saWQtY29sb3I7XFxufVxcblwiLFwiLyogU2VsZWN0IEZpZWxkXFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cXG5cXG5zZWxlY3QgeyBkaXNwbGF5OiBub25lOyB9XFxuc2VsZWN0LmJyb3dzZXItZGVmYXVsdCB7IGRpc3BsYXk6IGJsb2NrOyB9XFxuXFxuc2VsZWN0IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogJHNlbGVjdC1wYWRkaW5nO1xcbiAgYm9yZGVyOiAkc2VsZWN0LWJvcmRlcjtcXG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xcbn1cXG5cXG4uc2VsZWN0LWxhYmVsIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuXFxuLnNlbGVjdC13cmFwcGVyIHtcXG4gICYudmFsaWQgLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sXFxuICAmLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0ge1xcbiAgICBAZXh0ZW5kICVoaWRkZW4tdGV4dDtcXG4gIH1cXG5cXG4gICYudmFsaWQge1xcbiAgICAmID4gaW5wdXQuc2VsZWN0LWRyb3Bkb3duIHtcXG4gICAgICBAZXh0ZW5kICV2YWxpZC1pbnB1dC1zdHlsZTtcXG4gICAgfVxcblxcbiAgICAmIH4gLmhlbHBlci10ZXh0OmFmdGVyIHtcXG4gICAgICBAZXh0ZW5kICVjdXN0b20tc3VjY2Vzcy1tZXNzYWdlO1xcbiAgICB9XFxuICB9XFxuXFxuICAmLmludmFsaWQge1xcbiAgICAmID4gaW5wdXQuc2VsZWN0LWRyb3Bkb3duLFxcbiAgICAmID4gaW5wdXQuc2VsZWN0LWRyb3Bkb3duOmZvY3VzIHtcXG4gICAgICBAZXh0ZW5kICVpbnZhbGlkLWlucHV0LXN0eWxlO1xcbiAgICB9XFxuXFxuICAgICYgfiAuaGVscGVyLXRleHQ6YWZ0ZXIge1xcbiAgICAgIEBleHRlbmQgJWN1c3RvbS1lcnJvci1tZXNzYWdlO1xcbiAgICB9XFxuICB9XFxuXFxuICAmLnZhbGlkICsgbGFiZWwsXFxuICAmLmludmFsaWQgKyBsYWJlbCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG5cXG4gICYgKyBsYWJlbDphZnRlciB7XFxuICAgIEBleHRlbmQgJWlucHV0LWFmdGVyLXN0eWxlO1xcbiAgfVxcblxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgaW5wdXQuc2VsZWN0LWRyb3Bkb3duIHtcXG4gICAgJjpmb2N1cyB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRpbnB1dC1mb2N1cy1jb2xvcjtcXG4gICAgfVxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYm9yZGVyLWJvdHRvbTogJGlucHV0LWJvcmRlcjtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xcbiAgICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcXG4gICAgbWFyZ2luOiAkaW5wdXQtbWFyZ2luO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgdXNlci1zZWxlY3Q6bm9uZTtcXG4gICAgei1pbmRleDogMTtcXG4gIH1cXG5cXG4gIC5jYXJldCB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBtYXJnaW46IGF1dG8gMDtcXG4gICAgei1pbmRleDogMDtcXG4gICAgZmlsbDogcmdiYSgwLDAsMCwuODcpO1xcbiAgfVxcblxcbiAgJiArIGxhYmVsIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IC0yNnB4O1xcbiAgICBmb250LXNpemU6ICRsYWJlbC1mb250LXNpemU7XFxuICB9XFxufVxcblxcbi8vIERpc2FibGVkIHN0eWxlc1xcbnNlbGVjdDpkaXNhYmxlZCB7XFxuICBjb2xvcjogJGlucHV0LWRpc2FibGVkLWNvbG9yO1xcbn1cXG5cXG4uc2VsZWN0LXdyYXBwZXIuZGlzYWJsZWQge1xcbiAgKyBsYWJlbCB7XFxuICAgIGNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtY29sb3I7XFxuICB9XFxuICAuY2FyZXQge1xcbiAgICBmaWxsOiAkaW5wdXQtZGlzYWJsZWQtY29sb3I7XFxuICB9XFxufVxcblxcbi5zZWxlY3Qtd3JhcHBlciBpbnB1dC5zZWxlY3QtZHJvcGRvd246ZGlzYWJsZWQge1xcbiAgY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1jb2xvcjtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG5cXG4uc2VsZWN0LXdyYXBwZXIgaSB7XFxuICBjb2xvcjogJHNlbGVjdC1kaXNhYmxlZC1jb2xvcjtcXG59XFxuXFxuLnNlbGVjdC1kcm9wZG93biBsaS5kaXNhYmxlZCxcXG4uc2VsZWN0LWRyb3Bkb3duIGxpLmRpc2FibGVkID4gc3BhbixcXG4uc2VsZWN0LWRyb3Bkb3duIGxpLm9wdGdyb3VwIHtcXG4gIGNvbG9yOiAkc2VsZWN0LWRpc2FibGVkLWNvbG9yO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcblxcbmJvZHkua2V5Ym9hcmQtZm9jdXNlZCB7XFxuICAuc2VsZWN0LWRyb3Bkb3duLmRyb3Bkb3duLWNvbnRlbnQgbGk6Zm9jdXMge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LW9wdGlvbi1mb2N1cztcXG4gIH1cXG59XFxuXFxuLnNlbGVjdC1kcm9wZG93bi5kcm9wZG93bi1jb250ZW50IHtcXG4gIGxpIHtcXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1vcHRpb24taG92ZXI7XFxuICAgIH1cXG5cXG4gICAgJi5zZWxlY3RlZCB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQ7XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuLy8gUHJlZml4IEljb25zXFxuLnByZWZpeCB+IC5zZWxlY3Qtd3JhcHBlciB7XFxuICBtYXJnaW4tbGVmdDogM3JlbTtcXG4gIHdpZHRoOiA5MiU7XFxuICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XFxufVxcblxcbi5wcmVmaXggfiBsYWJlbCB7IG1hcmdpbi1sZWZ0OiAzcmVtOyB9XFxuXFxuLy8gSWNvbnNcXG4uc2VsZWN0LWRyb3Bkb3duIGxpIHtcXG4gIGltZyB7XFxuICAgIC8vIGhlaWdodDogJGRyb3Bkb3duLWl0ZW0taGVpZ2h0IC0gMTA7XFxuICAgIC8vIHdpZHRoOiAkZHJvcGRvd24taXRlbS1oZWlnaHQgLSAxMDtcXG4gICAgbWFyZ2luOiA1cHggMTVweDtcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbiAgfVxcbn1cXG5cXG4vLyBPcHRncm91cCBzdHlsZXNcXG4uc2VsZWN0LWRyb3Bkb3duIGxpLm9wdGdyb3VwIHtcXG4gIC8vIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZHJvcGRvd24taG92ZXItYmctY29sb3I7XFxuXFxuICAmLnNlbGVjdGVkID4gc3BhbiB7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC43KTtcXG4gIH1cXG5cXG4gICYgPiBzcGFuIHtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjQpO1xcbiAgfVxcblxcbiAgJiB+IGxpLm9wdGdyb3VwLW9wdGlvbiB7XFxuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcXG4gIH1cXG59XFxuXCIsXCIvKiBGaWxlIElucHV0XFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cXG5cXG4uZmlsZS1maWVsZCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFxuICAuZmlsZS1wYXRoLXdyYXBwZXIge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XFxuICB9XFxuXFxuICBpbnB1dC5maWxlLXBhdGggeyB3aWR0aDogMTAwJTsgfVxcblxcbiAgLmJ0biB7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XFxuICAgIGxpbmUtaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xcbiAgfVxcblxcbiAgc3BhbiB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gIH1cXG5cXG4gIGlucHV0W3R5cGU9ZmlsZV0ge1xcblxcbiAgICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgd2Via2l0IGJ1dHRvblxcbiAgICAmOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XFxuICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgfVxcblxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgZm9udC1zaXplOiAyMHB4O1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcXG4gIH1cXG59XFxuXCIsXCIvKiBSYW5nZVxcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXFxuXFxuLnJhbmdlLWZpZWxkIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV0sXFxuaW5wdXRbdHlwZT1yYW5nZV0gKyAudGh1bWIge1xcbiAgLy8gQGV4dGVuZCAubm8tc2VsZWN0O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG5pbnB1dFt0eXBlPXJhbmdlXSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIG91dGxpbmU6IG5vbmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1hcmdpbjogMTVweCAwO1xcbiAgcGFkZGluZzogMDtcXG5cXG4gICY6Zm9jdXMge1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgfVxcbn1cXG5cXG5pbnB1dFt0eXBlPXJhbmdlXSArIC50aHVtYiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDEwcHg7XFxuICBsZWZ0OiAwO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgaGVpZ2h0OiAwO1xcbiAgd2lkdGg6IDA7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmFkaW8tZmlsbC1jb2xvcjtcXG4gIG1hcmdpbi1sZWZ0OiA3cHg7XFxuXFxuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcXG5cXG4gIC52YWx1ZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aWR0aDogMzBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICBjb2xvcjogJHJhZGlvLWZpbGwtY29sb3I7XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xcbiAgfVxcblxcbiAgJi5hY3RpdmUge1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgNTAlIDUwJSAwO1xcblxcbiAgICAudmFsdWUge1xcbiAgICAgIGNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcXG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcXG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XFxuICAgICAgZm9udC1zaXplOiAxMHB4O1xcbiAgICB9XFxuICB9XFxufVxcblxcbi8vIFNoYXJlZFxcbkBtaXhpbiByYW5nZS10cmFjayB7XFxuICBoZWlnaHQ6ICR0cmFjay1oZWlnaHQ7XFxuICBiYWNrZ3JvdW5kOiAjYzJjMGMyO1xcbiAgYm9yZGVyOiBub25lO1xcbn1cXG5cXG5AbWl4aW4gcmFuZ2UtdGh1bWIge1xcbiAgYm9yZGVyOiBub25lO1xcbiAgaGVpZ2h0OiAkcmFuZ2UtaGVpZ2h0O1xcbiAgd2lkdGg6ICRyYW5nZS13aWR0aDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6ICRyYWRpby1maWxsLWNvbG9yO1xcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAuM3M7XFxufVxcblxcbi8vIFdlYktpdFxcbmlucHV0W3R5cGU9cmFuZ2VdIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcXG4gIEBpbmNsdWRlIHJhbmdlLXRyYWNrO1xcbn1cXG5cXG5pbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xcbiAgQGluY2x1ZGUgcmFuZ2UtdGh1bWI7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmFkaW8tZmlsbC1jb2xvcjtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XFxuICBtYXJnaW46IC01cHggMCAwIDA7XFxuXFxufVxcblxcbi5rZXlib2FyZC1mb2N1c2VkIGlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzOm5vdCguYWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKCRyYWRpby1maWxsLWNvbG9yLCAuMjYpO1xcbn1cXG5cXG4vLyBGaXJlRm94XFxuaW5wdXRbdHlwZT1yYW5nZV0ge1xcbiAgLyogZml4IGZvciBGRiB1bmFibGUgdG8gYXBwbHkgZm9jdXMgc3R5bGUgYnVnICAqL1xcbiAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XFxuXFxuICAvKnJlcXVpcmVkIGZvciBwcm9wZXIgdHJhY2sgc2l6aW5nIGluIEZGKi9cXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdHJhY2sge1xcbiAgQGluY2x1ZGUgcmFuZ2UtdHJhY2s7XFxufVxcblxcbmlucHV0W3R5cGU9cmFuZ2VdOjotbW96LWZvY3VzLWlubmVyIHtcXG4gIGJvcmRlcjogMDtcXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdGh1bWIge1xcbiAgQGluY2x1ZGUgcmFuZ2UtdGh1bWI7XFxuICBtYXJnaW4tdG9wOiAtNXB4O1xcbn1cXG5cXG4vLyBoaWRlIHRoZSBvdXRsaW5lIGJlaGluZCB0aGUgYm9yZGVyXFxuaW5wdXRbdHlwZT1yYW5nZV06LW1vei1mb2N1c3Jpbmcge1xcbiAgb3V0bGluZTogMXB4IHNvbGlkICNmZmY7XFxuICBvdXRsaW5lLW9mZnNldDogLTFweDtcXG59XFxuXFxuLmtleWJvYXJkLWZvY3VzZWQgaW5wdXRbdHlwZT1yYW5nZV06Zm9jdXM6bm90KC5hY3RpdmUpOjotbW96LXJhbmdlLXRodW1iIHtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgkcmFkaW8tZmlsbC1jb2xvciwgLjI2KTtcXG59XFxuXFxuLy8gSUUgMTArXFxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10cmFjayB7XFxuICBoZWlnaHQ6ICR0cmFjay1oZWlnaHQ7XFxuXFxuICAvLyByZW1vdmUgYmcgY29sb3VyIGZyb20gdGhlIHRyYWNrLCB3ZSdsbCB1c2UgbXMtZmlsbC1sb3dlciBhbmQgbXMtZmlsbC11cHBlciBpbnN0ZWFkXFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG5cXG4gIC8vIGxlYXZlIHJvb20gZm9yIHRoZSBsYXJnZXIgdGh1bWIgdG8gb3ZlcmZsb3cgd2l0aCBhIHRyYW5zcGFyZW50IGJvcmRlciAqL1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci13aWR0aDogNnB4IDA7XFxuXFxuICAvKnJlbW92ZSBkZWZhdWx0IHRpY2sgbWFya3MqL1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG5pbnB1dFt0eXBlPXJhbmdlXTo6LW1zLWZpbGwtbG93ZXIge1xcbiAgYmFja2dyb3VuZDogIzc3NztcXG59XFxuXFxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLXVwcGVyIHtcXG4gIGJhY2tncm91bmQ6ICNkZGQ7XFxufVxcblxcbmlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdGh1bWIge1xcbiAgQGluY2x1ZGUgcmFuZ2UtdGh1bWI7XFxufVxcblxcbi5rZXlib2FyZC1mb2N1c2VkIGlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzOm5vdCguYWN0aXZlKTo6LW1zLXRodW1iIHtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgkcmFkaW8tZmlsbC1jb2xvciwgLjI2KTtcXG59XFxuXCIsXCIucGFyYWxsYXgge1xcblxcbiAgLyogU2V0IGEgc3BlY2lmaWMgaGVpZ2h0ICovXFxuICBtaW4taGVpZ2h0OiA1MDBweDtcXG5cXG4gIC8qIENyZWF0ZSB0aGUgcGFyYWxsYXggc2Nyb2xsaW5nIGVmZmVjdCAqL1xcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xcbn1cIixcIiRjdWJlLWhlaWdodDoyMDBweDtcXG4qIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxcblxcbmJvZHkgeyBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgfVxcblxcbi5zY2VuZSB7XFxuICB3aWR0aDogJGN1YmUtaGVpZ2h0O1xcbiAgaGVpZ2h0OiAkY3ViZS1oZWlnaHQ7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDO1xcbiAgbWFyZ2luOiA4MHB4O1xcbiAgcGVyc3BlY3RpdmU6IDQwMHB4O1xcbn1cXG5cXG4uY3ViZSB7XFxuICB3aWR0aDogJGN1YmUtaGVpZ2h0O1xcbiAgaGVpZ2h0OiAkY3ViZS1oZWlnaHQ7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC00MDBweCk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXM7XFxufVxcblxcbi5jdWJlLnNob3ctZnJvbnQgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0xMHB4KSByb3RhdGVZKCAgIDBkZWcpOyB9XFxuLmN1YmUuc2hvdy1yaWdodCAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTEwcHgpIHJvdGF0ZVkoIC05MGRlZyk7IH1cXG4uY3ViZS5zaG93LWJhY2sgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWigtMTBweCkgcm90YXRlWSgtMTgwZGVnKTsgfVxcbi5jdWJlLnNob3ctbGVmdCAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0xMHB4KSByb3RhdGVZKCAgOTBkZWcpOyB9XFxuLmN1YmUuc2hvdy10b3AgICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTEwcHgpIHJvdGF0ZVgoIC05MGRlZyk7IH1cXG4uY3ViZS5zaG93LWJvdHRvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWigtMTBweCkgcm90YXRlWCggIDkwZGVnKTsgfVxcblxcbi5jdWJlX19mYWNlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiAkY3ViZS1oZWlnaHQ7XFxuICBoZWlnaHQ6ICRjdWJlLWhlaWdodDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xcbiAgbGluZS1oZWlnaHQ6ICRjdWJlLWhlaWdodDtcXG4gIGZvbnQtc2l6ZTogNDBweDtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgY29sb3I6IHdoaXRlO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cXG4uY3ViZV9fZmFjZS0tZnJvbnQgIHsgYmFja2dyb3VuZDogaHNsYSggIDAsIDEwMCUsIDUwJSwgMC43KTsgfVxcbi5jdWJlX19mYWNlLS1yaWdodCAgeyBiYWNrZ3JvdW5kOiBoc2xhKCA2MCwgMTAwJSwgNTAlLCAwLjcpOyB9XFxuLmN1YmVfX2ZhY2UtLWJhY2sgICB7IGJhY2tncm91bmQ6IGhzbGEoMTIwLCAxMDAlLCA1MCUsIDAuNyk7IH1cXG4uY3ViZV9fZmFjZS0tbGVmdCAgIHsgYmFja2dyb3VuZDogaHNsYSgxODAsIDEwMCUsIDUwJSwgMC43KTsgfVxcbi5jdWJlX19mYWNlLS10b3AgICAgeyBiYWNrZ3JvdW5kOiBoc2xhKDI0MCwgMTAwJSwgNTAlLCAwLjcpOyB9XFxuLmN1YmVfX2ZhY2UtLWJvdHRvbSB7IGJhY2tncm91bmQ6IGhzbGEoMzAwLCAxMDAlLCA1MCUsIDAuNyk7IH1cXG5cXG4uY3ViZV9fZmFjZS0tZnJvbnQgIHsgdHJhbnNmb3JtOiByb3RhdGVZKCAgMGRlZykgdHJhbnNsYXRlWigxMDBweCk7IH1cXG4uY3ViZV9fZmFjZS0tcmlnaHQgIHsgdHJhbnNmb3JtOiByb3RhdGVZKCA5MGRlZykgdHJhbnNsYXRlWigxMDBweCk7IH1cXG4uY3ViZV9fZmFjZS0tYmFjayAgIHsgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZykgdHJhbnNsYXRlWigxMDBweCk7IH1cXG4uY3ViZV9fZmFjZS0tbGVmdCAgIHsgdHJhbnNmb3JtOiByb3RhdGVZKC05MGRlZykgdHJhbnNsYXRlWigxMDBweCk7IH1cXG4uY3ViZV9fZmFjZS0tdG9wICAgIHsgdHJhbnNmb3JtOiByb3RhdGVYKCA5MGRlZykgdHJhbnNsYXRlWigxMDBweCk7IH1cXG4uY3ViZV9fZmFjZS0tYm90dG9tIHsgdHJhbnNmb3JtOiByb3RhdGVYKC05MGRlZykgdHJhbnNsYXRlWigxMDBweCk7IH1cXG5cXG5sYWJlbCB7IG1hcmdpbi1yaWdodDogMTBweDsgfVwiLFwiQHVzZSBcXFwic2FzczptYXRoXFxcIjtcXG4uY29udGFpbmVyIHtcXG4gIG1hcmdpbjogMCBhdXRvO1xcbiAgbWF4LXdpZHRoOiAxMjgwcHg7XFxuICB3aWR0aDogOTAlO1xcbn1cXG5AbWVkaWEgI3skbWVkaXVtLWFuZC11cH0ge1xcbiAgLmNvbnRhaW5lciB7XFxuICAgIHdpZHRoOiA4NSU7XFxuICB9XFxufVxcbkBtZWRpYSAjeyRsYXJnZS1hbmQtdXB9IHtcXG4gIC5jb250YWluZXIge1xcbiAgICB3aWR0aDogNzAlO1xcbiAgfVxcbn1cXG4uY29sIC5yb3cge1xcbiAgbWFyZ2luLWxlZnQ6IG1hdGguZGl2KC0xICogJGd1dHRlci13aWR0aCAsIDIpO1xcbiAgbWFyZ2luLXJpZ2h0OiBtYXRoLmRpdigtMSAqICRndXR0ZXItd2lkdGggLCAyKTtcXG59XFxuXFxuLnNlY3Rpb24ge1xcbiAgcGFkZGluZy10b3A6IDFyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcXG5cXG4gICYubm8tcGFkIHtcXG4gICAgcGFkZGluZzogMDtcXG4gIH1cXG4gICYubm8tcGFkLWJvdCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwO1xcbiAgfVxcbiAgJi5uby1wYWQtdG9wIHtcXG4gICAgcGFkZGluZy10b3A6IDA7XFxuICB9XFxufVxcblxcblxcbi8vIE1peGlucyB0byBlbGltaW5hdGUgY29kZSByZXBpdGl0aW9uXFxuQG1peGluIHJlc2V0LW9mZnNldCB7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIGxlZnQ6IGF1dG87XFxuICByaWdodDogYXV0bztcXG59XFxuQG1peGluIGdyaWQtY2xhc3Nlcygkc2l6ZSwgJGksICRwZXJjKSB7XFxuICAmLm9mZnNldC0jeyRzaXplfSN7JGl9IHtcXG4gICAgbWFyZ2luLWxlZnQ6ICRwZXJjO1xcbiAgfVxcbiAgJi5wdWxsLSN7JHNpemV9I3skaX0ge1xcbiAgICByaWdodDogJHBlcmM7XFxuICB9XFxuICAmLnB1c2gtI3skc2l6ZX0jeyRpfSB7XFxuICAgIGxlZnQ6ICRwZXJjO1xcbiAgfVxcbn1cXG5cXG5cXG4ucm93IHtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG5cXG4gIC8vIENsZWFyIGZsb2F0aW5nIGNoaWxkcmVuXFxuICAmOmFmdGVyIHtcXG4gICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgICBjbGVhcjogYm90aDtcXG4gIH1cXG5cXG4gIC5jb2wge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgcGFkZGluZzogMCBtYXRoLmRpdigkZ3V0dGVyLXdpZHRoICwgMik7XFxuICAgIG1pbi1oZWlnaHQ6IDFweDtcXG5cXG4gICAgJltjbGFzcyo9XFxcInB1c2gtXFxcIl0sXFxuICAgICZbY2xhc3MqPVxcXCJwdWxsLVxcXCJdIHtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIH1cXG5cXG4gICAgJGk6IDE7XFxuICAgIEB3aGlsZSAkaSA8PSAkbnVtLWNvbHMge1xcbiAgICAgICRwZXJjOiB1bnF1b3RlKG1hdGguZGl2KDEwMCAsIG1hdGguZGl2KCRudW0tY29scyAsICRpKSkgKyBcXFwiJVxcXCIpO1xcbiAgICAgICYucyN7JGl9IHtcXG4gICAgICAgIHdpZHRoOiAkcGVyYztcXG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LW9mZnNldDtcXG4gICAgICB9XFxuICAgICAgJGk6ICRpICsgMTtcXG4gICAgfVxcblxcbiAgICAkaTogMTtcXG4gICAgQHdoaWxlICRpIDw9ICRudW0tY29scyB7XFxuICAgICAgJHBlcmM6IHVucXVvdGUobWF0aC5kaXYoMTAwICwgbWF0aC5kaXYoJG51bS1jb2xzICwgJGkpKSArIFxcXCIlXFxcIik7XFxuICAgICAgQGluY2x1ZGUgZ3JpZC1jbGFzc2VzKFxcXCJzXFxcIiwgJGksICRwZXJjKTtcXG4gICAgICAkaTogJGkgKyAxO1xcbiAgICB9XFxuXFxuICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLXVwfSB7XFxuXFxuICAgICAgJGk6IDE7XFxuICAgICAgQHdoaWxlICRpIDw9ICRudW0tY29scyB7XFxuICAgICAgICAkcGVyYzogdW5xdW90ZShtYXRoLmRpdigxMDAgLCBtYXRoLmRpdigkbnVtLWNvbHMgLCAkaSkpICsgXFxcIiVcXFwiKTtcXG4gICAgICAgICYubSN7JGl9IHtcXG4gICAgICAgICAgd2lkdGg6ICRwZXJjO1xcbiAgICAgICAgICBAaW5jbHVkZSByZXNldC1vZmZzZXQ7XFxuICAgICAgICB9XFxuICAgICAgICAkaTogJGkgKyAxXFxuICAgICAgfVxcblxcbiAgICAgICRpOiAxO1xcbiAgICAgIEB3aGlsZSAkaSA8PSAkbnVtLWNvbHMge1xcbiAgICAgICAgJHBlcmM6IHVucXVvdGUobWF0aC5kaXYoMTAwICwgbWF0aC5kaXYoJG51bS1jb2xzICwgJGkpKSArIFxcXCIlXFxcIik7XFxuICAgICAgICBAaW5jbHVkZSBncmlkLWNsYXNzZXMoXFxcIm1cXFwiLCAkaSwgJHBlcmMpO1xcbiAgICAgICAgJGk6ICRpICsgMTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgQG1lZGlhICN7JGxhcmdlLWFuZC11cH0ge1xcblxcbiAgICAgICRpOiAxO1xcbiAgICAgIEB3aGlsZSAkaSA8PSAkbnVtLWNvbHMge1xcbiAgICAgICAgJHBlcmM6IHVucXVvdGUobWF0aC5kaXYoMTAwICwgbWF0aC5kaXYoJG51bS1jb2xzICwgJGkpKSArIFxcXCIlXFxcIik7XFxuICAgICAgICAmLmwjeyRpfSB7XFxuICAgICAgICAgIHdpZHRoOiAkcGVyYztcXG4gICAgICAgICAgQGluY2x1ZGUgcmVzZXQtb2Zmc2V0O1xcbiAgICAgICAgfVxcbiAgICAgICAgJGk6ICRpICsgMTtcXG4gICAgICB9XFxuXFxuICAgICAgJGk6IDE7XFxuICAgICAgQHdoaWxlICRpIDw9ICRudW0tY29scyB7XFxuICAgICAgICAkcGVyYzogdW5xdW90ZShtYXRoLmRpdigxMDAgLCBtYXRoLmRpdigkbnVtLWNvbHMgLCAkaSkpICsgXFxcIiVcXFwiKTtcXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY2xhc3NlcyhcXFwibFxcXCIsICRpLCAkcGVyYyk7XFxuICAgICAgICAkaTogJGkgKyAxO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICBAbWVkaWEgI3skZXh0cmEtbGFyZ2UtYW5kLXVwfSB7XFxuXFxuICAgICAgJGk6IDE7XFxuICAgICAgQHdoaWxlICRpIDw9ICRudW0tY29scyB7XFxuICAgICAgICAkcGVyYzogdW5xdW90ZShtYXRoLmRpdigxMDAgLCBtYXRoLmRpdigkbnVtLWNvbHMgLCAkaSkpICsgXFxcIiVcXFwiKTtcXG4gICAgICAgICYueGwjeyRpfSB7XFxuICAgICAgICAgIHdpZHRoOiAkcGVyYztcXG4gICAgICAgICAgQGluY2x1ZGUgcmVzZXQtb2Zmc2V0O1xcbiAgICAgICAgfVxcbiAgICAgICAgJGk6ICRpICsgMTtcXG4gICAgICB9XFxuXFxuICAgICAgJGk6IDE7XFxuICAgICAgQHdoaWxlICRpIDw9ICRudW0tY29scyB7XFxuICAgICAgICAkcGVyYzogdW5xdW90ZShtYXRoLmRpdigxMDAgLCBtYXRoLmRpdigkbnVtLWNvbHMgLCAkaSkpICsgXFxcIiVcXFwiKTtcXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY2xhc3NlcyhcXFwieGxcXFwiLCAkaSwgJHBlcmMpO1xcbiAgICAgICAgJGk6ICRpICsgMTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG59XFxuXCIsXCJAdXNlIFxcXCJzYXNzOm1hdGhcXFwiO1xcbnN2Z3tcXG4gIC8vZmlsbDpyZWQ7XFxufVxcbi5zaWRlbmF2IHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHdpZHRoOiAkc2lkZW5hdi13aWR0aDtcXG4gIGxlZnQ6IDA7XFxuICB0b3A6IDA7XFxuICBtYXJnaW46IDA7XFxuICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBoZWlnaHQ6IGNhbGMoMTAwJSArIDYwcHgpO1xcbiAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSk7IC8vVGVtcG9yYXJ5IEZpcmVmb3ggRml4XFxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICRzaWRlbmF2LWJnLWNvbG9yO1xcbiAgei1pbmRleDogOTk5O1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzO1xcblxcbiAgLy9AZXh0ZW5kIC5zaGFkb3ctMTtcXG5cXG4gIC8vIFJpZ2h0IEFsaWduXFxuICAmLnJpZ2h0LWFsaWduZWQge1xcbiAgICByaWdodDogMDtcXG4gICAgLy90cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTA1JSk7XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gIH1cXG5cXG4gIC5jb2xsYXBzaWJsZSB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG5cXG4gIGxpIHtcXG4gICAgZmxvYXQ6IG5vbmU7XFxuICAgICAvL2xpbmUtaGVpZ2h0OiAkc2lkZW5hdi1saW5lLWhlaWdodDtcXG4gICAgLy8gbWFyZ2luOiAxNXB4IDA7XFxuICAgLy8gaGVpZ2h0OiA0NXB4O1xcbiAgICAuaWNvblNpZGVMaW5rIHtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBcXG4gICAgICAgIHN2ZyB7XFxuICAgICAgICAgICAvL3N0cm9rZTpyZ2JhKDAsIDAsIDAsIDAuMik7XFxuICAgICAgICAgIC8vIGZpbGw6IHdoaXRlO1xcbiAgICAgICAgICBzdHJva2U6cmdiYSgwLCAwLCAwLCAwLjIpO1xcbiAgICAgICAgICAgd2lkdGg6IDMwcHg7XFxuICAgICAgICB9XFxuICBcXG4gICAgfVxcbiAgICAmLmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcXG4gICAgICBzdmcge1xcbiAgICAgICAgc3Ryb2tlOiB3aGl0ZSFpbXBvcnRhbnQ7XFxuICAgICAgICAvL2ZpbGw6IHdoaXRlIWltcG9ydGFudDtcXG4gICAgICAgIHdpZHRoOiAzMHB4O1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAmLmxhc3Qge1xcbiAgICAgIHBvc2l0aW9uOiBzdGlja3k7XFxuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyRzaWRlbmF2LWl0ZW0taGVpZ2h0fSAtIDM1cHgpO1xcbiAgICB9XFxuICB9XFxuXFxuICBsaSA+IGEge1xcbiAgICBjb2xvcjogJHNpZGVuYXYtZm9udC1jb2xvcjtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZm9udC1zaXplOiAkc2lkZW5hdi1mb250LXNpemU7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgIGhlaWdodDogJHNpZGVuYXYtaXRlbS1oZWlnaHQ7XFxuICAgIGxpbmUtaGVpZ2h0OiAkc2lkZW5hdi1saW5lLWhlaWdodDtcXG4gICAgcGFkZGluZzogMCAoJHNpZGVuYXYtcGFkZGluZyAqIDIpO1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xcbiAgICB9XFxuXFxuICAgICYuYnRuLFxcbiAgICAmLmJ0bi1sYXJnZSxcXG4gICAgJi5idG4tZmxhdCxcXG4gICAgJi5idG4tZmxvYXRpbmcge1xcbiAgICAgIG1hcmdpbjogMTBweCAxNXB4O1xcbiAgICB9XFxuXFxuICAgICYuYnRuLFxcbiAgICAmLmJ0bi1sYXJnZSxcXG4gICAgJi5idG4tZmxvYXRpbmcge1xcbiAgICAgIGNvbG9yOiAkYnV0dG9uLXJhaXNlZC1jb2xvcjtcXG4gICAgfVxcblxcbiAgICAmLmJ0bi1mbGF0IHtcXG4gICAgICBjb2xvcjogJGJ1dHRvbi1mbGF0LWNvbG9yO1xcbiAgICB9XFxuXFxuICAgICYuYnRuOmhvdmVyLFxcbiAgICAmLmJ0bi1sYXJnZTpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYnV0dG9uLXJhaXNlZC1iYWNrZ3JvdW5kLCA1JSk7XFxuICAgIH1cXG5cXG4gICAgJi5idG4tZmxvYXRpbmc6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tcmFpc2VkLWJhY2tncm91bmQ7XFxuICAgIH1cXG5cXG4gICAgJiA+IGksXFxuICAgICYgPiBbY2xhc3NePVxcXCJtZGktXFxcIl0sXFxuICAgIGxpID4gYSA+IFtjbGFzcyo9XFxcIm1kaS1cXFwiXSxcXG4gICAgJiA+IGkucy1pY29uIHtcXG4gICAgICBmbG9hdDogbGVmdDtcXG4gICAgICBoZWlnaHQ6ICRzaWRlbmF2LWl0ZW0taGVpZ2h0O1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAkc2lkZW5hdi1saW5lLWhlaWdodDtcXG4gICAgICBtYXJnaW46IDAgKCRzaWRlbmF2LXBhZGRpbmcgKiAyKSAwIDA7XFxuICAgICAgd2lkdGg6IG1hdGguZGl2KCRzaWRlbmF2LWl0ZW0taGVpZ2h0LCAyKTtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmRpdmlkZXIge1xcbiAgICBtYXJnaW46IG1hdGguZGl2KCRzaWRlbmF2LXBhZGRpbmcsIDIpIDAgMCAwO1xcbiAgfVxcblxcbiAgLnN1YmhlYWRlciB7XFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICB9XFxuXFxuICAgIGN1cnNvcjogaW5pdGlhbDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xcbiAgICBmb250LXNpemU6ICRzaWRlbmF2LWZvbnQtc2l6ZTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6ICRzaWRlbmF2LWxpbmUtaGVpZ2h0O1xcbiAgfVxcblxcbiAgLnVzZXItdmlldyB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgcGFkZGluZzogKCRzaWRlbmF2LXBhZGRpbmcgKiAyKSAoJHNpZGVuYXYtcGFkZGluZyAqIDIpIDA7XFxuICAgIG1hcmdpbi1ib3R0b206IG1hdGguZGl2KCRzaWRlbmF2LXBhZGRpbmcsIDIpO1xcblxcbiAgICAmID4gYSB7XFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICB9XFxuXFxuICAgICAgaGVpZ2h0OiBhdXRvO1xcbiAgICAgIHBhZGRpbmc6IDA7XFxuICAgIH1cXG5cXG4gICAgLmJhY2tncm91bmQge1xcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIHRvcDogMDtcXG4gICAgICByaWdodDogMDtcXG4gICAgICBib3R0b206IDA7XFxuICAgICAgbGVmdDogMDtcXG4gICAgICB6LWluZGV4OiAtMTtcXG4gICAgfVxcblxcbiAgICAuY2lyY2xlLFxcbiAgICAubmFtZSxcXG4gICAgLmVtYWlsIHtcXG4gICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgfVxcblxcbiAgICAuY2lyY2xlIHtcXG4gICAgICBoZWlnaHQ6IDY0cHg7XFxuICAgICAgd2lkdGg6IDY0cHg7XFxuICAgIH1cXG5cXG4gICAgLm5hbWUsXFxuICAgIC5lbWFpbCB7XFxuICAgICAgZm9udC1zaXplOiAkc2lkZW5hdi1mb250LXNpemU7XFxuICAgICAgbGluZS1oZWlnaHQ6IG1hdGguZGl2KCRzaWRlbmF2LWxpbmUtaGVpZ2h0LCAyKTtcXG4gICAgfVxcblxcbiAgICAubmFtZSB7XFxuICAgICAgbWFyZ2luLXRvcDogMTZweDtcXG4gICAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICB9XFxuXFxuICAgIC5lbWFpbCB7XFxuICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7XFxuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgfVxcbiAgfVxcbn1cXG5cXG4vLyBUb3VjaCBpbnRlcmFjdGlvblxcbi5kcmFnLXRhcmdldCB7XFxuICAvLyBSaWdodCBBbGlnblxcbiAgJi5yaWdodC1hbGlnbmVkIHtcXG4gICAgcmlnaHQ6IDA7XFxuICB9XFxuXFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTBweDtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIHotaW5kZXg6IDk5ODtcXG59XFxuXFxuLy8gRml4ZWQgU2lkZW5hdiBzaG93blxcbi5zaWRlbmF2LnNpZGVuYXYtZml4ZWQge1xcbiAgLy8gUmlnaHQgQWxpZ25cXG4gICYucmlnaHQtYWxpZ25lZCB7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBsZWZ0OiBhdXRvO1xcbiAgfVxcblxcbiAgbGVmdDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XFxuXFxuLy8gRml4ZWQgU2lkZW5hdiBoaWRlIG9uIHNtYWxsZXJcXG5AbWVkaWEgI3skbWVkaXVtLWFuZC1kb3dufSB7XFxuICAuc2lkZW5hdiB7XFxuICAgICYuc2lkZW5hdi1maXhlZCB7XFxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDUlKTtcXG5cXG4gICAgICAmLnJpZ2h0LWFsaWduZWQge1xcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNSUpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICA+IGEge1xcbiAgICAgIHBhZGRpbmc6IDAgJHNpZGVuYXYtcGFkZGluZztcXG4gICAgfVxcblxcbiAgICAudXNlci12aWV3IHtcXG4gICAgICBwYWRkaW5nOiAkc2lkZW5hdi1wYWRkaW5nICRzaWRlbmF2LXBhZGRpbmcgMDtcXG4gICAgfVxcbiAgfVxcbn1cXG5cXG4uc2lkZW5hdiAuY29sbGFwc2libGUtYm9keSA+IHVsOm5vdCguY29sbGFwc2libGUpID4gbGkuYWN0aXZlLFxcbi5zaWRlbmF2LnNpZGVuYXYtZml4ZWQgLmNvbGxhcHNpYmxlLWJvZHkgPiB1bDpub3QoLmNvbGxhcHNpYmxlKSA+IGxpLmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcXG5cXG4gIGEge1xcbiAgICBjb2xvcjogJHNpZGVuYXYtYmctY29sb3I7XFxuICB9XFxufVxcblxcbi5zaWRlbmF2IC5jb2xsYXBzaWJsZS1ib2R5IHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbi5zaWRlbmF2LW92ZXJsYXkge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgb3BhY2l0eTogMDtcXG4gIGhlaWdodDogMTIwdmg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XFxuICB6LWluZGV4OiA5OTc7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5cXG5cXG5cXG5cXG4gIC53aXRoLXNpZGUtbmF2LW9wZW57XFxuICAgIHBhZGRpbmctbGVmdDogMzAwcHg7XFxuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMXM7XFxuICB9XFxuXCIsXCIvLyBzaGFyZWQgc3R5bGVzXFxuXFxuLmJ0bixcXG4uYnRuLWZsYXQge1xcbiAgYm9yZGVyOiAkYnV0dG9uLWJvcmRlcjtcXG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgaGVpZ2h0OiAkYnV0dG9uLWhlaWdodDtcXG4gIGxpbmUtaGVpZ2h0OiAkYnV0dG9uLWhlaWdodDtcXG4gIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gR2V0cyByaWQgb2YgdGFwIGFjdGl2ZSBzdGF0ZVxcbn1cXG5cXG4vLyBEaXNhYmxlZCBzaGFyZWQgc3R5bGVcXG4uYnRuLmRpc2FibGVkLFxcbi5idG4tZmxvYXRpbmcuZGlzYWJsZWQsXFxuLmJ0bi1sYXJnZS5kaXNhYmxlZCxcXG4uYnRuLXNtYWxsLmRpc2FibGVkLFxcbi5idG4tZmxhdC5kaXNhYmxlZCxcXG4uYnRuOmRpc2FibGVkLFxcbi5idG4tZmxvYXRpbmc6ZGlzYWJsZWQsXFxuLmJ0bi1sYXJnZTpkaXNhYmxlZCxcXG4uYnRuLXNtYWxsOmRpc2FibGVkLFxcbi5idG4tZmxhdDpkaXNhYmxlZCxcXG4uYnRuW2Rpc2FibGVkXSxcXG4uYnRuLWZsb2F0aW5nW2Rpc2FibGVkXSxcXG4uYnRuLWxhcmdlW2Rpc2FibGVkXSxcXG4uYnRuLXNtYWxsW2Rpc2FibGVkXSxcXG4uYnRuLWZsYXRbZGlzYWJsZWRdIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XFxuICBib3gtc2hhZG93OiBub25lO1xcbiAgY29sb3I6ICRidXR0b24tZGlzYWJsZWQtY29sb3IgIWltcG9ydGFudDtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gICY6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWRpc2FibGVkLWJhY2tncm91bmQgIWltcG9ydGFudDtcXG4gICAgY29sb3I6ICRidXR0b24tZGlzYWJsZWQtY29sb3IgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuXFxuLy8gU2hhcmVkIGljb24gc3R5bGVzXFxuLmJ0bixcXG4uYnRuLWZsb2F0aW5nLFxcbi5idG4tbGFyZ2UsXFxuLmJ0bi1zbWFsbCxcXG4uYnRuLWZsYXQge1xcbiAgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtc2l6ZTtcXG4gIG91dGxpbmU6IDA7XFxuICBpIHtcXG4gICAgZm9udC1zaXplOiAkYnV0dG9uLWljb24tZm9udC1zaXplO1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gIH1cXG59XFxuXFxuLy8gU2hhcmVkIGZvY3VzIGJ1dHRvbiBzdHlsZVxcbi5idG4sXFxuLmJ0bi1mbG9hdGluZyB7XFxuICAmOmZvY3VzIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRidXR0b24tcmFpc2VkLWJhY2tncm91bmQsIDEwJSk7XFxuICB9XFxufVxcblxcbi8vIFJhaXNlZCBCdXR0b25cXG4uYnRuIHtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIGNvbG9yOiAkYnV0dG9uLXJhaXNlZC1jb2xvcjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tcmFpc2VkLWJhY2tncm91bmQ7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBsZXR0ZXItc3BhY2luZzogLjVweDtcXG4gIEBleHRlbmQgLnNoYWRvdy0xO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1vdXQ7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICAmOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1yYWlzZWQtYmFja2dyb3VuZC1ob3ZlcjtcXG4gICAgQGV4dGVuZCAuc2hhZG93LTEtaGFsZjtcXG4gIH1cXG59XFxuXFxuLy8gRmxvYXRpbmcgYnV0dG9uXFxuLmJ0bi1mbG9hdGluZyB7XFxuICAmOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1mbG9hdGluZy1iYWNrZ3JvdW5kLWhvdmVyO1xcbiAgICBAZXh0ZW5kIC5zaGFkb3ctMS1oYWxmO1xcbiAgfVxcbiAgJjpiZWZvcmUge1xcbiAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgfVxcbiAgJi5idG4tbGFyZ2Uge1xcbiAgICAmLmhhbGZ3YXktZmFiIHtcXG4gICAgICBib3R0b206IGNhbGMoJGJ1dHRvbi1mbG9hdGluZy1sYXJnZS1zaXplIC8gMik7XFxuICAgIH1cXG4gICAgd2lkdGg6ICRidXR0b24tZmxvYXRpbmctbGFyZ2Utc2l6ZTtcXG4gICAgaGVpZ2h0OiAkYnV0dG9uLWZsb2F0aW5nLWxhcmdlLXNpemU7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGkge1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uLWZsb2F0aW5nLWxhcmdlLXNpemU7XFxuICAgIH1cXG4gIH1cXG5cXG4gICYuYnRuLXNtYWxsIHtcXG4gICAgJi5oYWxmd2F5LWZhYiB7XFxuICAgICAgYm90dG9tOiBjYWxjKCRidXR0b24tZmxvYXRpbmctc21hbGwtc2l6ZSAvIDIpO1xcbiAgICB9XFxuICAgIHdpZHRoOiAkYnV0dG9uLWZsb2F0aW5nLXNtYWxsLXNpemU7XFxuICAgIGhlaWdodDogJGJ1dHRvbi1mbG9hdGluZy1zbWFsbC1zaXplO1xcbiAgICBpIHtcXG4gICAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1mbG9hdGluZy1zbWFsbC1zaXplO1xcbiAgICB9XFxuICB9XFxuXFxuICAmLmhhbGZ3YXktZmFiIHtcXG4gICAgJi5sZWZ0IHtcXG4gICAgICByaWdodDogYXV0bztcXG4gICAgICBsZWZ0OiAyNHB4O1xcbiAgICB9XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDI0cHg7XFxuICAgIGJvdHRvbTogY2FsYygkYnV0dG9uLWZsb2F0aW5nLXNpemUgLyAyKTtcXG4gIH1cXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGNvbG9yOiAkYnV0dG9uLWZsb2F0aW5nLWNvbG9yO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHotaW5kZXg6IDE7XFxuICB3aWR0aDogJGJ1dHRvbi1mbG9hdGluZy1zaXplO1xcbiAgaGVpZ2h0OiAkYnV0dG9uLWZsb2F0aW5nLXNpemU7XFxuICBsaW5lLWhlaWdodDogJGJ1dHRvbi1mbG9hdGluZy1zaXplO1xcbiAgcGFkZGluZzogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZmxvYXRpbmctYmFja2dyb3VuZDtcXG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tZmxvYXRpbmctcmFkaXVzO1xcbiAgQGV4dGVuZCAuc2hhZG93LTE7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcztcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBpIHtcXG4gICAgd2lkdGg6IGluaGVyaXQ7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICBjb2xvcjogJGJ1dHRvbi1mbG9hdGluZy1jb2xvcjtcXG4gICAgZm9udC1zaXplOiAkYnV0dG9uLWxhcmdlLWljb24tZm9udC1zaXplO1xcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1mbG9hdGluZy1zaXplO1xcbiAgfVxcbn1cXG5cXG4vLyBidXR0b24gZml4XFxuYnV0dG9uLmJ0bi1mbG9hdGluZyB7XFxuICBib3JkZXI6ICRidXR0b24tYm9yZGVyO1xcbn1cXG5cXG4vLyBGaXhlZCBBY3Rpb24gQnV0dG9uXFxuLmZpeGVkLWFjdGlvbi1idG4ge1xcbiAgJi5hY3RpdmUge1xcbiAgICB1bCB7XFxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLy8gRGlyZWN0aW9uc1xcbiAgJi5kaXJlY3Rpb24tbGVmdCxcXG4gICYuZGlyZWN0aW9uLXJpZ2h0IHtcXG4gICAgcGFkZGluZzogMCAwIDAgMTVweDtcXG4gICAgdWwge1xcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgICAgIHJpZ2h0OiA2NHB4O1xcbiAgICAgIHRvcDogNTAlO1xcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgbGVmdDogYXV0bztcXG4gICAgICAvKndpZHRoIDEwMCUgb25seSBnb2VzIHRvIHdpZHRoIG9mIGJ1dHRvbiBjb250YWluZXIgKi9cXG4gICAgICB3aWR0aDogNTAwcHg7XFxuICAgICAgbGkge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgbWFyZ2luOiA3LjVweCAxNXB4IDAgMDtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG4gICYuZGlyZWN0aW9uLXJpZ2h0IHtcXG4gICAgcGFkZGluZzogMCAxNXB4IDAgMDtcXG4gICAgdWwge1xcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgZGlyZWN0aW9uOiBydGw7XFxuICAgICAgbGVmdDogNjRweDtcXG4gICAgICByaWdodDogYXV0bztcXG4gICAgICBsaSB7XFxuICAgICAgICBtYXJnaW46IDcuNXB4IDAgMCAxNXB4O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcbiAgJi5kaXJlY3Rpb24tYm90dG9tIHtcXG4gICAgcGFkZGluZzogMCAwIDE1cHggMDtcXG4gICAgdWwge1xcbiAgICAgIHRvcDogNjRweDtcXG4gICAgICBib3R0b206IGF1dG87XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxuICAgICAgbGkge1xcbiAgICAgICAgbWFyZ2luOiAxNXB4IDAgMCAwO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcbiAgJi50b29sYmFyIHtcXG4gICAgJi5hY3RpdmUge1xcbiAgICAgICY+YSBpIHtcXG4gICAgICAgIG9wYWNpdHk6IDA7XFxuICAgICAgfVxcbiAgICB9XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGhlaWdodDogJGJ1dHRvbi1mbG9hdGluZy1sYXJnZS1zaXplO1xcbiAgICB1bCB7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgYm90dG9tOiAwO1xcbiAgICAgIHotaW5kZXg6IDE7XFxuICAgICAgbGkge1xcbiAgICAgICAgZmxleDogMTtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XFxuICAgICAgICBhIHtcXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGNvbG9yOiAjZmZmO1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1mbG9hdGluZy1sYXJnZS1zaXplO1xcbiAgICAgICAgICB6LWluZGV4OiAxO1xcbiAgICAgICAgICBpIHtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgcmlnaHQ6IDIzcHg7XFxuICBib3R0b206IDIzcHg7XFxuICBwYWRkaW5nLXRvcDogMTVweDtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICB6LWluZGV4OiA5OTc7XFxuICB1bCB7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiA2NHB4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgbGkge1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XFxuICAgIH1cXG4gICAgYS5idG4tZmxvYXRpbmcge1xcbiAgICAgIG9wYWNpdHk6IDA7XFxuICAgIH1cXG4gIH1cXG4gIC5mYWItYmFja2Ryb3Age1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgei1pbmRleDogLTE7XFxuICAgIHdpZHRoOiAkYnV0dG9uLWZsb2F0aW5nLXNpemU7XFxuICAgIGhlaWdodDogJGJ1dHRvbi1mbG9hdGluZy1zaXplO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWZsb2F0aW5nLWJhY2tncm91bmQ7XFxuICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b24tZmxvYXRpbmctcmFkaXVzO1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgfVxcbn1cXG5cXG4vLyBGbGF0IGJ1dHRvblxcbi5idG4tZmxhdCB7XFxuICBib3gtc2hhZG93OiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBjb2xvcjogJGJ1dHRvbi1mbGF0LWNvbG9yO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnM7XFxuICAmOmZvY3VzLFxcbiAgJjpob3ZlciB7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICB9XFxuICAmOmZvY3VzIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMSk7XFxuICB9XFxuICAmLmRpc2FibGVkLFxcbiAgJi5idG4tZmxhdFtkaXNhYmxlZF0gIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG4gICAgY29sb3I6ICRidXR0b24tZmxhdC1kaXNhYmxlZC1jb2xvciAhaW1wb3J0YW50O1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICB9XFxufVxcblxcbi8vIExhcmdlIGJ1dHRvblxcbi5idG4tbGFyZ2Uge1xcbiAgQGV4dGVuZCAuYnRuO1xcbiAgaGVpZ2h0OiAkYnV0dG9uLWxhcmdlLWhlaWdodDtcXG4gIGxpbmUtaGVpZ2h0OiAkYnV0dG9uLWxhcmdlLWhlaWdodDtcXG4gIGZvbnQtc2l6ZTogJGJ1dHRvbi1sYXJnZS1mb250LXNpemU7XFxuICBwYWRkaW5nOiAwIDI4cHg7XFxuXFxuICBpIHtcXG4gICAgZm9udC1zaXplOiAkYnV0dG9uLWxhcmdlLWljb24tZm9udC1zaXplO1xcbiAgfVxcbn1cXG5cXG4vLyBTbWFsbCBidXR0b25cXG4uYnRuLXNtYWxsIHtcXG4gIEBleHRlbmQgLmJ0bjtcXG4gIGhlaWdodDogJGJ1dHRvbi1zbWFsbC1oZWlnaHQ7XFxuICBsaW5lLWhlaWdodDogJGJ1dHRvbi1zbWFsbC1oZWlnaHQ7XFxuICBmb250LXNpemU6ICRidXR0b24tc21hbGwtZm9udC1zaXplO1xcbiAgaSB7XFxuICAgIGZvbnQtc2l6ZTogJGJ1dHRvbi1zbWFsbC1pY29uLWZvbnQtc2l6ZTtcXG4gIH1cXG59XFxuXFxuLy8gQmxvY2sgYnV0dG9uXFxuLmJ0bi1ibG9jayB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuXCIsXCIkbWFpbkNvbG9yOiMwMDYyZDY7XFxuJG90aGVybWFpbjojMDM0ZDgyO1xcbiRzZWNvbmRDb2xvcjojMDA3N0ZBO1xcbiR0aGlyZENvbG9yOiMwOWJkZGQ7XFxuJGZvcnRoQ29sb3I6I2NiZTdmZTtcXG5cXG4kdGFiMTogJGZvcnRoQ29sb3I7XFxuJHRhYjI6IGRhcmtlbigkZm9ydGhDb2xvciwxNSUpO1xcbiR0YWIzOiBkYXJrZW4oJGZvcnRoQ29sb3IsMzAlKTtcXG5cXG4uY29tbXVuVGFiSGVhZGVyIHtcXG4gIGhlaWdodDogMTAwcHg7XFxuICBwYWRkaW5nOiA0MHB4O1xcbn1cXG5cXG4udGFicyB7XFxuICBtaW4taGVpZ2h0OiBjYWxjKDEwMCUgLSAxNTBweCk7XFxuICBtYXJnaW4tdG9wOiAzMHB4O1xcbiAgcGFkZGluZzowIWltcG9ydGFudDtcXG4gIGJvcmRlci1yYWRpdXM6IDQwcHghaW1wb3J0YW50O1xcbi5pbm5lcnBhZ2V7XFxuICBtaW4taGVpZ2h0OiA3MFZIIWltcG9ydGFudDtcXG59XFxuICAudGFicy1oZWFkZXItb3ZlcmxheSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGhlaWdodDogMTAwcHg7XFxuICB9XFxuXFxuICAmLmFjdGl2ZVRhYi0wIHtcXG4gICAgLnRhYi1oZWFkZXItb3ZlcjAge1xcbiAgICAgIGZsZXg6IDE7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYjI7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNDBweCAwIDAgMDtcXG5cXG4gICAgICAudGFiLWhlYWRlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFiMTtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHggNDBweCAwIDA7XFxuICAgICAgICBAZXh0ZW5kIC5jb21tdW5UYWJIZWFkZXI7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC50YWItaGVhZGVyLW92ZXIxIHtcXG4gICAgICBmbGV4OiAxO1xcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwLjI1dHVybiwgJHRhYjEsICR0YWIzKTtcXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xcblxcbiAgICAgIC50YWItaGVhZGVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWIyO1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA0MHB4IDAgNDBweDtcXG4gICAgICAgIEBleHRlbmQgLmNvbW11blRhYkhlYWRlcjtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLnRhYi1oZWFkZXItb3ZlcjIge1xcbiAgICAgIGZsZXg6IDE7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYjI7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMCA0MHB4IDAgMDtcXG5cXG4gICAgICAudGFiLWhlYWRlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFiMztcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNDBweCAwIDQwcHg7XFxuICAgICAgICBAZXh0ZW5kIC5jb21tdW5UYWJIZWFkZXI7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAmLmFjdGl2ZVRhYi0xIHtcXG4gICAgLnRhYi1oZWFkZXItb3ZlcjAge1xcbiAgICAgIGZsZXg6IDE7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYjE7XFxuICAgICAgLy9saW5lYXItZ3JhZGllbnQoMC4yNXR1cm4sICR0YWIxLCAkdGFiMSk7XFxuICAgICAgLy9saW5lYXItZ3JhZGllbnQoMC4yNXR1cm4sICR0YWIxLCAkdGFiMSk7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNDBweCAwIDAgMDtcXG5cXG4gICAgICAudGFiLWhlYWRlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFiMjtcXG4gICAgICAgIC8vIGJvcmRlci1yYWRpdXM6IDQwcHggNDBweCAwIDA7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4IDAgNDBweCAwO1xcbiAgICAgICAgQGV4dGVuZCAuY29tbXVuVGFiSGVhZGVyO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAudGFiLWhlYWRlci1vdmVyMSB7XFxuICAgICAgZmxleDogMTtcXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMC4yNXR1cm4sICR0YWIyLCAkdGFiMyk7XFxuICAgICAgLy8kdGFiMjtcXG4gICAgICAvL2JvcmRlci1yYWRpdXM6IDQwcHggIDAgMDtcXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xcblxcbiAgICAgIC50YWItaGVhZGVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWIxO1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweCA0MHB4IDAgMDtcXG4gICAgICAgIEBleHRlbmQgLmNvbW11blRhYkhlYWRlcjtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLnRhYi1oZWFkZXItb3ZlcjIge1xcbiAgICAgIGZsZXg6IDE7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYjE7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMCA0MHB4IDAgMDtcXG5cXG4gICAgICAudGFiLWhlYWRlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFiMztcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNDBweCAwIDQwcHg7XFxuICAgICAgICBAZXh0ZW5kIC5jb21tdW5UYWJIZWFkZXI7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuXFxuICAmLmFjdGl2ZVRhYi0yIHtcXG4gICAgLnRhYi1oZWFkZXItb3ZlcjAge1xcbiAgICAgIGZsZXg6IDE7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYjM7XFxuICAgICAgLy9saW5lYXItZ3JhZGllbnQoMC4yNXR1cm4sICR0YWIxLCAkdGFiMSk7XFxuICAgICAgLy9saW5lYXItZ3JhZGllbnQoMC4yNXR1cm4sICR0YWIxLCAkdGFiMSk7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNDBweCAwIDAgMDtcXG5cXG4gICAgICAudGFiLWhlYWRlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFiMjtcXG4gICAgICAgIC8vIGJvcmRlci1yYWRpdXM6IDQwcHggNDBweCAwIDA7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4IDAgNDBweCAwO1xcbiAgICAgICAgQGV4dGVuZCAuY29tbXVuVGFiSGVhZGVyO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAudGFiLWhlYWRlci1vdmVyMSB7XFxuICAgICAgZmxleDogMTtcXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMC4yNXR1cm4sICR0YWIyLCAkdGFiMSk7XFxuICAgICAgLy8kdGFiMjtcXG4gICAgICAvL2JvcmRlci1yYWRpdXM6IDQwcHggIDAgMDtcXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xcblxcbiAgICAgIC50YWItaGVhZGVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWIzO1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweCAwIDQwcHggMDtcXG4gICAgICAgIEBleHRlbmQgLmNvbW11blRhYkhlYWRlcjtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLnRhYi1oZWFkZXItb3ZlcjIge1xcbiAgICAgIGZsZXg6IDE7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYjM7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMCA0MHB4IDAgMDtcXG5cXG4gICAgICAudGFiLWhlYWRlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFiMTtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHggNDBweCAwIDA7XFxuICAgICAgICBAZXh0ZW5kIC5jb21tdW5UYWJIZWFkZXI7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAudGFiLWNvbnRlbnQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFiMTtcXG4gICAgcGFkZGluZzogMTBweDtcXG4gICAgLy9ib3JkZXI6IDFweCBzb2xpZCByZ2IoMjA3LCAyMDUsIDIwNSk7XFxuICAgIGJvcmRlci10b3A6IDA7XFxuICAgIG1pbi1oZWlnaHQ6IDcwdmg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDAgMCA0MHB4IDQwcHg7XFxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xcbiBcXG4gIH1cXG59XFxuXFxuLy8gLnRhYnMge1xcbi8vICAgICAvLyBkaXNwbGF5OiBmbGV4O1xcbi8vICAgICAvLyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbi8vICAgICAudGFicy1oZWFkZXItb3ZlcmxheSB7XFxuLy8gICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbi8vICAgICAgICAgaGVpZ2h0OiAxMDBweDtcXG5cXG4vLyAgICAgICAgIC50YWItaGVhZGVyLW92ZXIge1xcbi8vICAgICAgICAgICAgIGZsZXg6IDE7XFxuLy8gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaG90cGluaztcXG4vLyAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDQwcHggMCAwO1xcbi8vICAgICAgICAgICAgICYuYWN0aXZlIHtcXG4vLyAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1NSwgMTUyLCAxNTMpO1xcbi8vICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4IDAgMCAwO1xcbi8vICAgICAgICAgICAgIH1cXG4vLyAgICAgICAgICAgICAudGFiLWhlYWRlciB7XFxuLy8gICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcXG4vLyAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhvdHBpbms7XFxuLy8gICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4IDQwcHggMCAwO1xcbi8vICAgICAgICAgICAgICAgICB9XFxuLy8gICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBweCA0MHB4IDAgNDBweDtcXG4vLyAgICAgICAgICAgICAgICAgcGFkZGluZzogNDBweDtcXG4vLyAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1NSwgMTUyLCAxNTMpO1xcbi8vICAgICAgICAgICAgIH1cXG4vLyAgICAgICAgIH1cXG4vLyAgICAgfVxcblxcbi8vICAgICAudGFiLWNvbnRlbnQge1xcbi8vICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaG90cGluaztcXG4vLyAgICAgICAgIHBhZGRpbmc6IDEwcHg7XFxuLy8gICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjA3LCAyMDUsIDIwNSk7XFxuLy8gICAgICAgICBib3JkZXItdG9wOiAwO1xcbi8vICAgICB9XFxuLy8gfVxcblwiLFwiLmxvYWRlci1vdmVybGF5IHtcXG4gICAgei1pbmRleDogOTk5O1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGhlaWdodDogMTAwdmg7XFxuICAgIHdpZHRoOiAxMDB2dztcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMiwgMTAwLCAxMDAsIDAuNjAzKTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIC5sb2FkZXIge1xcbiAgICAgICAgYm9yZGVyOiA3cHggc29saWQgI2YzZjNmMzsgLyogTGlnaHQgZ3JleSAqL1xcbiAgICAgICAgYm9yZGVyLXRvcDogN3B4IHNvbGlkICMyZWEyY2M7IC8qIEJsdWUgKi9cXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgICAgIHdpZHRoOiA3MHB4O1xcbiAgICAgICAgaGVpZ2h0OiA3MHB4O1xcbiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTtcXG4gICAgfVxcbiAgICAubG9hZGVyLXRleHR7XFxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xcbiAgICAgICAgZm9udC1zaXplOiAyNXB4O1xcbiAgICAgICAgY29sb3I6ICMyZWEyY2M7XFxuICAgIH1cXG5cXG4gICAgQGtleWZyYW1lcyBzcGluIHtcXG4gICAgICAgIDAlIHtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcXG4gICAgICAgIH1cXG4gICAgICAgIDEwMCUge1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICAgICAgICB9XFxuICAgIH1cXG59XFxuXCIsXCJcXG5cXG4uY2FyZC1wYW5lbCB7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4yNXM7XFxuICBwYWRkaW5nOiAkY2FyZC1wYWRkaW5nO1xcbiAgbWFyZ2luOiAkZWxlbWVudC10b3AtbWFyZ2luIDAgJGVsZW1lbnQtYm90dG9tLW1hcmdpbiAwO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgQGV4dGVuZCAuc2hhZG93LTE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1iZy1jb2xvcjtcXG59XFxuXFxuLmNhcmQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbWFyZ2luOiAkZWxlbWVudC10b3AtbWFyZ2luIDAgJGVsZW1lbnQtYm90dG9tLW1hcmdpbiAwO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtYmctY29sb3I7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4yNXM7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBAZXh0ZW5kIC5zaGFkb3ctMTtcXG5cXG5cXG4gIC5jYXJkLXRpdGxlIHtcXG4gICAgZm9udC1zaXplOiAyNHB4O1xcbiAgICBmb250LXdlaWdodDogMzAwO1xcbiAgICAmLmFjdGl2YXRvciB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICB9XFxuICB9XFxuXFxuICAvLyBDYXJkIFNpemVzXFxuICAmLnNtYWxsLCAmLm1lZGl1bSwgJi5sYXJnZSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgLmNhcmQtaW1hZ2Uge1xcbiAgICAgIG1heC1oZWlnaHQ6IDYwJTtcXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB9XFxuICAgIC5jYXJkLWltYWdlICsgLmNhcmQtY29udGVudCB7XFxuICAgICAgbWF4LWhlaWdodDogNDAlO1xcbiAgICB9XFxuICAgIC5jYXJkLWNvbnRlbnQge1xcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgfVxcbiAgICAuY2FyZC1hY3Rpb24ge1xcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICBib3R0b206IDA7XFxuICAgICAgbGVmdDogMDtcXG4gICAgICByaWdodDogMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgJi5zbWFsbCB7XFxuICAgIGhlaWdodDogMzAwcHg7XFxuICB9XFxuXFxuICAmLm1lZGl1bSB7XFxuICAgIGhlaWdodDogNDAwcHg7XFxuICB9XFxuXFxuICAmLmxhcmdlIHtcXG4gICAgaGVpZ2h0OiA1MDBweDtcXG4gIH1cXG5cXG4gIC8vIEhvcml6b250YWwgQ2FyZHNcXG4gICYuaG9yaXpvbnRhbCB7XFxuICAgICYuc21hbGwsICYubWVkaXVtLCAmLmxhcmdlIHtcXG4gICAgICAuY2FyZC1pbWFnZSB7XFxuICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuXFxuICAgICAgICBpbWcge1xcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuXFxuICAgIC5jYXJkLWltYWdlIHtcXG4gICAgICBtYXgtd2lkdGg6IDUwJTtcXG4gICAgICBpbWcge1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4IDAgMCAycHg7XFxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICAgICAgICB3aWR0aDogYXV0bztcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLmNhcmQtc3RhY2tlZCB7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgIGZsZXg6IDE7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICAgIC5jYXJkLWNvbnRlbnQge1xcbiAgICAgICAgZmxleC1ncm93OiAxO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgLy8gU3RpY2t5IEFjdGlvbiBTZWN0aW9uXFxuICAmLnN0aWNreS1hY3Rpb24ge1xcbiAgICAuY2FyZC1hY3Rpb24ge1xcbiAgICAgIHotaW5kZXg6IDI7XFxuICAgIH1cXG5cXG4gICAgLmNhcmQtcmV2ZWFsIHtcXG4gICAgICB6LWluZGV4OiAxO1xcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2NHB4O1xcbiAgICB9XFxuICB9XFxuXFxuXFxuXFxuXFxuICAuY2FyZC1pbWFnZSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgLy8gSW1hZ2UgYmFja2dyb3VuZCBmb3IgY29udGVudFxcbiAgICBpbWcge1xcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwO1xcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICBsZWZ0OiAwO1xcbiAgICAgIHJpZ2h0OiAwO1xcbiAgICAgIHRvcDogMDtcXG4gICAgICBib3R0b206IDA7XFxuICAgICAgd2lkdGg6IDEwMCU7XFxuICAgIH1cXG5cXG4gICAgLmNhcmQtdGl0bGUge1xcbiAgICAgIGNvbG9yOiAkY2FyZC1iZy1jb2xvcjtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgYm90dG9tOiAwO1xcbiAgICAgIGxlZnQ6IDA7XFxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgICAgIHBhZGRpbmc6ICRjYXJkLXBhZGRpbmc7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5jYXJkLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nOiAkY2FyZC1wYWRkaW5nO1xcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMnB4IDJweDtcXG5cXG4gICAgcCB7XFxuICAgICAgbWFyZ2luOiAwO1xcbiAgICB9XFxuICAgIC5jYXJkLXRpdGxlIHtcXG4gICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICBsaW5lLWhlaWdodDogMzJweDtcXG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuXFxuICAgICAgaSB7XFxuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5jYXJkLWFjdGlvbiB7XFxuICAgICY6bGFzdC1jaGlsZCB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDJweCAycHg7XFxuICAgIH1cXG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsgLy8gVXNlIGluaGVyaXQgdG8gaW5oZXJpdCBjb2xvciBjbGFzc2VzXFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDE2MCwxNjAsMTYwLC4yKTtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBwYWRkaW5nOiAxNnB4ICRjYXJkLXBhZGRpbmc7XFxuXFxuICAgIGE6bm90KC5idG4pOm5vdCguYnRuLWxhcmdlKTpub3QoLmJ0bi1mbG9hdGluZykge1xcbiAgICAgIGNvbG9yOiAkY2FyZC1saW5rLWNvbG9yO1xcbiAgICAgIG1hcmdpbi1yaWdodDogJGNhcmQtcGFkZGluZztcXG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAuM3MgZWFzZTtcXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcblxcbiAgICAgICY6aG92ZXIgeyBjb2xvcjogJGNhcmQtbGluay1jb2xvci1saWdodDsgfVxcbiAgICB9XFxuICB9XFxuXFxuICAuY2FyZC1yZXZlYWwge1xcbiAgICBwYWRkaW5nOiAkY2FyZC1wYWRkaW5nO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLWJnLWNvbG9yO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgbGVmdDogMDtcXG4gICAgdG9wOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHotaW5kZXg6IDM7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuXFxuICAgIC5jYXJkLXRpdGxlIHtcXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgIH1cXG4gIH1cXG59XFxuXCIsXCIvKlxcbiAgICBAbGljZW5zZVxcbiAgICBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxcbiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0XFxuICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0XFxuICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dFxcbiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzb1xcbiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxcbiAqL1xcblxcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG4vKiBTVFlMRVMgRk9SIFRIRSBTUElOTkVSICovXFxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqL1xcblxcbi8qXFxuICogQ29uc3RhbnRzOlxcbiAqICAgICAgU1RST0tFV0lEVEggPSAzcHhcXG4gKiAgICAgIEFSQ1NJWkUgICAgID0gMjcwIGRlZ3JlZXMgKGFtb3VudCBvZiBjaXJjbGUgdGhlIGFyYyB0YWtlcyB1cClcXG4gKiAgICAgIEFSQ1RJTUUgICAgID0gMTMzM21zICh0aW1lIGl0IHRha2VzIHRvIGV4cGFuZCBhbmQgY29udHJhY3QgYXJjKVxcbiAqICAgICAgQVJDU1RBUlRST1QgPSAyMTYgZGVncmVlcyAoaG93IG11Y2ggdGhlIHN0YXJ0IGxvY2F0aW9uIG9mIHRoZSBhcmNcXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIHJvdGF0ZSBlYWNoIHRpbWUsIDIxNiBnaXZlcyB1cyBhXFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUgcG9pbnRlZCBzdGFyIHNoYXBlIChpdCdzIDM2MC81ICogMykuXFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBhIDcgcG9pbnRlZCBzdGFyLCB3ZSBtaWdodCBkb1xcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNjAvNyAqIDMgPSAxNTQuMjg2KVxcbiAqICAgICAgQ09OVEFJTkVSV0lEVEggPSAyOHB4XFxuICogICAgICBTSFJJTktfVElNRSA9IDQwMG1zXFxuICovXFxuXFxuXFxuLnByZWxvYWRlci13cmFwcGVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiA1MHB4O1xcbiAgaGVpZ2h0OiA1MHB4O1xcblxcbiAgJi5zbWFsbCB7XFxuICAgIHdpZHRoOiAzNnB4O1xcbiAgICBoZWlnaHQ6IDM2cHg7XFxuICB9XFxuXFxuICAmLmJpZyB7XFxuICAgIHdpZHRoOiA2NHB4O1xcbiAgICBoZWlnaHQ6IDY0cHg7XFxuICB9XFxuXFxuICAmLmFjdGl2ZSB7XFxuICAgIC8qIGR1cmF0aW9uOiAzNjAgKiBBUkNUSU1FIC8gKEFSQ1NUQVJUUk9UICsgKDM2MC1BUkNTSVpFKSkgKi9cXG4gICAgLXdlYmtpdC1hbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgMTU2OG1zIGxpbmVhciBpbmZpbml0ZTtcXG4gICAgYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIDE1NjhtcyBsaW5lYXIgaW5maW5pdGU7XFxuICB9XFxufVxcblxcbkAtd2Via2l0LWtleWZyYW1lcyBjb250YWluZXItcm90YXRlIHtcXG4gIHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIH1cXG59XFxuXFxuQGtleWZyYW1lcyBjb250YWluZXItcm90YXRlIHtcXG4gIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSB9XFxufVxcblxcbi5zcGlubmVyLWxheWVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3BhY2l0eTogMDtcXG4gIGJvcmRlci1jb2xvcjogJHNwaW5uZXItZGVmYXVsdC1jb2xvcjtcXG59XFxuXFxuLnNwaW5uZXItYmx1ZSxcXG4uc3Bpbm5lci1ibHVlLW9ubHkge1xcbiAgYm9yZGVyLWNvbG9yOiAjNDI4NWY0O1xcbn1cXG5cXG4uc3Bpbm5lci1yZWQsXFxuLnNwaW5uZXItcmVkLW9ubHkge1xcbiAgYm9yZGVyLWNvbG9yOiAjZGI0NDM3O1xcbn1cXG5cXG4uc3Bpbm5lci15ZWxsb3csXFxuLnNwaW5uZXIteWVsbG93LW9ubHkge1xcbiAgYm9yZGVyLWNvbG9yOiAjZjRiNDAwO1xcbn1cXG5cXG4uc3Bpbm5lci1ncmVlbixcXG4uc3Bpbm5lci1ncmVlbi1vbmx5IHtcXG4gIGJvcmRlci1jb2xvcjogIzBmOWQ1ODtcXG59XFxuXFxuLyoqXFxuICogSU1QT1JUQU5UIE5PVEUgQUJPVVQgQ1NTIEFOSU1BVElPTiBQUk9QRVJUSUVTIChrZWFudWxlZSk6XFxuICpcXG4gKiBpT1MgU2FmYXJpICh0ZXN0ZWQgb24gaU9TIDguMSkgZG9lcyBub3QgaGFuZGxlIGFuaW1hdGlvbi1kZWxheSB2ZXJ5IHdlbGwgLSBpdCBkb2Vzbid0XFxuICogZ3VhcmFudGVlIHRoYXQgdGhlIGFuaW1hdGlvbiB3aWxsIHN0YXJ0IF9leGFjdGx5XyBhZnRlciB0aGF0IHZhbHVlLiBTbyB3ZSBhdm9pZCB1c2luZ1xcbiAqIGFuaW1hdGlvbi1kZWxheSBhbmQgaW5zdGVhZCBzZXQgY3VzdG9tIGtleWZyYW1lcyBmb3IgZWFjaCBjb2xvciAoYXMgcmVkdW5kYW50IGFzIGl0XFxuICogc2VlbXMpLlxcbiAqXFxuICogV2Ugd3JpdGUgb3V0IGVhY2ggYW5pbWF0aW9uIGluIGZ1bGwgKGluc3RlYWQgb2Ygc2VwYXJhdGluZyBhbmltYXRpb24tbmFtZSxcXG4gKiBhbmltYXRpb24tZHVyYXRpb24sIGV0Yy4pIGJlY2F1c2UgdW5kZXIgdGhlIHBvbHlmaWxsLCBTYWZhcmkgZG9lcyBub3QgcmVjb2duaXplIHRob3NlXFxuICogc3BlY2lmaWMgcHJvcGVydGllcyBwcm9wZXJseSwgdHJlYXRzIHRoZW0gYXMgLXdlYmtpdC1hbmltYXRpb24sIGFuZCBvdmVycmlkZXMgdGhlXFxuICogb3RoZXIgYW5pbWF0aW9uIHJ1bGVzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcGxhdGZvcm0vaXNzdWVzLzUzLlxcbiAqL1xcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ibHVlIHtcXG4gIC8qIGR1cmF0aW9uczogNCAqIEFSQ1RJTUUgKi9cXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBibHVlLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcXG4gIGFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgYmx1ZS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XFxufVxcblxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1yZWQge1xcbiAgLyogZHVyYXRpb25zOiA0ICogQVJDVElNRSAqL1xcbiAgLXdlYmtpdC1hbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIHJlZC1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XFxuICBhbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIHJlZC1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XFxufVxcblxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci15ZWxsb3cge1xcbiAgLyogZHVyYXRpb25zOiA0ICogQVJDVElNRSAqL1xcbiAgLXdlYmtpdC1hbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIHllbGxvdy1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XFxuICBhbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIHllbGxvdy1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XFxufVxcblxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ncmVlbiB7XFxuICAvKiBkdXJhdGlvbnM6IDQgKiBBUkNUSU1FICovXFxuICAtd2Via2l0LWFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgZ3JlZW4tZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xcbiAgYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBncmVlbi1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XFxufVxcblxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIsXFxuLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5zcGlubmVyLWJsdWUtb25seSxcXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItcmVkLW9ubHksXFxuLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5zcGlubmVyLXllbGxvdy1vbmx5LFxcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ncmVlbi1vbmx5IHtcXG4gIC8qIGR1cmF0aW9uczogNCAqIEFSQ1RJTUUgKi9cXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcXG4gIGFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcXG59XFxuXFxuQC13ZWJraXQta2V5ZnJhbWVzIGZpbGwtdW5maWxsLXJvdGF0ZSB7XFxuICAxMi41JSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTsgIH0gLyogMC41ICogQVJDU0laRSAqL1xcbiAgMjUlICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7ICB9IC8qIDEgICAqIEFSQ1NJWkUgKi9cXG4gIDM3LjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0MDVkZWcpOyAgfSAvKiAxLjUgKiBBUkNTSVpFICovXFxuICA1MCUgICB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNTQwZGVnKTsgIH0gLyogMiAgICogQVJDU0laRSAqL1xcbiAgNjIuNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDY3NWRlZyk7ICB9IC8qIDIuNSAqIEFSQ1NJWkUgKi9cXG4gIDc1JSAgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg4MTBkZWcpOyAgfSAvKiAzICAgKiBBUkNTSVpFICovXFxuICA4Ny41JSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTQ1ZGVnKTsgIH0gLyogMy41ICogQVJDU0laRSAqL1xcbiAgdG8gICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpOyB9IC8qIDQgICAqIEFSQ1NJWkUgKi9cXG59XFxuXFxuQGtleWZyYW1lcyBmaWxsLXVuZmlsbC1yb3RhdGUge1xcbiAgMTIuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpOyAgfSAvKiAwLjUgKiBBUkNTSVpFICovXFxuICAyNSUgICB7IHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7ICB9IC8qIDEgICAqIEFSQ1NJWkUgKi9cXG4gIDM3LjUlIHsgdHJhbnNmb3JtOiByb3RhdGUoNDA1ZGVnKTsgIH0gLyogMS41ICogQVJDU0laRSAqL1xcbiAgNTAlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpOyAgfSAvKiAyICAgKiBBUkNTSVpFICovXFxuICA2Mi41JSB7IHRyYW5zZm9ybTogcm90YXRlKDY3NWRlZyk7ICB9IC8qIDIuNSAqIEFSQ1NJWkUgKi9cXG4gIDc1JSAgIHsgdHJhbnNmb3JtOiByb3RhdGUoODEwZGVnKTsgIH0gLyogMyAgICogQVJDU0laRSAqL1xcbiAgODcuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5NDVkZWcpOyAgfSAvKiAzLjUgKiBBUkNTSVpFICovXFxuICB0byAgICB7IHRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpOyB9IC8qIDQgICAqIEFSQ1NJWkUgKi9cXG59XFxuXFxuQC13ZWJraXQta2V5ZnJhbWVzIGJsdWUtZmFkZS1pbi1vdXQge1xcbiAgZnJvbSB7IG9wYWNpdHk6IDE7IH1cXG4gIDI1JSB7IG9wYWNpdHk6IDE7IH1cXG4gIDI2JSB7IG9wYWNpdHk6IDA7IH1cXG4gIDg5JSB7IG9wYWNpdHk6IDA7IH1cXG4gIDkwJSB7IG9wYWNpdHk6IDE7IH1cXG4gIDEwMCUgeyBvcGFjaXR5OiAxOyB9XFxufVxcblxcbkBrZXlmcmFtZXMgYmx1ZS1mYWRlLWluLW91dCB7XFxuICBmcm9tIHsgb3BhY2l0eTogMTsgfVxcbiAgMjUlIHsgb3BhY2l0eTogMTsgfVxcbiAgMjYlIHsgb3BhY2l0eTogMDsgfVxcbiAgODklIHsgb3BhY2l0eTogMDsgfVxcbiAgOTAlIHsgb3BhY2l0eTogMTsgfVxcbiAgMTAwJSB7IG9wYWNpdHk6IDE7IH1cXG59XFxuXFxuQC13ZWJraXQta2V5ZnJhbWVzIHJlZC1mYWRlLWluLW91dCB7XFxuICBmcm9tIHsgb3BhY2l0eTogMDsgfVxcbiAgMTUlIHsgb3BhY2l0eTogMDsgfVxcbiAgMjUlIHsgb3BhY2l0eTogMTsgfVxcbiAgNTAlIHsgb3BhY2l0eTogMTsgfVxcbiAgNTElIHsgb3BhY2l0eTogMDsgfVxcbn1cXG5cXG5Aa2V5ZnJhbWVzIHJlZC1mYWRlLWluLW91dCB7XFxuICBmcm9tIHsgb3BhY2l0eTogMDsgfVxcbiAgMTUlIHsgb3BhY2l0eTogMDsgfVxcbiAgMjUlIHsgb3BhY2l0eTogMTsgfVxcbiAgNTAlIHsgb3BhY2l0eTogMTsgfVxcbiAgNTElIHsgb3BhY2l0eTogMDsgfVxcbn1cXG5cXG5ALXdlYmtpdC1rZXlmcmFtZXMgeWVsbG93LWZhZGUtaW4tb3V0IHtcXG4gIGZyb20geyBvcGFjaXR5OiAwOyB9XFxuICA0MCUgeyBvcGFjaXR5OiAwOyB9XFxuICA1MCUgeyBvcGFjaXR5OiAxOyB9XFxuICA3NSUgeyBvcGFjaXR5OiAxOyB9XFxuICA3NiUgeyBvcGFjaXR5OiAwOyB9XFxufVxcblxcbkBrZXlmcmFtZXMgeWVsbG93LWZhZGUtaW4tb3V0IHtcXG4gIGZyb20geyBvcGFjaXR5OiAwOyB9XFxuICA0MCUgeyBvcGFjaXR5OiAwOyB9XFxuICA1MCUgeyBvcGFjaXR5OiAxOyB9XFxuICA3NSUgeyBvcGFjaXR5OiAxOyB9XFxuICA3NiUgeyBvcGFjaXR5OiAwOyB9XFxufVxcblxcbkAtd2Via2l0LWtleWZyYW1lcyBncmVlbi1mYWRlLWluLW91dCB7XFxuICBmcm9tIHsgb3BhY2l0eTogMDsgfVxcbiAgNjUlIHsgb3BhY2l0eTogMDsgfVxcbiAgNzUlIHsgb3BhY2l0eTogMTsgfVxcbiAgOTAlIHsgb3BhY2l0eTogMTsgfVxcbiAgMTAwJSB7IG9wYWNpdHk6IDA7IH1cXG59XFxuXFxuQGtleWZyYW1lcyBncmVlbi1mYWRlLWluLW91dCB7XFxuICBmcm9tIHsgb3BhY2l0eTogMDsgfVxcbiAgNjUlIHsgb3BhY2l0eTogMDsgfVxcbiAgNzUlIHsgb3BhY2l0eTogMTsgfVxcbiAgOTAlIHsgb3BhY2l0eTogMTsgfVxcbiAgMTAwJSB7IG9wYWNpdHk6IDA7IH1cXG59XFxuXFxuLyoqXFxuICogUGF0Y2ggdGhlIGdhcCB0aGF0IGFwcGVhciBiZXR3ZWVuIHRoZSB0d28gYWRqYWNlbnQgZGl2LmNpcmNsZS1jbGlwcGVyIHdoaWxlIHRoZVxcbiAqIHNwaW5uZXIgaXMgcm90YXRpbmcgKGFwcGVhcnMgb24gQ2hyb21lIDM4LCBTYWZhcmkgNy4xLCBhbmQgSUUgMTEpLlxcbiAqL1xcbi5nYXAtcGF0Y2gge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogNDUlO1xcbiAgd2lkdGg6IDEwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XFxufVxcblxcbi5nYXAtcGF0Y2ggLmNpcmNsZSB7XFxuICB3aWR0aDogMTAwMCU7XFxuICBsZWZ0OiAtNDUwJTtcXG59XFxuXFxuLmNpcmNsZS1jbGlwcGVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiA1MCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xcblxcbiAgLmNpcmNsZSB7XFxuICAgIHdpZHRoOiAyMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIGJvcmRlci13aWR0aDogM3B4OyAvKiBTVFJPS0VXSURUSCAqL1xcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IGluaGVyaXQ7XFxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7XFxuICAgIGFuaW1hdGlvbjogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBib3R0b206IDA7XFxuICB9XFxuXFxuICAmLmxlZnQgLmNpcmNsZSB7XFxuICAgIGxlZnQ6IDA7XFxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpO1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpO1xcbiAgfVxcbiAgJi5yaWdodCAuY2lyY2xlIHtcXG4gICAgbGVmdDogLTEwMCU7XFxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMjlkZWcpO1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTI5ZGVnKTtcXG4gIH1cXG59XFxuXFxuXFxuXFxuLmFjdGl2ZSAuY2lyY2xlLWNsaXBwZXIubGVmdCAuY2lyY2xlIHtcXG4gIC8qIGR1cmF0aW9uOiBBUkNUSU1FICovXFxuICAtd2Via2l0LWFuaW1hdGlvbjogbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcXG4gIGFuaW1hdGlvbjogbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcXG59XFxuXFxuLmFjdGl2ZSAuY2lyY2xlLWNsaXBwZXIucmlnaHQgLmNpcmNsZSB7XFxuICAvKiBkdXJhdGlvbjogQVJDVElNRSAqL1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHJpZ2h0LXNwaW4gMTMzM21zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xcbiAgYW5pbWF0aW9uOiByaWdodC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcXG59XFxuXFxuQC13ZWJraXQta2V5ZnJhbWVzIGxlZnQtc3BpbiB7XFxuICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpOyB9XFxuICA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTsgfVxcbiAgdG8geyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7IH1cXG59XFxuXFxuQGtleWZyYW1lcyBsZWZ0LXNwaW4ge1xcbiAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7IH1cXG4gIDUwJSB7IHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTsgfVxcbiAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpOyB9XFxufVxcblxcbkAtd2Via2l0LWtleWZyYW1lcyByaWdodC1zcGluIHtcXG4gIGZyb20geyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpOyB9XFxuICA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDVkZWcpOyB9XFxuICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7IH1cXG59XFxuXFxuQGtleWZyYW1lcyByaWdodC1zcGluIHtcXG4gIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKTsgfVxcbiAgNTAlIHsgdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7IH1cXG4gIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7IH1cXG59XFxuXFxuI3NwaW5uZXJDb250YWluZXIuY29vbGRvd24ge1xcbiAgLyogZHVyYXRpb246IFNIUklOS19USU1FICovXFxuICAtd2Via2l0LWFuaW1hdGlvbjogY29udGFpbmVyLXJvdGF0ZSAxNTY4bXMgbGluZWFyIGluZmluaXRlLCBmYWRlLW91dCA0MDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSk7XFxuICBhbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgMTU2OG1zIGxpbmVhciBpbmZpbml0ZSwgZmFkZS1vdXQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpO1xcbn1cXG5cXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1vdXQge1xcbiAgZnJvbSB7IG9wYWNpdHk6IDE7IH1cXG4gIHRvIHsgb3BhY2l0eTogMDsgfVxcbn1cXG5cXG5Aa2V5ZnJhbWVzIGZhZGUtb3V0IHtcXG4gIGZyb20geyBvcGFjaXR5OiAxOyB9XFxuICB0byB7IG9wYWNpdHk6IDA7IH1cXG59XFxuXCIsXCJcXG4vLyBQcm9ncmVzcyBCYXJcXG4ucHJvZ3Jlc3Mge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiA0cHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkcHJvZ3Jlc3MtYmFyLWNvbG9yLCA0MCUpO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgbWFyZ2luOiAkZWxlbWVudC10b3AtbWFyZ2luIDAgJGVsZW1lbnQtYm90dG9tLW1hcmdpbiAwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIC5kZXRlcm1pbmF0ZSB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBib3R0b206IDA7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYXItY29sb3I7XFxuICAgIHRyYW5zaXRpb246IHdpZHRoIC4zcyBsaW5lYXI7XFxuICB9XFxuICAuaW5kZXRlcm1pbmF0ZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYXItY29sb3I7XFxuICAgICY6YmVmb3JlIHtcXG4gICAgICBjb250ZW50OiAnJztcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgbGVmdDowO1xcbiAgICAgIGJvdHRvbTogMDtcXG4gICAgICB3aWxsLWNoYW5nZTogbGVmdCwgcmlnaHQ7XFxuICAgICAgLy8gQ3VzdG9tIGJlemllclxcbiAgICAgIGFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZSAyLjFzIGN1YmljLWJlemllcigwLjY1MCwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGU7XFxuXFxuICAgIH1cXG4gICAgJjphZnRlciB7XFxuICAgICAgY29udGVudDogJyc7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxuICAgICAgdG9wOiAwO1xcbiAgICAgIGxlZnQ6MDtcXG4gICAgICBib3R0b206IDA7XFxuICAgICAgd2lsbC1jaGFuZ2U6IGxlZnQsIHJpZ2h0O1xcbiAgICAgIC8vIEN1c3RvbSBiZXppZXJcXG4gICAgICBhbmltYXRpb246IGluZGV0ZXJtaW5hdGUtc2hvcnQgMi4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQwLCAwLjQ0MCwgMS4wMDApIGluZmluaXRlO1xcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMS4xNXM7XFxuICAgIH1cXG4gIH1cXG59XFxuQGtleWZyYW1lcyBpbmRldGVybWluYXRlIHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTM1JTtcXG4gICAgcmlnaHQ6MTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbn1cXG5cXG5Aa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUtc2hvcnQge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMjAwJTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxufVxcblxcblwiLFwiLmZsYXNoLW1lc3NhZ2Uge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcGFkZGluZzogMnB4IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICB6LWluZGV4OiA5OTk5OTtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgZm9udC1zaXplOiAxNHB4O1xcblxcblxcbiAgJi5pbmZvIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2JlZGRiZTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzcyOGY3MjtcXG4gIH1cXG5cXG4gICYud2FybiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWU2ZDA7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYTdkMTc7XFxuICB9XFxuICAmLmVycm9yIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1YjJiYztcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UzMzI1NztcXG4gIH1cXG59XFxuXFxuQGtleWZyYW1lcyBtZXNzYWdlSW4ge1xcbiAgZnJvbSB7XFxuICAgIHJpZ2h0OiA4MCU7XFxuICB9XFxuXFxuICB0byB7XFxuICAgIHJpZ2h0OiAwO1xcblxcbiAgfVxcbn1cIixcIi5wdWxzZSB7XFxuICAmOjpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcywgdHJhbnNmb3JtIC4zcztcXG4gICAgYW5pbWF0aW9uOiBwdWxzZS1hbmltYXRpb24gMXMgY3ViaWMtYmV6aWVyKDAuMjQsIDAsIDAuMzgsIDEpIGluZmluaXRlO1xcbiAgICAvL3otaW5kZXg6IC0xO1xcbiAgfVxcblxcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcblxcbkBrZXlmcmFtZXMgcHVsc2UtYW5pbWF0aW9uIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XFxuICB9XFxufVxcblwiLFwiLmRyb3Bkb3duLWNvbnRlbnQge1xcbiAgJjpmb2N1cyB7XFxuICAgIG91dGxpbmU6IDA7XFxuICB9XFxuXFxuXFxuICBAZXh0ZW5kIC5zaGFkb3ctMTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iZy1jb2xvcjtcXG4gIG1hcmdpbjogMDtcXG4gIGRpc3BsYXk6IGZsb3c7XFxuICBtaW4td2lkdGg6IDEwMHB4O1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIC8vb3BhY2l0eTogMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICB0b3A6IDA7XFxuICB6LWluZGV4OiA5OTk5OyAvLyBUT0RPOiBDaGVjayBpZiB0aGlzIGRvZXNuJ3QgYnJlYWsgb3RoZXIgdGhpbmdzXFxuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XFxuXFxuXFxuICBsaSB7XFxuICAgICY6aG92ZXIsICYuYWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24taG92ZXItYmctY29sb3I7XFxuICAgIH1cXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogbm9uZTtcXG4gICAgfVxcblxcbiAgICAmLmRpdmlkZXIge1xcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgIH1cXG5cXG4gICAgJiA+IGEsICYgPiBzcGFuIHtcXG4gICAgICBmb250LXNpemU6IDE2cHg7XFxuICAgICAgY29sb3I6ICRkcm9wZG93bi1jb2xvcjtcXG4gICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICBsaW5lLWhlaWdodDogMjJweDtcXG4gICAgICBwYWRkaW5nOiBjYWxjKCgkZHJvcGRvd24taXRlbS1oZWlnaHQgLSAyMnB4KSAvIDIpIDE2cHg7XFxuICAgIH1cXG5cXG4gICAgJiA+IHNwYW4gPiBsYWJlbCB7XFxuICAgICAgdG9wOiAxcHg7XFxuICAgICAgbGVmdDogMDtcXG4gICAgICBoZWlnaHQ6IDE4cHg7XFxuICAgIH1cXG5cXG4gICAgLy8gSWNvbiBhbGlnbm1lbnQgb3ZlcnJpZGVcXG4gICAgJiA+IGEgPiBpIHtcXG4gICAgICBoZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgbWFyZ2luOiAwIDI0cHggMCAwO1xcbiAgICAgIHdpZHRoOiAyNHB4O1xcbiAgICB9XFxuXFxuXFxuICAgIGNsZWFyOiBib3RoO1xcbiAgICBjb2xvcjogJG9mZi1ibGFjaztcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBtaW4taGVpZ2h0OiAkZHJvcGRvd24taXRlbS1oZWlnaHQ7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgfVxcbn1cXG5cXG5ib2R5LmtleWJvYXJkLWZvY3VzZWQge1xcbiAgLmRyb3Bkb3duLWNvbnRlbnQgbGk6Zm9jdXMge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRyb3Bkb3duLWhvdmVyLWJnLWNvbG9yLCA4JSk7XFxuICB9XFxufVxcblxcbi8vIElucHV0IGZpZWxkIHNwZWNpZmljaXR5IGJ1Z2ZpeFxcbi5pbnB1dC1maWVsZC5jb2wgLmRyb3Bkb3duLWNvbnRlbnQgW3R5cGU9XFxcImNoZWNrYm94XFxcIl0gKyBsYWJlbCB7XFxuICB0b3A6IDFweDtcXG4gIGxlZnQ6IDA7XFxuICBoZWlnaHQ6IDE4cHg7XFxuICB0cmFuc2Zvcm06IG5vbmU7XFxufVxcblxcbi5kcm9wZG93bi10cmlnZ2VyIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XCIsXCJuYXYge1xcbiAgJi5uYXYtZXh0ZW5kZWQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuXFxuICAgIC5uYXYtd3JhcHBlciB7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIG1pbi1oZWlnaHQ6ICRuYXZiYXItaGVpZ2h0LW1vYmlsZTtcXG4gICAgICBoZWlnaHQ6IGF1dG87XFxuICAgIH1cXG5cXG4gICAgLm5hdi1jb250ZW50IHtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcXG4gICAgfVxcbiAgfVxcblxcbiAgY29sb3I6ICRuYXZiYXItZm9udC1jb2xvcjtcXG4gIEBleHRlbmQgLnNoYWRvdy0xO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogJG5hdmJhci1oZWlnaHQtbW9iaWxlO1xcbiAgbGluZS1oZWlnaHQ6ICRuYXZiYXItbGluZS1oZWlnaHQtbW9iaWxlO1xcblxcbiAgYSB7IGNvbG9yOiAkbmF2YmFyLWZvbnQtY29sb3I7IH1cXG5cXG4gIGksXFxuICBbY2xhc3NePVxcXCJtZGktXFxcIl0sIFtjbGFzcyo9XFxcIm1kaS1cXFwiXSxcXG4gIGkucy1pY29ucyB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDI0cHg7XFxuICAgIGhlaWdodDogJG5hdmJhci1oZWlnaHQtbW9iaWxlO1xcbiAgICBsaW5lLWhlaWdodDogJG5hdmJhci1saW5lLWhlaWdodC1tb2JpbGU7XFxuICB9XFxuXFxuICAubmF2LXdyYXBwZXIge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gIH1cXG5cXG4gIEBtZWRpYSAjeyRsYXJnZS1hbmQtdXB9IHtcXG4gICAgYS5zaWRlbmF2LXRyaWdnZXIgeyBkaXNwbGF5OiBub25lOyB9XFxuICB9XFxuXFxuXFxuICAvLyBDb2xsYXBzZSBidXR0b25cXG4gIC5zaWRlbmF2LXRyaWdnZXIge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAxO1xcbiAgICBoZWlnaHQ6ICRuYXZiYXItaGVpZ2h0LW1vYmlsZTtcXG4gICAgbWFyZ2luOiAwIDE4cHg7XFxuXFxuICAgIGkge1xcbiAgICAgIGhlaWdodDogJG5hdmJhci1oZWlnaHQtbW9iaWxlO1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2YmFyLWxpbmUtaGVpZ2h0LW1vYmlsZTtcXG4gICAgfVxcbiAgfVxcblxcblxcbiAgLy8gTG9nb1xcbiAgLmJyYW5kLWxvZ28ge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGNvbG9yOiAkbmF2YmFyLWZvbnQtY29sb3I7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC1zaXplOiAkbmF2YmFyLWJyYW5kLWZvbnQtc2l6ZTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgaW1nLmNpcmNsZSB7XFxuICAgICAgaGVpZ2h0OiAzMnB4O1xcbiAgICAgIHdpZHRoOiAzMnB4O1xcbiAgICB9XFxuXFxuICAgICYuY2VudGVyIHtcXG4gICAgICBsZWZ0OiA1MCU7XFxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xcbiAgICB9XFxuXFxuICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcXG4gICAgICBsZWZ0OiA1MCU7XFxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xcblxcbiAgICAgICYubGVmdCwgJi5yaWdodCB7XFxuICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xcbiAgICAgIH1cXG5cXG4gICAgICAmLmxlZnQgeyBsZWZ0OiAwLjVyZW07IH1cXG4gICAgICAmLnJpZ2h0IHtcXG4gICAgICAgIHJpZ2h0OiAwLjVyZW07XFxuICAgICAgICBsZWZ0OiBhdXRvO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAmLnJpZ2h0IHtcXG4gICAgICByaWdodDogMC41cmVtO1xcbiAgICAgIHBhZGRpbmc6IDA7XFxuICAgIH1cXG5cXG4gICAgaSxcXG4gICAgW2NsYXNzXj1cXFwibWRpLVxcXCJdLCBbY2xhc3MqPVxcXCJtZGktXFxcIl0sXFxuICAgIGkucy1pY29ucyB7XFxuICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xcbiAgICB9XFxuICB9XFxuXFxuXFxuICAvLyBUaXRsZVxcbiAgLm5hdi10aXRsZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC1zaXplOiAzMnB4O1xcbiAgICBwYWRkaW5nOiAyOHB4IDA7XFxuICB9XFxuXFxuXFxuICAvLyBOYXZiYXIgTGlua3NcXG4gIHVsIHtcXG4gICAgbWFyZ2luOiAwO1xcblxcbiAgICBsaSB7XFxuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3M7XFxuICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgcGFkZGluZzogMDtcXG5cXG4gICAgICAmLmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC4xKTtcXG4gICAgICB9XFxuICAgIH1cXG4gICAgYSB7XFxuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3M7XFxuICAgICAgZm9udC1zaXplOiAkbmF2YmFyLWZvbnQtc2l6ZTtcXG4gICAgICBjb2xvcjogJG5hdmJhci1mb250LWNvbG9yO1xcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgIHBhZGRpbmc6IDAgMTVweDtcXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuXFxuICAgICAgJi5idG4sICYuYnRuLWxhcmdlLCAmLmJ0bi1mbGF0LCAmLmJ0bi1mbG9hdGluZyB7XFxuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XFxuXFxuICAgICAgICAmID4gLm1hdGVyaWFsLWljb25zIHtcXG4gICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuXFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC4xKTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgJi5sZWZ0IHtcXG4gICAgICBmbG9hdDogbGVmdDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLy8gTmF2YmFyIFNlYXJjaCBGb3JtXFxuICBmb3JtIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgfVxcblxcbiAgLmlucHV0LWZpZWxkIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuXFxuICAgIGlucHV0IHtcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgZm9udC1zaXplOiAxLjJyZW07XFxuICAgICAgYm9yZGVyOiBub25lO1xcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcXG5cXG4gICAgICAmOmZvY3VzLCAmW3R5cGU9dGV4dF06dmFsaWQsICZbdHlwZT1wYXNzd29yZF06dmFsaWQsXFxuICAgICAgJlt0eXBlPWVtYWlsXTp2YWxpZCwgJlt0eXBlPXVybF06dmFsaWQsICZbdHlwZT1kYXRlXTp2YWxpZCB7XFxuICAgICAgICBib3JkZXI6IG5vbmU7XFxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICBsYWJlbCB7XFxuICAgICAgdG9wOiAwO1xcbiAgICAgIGxlZnQ6IDA7XFxuXFxuICAgICAgaSB7XFxuICAgICAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuNyk7XFxuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAuM3M7XFxuICAgICAgfVxcbiAgICAgICYuYWN0aXZlIGkgeyBjb2xvcjogJG5hdmJhci1mb250LWNvbG9yOyB9XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuLy8gRml4ZWQgTmF2YmFyXFxuLm5hdmJhci1maXhlZCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6ICRuYXZiYXItaGVpZ2h0LW1vYmlsZTtcXG4gIHotaW5kZXg6IDk5NztcXG5cXG4gIG5hdiB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gIH1cXG59XFxuQG1lZGlhICN7JG1lZGl1bS1hbmQtdXB9IHtcXG4gIG5hdi5uYXYtZXh0ZW5kZWQgLm5hdi13cmFwcGVyIHtcXG4gICAgbWluLWhlaWdodDogJG5hdmJhci1oZWlnaHQ7XFxuICB9XFxuICBuYXYsIG5hdiAubmF2LXdyYXBwZXIgaSwgbmF2IGEuc2lkZW5hdi10cmlnZ2VyLCBuYXYgYS5zaWRlbmF2LXRyaWdnZXIgaSB7XFxuICAgIGhlaWdodDogJG5hdmJhci1oZWlnaHQ7XFxuICAgIGxpbmUtaGVpZ2h0OiAkbmF2YmFyLWxpbmUtaGVpZ2h0O1xcbiAgfVxcbiAgLm5hdmJhci1maXhlZCB7XFxuICAgIGhlaWdodDogJG5hdmJhci1oZWlnaHQ7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gIHZhciBjb250ZW50ID0gaXRlbVsxXTtcbiAgdmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24oKSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQnKTtcbiAgdmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB2YXIgaGFzID0gcmVxdWlyZSgnLi9saWIvaGFzJyk7XG5cbiAgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24odGV4dCkge1xuICAgIHZhciBtZXNzYWdlID0gJ1dhcm5pbmc6ICcgKyB0ZXh0O1xuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAvLyAtLS0gV2VsY29tZSB0byBkZWJ1Z2dpbmcgUmVhY3QgLS0tXG4gICAgICAvLyBUaGlzIGVycm9yIHdhcyB0aHJvd24gYXMgYSBjb252ZW5pZW5jZSBzbyB0aGF0IHlvdSBjYW4gdXNlIHRoaXMgc3RhY2tcbiAgICAgIC8vIHRvIGZpbmQgdGhlIGNhbGxzaXRlIHRoYXQgY2F1c2VkIHRoaXMgd2FybmluZyB0byBmaXJlLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKHgpIHsgLyoqLyB9XG4gIH07XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgdGhlIHZhbHVlcyBtYXRjaCB3aXRoIHRoZSB0eXBlIHNwZWNzLlxuICogRXJyb3IgbWVzc2FnZXMgYXJlIG1lbW9yaXplZCBhbmQgd2lsbCBvbmx5IGJlIHNob3duIG9uY2UuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHR5cGVTcGVjcyBNYXAgb2YgbmFtZSB0byBhIFJlYWN0UHJvcFR5cGVcbiAqIEBwYXJhbSB7b2JqZWN0fSB2YWx1ZXMgUnVudGltZSB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIHR5cGUtY2hlY2tlZFxuICogQHBhcmFtIHtzdHJpbmd9IGxvY2F0aW9uIGUuZy4gXCJwcm9wXCIsIFwiY29udGV4dFwiLCBcImNoaWxkIGNvbnRleHRcIlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbXBvbmVudE5hbWUgTmFtZSBvZiB0aGUgY29tcG9uZW50IGZvciBlcnJvciBtZXNzYWdlcy5cbiAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBnZXRTdGFjayBSZXR1cm5zIHRoZSBjb21wb25lbnQgc3RhY2suXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24sIGNvbXBvbmVudE5hbWUsIGdldFN0YWNrKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yO1xuICAgICAgICAvLyBQcm9wIHR5cGUgdmFsaWRhdGlvbiBtYXkgdGhyb3cuIEluIGNhc2UgdGhleSBkbywgd2UgZG9uJ3Qgd2FudCB0b1xuICAgICAgICAvLyBmYWlsIHRoZSByZW5kZXIgcGhhc2Ugd2hlcmUgaXQgZGlkbid0IGZhaWwgYmVmb3JlLiBTbyB3ZSBsb2cgaXQuXG4gICAgICAgIC8vIEFmdGVyIHRoZXNlIGhhdmUgYmVlbiBjbGVhbmVkIHVwLCB3ZSdsbCBsZXQgdGhlbSB0aHJvdy5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFyIGVyciA9IEVycm9yKFxuICAgICAgICAgICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7ICcgK1xuICAgICAgICAgICAgICAnaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLCBidXQgcmVjZWl2ZWQgYCcgKyB0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gKyAnYC4nICtcbiAgICAgICAgICAgICAgJ1RoaXMgb2Z0ZW4gaGFwcGVucyBiZWNhdXNlIG9mIHR5cG9zIHN1Y2ggYXMgYFByb3BUeXBlcy5mdW5jdGlvbmAgaW5zdGVhZCBvZiBgUHJvcFR5cGVzLmZ1bmNgLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZXJyb3IgPSB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSh2YWx1ZXMsIHR5cGVTcGVjTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIG51bGwsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICBlcnJvciA9IGV4O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvciAmJiAhKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKFxuICAgICAgICAgICAgKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJyArXG4gICAgICAgICAgICBsb2NhdGlvbiArICcgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgK1xuICAgICAgICAgICAgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICcgKyB0eXBlb2YgZXJyb3IgKyAnLiAnICtcbiAgICAgICAgICAgICdZb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHBhc3MgYW4gYXJndW1lbnQgdG8gdGhlIHR5cGUgY2hlY2tlciAnICtcbiAgICAgICAgICAgICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgK1xuICAgICAgICAgICAgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yLm1lc3NhZ2UgaW4gbG9nZ2VkVHlwZUZhaWx1cmVzKSkge1xuICAgICAgICAgIC8vIE9ubHkgbW9uaXRvciB0aGlzIGZhaWx1cmUgb25jZSBiZWNhdXNlIHRoZXJlIHRlbmRzIHRvIGJlIGEgbG90IG9mIHRoZVxuICAgICAgICAgIC8vIHNhbWUgZXJyb3IuXG4gICAgICAgICAgbG9nZ2VkVHlwZUZhaWx1cmVzW2Vycm9yLm1lc3NhZ2VdID0gdHJ1ZTtcblxuICAgICAgICAgIHZhciBzdGFjayA9IGdldFN0YWNrID8gZ2V0U3RhY2soKSA6ICcnO1xuXG4gICAgICAgICAgcHJpbnRXYXJuaW5nKFxuICAgICAgICAgICAgJ0ZhaWxlZCAnICsgbG9jYXRpb24gKyAnIHR5cGU6ICcgKyBlcnJvci5tZXNzYWdlICsgKHN0YWNrICE9IG51bGwgPyBzdGFjayA6ICcnKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZXNldHMgd2FybmluZyBjYWNoZSB3aGVuIHRlc3RpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY2hlY2tQcm9wVHlwZXMucmVzZXRXYXJuaW5nQ2FjaGUgPSBmdW5jdGlvbigpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNoZWNrUHJvcFR5cGVzO1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9saWIvaGFzJyk7XG52YXIgY2hlY2tQcm9wVHlwZXMgPSByZXF1aXJlKCcuL2NoZWNrUHJvcFR5cGVzJyk7XG5cbnZhciBwcmludFdhcm5pbmcgPSBmdW5jdGlvbigpIHt9O1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBwcmludFdhcm5pbmcgPSBmdW5jdGlvbih0ZXh0KSB7XG4gICAgdmFyIG1lc3NhZ2UgPSAnV2FybmluZzogJyArIHRleHQ7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIC0tLSBXZWxjb21lIHRvIGRlYnVnZ2luZyBSZWFjdCAtLS1cbiAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoeCkge31cbiAgfTtcbn1cblxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbCgpIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaXNWYWxpZEVsZW1lbnQsIHRocm93T25EaXJlY3RBY2Nlc3MpIHtcbiAgLyogZ2xvYmFsIFN5bWJvbCAqL1xuICB2YXIgSVRFUkFUT1JfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuaXRlcmF0b3I7XG4gIHZhciBGQVVYX0lURVJBVE9SX1NZTUJPTCA9ICdAQGl0ZXJhdG9yJzsgLy8gQmVmb3JlIFN5bWJvbCBzcGVjLlxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBpdGVyYXRvciBtZXRob2QgZnVuY3Rpb24gY29udGFpbmVkIG9uIHRoZSBpdGVyYWJsZSBvYmplY3QuXG4gICAqXG4gICAqIEJlIHN1cmUgdG8gaW52b2tlIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBpdGVyYWJsZSBhcyBjb250ZXh0OlxuICAgKlxuICAgKiAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG15SXRlcmFibGUpO1xuICAgKiAgICAgaWYgKGl0ZXJhdG9yRm4pIHtcbiAgICogICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG15SXRlcmFibGUpO1xuICAgKiAgICAgICAuLi5cbiAgICogICAgIH1cbiAgICpcbiAgICogQHBhcmFtIHs/b2JqZWN0fSBtYXliZUl0ZXJhYmxlXG4gICAqIEByZXR1cm4gez9mdW5jdGlvbn1cbiAgICovXG4gIGZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gbWF5YmVJdGVyYWJsZSAmJiAoSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlW0ZBVVhfSVRFUkFUT1JfU1lNQk9MXSk7XG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gaXRlcmF0b3JGbjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdGlvbiBvZiBtZXRob2RzIHRoYXQgYWxsb3cgZGVjbGFyYXRpb24gYW5kIHZhbGlkYXRpb24gb2YgcHJvcHMgdGhhdCBhcmVcbiAgICogc3VwcGxpZWQgdG8gUmVhY3QgY29tcG9uZW50cy4gRXhhbXBsZSB1c2FnZTpcbiAgICpcbiAgICogICB2YXIgUHJvcHMgPSByZXF1aXJlKCdSZWFjdFByb3BUeXBlcycpO1xuICAgKiAgIHZhciBNeUFydGljbGUgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAqICAgICBwcm9wVHlwZXM6IHtcbiAgICogICAgICAgLy8gQW4gb3B0aW9uYWwgc3RyaW5nIHByb3AgbmFtZWQgXCJkZXNjcmlwdGlvblwiLlxuICAgKiAgICAgICBkZXNjcmlwdGlvbjogUHJvcHMuc3RyaW5nLFxuICAgKlxuICAgKiAgICAgICAvLyBBIHJlcXVpcmVkIGVudW0gcHJvcCBuYW1lZCBcImNhdGVnb3J5XCIuXG4gICAqICAgICAgIGNhdGVnb3J5OiBQcm9wcy5vbmVPZihbJ05ld3MnLCdQaG90b3MnXSkuaXNSZXF1aXJlZCxcbiAgICpcbiAgICogICAgICAgLy8gQSBwcm9wIG5hbWVkIFwiZGlhbG9nXCIgdGhhdCByZXF1aXJlcyBhbiBpbnN0YW5jZSBvZiBEaWFsb2cuXG4gICAqICAgICAgIGRpYWxvZzogUHJvcHMuaW5zdGFuY2VPZihEaWFsb2cpLmlzUmVxdWlyZWRcbiAgICogICAgIH0sXG4gICAqICAgICByZW5kZXI6IGZ1bmN0aW9uKCkgeyAuLi4gfVxuICAgKiAgIH0pO1xuICAgKlxuICAgKiBBIG1vcmUgZm9ybWFsIHNwZWNpZmljYXRpb24gb2YgaG93IHRoZXNlIG1ldGhvZHMgYXJlIHVzZWQ6XG4gICAqXG4gICAqICAgdHlwZSA6PSBhcnJheXxib29sfGZ1bmN8b2JqZWN0fG51bWJlcnxzdHJpbmd8b25lT2YoWy4uLl0pfGluc3RhbmNlT2YoLi4uKVxuICAgKiAgIGRlY2wgOj0gUmVhY3RQcm9wVHlwZXMue3R5cGV9KC5pc1JlcXVpcmVkKT9cbiAgICpcbiAgICogRWFjaCBhbmQgZXZlcnkgZGVjbGFyYXRpb24gcHJvZHVjZXMgYSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIHNpZ25hdHVyZS4gVGhpc1xuICAgKiBhbGxvd3MgdGhlIGNyZWF0aW9uIG9mIGN1c3RvbSB2YWxpZGF0aW9uIGZ1bmN0aW9ucy4gRm9yIGV4YW1wbGU6XG4gICAqXG4gICAqICB2YXIgTXlMaW5rID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgKiAgICBwcm9wVHlwZXM6IHtcbiAgICogICAgICAvLyBBbiBvcHRpb25hbCBzdHJpbmcgb3IgVVJJIHByb3AgbmFtZWQgXCJocmVmXCIuXG4gICAqICAgICAgaHJlZjogZnVuY3Rpb24ocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lKSB7XG4gICAqICAgICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgKiAgICAgICAgaWYgKHByb3BWYWx1ZSAhPSBudWxsICYmIHR5cGVvZiBwcm9wVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAqICAgICAgICAgICAgIShwcm9wVmFsdWUgaW5zdGFuY2VvZiBVUkkpKSB7XG4gICAqICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoXG4gICAqICAgICAgICAgICAgJ0V4cGVjdGVkIGEgc3RyaW5nIG9yIGFuIFVSSSBmb3IgJyArIHByb3BOYW1lICsgJyBpbiAnICtcbiAgICogICAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAqICAgICAgICAgICk7XG4gICAqICAgICAgICB9XG4gICAqICAgICAgfVxuICAgKiAgICB9LFxuICAgKiAgICByZW5kZXI6IGZ1bmN0aW9uKCkgey4uLn1cbiAgICogIH0pO1xuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG5cbiAgdmFyIEFOT05ZTU9VUyA9ICc8PGFub255bW91cz4+JztcblxuICAvLyBJbXBvcnRhbnQhXG4gIC8vIEtlZXAgdGhpcyBsaXN0IGluIHN5bmMgd2l0aCBwcm9kdWN0aW9uIHZlcnNpb24gaW4gYC4vZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignYXJyYXknKSxcbiAgICBiaWdpbnQ6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdiaWdpbnQnKSxcbiAgICBib29sOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignYm9vbGVhbicpLFxuICAgIGZ1bmM6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdmdW5jdGlvbicpLFxuICAgIG51bWJlcjogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ251bWJlcicpLFxuICAgIG9iamVjdDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ29iamVjdCcpLFxuICAgIHN0cmluZzogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ3N0cmluZycpLFxuICAgIHN5bWJvbDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ3N5bWJvbCcpLFxuXG4gICAgYW55OiBjcmVhdGVBbnlUeXBlQ2hlY2tlcigpLFxuICAgIGFycmF5T2Y6IGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcixcbiAgICBlbGVtZW50OiBjcmVhdGVFbGVtZW50VHlwZUNoZWNrZXIoKSxcbiAgICBlbGVtZW50VHlwZTogY3JlYXRlRWxlbWVudFR5cGVUeXBlQ2hlY2tlcigpLFxuICAgIGluc3RhbmNlT2Y6IGNyZWF0ZUluc3RhbmNlVHlwZUNoZWNrZXIsXG4gICAgbm9kZTogY3JlYXRlTm9kZUNoZWNrZXIoKSxcbiAgICBvYmplY3RPZjogY3JlYXRlT2JqZWN0T2ZUeXBlQ2hlY2tlcixcbiAgICBvbmVPZjogY3JlYXRlRW51bVR5cGVDaGVja2VyLFxuICAgIG9uZU9mVHlwZTogY3JlYXRlVW5pb25UeXBlQ2hlY2tlcixcbiAgICBzaGFwZTogY3JlYXRlU2hhcGVUeXBlQ2hlY2tlcixcbiAgICBleGFjdDogY3JlYXRlU3RyaWN0U2hhcGVUeXBlQ2hlY2tlcixcbiAgfTtcblxuICAvKipcbiAgICogaW5saW5lZCBPYmplY3QuaXMgcG9seWZpbGwgdG8gYXZvaWQgcmVxdWlyaW5nIGNvbnN1bWVycyBzaGlwIHRoZWlyIG93blxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9PYmplY3QvaXNcbiAgICovXG4gIC8qZXNsaW50LWRpc2FibGUgbm8tc2VsZi1jb21wYXJlKi9cbiAgZnVuY3Rpb24gaXMoeCwgeSkge1xuICAgIC8vIFNhbWVWYWx1ZSBhbGdvcml0aG1cbiAgICBpZiAoeCA9PT0geSkge1xuICAgICAgLy8gU3RlcHMgMS01LCA3LTEwXG4gICAgICAvLyBTdGVwcyA2LmItNi5lOiArMCAhPSAtMFxuICAgICAgcmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTdGVwIDYuYTogTmFOID09IE5hTlxuICAgICAgcmV0dXJuIHggIT09IHggJiYgeSAhPT0geTtcbiAgICB9XG4gIH1cbiAgLyplc2xpbnQtZW5hYmxlIG5vLXNlbGYtY29tcGFyZSovXG5cbiAgLyoqXG4gICAqIFdlIHVzZSBhbiBFcnJvci1saWtlIG9iamVjdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBhcyBwZW9wbGUgbWF5IGNhbGxcbiAgICogUHJvcFR5cGVzIGRpcmVjdGx5IGFuZCBpbnNwZWN0IHRoZWlyIG91dHB1dC4gSG93ZXZlciwgd2UgZG9uJ3QgdXNlIHJlYWxcbiAgICogRXJyb3JzIGFueW1vcmUuIFdlIGRvbid0IGluc3BlY3QgdGhlaXIgc3RhY2sgYW55d2F5LCBhbmQgY3JlYXRpbmcgdGhlbVxuICAgKiBpcyBwcm9oaWJpdGl2ZWx5IGV4cGVuc2l2ZSBpZiB0aGV5IGFyZSBjcmVhdGVkIHRvbyBvZnRlbiwgc3VjaCBhcyB3aGF0XG4gICAqIGhhcHBlbnMgaW4gb25lT2ZUeXBlKCkgZm9yIGFueSB0eXBlIGJlZm9yZSB0aGUgb25lIHRoYXQgbWF0Y2hlZC5cbiAgICovXG4gIGZ1bmN0aW9uIFByb3BUeXBlRXJyb3IobWVzc2FnZSwgZGF0YSkge1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5kYXRhID0gZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgPyBkYXRhOiB7fTtcbiAgICB0aGlzLnN0YWNrID0gJyc7XG4gIH1cbiAgLy8gTWFrZSBgaW5zdGFuY2VvZiBFcnJvcmAgc3RpbGwgd29yayBmb3IgcmV0dXJuZWQgZXJyb3JzLlxuICBQcm9wVHlwZUVycm9yLnByb3RvdHlwZSA9IEVycm9yLnByb3RvdHlwZTtcblxuICBmdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGUgPSB7fTtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA9IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrVHlwZShpc1JlcXVpcmVkLCBwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUgfHwgQU5PTllNT1VTO1xuICAgICAgcHJvcEZ1bGxOYW1lID0gcHJvcEZ1bGxOYW1lIHx8IHByb3BOYW1lO1xuXG4gICAgICBpZiAoc2VjcmV0ICE9PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgICBpZiAodGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAgICAgICAgIC8vIE5ldyBiZWhhdmlvciBvbmx5IGZvciB1c2VycyBvZiBgcHJvcC10eXBlc2AgcGFja2FnZVxuICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgLy8gT2xkIGJlaGF2aW9yIGZvciBwZW9wbGUgdXNpbmcgUmVhY3QuUHJvcFR5cGVzXG4gICAgICAgICAgdmFyIGNhY2hlS2V5ID0gY29tcG9uZW50TmFtZSArICc6JyArIHByb3BOYW1lO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gJiZcbiAgICAgICAgICAgIC8vIEF2b2lkIHNwYW1taW5nIHRoZSBjb25zb2xlIGJlY2F1c2UgdGhleSBhcmUgb2Z0ZW4gbm90IGFjdGlvbmFibGUgZXhjZXB0IGZvciBsaWIgYXV0aG9yc1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQgPCAzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAgICdZb3UgYXJlIG1hbnVhbGx5IGNhbGxpbmcgYSBSZWFjdC5Qcm9wVHlwZXMgdmFsaWRhdGlvbiAnICtcbiAgICAgICAgICAgICAgJ2Z1bmN0aW9uIGZvciB0aGUgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBwcm9wIG9uIGAnICsgY29tcG9uZW50TmFtZSArICdgLiBUaGlzIGlzIGRlcHJlY2F0ZWQgJyArXG4gICAgICAgICAgICAgICdhbmQgd2lsbCB0aHJvdyBpbiB0aGUgc3RhbmRhbG9uZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAgICdZb3UgbWF5IGJlIHNlZWluZyB0aGlzIHdhcm5pbmcgZHVlIHRvIGEgdGhpcmQtcGFydHkgUHJvcFR5cGVzICcgK1xuICAgICAgICAgICAgICAnbGlicmFyeS4gU2VlIGh0dHBzOi8vZmIubWUvcmVhY3Qtd2FybmluZy1kb250LWNhbGwtcHJvcHR5cGVzICcgKyAnZm9yIGRldGFpbHMuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1hbnVhbFByb3BUeXBlQ2FsbENhY2hlW2NhY2hlS2V5XSA9IHRydWU7XG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdUaGUgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIGlzIG1hcmtlZCBhcyByZXF1aXJlZCAnICsgKCdpbiBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgYnV0IGl0cyB2YWx1ZSBpcyBgbnVsbGAuJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1RoZSAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2AgaXMgbWFya2VkIGFzIHJlcXVpcmVkIGluICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBidXQgaXRzIHZhbHVlIGlzIGB1bmRlZmluZWRgLicpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBjaGFpbmVkQ2hlY2tUeXBlID0gY2hlY2tUeXBlLmJpbmQobnVsbCwgZmFsc2UpO1xuICAgIGNoYWluZWRDaGVja1R5cGUuaXNSZXF1aXJlZCA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIHRydWUpO1xuXG4gICAgcmV0dXJuIGNoYWluZWRDaGVja1R5cGU7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcihleHBlY3RlZFR5cGUpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09IGV4cGVjdGVkVHlwZSkge1xuICAgICAgICAvLyBgcHJvcFZhbHVlYCBiZWluZyBpbnN0YW5jZSBvZiwgc2F5LCBkYXRlL3JlZ2V4cCwgcGFzcyB0aGUgJ29iamVjdCdcbiAgICAgICAgLy8gY2hlY2ssIGJ1dCB3ZSBjYW4gb2ZmZXIgYSBtb3JlIHByZWNpc2UgZXJyb3IgbWVzc2FnZSBoZXJlIHJhdGhlciB0aGFuXG4gICAgICAgIC8vICdvZiB0eXBlIGBvYmplY3RgJy5cbiAgICAgICAgdmFyIHByZWNpc2VUeXBlID0gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAgICAgJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcmVjaXNlVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCAnKSArICgnYCcgKyBleHBlY3RlZFR5cGUgKyAnYC4nKSxcbiAgICAgICAgICB7ZXhwZWN0ZWRUeXBlOiBleHBlY3RlZFR5cGV9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFueVR5cGVDaGVja2VyKCkge1xuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcihlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcih0eXBlQ2hlY2tlcikge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKHR5cGVvZiB0eXBlQ2hlY2tlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1Byb3BlcnR5IGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgY29tcG9uZW50IGAnICsgY29tcG9uZW50TmFtZSArICdgIGhhcyBpbnZhbGlkIFByb3BUeXBlIG5vdGF0aW9uIGluc2lkZSBhcnJheU9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIGFycmF5LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlcnJvciA9IHR5cGVDaGVja2VyKHByb3BWYWx1ZSwgaSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICdbJyArIGkgKyAnXScsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbGVtZW50VHlwZVR5cGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghUmVhY3RJcy5pc1ZhbGlkRWxlbWVudFR5cGUocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQgdHlwZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUluc3RhbmNlVHlwZUNoZWNrZXIoZXhwZWN0ZWRDbGFzcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCEocHJvcHNbcHJvcE5hbWVdIGluc3RhbmNlb2YgZXhwZWN0ZWRDbGFzcykpIHtcbiAgICAgICAgdmFyIGV4cGVjdGVkQ2xhc3NOYW1lID0gZXhwZWN0ZWRDbGFzcy5uYW1lIHx8IEFOT05ZTU9VUztcbiAgICAgICAgdmFyIGFjdHVhbENsYXNzTmFtZSA9IGdldENsYXNzTmFtZShwcm9wc1twcm9wTmFtZV0pO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBhY3R1YWxDbGFzc05hbWUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgJykgKyAoJ2luc3RhbmNlIG9mIGAnICsgZXhwZWN0ZWRDbGFzc05hbWUgKyAnYC4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVudW1UeXBlQ2hlY2tlcihleHBlY3RlZFZhbHVlcykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShleHBlY3RlZFZhbHVlcykpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAgICdJbnZhbGlkIGFyZ3VtZW50cyBzdXBwbGllZCB0byBvbmVPZiwgZXhwZWN0ZWQgYW4gYXJyYXksIGdvdCAnICsgYXJndW1lbnRzLmxlbmd0aCArICcgYXJndW1lbnRzLiAnICtcbiAgICAgICAgICAgICdBIGNvbW1vbiBtaXN0YWtlIGlzIHRvIHdyaXRlIG9uZU9mKHgsIHksIHopIGluc3RlYWQgb2Ygb25lT2YoW3gsIHksIHpdKS4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGFycmF5LicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpcyhwcm9wVmFsdWUsIGV4cGVjdGVkVmFsdWVzW2ldKSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciB2YWx1ZXNTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShleHBlY3RlZFZhbHVlcywgZnVuY3Rpb24gcmVwbGFjZXIoa2V5LCB2YWx1ZSkge1xuICAgICAgICB2YXIgdHlwZSA9IGdldFByZWNpc2VUeXBlKHZhbHVlKTtcbiAgICAgICAgaWYgKHR5cGUgPT09ICdzeW1ib2wnKSB7XG4gICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHZhbHVlIGAnICsgU3RyaW5nKHByb3BWYWx1ZSkgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgb25lIG9mICcgKyB2YWx1ZXNTdHJpbmcgKyAnLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdE9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgb2JqZWN0T2YuJyk7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYW4gb2JqZWN0LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wVmFsdWUpIHtcbiAgICAgICAgaWYgKGhhcyhwcm9wVmFsdWUsIGtleSkpIHtcbiAgICAgICAgICB2YXIgZXJyb3IgPSB0eXBlQ2hlY2tlcihwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICcuJyArIGtleSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVVuaW9uVHlwZUNoZWNrZXIoYXJyYXlPZlR5cGVDaGVja2Vycykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhcnJheU9mVHlwZUNoZWNrZXJzKSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHByaW50V2FybmluZygnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb25UaGF0UmV0dXJuc051bGw7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheU9mVHlwZUNoZWNrZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICBpZiAodHlwZW9mIGNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcHJpbnRXYXJuaW5nKFxuICAgICAgICAgICdJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRvIG9uZU9mVHlwZS4gRXhwZWN0ZWQgYW4gYXJyYXkgb2YgY2hlY2sgZnVuY3Rpb25zLCBidXQgJyArXG4gICAgICAgICAgJ3JlY2VpdmVkICcgKyBnZXRQb3N0Zml4Rm9yVHlwZVdhcm5pbmcoY2hlY2tlcikgKyAnIGF0IGluZGV4ICcgKyBpICsgJy4nXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIGV4cGVjdGVkVHlwZXMgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIHZhciBjaGVja2VyUmVzdWx0ID0gY2hlY2tlcihwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGNoZWNrZXJSZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGVja2VyUmVzdWx0LmRhdGEgJiYgaGFzKGNoZWNrZXJSZXN1bHQuZGF0YSwgJ2V4cGVjdGVkVHlwZScpKSB7XG4gICAgICAgICAgZXhwZWN0ZWRUeXBlcy5wdXNoKGNoZWNrZXJSZXN1bHQuZGF0YS5leHBlY3RlZFR5cGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgZXhwZWN0ZWRUeXBlc01lc3NhZ2UgPSAoZXhwZWN0ZWRUeXBlcy5sZW5ndGggPiAwKSA/ICcsIGV4cGVjdGVkIG9uZSBvZiB0eXBlIFsnICsgZXhwZWN0ZWRUeXBlcy5qb2luKCcsICcpICsgJ10nOiAnJztcbiAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agc3VwcGxpZWQgdG8gJyArICgnYCcgKyBjb21wb25lbnROYW1lICsgJ2AnICsgZXhwZWN0ZWRUeXBlc01lc3NhZ2UgKyAnLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGludmFsaWRWYWxpZGF0b3JFcnJvcihjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBrZXksIHR5cGUpIHtcbiAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHByb3BGdWxsTmFtZSArICcuJyArIGtleSArICdgIGlzIGludmFsaWQ7ICcgK1xuICAgICAgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZSArICdgLidcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlU2hhcGVUeXBlQ2hlY2tlcihzaGFwZVR5cGVzKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlIGAnICsgcHJvcFR5cGUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYG9iamVjdGAuJykpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIga2V5IGluIHNoYXBlVHlwZXMpIHtcbiAgICAgICAgdmFyIGNoZWNrZXIgPSBzaGFwZVR5cGVzW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgY2hlY2tlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJldHVybiBpbnZhbGlkVmFsaWRhdG9yRXJyb3IoY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwga2V5LCBnZXRQcmVjaXNlVHlwZShjaGVja2VyKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVycm9yID0gY2hlY2tlcihwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICcuJyArIGtleSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlU3RyaWN0U2hhcGVUeXBlQ2hlY2tlcihzaGFwZVR5cGVzKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlIGAnICsgcHJvcFR5cGUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYG9iamVjdGAuJykpO1xuICAgICAgfVxuICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayBhbGwga2V5cyBpbiBjYXNlIHNvbWUgYXJlIHJlcXVpcmVkIGJ1dCBtaXNzaW5nIGZyb20gcHJvcHMuXG4gICAgICB2YXIgYWxsS2V5cyA9IGFzc2lnbih7fSwgcHJvcHNbcHJvcE5hbWVdLCBzaGFwZVR5cGVzKTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBhbGxLZXlzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoaGFzKHNoYXBlVHlwZXMsIGtleSkgJiYgdHlwZW9mIGNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gaW52YWxpZFZhbGlkYXRvckVycm9yKGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIGtleSwgZ2V0UHJlY2lzZVR5cGUoY2hlY2tlcikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2hlY2tlcikge1xuICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcihcbiAgICAgICAgICAgICdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBrZXkgYCcgKyBrZXkgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYC4nICtcbiAgICAgICAgICAgICdcXG5CYWQgb2JqZWN0OiAnICsgSlNPTi5zdHJpbmdpZnkocHJvcHNbcHJvcE5hbWVdLCBudWxsLCAnICAnKSArXG4gICAgICAgICAgICAnXFxuVmFsaWQga2V5czogJyArIEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHNoYXBlVHlwZXMpLCBudWxsLCAnICAnKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVycm9yID0gY2hlY2tlcihwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICcuJyArIGtleSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBpc05vZGUocHJvcFZhbHVlKSB7XG4gICAgc3dpdGNoICh0eXBlb2YgcHJvcFZhbHVlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHJldHVybiAhcHJvcFZhbHVlO1xuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBwcm9wVmFsdWUuZXZlcnkoaXNOb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcFZhbHVlID09PSBudWxsIHx8IGlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihwcm9wVmFsdWUpO1xuICAgICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChwcm9wVmFsdWUpO1xuICAgICAgICAgIHZhciBzdGVwO1xuICAgICAgICAgIGlmIChpdGVyYXRvckZuICE9PSBwcm9wVmFsdWUuZW50cmllcykge1xuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICBpZiAoIWlzTm9kZShzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJdGVyYXRvciB3aWxsIHByb3ZpZGUgZW50cnkgW2ssdl0gdHVwbGVzIHJhdGhlciB0aGFuIHZhbHVlcy5cbiAgICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3RlcC52YWx1ZTtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc05vZGUoZW50cnlbMV0pKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3ltYm9sKHByb3BUeXBlLCBwcm9wVmFsdWUpIHtcbiAgICAvLyBOYXRpdmUgU3ltYm9sLlxuICAgIGlmIChwcm9wVHlwZSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGZhbHN5IHZhbHVlIGNhbid0IGJlIGEgU3ltYm9sXG4gICAgaWYgKCFwcm9wVmFsdWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyAxOS40LjMuNSBTeW1ib2wucHJvdG90eXBlW0BAdG9TdHJpbmdUYWddID09PSAnU3ltYm9sJ1xuICAgIGlmIChwcm9wVmFsdWVbJ0BAdG9TdHJpbmdUYWcnXSA9PT0gJ1N5bWJvbCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrIGZvciBub24tc3BlYyBjb21wbGlhbnQgU3ltYm9scyB3aGljaCBhcmUgcG9seWZpbGxlZC5cbiAgICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBwcm9wVmFsdWUgaW5zdGFuY2VvZiBTeW1ib2wpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIEVxdWl2YWxlbnQgb2YgYHR5cGVvZmAgYnV0IHdpdGggc3BlY2lhbCBoYW5kbGluZyBmb3IgYXJyYXkgYW5kIHJlZ2V4cC5cbiAgZnVuY3Rpb24gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKSB7XG4gICAgdmFyIHByb3BUeXBlID0gdHlwZW9mIHByb3BWYWx1ZTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICByZXR1cm4gJ2FycmF5JztcbiAgICB9XG4gICAgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgLy8gT2xkIHdlYmtpdHMgKGF0IGxlYXN0IHVudGlsIEFuZHJvaWQgNC4wKSByZXR1cm4gJ2Z1bmN0aW9uJyByYXRoZXIgdGhhblxuICAgICAgLy8gJ29iamVjdCcgZm9yIHR5cGVvZiBhIFJlZ0V4cC4gV2UnbGwgbm9ybWFsaXplIHRoaXMgaGVyZSBzbyB0aGF0IC9ibGEvXG4gICAgICAvLyBwYXNzZXMgUHJvcFR5cGVzLm9iamVjdC5cbiAgICAgIHJldHVybiAnb2JqZWN0JztcbiAgICB9XG4gICAgaWYgKGlzU3ltYm9sKHByb3BUeXBlLCBwcm9wVmFsdWUpKSB7XG4gICAgICByZXR1cm4gJ3N5bWJvbCc7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFRoaXMgaGFuZGxlcyBtb3JlIHR5cGVzIHRoYW4gYGdldFByb3BUeXBlYC4gT25seSB1c2VkIGZvciBlcnJvciBtZXNzYWdlcy5cbiAgLy8gU2VlIGBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcmAuXG4gIGZ1bmN0aW9uIGdldFByZWNpc2VUeXBlKHByb3BWYWx1ZSkge1xuICAgIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSAndW5kZWZpbmVkJyB8fCBwcm9wVmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnJyArIHByb3BWYWx1ZTtcbiAgICB9XG4gICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICBpZiAocHJvcFR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICByZXR1cm4gJ2RhdGUnO1xuICAgICAgfSBlbHNlIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgcmV0dXJuICdyZWdleHAnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcHJvcFR5cGU7XG4gIH1cblxuICAvLyBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcG9zdGZpeGVkIHRvIGEgd2FybmluZyBhYm91dCBhbiBpbnZhbGlkIHR5cGUuXG4gIC8vIEZvciBleGFtcGxlLCBcInVuZGVmaW5lZFwiIG9yIFwib2YgdHlwZSBhcnJheVwiXG4gIGZ1bmN0aW9uIGdldFBvc3RmaXhGb3JUeXBlV2FybmluZyh2YWx1ZSkge1xuICAgIHZhciB0eXBlID0gZ2V0UHJlY2lzZVR5cGUodmFsdWUpO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgcmV0dXJuICdhbiAnICsgdHlwZTtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICBjYXNlICdyZWdleHAnOlxuICAgICAgICByZXR1cm4gJ2EgJyArIHR5cGU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXR1cm5zIGNsYXNzIG5hbWUgb2YgdGhlIG9iamVjdCwgaWYgYW55LlxuICBmdW5jdGlvbiBnZXRDbGFzc05hbWUocHJvcFZhbHVlKSB7XG4gICAgaWYgKCFwcm9wVmFsdWUuY29uc3RydWN0b3IgfHwgIXByb3BWYWx1ZS5jb25zdHJ1Y3Rvci5uYW1lKSB7XG4gICAgICByZXR1cm4gQU5PTllNT1VTO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWU7XG4gIH1cblxuICBSZWFjdFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyA9IGNoZWNrUHJvcFR5cGVzO1xuICBSZWFjdFByb3BUeXBlcy5yZXNldFdhcm5pbmdDYWNoZSA9IGNoZWNrUHJvcFR5cGVzLnJlc2V0V2FybmluZ0NhY2hlO1xuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9ICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZXNTZWNyZXQ7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IEZ1bmN0aW9uLmNhbGwuYmluZChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KTtcbiIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MTYuMTMuMVxuICogcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cblxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBoYXNTeW1ib2wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3I7XG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIDogMHhlYWM3O1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJykgOiAweGVhY2E7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50JykgOiAweGVhY2I7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJykgOiAweGVhY2M7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJykgOiAweGVhZDI7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJykgOiAweGVhY2Q7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpIDogMHhlYWNlOyAvLyBUT0RPOiBXZSBkb24ndCB1c2UgQXN5bmNNb2RlIG9yIENvbmN1cnJlbnRNb2RlIGFueW1vcmUuIFRoZXkgd2VyZSB0ZW1wb3Jhcnlcbi8vICh1bnN0YWJsZSkgQVBJcyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkLiBDYW4gd2UgcmVtb3ZlIHRoZSBzeW1ib2xzP1xuXG52YXIgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuYXN5bmNfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuY29uY3VycmVudF9tb2RlJykgOiAweGVhY2Y7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJykgOiAweGVhZDA7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJykgOiAweGVhZDE7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpIDogMHhlYWQ4O1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKSA6IDB4ZWFkMztcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5JykgOiAweGVhZDQ7XG52YXIgUkVBQ1RfQkxPQ0tfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmJsb2NrJykgOiAweGVhZDk7XG52YXIgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZ1bmRhbWVudGFsJykgOiAweGVhZDU7XG52YXIgUkVBQ1RfUkVTUE9OREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5yZXNwb25kZXInKSA6IDB4ZWFkNjtcbnZhciBSRUFDVF9TQ09QRV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3Quc2NvcGUnKSA6IDB4ZWFkNztcblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyB8fCAvLyBOb3RlOiBpdHMgdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgaWYgaXQncyBhIHBvbHlmaWxsLlxuICB0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUkVTUE9OREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfU0NPUEVfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9CTE9DS19UWVBFKTtcbn1cblxuZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuXG4gICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgIHZhciB0eXBlID0gb2JqZWN0LnR5cGU7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB2YXIgJCR0eXBlb2ZUeXBlID0gdHlwZSAmJiB0eXBlLiQkdHlwZW9mO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKCQkdHlwZW9mVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJCR0eXBlb2ZUeXBlO1xuXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59IC8vIEFzeW5jTW9kZSBpcyBkZXByZWNhdGVkIGFsb25nIHdpdGggaXNBc3luY01vZGVcblxudmFyIEFzeW5jTW9kZSA9IFJFQUNUX0FTWU5DX01PREVfVFlQRTtcbnZhciBDb25jdXJyZW50TW9kZSA9IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFO1xudmFyIENvbnRleHRDb25zdW1lciA9IFJFQUNUX0NPTlRFWFRfVFlQRTtcbnZhciBDb250ZXh0UHJvdmlkZXIgPSBSRUFDVF9QUk9WSURFUl9UWVBFO1xudmFyIEVsZW1lbnQgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG52YXIgRm9yd2FyZFJlZiA9IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG52YXIgRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xudmFyIExhenkgPSBSRUFDVF9MQVpZX1RZUEU7XG52YXIgTWVtbyA9IFJFQUNUX01FTU9fVFlQRTtcbnZhciBQb3J0YWwgPSBSRUFDVF9QT1JUQUxfVFlQRTtcbnZhciBQcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG52YXIgU3RyaWN0TW9kZSA9IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG52YXIgU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gZmFsc2U7IC8vIEFzeW5jTW9kZSBzaG91bGQgYmUgZGVwcmVjYXRlZFxuXG5mdW5jdGlvbiBpc0FzeW5jTW9kZShvYmplY3QpIHtcbiAge1xuICAgIGlmICghaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNBc3luY01vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gdHJ1ZTsgLy8gVXNpbmcgY29uc29sZVsnd2FybiddIHRvIGV2YWRlIEJhYmVsIGFuZCBFU0xpbnRcblxuICAgICAgY29uc29sZVsnd2FybiddKCdUaGUgUmVhY3RJcy5pc0FzeW5jTW9kZSgpIGFsaWFzIGhhcyBiZWVuIGRlcHJlY2F0ZWQsICcgKyAnYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBSZWFjdCAxNysuIFVwZGF0ZSB5b3VyIGNvZGUgdG8gdXNlICcgKyAnUmVhY3RJcy5pc0NvbmN1cnJlbnRNb2RlKCkgaW5zdGVhZC4gSXQgaGFzIHRoZSBleGFjdCBzYW1lIEFQSS4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHx8IHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG59XG5mdW5jdGlvbiBpc0NvbmN1cnJlbnRNb2RlKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0Q29uc3VtZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0UHJvdmlkZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRm9yd2FyZFJlZihvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xufVxuZnVuY3Rpb24gaXNGcmFnbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNMYXp5KG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0xBWllfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTWVtbyhvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9NRU1PX1RZUEU7XG59XG5mdW5jdGlvbiBpc1BvcnRhbChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9QT1JUQUxfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzUHJvZmlsZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3RyaWN0TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xufVxuXG5leHBvcnRzLkFzeW5jTW9kZSA9IEFzeW5jTW9kZTtcbmV4cG9ydHMuQ29uY3VycmVudE1vZGUgPSBDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuQ29udGV4dENvbnN1bWVyID0gQ29udGV4dENvbnN1bWVyO1xuZXhwb3J0cy5Db250ZXh0UHJvdmlkZXIgPSBDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLkVsZW1lbnQgPSBFbGVtZW50O1xuZXhwb3J0cy5Gb3J3YXJkUmVmID0gRm9yd2FyZFJlZjtcbmV4cG9ydHMuRnJhZ21lbnQgPSBGcmFnbWVudDtcbmV4cG9ydHMuTGF6eSA9IExhenk7XG5leHBvcnRzLk1lbW8gPSBNZW1vO1xuZXhwb3J0cy5Qb3J0YWwgPSBQb3J0YWw7XG5leHBvcnRzLlByb2ZpbGVyID0gUHJvZmlsZXI7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBTdHJpY3RNb2RlO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFN1c3BlbnNlO1xuZXhwb3J0cy5pc0FzeW5jTW9kZSA9IGlzQXN5bmNNb2RlO1xuZXhwb3J0cy5pc0NvbmN1cnJlbnRNb2RlID0gaXNDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuaXNDb250ZXh0Q29uc3VtZXIgPSBpc0NvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuaXNDb250ZXh0UHJvdmlkZXIgPSBpc0NvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuaXNFbGVtZW50ID0gaXNFbGVtZW50O1xuZXhwb3J0cy5pc0ZvcndhcmRSZWYgPSBpc0ZvcndhcmRSZWY7XG5leHBvcnRzLmlzRnJhZ21lbnQgPSBpc0ZyYWdtZW50O1xuZXhwb3J0cy5pc0xhenkgPSBpc0xhenk7XG5leHBvcnRzLmlzTWVtbyA9IGlzTWVtbztcbmV4cG9ydHMuaXNQb3J0YWwgPSBpc1BvcnRhbDtcbmV4cG9ydHMuaXNQcm9maWxlciA9IGlzUHJvZmlsZXI7XG5leHBvcnRzLmlzU3RyaWN0TW9kZSA9IGlzU3RyaWN0TW9kZTtcbmV4cG9ydHMuaXNTdXNwZW5zZSA9IGlzU3VzcGVuc2U7XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50VHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZTtcbmV4cG9ydHMudHlwZU9mID0gdHlwZU9mO1xuICB9KSgpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAndXNlIHN0cmljdCc7XG5cbi8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbmlmIChcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQgPT09XG4gICAgJ2Z1bmN0aW9uJ1xuKSB7XG4gIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQobmV3IEVycm9yKCkpO1xufVxuICAgICAgICAgIHZhciBSZWFjdFZlcnNpb24gPSAnMTguMy4xJztcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50Jyk7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3J0YWwnKTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZnJhZ21lbnQnKTtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvZmlsZXInKTtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvdmlkZXInKTtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jb250ZXh0Jyk7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKTtcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5Jyk7XG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5vZmZzY3JlZW4nKTtcbnZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XG5cbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBkaXNwYXRjaGVyLlxuICovXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAdHlwZSB7UmVhY3RDb21wb25lbnR9XG4gICAqL1xuICBjdXJyZW50OiBudWxsXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IGJhdGNoJ3MgY29uZmlndXJhdGlvbiBzdWNoIGFzIGhvdyBsb25nIGFuIHVwZGF0ZVxuICogc2hvdWxkIHN1c3BlbmQgZm9yIGlmIGl0IG5lZWRzIHRvLlxuICovXG52YXIgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcgPSB7XG4gIHRyYW5zaXRpb246IG51bGxcbn07XG5cbnZhciBSZWFjdEN1cnJlbnRBY3RRdWV1ZSA9IHtcbiAgY3VycmVudDogbnVsbCxcbiAgLy8gVXNlZCB0byByZXByb2R1Y2UgYmVoYXZpb3Igb2YgYGJhdGNoZWRVcGRhdGVzYCBpbiBsZWdhY3kgbW9kZS5cbiAgaXNCYXRjaGluZ0xlZ2FjeTogZmFsc2UsXG4gIGRpZFNjaGVkdWxlTGVnYWN5VXBkYXRlOiBmYWxzZVxufTtcblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBvd25lci5cbiAqXG4gKiBUaGUgY3VycmVudCBvd25lciBpcyB0aGUgY29tcG9uZW50IHdobyBzaG91bGQgb3duIGFueSBjb21wb25lbnRzIHRoYXQgYXJlXG4gKiBjdXJyZW50bHkgYmVpbmcgY29uc3RydWN0ZWQuXG4gKi9cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAdHlwZSB7UmVhY3RDb21wb25lbnR9XG4gICAqL1xuICBjdXJyZW50OiBudWxsXG59O1xuXG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IHt9O1xudmFyIGN1cnJlbnRFeHRyYVN0YWNrRnJhbWUgPSBudWxsO1xuZnVuY3Rpb24gc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKSB7XG4gIHtcbiAgICBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gc3RhY2s7XG4gIH1cbn1cblxue1xuICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLnNldEV4dHJhU3RhY2tGcmFtZSA9IGZ1bmN0aW9uIChzdGFjaykge1xuICAgIHtcbiAgICAgIGN1cnJlbnRFeHRyYVN0YWNrRnJhbWUgPSBzdGFjaztcbiAgICB9XG4gIH07IC8vIFN0YWNrIGltcGxlbWVudGF0aW9uIGluamVjdGVkIGJ5IHRoZSBjdXJyZW50IHJlbmRlcmVyLlxuXG5cbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRDdXJyZW50U3RhY2sgPSBudWxsO1xuXG4gIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0U3RhY2tBZGRlbmR1bSA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc3RhY2sgPSAnJzsgLy8gQWRkIGFuIGV4dHJhIHRvcCBmcmFtZSB3aGlsZSBhbiBlbGVtZW50IGlzIGJlaW5nIHZhbGlkYXRlZFxuXG4gICAgaWYgKGN1cnJlbnRFeHRyYVN0YWNrRnJhbWUpIHtcbiAgICAgIHN0YWNrICs9IGN1cnJlbnRFeHRyYVN0YWNrRnJhbWU7XG4gICAgfSAvLyBEZWxlZ2F0ZSB0byB0aGUgaW5qZWN0ZWQgcmVuZGVyZXItc3BlY2lmaWMgaW1wbGVtZW50YXRpb25cblxuXG4gICAgdmFyIGltcGwgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldEN1cnJlbnRTdGFjaztcblxuICAgIGlmIChpbXBsKSB7XG4gICAgICBzdGFjayArPSBpbXBsKCkgfHwgJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG52YXIgZW5hYmxlU2NvcGVBUEkgPSBmYWxzZTsgLy8gRXhwZXJpbWVudGFsIENyZWF0ZSBFdmVudCBIYW5kbGUgQVBJLlxudmFyIGVuYWJsZUNhY2hlRWxlbWVudCA9IGZhbHNlO1xudmFyIGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nID0gZmFsc2U7IC8vIE5vIGtub3duIGJ1Z3MsIGJ1dCBuZWVkcyBwZXJmb3JtYW5jZSB0ZXN0aW5nXG5cbnZhciBlbmFibGVMZWdhY3lIaWRkZW4gPSBmYWxzZTsgLy8gRW5hYmxlcyB1bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayBmZWF0dXJlIGluIEZpYmVyXG4vLyBzdHVmZi4gSW50ZW5kZWQgdG8gZW5hYmxlIFJlYWN0IGNvcmUgbWVtYmVycyB0byBtb3JlIGVhc2lseSBkZWJ1ZyBzY2hlZHVsaW5nXG4vLyBpc3N1ZXMgaW4gREVWIGJ1aWxkcy5cblxudmFyIGVuYWJsZURlYnVnVHJhY2luZyA9IGZhbHNlOyAvLyBUcmFjayB3aGljaCBGaWJlcihzKSBzY2hlZHVsZSByZW5kZXIgd29yay5cblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0ge1xuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyOiBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLFxuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzogUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsXG4gIFJlYWN0Q3VycmVudE93bmVyOiBSZWFjdEN1cnJlbnRPd25lclxufTtcblxue1xuICBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50QWN0UXVldWUgPSBSZWFjdEN1cnJlbnRBY3RRdWV1ZTtcbn1cblxuLy8gYnkgY2FsbHMgdG8gdGhlc2UgbWV0aG9kcyBieSBhIEJhYmVsIHBsdWdpbi5cbi8vXG4vLyBJbiBQUk9EIChvciBpbiBwYWNrYWdlcyB3aXRob3V0IGFjY2VzcyB0byBSZWFjdCBpbnRlcm5hbHMpLFxuLy8gdGhleSBhcmUgbGVmdCBhcyB0aGV5IGFyZSBpbnN0ZWFkLlxuXG5mdW5jdGlvbiB3YXJuKGZvcm1hdCkge1xuICB7XG4gICAge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCd3YXJuJywgZm9ybWF0LCBhcmdzKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGl0ZW0pO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxudmFyIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudCA9IHt9O1xuXG5mdW5jdGlvbiB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgY2FsbGVyTmFtZSkge1xuICB7XG4gICAgdmFyIF9jb25zdHJ1Y3RvciA9IHB1YmxpY0luc3RhbmNlLmNvbnN0cnVjdG9yO1xuICAgIHZhciBjb21wb25lbnROYW1lID0gX2NvbnN0cnVjdG9yICYmIChfY29uc3RydWN0b3IuZGlzcGxheU5hbWUgfHwgX2NvbnN0cnVjdG9yLm5hbWUpIHx8ICdSZWFjdENsYXNzJztcbiAgICB2YXIgd2FybmluZ0tleSA9IGNvbXBvbmVudE5hbWUgKyBcIi5cIiArIGNhbGxlck5hbWU7XG5cbiAgICBpZiAoZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXJyb3IoXCJDYW4ndCBjYWxsICVzIG9uIGEgY29tcG9uZW50IHRoYXQgaXMgbm90IHlldCBtb3VudGVkLiBcIiArICdUaGlzIGlzIGEgbm8tb3AsIGJ1dCBpdCBtaWdodCBpbmRpY2F0ZSBhIGJ1ZyBpbiB5b3VyIGFwcGxpY2F0aW9uLiAnICsgJ0luc3RlYWQsIGFzc2lnbiB0byBgdGhpcy5zdGF0ZWAgZGlyZWN0bHkgb3IgZGVmaW5lIGEgYHN0YXRlID0ge307YCAnICsgJ2NsYXNzIHByb3BlcnR5IHdpdGggdGhlIGRlc2lyZWQgc3RhdGUgaW4gdGhlICVzIGNvbXBvbmVudC4nLCBjYWxsZXJOYW1lLCBjb21wb25lbnROYW1lKTtcblxuICAgIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudFt3YXJuaW5nS2V5XSA9IHRydWU7XG4gIH1cbn1cbi8qKlxuICogVGhpcyBpcyB0aGUgYWJzdHJhY3QgQVBJIGZvciBhbiB1cGRhdGUgcXVldWUuXG4gKi9cblxuXG52YXIgUmVhY3ROb29wVXBkYXRlUXVldWUgPSB7XG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBvciBub3QgdGhpcyBjb21wb3NpdGUgY29tcG9uZW50IGlzIG1vdW50ZWQuXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHdlIHdhbnQgdG8gdGVzdC5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBtb3VudGVkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQGZpbmFsXG4gICAqL1xuICBpc01vdW50ZWQ6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSxcblxuICAvKipcbiAgICogRm9yY2VzIGFuIHVwZGF0ZS4gVGhpcyBzaG91bGQgb25seSBiZSBpbnZva2VkIHdoZW4gaXQgaXMga25vd24gd2l0aFxuICAgKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogWW91IG1heSB3YW50IHRvIGNhbGwgdGhpcyB3aGVuIHlvdSBrbm93IHRoYXQgc29tZSBkZWVwZXIgYXNwZWN0IG9mIHRoZVxuICAgKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAgICpcbiAgICogVGhpcyB3aWxsIG5vdCBpbnZva2UgYHNob3VsZENvbXBvbmVudFVwZGF0ZWAsIGJ1dCBpdCB3aWxsIGludm9rZVxuICAgKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBjYWxsZXJOYW1lIG5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZUZvcmNlVXBkYXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICdmb3JjZVVwZGF0ZScpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgb2YgdGhlIHN0YXRlLiBBbHdheXMgdXNlIHRoaXMgb3IgYHNldFN0YXRlYCB0byBtdXRhdGUgc3RhdGUuXG4gICAqIFlvdSBzaG91bGQgdHJlYXQgYHRoaXMuc3RhdGVgIGFzIGltbXV0YWJsZS5cbiAgICpcbiAgICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgYHRoaXMuc3RhdGVgIHdpbGwgYmUgaW1tZWRpYXRlbHkgdXBkYXRlZCwgc29cbiAgICogYWNjZXNzaW5nIGB0aGlzLnN0YXRlYCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIG1heSByZXR1cm4gdGhlIG9sZCB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb21wbGV0ZVN0YXRlIE5leHQgc3RhdGUuXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgY29tcG9uZW50IGlzIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gY2FsbGVyTmFtZSBuYW1lIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGluIHRoZSBwdWJsaWMgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVSZXBsYWNlU3RhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgY29tcGxldGVTdGF0ZSwgY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ3JlcGxhY2VTdGF0ZScpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTZXRzIGEgc3Vic2V0IG9mIHRoZSBzdGF0ZS4gVGhpcyBvbmx5IGV4aXN0cyBiZWNhdXNlIF9wZW5kaW5nU3RhdGUgaXNcbiAgICogaW50ZXJuYWwuIFRoaXMgcHJvdmlkZXMgYSBtZXJnaW5nIHN0cmF0ZWd5IHRoYXQgaXMgbm90IGF2YWlsYWJsZSB0byBkZWVwXG4gICAqIHByb3BlcnRpZXMgd2hpY2ggaXMgY29uZnVzaW5nLiBUT0RPOiBFeHBvc2UgcGVuZGluZ1N0YXRlIG9yIGRvbid0IHVzZSBpdFxuICAgKiBkdXJpbmcgdGhlIG1lcmdlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcnRpYWxTdGF0ZSBOZXh0IHBhcnRpYWwgc3RhdGUgdG8gYmUgbWVyZ2VkIHdpdGggc3RhdGUuXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgY29tcG9uZW50IGlzIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gTmFtZSBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbiBpbiB0aGUgcHVibGljIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlU2V0U3RhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgcGFydGlhbFN0YXRlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAnc2V0U3RhdGUnKTtcbiAgfVxufTtcblxudmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG5cbnZhciBlbXB0eU9iamVjdCA9IHt9O1xuXG57XG4gIE9iamVjdC5mcmVlemUoZW1wdHlPYmplY3QpO1xufVxuLyoqXG4gKiBCYXNlIGNsYXNzIGhlbHBlcnMgZm9yIHRoZSB1cGRhdGluZyBzdGF0ZSBvZiBhIGNvbXBvbmVudC5cbiAqL1xuXG5cbmZ1bmN0aW9uIENvbXBvbmVudChwcm9wcywgY29udGV4dCwgdXBkYXRlcikge1xuICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7IC8vIElmIGEgY29tcG9uZW50IGhhcyBzdHJpbmcgcmVmcywgd2Ugd2lsbCBhc3NpZ24gYSBkaWZmZXJlbnQgb2JqZWN0IGxhdGVyLlxuXG4gIHRoaXMucmVmcyA9IGVtcHR5T2JqZWN0OyAvLyBXZSBpbml0aWFsaXplIHRoZSBkZWZhdWx0IHVwZGF0ZXIgYnV0IHRoZSByZWFsIG9uZSBnZXRzIGluamVjdGVkIGJ5IHRoZVxuICAvLyByZW5kZXJlci5cblxuICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xufVxuXG5Db21wb25lbnQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fTtcbi8qKlxuICogU2V0cyBhIHN1YnNldCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyB0byBtdXRhdGVcbiAqIHN0YXRlLiBZb3Ugc2hvdWxkIHRyZWF0IGB0aGlzLnN0YXRlYCBhcyBpbW11dGFibGUuXG4gKlxuICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgYHRoaXMuc3RhdGVgIHdpbGwgYmUgaW1tZWRpYXRlbHkgdXBkYXRlZCwgc29cbiAqIGFjY2Vzc2luZyBgdGhpcy5zdGF0ZWAgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuIHRoZSBvbGQgdmFsdWUuXG4gKlxuICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgY2FsbHMgdG8gYHNldFN0YXRlYCB3aWxsIHJ1biBzeW5jaHJvbm91c2x5LFxuICogYXMgdGhleSBtYXkgZXZlbnR1YWxseSBiZSBiYXRjaGVkIHRvZ2V0aGVyLiAgWW91IGNhbiBwcm92aWRlIGFuIG9wdGlvbmFsXG4gKiBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgd2hlbiB0aGUgY2FsbCB0byBzZXRTdGF0ZSBpcyBhY3R1YWxseVxuICogY29tcGxldGVkLlxuICpcbiAqIFdoZW4gYSBmdW5jdGlvbiBpcyBwcm92aWRlZCB0byBzZXRTdGF0ZSwgaXQgd2lsbCBiZSBjYWxsZWQgYXQgc29tZSBwb2ludCBpblxuICogdGhlIGZ1dHVyZSAobm90IHN5bmNocm9ub3VzbHkpLiBJdCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSB1cCB0byBkYXRlXG4gKiBjb21wb25lbnQgYXJndW1lbnRzIChzdGF0ZSwgcHJvcHMsIGNvbnRleHQpLiBUaGVzZSB2YWx1ZXMgY2FuIGJlIGRpZmZlcmVudFxuICogZnJvbSB0aGlzLiogYmVjYXVzZSB5b3VyIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgYWZ0ZXIgcmVjZWl2ZVByb3BzIGJ1dCBiZWZvcmVcbiAqIHNob3VsZENvbXBvbmVudFVwZGF0ZSwgYW5kIHRoaXMgbmV3IHN0YXRlLCBwcm9wcywgYW5kIGNvbnRleHQgd2lsbCBub3QgeWV0IGJlXG4gKiBhc3NpZ25lZCB0byB0aGlzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBwYXJ0aWFsU3RhdGUgTmV4dCBwYXJ0aWFsIHN0YXRlIG9yIGZ1bmN0aW9uIHRvXG4gKiAgICAgICAgcHJvZHVjZSBuZXh0IHBhcnRpYWwgc3RhdGUgdG8gYmUgbWVyZ2VkIHdpdGggY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgc3RhdGUgaXMgdXBkYXRlZC5cbiAqIEBmaW5hbFxuICogQHByb3RlY3RlZFxuICovXG5cbkNvbXBvbmVudC5wcm90b3R5cGUuc2V0U3RhdGUgPSBmdW5jdGlvbiAocGFydGlhbFN0YXRlLCBjYWxsYmFjaykge1xuICBpZiAodHlwZW9mIHBhcnRpYWxTdGF0ZSAhPT0gJ29iamVjdCcgJiYgdHlwZW9mIHBhcnRpYWxTdGF0ZSAhPT0gJ2Z1bmN0aW9uJyAmJiBwYXJ0aWFsU3RhdGUgIT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSAnICsgJ2Z1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4nKTtcbiAgfVxuXG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcywgcGFydGlhbFN0YXRlLCBjYWxsYmFjaywgJ3NldFN0YXRlJyk7XG59O1xuLyoqXG4gKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAqXG4gKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICpcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblxuXG5Db21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcywgY2FsbGJhY2ssICdmb3JjZVVwZGF0ZScpO1xufTtcbi8qKlxuICogRGVwcmVjYXRlZCBBUElzLiBUaGVzZSBBUElzIHVzZWQgdG8gZXhpc3Qgb24gY2xhc3NpYyBSZWFjdCBjbGFzc2VzIGJ1dCBzaW5jZVxuICogd2Ugd291bGQgbGlrZSB0byBkZXByZWNhdGUgdGhlbSwgd2UncmUgbm90IGdvaW5nIHRvIG1vdmUgdGhlbSBvdmVyIHRvIHRoaXNcbiAqIG1vZGVybiBiYXNlIGNsYXNzLiBJbnN0ZWFkLCB3ZSBkZWZpbmUgYSBnZXR0ZXIgdGhhdCB3YXJucyBpZiBpdCdzIGFjY2Vzc2VkLlxuICovXG5cblxue1xuICB2YXIgZGVwcmVjYXRlZEFQSXMgPSB7XG4gICAgaXNNb3VudGVkOiBbJ2lzTW91bnRlZCcsICdJbnN0ZWFkLCBtYWtlIHN1cmUgdG8gY2xlYW4gdXAgc3Vic2NyaXB0aW9ucyBhbmQgcGVuZGluZyByZXF1ZXN0cyBpbiAnICsgJ2NvbXBvbmVudFdpbGxVbm1vdW50IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLiddLFxuICAgIHJlcGxhY2VTdGF0ZTogWydyZXBsYWNlU3RhdGUnLCAnUmVmYWN0b3IgeW91ciBjb2RlIHRvIHVzZSBzZXRTdGF0ZSBpbnN0ZWFkIChzZWUgJyArICdodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzMyMzYpLiddXG4gIH07XG5cbiAgdmFyIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyA9IGZ1bmN0aW9uIChtZXRob2ROYW1lLCBpbmZvKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbXBvbmVudC5wcm90b3R5cGUsIG1ldGhvZE5hbWUsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCclcyguLi4pIGlzIGRlcHJlY2F0ZWQgaW4gcGxhaW4gSmF2YVNjcmlwdCBSZWFjdCBjbGFzc2VzLiAlcycsIGluZm9bMF0sIGluZm9bMV0pO1xuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9yICh2YXIgZm5OYW1lIGluIGRlcHJlY2F0ZWRBUElzKSB7XG4gICAgaWYgKGRlcHJlY2F0ZWRBUElzLmhhc093blByb3BlcnR5KGZuTmFtZSkpIHtcbiAgICAgIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyhmbk5hbWUsIGRlcHJlY2F0ZWRBUElzW2ZuTmFtZV0pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHt9XG5cbkNvbXBvbmVudER1bW15LnByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4vKipcbiAqIENvbnZlbmllbmNlIGNvbXBvbmVudCB3aXRoIGRlZmF1bHQgc2hhbGxvdyBlcXVhbGl0eSBjaGVjayBmb3Igc0NVLlxuICovXG5cbmZ1bmN0aW9uIFB1cmVDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDtcbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxudmFyIHB1cmVDb21wb25lbnRQcm90b3R5cGUgPSBQdXJlQ29tcG9uZW50LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnREdW1teSgpO1xucHVyZUNvbXBvbmVudFByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFB1cmVDb21wb25lbnQ7IC8vIEF2b2lkIGFuIGV4dHJhIHByb3RvdHlwZSBqdW1wIGZvciB0aGVzZSBtZXRob2RzLlxuXG5hc3NpZ24ocHVyZUNvbXBvbmVudFByb3RvdHlwZSwgQ29tcG9uZW50LnByb3RvdHlwZSk7XG5wdXJlQ29tcG9uZW50UHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblxuLy8gYW4gaW1tdXRhYmxlIG9iamVjdCB3aXRoIGEgc2luZ2xlIG11dGFibGUgdmFsdWVcbmZ1bmN0aW9uIGNyZWF0ZVJlZigpIHtcbiAgdmFyIHJlZk9iamVjdCA9IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH07XG5cbiAge1xuICAgIE9iamVjdC5zZWFsKHJlZk9iamVjdCk7XG4gIH1cblxuICByZXR1cm4gcmVmT2JqZWN0O1xufVxuXG52YXIgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5cbmZ1bmN0aW9uIGlzQXJyYXkoYSkge1xuICByZXR1cm4gaXNBcnJheUltcGwoYSk7XG59XG5cbi8qXG4gKiBUaGUgYCcnICsgdmFsdWVgIHBhdHRlcm4gKHVzZWQgaW4gaW4gcGVyZi1zZW5zaXRpdmUgY29kZSkgdGhyb3dzIGZvciBTeW1ib2xcbiAqIGFuZCBUZW1wb3JhbC4qIHR5cGVzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMjIwNjQuXG4gKlxuICogVGhlIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB3aWxsIHRocm93IGFuIGVhc2llci10by11bmRlcnN0YW5kLFxuICogZWFzaWVyLXRvLWRlYnVnIGV4Y2VwdGlvbiB3aXRoIGEgY2xlYXIgZXJyb3JzIG1lc3NhZ2UgbWVzc2FnZSBleHBsYWluaW5nIHRoZVxuICogcHJvYmxlbS4gKEluc3RlYWQgb2YgYSBjb25mdXNpbmcgZXhjZXB0aW9uIHRocm93biBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uXG4gKiBvZiB0aGUgYHZhbHVlYCBvYmplY3QpLlxuICovXG4vLyAkRmxvd0ZpeE1lIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuZnVuY3Rpb24gdHlwZU5hbWUodmFsdWUpIHtcbiAge1xuICAgIC8vIHRvU3RyaW5nVGFnIGlzIG5lZWRlZCBmb3IgbmFtZXNwYWNlZCB0eXBlcyBsaWtlIFRlbXBvcmFsLkluc3RhbnRcbiAgICB2YXIgaGFzVG9TdHJpbmdUYWcgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC50b1N0cmluZ1RhZztcbiAgICB2YXIgdHlwZSA9IGhhc1RvU3RyaW5nVGFnICYmIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10gfHwgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fCAnT2JqZWN0JztcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufSAvLyAkRmxvd0ZpeE1lIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuXG5cbmZ1bmN0aW9uIHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSB7XG4gIHtcbiAgICB0cnkge1xuICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIC8vIElmIHlvdSBlbmRlZCB1cCBoZXJlIGJ5IGZvbGxvd2luZyBhbiBleGNlcHRpb24gY2FsbCBzdGFjaywgaGVyZSdzIHdoYXQnc1xuICAvLyBoYXBwZW5lZDogeW91IHN1cHBsaWVkIGFuIG9iamVjdCBvciBzeW1ib2wgdmFsdWUgdG8gUmVhY3QgKGFzIGEgcHJvcCwga2V5LFxuICAvLyBET00gYXR0cmlidXRlLCBDU1MgcHJvcGVydHksIHN0cmluZyByZWYsIGV0Yy4pIGFuZCB3aGVuIFJlYWN0IHRyaWVkIHRvXG4gIC8vIGNvZXJjZSBpdCB0byBhIHN0cmluZyB1c2luZyBgJycgKyB2YWx1ZWAsIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLlxuICAvL1xuICAvLyBUaGUgbW9zdCBjb21tb24gdHlwZXMgdGhhdCB3aWxsIGNhdXNlIHRoaXMgZXhjZXB0aW9uIGFyZSBgU3ltYm9sYCBpbnN0YW5jZXNcbiAgLy8gYW5kIFRlbXBvcmFsIG9iamVjdHMgbGlrZSBgVGVtcG9yYWwuSW5zdGFudGAuIEJ1dCBhbnkgb2JqZWN0IHRoYXQgaGFzIGFcbiAgLy8gYHZhbHVlT2ZgIG9yIGBbU3ltYm9sLnRvUHJpbWl0aXZlXWAgbWV0aG9kIHRoYXQgdGhyb3dzIHdpbGwgYWxzbyBjYXVzZSB0aGlzXG4gIC8vIGV4Y2VwdGlvbi4gKExpYnJhcnkgYXV0aG9ycyBkbyB0aGlzIHRvIHByZXZlbnQgdXNlcnMgZnJvbSB1c2luZyBidWlsdC1pblxuICAvLyBudW1lcmljIG9wZXJhdG9ycyBsaWtlIGArYCBvciBjb21wYXJpc29uIG9wZXJhdG9ycyBsaWtlIGA+PWAgYmVjYXVzZSBjdXN0b21cbiAgLy8gbWV0aG9kcyBhcmUgbmVlZGVkIHRvIHBlcmZvcm0gYWNjdXJhdGUgYXJpdGhtZXRpYyBvciBjb21wYXJpc29uLilcbiAgLy9cbiAgLy8gVG8gZml4IHRoZSBwcm9ibGVtLCBjb2VyY2UgdGhpcyBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIGJlZm9yZVxuICAvLyBwYXNzaW5nIGl0IHRvIFJlYWN0LiBUaGUgbW9zdCByZWxpYWJsZSB3YXkgaXMgdXN1YWxseSBgU3RyaW5nKHZhbHVlKWAuXG4gIC8vXG4gIC8vIFRvIGZpbmQgd2hpY2ggdmFsdWUgaXMgdGhyb3dpbmcsIGNoZWNrIHRoZSBicm93c2VyIG9yIGRlYnVnZ2VyIGNvbnNvbGUuXG4gIC8vIEJlZm9yZSB0aGlzIGV4Y2VwdGlvbiB3YXMgdGhyb3duLCB0aGVyZSBzaG91bGQgYmUgYGNvbnNvbGUuZXJyb3JgIG91dHB1dFxuICAvLyB0aGF0IHNob3dzIHRoZSB0eXBlIChTeW1ib2wsIFRlbXBvcmFsLlBsYWluRGF0ZSwgZXRjLikgdGhhdCBjYXVzZWQgdGhlXG4gIC8vIHByb2JsZW0gYW5kIGhvdyB0aGF0IHR5cGUgd2FzIHVzZWQ6IGtleSwgYXRycmlidXRlLCBpbnB1dCB2YWx1ZSBwcm9wLCBldGMuXG4gIC8vIEluIG1vc3QgY2FzZXMsIHRoaXMgY29uc29sZSBvdXRwdXQgYWxzbyBzaG93cyB0aGUgY29tcG9uZW50IGFuZCBpdHNcbiAgLy8gYW5jZXN0b3IgY29tcG9uZW50cyB3aGVyZSB0aGUgZXhjZXB0aW9uIGhhcHBlbmVkLlxuICAvL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgcmV0dXJuICcnICsgdmFsdWU7XG59XG5mdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUob3V0ZXJUeXBlLCBpbm5lclR5cGUsIHdyYXBwZXJOYW1lKSB7XG4gIHZhciBkaXNwbGF5TmFtZSA9IG91dGVyVHlwZS5kaXNwbGF5TmFtZTtcblxuICBpZiAoZGlzcGxheU5hbWUpIHtcbiAgICByZXR1cm4gZGlzcGxheU5hbWU7XG4gIH1cblxuICB2YXIgZnVuY3Rpb25OYW1lID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICcnO1xuICByZXR1cm4gZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lO1xufSAvLyBLZWVwIGluIHN5bmMgd2l0aCByZWFjdC1yZWNvbmNpbGVyL2dldENvbXBvbmVudE5hbWVGcm9tRmliZXJcblxuXG5mdW5jdGlvbiBnZXRDb250ZXh0TmFtZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICdDb250ZXh0Jztcbn0gLy8gTm90ZSB0aGF0IHRoZSByZWNvbmNpbGVyIHBhY2thZ2Ugc2hvdWxkIGdlbmVyYWxseSBwcmVmZXIgdG8gdXNlIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoKSBpbnN0ZWFkLlxuXG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICAvLyBIb3N0IHJvb3QsIHRleHQgbm9kZSBvciBqdXN0IGludmFsaWQgdHlwZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xuXG4gICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgIHJldHVybiAnUG9ydGFsJztcblxuICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgIHJldHVybiAnUHJvZmlsZXInO1xuXG4gICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgcmV0dXJuICdTdHJpY3RNb2RlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2UnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlTGlzdCc7XG5cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICB2YXIgY29udGV4dCA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShjb250ZXh0KSArICcuQ29uc3VtZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgIHZhciBwcm92aWRlciA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShwcm92aWRlci5fY29udGV4dCkgKyAnLlByb3ZpZGVyJztcblxuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZ2V0V3JhcHBlZE5hbWUodHlwZSwgdHlwZS5yZW5kZXIsICdGb3J3YXJkUmVmJyk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICB2YXIgb3V0ZXJOYW1lID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsO1xuXG4gICAgICAgIGlmIChvdXRlck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gb3V0ZXJOYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdNZW1vJztcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGluaXQocGF5bG9hZCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxudmFyIFJFU0VSVkVEX1BST1BTID0ge1xuICBrZXk6IHRydWUsXG4gIHJlZjogdHJ1ZSxcbiAgX19zZWxmOiB0cnVlLFxuICBfX3NvdXJjZTogdHJ1ZVxufTtcbnZhciBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biwgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24sIGRpZFdhcm5BYm91dFN0cmluZ1JlZnM7XG5cbntcbiAgZGlkV2FybkFib3V0U3RyaW5nUmVmcyA9IHt9O1xufVxuXG5mdW5jdGlvbiBoYXNWYWxpZFJlZihjb25maWcpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ3JlZicpKSB7XG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdyZWYnKS5nZXQ7XG5cbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZmlnLnJlZiAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ2tleScpKSB7XG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdrZXknKS5nZXQ7XG5cbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZmlnLmtleSAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ0tleSA9IGZ1bmN0aW9uICgpIHtcbiAgICB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGBrZXlgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ2tleScsIHtcbiAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ0tleSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICB2YXIgd2FybkFib3V0QWNjZXNzaW5nUmVmID0gZnVuY3Rpb24gKCkge1xuICAgIHtcbiAgICAgIGlmICghc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24pIHtcbiAgICAgICAgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclczogYHJlZmAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgd2FybkFib3V0QWNjZXNzaW5nUmVmLmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAncmVmJywge1xuICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nUmVmLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KTtcbn1cblxuZnVuY3Rpb24gd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZykge1xuICB7XG4gICAgaWYgKHR5cGVvZiBjb25maWcucmVmID09PSAnc3RyaW5nJyAmJiBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ICYmIGNvbmZpZy5fX3NlbGYgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC5zdGF0ZU5vZGUgIT09IGNvbmZpZy5fX3NlbGYpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQudHlwZSk7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcignQ29tcG9uZW50IFwiJXNcIiBjb250YWlucyB0aGUgc3RyaW5nIHJlZiBcIiVzXCIuICcgKyAnU3VwcG9ydCBmb3Igc3RyaW5nIHJlZnMgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIG1ham9yIHJlbGVhc2UuICcgKyAnVGhpcyBjYXNlIGNhbm5vdCBiZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBhbiBhcnJvdyBmdW5jdGlvbi4gJyArICdXZSBhc2sgeW91IHRvIG1hbnVhbGx5IGZpeCB0aGlzIGNhc2UgYnkgdXNpbmcgdXNlUmVmKCkgb3IgY3JlYXRlUmVmKCkgaW5zdGVhZC4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLXN0cmluZy1yZWYnLCBjb21wb25lbnROYW1lLCBjb25maWcucmVmKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qKlxuICogRmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIGEgbmV3IFJlYWN0IGVsZW1lbnQuIFRoaXMgbm8gbG9uZ2VyIGFkaGVyZXMgdG9cbiAqIHRoZSBjbGFzcyBwYXR0ZXJuLCBzbyBkbyBub3QgdXNlIG5ldyB0byBjYWxsIGl0LiBBbHNvLCBpbnN0YW5jZW9mIGNoZWNrXG4gKiB3aWxsIG5vdCB3b3JrLiBJbnN0ZWFkIHRlc3QgJCR0eXBlb2YgZmllbGQgYWdhaW5zdCBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykgdG8gY2hlY2tcbiAqIGlmIHNvbWV0aGluZyBpcyBhIFJlYWN0IEVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0geyp9IHByb3BzXG4gKiBAcGFyYW0geyp9IGtleVxuICogQHBhcmFtIHtzdHJpbmd8b2JqZWN0fSByZWZcbiAqIEBwYXJhbSB7Kn0gb3duZXJcbiAqIEBwYXJhbSB7Kn0gc2VsZiBBICp0ZW1wb3JhcnkqIGhlbHBlciB0byBkZXRlY3QgcGxhY2VzIHdoZXJlIGB0aGlzYCBpc1xuICogZGlmZmVyZW50IGZyb20gdGhlIGBvd25lcmAgd2hlbiBSZWFjdC5jcmVhdGVFbGVtZW50IGlzIGNhbGxlZCwgc28gdGhhdCB3ZVxuICogY2FuIHdhcm4uIFdlIHdhbnQgdG8gZ2V0IHJpZCBvZiBvd25lciBhbmQgcmVwbGFjZSBzdHJpbmcgYHJlZmBzIHdpdGggYXJyb3dcbiAqIGZ1bmN0aW9ucywgYW5kIGFzIGxvbmcgYXMgYHRoaXNgIGFuZCBvd25lciBhcmUgdGhlIHNhbWUsIHRoZXJlIHdpbGwgYmUgbm9cbiAqIGNoYW5nZSBpbiBiZWhhdmlvci5cbiAqIEBwYXJhbSB7Kn0gc291cmNlIEFuIGFubm90YXRpb24gb2JqZWN0IChhZGRlZCBieSBhIHRyYW5zcGlsZXIgb3Igb3RoZXJ3aXNlKVxuICogaW5kaWNhdGluZyBmaWxlbmFtZSwgbGluZSBudW1iZXIsIGFuZC9vciBvdGhlciBpbmZvcm1hdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG5cblxudmFyIFJlYWN0RWxlbWVudCA9IGZ1bmN0aW9uICh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcbiAgdmFyIGVsZW1lbnQgPSB7XG4gICAgLy8gVGhpcyB0YWcgYWxsb3dzIHVzIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXMgYSBSZWFjdCBFbGVtZW50XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAvLyBCdWlsdC1pbiBwcm9wZXJ0aWVzIHRoYXQgYmVsb25nIG9uIHRoZSBlbGVtZW50XG4gICAgdHlwZTogdHlwZSxcbiAgICBrZXk6IGtleSxcbiAgICByZWY6IHJlZixcbiAgICBwcm9wczogcHJvcHMsXG4gICAgLy8gUmVjb3JkIHRoZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZWxlbWVudC5cbiAgICBfb3duZXI6IG93bmVyXG4gIH07XG5cbiAge1xuICAgIC8vIFRoZSB2YWxpZGF0aW9uIGZsYWcgaXMgY3VycmVudGx5IG11dGF0aXZlLiBXZSBwdXQgaXQgb25cbiAgICAvLyBhbiBleHRlcm5hbCBiYWNraW5nIHN0b3JlIHNvIHRoYXQgd2UgY2FuIGZyZWV6ZSB0aGUgd2hvbGUgb2JqZWN0LlxuICAgIC8vIFRoaXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBXZWFrTWFwIG9uY2UgdGhleSBhcmUgaW1wbGVtZW50ZWQgaW5cbiAgICAvLyBjb21tb25seSB1c2VkIGRldmVsb3BtZW50IGVudmlyb25tZW50cy5cbiAgICBlbGVtZW50Ll9zdG9yZSA9IHt9OyAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxuICAgIC8vIHRoZSB2YWxpZGF0aW9uIGZsYWcgbm9uLWVudW1lcmFibGUgKHdoZXJlIHBvc3NpYmxlLCB3aGljaCBzaG91bGRcbiAgICAvLyBpbmNsdWRlIGV2ZXJ5IGVudmlyb25tZW50IHdlIHJ1biB0ZXN0cyBpbiksIHNvIHRoZSB0ZXN0IGZyYW1ld29ya1xuICAgIC8vIGlnbm9yZXMgaXQuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudC5fc3RvcmUsICd2YWxpZGF0ZWQnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBmYWxzZVxuICAgIH0pOyAvLyBzZWxmIGFuZCBzb3VyY2UgYXJlIERFViBvbmx5IHByb3BlcnRpZXMuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zZWxmJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNlbGZcbiAgICB9KTsgLy8gVHdvIGVsZW1lbnRzIGNyZWF0ZWQgaW4gdHdvIGRpZmZlcmVudCBwbGFjZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWRcbiAgICAvLyBlcXVhbCBmb3IgdGVzdGluZyBwdXJwb3NlcyBhbmQgdGhlcmVmb3JlIHdlIGhpZGUgaXQgZnJvbSBlbnVtZXJhdGlvbi5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NvdXJjZScsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBzb3VyY2VcbiAgICB9KTtcblxuICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQucHJvcHMpO1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn07XG4vKipcbiAqIENyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3IFJlYWN0RWxlbWVudCBvZiB0aGUgZ2l2ZW4gdHlwZS5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjY3JlYXRlZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQodHlwZSwgY29uZmlnLCBjaGlsZHJlbikge1xuICB2YXIgcHJvcE5hbWU7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuICB2YXIgcHJvcHMgPSB7fTtcbiAgdmFyIGtleSA9IG51bGw7XG4gIHZhciByZWYgPSBudWxsO1xuICB2YXIgc2VsZiA9IG51bGw7XG4gIHZhciBzb3VyY2UgPSBudWxsO1xuXG4gIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICByZWYgPSBjb25maWcucmVmO1xuXG4gICAgICB7XG4gICAgICAgIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZEtleShjb25maWcpKSB7XG4gICAgICB7XG4gICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSk7XG4gICAgICB9XG5cbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9XG5cbiAgICBzZWxmID0gY29uZmlnLl9fc2VsZiA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5fX3NlbGY7XG4gICAgc291cmNlID0gY29uZmlnLl9fc291cmNlID09PSB1bmRlZmluZWQgPyBudWxsIDogY29uZmlnLl9fc291cmNlOyAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgICAgT2JqZWN0LmZyZWV6ZShjaGlsZEFycmF5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7XG4gIH0gLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXG5cblxuICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xuICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcblxuICAgIGZvciAocHJvcE5hbWUgaW4gZGVmYXVsdFByb3BzKSB7XG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB7XG4gICAgaWYgKGtleSB8fCByZWYpIHtcbiAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgJ1Vua25vd24nIDogdHlwZTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LCBwcm9wcyk7XG59XG5mdW5jdGlvbiBjbG9uZUFuZFJlcGxhY2VLZXkob2xkRWxlbWVudCwgbmV3S2V5KSB7XG4gIHZhciBuZXdFbGVtZW50ID0gUmVhY3RFbGVtZW50KG9sZEVsZW1lbnQudHlwZSwgbmV3S2V5LCBvbGRFbGVtZW50LnJlZiwgb2xkRWxlbWVudC5fc2VsZiwgb2xkRWxlbWVudC5fc291cmNlLCBvbGRFbGVtZW50Ll9vd25lciwgb2xkRWxlbWVudC5wcm9wcyk7XG4gIHJldHVybiBuZXdFbGVtZW50O1xufVxuLyoqXG4gKiBDbG9uZSBhbmQgcmV0dXJuIGEgbmV3IFJlYWN0RWxlbWVudCB1c2luZyBlbGVtZW50IGFzIHRoZSBzdGFydGluZyBwb2ludC5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjY2xvbmVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY2xvbmVFbGVtZW50KGVsZW1lbnQsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgaWYgKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgXCIgKyBlbGVtZW50ICsgXCIuXCIpO1xuICB9XG5cbiAgdmFyIHByb3BOYW1lOyAvLyBPcmlnaW5hbCBwcm9wcyBhcmUgY29waWVkXG5cbiAgdmFyIHByb3BzID0gYXNzaWduKHt9LCBlbGVtZW50LnByb3BzKTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgdmFyIHJlZiA9IGVsZW1lbnQucmVmOyAvLyBTZWxmIGlzIHByZXNlcnZlZCBzaW5jZSB0aGUgb3duZXIgaXMgcHJlc2VydmVkLlxuXG4gIHZhciBzZWxmID0gZWxlbWVudC5fc2VsZjsgLy8gU291cmNlIGlzIHByZXNlcnZlZCBzaW5jZSBjbG9uZUVsZW1lbnQgaXMgdW5saWtlbHkgdG8gYmUgdGFyZ2V0ZWQgYnkgYVxuICAvLyB0cmFuc3BpbGVyLCBhbmQgdGhlIG9yaWdpbmFsIHNvdXJjZSBpcyBwcm9iYWJseSBhIGJldHRlciBpbmRpY2F0b3Igb2YgdGhlXG4gIC8vIHRydWUgb3duZXIuXG5cbiAgdmFyIHNvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTsgLy8gT3duZXIgd2lsbCBiZSBwcmVzZXJ2ZWQsIHVubGVzcyByZWYgaXMgb3ZlcnJpZGRlblxuXG4gIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuXG4gIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICAvLyBTaWxlbnRseSBzdGVhbCB0aGUgcmVmIGZyb20gdGhlIHBhcmVudC5cbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KTtcbiAgICAgIH1cblxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xuICAgIH0gLy8gUmVtYWluaW5nIHByb3BlcnRpZXMgb3ZlcnJpZGUgZXhpc3RpbmcgcHJvcHNcblxuXG4gICAgdmFyIGRlZmF1bHRQcm9wcztcblxuICAgIGlmIChlbGVtZW50LnR5cGUgJiYgZWxlbWVudC50eXBlLmRlZmF1bHRQcm9wcykge1xuICAgICAgZGVmYXVsdFByb3BzID0gZWxlbWVudC50eXBlLmRlZmF1bHRQcm9wcztcbiAgICB9XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBpZiAoY29uZmlnW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkICYmIGRlZmF1bHRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IC8vIENoaWxkcmVuIGNhbiBiZSBtb3JlIHRoYW4gb25lIGFyZ3VtZW50LCBhbmQgdGhvc2UgYXJlIHRyYW5zZmVycmVkIG9udG9cbiAgLy8gdGhlIG5ld2x5IGFsbG9jYXRlZCBwcm9wcyBvYmplY3QuXG5cblxuICB2YXIgY2hpbGRyZW5MZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcblxuICBpZiAoY2hpbGRyZW5MZW5ndGggPT09IDEpIHtcbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICB9IGVsc2UgaWYgKGNoaWxkcmVuTGVuZ3RoID4gMSkge1xuICAgIHZhciBjaGlsZEFycmF5ID0gQXJyYXkoY2hpbGRyZW5MZW5ndGgpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbkxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGlsZEFycmF5W2ldID0gYXJndW1lbnRzW2kgKyAyXTtcbiAgICB9XG5cbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7XG4gIH1cblxuICByZXR1cm4gUmVhY3RFbGVtZW50KGVsZW1lbnQudHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgb3duZXIsIHByb3BzKTtcbn1cbi8qKlxuICogVmVyaWZpZXMgdGhlIG9iamVjdCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjaXN2YWxpZGVsZW1lbnRcbiAqIEBwYXJhbSB7P29iamVjdH0gb2JqZWN0XG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIGBvYmplY3RgIGlzIGEgUmVhY3RFbGVtZW50LlxuICogQGZpbmFsXG4gKi9cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5cbnZhciBTRVBBUkFUT1IgPSAnLic7XG52YXIgU1VCU0VQQVJBVE9SID0gJzonO1xuLyoqXG4gKiBFc2NhcGUgYW5kIHdyYXAga2V5IHNvIGl0IGlzIHNhZmUgdG8gdXNlIGFzIGEgcmVhY3RpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgdG8gYmUgZXNjYXBlZC5cbiAqIEByZXR1cm4ge3N0cmluZ30gdGhlIGVzY2FwZWQga2V5LlxuICovXG5cbmZ1bmN0aW9uIGVzY2FwZShrZXkpIHtcbiAgdmFyIGVzY2FwZVJlZ2V4ID0gL1s9Ol0vZztcbiAgdmFyIGVzY2FwZXJMb29rdXAgPSB7XG4gICAgJz0nOiAnPTAnLFxuICAgICc6JzogJz0yJ1xuICB9O1xuICB2YXIgZXNjYXBlZFN0cmluZyA9IGtleS5yZXBsYWNlKGVzY2FwZVJlZ2V4LCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICByZXR1cm4gZXNjYXBlckxvb2t1cFttYXRjaF07XG4gIH0pO1xuICByZXR1cm4gJyQnICsgZXNjYXBlZFN0cmluZztcbn1cbi8qKlxuICogVE9ETzogVGVzdCB0aGF0IGEgc2luZ2xlIGNoaWxkIGFuZCBhbiBhcnJheSB3aXRoIG9uZSBpdGVtIGhhdmUgdGhlIHNhbWUga2V5XG4gKiBwYXR0ZXJuLlxuICovXG5cblxudmFyIGRpZFdhcm5BYm91dE1hcHMgPSBmYWxzZTtcbnZhciB1c2VyUHJvdmlkZWRLZXlFc2NhcGVSZWdleCA9IC9cXC8rL2c7XG5cbmZ1bmN0aW9uIGVzY2FwZVVzZXJQcm92aWRlZEtleSh0ZXh0KSB7XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UodXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsICckJi8nKTtcbn1cbi8qKlxuICogR2VuZXJhdGUgYSBrZXkgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyBhIGVsZW1lbnQgd2l0aGluIGEgc2V0LlxuICpcbiAqIEBwYXJhbSB7Kn0gZWxlbWVudCBBIGVsZW1lbnQgdGhhdCBjb3VsZCBjb250YWluIGEgbWFudWFsIGtleS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBJbmRleCB0aGF0IGlzIHVzZWQgaWYgYSBtYW51YWwga2V5IGlzIG5vdCBwcm92aWRlZC5cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldEVsZW1lbnRLZXkoZWxlbWVudCwgaW5kZXgpIHtcbiAgLy8gRG8gc29tZSB0eXBlY2hlY2tpbmcgaGVyZSBzaW5jZSB3ZSBjYWxsIHRoaXMgYmxpbmRseS4gV2Ugd2FudCB0byBlbnN1cmVcbiAgLy8gdGhhdCB3ZSBkb24ndCBibG9jayBwb3RlbnRpYWwgZnV0dXJlIEVTIEFQSXMuXG4gIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ29iamVjdCcgJiYgZWxlbWVudCAhPT0gbnVsbCAmJiBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgLy8gRXhwbGljaXQga2V5XG4gICAge1xuICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihlbGVtZW50LmtleSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVzY2FwZSgnJyArIGVsZW1lbnQua2V5KTtcbiAgfSAvLyBJbXBsaWNpdCBrZXkgZGV0ZXJtaW5lZCBieSB0aGUgaW5kZXggaW4gdGhlIHNldFxuXG5cbiAgcmV0dXJuIGluZGV4LnRvU3RyaW5nKDM2KTtcbn1cblxuZnVuY3Rpb24gbWFwSW50b0FycmF5KGNoaWxkcmVuLCBhcnJheSwgZXNjYXBlZFByZWZpeCwgbmFtZVNvRmFyLCBjYWxsYmFjaykge1xuICB2YXIgdHlwZSA9IHR5cGVvZiBjaGlsZHJlbjtcblxuICBpZiAodHlwZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgLy8gQWxsIG9mIHRoZSBhYm92ZSBhcmUgcGVyY2VpdmVkIGFzIG51bGwuXG4gICAgY2hpbGRyZW4gPSBudWxsO1xuICB9XG5cbiAgdmFyIGludm9rZUNhbGxiYWNrID0gZmFsc2U7XG5cbiAgaWYgKGNoaWxkcmVuID09PSBudWxsKSB7XG4gICAgaW52b2tlQ2FsbGJhY2sgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIHN3aXRjaCAoY2hpbGRyZW4uJCR0eXBlb2YpIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgaW52b2tlQ2FsbGJhY2sgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBpZiAoaW52b2tlQ2FsbGJhY2spIHtcbiAgICB2YXIgX2NoaWxkID0gY2hpbGRyZW47XG4gICAgdmFyIG1hcHBlZENoaWxkID0gY2FsbGJhY2soX2NoaWxkKTsgLy8gSWYgaXQncyB0aGUgb25seSBjaGlsZCwgdHJlYXQgdGhlIG5hbWUgYXMgaWYgaXQgd2FzIHdyYXBwZWQgaW4gYW4gYXJyYXlcbiAgICAvLyBzbyB0aGF0IGl0J3MgY29uc2lzdGVudCBpZiB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIGdyb3dzOlxuXG4gICAgdmFyIGNoaWxkS2V5ID0gbmFtZVNvRmFyID09PSAnJyA/IFNFUEFSQVRPUiArIGdldEVsZW1lbnRLZXkoX2NoaWxkLCAwKSA6IG5hbWVTb0ZhcjtcblxuICAgIGlmIChpc0FycmF5KG1hcHBlZENoaWxkKSkge1xuICAgICAgdmFyIGVzY2FwZWRDaGlsZEtleSA9ICcnO1xuXG4gICAgICBpZiAoY2hpbGRLZXkgIT0gbnVsbCkge1xuICAgICAgICBlc2NhcGVkQ2hpbGRLZXkgPSBlc2NhcGVVc2VyUHJvdmlkZWRLZXkoY2hpbGRLZXkpICsgJy8nO1xuICAgICAgfVxuXG4gICAgICBtYXBJbnRvQXJyYXkobWFwcGVkQ2hpbGQsIGFycmF5LCBlc2NhcGVkQ2hpbGRLZXksICcnLCBmdW5jdGlvbiAoYykge1xuICAgICAgICByZXR1cm4gYztcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAobWFwcGVkQ2hpbGQgIT0gbnVsbCkge1xuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KG1hcHBlZENoaWxkKSkge1xuICAgICAgICB7XG4gICAgICAgICAgLy8gVGhlIGBpZmAgc3RhdGVtZW50IGhlcmUgcHJldmVudHMgYXV0by1kaXNhYmxpbmcgb2YgdGhlIHNhZmVcbiAgICAgICAgICAvLyBjb2VyY2lvbiBFU0xpbnQgcnVsZSwgc28gd2UgbXVzdCBtYW51YWxseSBkaXNhYmxlIGl0IGJlbG93LlxuICAgICAgICAgIC8vICRGbG93Rml4TWUgRmxvdyBpbmNvcnJlY3RseSB0aGlua3MgUmVhY3QuUG9ydGFsIGRvZXNuJ3QgaGF2ZSBhIGtleVxuICAgICAgICAgIGlmIChtYXBwZWRDaGlsZC5rZXkgJiYgKCFfY2hpbGQgfHwgX2NoaWxkLmtleSAhPT0gbWFwcGVkQ2hpbGQua2V5KSkge1xuICAgICAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihtYXBwZWRDaGlsZC5rZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG1hcHBlZENoaWxkID0gY2xvbmVBbmRSZXBsYWNlS2V5KG1hcHBlZENoaWxkLCAvLyBLZWVwIGJvdGggdGhlIChtYXBwZWQpIGFuZCBvbGQga2V5cyBpZiB0aGV5IGRpZmZlciwganVzdCBhc1xuICAgICAgICAvLyB0cmF2ZXJzZUFsbENoaWxkcmVuIHVzZWQgdG8gZG8gZm9yIG9iamVjdHMgYXMgY2hpbGRyZW5cbiAgICAgICAgZXNjYXBlZFByZWZpeCArICggLy8gJEZsb3dGaXhNZSBGbG93IGluY29ycmVjdGx5IHRoaW5rcyBSZWFjdC5Qb3J0YWwgZG9lc24ndCBoYXZlIGEga2V5XG4gICAgICAgIG1hcHBlZENoaWxkLmtleSAmJiAoIV9jaGlsZCB8fCBfY2hpbGQua2V5ICE9PSBtYXBwZWRDaGlsZC5rZXkpID8gLy8gJEZsb3dGaXhNZSBGbG93IGluY29ycmVjdGx5IHRoaW5rcyBleGlzdGluZyBlbGVtZW50J3Mga2V5IGNhbiBiZSBhIG51bWJlclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgICAgICAgZXNjYXBlVXNlclByb3ZpZGVkS2V5KCcnICsgbWFwcGVkQ2hpbGQua2V5KSArICcvJyA6ICcnKSArIGNoaWxkS2V5KTtcbiAgICAgIH1cblxuICAgICAgYXJyYXkucHVzaChtYXBwZWRDaGlsZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICB2YXIgY2hpbGQ7XG4gIHZhciBuZXh0TmFtZTtcbiAgdmFyIHN1YnRyZWVDb3VudCA9IDA7IC8vIENvdW50IG9mIGNoaWxkcmVuIGZvdW5kIGluIHRoZSBjdXJyZW50IHN1YnRyZWUuXG5cbiAgdmFyIG5leHROYW1lUHJlZml4ID0gbmFtZVNvRmFyID09PSAnJyA/IFNFUEFSQVRPUiA6IG5hbWVTb0ZhciArIFNVQlNFUEFSQVRPUjtcblxuICBpZiAoaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGlsZCA9IGNoaWxkcmVuW2ldO1xuICAgICAgbmV4dE5hbWUgPSBuZXh0TmFtZVByZWZpeCArIGdldEVsZW1lbnRLZXkoY2hpbGQsIGkpO1xuICAgICAgc3VidHJlZUNvdW50ICs9IG1hcEludG9BcnJheShjaGlsZCwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5leHROYW1lLCBjYWxsYmFjayk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihjaGlsZHJlbik7XG5cbiAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBpdGVyYWJsZUNoaWxkcmVuID0gY2hpbGRyZW47XG5cbiAgICAgIHtcbiAgICAgICAgLy8gV2FybiBhYm91dCB1c2luZyBNYXBzIGFzIGNoaWxkcmVuXG4gICAgICAgIGlmIChpdGVyYXRvckZuID09PSBpdGVyYWJsZUNoaWxkcmVuLmVudHJpZXMpIHtcbiAgICAgICAgICBpZiAoIWRpZFdhcm5BYm91dE1hcHMpIHtcbiAgICAgICAgICAgIHdhcm4oJ1VzaW5nIE1hcHMgYXMgY2hpbGRyZW4gaXMgbm90IHN1cHBvcnRlZC4gJyArICdVc2UgYW4gYXJyYXkgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLicpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRpZFdhcm5BYm91dE1hcHMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChpdGVyYWJsZUNoaWxkcmVuKTtcbiAgICAgIHZhciBzdGVwO1xuICAgICAgdmFyIGlpID0gMDtcblxuICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICBjaGlsZCA9IHN0ZXAudmFsdWU7XG4gICAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRFbGVtZW50S2V5KGNoaWxkLCBpaSsrKTtcbiAgICAgICAgc3VidHJlZUNvdW50ICs9IG1hcEludG9BcnJheShjaGlsZCwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5leHROYW1lLCBjYWxsYmFjayk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgICB2YXIgY2hpbGRyZW5TdHJpbmcgPSBTdHJpbmcoY2hpbGRyZW4pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIiArIChjaGlsZHJlblN0cmluZyA9PT0gJ1tvYmplY3QgT2JqZWN0XScgPyAnb2JqZWN0IHdpdGgga2V5cyB7JyArIE9iamVjdC5rZXlzKGNoaWxkcmVuKS5qb2luKCcsICcpICsgJ30nIDogY2hpbGRyZW5TdHJpbmcpICsgXCIpLiBcIiArICdJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5ICcgKyAnaW5zdGVhZC4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VidHJlZUNvdW50O1xufVxuXG4vKipcbiAqIE1hcHMgY2hpbGRyZW4gdGhhdCBhcmUgdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBgcHJvcHMuY2hpbGRyZW5gLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbm1hcFxuICpcbiAqIFRoZSBwcm92aWRlZCBtYXBGdW5jdGlvbihjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmdW5jIFRoZSBtYXAgZnVuY3Rpb24uXG4gKiBAcGFyYW0geyp9IGNvbnRleHQgQ29udGV4dCBmb3IgbWFwRnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBvcmRlcmVkIG1hcCBvZiByZXN1bHRzLlxuICovXG5mdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGNvdW50ID0gMDtcbiAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsICcnLCAnJywgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGZ1bmMuY2FsbChjb250ZXh0LCBjaGlsZCwgY291bnQrKyk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBDb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXNcbiAqIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVuY291bnRcbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbi5cbiAqL1xuXG5cbmZ1bmN0aW9uIGNvdW50Q2hpbGRyZW4oY2hpbGRyZW4pIHtcbiAgdmFyIG4gPSAwO1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIG4rKzsgLy8gRG9uJ3QgcmV0dXJuIGFueXRoaW5nXG4gIH0pO1xuICByZXR1cm4gbjtcbn1cblxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5mb3JlYWNoXG4gKlxuICogVGhlIHByb3ZpZGVkIGZvckVhY2hGdW5jKGNoaWxkLCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZvckVhY2hGdW5jXG4gKiBAcGFyYW0geyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgZm9yIGZvckVhY2hDb250ZXh0LlxuICovXG5mdW5jdGlvbiBmb3JFYWNoQ2hpbGRyZW4oY2hpbGRyZW4sIGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCkge1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIGZvckVhY2hGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIERvbid0IHJldHVybiBhbnl0aGluZy5cbiAgfSwgZm9yRWFjaENvbnRleHQpO1xufVxuLyoqXG4gKiBGbGF0dGVuIGEgY2hpbGRyZW4gb2JqZWN0ICh0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmApIGFuZFxuICogcmV0dXJuIGFuIGFycmF5IHdpdGggYXBwcm9wcmlhdGVseSByZS1rZXllZCBjaGlsZHJlbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW50b2FycmF5XG4gKi9cblxuXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHJldHVybiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9KSB8fCBbXTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3QgY2hpbGQgaW4gYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuIGFuZCB2ZXJpZmllcyB0aGF0IHRoZXJlXG4gKiBpcyBvbmx5IG9uZSBjaGlsZCBpbiB0aGUgY29sbGVjdGlvbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5vbmx5XG4gKlxuICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgYSBzaW5nbGUgY2hpbGQgZ2V0c1xuICogcGFzc2VkIHdpdGhvdXQgYSB3cmFwcGVyLCBidXQgdGhlIHB1cnBvc2Ugb2YgdGhpcyBoZWxwZXIgZnVuY3Rpb24gaXMgdG9cbiAqIGFic3RyYWN0IGF3YXkgdGhlIHBhcnRpY3VsYXIgc3RydWN0dXJlIG9mIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gY2hpbGRyZW4gQ2hpbGQgY29sbGVjdGlvbiBzdHJ1Y3R1cmUuXG4gKiBAcmV0dXJuIHtSZWFjdEVsZW1lbnR9IFRoZSBmaXJzdCBhbmQgb25seSBgUmVhY3RFbGVtZW50YCBjb250YWluZWQgaW4gdGhlXG4gKiBzdHJ1Y3R1cmUuXG4gKi9cblxuXG5mdW5jdGlvbiBvbmx5Q2hpbGQoY2hpbGRyZW4pIHtcbiAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLicpO1xuICB9XG5cbiAgcmV0dXJuIGNoaWxkcmVuO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDb250ZXh0KGRlZmF1bHRWYWx1ZSkge1xuICAvLyBUT0RPOiBTZWNvbmQgYXJndW1lbnQgdXNlZCB0byBiZSBhbiBvcHRpb25hbCBgY2FsY3VsYXRlQ2hhbmdlZEJpdHNgXG4gIC8vIGZ1bmN0aW9uLiBXYXJuIHRvIHJlc2VydmUgZm9yIGZ1dHVyZSB1c2U/XG4gIHZhciBjb250ZXh0ID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9DT05URVhUX1RZUEUsXG4gICAgLy8gQXMgYSB3b3JrYXJvdW5kIHRvIHN1cHBvcnQgbXVsdGlwbGUgY29uY3VycmVudCByZW5kZXJlcnMsIHdlIGNhdGVnb3JpemVcbiAgICAvLyBzb21lIHJlbmRlcmVycyBhcyBwcmltYXJ5IGFuZCBvdGhlcnMgYXMgc2Vjb25kYXJ5LiBXZSBvbmx5IGV4cGVjdFxuICAgIC8vIHRoZXJlIHRvIGJlIHR3byBjb25jdXJyZW50IHJlbmRlcmVycyBhdCBtb3N0OiBSZWFjdCBOYXRpdmUgKHByaW1hcnkpIGFuZFxuICAgIC8vIEZhYnJpYyAoc2Vjb25kYXJ5KTsgUmVhY3QgRE9NIChwcmltYXJ5KSBhbmQgUmVhY3QgQVJUIChzZWNvbmRhcnkpLlxuICAgIC8vIFNlY29uZGFyeSByZW5kZXJlcnMgc3RvcmUgdGhlaXIgY29udGV4dCB2YWx1ZXMgb24gc2VwYXJhdGUgZmllbGRzLlxuICAgIF9jdXJyZW50VmFsdWU6IGRlZmF1bHRWYWx1ZSxcbiAgICBfY3VycmVudFZhbHVlMjogZGVmYXVsdFZhbHVlLFxuICAgIC8vIFVzZWQgdG8gdHJhY2sgaG93IG1hbnkgY29uY3VycmVudCByZW5kZXJlcnMgdGhpcyBjb250ZXh0IGN1cnJlbnRseVxuICAgIC8vIHN1cHBvcnRzIHdpdGhpbiBpbiBhIHNpbmdsZSByZW5kZXJlci4gU3VjaCBhcyBwYXJhbGxlbCBzZXJ2ZXIgcmVuZGVyaW5nLlxuICAgIF90aHJlYWRDb3VudDogMCxcbiAgICAvLyBUaGVzZSBhcmUgY2lyY3VsYXJcbiAgICBQcm92aWRlcjogbnVsbCxcbiAgICBDb25zdW1lcjogbnVsbCxcbiAgICAvLyBBZGQgdGhlc2UgdG8gdXNlIHNhbWUgaGlkZGVuIGNsYXNzIGluIFZNIGFzIFNlcnZlckNvbnRleHRcbiAgICBfZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgIF9nbG9iYWxOYW1lOiBudWxsXG4gIH07XG4gIGNvbnRleHQuUHJvdmlkZXIgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX1BST1ZJREVSX1RZUEUsXG4gICAgX2NvbnRleHQ6IGNvbnRleHRcbiAgfTtcbiAgdmFyIGhhc1dhcm5lZEFib3V0VXNpbmdOZXN0ZWRDb250ZXh0Q29uc3VtZXJzID0gZmFsc2U7XG4gIHZhciBoYXNXYXJuZWRBYm91dFVzaW5nQ29uc3VtZXJQcm92aWRlciA9IGZhbHNlO1xuICB2YXIgaGFzV2FybmVkQWJvdXREaXNwbGF5TmFtZU9uQ29uc3VtZXIgPSBmYWxzZTtcblxuICB7XG4gICAgLy8gQSBzZXBhcmF0ZSBvYmplY3QsIGJ1dCBwcm94aWVzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGNvbnRleHQgb2JqZWN0IGZvclxuICAgIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LiBJdCBoYXMgYSBkaWZmZXJlbnQgJCR0eXBlb2YsIHNvIHdlIGNhbiBwcm9wZXJseVxuICAgIC8vIHdhcm4gZm9yIHRoZSBpbmNvcnJlY3QgdXNhZ2Ugb2YgQ29udGV4dCBhcyBhIENvbnN1bWVyLlxuICAgIHZhciBDb25zdW1lciA9IHtcbiAgICAgICQkdHlwZW9mOiBSRUFDVF9DT05URVhUX1RZUEUsXG4gICAgICBfY29udGV4dDogY29udGV4dFxuICAgIH07IC8vICRGbG93Rml4TWU6IEZsb3cgY29tcGxhaW5zIGFib3V0IG5vdCBzZXR0aW5nIGEgdmFsdWUsIHdoaWNoIGlzIGludGVudGlvbmFsIGhlcmVcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKENvbnN1bWVyLCB7XG4gICAgICBQcm92aWRlcjoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAoIWhhc1dhcm5lZEFib3V0VXNpbmdDb25zdW1lclByb3ZpZGVyKSB7XG4gICAgICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nQ29uc3VtZXJQcm92aWRlciA9IHRydWU7XG5cbiAgICAgICAgICAgIGVycm9yKCdSZW5kZXJpbmcgPENvbnRleHQuQ29uc3VtZXIuUHJvdmlkZXI+IGlzIG5vdCBzdXBwb3J0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiAnICsgJ2EgZnV0dXJlIG1ham9yIHJlbGVhc2UuIERpZCB5b3UgbWVhbiB0byByZW5kZXIgPENvbnRleHQuUHJvdmlkZXI+IGluc3RlYWQ/Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKF9Qcm92aWRlcikge1xuICAgICAgICAgIGNvbnRleHQuUHJvdmlkZXIgPSBfUHJvdmlkZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBfY3VycmVudFZhbHVlOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0Ll9jdXJyZW50VmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKF9jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICBjb250ZXh0Ll9jdXJyZW50VmFsdWUgPSBfY3VycmVudFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX2N1cnJlbnRWYWx1ZTI6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuX2N1cnJlbnRWYWx1ZTI7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKF9jdXJyZW50VmFsdWUyKSB7XG4gICAgICAgICAgY29udGV4dC5fY3VycmVudFZhbHVlMiA9IF9jdXJyZW50VmFsdWUyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX3RocmVhZENvdW50OiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0Ll90aHJlYWRDb3VudDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX3RocmVhZENvdW50KSB7XG4gICAgICAgICAgY29udGV4dC5fdGhyZWFkQ291bnQgPSBfdGhyZWFkQ291bnQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBDb25zdW1lcjoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAoIWhhc1dhcm5lZEFib3V0VXNpbmdOZXN0ZWRDb250ZXh0Q29uc3VtZXJzKSB7XG4gICAgICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nTmVzdGVkQ29udGV4dENvbnN1bWVycyA9IHRydWU7XG5cbiAgICAgICAgICAgIGVycm9yKCdSZW5kZXJpbmcgPENvbnRleHQuQ29uc3VtZXIuQ29uc3VtZXI+IGlzIG5vdCBzdXBwb3J0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiAnICsgJ2EgZnV0dXJlIG1ham9yIHJlbGVhc2UuIERpZCB5b3UgbWVhbiB0byByZW5kZXIgPENvbnRleHQuQ29uc3VtZXI+IGluc3RlYWQ/Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuQ29uc3VtZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBkaXNwbGF5TmFtZToge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5kaXNwbGF5TmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGlzcGxheU5hbWVPbkNvbnN1bWVyKSB7XG4gICAgICAgICAgICB3YXJuKCdTZXR0aW5nIGBkaXNwbGF5TmFtZWAgb24gQ29udGV4dC5Db25zdW1lciBoYXMgbm8gZWZmZWN0LiAnICsgXCJZb3Ugc2hvdWxkIHNldCBpdCBkaXJlY3RseSBvbiB0aGUgY29udGV4dCB3aXRoIENvbnRleHQuZGlzcGxheU5hbWUgPSAnJXMnLlwiLCBkaXNwbGF5TmFtZSk7XG5cbiAgICAgICAgICAgIGhhc1dhcm5lZEFib3V0RGlzcGxheU5hbWVPbkNvbnN1bWVyID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTsgLy8gJEZsb3dGaXhNZTogRmxvdyBjb21wbGFpbnMgYWJvdXQgbWlzc2luZyBwcm9wZXJ0aWVzIGJlY2F1c2UgaXQgZG9lc24ndCB1bmRlcnN0YW5kIGRlZmluZVByb3BlcnR5XG5cbiAgICBjb250ZXh0LkNvbnN1bWVyID0gQ29uc3VtZXI7XG4gIH1cblxuICB7XG4gICAgY29udGV4dC5fY3VycmVudFJlbmRlcmVyID0gbnVsbDtcbiAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIyID0gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBjb250ZXh0O1xufVxuXG52YXIgVW5pbml0aWFsaXplZCA9IC0xO1xudmFyIFBlbmRpbmcgPSAwO1xudmFyIFJlc29sdmVkID0gMTtcbnZhciBSZWplY3RlZCA9IDI7XG5cbmZ1bmN0aW9uIGxhenlJbml0aWFsaXplcihwYXlsb2FkKSB7XG4gIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICB2YXIgY3RvciA9IHBheWxvYWQuX3Jlc3VsdDtcbiAgICB2YXIgdGhlbmFibGUgPSBjdG9yKCk7IC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgLy8gVGhpcyBtaWdodCB0aHJvdyBlaXRoZXIgYmVjYXVzZSBpdCdzIG1pc3Npbmcgb3IgdGhyb3dzLiBJZiBzbywgd2UgdHJlYXQgaXRcbiAgICAvLyBhcyBzdGlsbCB1bmluaXRpYWxpemVkIGFuZCB0cnkgYWdhaW4gbmV4dCB0aW1lLiBXaGljaCBpcyB0aGUgc2FtZSBhcyB3aGF0XG4gICAgLy8gaGFwcGVucyBpZiB0aGUgY3RvciBvciBhbnkgd3JhcHBlcnMgcHJvY2Vzc2luZyB0aGUgY3RvciB0aHJvd3MuIFRoaXMgbWlnaHRcbiAgICAvLyBlbmQgdXAgZml4aW5nIGl0IGlmIHRoZSByZXNvbHV0aW9uIHdhcyBhIGNvbmN1cnJlbmN5IGJ1Zy5cblxuICAgIHRoZW5hYmxlLnRoZW4oZnVuY3Rpb24gKG1vZHVsZU9iamVjdCkge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZyB8fCBwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICAgICAgdmFyIHJlc29sdmVkID0gcGF5bG9hZDtcbiAgICAgICAgcmVzb2x2ZWQuX3N0YXR1cyA9IFJlc29sdmVkO1xuICAgICAgICByZXNvbHZlZC5fcmVzdWx0ID0gbW9kdWxlT2JqZWN0O1xuICAgICAgfVxuICAgIH0sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZyB8fCBwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICAgICAgdmFyIHJlamVjdGVkID0gcGF5bG9hZDtcbiAgICAgICAgcmVqZWN0ZWQuX3N0YXR1cyA9IFJlamVjdGVkO1xuICAgICAgICByZWplY3RlZC5fcmVzdWx0ID0gZXJyb3I7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBVbmluaXRpYWxpemVkKSB7XG4gICAgICAvLyBJbiBjYXNlLCB3ZSdyZSBzdGlsbCB1bmluaXRpYWxpemVkLCB0aGVuIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSB0aGVuYWJsZVxuICAgICAgLy8gdG8gcmVzb2x2ZS4gU2V0IGl0IGFzIHBlbmRpbmcgaW4gdGhlIG1lYW50aW1lLlxuICAgICAgdmFyIHBlbmRpbmcgPSBwYXlsb2FkO1xuICAgICAgcGVuZGluZy5fc3RhdHVzID0gUGVuZGluZztcbiAgICAgIHBlbmRpbmcuX3Jlc3VsdCA9IHRoZW5hYmxlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFJlc29sdmVkKSB7XG4gICAgdmFyIG1vZHVsZU9iamVjdCA9IHBheWxvYWQuX3Jlc3VsdDtcblxuICAgIHtcbiAgICAgIGlmIChtb2R1bGVPYmplY3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlcnJvcignbGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wJyArICdvcnQoKSBjYWxsLiAnICsgJ0luc3RlYWQgcmVjZWl2ZWQ6ICVzXFxuXFxuWW91ciBjb2RlIHNob3VsZCBsb29rIGxpa2U6IFxcbiAgJyArIC8vIEJyZWFrIHVwIGltcG9ydHMgdG8gYXZvaWQgYWNjaWRlbnRhbGx5IHBhcnNpbmcgdGhlbSBhcyBkZXBlbmRlbmNpZXMuXG4gICAgICAgICdjb25zdCBNeUNvbXBvbmVudCA9IGxhenkoKCkgPT4gaW1wJyArIFwib3J0KCcuL015Q29tcG9uZW50JykpXFxuXFxuXCIgKyAnRGlkIHlvdSBhY2NpZGVudGFsbHkgcHV0IGN1cmx5IGJyYWNlcyBhcm91bmQgdGhlIGltcG9ydD8nLCBtb2R1bGVPYmplY3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICghKCdkZWZhdWx0JyBpbiBtb2R1bGVPYmplY3QpKSB7XG4gICAgICAgIGVycm9yKCdsYXp5OiBFeHBlY3RlZCB0aGUgcmVzdWx0IG9mIGEgZHluYW1pYyBpbXAnICsgJ29ydCgpIGNhbGwuICcgKyAnSW5zdGVhZCByZWNlaXZlZDogJXNcXG5cXG5Zb3VyIGNvZGUgc2hvdWxkIGxvb2sgbGlrZTogXFxuICAnICsgLy8gQnJlYWsgdXAgaW1wb3J0cyB0byBhdm9pZCBhY2NpZGVudGFsbHkgcGFyc2luZyB0aGVtIGFzIGRlcGVuZGVuY2llcy5cbiAgICAgICAgJ2NvbnN0IE15Q29tcG9uZW50ID0gbGF6eSgoKSA9PiBpbXAnICsgXCJvcnQoJy4vTXlDb21wb25lbnQnKSlcIiwgbW9kdWxlT2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlT2JqZWN0LmRlZmF1bHQ7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgcGF5bG9hZC5fcmVzdWx0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGxhenkoY3Rvcikge1xuICB2YXIgcGF5bG9hZCA9IHtcbiAgICAvLyBXZSB1c2UgdGhlc2UgZmllbGRzIHRvIHN0b3JlIHRoZSByZXN1bHQuXG4gICAgX3N0YXR1czogVW5pbml0aWFsaXplZCxcbiAgICBfcmVzdWx0OiBjdG9yXG4gIH07XG4gIHZhciBsYXp5VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTEFaWV9UWVBFLFxuICAgIF9wYXlsb2FkOiBwYXlsb2FkLFxuICAgIF9pbml0OiBsYXp5SW5pdGlhbGl6ZXJcbiAgfTtcblxuICB7XG4gICAgLy8gSW4gcHJvZHVjdGlvbiwgdGhpcyB3b3VsZCBqdXN0IHNldCBpdCBvbiB0aGUgb2JqZWN0LlxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG4gICAgdmFyIHByb3BUeXBlczsgLy8gJEZsb3dGaXhNZVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobGF6eVR5cGUsIHtcbiAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBkZWZhdWx0UHJvcHM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKG5ld0RlZmF1bHRQcm9wcykge1xuICAgICAgICAgIGVycm9yKCdSZWFjdC5sYXp5KC4uLik6IEl0IGlzIG5vdCBzdXBwb3J0ZWQgdG8gYXNzaWduIGBkZWZhdWx0UHJvcHNgIHRvICcgKyAnYSBsYXp5IGNvbXBvbmVudCBpbXBvcnQuIEVpdGhlciBzcGVjaWZ5IHRoZW0gd2hlcmUgdGhlIGNvbXBvbmVudCAnICsgJ2lzIGRlZmluZWQsIG9yIGNyZWF0ZSBhIHdyYXBwaW5nIGNvbXBvbmVudCBhcm91bmQgaXQuJyk7XG5cbiAgICAgICAgICBkZWZhdWx0UHJvcHMgPSBuZXdEZWZhdWx0UHJvcHM7IC8vIE1hdGNoIHByb2R1Y3Rpb24gYmVoYXZpb3IgbW9yZSBjbG9zZWx5OlxuICAgICAgICAgIC8vICRGbG93Rml4TWVcblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5VHlwZSwgJ2RlZmF1bHRQcm9wcycsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByb3BUeXBlczoge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBwcm9wVHlwZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKG5ld1Byb3BUeXBlcykge1xuICAgICAgICAgIGVycm9yKCdSZWFjdC5sYXp5KC4uLik6IEl0IGlzIG5vdCBzdXBwb3J0ZWQgdG8gYXNzaWduIGBwcm9wVHlwZXNgIHRvICcgKyAnYSBsYXp5IGNvbXBvbmVudCBpbXBvcnQuIEVpdGhlciBzcGVjaWZ5IHRoZW0gd2hlcmUgdGhlIGNvbXBvbmVudCAnICsgJ2lzIGRlZmluZWQsIG9yIGNyZWF0ZSBhIHdyYXBwaW5nIGNvbXBvbmVudCBhcm91bmQgaXQuJyk7XG5cbiAgICAgICAgICBwcm9wVHlwZXMgPSBuZXdQcm9wVHlwZXM7IC8vIE1hdGNoIHByb2R1Y3Rpb24gYmVoYXZpb3IgbW9yZSBjbG9zZWx5OlxuICAgICAgICAgIC8vICRGbG93Rml4TWVcblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5VHlwZSwgJ3Byb3BUeXBlcycsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGxhenlUeXBlO1xufVxuXG5mdW5jdGlvbiBmb3J3YXJkUmVmKHJlbmRlcikge1xuICB7XG4gICAgaWYgKHJlbmRlciAhPSBudWxsICYmIHJlbmRlci4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSB7XG4gICAgICBlcnJvcignZm9yd2FyZFJlZiByZXF1aXJlcyBhIHJlbmRlciBmdW5jdGlvbiBidXQgcmVjZWl2ZWQgYSBgbWVtb2AgJyArICdjb21wb25lbnQuIEluc3RlYWQgb2YgZm9yd2FyZFJlZihtZW1vKC4uLikpLCB1c2UgJyArICdtZW1vKGZvcndhcmRSZWYoLi4uKSkuJyk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcmVuZGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignZm9yd2FyZFJlZiByZXF1aXJlcyBhIHJlbmRlciBmdW5jdGlvbiBidXQgd2FzIGdpdmVuICVzLicsIHJlbmRlciA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiByZW5kZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVuZGVyLmxlbmd0aCAhPT0gMCAmJiByZW5kZXIubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlbmRlciBmdW5jdGlvbnMgYWNjZXB0IGV4YWN0bHkgdHdvIHBhcmFtZXRlcnM6IHByb3BzIGFuZCByZWYuICVzJywgcmVuZGVyLmxlbmd0aCA9PT0gMSA/ICdEaWQgeW91IGZvcmdldCB0byB1c2UgdGhlIHJlZiBwYXJhbWV0ZXI/JyA6ICdBbnkgYWRkaXRpb25hbCBwYXJhbWV0ZXIgd2lsbCBiZSB1bmRlZmluZWQuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlbmRlciAhPSBudWxsKSB7XG4gICAgICBpZiAocmVuZGVyLmRlZmF1bHRQcm9wcyAhPSBudWxsIHx8IHJlbmRlci5wcm9wVHlwZXMgIT0gbnVsbCkge1xuICAgICAgICBlcnJvcignZm9yd2FyZFJlZiByZW5kZXIgZnVuY3Rpb25zIGRvIG5vdCBzdXBwb3J0IHByb3BUeXBlcyBvciBkZWZhdWx0UHJvcHMuICcgKyAnRGlkIHlvdSBhY2NpZGVudGFsbHkgcGFzcyBhIFJlYWN0IGNvbXBvbmVudD8nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZWxlbWVudFR5cGUgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUsXG4gICAgcmVuZGVyOiByZW5kZXJcbiAgfTtcblxuICB7XG4gICAgdmFyIG93bk5hbWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnRUeXBlLCAnZGlzcGxheU5hbWUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIG93bk5hbWUgPSBuYW1lOyAvLyBUaGUgaW5uZXIgY29tcG9uZW50IHNob3VsZG4ndCBpbmhlcml0IHRoaXMgZGlzcGxheSBuYW1lIGluIG1vc3QgY2FzZXMsXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIGNvbXBvbmVudCBtYXkgYmUgdXNlZCBlbHNld2hlcmUuXG4gICAgICAgIC8vIEJ1dCBpdCdzIG5pY2UgZm9yIGFub255bW91cyBmdW5jdGlvbnMgdG8gaW5oZXJpdCB0aGUgbmFtZSxcbiAgICAgICAgLy8gc28gdGhhdCBvdXIgY29tcG9uZW50LXN0YWNrIGdlbmVyYXRpb24gbG9naWMgd2lsbCBkaXNwbGF5IHRoZWlyIGZyYW1lcy5cbiAgICAgICAgLy8gQW4gYW5vbnltb3VzIGZ1bmN0aW9uIGdlbmVyYWxseSBzdWdnZXN0cyBhIHBhdHRlcm4gbGlrZTpcbiAgICAgICAgLy8gICBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7Li4ufSk7XG4gICAgICAgIC8vIFRoaXMga2luZCBvZiBpbm5lciBmdW5jdGlvbiBpcyBub3QgdXNlZCBlbHNld2hlcmUgc28gdGhlIHNpZGUgZWZmZWN0IGlzIG9rYXkuXG5cbiAgICAgICAgaWYgKCFyZW5kZXIubmFtZSAmJiAhcmVuZGVyLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgcmVuZGVyLmRpc3BsYXlOYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRUeXBlO1xufVxuXG52YXIgUkVBQ1RfTU9EVUxFX1JFRkVSRU5DRTtcblxue1xuICBSRUFDVF9NT0RVTEVfUkVGRVJFTkNFID0gU3ltYm9sLmZvcigncmVhY3QubW9kdWxlLnJlZmVyZW5jZScpO1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gLy8gTm90ZTogdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgKGUuZy4gaWYgaXQncyBhIHBvbHlmaWxsKS5cblxuXG4gIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgZW5hYmxlRGVidWdUcmFjaW5nICB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IGVuYWJsZUxlZ2FjeUhpZGRlbiAgfHwgdHlwZSA9PT0gUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgIHx8IGVuYWJsZUNhY2hlRWxlbWVudCAgfHwgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IC8vIFRoaXMgbmVlZHMgdG8gaW5jbHVkZSBhbGwgcG9zc2libGUgbW9kdWxlIHJlZmVyZW5jZSBvYmplY3RcbiAgICAvLyB0eXBlcyBzdXBwb3J0ZWQgYnkgYW55IEZsaWdodCBjb25maWd1cmF0aW9uIGFueXdoZXJlIHNpbmNlXG4gICAgLy8gd2UgZG9uJ3Qga25vdyB3aGljaCBGbGlnaHQgYnVpbGQgdGhpcyB3aWxsIGVuZCB1cCBiZWluZyB1c2VkXG4gICAgLy8gd2l0aC5cbiAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NT0RVTEVfUkVGRVJFTkNFIHx8IHR5cGUuZ2V0TW9kdWxlSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBtZW1vKHR5cGUsIGNvbXBhcmUpIHtcbiAge1xuICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpKSB7XG4gICAgICBlcnJvcignbWVtbzogVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBjb21wb25lbnQuIEluc3RlYWQgJyArICdyZWNlaXZlZDogJXMnLCB0eXBlID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTUVNT19UWVBFLFxuICAgIHR5cGU6IHR5cGUsXG4gICAgY29tcGFyZTogY29tcGFyZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbXBhcmVcbiAgfTtcblxuICB7XG4gICAgdmFyIG93bk5hbWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnRUeXBlLCAnZGlzcGxheU5hbWUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIG93bk5hbWUgPSBuYW1lOyAvLyBUaGUgaW5uZXIgY29tcG9uZW50IHNob3VsZG4ndCBpbmhlcml0IHRoaXMgZGlzcGxheSBuYW1lIGluIG1vc3QgY2FzZXMsXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIGNvbXBvbmVudCBtYXkgYmUgdXNlZCBlbHNld2hlcmUuXG4gICAgICAgIC8vIEJ1dCBpdCdzIG5pY2UgZm9yIGFub255bW91cyBmdW5jdGlvbnMgdG8gaW5oZXJpdCB0aGUgbmFtZSxcbiAgICAgICAgLy8gc28gdGhhdCBvdXIgY29tcG9uZW50LXN0YWNrIGdlbmVyYXRpb24gbG9naWMgd2lsbCBkaXNwbGF5IHRoZWlyIGZyYW1lcy5cbiAgICAgICAgLy8gQW4gYW5vbnltb3VzIGZ1bmN0aW9uIGdlbmVyYWxseSBzdWdnZXN0cyBhIHBhdHRlcm4gbGlrZTpcbiAgICAgICAgLy8gICBSZWFjdC5tZW1vKChwcm9wcykgPT4gey4uLn0pO1xuICAgICAgICAvLyBUaGlzIGtpbmQgb2YgaW5uZXIgZnVuY3Rpb24gaXMgbm90IHVzZWQgZWxzZXdoZXJlIHNvIHRoZSBzaWRlIGVmZmVjdCBpcyBva2F5LlxuXG4gICAgICAgIGlmICghdHlwZS5uYW1lICYmICF0eXBlLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgdHlwZS5kaXNwbGF5TmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50VHlwZTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZURpc3BhdGNoZXIoKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50O1xuXG4gIHtcbiAgICBpZiAoZGlzcGF0Y2hlciA9PT0gbnVsbCkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgaG9vayBjYWxsLiBIb29rcyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIG9mIHRoZSBib2R5IG9mIGEgZnVuY3Rpb24gY29tcG9uZW50LiBUaGlzIGNvdWxkIGhhcHBlbiBmb3InICsgJyBvbmUgb2YgdGhlIGZvbGxvd2luZyByZWFzb25zOlxcbicgKyAnMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuJyArICcyLiBZb3UgbWlnaHQgYmUgYnJlYWtpbmcgdGhlIFJ1bGVzIG9mIEhvb2tzXFxuJyArICczLiBZb3UgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gb25lIGNvcHkgb2YgUmVhY3QgaW4gdGhlIHNhbWUgYXBwXFxuJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS4nKTtcbiAgICB9XG4gIH0gLy8gV2lsbCByZXN1bHQgaW4gYSBudWxsIGFjY2VzcyBlcnJvciBpZiBhY2Nlc3NlZCBvdXRzaWRlIHJlbmRlciBwaGFzZS4gV2VcbiAgLy8gaW50ZW50aW9uYWxseSBkb24ndCB0aHJvdyBvdXIgb3duIGVycm9yIGJlY2F1c2UgdGhpcyBpcyBpbiBhIGhvdCBwYXRoLlxuICAvLyBBbHNvIGhlbHBzIGVuc3VyZSB0aGlzIGlzIGlubGluZWQuXG5cblxuICByZXR1cm4gZGlzcGF0Y2hlcjtcbn1cbmZ1bmN0aW9uIHVzZUNvbnRleHQoQ29udGV4dCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG5cbiAge1xuICAgIC8vIFRPRE86IGFkZCBhIG1vcmUgZ2VuZXJpYyB3YXJuaW5nIGZvciBpbnZhbGlkIHZhbHVlcy5cbiAgICBpZiAoQ29udGV4dC5fY29udGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgcmVhbENvbnRleHQgPSBDb250ZXh0Ll9jb250ZXh0OyAvLyBEb24ndCBkZWR1cGxpY2F0ZSBiZWNhdXNlIHRoaXMgbGVnaXRpbWF0ZWx5IGNhdXNlcyBidWdzXG4gICAgICAvLyBhbmQgbm9ib2R5IHNob3VsZCBiZSB1c2luZyB0aGlzIGluIGV4aXN0aW5nIGNvZGUuXG5cbiAgICAgIGlmIChyZWFsQ29udGV4dC5Db25zdW1lciA9PT0gQ29udGV4dCkge1xuICAgICAgICBlcnJvcignQ2FsbGluZyB1c2VDb250ZXh0KENvbnRleHQuQ29uc3VtZXIpIGlzIG5vdCBzdXBwb3J0ZWQsIG1heSBjYXVzZSBidWdzLCBhbmQgd2lsbCBiZSAnICsgJ3JlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIGNhbGwgdXNlQ29udGV4dChDb250ZXh0KSBpbnN0ZWFkPycpO1xuICAgICAgfSBlbHNlIGlmIChyZWFsQ29udGV4dC5Qcm92aWRlciA9PT0gQ29udGV4dCkge1xuICAgICAgICBlcnJvcignQ2FsbGluZyB1c2VDb250ZXh0KENvbnRleHQuUHJvdmlkZXIpIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnRGlkIHlvdSBtZWFuIHRvIGNhbGwgdXNlQ29udGV4dChDb250ZXh0KSBpbnN0ZWFkPycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUNvbnRleHQoQ29udGV4dCk7XG59XG5mdW5jdGlvbiB1c2VTdGF0ZShpbml0aWFsU3RhdGUpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VTdGF0ZShpbml0aWFsU3RhdGUpO1xufVxuZnVuY3Rpb24gdXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbn1cbmZ1bmN0aW9uIHVzZVJlZihpbml0aWFsVmFsdWUpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VSZWYoaW5pdGlhbFZhbHVlKTtcbn1cbmZ1bmN0aW9uIHVzZUVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZUluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlTWVtbyhjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VNZW1vKGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VEZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICB7XG4gICAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICAgIHJldHVybiBkaXNwYXRjaGVyLnVzZURlYnVnVmFsdWUodmFsdWUsIGZvcm1hdHRlckZuKTtcbiAgfVxufVxuZnVuY3Rpb24gdXNlVHJhbnNpdGlvbigpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VUcmFuc2l0aW9uKCk7XG59XG5mdW5jdGlvbiB1c2VEZWZlcnJlZFZhbHVlKHZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG59XG5mdW5jdGlvbiB1c2VJZCgpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VJZCgpO1xufVxuZnVuY3Rpb24gdXNlU3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCk7XG59XG5cbi8vIEhlbHBlcnMgdG8gcGF0Y2ggY29uc29sZS5sb2dzIHRvIGF2b2lkIGxvZ2dpbmcgZHVyaW5nIHNpZGUtZWZmZWN0IGZyZWVcbi8vIHJlcGxheWluZyBvbiByZW5kZXIgZnVuY3Rpb24uIFRoaXMgY3VycmVudGx5IG9ubHkgcGF0Y2hlcyB0aGUgb2JqZWN0XG4vLyBsYXppbHkgd2hpY2ggd29uJ3QgY292ZXIgaWYgdGhlIGxvZyBmdW5jdGlvbiB3YXMgZXh0cmFjdGVkIGVhZ2VybHkuXG4vLyBXZSBjb3VsZCBhbHNvIGVhZ2VybHkgcGF0Y2ggdGhlIG1ldGhvZC5cbnZhciBkaXNhYmxlZERlcHRoID0gMDtcbnZhciBwcmV2TG9nO1xudmFyIHByZXZJbmZvO1xudmFyIHByZXZXYXJuO1xudmFyIHByZXZFcnJvcjtcbnZhciBwcmV2R3JvdXA7XG52YXIgcHJldkdyb3VwQ29sbGFwc2VkO1xudmFyIHByZXZHcm91cEVuZDtcblxuZnVuY3Rpb24gZGlzYWJsZWRMb2coKSB7fVxuXG5kaXNhYmxlZExvZy5fX3JlYWN0RGlzYWJsZWRMb2cgPSB0cnVlO1xuZnVuY3Rpb24gZGlzYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XG4gICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcbiAgICAgIHByZXZXYXJuID0gY29uc29sZS53YXJuO1xuICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcbiAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XG4gICAgICBwcmV2R3JvdXBDb2xsYXBzZWQgPSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkO1xuICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTA5OVxuXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGRpc2FibGVkTG9nLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfTsgLy8gJEZsb3dGaXhNZSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBpbmZvOiBwcm9wcyxcbiAgICAgICAgbG9nOiBwcm9wcyxcbiAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgIGVycm9yOiBwcm9wcyxcbiAgICAgICAgZ3JvdXA6IHByb3BzLFxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgIGdyb3VwRW5kOiBwcm9wc1xuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGRpc2FibGVkRGVwdGgrKztcbiAgfVxufVxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xuICB7XG4gICAgZGlzYWJsZWREZXB0aC0tO1xuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGxvZzogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZJbmZvXG4gICAgICAgIH0pLFxuICAgICAgICB3YXJuOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZXYXJuXG4gICAgICAgIH0pLFxuICAgICAgICBlcnJvcjogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cFxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwQ29sbGFwc2VkXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cEVuZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICggIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICB2YXIgY29udHJvbDtcbiAgcmVlbnRyeSA9IHRydWU7XG4gIHZhciBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7IC8vICRGbG93Rml4TWUgSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDsgLy8gU2V0IHRoZSBkaXNwYXRjaGVyIGluIERFViBiZWNhdXNlIHRoaXMgbWlnaHQgYmUgY2FsbCBpbiB0aGUgcmVuZGVyIGZ1bmN0aW9uXG4gICAgLy8gZm9yIHdhcm5pbmdzLlxuXG4gICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBudWxsO1xuICAgIGRpc2FibGVMb2dzKCk7XG4gIH1cblxuICB0cnkge1xuICAgIC8vIFRoaXMgc2hvdWxkIHRocm93LlxuICAgIGlmIChjb25zdHJ1Y3QpIHtcbiAgICAgIC8vIFNvbWV0aGluZyBzaG91bGQgYmUgc2V0dGluZyB0aGUgcHJvcHMgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lXG5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZha2UucHJvdG90eXBlLCAncHJvcHMnLCB7XG4gICAgICAgIHNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIFdlIHVzZSBhIHRocm93aW5nIHNldHRlciBpbnN0ZWFkIG9mIGZyb3plbiBvciBub24td3JpdGFibGUgcHJvcHNcbiAgICAgICAgICAvLyBiZWNhdXNlIHRoYXQgd29uJ3QgdGhyb3cgaW4gYSBub24tc3RyaWN0IG1vZGUgZnVuY3Rpb24uXG4gICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5jb25zdHJ1Y3QpIHtcbiAgICAgICAgLy8gV2UgY29uc3RydWN0IGEgZGlmZmVyZW50IGNvbnRyb2wgZm9yIHRoaXMgY2FzZSB0byBpbmNsdWRlIGFueSBleHRyYVxuICAgICAgICAvLyBmcmFtZXMgYWRkZWQgYnkgdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICB0cnkge1xuICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZm4sIFtdLCBGYWtlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgRmFrZS5jYWxsKCk7XG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZuLmNhbGwoRmFrZS5wcm90b3R5cGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBjb250cm9sID0geDtcbiAgICAgIH1cblxuICAgICAgZm4oKTtcbiAgICB9XG4gIH0gY2F0Y2ggKHNhbXBsZSkge1xuICAgIC8vIFRoaXMgaXMgaW5saW5lZCBtYW51YWxseSBiZWNhdXNlIGNsb3N1cmUgZG9lc24ndCBkbyBpdCBmb3IgdXMuXG4gICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmIHR5cGVvZiBzYW1wbGUuc3RhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBUaGlzIGV4dHJhY3RzIHRoZSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzYW1wbGUgdGhhdCBpc24ndCBhbHNvIGluIHRoZSBjb250cm9sLlxuICAgICAgLy8gU2tpcHBpbmcgb25lIGZyYW1lIHRoYXQgd2UgYXNzdW1lIGlzIHRoZSBmcmFtZSB0aGF0IGNhbGxzIHRoZSB0d28uXG4gICAgICB2YXIgc2FtcGxlTGluZXMgPSBzYW1wbGUuc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2wuc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIHMgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxO1xuICAgICAgdmFyIGMgPSBjb250cm9sTGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgd2hpbGUgKHMgPj0gMSAmJiBjID49IDAgJiYgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAvLyBXZSBleHBlY3QgYXQgbGVhc3Qgb25lIHN0YWNrIGZyYW1lIHRvIGJlIHNoYXJlZC5cbiAgICAgICAgLy8gVHlwaWNhbGx5IHRoaXMgd2lsbCBiZSB0aGUgcm9vdCBtb3N0IG9uZS4gSG93ZXZlciwgc3RhY2sgZnJhbWVzIG1heSBiZVxuICAgICAgICAvLyBjdXQgb2ZmIGR1ZSB0byBtYXhpbXVtIHN0YWNrIGxpbWl0cy4gSW4gdGhpcyBjYXNlLCBvbmUgbWF5YmUgY3V0IG9mZlxuICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdGhlIG90aGVyLiBXZSBhc3N1bWUgdGhhdCB0aGUgc2FtcGxlIGlzIGxvbmdlciBvciB0aGUgc2FtZVxuICAgICAgICAvLyBhbmQgdGhlcmUgZm9yIGN1dCBvZmYgZWFybGllci4gU28gd2Ugc2hvdWxkIGZpbmQgdGhlIHJvb3QgbW9zdCBmcmFtZSBpblxuICAgICAgICAvLyB0aGUgc2FtcGxlIHNvbWV3aGVyZSBpbiB0aGUgY29udHJvbC5cbiAgICAgICAgYy0tO1xuICAgICAgfVxuXG4gICAgICBmb3IgKDsgcyA+PSAxICYmIGMgPj0gMDsgcy0tLCBjLS0pIHtcbiAgICAgICAgLy8gTmV4dCB3ZSBmaW5kIHRoZSBmaXJzdCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSB3aGljaCBzaG91bGQgYmUgdGhlXG4gICAgICAgIC8vIGZyYW1lIHRoYXQgY2FsbGVkIG91ciBzYW1wbGUgZnVuY3Rpb24gYW5kIHRoZSBjb250cm9sLlxuICAgICAgICBpZiAoc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIEluIFY4LCB0aGUgZmlyc3QgbGluZSBpcyBkZXNjcmliaW5nIHRoZSBtZXNzYWdlIGJ1dCBvdGhlciBWTXMgZG9uJ3QuXG4gICAgICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIHRoZSBmaXJzdCBsaW5lLCBhbmQgdGhlIGNvbnRyb2wgaXMgYWxzbyBvbiB0aGUgc2FtZVxuICAgICAgICAgIC8vIGxpbmUsIHRoYXQncyBhIHByZXR0eSBnb29kIGluZGljYXRvciB0aGF0IG91ciBzYW1wbGUgdGhyZXcgYXQgc2FtZSBsaW5lIGFzXG4gICAgICAgICAgLy8gdGhlIGNvbnRyb2wuIEkuZS4gYmVmb3JlIHdlIGVudGVyZWQgdGhlIHNhbXBsZSBmcmFtZS4gU28gd2UgaWdub3JlIHRoaXMgcmVzdWx0LlxuICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcGFzc2VkIGEgY2xhc3MgdG8gZnVuY3Rpb24gY29tcG9uZW50LCBvciBub24tZnVuY3Rpb24uXG4gICAgICAgICAgaWYgKHMgIT09IDEgfHwgYyAhPT0gMSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICBzLS07XG4gICAgICAgICAgICAgIGMtLTsgLy8gV2UgbWF5IHN0aWxsIGhhdmUgc2ltaWxhciBpbnRlcm1lZGlhdGUgZnJhbWVzIGZyb20gdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSBzaG91bGQgYmUgb3VyIG1hdGNoIHRob3VnaC5cblxuICAgICAgICAgICAgICBpZiAoYyA8IDAgfHwgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgICAgICAgIC8vIFY4IGFkZHMgYSBcIm5ld1wiIHByZWZpeCBmb3IgbmF0aXZlIGNsYXNzZXMuIExldCdzIHJlbW92ZSBpdCB0byBtYWtlIGl0IHByZXR0aWVyLlxuICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPSAnXFxuJyArIHNhbXBsZUxpbmVzW3NdLnJlcGxhY2UoJyBhdCBuZXcgJywgJyBhdCAnKTsgLy8gSWYgb3VyIGNvbXBvbmVudCBmcmFtZSBpcyBsYWJlbGVkIFwiPGFub255bW91cz5cIlxuICAgICAgICAgICAgICAgIC8vIGJ1dCB3ZSBoYXZlIGEgdXNlci1wcm92aWRlZCBcImRpc3BsYXlOYW1lXCJcbiAgICAgICAgICAgICAgICAvLyBzcGxpY2UgaXQgaW4gdG8gbWFrZSB0aGUgc3RhY2sgbW9yZSByZWFkYWJsZS5cblxuXG4gICAgICAgICAgICAgICAgaWYgKGZuLmRpc3BsYXlOYW1lICYmIF9mcmFtZS5pbmNsdWRlcygnPGFub255bW91cz4nKSkge1xuICAgICAgICAgICAgICAgICAgX2ZyYW1lID0gX2ZyYW1lLnJlcGxhY2UoJzxhbm9ueW1vdXM+JywgZm4uZGlzcGxheU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSAvLyBSZXR1cm4gdGhlIGxpbmUgd2UgZm91bmQuXG5cblxuICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gd2hpbGUgKHMgPj0gMSAmJiBjID49IDApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHJlZW50cnkgPSBmYWxzZTtcblxuICAgIHtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldmlvdXNEaXNwYXRjaGVyO1xuICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgfVxuXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xuICB9IC8vIEZhbGxiYWNrIHRvIGp1c3QgdXNpbmcgdGhlIG5hbWUgaWYgd2UgY291bGRuJ3QgbWFrZSBpdCB0aHJvdy5cblxuXG4gIHZhciBuYW1lID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogJyc7XG4gIHZhciBzeW50aGV0aWNGcmFtZSA9IG5hbWUgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lKSA6ICcnO1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzeW50aGV0aWNGcmFtZTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4gIHJldHVybiAhIShwcm90b3R5cGUgJiYgcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZSwgc291cmNlLCBvd25lckZuKSB7XG5cbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHtcbiAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKHR5cGUsIHNob3VsZENvbnN0cnVjdCh0eXBlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLnJlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAvLyBNZW1vIG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICsgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVycm9yJDEgPSB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSh2YWx1ZXMsIHR5cGVTcGVjTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIG51bGwsICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCcpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yJDEgPSBleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxICYmICEoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMnICsgJyBgJXNgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArICdmdW5jdGlvbiBtdXN0IHJldHVybiBgbnVsbGAgb3IgYW4gYEVycm9yYCBidXQgcmV0dXJuZWQgYSAlcy4gJyArICdZb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHBhc3MgYW4gYXJndW1lbnQgdG8gdGhlIHR5cGUgY2hlY2tlciAnICsgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArICdzaGFwZSBhbGwgcmVxdWlyZSBhbiBhcmd1bWVudCkuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBsb2NhdGlvbiwgdHlwZVNwZWNOYW1lLCB0eXBlb2YgZXJyb3IkMSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvciQxLm1lc3NhZ2UgaW4gbG9nZ2VkVHlwZUZhaWx1cmVzKSkge1xuICAgICAgICAgIC8vIE9ubHkgbW9uaXRvciB0aGlzIGZhaWx1cmUgb25jZSBiZWNhdXNlIHRoZXJlIHRlbmRzIHRvIGJlIGEgbG90IG9mIHRoZVxuICAgICAgICAgIC8vIHNhbWUgZXJyb3IuXG4gICAgICAgICAgbG9nZ2VkVHlwZUZhaWx1cmVzW2Vycm9yJDEubWVzc2FnZV0gPSB0cnVlO1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJ0ZhaWxlZCAlcyB0eXBlOiAlcycsIGxvY2F0aW9uLCBlcnJvciQxLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd247XG5cbntcbiAgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24gPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkge1xuICBpZiAoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQudHlwZSk7XG5cbiAgICBpZiAobmFtZSkge1xuICAgICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oc291cmNlKSB7XG4gIGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBmaWxlTmFtZSA9IHNvdXJjZS5maWxlTmFtZS5yZXBsYWNlKC9eLipbXFxcXFxcL10vLCAnJyk7XG4gICAgdmFyIGxpbmVOdW1iZXIgPSBzb3VyY2UubGluZU51bWJlcjtcbiAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHlvdXIgY29kZSBhdCAnICsgZmlsZU5hbWUgKyAnOicgKyBsaW5lTnVtYmVyICsgJy4nO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bUZvclByb3BzKGVsZW1lbnRQcm9wcykge1xuICBpZiAoZWxlbWVudFByb3BzICE9PSBudWxsICYmIGVsZW1lbnRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtKGVsZW1lbnRQcm9wcy5fX3NvdXJjZSk7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlcmUncyBubyBrZXkgZXhwbGljaXRseSBzZXQgb24gZHluYW1pYyBhcnJheXMgb2YgY2hpbGRyZW4gb3JcbiAqIG9iamVjdCBrZXlzIGFyZSBub3QgdmFsaWQuIFRoaXMgYWxsb3dzIHVzIHRvIGtlZXAgdHJhY2sgb2YgY2hpbGRyZW4gYmV0d2VlblxuICogdXBkYXRlcy5cbiAqL1xuXG5cbnZhciBvd25lckhhc0tleVVzZVdhcm5pbmcgPSB7fTtcblxuZnVuY3Rpb24gZ2V0Q3VycmVudENvbXBvbmVudEVycm9ySW5mbyhwYXJlbnRUeXBlKSB7XG4gIHZhciBpbmZvID0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG5cbiAgaWYgKCFpbmZvKSB7XG4gICAgdmFyIHBhcmVudE5hbWUgPSB0eXBlb2YgcGFyZW50VHlwZSA9PT0gJ3N0cmluZycgPyBwYXJlbnRUeXBlIDogcGFyZW50VHlwZS5kaXNwbGF5TmFtZSB8fCBwYXJlbnRUeXBlLm5hbWU7XG5cbiAgICBpZiAocGFyZW50TmFtZSkge1xuICAgICAgaW5mbyA9IFwiXFxuXFxuQ2hlY2sgdGhlIHRvcC1sZXZlbCByZW5kZXIgY2FsbCB1c2luZyA8XCIgKyBwYXJlbnROYW1lICsgXCI+LlwiO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbmZvO1xufVxuLyoqXG4gKiBXYXJuIGlmIHRoZSBlbGVtZW50IGRvZXNuJ3QgaGF2ZSBhbiBleHBsaWNpdCBrZXkgYXNzaWduZWQgdG8gaXQuXG4gKiBUaGlzIGVsZW1lbnQgaXMgaW4gYW4gYXJyYXkuIFRoZSBhcnJheSBjb3VsZCBncm93IGFuZCBzaHJpbmsgb3IgYmVcbiAqIHJlb3JkZXJlZC4gQWxsIGNoaWxkcmVuIHRoYXQgaGF2ZW4ndCBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFyZSByZXF1aXJlZCB0b1xuICogaGF2ZSBhIFwia2V5XCIgcHJvcGVydHkgYXNzaWduZWQgdG8gaXQuIEVycm9yIHN0YXR1c2VzIGFyZSBjYWNoZWQgc28gYSB3YXJuaW5nXG4gKiB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdGhhdCByZXF1aXJlcyBhIGtleS5cbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBlbGVtZW50J3MgcGFyZW50J3MgdHlwZS5cbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICBpZiAoIWVsZW1lbnQuX3N0b3JlIHx8IGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCB8fCBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgdmFyIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpO1xuXG4gIGlmIChvd25lckhhc0tleVVzZVdhcm5pbmdbY3VycmVudENvbXBvbmVudEVycm9ySW5mb10pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBvd25lckhhc0tleVVzZVdhcm5pbmdbY3VycmVudENvbXBvbmVudEVycm9ySW5mb10gPSB0cnVlOyAvLyBVc3VhbGx5IHRoZSBjdXJyZW50IG93bmVyIGlzIHRoZSBvZmZlbmRlciwgYnV0IGlmIGl0IGFjY2VwdHMgY2hpbGRyZW4gYXMgYVxuICAvLyBwcm9wZXJ0eSwgaXQgbWF5IGJlIHRoZSBjcmVhdG9yIG9mIHRoZSBjaGlsZCB0aGF0J3MgcmVzcG9uc2libGUgZm9yXG4gIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cblxuICB2YXIgY2hpbGRPd25lciA9ICcnO1xuXG4gIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX293bmVyICYmIGVsZW1lbnQuX293bmVyICE9PSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgLy8gR2l2ZSB0aGUgY29tcG9uZW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoaXMgY2hpbGQuXG4gICAgY2hpbGRPd25lciA9IFwiIEl0IHdhcyBwYXNzZWQgYSBjaGlsZCBmcm9tIFwiICsgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGVsZW1lbnQuX293bmVyLnR5cGUpICsgXCIuXCI7XG4gIH1cblxuICB7XG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgfVxufVxuLyoqXG4gKiBFbnN1cmUgdGhhdCBldmVyeSBlbGVtZW50IGVpdGhlciBpcyBwYXNzZWQgaW4gYSBzdGF0aWMgbG9jYXRpb24sIGluIGFuXG4gKiBhcnJheSB3aXRoIGFuIGV4cGxpY2l0IGtleXMgcHJvcGVydHkgZGVmaW5lZCwgb3IgaW4gYW4gb2JqZWN0IGxpdGVyYWxcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgbm9kZSdzIHBhcmVudCdzIHR5cGUuXG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlLCBwYXJlbnRUeXBlKSB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobm9kZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihub2RlKTtcblxuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgLy8gYnV0IG5vdyB3ZSBwcmludCBhIHNlcGFyYXRlIHdhcm5pbmcgZm9yIHRoZW0gbGF0ZXIuXG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgdmFyIHN0ZXA7XG5cbiAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShzdGVwLnZhbHVlLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgdmFsaWRhdGUgdGhhdCBpdHMgcHJvcHMgZm9sbG93IHRoZSBwcm9wVHlwZXMgZGVmaW5pdGlvbixcbiAqIHByb3ZpZGVkIGJ5IHRoZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BUeXBlcyhlbGVtZW50KSB7XG4gIHtcbiAgICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcblxuICAgIGlmICh0eXBlID09PSBudWxsIHx8IHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgcHJvcFR5cGVzO1xuXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCAvLyBOb3RlOiBNZW1vIG9ubHkgY2hlY2tzIG91dGVyIHByb3BzIGhlcmUuXG4gICAgLy8gSW5uZXIgcHJvcHMgYXJlIGNoZWNrZWQgaW4gdGhlIHJlY29uY2lsZXIuXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSkge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcFR5cGVzKSB7XG4gICAgICAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICBjaGVja1Byb3BUeXBlcyhwcm9wVHlwZXMsIGVsZW1lbnQucHJvcHMsICdwcm9wJywgbmFtZSwgZWxlbWVudCk7XG4gICAgfSBlbHNlIGlmICh0eXBlLlByb3BUeXBlcyAhPT0gdW5kZWZpbmVkICYmICFwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bikge1xuICAgICAgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24gPSB0cnVlOyAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxuXG4gICAgICB2YXIgX25hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG5cbiAgICAgIGVycm9yKCdDb21wb25lbnQgJXMgZGVjbGFyZWQgYFByb3BUeXBlc2AgaW5zdGVhZCBvZiBgcHJvcFR5cGVzYC4gRGlkIHlvdSBtaXNzcGVsbCB0aGUgcHJvcGVydHkgYXNzaWdubWVudD8nLCBfbmFtZSB8fCAnVW5rbm93bicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZS5nZXREZWZhdWx0UHJvcHMgPT09ICdmdW5jdGlvbicgJiYgIXR5cGUuZ2V0RGVmYXVsdFByb3BzLmlzUmVhY3RDbGFzc0FwcHJvdmVkKSB7XG4gICAgICBlcnJvcignZ2V0RGVmYXVsdFByb3BzIGlzIG9ubHkgdXNlZCBvbiBjbGFzc2ljIFJlYWN0LmNyZWF0ZUNsYXNzICcgKyAnZGVmaW5pdGlvbnMuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBgZGVmYXVsdFByb3BzYCBpbnN0ZWFkLicpO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhIGZyYWdtZW50LCB2YWxpZGF0ZSB0aGF0IGl0IGNhbiBvbmx5IGJlIHByb3ZpZGVkIHdpdGggZnJhZ21lbnQgcHJvcHNcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBmcmFnbWVudFxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVGcmFnbWVudFByb3BzKGZyYWdtZW50KSB7XG4gIHtcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGZyYWdtZW50LnByb3BzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG5cbiAgICAgIGlmIChrZXkgIT09ICdjaGlsZHJlbicgJiYga2V5ICE9PSAna2V5Jykge1xuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGZyYWdtZW50KTtcblxuICAgICAgICBlcnJvcignSW52YWxpZCBwcm9wIGAlc2Agc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4gJyArICdSZWFjdC5GcmFnbWVudCBjYW4gb25seSBoYXZlIGBrZXlgIGFuZCBgY2hpbGRyZW5gIHByb3BzLicsIGtleSk7XG5cbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShmcmFnbWVudCk7XG5cbiAgICAgIGVycm9yKCdJbnZhbGlkIGF0dHJpYnV0ZSBgcmVmYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLicpO1xuXG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uKHR5cGUsIHByb3BzLCBjaGlsZHJlbikge1xuICB2YXIgdmFsaWRUeXBlID0gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpOyAvLyBXZSB3YXJuIGluIHRoaXMgY2FzZSBidXQgZG9uJ3QgdGhyb3cuIFdlIGV4cGVjdCB0aGUgZWxlbWVudCBjcmVhdGlvbiB0b1xuICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuXG4gIGlmICghdmFsaWRUeXBlKSB7XG4gICAgdmFyIGluZm8gPSAnJztcblxuICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICBpbmZvICs9ICcgWW91IGxpa2VseSBmb3Jnb3QgdG8gZXhwb3J0IHlvdXIgY29tcG9uZW50IGZyb20gdGhlIGZpbGUgJyArIFwiaXQncyBkZWZpbmVkIGluLCBvciB5b3UgbWlnaHQgaGF2ZSBtaXhlZCB1cCBkZWZhdWx0IGFuZCBuYW1lZCBpbXBvcnRzLlwiO1xuICAgIH1cblxuICAgIHZhciBzb3VyY2VJbmZvID0gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW1Gb3JQcm9wcyhwcm9wcyk7XG5cbiAgICBpZiAoc291cmNlSW5mbykge1xuICAgICAgaW5mbyArPSBzb3VyY2VJbmZvO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbmZvICs9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xuICAgIH1cblxuICAgIHZhciB0eXBlU3RyaW5nO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSAnbnVsbCc7XG4gICAgfSBlbHNlIGlmIChpc0FycmF5KHR5cGUpKSB7XG4gICAgICB0eXBlU3RyaW5nID0gJ2FycmF5JztcbiAgICB9IGVsc2UgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSBcIjxcIiArIChnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCAnVW5rbm93bicpICsgXCIgLz5cIjtcbiAgICAgIGluZm8gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZVN0cmluZyA9IHR5cGVvZiB0eXBlO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGVycm9yKCdSZWFjdC5jcmVhdGVFbGVtZW50OiB0eXBlIGlzIGludmFsaWQgLS0gZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciAnICsgJ2J1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgJyArICdjb21wb25lbnRzKSBidXQgZ290OiAlcy4lcycsIHR5cGVTdHJpbmcsIGluZm8pO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXG5cbiAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9IC8vIFNraXAga2V5IHdhcm5pbmcgaWYgdGhlIHR5cGUgaXNuJ3QgdmFsaWQgc2luY2Ugb3VyIGtleSB2YWxpZGF0aW9uIGxvZ2ljXG4gIC8vIGRvZXNuJ3QgZXhwZWN0IGEgbm9uLXN0cmluZy9mdW5jdGlvbiB0eXBlIGFuZCBjYW4gdGhyb3cgY29uZnVzaW5nIGVycm9ycy5cbiAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAvLyAoUmVuZGVyaW5nIHdpbGwgdGhyb3cgd2l0aCBhIGhlbHBmdWwgbWVzc2FnZSBhbmQgYXMgc29vbiBhcyB0aGUgdHlwZSBpc1xuICAvLyBmaXhlZCwgdGhlIGtleSB3YXJuaW5ncyB3aWxsIGFwcGVhci4pXG5cblxuICBpZiAodmFsaWRUeXBlKSB7XG4gICAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGFyZ3VtZW50c1tpXSwgdHlwZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHtcbiAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gIH0gZWxzZSB7XG4gICAgdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbnZhciBkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSA9IGZhbHNlO1xuZnVuY3Rpb24gY3JlYXRlRmFjdG9yeVdpdGhWYWxpZGF0aW9uKHR5cGUpIHtcbiAgdmFyIHZhbGlkYXRlZEZhY3RvcnkgPSBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24uYmluZChudWxsLCB0eXBlKTtcbiAgdmFsaWRhdGVkRmFjdG9yeS50eXBlID0gdHlwZTtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSkge1xuICAgICAgZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkgPSB0cnVlO1xuXG4gICAgICB3YXJuKCdSZWFjdC5jcmVhdGVGYWN0b3J5KCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgSlNYICcgKyAnb3IgdXNlIFJlYWN0LmNyZWF0ZUVsZW1lbnQoKSBkaXJlY3RseSBpbnN0ZWFkLicpO1xuICAgIH0gLy8gTGVnYWN5IGhvb2s6IHJlbW92ZSBpdFxuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsaWRhdGVkRmFjdG9yeSwgJ3R5cGUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCdGYWN0b3J5LnR5cGUgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHRoZSBjbGFzcyBkaXJlY3RseSAnICsgJ2JlZm9yZSBwYXNzaW5nIGl0IHRvIGNyZWF0ZUZhY3RvcnkuJyk7XG5cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0eXBlJywge1xuICAgICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZWRGYWN0b3J5O1xufVxuZnVuY3Rpb24gY2xvbmVFbGVtZW50V2l0aFZhbGlkYXRpb24oZWxlbWVudCwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciBuZXdFbGVtZW50ID0gY2xvbmVFbGVtZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gIH1cblxuICB2YWxpZGF0ZVByb3BUeXBlcyhuZXdFbGVtZW50KTtcbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihzY29wZSwgb3B0aW9ucykge1xuICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uO1xuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uID0ge307XG4gIHZhciBjdXJyZW50VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb247XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMgPSBuZXcgU2V0KCk7XG4gIH1cblxuICB0cnkge1xuICAgIHNjb3BlKCk7XG4gIH0gZmluYWxseSB7XG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcudHJhbnNpdGlvbiA9IHByZXZUcmFuc2l0aW9uO1xuXG4gICAge1xuICAgICAgaWYgKHByZXZUcmFuc2l0aW9uID09PSBudWxsICYmIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzKSB7XG4gICAgICAgIHZhciB1cGRhdGVkRmliZXJzQ291bnQgPSBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5zaXplO1xuXG4gICAgICAgIGlmICh1cGRhdGVkRmliZXJzQ291bnQgPiAxMCkge1xuICAgICAgICAgIHdhcm4oJ0RldGVjdGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHVwZGF0ZXMgaW5zaWRlIHN0YXJ0VHJhbnNpdGlvbi4gJyArICdJZiB0aGlzIGlzIGR1ZSB0byBhIHN1YnNjcmlwdGlvbiBwbGVhc2UgcmUtd3JpdGUgaXQgdG8gdXNlIFJlYWN0IHByb3ZpZGVkIGhvb2tzLiAnICsgJ090aGVyd2lzZSBjb25jdXJyZW50IG1vZGUgZ3VhcmFudGVlcyBhcmUgb2ZmIHRoZSB0YWJsZS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9IGZhbHNlO1xudmFyIGVucXVldWVUYXNrSW1wbCA9IG51bGw7XG5mdW5jdGlvbiBlbnF1ZXVlVGFzayh0YXNrKSB7XG4gIGlmIChlbnF1ZXVlVGFza0ltcGwgPT09IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgLy8gcmVhZCByZXF1aXJlIG9mZiB0aGUgbW9kdWxlIG9iamVjdCB0byBnZXQgYXJvdW5kIHRoZSBidW5kbGVycy5cbiAgICAgIC8vIHdlIGRvbid0IHdhbnQgdGhlbSB0byBkZXRlY3QgYSByZXF1aXJlIGFuZCBidW5kbGUgYSBOb2RlIHBvbHlmaWxsLlxuICAgICAgdmFyIHJlcXVpcmVTdHJpbmcgPSAoJ3JlcXVpcmUnICsgTWF0aC5yYW5kb20oKSkuc2xpY2UoMCwgNyk7XG4gICAgICB2YXIgbm9kZVJlcXVpcmUgPSBtb2R1bGUgJiYgbW9kdWxlW3JlcXVpcmVTdHJpbmddOyAvLyBhc3N1bWluZyB3ZSdyZSBpbiBub2RlLCBsZXQncyB0cnkgdG8gZ2V0IG5vZGUnc1xuICAgICAgLy8gdmVyc2lvbiBvZiBzZXRJbW1lZGlhdGUsIGJ5cGFzc2luZyBmYWtlIHRpbWVycyBpZiBhbnkuXG5cbiAgICAgIGVucXVldWVUYXNrSW1wbCA9IG5vZGVSZXF1aXJlLmNhbGwobW9kdWxlLCAndGltZXJzJykuc2V0SW1tZWRpYXRlO1xuICAgIH0gY2F0Y2ggKF9lcnIpIHtcbiAgICAgIC8vIHdlJ3JlIGluIGEgYnJvd3NlclxuICAgICAgLy8gd2UgY2FuJ3QgdXNlIHJlZ3VsYXIgdGltZXJzIGJlY2F1c2UgdGhleSBtYXkgc3RpbGwgYmUgZmFrZWRcbiAgICAgIC8vIHNvIHdlIHRyeSBNZXNzYWdlQ2hhbm5lbCtwb3N0TWVzc2FnZSBpbnN0ZWFkXG4gICAgICBlbnF1ZXVlVGFza0ltcGwgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgICAge1xuICAgICAgICAgIGlmIChkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRpZFdhcm5BYm91dE1lc3NhZ2VDaGFubmVsID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBNZXNzYWdlQ2hhbm5lbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgZXJyb3IoJ1RoaXMgYnJvd3NlciBkb2VzIG5vdCBoYXZlIGEgTWVzc2FnZUNoYW5uZWwgaW1wbGVtZW50YXRpb24sICcgKyAnc28gZW5xdWV1aW5nIHRhc2tzIHZpYSBhd2FpdCBhY3QoYXN5bmMgKCkgPT4gLi4uKSB3aWxsIGZhaWwuICcgKyAnUGxlYXNlIGZpbGUgYW4gaXNzdWUgYXQgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3VlcyAnICsgJ2lmIHlvdSBlbmNvdW50ZXIgdGhpcyB3YXJuaW5nLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gY2FsbGJhY2s7XG4gICAgICAgIGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2UodW5kZWZpbmVkKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVucXVldWVUYXNrSW1wbCh0YXNrKTtcbn1cblxudmFyIGFjdFNjb3BlRGVwdGggPSAwO1xudmFyIGRpZFdhcm5Ob0F3YWl0QWN0ID0gZmFsc2U7XG5mdW5jdGlvbiBhY3QoY2FsbGJhY2spIHtcbiAge1xuICAgIC8vIGBhY3RgIGNhbGxzIGNhbiBiZSBuZXN0ZWQsIHNvIHdlIHRyYWNrIHRoZSBkZXB0aC4gVGhpcyByZXByZXNlbnRzIHRoZVxuICAgIC8vIG51bWJlciBvZiBgYWN0YCBzY29wZXMgb24gdGhlIHN0YWNrLlxuICAgIHZhciBwcmV2QWN0U2NvcGVEZXB0aCA9IGFjdFNjb3BlRGVwdGg7XG4gICAgYWN0U2NvcGVEZXB0aCsrO1xuXG4gICAgaWYgKFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9zdCBgYWN0YCBzY29wZS4gSW5pdGlhbGl6ZSB0aGUgcXVldWUuIFRoZSByZWNvbmNpbGVyXG4gICAgICAvLyB3aWxsIGRldGVjdCB0aGUgcXVldWUgYW5kIHVzZSBpdCBpbnN0ZWFkIG9mIFNjaGVkdWxlci5cbiAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgcHJldklzQmF0Y2hpbmdMZWdhY3kgPSBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5pc0JhdGNoaW5nTGVnYWN5O1xuICAgIHZhciByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gVXNlZCB0byByZXByb2R1Y2UgYmVoYXZpb3Igb2YgYGJhdGNoZWRVcGRhdGVzYCBpbiBsZWdhY3kgbW9kZS4gT25seVxuICAgICAgLy8gc2V0IHRvIGB0cnVlYCB3aGlsZSB0aGUgZ2l2ZW4gY2FsbGJhY2sgaXMgZXhlY3V0ZWQsIG5vdCBmb3IgdXBkYXRlc1xuICAgICAgLy8gdHJpZ2dlcmVkIGR1cmluZyBhbiBhc3luYyBldmVudCwgYmVjYXVzZSB0aGlzIGlzIGhvdyB0aGUgbGVnYWN5XG4gICAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiBgYWN0YCBiZWhhdmVkLlxuICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuaXNCYXRjaGluZ0xlZ2FjeSA9IHRydWU7XG4gICAgICByZXN1bHQgPSBjYWxsYmFjaygpOyAvLyBSZXBsaWNhdGUgYmVoYXZpb3Igb2Ygb3JpZ2luYWwgYGFjdGAgaW1wbGVtZW50YXRpb24gaW4gbGVnYWN5IG1vZGUsXG4gICAgICAvLyB3aGljaCBmbHVzaGVkIHVwZGF0ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHNjb3BlIGZ1bmN0aW9uIGV4aXRzLCBldmVuXG4gICAgICAvLyBpZiBpdCdzIGFuIGFzeW5jIGZ1bmN0aW9uLlxuXG4gICAgICBpZiAoIXByZXZJc0JhdGNoaW5nTGVnYWN5ICYmIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmRpZFNjaGVkdWxlTGVnYWN5VXBkYXRlKSB7XG4gICAgICAgIHZhciBxdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQ7XG5cbiAgICAgICAgaWYgKHF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgICBmbHVzaEFjdFF1ZXVlKHF1ZXVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBwb3BBY3RTY29wZShwcmV2QWN0U2NvcGVEZXB0aCk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuaXNCYXRjaGluZ0xlZ2FjeSA9IHByZXZJc0JhdGNoaW5nTGVnYWN5O1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQgIT09IG51bGwgJiYgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHJlc3VsdC50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgdGhlbmFibGVSZXN1bHQgPSByZXN1bHQ7IC8vIFRoZSBjYWxsYmFjayBpcyBhbiBhc3luYyBmdW5jdGlvbiAoaS5lLiByZXR1cm5lZCBhIHByb21pc2UpLiBXYWl0XG4gICAgICAvLyBmb3IgaXQgdG8gcmVzb2x2ZSBiZWZvcmUgZXhpdGluZyB0aGUgY3VycmVudCBzY29wZS5cblxuICAgICAgdmFyIHdhc0F3YWl0ZWQgPSBmYWxzZTtcbiAgICAgIHZhciB0aGVuYWJsZSA9IHtcbiAgICAgICAgdGhlbjogZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgIHdhc0F3YWl0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoZW5hYmxlUmVzdWx0LnRoZW4oZnVuY3Rpb24gKHJldHVyblZhbHVlKSB7XG4gICAgICAgICAgICBwb3BBY3RTY29wZShwcmV2QWN0U2NvcGVEZXB0aCk7XG5cbiAgICAgICAgICAgIGlmIChhY3RTY29wZURlcHRoID09PSAwKSB7XG4gICAgICAgICAgICAgIC8vIFdlJ3ZlIGV4aXRlZCB0aGUgb3V0ZXJtb3N0IGFjdCBzY29wZS4gUmVjdXJzaXZlbHkgZmx1c2ggdGhlXG4gICAgICAgICAgICAgIC8vIHF1ZXVlIHVudGlsIHRoZXJlJ3Mgbm8gcmVtYWluaW5nIHdvcmsuXG4gICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKHJldHVyblZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFRoZSBjYWxsYmFjayB0aHJldyBhbiBlcnJvci5cbiAgICAgICAgICAgIHBvcEFjdFNjb3BlKHByZXZBY3RTY29wZURlcHRoKTtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHtcbiAgICAgICAgaWYgKCFkaWRXYXJuTm9Bd2FpdEFjdCAmJiB0eXBlb2YgUHJvbWlzZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHt9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghd2FzQXdhaXRlZCkge1xuICAgICAgICAgICAgICBkaWRXYXJuTm9Bd2FpdEFjdCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgZXJyb3IoJ1lvdSBjYWxsZWQgYWN0KGFzeW5jICgpID0+IC4uLikgd2l0aG91dCBhd2FpdC4gJyArICdUaGlzIGNvdWxkIGxlYWQgdG8gdW5leHBlY3RlZCB0ZXN0aW5nIGJlaGF2aW91ciwgJyArICdpbnRlcmxlYXZpbmcgbXVsdGlwbGUgYWN0IGNhbGxzIGFuZCBtaXhpbmcgdGhlaXIgJyArICdzY29wZXMuICcgKyAnWW91IHNob3VsZCAtIGF3YWl0IGFjdChhc3luYyAoKSA9PiAuLi4pOycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGVuYWJsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHJldHVyblZhbHVlID0gcmVzdWx0OyAvLyBUaGUgY2FsbGJhY2sgaXMgbm90IGFuIGFzeW5jIGZ1bmN0aW9uLiBFeGl0IHRoZSBjdXJyZW50IHNjb3BlXG4gICAgICAvLyBpbW1lZGlhdGVseSwgd2l0aG91dCBhd2FpdGluZy5cblxuICAgICAgcG9wQWN0U2NvcGUocHJldkFjdFNjb3BlRGVwdGgpO1xuXG4gICAgICBpZiAoYWN0U2NvcGVEZXB0aCA9PT0gMCkge1xuICAgICAgICAvLyBFeGl0aW5nIHRoZSBvdXRlcm1vc3QgYWN0IHNjb3BlLiBGbHVzaCB0aGUgcXVldWUuXG4gICAgICAgIHZhciBfcXVldWUgPSBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5jdXJyZW50O1xuXG4gICAgICAgIGlmIChfcXVldWUgIT09IG51bGwpIHtcbiAgICAgICAgICBmbHVzaEFjdFF1ZXVlKF9xdWV1ZSk7XG4gICAgICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuY3VycmVudCA9IG51bGw7XG4gICAgICAgIH0gLy8gUmV0dXJuIGEgdGhlbmFibGUuIElmIHRoZSB1c2VyIGF3YWl0cyBpdCwgd2UnbGwgZmx1c2ggYWdhaW4gaW5cbiAgICAgICAgLy8gY2FzZSBhZGRpdGlvbmFsIHdvcmsgd2FzIHNjaGVkdWxlZCBieSBhIG1pY3JvdGFzay5cblxuXG4gICAgICAgIHZhciBfdGhlbmFibGUgPSB7XG4gICAgICAgICAgdGhlbjogZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgLy8gQ29uZmlybSB3ZSBoYXZlbid0IHJlLWVudGVyZWQgYW5vdGhlciBgYWN0YCBzY29wZSwgaW4gY2FzZVxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZG9lcyBzb21ldGhpbmcgd2VpcmQgbGlrZSBhd2FpdCB0aGUgdGhlbmFibGVcbiAgICAgICAgICAgIC8vIG11bHRpcGxlIHRpbWVzLlxuICAgICAgICAgICAgaWYgKFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gUmVjdXJzaXZlbHkgZmx1c2ggdGhlIHF1ZXVlIHVudGlsIHRoZXJlJ3Mgbm8gcmVtYWluaW5nIHdvcmsuXG4gICAgICAgICAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBbXTtcbiAgICAgICAgICAgICAgcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhyZXR1cm5WYWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIF90aGVuYWJsZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpbmNlIHdlJ3JlIGluc2lkZSBhIG5lc3RlZCBgYWN0YCBzY29wZSwgdGhlIHJldHVybmVkIHRoZW5hYmxlXG4gICAgICAgIC8vIGltbWVkaWF0ZWx5IHJlc29sdmVzLiBUaGUgb3V0ZXIgc2NvcGUgd2lsbCBmbHVzaCB0aGUgcXVldWUuXG4gICAgICAgIHZhciBfdGhlbmFibGUyID0ge1xuICAgICAgICAgIHRoZW46IGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIF90aGVuYWJsZTI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBvcEFjdFNjb3BlKHByZXZBY3RTY29wZURlcHRoKSB7XG4gIHtcbiAgICBpZiAocHJldkFjdFNjb3BlRGVwdGggIT09IGFjdFNjb3BlRGVwdGggLSAxKSB7XG4gICAgICBlcnJvcignWW91IHNlZW0gdG8gaGF2ZSBvdmVybGFwcGluZyBhY3QoKSBjYWxscywgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ0JlIHN1cmUgdG8gYXdhaXQgcHJldmlvdXMgYWN0KCkgY2FsbHMgYmVmb3JlIG1ha2luZyBhIG5ldyBvbmUuICcpO1xuICAgIH1cblxuICAgIGFjdFNjb3BlRGVwdGggPSBwcmV2QWN0U2NvcGVEZXB0aDtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWN1cnNpdmVseUZsdXNoQXN5bmNBY3RXb3JrKHJldHVyblZhbHVlLCByZXNvbHZlLCByZWplY3QpIHtcbiAge1xuICAgIHZhciBxdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQ7XG5cbiAgICBpZiAocXVldWUgIT09IG51bGwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZsdXNoQWN0UXVldWUocXVldWUpO1xuICAgICAgICBlbnF1ZXVlVGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gTm8gYWRkaXRpb25hbCB3b3JrIHdhcyBzY2hlZHVsZWQuIEZpbmlzaC5cbiAgICAgICAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgcmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEtlZXAgZmx1c2hpbmcgd29yayB1bnRpbCB0aGVyZSdzIG5vbmUgbGVmdC5cbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgaXNGbHVzaGluZyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBmbHVzaEFjdFF1ZXVlKHF1ZXVlKSB7XG4gIHtcbiAgICBpZiAoIWlzRmx1c2hpbmcpIHtcbiAgICAgIC8vIFByZXZlbnQgcmUtZW50cmFuY2UuXG4gICAgICBpc0ZsdXNoaW5nID0gdHJ1ZTtcbiAgICAgIHZhciBpID0gMDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICg7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBjYWxsYmFjayA9IHF1ZXVlW2ldO1xuXG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayh0cnVlKTtcbiAgICAgICAgICB9IHdoaWxlIChjYWxsYmFjayAhPT0gbnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBxdWV1ZS5sZW5ndGggPSAwO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSWYgc29tZXRoaW5nIHRocm93cywgbGVhdmUgdGhlIHJlbWFpbmluZyBjYWxsYmFja3Mgb24gdGhlIHF1ZXVlLlxuICAgICAgICBxdWV1ZSA9IHF1ZXVlLnNsaWNlKGkgKyAxKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpc0ZsdXNoaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBjcmVhdGVFbGVtZW50JDEgPSAgY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uIDtcbnZhciBjbG9uZUVsZW1lbnQkMSA9ICBjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiA7XG52YXIgY3JlYXRlRmFjdG9yeSA9ICBjcmVhdGVGYWN0b3J5V2l0aFZhbGlkYXRpb24gO1xudmFyIENoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5LFxuICBvbmx5OiBvbmx5Q2hpbGRcbn07XG5cbmV4cG9ydHMuQ2hpbGRyZW4gPSBDaGlsZHJlbjtcbmV4cG9ydHMuQ29tcG9uZW50ID0gQ29tcG9uZW50O1xuZXhwb3J0cy5GcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG5leHBvcnRzLlByb2ZpbGVyID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbmV4cG9ydHMuUHVyZUNvbXBvbmVudCA9IFB1cmVDb21wb25lbnQ7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gUmVhY3RTaGFyZWRJbnRlcm5hbHM7XG5leHBvcnRzLmFjdCA9IGFjdDtcbmV4cG9ydHMuY2xvbmVFbGVtZW50ID0gY2xvbmVFbGVtZW50JDE7XG5leHBvcnRzLmNyZWF0ZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0O1xuZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudCQxO1xuZXhwb3J0cy5jcmVhdGVGYWN0b3J5ID0gY3JlYXRlRmFjdG9yeTtcbmV4cG9ydHMuY3JlYXRlUmVmID0gY3JlYXRlUmVmO1xuZXhwb3J0cy5mb3J3YXJkUmVmID0gZm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnQgPSBpc1ZhbGlkRWxlbWVudDtcbmV4cG9ydHMubGF6eSA9IGxhenk7XG5leHBvcnRzLm1lbW8gPSBtZW1vO1xuZXhwb3J0cy5zdGFydFRyYW5zaXRpb24gPSBzdGFydFRyYW5zaXRpb247XG5leHBvcnRzLnVuc3RhYmxlX2FjdCA9IGFjdDtcbmV4cG9ydHMudXNlQ2FsbGJhY2sgPSB1c2VDYWxsYmFjaztcbmV4cG9ydHMudXNlQ29udGV4dCA9IHVzZUNvbnRleHQ7XG5leHBvcnRzLnVzZURlYnVnVmFsdWUgPSB1c2VEZWJ1Z1ZhbHVlO1xuZXhwb3J0cy51c2VEZWZlcnJlZFZhbHVlID0gdXNlRGVmZXJyZWRWYWx1ZTtcbmV4cG9ydHMudXNlRWZmZWN0ID0gdXNlRWZmZWN0O1xuZXhwb3J0cy51c2VJZCA9IHVzZUlkO1xuZXhwb3J0cy51c2VJbXBlcmF0aXZlSGFuZGxlID0gdXNlSW1wZXJhdGl2ZUhhbmRsZTtcbmV4cG9ydHMudXNlSW5zZXJ0aW9uRWZmZWN0ID0gdXNlSW5zZXJ0aW9uRWZmZWN0O1xuZXhwb3J0cy51c2VMYXlvdXRFZmZlY3QgPSB1c2VMYXlvdXRFZmZlY3Q7XG5leHBvcnRzLnVzZU1lbW8gPSB1c2VNZW1vO1xuZXhwb3J0cy51c2VSZWR1Y2VyID0gdXNlUmVkdWNlcjtcbmV4cG9ydHMudXNlUmVmID0gdXNlUmVmO1xuZXhwb3J0cy51c2VTdGF0ZSA9IHVzZVN0YXRlO1xuZXhwb3J0cy51c2VTeW5jRXh0ZXJuYWxTdG9yZSA9IHVzZVN5bmNFeHRlcm5hbFN0b3JlO1xuZXhwb3J0cy51c2VUcmFuc2l0aW9uID0gdXNlVHJhbnNpdGlvbjtcbmV4cG9ydHMudmVyc2lvbiA9IFJlYWN0VmVyc2lvbjtcbiAgICAgICAgICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG5pZiAoXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gIT09ICd1bmRlZmluZWQnICYmXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AgPT09XG4gICAgJ2Z1bmN0aW9uJ1xuKSB7XG4gIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcChuZXcgRXJyb3IoKSk7XG59XG4gICAgICAgIFxuICB9KSgpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1sxXS51c2VbMl0hLi9kM3Y0cHAuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1sxXS51c2VbMl0hLi9kM3Y0cHAuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgc3R5bGVzSW5ET00gPSBbXTtcbmZ1bmN0aW9uIGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgdmFyIHJlc3VsdCA9IC0xO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKSB7XG4gIHZhciBpZENvdW50TWFwID0ge307XG4gIHZhciBpZGVudGlmaWVycyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcbiAgICBpZiAoaW5kZXhCeUlkZW50aWZpZXIgIT09IC0xKSB7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0ucmVmZXJlbmNlcysrO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnVwZGF0ZXIob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHVwZGF0ZXIgPSBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMuYnlJbmRleCA9IGk7XG4gICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoaSwgMCwge1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiB1cGRhdGVyLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5mdW5jdGlvbiBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKSB7XG4gIHZhciBhcGkgPSBvcHRpb25zLmRvbUFQSShvcHRpb25zKTtcbiAgYXBpLnVwZGF0ZShvYmopO1xuICB2YXIgdXBkYXRlciA9IGZ1bmN0aW9uIHVwZGF0ZXIobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCAmJiBuZXdPYmouc3VwcG9ydHMgPT09IG9iai5zdXBwb3J0cyAmJiBuZXdPYmoubGF5ZXIgPT09IG9iai5sYXllcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB1cGRhdGVyO1xufVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobGlzdCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgbGlzdCA9IGxpc3QgfHwgW107XG4gIHZhciBsYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG4gICAgdmFyIG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9pZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW19pXTtcbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG4gICAgICBpZiAoc3R5bGVzSW5ET01bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XG4gICAgICAgIHN0eWxlc0luRE9NW19pbmRleF0udXBkYXRlcigpO1xuICAgICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoX2luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIG1lbW8gPSB7fTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBnZXRUYXJnZXQodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xuXG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcbiAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICB9XG4gIHJldHVybiBtZW1vW3RhcmdldF07XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0QnlTZWxlY3RvcihpbnNlcnQsIHN0eWxlKSB7XG4gIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQoaW5zZXJ0KTtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICB9XG4gIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydEJ5U2VsZWN0b3I7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gIG9wdGlvbnMuc2V0QXR0cmlidXRlcyhlbGVtZW50LCBvcHRpb25zLmF0dHJpYnV0ZXMpO1xuICBvcHRpb25zLmluc2VydChlbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xuICByZXR1cm4gZWxlbWVudDtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZUVsZW1lbnQpIHtcbiAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSBcInVuZGVmaW5lZFwiID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuICBpZiAobm9uY2UpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgbm9uY2UpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlczsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaikge1xuICB2YXIgY3NzID0gXCJcIjtcbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KG9iai5zdXBwb3J0cywgXCIpIHtcIik7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIkBtZWRpYSBcIi5jb25jYXQob2JqLm1lZGlhLCBcIiB7XCIpO1xuICB9XG4gIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2Ygb2JqLmxheWVyICE9PSBcInVuZGVmaW5lZFwiO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwiQGxheWVyXCIuY29uY2F0KG9iai5sYXllci5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KG9iai5sYXllcikgOiBcIlwiLCBcIiB7XCIpO1xuICB9XG4gIGNzcyArPSBvYmouY3NzO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9XG5cbiAgLy8gRm9yIG9sZCBJRVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG4gIG9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG59XG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGVFbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBkb21BUEkob3B0aW9ucykge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKCkge30sXG4gICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHt9XG4gICAgfTtcbiAgfVxuICB2YXIgc3R5bGVFbGVtZW50ID0gb3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gIHJldHVybiB7XG4gICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUob2JqKSB7XG4gICAgICBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaik7XG4gICAgfSxcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZG9tQVBJOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc3R5bGVUYWdUcmFuc2Zvcm07IiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoYikgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQmFkZ2UgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG52YXIgQmFkZ2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEJhZGdlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEJhZGdlKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIEJhZGdlLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyBjbGFzc05hbWU6ICdiYWRnZSAnICsgdGhpcy5wcm9wcy5jbGFzc05hbWUgfSkpO1xuICAgIH07XG4gICAgcmV0dXJuIEJhZGdlO1xufShSZWFjdC5Db21wb25lbnQpKTtcbmV4cG9ydHMuQmFkZ2UgPSBCYWRnZTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcbiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbnZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkJ1dHRvbiA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbnZhciBCdXR0b24gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEJ1dHRvbiwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBCdXR0b24oKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5kZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgICAgICBkdXJhdGlvbjogOTUwLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoZSkgeyByZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpOyB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGlzYXRpb24gb2YgdGhlIHdhdmUgZWZmZWN0IGFmdGVyIHRoZSBjb21wb25lbnQgZGlkIG1vdW50XG4gICAgICovXG4gICAgQnV0dG9uLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKHRoaXMuZWwpIHtcbiAgICAgICAgICAgIC8vbmV3IFdhdmVzKHRoaXMuZWwsIHsgZHVyYXRpb246IDk1MCB9KTtcbiAgICAgICAgICAgIGlmICgnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy50cmlnZ2VyRWZmZWN0LmJpbmQoX3RoaXMpKGUpO1xuICAgICAgICAgICAgICAgIH0sIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy50cmlnZ2VyRWZmZWN0LmJpbmQoX3RoaXMpKGUpO1xuICAgICAgICAgICAgfSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBCdXR0b24ucHJvdG90eXBlLnRyaWdnZXJFZmZlY3QgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAodGhpcy5lbCkge1xuICAgICAgICAgICAgdGhpcy5zaG93RWZmZWN0KGUpO1xuICAgICAgICAgICAgaWYgKCdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdykge1xuICAgICAgICAgICAgICAgIHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5oaWRlRWZmZWN0LmJpbmQoX3RoaXMpKGUpO1xuICAgICAgICAgICAgICAgIH0sIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuaGlkZUVmZmVjdC5iaW5kKF90aGlzKShlKTtcbiAgICAgICAgICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIF90aGlzLmhpZGVFZmZlY3QuYmluZChfdGhpcykoZSk7XG4gICAgICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIF90aGlzLmhpZGVFZmZlY3QuYmluZChfdGhpcykoZSk7XG4gICAgICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdlbmQnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIF90aGlzLmhpZGVFZmZlY3QuYmluZChfdGhpcykoZSk7XG4gICAgICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEJ1dHRvbi5wcm90b3R5cGUuaXNXaW5kb3cgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgIHJldHVybiBvYmogIT09IG51bGwgJiYgb2JqID09PSBvYmoud2luZG93O1xuICAgIH07XG4gICAgQnV0dG9uLnByb3RvdHlwZS5nZXRXaW5kb3cgPSBmdW5jdGlvbiAoZWxlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1dpbmRvdyhlbGVtKSA/IGVsZW0gOiBlbGVtLm5vZGVUeXBlID09PSA5ICYmIGVsZW0uZGVmYXVsdFZpZXc7XG4gICAgfTtcbiAgICBCdXR0b24ucHJvdG90eXBlLm9mZnNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgdmFyIGRvY0VsZW0sIHdpbiwgYm94ID0geyB0b3A6IDAsIGxlZnQ6IDAgfSwgZG9jID0gdGhpcy5lbCAmJiB0aGlzLmVsLm93bmVyRG9jdW1lbnQ7XG4gICAgICAgIGRvY0VsZW0gPSBkb2MgPT09IG51bGwgfHwgZG9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkb2MuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICBpZiAodHlwZW9mICgoX2EgPSB0aGlzLmVsKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSAhPT0gdHlwZW9mIHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYm94ID0gKChfYiA9IHRoaXMuZWwpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkgfHwgeyB0b3A6IDAsIGxlZnQ6IDAgfTtcbiAgICAgICAgfVxuICAgICAgICB3aW4gPSB0aGlzLmdldFdpbmRvdyhkb2MpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wOiBib3gudG9wICsgd2luLnBhZ2VZT2Zmc2V0IC0gKChkb2NFbGVtID09PSBudWxsIHx8IGRvY0VsZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRvY0VsZW0uY2xpZW50VG9wKSB8fCAwKSxcbiAgICAgICAgICAgIGxlZnQ6IGJveC5sZWZ0ICsgd2luLnBhZ2VYT2Zmc2V0IC0gKChkb2NFbGVtID09PSBudWxsIHx8IGRvY0VsZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRvY0VsZW0uY2xpZW50TGVmdCkgfHwgMClcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIEJ1dHRvbi5wcm90b3R5cGUuc2hvd0VmZmVjdCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGlmICh0aGlzLmVsICYmIGRvY3VtZW50KSB7XG4gICAgICAgICAgICAvLyBEaXNhYmxlIHJpZ2h0IGNsaWNrXG4gICAgICAgICAgICBpZiAoZS5idXR0b24gPT09IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBDcmVhdGUgcmlwcGxlXG4gICAgICAgICAgICB2YXIgcmlwcGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICByaXBwbGUuY2xhc3NOYW1lID0gJ3dhdmVzLXJpcHBsZSc7XG4gICAgICAgICAgICB0aGlzLmVsLmFwcGVuZENoaWxkKHJpcHBsZSk7XG4gICAgICAgICAgICB0aGlzLnJpcHBsZSA9IHJpcHBsZTtcbiAgICAgICAgICAgIC8vIEdldCBjbGljayBjb29yZGluYXRlIGFuZCBlbGVtZW50IHdpdGRoXG4gICAgICAgICAgICB2YXIgcG9zID0gdGhpcy5vZmZzZXQoKTtcbiAgICAgICAgICAgIHZhciByZWxhdGl2ZVkgPSAoZS5wYWdlWSAtIHBvcy50b3ApO1xuICAgICAgICAgICAgdmFyIHJlbGF0aXZlWCA9IChlLnBhZ2VYIC0gcG9zLmxlZnQpO1xuICAgICAgICAgICAgdmFyIHNjYWxlID0gJ3NjYWxlKCcgKyAoKHRoaXMuZWwuY2xpZW50V2lkdGggLyAxMDApICogMTApICsgJyknO1xuICAgICAgICAgICAgLy8gU3VwcG9ydCBmb3IgdG91Y2ggZGV2aWNlc1xuICAgICAgICAgICAgaWYgKCd0b3VjaGVzJyBpbiBlKSB7XG4gICAgICAgICAgICAgICAgcmVsYXRpdmVZID0gKGUudG91Y2hlc1swXS5wYWdlWSAtIHBvcy50b3ApO1xuICAgICAgICAgICAgICAgIHJlbGF0aXZlWCA9IChlLnRvdWNoZXNbMF0ucGFnZVggLSBwb3MubGVmdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBBdHRhY2ggZGF0YSB0byBlbGVtZW50XG4gICAgICAgICAgICB0aGlzLnJpcHBsZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtaG9sZCcsIERhdGUubm93KCkudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB0aGlzLnJpcHBsZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2NhbGUnLCBzY2FsZSk7XG4gICAgICAgICAgICB0aGlzLnJpcHBsZS5zZXRBdHRyaWJ1dGUoJ2RhdGEteCcsIHJlbGF0aXZlWC50b1N0cmluZygpKTtcbiAgICAgICAgICAgIHRoaXMucmlwcGxlLnNldEF0dHJpYnV0ZSgnZGF0YS15JywgcmVsYXRpdmVZLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgLy8gU2V0IHJpcHBsZSBwb3NpdGlvblxuICAgICAgICAgICAgdmFyIHJpcHBsZVN0eWxlID0ge1xuICAgICAgICAgICAgICAgICd0b3AnOiByZWxhdGl2ZVkgKyAncHgnLFxuICAgICAgICAgICAgICAgICdsZWZ0JzogcmVsYXRpdmVYICsgJ3B4J1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vdGhpcy5yaXBwbGUuY2xhc3NOYW1lID0gIHRoaXMucmlwcGxlLmNsYXNzTmFtZSArICcgd2F2ZXMtbm90cmFuc2l0aW9uJztcbiAgICAgICAgICAgIHRoaXMucmlwcGxlLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCB0aGlzLmNvbnZlcnRTdHlsZShyaXBwbGVTdHlsZSkpO1xuICAgICAgICAgICAgdGhpcy5yaXBwbGUuY2xhc3NOYW1lID0gdGhpcy5yaXBwbGUuY2xhc3NOYW1lLnJlcGxhY2UoJ3dhdmVzLW5vdHJhbnNpdGlvbicsICcnKTtcbiAgICAgICAgICAgIC8vIFNjYWxlIHRoZSByaXBwbGVcbiAgICAgICAgICAgIHJpcHBsZVN0eWxlWyctd2Via2l0LXRyYW5zZm9ybSddID0gc2NhbGU7XG4gICAgICAgICAgICByaXBwbGVTdHlsZVsnLW1vei10cmFuc2Zvcm0nXSA9IHNjYWxlO1xuICAgICAgICAgICAgcmlwcGxlU3R5bGVbJy1tcy10cmFuc2Zvcm0nXSA9IHNjYWxlO1xuICAgICAgICAgICAgcmlwcGxlU3R5bGVbJy1vLXRyYW5zZm9ybSddID0gc2NhbGU7XG4gICAgICAgICAgICByaXBwbGVTdHlsZVsndHJhbnNmb3JtJ10gPSBzY2FsZTtcbiAgICAgICAgICAgIHJpcHBsZVN0eWxlWydvcGFjaXR5J10gPSAnMSc7XG4gICAgICAgICAgICByaXBwbGVTdHlsZVsnLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uJ10gPSAyICogdGhpcy5wcm9wcy5kdXJhdGlvbiAvIDMgKyAnbXMnO1xuICAgICAgICAgICAgcmlwcGxlU3R5bGVbJy1tb3otdHJhbnNpdGlvbi1kdXJhdGlvbiddID0gMiAqIHRoaXMucHJvcHMuZHVyYXRpb24gLyAzICsgJ21zJztcbiAgICAgICAgICAgIHJpcHBsZVN0eWxlWyctby10cmFuc2l0aW9uLWR1cmF0aW9uJ10gPSAyICogdGhpcy5wcm9wcy5kdXJhdGlvbiAvIDMgKyAnbXMnO1xuICAgICAgICAgICAgcmlwcGxlU3R5bGVbJ3RyYW5zaXRpb24tZHVyYXRpb24nXSA9IDIgKiB0aGlzLnByb3BzLmR1cmF0aW9uIC8gMyArICdtcyc7XG4gICAgICAgICAgICByaXBwbGVTdHlsZVsnLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiddID0gJ2N1YmljLWJlemllcigwLjI1MCwgMC40NjAsIDAuNDUwLCAwLjk0MCknO1xuICAgICAgICAgICAgcmlwcGxlU3R5bGVbJy1tb3otdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nXSA9ICdjdWJpYy1iZXppZXIoMC4yNTAsIDAuNDYwLCAwLjQ1MCwgMC45NDApJztcbiAgICAgICAgICAgIHJpcHBsZVN0eWxlWyctby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiddID0gJ2N1YmljLWJlemllcigwLjI1MCwgMC40NjAsIDAuNDUwLCAwLjk0MCknO1xuICAgICAgICAgICAgcmlwcGxlU3R5bGVbJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJ10gPSAnY3ViaWMtYmV6aWVyKDAuMjUwLCAwLjQ2MCwgMC40NTAsIDAuOTQwKSc7XG4gICAgICAgICAgICB0aGlzLnJpcHBsZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgdGhpcy5jb252ZXJ0U3R5bGUocmlwcGxlU3R5bGUpKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQnV0dG9uLnByb3RvdHlwZS5jb252ZXJ0U3R5bGUgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgIHZhciBzdHlsZSA9ICcnO1xuICAgICAgICBmb3IgKHZhciBhIGluIG9iaikge1xuICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShhKSkge1xuICAgICAgICAgICAgICAgIHN0eWxlICs9IChhICsgJzonICsgb2JqW2FdICsgJzsnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3R5bGU7XG4gICAgfTtcbiAgICBCdXR0b24ucHJvdG90eXBlLmhpZGVFZmZlY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmVsKSB7XG4gICAgICAgICAgICAvL0VmZmVjdC5oaWRlXG4gICAgICAgICAgICB2YXIgcmlwcGxlXzEgPSB0aGlzLmVsLmxhc3RFbGVtZW50Q2hpbGQ7XG4gICAgICAgICAgICBpZiAocmlwcGxlXzEgJiYgcmlwcGxlXzEuY2xhc3NMaXN0LmNvbnRhaW5zKFwid2F2ZXMtcmlwcGxlXCIpKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlbGF0aXZlWF8xID0gcmlwcGxlXzEuZ2V0QXR0cmlidXRlKCdkYXRhLXgnKTtcbiAgICAgICAgICAgICAgICB2YXIgcmVsYXRpdmVZXzEgPSByaXBwbGVfMS5nZXRBdHRyaWJ1dGUoJ2RhdGEteScpO1xuICAgICAgICAgICAgICAgIHZhciBzY2FsZV8xID0gcmlwcGxlXzEuZ2V0QXR0cmlidXRlKCdkYXRhLXNjYWxlJyk7XG4gICAgICAgICAgICAgICAgLy8gR2V0IGRlbGF5IGJlZXR3ZWVuIG1vdXNlZG93biBhbmQgbW91c2UgbGVhdmVcbiAgICAgICAgICAgICAgICB2YXIgZGlmZiA9IERhdGUubm93KCkgLSBOdW1iZXIocmlwcGxlXzEuZ2V0QXR0cmlidXRlKCdkYXRhLWhvbGQnKSk7XG4gICAgICAgICAgICAgICAgdmFyIGRlbGF5ID0gdGhpcy5wcm9wcy5kdXJhdGlvbiAvIDIgLSBkaWZmO1xuICAgICAgICAgICAgICAgIGlmIChkZWxheSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsYXkgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgbWVfMSA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmFkZSBvdXQgcmlwcGxlIGFmdGVyIGRlbGF5XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdHlsZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b3AnOiByZWxhdGl2ZVlfMSArICdweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbGVmdCc6IHJlbGF0aXZlWF8xICsgJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdvcGFjaXR5JzogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRHVyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICctd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb24nOiBtZV8xLnByb3BzLmR1cmF0aW9uIC8gMyArICdtcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnLW1vei10cmFuc2l0aW9uLWR1cmF0aW9uJzogbWVfMS5wcm9wcy5kdXJhdGlvbiAvIDMgKyAnbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJy1vLXRyYW5zaXRpb24tZHVyYXRpb24nOiBtZV8xLnByb3BzLmR1cmF0aW9uIC8gMyArICdtcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNpdGlvbi1kdXJhdGlvbic6IG1lXzEucHJvcHMuZHVyYXRpb24gLyAzICsgJ21zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICctd2Via2l0LXRyYW5zZm9ybSc6IHNjYWxlXzEsXG4gICAgICAgICAgICAgICAgICAgICAgICAnLW1vei10cmFuc2Zvcm0nOiBzY2FsZV8xLFxuICAgICAgICAgICAgICAgICAgICAgICAgJy1tcy10cmFuc2Zvcm0nOiBzY2FsZV8xLFxuICAgICAgICAgICAgICAgICAgICAgICAgJy1vLXRyYW5zZm9ybSc6IHNjYWxlXzEsXG4gICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNmb3JtJzogc2NhbGVfMSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgcmlwcGxlXzEgPT09IG51bGwgfHwgcmlwcGxlXzEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJpcHBsZV8xLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBtZV8xLmNvbnZlcnRTdHlsZShzdHlsZSkpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlwcGxlXzEgJiYgKChfYSA9IG1lXzEuZWwpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZW1vdmVDaGlsZChyaXBwbGVfMSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIG1lXzEucHJvcHMuZHVyYXRpb24pO1xuICAgICAgICAgICAgICAgIH0sIGRlbGF5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgQnV0dG9uLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBzdHlsZSA9IHRoaXMucHJvcHMuc3R5bGU7XG4gICAgICAgIHZhciBjbGFzc05hbWUgPSB0aGlzLnByb3BzLmNsYXNzTmFtZSA/IHRoaXMucHJvcHMuY2xhc3NOYW1lICsgXCIgYnRuIHdhdmVzLWVmZmVjdCBcIiA6IFwiIGJ0biB3YXZlcy1lZmZlY3QgXCI7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm1vZGVsID09IFwiY2lyY2xlXCIpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZSArPSBcImJ0bi1mbG9hdGluZyBcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5zaXplID09IFwibWVkaXVtXCIpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZSArPSBcIiBcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5zaXplID09IFwibGFyZ2VcIikge1xuICAgICAgICAgICAgY2xhc3NOYW1lICs9IFwiYnRuLWxhcmdlIFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNpemUgPT0gXCJzbWFsbFwiKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gXCJidG4tc21hbGwgXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMuZnJhZ21lbnQgPT09IFwiYnV0dG9uXCIgPyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIF9fYXNzaWduKHt9LCBzdHlsZSwgeyByZWY6IGZ1bmN0aW9uIChlbCkge1xuICAgICAgICAgICAgICAgIF90aGlzLmVsID0gZWw7XG4gICAgICAgICAgICB9LCBjbGFzc05hbWU6IGNsYXNzTmFtZSB9KSwgdGhpcy5wcm9wcy5sYWJlbCkgOlxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwgX19hc3NpZ24oeyBocmVmOiBcIiNzZWN0aW9uXCIgfSwgc3R5bGUsIHsgcmVmOiBmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuZWwgPSBlbDtcbiAgICAgICAgICAgICAgICB9LCBjbGFzc05hbWU6IGNsYXNzTmFtZSArIHRoaXMucHJvcHMuY2xhc3NOYW1lIH0pLCB0aGlzLnByb3BzLmxhYmVsKTtcbiAgICB9O1xuICAgIHJldHVybiBCdXR0b247XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5CdXR0b24gPSBCdXR0b247XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5DYXJkQWN0aW9uID0gZXhwb3J0cy5DYXJkVGl0bGUgPSBleHBvcnRzLkNhcmRJbWFnZSA9IGV4cG9ydHMuQ2FyZENvbnRlbnQgPSBleHBvcnRzLkNhcmQgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG52YXIgQ2FyZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2FyZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBDYXJkKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIENhcmQucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX19hc3NpZ24oe30sIHRoaXMucHJvcHMsIHsgY2xhc3NOYW1lOiBcImNhcmQgXCIgKyB0aGlzLnByb3BzLmNsYXNzTmFtZSB9KSk7XG4gICAgfTtcbiAgICByZXR1cm4gQ2FyZDtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLkNhcmQgPSBDYXJkO1xudmFyIENhcmRDb250ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXJkQ29udGVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBDYXJkQ29udGVudCgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICBDYXJkQ29udGVudC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX19hc3NpZ24oe30sIHRoaXMucHJvcHMsIHsgY2xhc3NOYW1lOiBcImNhcmQtY29udGVudCBcIiArIHRoaXMucHJvcHMuY2xhc3NOYW1lIH0pKSk7XG4gICAgfTtcbiAgICByZXR1cm4gQ2FyZENvbnRlbnQ7XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5DYXJkQ29udGVudCA9IENhcmRDb250ZW50O1xudmFyIENhcmRJbWFnZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2FyZEltYWdlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENhcmRJbWFnZSgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICBDYXJkSW1hZ2UucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9fYXNzaWduKHt9LCB0aGlzLnByb3BzLCB7IGNsYXNzTmFtZTogXCJjYXJkLWltYWdlIFwiICsgdGhpcy5wcm9wcy5jbGFzc05hbWUgfSksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHsgc3JjOiB0aGlzLnByb3BzLnNyYyB9KSxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaW1hZ2VUaXRsZSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogXCJjYXJkLXRpdGxlXCIgfSwgdGhpcy5wcm9wcy5pbWFnZVRpdGxlKSxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW4pKTtcbiAgICB9O1xuICAgIHJldHVybiBDYXJkSW1hZ2U7XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5DYXJkSW1hZ2UgPSBDYXJkSW1hZ2U7XG52YXIgQ2FyZFRpdGxlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXJkVGl0bGUsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gQ2FyZFRpdGxlKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIENhcmRUaXRsZS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIF9fYXNzaWduKHt9LCB0aGlzLnByb3BzLCB7IGNsYXNzTmFtZTogXCJjYXJkLXRpdGxlIFwiICsgdGhpcy5wcm9wcy5jbGFzc05hbWUgfSkpKTtcbiAgICB9O1xuICAgIHJldHVybiBDYXJkVGl0bGU7XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5DYXJkVGl0bGUgPSBDYXJkVGl0bGU7XG52YXIgQ2FyZEFjdGlvbiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2FyZEFjdGlvbiwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBDYXJkQWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIENhcmRBY3Rpb24ucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9fYXNzaWduKHt9LCB0aGlzLnByb3BzLCB7IGNsYXNzTmFtZTogXCJjYXJkLWFjdGlvbiAgXCIgKyB0aGlzLnByb3BzLmNsYXNzTmFtZSB9KSkpO1xuICAgIH07XG4gICAgcmV0dXJuIENhcmRBY3Rpb247XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5DYXJkQWN0aW9uID0gQ2FyZEFjdGlvbjtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcbiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbnZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNoaXAgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG52YXIgQ2hpcCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2hpcCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBDaGlwKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIENoaXAucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX19hc3NpZ24oe30sIHRoaXMucHJvcHMsIHsgY2xhc3NOYW1lOiAnY2hpcCAnICsgdGhpcy5wcm9wcy5jbGFzc05hbWUgfSkpOyB9O1xuICAgIHJldHVybiBDaGlwO1xufShSZWFjdC5Db21wb25lbnQpKTtcbmV4cG9ydHMuQ2hpcCA9IENoaXA7XG5leHBvcnRzLmRlZmF1bHQgPSBDaGlwO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoYikgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29sbGFwc1RyaWdnZXIgPSBleHBvcnRzLkNvbGxhcHNCb2R5ID0gZXhwb3J0cy5Db2xsYXBzaWJsZSA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbnZhciBJY29uXzEgPSByZXF1aXJlKFwiLi4vaWNvbnMvSWNvblwiKTtcbnZhciBDb2xsYXBzaWJsZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ29sbGFwc2libGUsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gQ29sbGFwc2libGUoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgQ29sbGFwc2libGUucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwgX19hc3NpZ24oe30sIHRoaXMucHJvcHMsIHsgY2xhc3NOYW1lOiBcImNvbGxhcHNpYmxlIFwiICsgdGhpcy5wcm9wcy5jbGFzc05hbWUgfSkpKTtcbiAgICB9O1xuICAgIHJldHVybiBDb2xsYXBzaWJsZTtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLkNvbGxhcHNpYmxlID0gQ29sbGFwc2libGU7XG52YXIgQ29sbGFwc0JvZHkgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENvbGxhcHNCb2R5LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENvbGxhcHNCb2R5KCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuZWwgPSBudWxsO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIENvbGxhcHNCb2R5LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyByZWY6IGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5lbCA9IHJlZjtcbiAgICAgICAgICAgIH0sIGNsYXNzTmFtZTogXCJjb2xsYXBzaWJsZS1ib2R5IFwiICsgdGhpcy5wcm9wcy5jbGFzc05hbWUgfSkpKTtcbiAgICB9O1xuICAgIHJldHVybiBDb2xsYXBzQm9keTtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLkNvbGxhcHNCb2R5ID0gQ29sbGFwc0JvZHk7XG52YXIgQ29sbGFwc1RyaWdnZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENvbGxhcHNUcmlnZ2VyLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENvbGxhcHNUcmlnZ2VyKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBpc09wZW46IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIF90aGlzLmVsID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBDb2xsYXBzVHJpZ2dlci5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vICBuZXcgV2F2ZXModGhpcy5lbCwgeyBkdXJhdGlvbjogMTA1MCB9KTtcbiAgICB9O1xuICAgIENvbGxhcHNUcmlnZ2VyLnByb3RvdHlwZS5zaG93SGlkZUJvZHkgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAodGhpcy5pc09wZW4oKSkge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZShlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kKGUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBDb2xsYXBzVHJpZ2dlci5wcm90b3R5cGUuY29sbGFwc2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB2YXIgY29sbGFwc2libGUgPSB0aGlzLmZpbmRDb2xsYXBzaWJsZS5iaW5kKHRoaXMpKCk7XG4gICAgICAgIGlmIChjb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgdmFyIGJvZHlFbCA9IGNvbGxhcHNpYmxlLnF1ZXJ5U2VsZWN0b3IoXCIuY29sbGFwc2libGUtYm9keVwiKTtcbiAgICAgICAgICAgIGlmIChib2R5RWwpIHtcbiAgICAgICAgICAgICAgICBib2R5RWwuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgaXNPcGVuOiBmYWxzZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICBDb2xsYXBzVHJpZ2dlci5wcm90b3R5cGUuZmluZENvbGxhcHNpYmxlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcGFyZW50RWwgPSB0aGlzLmVsICYmIHRoaXMuZWwucGFyZW50RWxlbWVudDtcbiAgICAgICAgaWYgKHBhcmVudEVsICYmICFwYXJlbnRFbC5jbGFzc0xpc3QuY29udGFpbnMoXCJjb2xsYXBzaWJsZVwiKSkge1xuICAgICAgICAgICAgcGFyZW50RWwgPSBwYXJlbnRFbCAmJiBwYXJlbnRFbC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJlbnRFbDtcbiAgICB9O1xuICAgIENvbGxhcHNUcmlnZ2VyLnByb3RvdHlwZS5leHBhbmQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB2YXIgY29sbGFwc2libGUgPSB0aGlzLmZpbmRDb2xsYXBzaWJsZS5iaW5kKHRoaXMpKCk7XG4gICAgICAgIGlmIChjb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgdmFyIGJvZHlFbCA9IGNvbGxhcHNpYmxlLnF1ZXJ5U2VsZWN0b3IoXCIuY29sbGFwc2libGUtYm9keVwiKTtcbiAgICAgICAgICAgIGlmIChib2R5RWwpIHtcbiAgICAgICAgICAgICAgICBib2R5RWwuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGlzT3BlbjogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICBDb2xsYXBzVHJpZ2dlci5wcm90b3R5cGUuaXNPcGVuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5pc09wZW47XG4gICAgfTtcbiAgICBDb2xsYXBzVHJpZ2dlci5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgaWNvbiA9ICh0aGlzLnN0YXRlLmlzT3BlbiA9PSB0cnVlKSA/IFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbl8xLkljb24sIHsgc3R5bGU6IHsgZmxvYXQ6IFwicmlnaHRcIiB9IH0sIFwiY2hldnJvbl9kb3duXCIpIDpcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbl8xLkljb24sIHsgc3R5bGU6IHsgZmxvYXQ6IFwicmlnaHRcIiB9IH0sIFwiY2hldnJvbl9yaWdodFwiKTtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9fYXNzaWduKHt9LCB0aGlzLnByb3BzLCB7IHJlZjogZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgICAgIF90aGlzLmVsID0gcmVmO1xuICAgICAgICAgICAgfSwgY2xhc3NOYW1lOiBcImNvbGxhcHNpYmxlLWhlYWRlciBcIiArIHRoaXMucHJvcHMuY2xhc3NOYW1lLCBvbkNsaWNrOiBmdW5jdGlvbiAoZSkgeyByZXR1cm4gX3RoaXMuc2hvd0hpZGVCb2R5LmJpbmQoX3RoaXMpKGUpOyB9IH0pLFxuICAgICAgICAgICAgaWNvbixcbiAgICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW4pKTtcbiAgICB9O1xuICAgIHJldHVybiBDb2xsYXBzVHJpZ2dlcjtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLkNvbGxhcHNUcmlnZ2VyID0gQ29sbGFwc1RyaWdnZXI7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Db2xsZWN0aW9uSXRlbSA9IGV4cG9ydHMuQ29sbGVjdGlvbiA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbnZhciBDb2xsZWN0aW9uID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDb2xsZWN0aW9uLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENvbGxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgQ29sbGVjdGlvbi5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gdGhpcy5wcm9wcy5jbGFzc05hbWU7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwgX19hc3NpZ24oe30sIHRoaXMucHJvcHMsIHsgcmVmOiBmdW5jdGlvbiAocikgeyByZXR1cm4gX3RoaXMuZWwgPSByOyB9LCBjbGFzc05hbWU6IFwiY29sbGVjdGlvbiBcIiArIChjbGFzc05hbWUgfHwgXCJcIikgfSkpO1xuICAgIH07XG4gICAgcmV0dXJuIENvbGxlY3Rpb247XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5Db2xsZWN0aW9uID0gQ29sbGVjdGlvbjtcbnZhciBDb2xsZWN0aW9uSXRlbSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ29sbGVjdGlvbkl0ZW0sIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gQ29sbGVjdGlvbkl0ZW0oKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgQ29sbGVjdGlvbkl0ZW0ucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGNsYXNzTmFtZSA9IHRoaXMucHJvcHMuY2xhc3NOYW1lO1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIF9fYXNzaWduKHt9LCB0aGlzLnByb3BzLCB7IHJlZjogZnVuY3Rpb24gKHIpIHsgcmV0dXJuIF90aGlzLmVsID0gcjsgfSwgY2xhc3NOYW1lOiBcImNvbGxlY3Rpb24taXRlbSBcIiArIChjbGFzc05hbWUgfHwgXCJcIikgfSkpO1xuICAgIH07XG4gICAgcmV0dXJuIENvbGxlY3Rpb25JdGVtO1xufShSZWFjdC5Db21wb25lbnQpKTtcbmV4cG9ydHMuQ29sbGVjdGlvbkl0ZW0gPSBDb2xsZWN0aW9uSXRlbTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcbiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbnZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkZpZWxkID0gdm9pZCAwO1xudmFyIFJlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuLy8gQHRzLWlnbm9yZVxudmFyIFYgPSByZXF1aXJlKFwiLi9yZXhcIik7XG52YXIgRmllbGQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEZpZWxkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEZpZWxkKHByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGxhYmVsQ2xhc3NOYW1lOiAnJyxcbiAgICAgICAgICAgIGZvY3VzQ291bnQ6IDAsXG4gICAgICAgICAgICBlcnJtc2c6IFwiXCJcbiAgICAgICAgfTtcbiAgICAgICAgX3RoaXMuaWQgPSBfdGhpcy51dWlkdjQoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBGaWVsZC5wcm90b3R5cGUuZ2V0RGVmYXVsdHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICAgICAgICBpZDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3ZhbGlkYXRlJyxcbiAgICAgICAgICAgIGxhYmVsOiAnVGV4dCcsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICBpY29uOiAnYWNjb3VudF9jaXJjbGUnXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBGaWVsZC5wcm90b3R5cGUuZ2V0VmFsdWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsICYmIHRoaXMuZWwudmFsdWU7XG4gICAgfTtcbiAgICBGaWVsZC5wcm90b3R5cGUuc2V0VmFsdWUgPSBmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgIGlmICh0aGlzLmVsKSB7XG4gICAgICAgICAgICB0aGlzLmVsLnZhbHVlID0gdmFsO1xuICAgICAgICAgICAgaWYgKHZhbCAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWwgJiYgdGhpcy5sYWJlbC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgRmllbGQucHJvdG90eXBlLmlzVmFsaWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlKHRydWUpO1xuICAgIH07XG4gICAgRmllbGQucHJvdG90eXBlLm9uQmx1ciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMubGFiZWwgJiYgKCh0aGlzLnByb3BzLnBsYWNlaG9sZGVyICE9PSAnJykgfHwgKHRoaXMuZWwgJiYgdGhpcy5lbC52YWx1ZSAhPT0gXCJcIikpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMubGFiZWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwiYWN0aXZlXCIpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgJiYgdGhpcy5sYWJlbC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkJsdXIgJiYgdHlwZW9mIHRoaXMucHJvcHMub25CbHVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25CbHVyKGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsaWRhdGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBmb2N1c0NvdW50OiB0aGlzLnN0YXRlLmZvY3VzQ291bnQgKyAxIH0pO1xuICAgIH07XG4gICAgRmllbGQucHJvdG90eXBlLm9uRm9jdXMgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAodGhpcy5sYWJlbCAmJiAhdGhpcy5sYWJlbC5jbGFzc0xpc3QuY29udGFpbnMoXCJhY3RpdmVcIikpIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWwuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Gb2N1cyAmJiB0eXBlb2YgdGhpcy5wcm9wcy5vbkZvY3VzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25Gb2N1cyhlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgRmllbGQucHJvdG90eXBlLnZhbGlkYXRlID0gZnVuY3Rpb24gKGJsdXJlKSB7XG4gICAgICAgIGlmIChibHVyZSA9PT0gdm9pZCAwKSB7IGJsdXJlID0gZmFsc2U7IH1cbiAgICAgICAgaWYgKGJsdXJlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9jdXNDb3VudDogdGhpcy5zdGF0ZS5mb2N1c0NvdW50ICsgMSB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5mb2N1c0NvdW50ID4gMCB8fCBibHVyZSkge1xuICAgICAgICAgICAgdmFyIF9hID0gdGhpcy5wcm9wcywgbWluID0gX2EubWluLCBtYXggPSBfYS5tYXgsIHJlcXVpcmVkID0gX2EucmVxdWlyZWQsIHZ0eXBlID0gX2EudnR5cGUsIHZ0eXBlTXNnID0gX2EudnR5cGVNc2c7XG4gICAgICAgICAgICBpZiAodGhpcy5lbCAmJiB0aGlzLmVsLnZhbHVlICYmIHRoaXMuZWwudmFsdWUgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxlbmd0aF8xID0gdGhpcy5lbC52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaWYgKG1pbiAmJiBtYXggJiYgKGxlbmd0aF8xIDwgbWluIHx8IGxlbmd0aF8xID4gbWF4KSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJybXNnOiBtaW4gIT0gbWF4ID8gXCJkb2l0IGF2b2lyIHVuZSBsb25nZXVyIGNvbXByaXNlIGVudHJlIFwiLmNvbmNhdChtaW4sIFwiIGV0IFwiKS5jb25jYXQobWF4LCBcIi5cIikgOiBcImRvaXQgYXZvaXIgdW5lIGxvbmdldXIgZGUgXCIuY29uY2F0KG1pbiwgXCIgY2FyYWN0XFx1MDBFOHJlc1wiKSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCd2YWxpZCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLmNsYXNzTGlzdC5hZGQoJ2ludmFsaWQnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWtlSW5WYWxpZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFtaW4gJiYgbWF4ICYmIGxlbmd0aF8xID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJtc2c6IFwiZG9pdCBhdm9pciB1bmUgbG9uZ2V1ciBtYXhpbWFsIGRlIFwiLmNvbmNhdChtYXgsIFwiLlwiKSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCd2YWxpZCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLmNsYXNzTGlzdC5hZGQoJ2ludmFsaWQnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWtlSW5WYWxpZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1pbiAmJiAhbWF4ICYmIGxlbmd0aF8xIDwgbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJtc2c6IFwiZG9pdCBhdm9pciB1bmUgbG9uZ2V1ciBtaW5pbWFsIGRlIFwiLmNvbmNhdChtaW4sIFwiLlwiKSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCd2YWxpZCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLmNsYXNzTGlzdC5hZGQoJ2ludmFsaWQnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWtlSW5WYWxpZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHZ0eXBlICYmICFWW3Z0eXBlXS50ZXN0KHRoaXMuZWwudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJtc2c6IHZ0eXBlTXNnIHx8IFwiRG9pdCBcXHUwMEVBdHJlIHVuIFwiLmNvbmNhdCh2dHlwZSwgXCIgdmFsaWRlLlwiKSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCd2YWxpZCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLmNsYXNzTGlzdC5hZGQoJ2ludmFsaWQnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWtlSW5WYWxpZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJybXNnOiBcIlwiIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoJ2ludmFsaWQnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCd2YWxpZCcpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm1zZzogXCJOZSBwZXUgcGFzIGV0cmUgdmlkZS5cIiB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWtlSW5WYWxpZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJybXNnOiBcIlwiIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ha2VWYWxpZCgpO1xuICAgICAgICAgICAgICAgICAgICAvL3RoaXMuZWwuY2xhc3NMaXN0LmFkZCgndmFsaWQnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIEZpZWxkLnByb3RvdHlwZS5tYWtlSW5WYWxpZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWwpIHtcbiAgICAgICAgICAgIHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgndmFsaWQnKTtcbiAgICAgICAgICAgIHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgnaW52YWxpZCcpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBGaWVsZC5wcm90b3R5cGUubWFrZVZhbGlkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5lbCkge1xuICAgICAgICAgICAgdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCd2YWxpZCcpO1xuICAgICAgICAgICAgdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCdpbnZhbGlkJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEZpZWxkLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMubGFiZWwgJiYgKCh0aGlzLnByb3BzLnBsYWNlaG9sZGVyICE9PSAnJykgfHwgKHRoaXMuZWwgJiYgdGhpcy5lbC52YWx1ZSAhPT0gXCJcIikpKSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgbGFiZWxDbGFzc05hbWU6ICdhY3RpdmUnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgRmllbGQucHJvdG90eXBlLm9uS2V5VXAgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoZSAmJiBcIkVudGVyXCIgPT09IGUua2V5ICYmIHRoaXMucHJvcHMub25FbnRlcktleSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25FbnRlcktleShlLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XG4gICAgfTtcbiAgICBGaWVsZC5wcm90b3R5cGUudXVpZHY0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiAoWzFlN10gKyAtMWUzICsgLTRlMyArIC04ZTMgKyAtMWUxMSkucmVwbGFjZSgvWzAxOF0vZywgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgIHJldHVybiAoYyBeIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoMSkpWzBdICYgMTUgPj4gYyAvIDQpLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBGaWVsZC5wcm90b3R5cGUuZ2V0RXJyb3JWaWV3ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5lcnJtc2cgIT0gbnVsbCAmJiB0aGlzLnN0YXRlLmVycm1zZyAhPT0gXCJcIikge1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiaGVscGVyLXRleHRcIiB9LCB0aGlzLnN0YXRlLmVycm1zZyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEZpZWxkLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fYXNzaWduKHt9LCB0aGlzLnByb3BzKTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBkZWxldGUgcHJvcHMudnR5cGVNc2c7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgZGVsZXRlIHByb3BzLm9uRW50ZXJLZXk7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImlucHV0LWZpZWxkXCIgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCB7IHJlZjogZnVuY3Rpb24gKHJlZikgeyByZXR1cm4gKF90aGlzLmxhYmVsID0gcmVmKTsgfSwgaHRtbEZvcjogdGhpcy5pZCwgY2xhc3NOYW1lOiB0aGlzLnN0YXRlLmxhYmVsQ2xhc3NOYW1lIH0sIHRoaXMucHJvcHMubGFiZWwgKyAodGhpcy5wcm9wcy5yZXF1aXJlZCA9PT0gdHJ1ZSA/ICcgKicgOiAnJykpLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIF9fYXNzaWduKHt9LCBwcm9wcywgeyByZWY6IGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuZWwgPSByZWY7XG4gICAgICAgICAgICAgICAgfSwgdmFsdWU6IHRoaXMucHJvcHMudmFsdWUgfHwgJycsIG9uQ2hhbmdlOiB0aGlzLnByb3BzLm9uQ2hhbmdlIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgfSksIG9uRm9jdXM6IGZ1bmN0aW9uIChlKSB7IHJldHVybiBfdGhpcy5vbkZvY3VzLmJpbmQoX3RoaXMpKGUpOyB9LCB0eXBlOiB0aGlzLnByb3BzLnR5cGUgfHwgXCJ0ZXh0XCIsIG9uQmx1cjogZnVuY3Rpb24gKGUpIHsgcmV0dXJuIF90aGlzLm9uQmx1ci5iaW5kKF90aGlzKShlKTsgfSwgb25LZXlVcDogZnVuY3Rpb24gKGUpIHsgcmV0dXJuIF90aGlzLm9uS2V5VXAuYmluZChfdGhpcykoZSk7IH0sIGlkOiB0aGlzLmlkLCBjbGFzc05hbWU6IFwidmFsaWRhdGUgXCIgKyB0aGlzLnByb3BzLmNsYXNzTmFtZSB9KSksXG4gICAgICAgICAgICB0aGlzLmdldEVycm9yVmlldygpKTtcbiAgICB9O1xuICAgIHJldHVybiBGaWVsZDtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLkZpZWxkID0gRmllbGQ7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UZXh0YXJlYSA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbnZhciBQcm9wVHlwZXMgPSByZXF1aXJlKFwicHJvcC10eXBlc1wiKTtcbnZhciBhdXRvc2l6ZSA9IHJlcXVpcmUoXCJhdXRvc2l6ZVwiKTtcbnZhciBsaW5lX2hlaWdodF8xID0gcmVxdWlyZShcIi4vbGluZS1oZWlnaHRcIik7XG52YXIgZ2V0TGluZUhlaWdodCA9IGxpbmVfaGVpZ2h0XzEuZGVmYXVsdDtcbnZhciBUZXh0YXJlYSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVGV4dGFyZWEsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVGV4dGFyZWEoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy50ZXh0YXJlYSA9IG51bGw7XG4gICAgICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgbGluZUhlaWdodDogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBfdGhpcy5vblJlc2l6ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBpZiAoX3RoaXMucHJvcHMub25SZXNpemUpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5wcm9wcy5vblJlc2l6ZShlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgX3RoaXMub25DaGFuZ2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIG9uQ2hhbmdlID0gX3RoaXMucHJvcHMub25DaGFuZ2U7XG4gICAgICAgICAgICBfdGhpcy5jdXJyZW50VmFsdWUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gICAgICAgICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShlKTtcbiAgICAgICAgfTtcbiAgICAgICAgX3RoaXMudXBkYXRlTGluZUhlaWdodCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChfdGhpcy50ZXh0YXJlYSkge1xuICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogZ2V0TGluZUhlaWdodChfdGhpcy50ZXh0YXJlYSlcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUZXh0YXJlYS5wcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnRleHRhcmVhICYmIGF1dG9zaXplLnVwZGF0ZSh0aGlzLnRleHRhcmVhKTtcbiAgICB9O1xuICAgIFRleHRhcmVhLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIF9hID0gdGhpcy5wcm9wcywgbWF4Um93cyA9IF9hLm1heFJvd3MsIGFzeW5jID0gX2EuYXN5bmM7XG4gICAgICAgIGlmICh0eXBlb2YgbWF4Um93cyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMaW5lSGVpZ2h0KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBtYXhSb3dzID09PSBcIm51bWJlclwiIHx8IGFzeW5jKSB7XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICB0aGUgZGVmZXIgaXMgbmVlZGVkIHRvOlxuICAgICAgICAgICAgICAgIC0gZm9yY2UgXCJhdXRvc2l6ZVwiIHRvIGFjdGl2YXRlIHRoZSBzY3JvbGxiYXIgd2hlbiB0aGlzLnByb3BzLm1heFJvd3MgaXMgcGFzc2VkXG4gICAgICAgICAgICAgICAgLSBzdXBwb3J0IFN0eWxlZENvbXBvbmVudHMgKHNlZSAjNzEpXG4gICAgICAgICAgICAqL1xuICAgICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzLnRleHRhcmVhICYmIGF1dG9zaXplKF90aGlzLnRleHRhcmVhKTsgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnRleHRhcmVhICYmIGF1dG9zaXplKHRoaXMudGV4dGFyZWEpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRleHRhcmVhKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRhcmVhLmFkZEV2ZW50TGlzdGVuZXIoXCJhdXRvc2l6ZTpyZXNpemVkXCIsIHRoaXMub25SZXNpemUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBUZXh0YXJlYS5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLnRleHRhcmVhKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRhcmVhLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhdXRvc2l6ZTpyZXNpemVkXCIsIHRoaXMub25SZXNpemUpO1xuICAgICAgICAgICAgYXV0b3NpemUuZGVzdHJveSh0aGlzLnRleHRhcmVhKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgVGV4dGFyZWEucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIF9hID0gdGhpcywgX2IgPSBfYS5wcm9wcywgb25SZXNpemUgPSBfYi5vblJlc2l6ZSwgbWF4Um93cyA9IF9iLm1heFJvd3MsIG9uQ2hhbmdlID0gX2Iub25DaGFuZ2UsIHN0eWxlID0gX2Iuc3R5bGUsIGNoaWxkcmVuID0gX2IuY2hpbGRyZW4sIHByb3BzID0gX19yZXN0KF9iLCBbXCJvblJlc2l6ZVwiLCBcIm1heFJvd3NcIiwgXCJvbkNoYW5nZVwiLCBcInN0eWxlXCIsIFwiY2hpbGRyZW5cIl0pLCBsaW5lSGVpZ2h0ID0gX2Euc3RhdGUubGluZUhlaWdodDtcbiAgICAgICAgdmFyIG1heEhlaWdodCA9IG1heFJvd3MgJiYgbGluZUhlaWdodCA/IGxpbmVIZWlnaHQgKiBtYXhSb3dzIDogbnVsbDtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwidGV4dGFyZWFcIiwgX19hc3NpZ24oe30sIHByb3BzLCB7IG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLCBjbGFzc05hbWU6IFwidGV4dGFyZWEgXCIgKyAodGhpcy5wcm9wcy5jbGFzc05hbWUgfHwgXCJcIiksIHN0eWxlOiBtYXhIZWlnaHQgPyBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3R5bGUpLCB7IG1heEhlaWdodDogbWF4SGVpZ2h0IH0pIDogc3R5bGUsIHJlZjogZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy50ZXh0YXJlYSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICB9IH0pLCBjaGlsZHJlbikpO1xuICAgIH07XG4gICAgVGV4dGFyZWEuZGVmYXVsdFByb3BzID0ge1xuICAgICAgICByb3dzOiAxLFxuICAgICAgICBhc3luYzogZmFsc2VcbiAgICB9O1xuICAgIFRleHRhcmVhLnByb3BUeXBlcyA9IHtcbiAgICAgICAgcm93czogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgbWF4Um93czogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgb25SZXNpemU6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICBhc3luYzogUHJvcFR5cGVzLmJvb2xcbiAgICB9O1xuICAgIHJldHVybiBUZXh0YXJlYTtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLlRleHRhcmVhID0gVGV4dGFyZWE7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8vIExvYWQgaW4gZGVwZW5kZW5jaWVzXG52YXIgY29tcHV0ZWRTdHlsZSA9IHJlcXVpcmUoJ2NvbXB1dGVkLXN0eWxlJyk7XG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgYGxpbmUtaGVpZ2h0YCBvZiBhIGdpdmVuIG5vZGVcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IG5vZGUgRWxlbWVudCB0byBjYWxjdWxhdGUgbGluZSBoZWlnaHQgb2YuIE11c3QgYmUgaW4gdGhlIERPTS5cbiAqIEByZXR1cm5zIHtOdW1iZXJ9IGBsaW5lLWhlaWdodGAgb2YgdGhlIGVsZW1lbnQgaW4gcGl4ZWxzXG4gKi9cbmZ1bmN0aW9uIGxpbmVIZWlnaHQobm9kZSkge1xuICAgIC8vIEdyYWIgdGhlIGxpbmUtaGVpZ2h0IHZpYSBzdHlsZVxuICAgIHZhciBsbkhlaWdodFN0ciA9IGNvbXB1dGVkU3R5bGUobm9kZSwgJ2xpbmUtaGVpZ2h0Jyk7XG4gICAgdmFyIGxuSGVpZ2h0ID0gcGFyc2VGbG9hdChsbkhlaWdodFN0cik7XG4gICAgLy8gSWYgdGhlIGxpbmVIZWlnaHQgZGlkIG5vdCBjb250YWluIGEgdW5pdCAoaS5lLiBpdCB3YXMgbnVtZXJpYyksIGNvbnZlcnQgaXQgdG8gZW1zIChlLmcuICcyLjMnID09PSAnMi4zZW0nKVxuICAgIGlmIChsbkhlaWdodFN0ciA9PT0gbG5IZWlnaHQgKyAnJykge1xuICAgICAgICAvLyBTYXZlIHRoZSBvbGQgbGluZUhlaWdodCBzdHlsZSBhbmQgdXBkYXRlIHRoZSBlbSB1bml0IHRvIHRoZSBlbGVtZW50XG4gICAgICAgIHZhciBfbG5IZWlnaHRTdHlsZSA9IG5vZGUuc3R5bGUubGluZUhlaWdodDtcbiAgICAgICAgbm9kZS5zdHlsZS5saW5lSGVpZ2h0ID0gbG5IZWlnaHRTdHIgKyAnZW0nO1xuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGVtIGJhc2VkIGhlaWdodFxuICAgICAgICBsbkhlaWdodFN0ciA9IGNvbXB1dGVkU3R5bGUobm9kZSwgJ2xpbmUtaGVpZ2h0Jyk7XG4gICAgICAgIGxuSGVpZ2h0ID0gcGFyc2VGbG9hdChsbkhlaWdodFN0cik7XG4gICAgICAgIC8vIFJldmVydCB0aGUgbGluZUhlaWdodCBzdHlsZVxuICAgICAgICBpZiAoX2xuSGVpZ2h0U3R5bGUpIHtcbiAgICAgICAgICAgIG5vZGUuc3R5bGUubGluZUhlaWdodCA9IF9sbkhlaWdodFN0eWxlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy9kZWxldGUgbm9kZS5zdHlsZS5saW5lSGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIElmIHRoZSBsaW5lSGVpZ2h0IGlzIGluIGBwdGAsIGNvbnZlcnQgaXQgdG8gcGl4ZWxzICg0cHggZm9yIDNwdClcbiAgICAvLyBERVY6IGBlbWAgdW5pdHMgYXJlIGNvbnZlcnRlZCB0byBgcHRgIGluIElFNlxuICAgIC8vIENvbnZlcnNpb24gcmF0aW8gZnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvbGVuZ3RoXG4gICAgaWYgKGxuSGVpZ2h0U3RyLmluZGV4T2YoJ3B0JykgIT09IC0xKSB7XG4gICAgICAgIGxuSGVpZ2h0ICo9IDQ7XG4gICAgICAgIGxuSGVpZ2h0IC89IDM7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgaWYgdGhlIGxpbmVIZWlnaHQgaXMgaW4gYG1tYCwgY29udmVydCBpdCB0byBwaXhlbHMgKDk2cHggZm9yIDI1LjRtbSlcbiAgICB9XG4gICAgZWxzZSBpZiAobG5IZWlnaHRTdHIuaW5kZXhPZignbW0nKSAhPT0gLTEpIHtcbiAgICAgICAgbG5IZWlnaHQgKj0gOTY7XG4gICAgICAgIGxuSGVpZ2h0IC89IDI1LjQ7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgaWYgdGhlIGxpbmVIZWlnaHQgaXMgaW4gYGNtYCwgY29udmVydCBpdCB0byBwaXhlbHMgKDk2cHggZm9yIDIuNTRjbSlcbiAgICB9XG4gICAgZWxzZSBpZiAobG5IZWlnaHRTdHIuaW5kZXhPZignY20nKSAhPT0gLTEpIHtcbiAgICAgICAgbG5IZWlnaHQgKj0gOTY7XG4gICAgICAgIGxuSGVpZ2h0IC89IDIuNTQ7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgaWYgdGhlIGxpbmVIZWlnaHQgaXMgaW4gYGluYCwgY29udmVydCBpdCB0byBwaXhlbHMgKDk2cHggZm9yIDFpbilcbiAgICB9XG4gICAgZWxzZSBpZiAobG5IZWlnaHRTdHIuaW5kZXhPZignaW4nKSAhPT0gLTEpIHtcbiAgICAgICAgbG5IZWlnaHQgKj0gOTY7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgaWYgdGhlIGxpbmVIZWlnaHQgaXMgaW4gYHBjYCwgY29udmVydCBpdCB0byBwaXhlbHMgKDEycHQgZm9yIDFwYylcbiAgICB9XG4gICAgZWxzZSBpZiAobG5IZWlnaHRTdHIuaW5kZXhPZigncGMnKSAhPT0gLTEpIHtcbiAgICAgICAgbG5IZWlnaHQgKj0gMTY7XG4gICAgfVxuICAgIC8vIENvbnRpbnVlIG91ciBjb21wdXRhdGlvblxuICAgIGxuSGVpZ2h0ID0gTWF0aC5yb3VuZChsbkhlaWdodCk7XG4gICAgLy8gSWYgdGhlIGxpbmUtaGVpZ2h0IGlzIFwibm9ybWFsXCIsIGNhbGN1bGF0ZSBieSBmb250LXNpemVcbiAgICBpZiAobG5IZWlnaHRTdHIgPT09ICdub3JtYWwnKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIHRlbXBvcmFyeSBub2RlXG4gICAgICAgIHZhciBub2RlTmFtZSA9IG5vZGUubm9kZU5hbWU7XG4gICAgICAgIHZhciBfbm9kZSA9IGRvY3VtZW50ICYmIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobm9kZU5hbWUpO1xuICAgICAgICBfbm9kZS5pbm5lckhUTUwgPSAnJm5ic3A7JztcbiAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIHRleHQgYXJlYSwgcmVzZXQgaXQgdG8gb25seSAxIHJvd1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdvbGZzb24vbGluZS1oZWlnaHQvaXNzdWVzLzRcbiAgICAgICAgaWYgKG5vZGVOYW1lLnRvVXBwZXJDYXNlKCkgPT09ICdURVhUQVJFQScpIHtcbiAgICAgICAgICAgIF9ub2RlLnNldEF0dHJpYnV0ZSgncm93cycsICcxJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2V0IHRoZSBmb250LXNpemUgb2YgdGhlIGVsZW1lbnRcbiAgICAgICAgdmFyIGZvbnRTaXplU3RyID0gY29tcHV0ZWRTdHlsZShub2RlLCAnZm9udC1zaXplJyk7XG4gICAgICAgIF9ub2RlLnN0eWxlLmZvbnRTaXplID0gZm9udFNpemVTdHI7XG4gICAgICAgIC8vIFJlbW92ZSBkZWZhdWx0IHBhZGRpbmcvYm9yZGVyIHdoaWNoIGNhbiBhZmZlY3Qgb2Zmc2V0IGhlaWdodFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdvbGZzb24vbGluZS1oZWlnaHQvaXNzdWVzLzRcbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hUTUxFbGVtZW50L29mZnNldEhlaWdodFxuICAgICAgICBfbm9kZS5zdHlsZS5wYWRkaW5nID0gJzBweCc7XG4gICAgICAgIF9ub2RlLnN0eWxlLmJvcmRlciA9ICcwcHgnO1xuICAgICAgICAvLyBBcHBlbmQgaXQgdG8gdGhlIGJvZHlcbiAgICAgICAgdmFyIGJvZHkgPSBkb2N1bWVudC5ib2R5O1xuICAgICAgICBib2R5LmFwcGVuZENoaWxkKF9ub2RlKTtcbiAgICAgICAgLy8gQXNzdW1lIHRoZSBsaW5lIGhlaWdodCBvZiB0aGUgZWxlbWVudCBpcyB0aGUgaGVpZ2h0XG4gICAgICAgIHZhciBoZWlnaHQgPSBfbm9kZS5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGxuSGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICAvLyBSZW1vdmUgb3VyIGNoaWxkIGZyb20gdGhlIERPTVxuICAgICAgICBib2R5LnJlbW92ZUNoaWxkKF9ub2RlKTtcbiAgICB9XG4gICAgLy8gUmV0dXJuIHRoZSBjYWxjdWxhdGVkIGhlaWdodFxuICAgIHJldHVybiBsbkhlaWdodDtcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGxpbmVIZWlnaHQ7XG4iLCJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIFwibnVtXCI6IC9eWzAtOV0rJC8sXG4gICAgXCJudW1lcmljXCI6IC9eWzAtOV0rJC8sXG4gICAgXCJhbHBoYVwiOiAvXlthLXpBLVpfXSskLyxcbiAgICBcImFscGhhYmV0aWNcIjogL15bYS16QS1aX10rJC8sXG4gICAgXCJhbHBoYW51bVwiOiAvXlthLXpBLVowLTlfXSskLyxcbiAgICBcImFscGhhbnVtZXJpY1wiOiAvXlthLXpBLVowLTlfXSskLyxcbiAgICBcImVtYWlsXCI6IC9eKFwiKT8oPzpbXlxcLlwiXFxzXSkoPzooPzpbXFwuXSk/KD86W1xcd1xcLSEjJCUmJyorLz0/Xl9ge3x9fl0pKSpcXDFAKFxcd1tcXC1cXHddKlxcLil7MSw1fShbQS1aYS16XSl7Miw2fSQvLFxuICAgIFwidXJsXCI6IC8oKCheaHR0cHM/KXwoXmZ0cCkpOlxcL1xcLygoKFtcXC1cXHddK1xcLikrXFx3ezIsM30oXFwvWyVcXC1cXHddKyhcXC5cXHd7Mix9KT8pKigoW1xcd1xcLVxcLlxcP1xcXFxcXC8rQCYjO2B+PSUhXSopKFxcLlxcd3syLH0pPykqKXwobG9jYWxob3N0fExPQ0FMSE9TVCkpXFwvPykvaSxcbiAgICBcImlwQWRkcmVzc1wiOiAvXlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfVxcLlxcZHsxLDN9JC8sXG4gICAgXCJwaG9uZVwiOiAvXig/Oig/OlxcK3wwMCkzM3wwKVxccypbMS05XSg/OlxcZHsyfSl7NH0kLyxcbiAgICBcImNvZGVQb3N0XCI6IC9eKCgoPyEoOTZ8OTd8OTh8OTl8MDApKSlbMC05XXs1fSkkfCgyQXwyQnwyYXwyYilbMC05XXszfSR8KDk3MXw5NzJ8OTczfDk3NHw5NzV8OTc2KVswLTldezJ9JC8sXG4gICAgXCJjb2RlUG9zdGFsXCI6IC9eKCgoPyEoOTZ8OTd8OTh8OTl8MDApKSlbMC05XXs1fSkkfCgyQXwyQnwyYXwyYilbMC05XXszfSR8KDk3MXw5NzJ8OTczfDk3NHw5NzV8OTc2KVswLTldezJ9JC8sXG4gICAgXCJ0aW1lXCI6IC9eKFsxLTldfDFbMC05XSk6KFswLTVdWzAtOV0pKFxcc1thfHBdbSkkLyxcbiAgICBcInByaWNlXCI6IC9eXFxkKyhcXC5cXGR7Mn0pPyQvLFxuICAgIFwicHJpeFwiOiAvXlxcZCsoXFwuXFxkezJ9KT8kLyxcbiAgICBcImRhdGVcIjogL14oMD9bMS05XXxbMTJdWzAtOV18M1swMV0pW1xcL1xcLV0oMD9bMS05XXwxWzAxMl0pW1xcL1xcLV1cXGR7NH0kLyxcbiAgICBcInR2YVwiOiAvXig1XFwuNXwxMHwyMCkkLyxcbiAgICBcInBhc3N3b3JkXCI6IC8oPz1eLns4LH0kKSg/PS4qXFxkKSg/PS4qWyFAIyQlXiYqXSspKD8hWy5cXG5dKSg/PS4qW0EtWl0pKD89LipbYS16XSkuKiQvLFxuICAgIFwibW90RGVQYXNzZVwiOiAvKD89Xi57OCx9JCkoPz0uKlxcZCkoPz0uKlshQCMkJV4mKl0rKSg/IVsuXFxuXSkoPz0uKltBLVpdKSg/PS4qW2Etel0pLiokLyxcbiAgICBcIm1hdHJpY3VsZVwiOiAvKF5cXGR7MSw0fVtBLVphLXpdezEsNH1cXGR7MSwyfSQpfCheW0EtWmEtel17MSwyfVxccypcXGR7MSwzfVxccypbQS1aYS16XXsxLDJ9KSQvLFxuICAgIFwidHZhSW50ZXJjb21cIjogL14oRlIpKFswLTldezExfSQpLyxcbiAgICBcImliYW5cIjogL15GUlxcZHsxMn1bQS1aMC05XXsxMX1cXGR7Mn0kLyxcbiAgICBcInRpbWVNYXNrXCI6IC9bXFxkXFxzOmFtcF0vaSxcbiAgICAnbnVtTWFzayc6IC9bMC05XS9pLFxuICAgICdhbHBoYU1hc2snOiAvW2Etel9dL2ksXG4gICAgJ2FscGhhbnVtTWFzayc6IC9bYS16MC05X10vaSxcbiAgICAnZW1haWxNYXNrJzogL1tcXHcuXFwtQCdcIiEjJCUmJyorLz0/Xl9ge3x9fl0vaSxcbiAgICAndXJsTWFzayc6IC9bYS16MC05X10vaSxcbiAgICAnaXBBZGRyZXNzTWFzayc6IC9bXFxkXFwuXS9pLFxuICAgIFwicGhvbmVNYXNrXCI6IC9bMC05XFwrXS9pLFxuICAgIFwiY29kZVBvc3RNYXNrXCI6IC9bMC05QUJhYl0vaSxcbiAgICAncGFzc3dvcmRNYXNrJzogL1tcXHcuXFwtQCdcIiEjJCUmJyorLz0/Xl9ge3x9fl0vaSxcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5JY29uID0gdm9pZCAwO1xudmFyIFJlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIEljb24gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEljb24sIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gSWNvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICBJY29uLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyBjbGFzc05hbWU6IFwicy1pY29uIFwiICsgdGhpcy5wcm9wcy5jbGFzc05hbWUgfSkpO1xuICAgIH07XG4gICAgcmV0dXJuIEljb247XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5JY29uID0gSWNvbjtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcbiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbnZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk92ZXJsYXkgPSBleHBvcnRzLkRpdmlkZXIgPSBleHBvcnRzLlBhcmFsbGF4ID0gZXhwb3J0cy5Sb3cgPSBleHBvcnRzLkNvbCA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbnZhciBDb2wgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENvbCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBDb2woKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5lbCA9IG51bGw7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ29sLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyByZWY6IGZ1bmN0aW9uIChyZWYpIHsgcmV0dXJuIF90aGlzLmVsID0gcmVmOyB9LCBjbGFzc05hbWU6IFwiY29sIFwiICsgdGhpcy5wcm9wcy5jbGFzc05hbWUgfSkpKTtcbiAgICB9O1xuICAgIHJldHVybiBDb2w7XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5Db2wgPSBDb2w7XG52YXIgUm93ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhSb3csIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gUm93KCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuZWwgPSBudWxsO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFJvdy5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX19hc3NpZ24oe30sIHRoaXMucHJvcHMsIHsgcmVmOiBmdW5jdGlvbiAocmVmKSB7IHJldHVybiBfdGhpcy5lbCA9IHJlZjsgfSwgY2xhc3NOYW1lOiBcInJvdyBcIiArIHRoaXMucHJvcHMuY2xhc3NOYW1lIH0pKSk7XG4gICAgfTtcbiAgICByZXR1cm4gUm93O1xufShSZWFjdC5Db21wb25lbnQpKTtcbmV4cG9ydHMuUm93ID0gUm93O1xudmFyIFBhcmFsbGF4ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhQYXJhbGxheCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBQYXJhbGxheCgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICBQYXJhbGxheC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgc3QgPSBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcy5zdHlsZSk7XG4gICAgICAgIHN0LmJhY2tncm91bmRJbWFnZSA9IFwidXJsKFwiICsgdGhpcy5wcm9wcy5zcmMgKyBcIilcIjtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwicGFyYWxsYXhcIiwgc3R5bGU6IHN0IH0sIHRoaXMucHJvcHMuY2hpbGRyZW4pO1xuICAgIH07XG4gICAgcmV0dXJuIFBhcmFsbGF4O1xufShSZWFjdC5Db21wb25lbnQpKTtcbmV4cG9ydHMuUGFyYWxsYXggPSBQYXJhbGxheDtcbnZhciBEaXZpZGVyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhEaXZpZGVyLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIERpdmlkZXIoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgRGl2aWRlci5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiZGl2aWRlclwiIH0pKTtcbiAgICB9O1xuICAgIHJldHVybiBEaXZpZGVyO1xufShSZWFjdC5Db21wb25lbnQpKTtcbmV4cG9ydHMuRGl2aWRlciA9IERpdmlkZXI7XG52YXIgT3ZlcmxheSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoT3ZlcmxheSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBPdmVybGF5KCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICB2aXNpYmxlOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICBfdGhpcy5lbCA9IG51bGw7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT3ZlcmxheS5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgT3ZlcmxheS5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvdygpO1xuICAgIH07XG4gICAgT3ZlcmxheS5wcm90b3R5cGUuaXNWaXNpYmxlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS52aXNpYmxlO1xuICAgIH07XG4gICAgT3ZlcmxheS5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICB2aXNpYmxlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIE92ZXJsYXkucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oaWRlKCk7XG4gICAgfTtcbiAgICBPdmVybGF5LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfX2Fzc2lnbih7IHJlZjogZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbCA9IHJlZjtcbiAgICAgICAgICAgICAgICB9IH0sIHRoaXMucHJvcHMsIHsgY2xhc3NOYW1lOiBcIm1vZGFsLW92ZXJsYXkgXCIgKyB0aGlzLnByb3BzLmNsYXNzTmFtZSB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gICAgcmV0dXJuIE92ZXJsYXk7XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5PdmVybGF5ID0gT3ZlcmxheTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcbiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbnZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1vZGFsSGVhZGVyID0gZXhwb3J0cy5Nb2RhbEZvb3RlciA9IGV4cG9ydHMuTW9kYWxDb250ZW50ID0gZXhwb3J0cy5Nb2RhbCA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbnZhciBNb2RhbCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTW9kYWwsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTW9kYWwoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGlzT3BlbjogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBNb2RhbC5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBpc09wZW46IHRydWVcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBNb2RhbC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgaXNPcGVuOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIE1vZGFsLnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuKCk7XG4gICAgfTtcbiAgICBNb2RhbC5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvc2UoKTtcbiAgICB9O1xuICAgIE1vZGFsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmlzT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcIm1vZGFsLW92ZXJsYXlcIiB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX19hc3NpZ24oe30sIHRoaXMucHJvcHMsIHsgY2xhc3NOYW1lOiBcIm1vZGFsIFwiICsgKHRoaXMucHJvcHMuY2xhc3NOYW1lIHx8IFwiXCIpIH0pKSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gICAgcmV0dXJuIE1vZGFsO1xufShSZWFjdC5Db21wb25lbnQpKTtcbmV4cG9ydHMuTW9kYWwgPSBNb2RhbDtcbnZhciBNb2RhbENvbnRlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE1vZGFsQ29udGVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBNb2RhbENvbnRlbnQoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgTW9kYWxDb250ZW50LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyBjbGFzc05hbWU6IFwibW9kYWwtY29udGVudCBcIiArICh0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwiKSB9KSkpO1xuICAgIH07XG4gICAgcmV0dXJuIE1vZGFsQ29udGVudDtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLk1vZGFsQ29udGVudCA9IE1vZGFsQ29udGVudDtcbnZhciBNb2RhbEZvb3RlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTW9kYWxGb290ZXIsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTW9kYWxGb290ZXIoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgTW9kYWxGb290ZXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9fYXNzaWduKHt9LCB0aGlzLnByb3BzLCB7IGNsYXNzTmFtZTogXCJtb2RhbC1mb290ZXIgXCIgKyAodGhpcy5wcm9wcy5jbGFzc05hbWUgfHwgXCJcIikgfSkpKTtcbiAgICB9O1xuICAgIHJldHVybiBNb2RhbEZvb3Rlcjtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLk1vZGFsRm9vdGVyID0gTW9kYWxGb290ZXI7XG52YXIgTW9kYWxIZWFkZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE1vZGFsSGVhZGVyLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIE1vZGFsSGVhZGVyKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIE1vZGFsSGVhZGVyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyBjbGFzc05hbWU6IFwibW9kYWwtaGVhZGVyIFwiICsgKHRoaXMucHJvcHMuY2xhc3NOYW1lIHx8IFwiXCIpIH0pKSk7XG4gICAgfTtcbiAgICByZXR1cm4gTW9kYWxIZWFkZXI7XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5Nb2RhbEhlYWRlciA9IE1vZGFsSGVhZGVyO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoYikgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTmF2QmFyQnJhbmQgPSBleHBvcnRzLk5hdkJhckl0ZW0gPSBleHBvcnRzLk5hdkJhckdyb3VwID0gZXhwb3J0cy5OYXZCYXIgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG52YXIgTmF2QmFyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZCYXIsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2QmFyKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIE5hdkJhci5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcIm5hdlwiLCBudWxsLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyBjbGFzc05hbWU6IFwibmF2LXdyYXBwZXJcIiB9KSkpO1xuICAgIH07XG4gICAgcmV0dXJuIE5hdkJhcjtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLk5hdkJhciA9IE5hdkJhcjtcbnZhciBOYXZCYXJHcm91cCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2QmFyR3JvdXAsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2QmFyR3JvdXAoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgTmF2QmFyR3JvdXAucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyBjbGFzc05hbWU6IFwicmlnaHQgaGlkZS1vbi1tZWQtYW5kLWRvd24gwrdcIiArICh0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwiKSB9KSk7XG4gICAgfTtcbiAgICByZXR1cm4gTmF2QmFyR3JvdXA7XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5OYXZCYXJHcm91cCA9IE5hdkJhckdyb3VwO1xudmFyIE5hdkJhckl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5hdkJhckl0ZW0sIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2QmFySXRlbSgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICBOYXZCYXJJdGVtLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwgX19hc3NpZ24oe30sIHRoaXMucHJvcHMpKTtcbiAgICB9O1xuICAgIHJldHVybiBOYXZCYXJJdGVtO1xufShSZWFjdC5Db21wb25lbnQpKTtcbmV4cG9ydHMuTmF2QmFySXRlbSA9IE5hdkJhckl0ZW07XG52YXIgTmF2QmFyQnJhbmQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5hdkJhckJyYW5kLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIE5hdkJhckJyYW5kKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIE5hdkJhckJyYW5kLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBGcmFnbWVudCA9IHRoaXMucHJvcHMuZnJhZ21lbnQ7XG4gICAgICAgIHJldHVybiBGcmFnbWVudCAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KEZyYWdtZW50LCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyBjbGFzc05hbWU6IFwiYnJhbmQtbG9nb1wiIH0pKSB8fCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyBjbGFzc05hbWU6IFwiYnJhbmQtbG9nb1wiIH0pKTtcbiAgICB9O1xuICAgIHJldHVybiBOYXZCYXJCcmFuZDtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLk5hdkJhckJyYW5kID0gTmF2QmFyQnJhbmQ7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk5hdmlnYXRpb24gPSB2b2lkIDA7XG52YXIgUmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG52YXIgTmF2QmFyXzEgPSByZXF1aXJlKFwiLi9OYXZCYXJcIik7XG52YXIgU2lkZU5hdl8xID0gcmVxdWlyZShcIi4vU2lkZU5hdlwiKTtcbnZhciBOYXZpZ2F0aW9uID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0aW9uLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIE5hdmlnYXRpb24ocHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKSB8fCB0aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0aW9uLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5uYXZiYXIpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnNpZGVuYXYpO1xuICAgIH07XG4gICAgTmF2aWdhdGlvbi5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTmF2QmFyXzEuTmF2QmFyLCB7IHJlZjogZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5uYXZiYXIgPSByZWY7XG4gICAgICAgICAgICAgICAgfSB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHsgY2xhc3NOYW1lOiBcInNpZGVuYXYtdHJpZ2dlclwiLCBvbkNsaWNrOiBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnNpZGVuYXYgJiYgX3RoaXMuc2lkZW5hdi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIHsgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgc3R5bGU6IHsgd2lkdGg6IFwiMjBweFwiIH0sIGZpbGw6IFwid2hpdGVcIiwgdmlld0JveDogXCIwIDAgMjQgMjRcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLCBzdHJva2VMaW5lam9pbjogXCJyb3VuZFwiLCBkOiBcIk00IDZoMTZNNCAxMmgxNk00IDE4aDE2XCIgfSkpKSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KE5hdkJhcl8xLk5hdkJhckJyYW5kLCBudWxsLFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHsgc3JjOiB0aGlzLnByb3BzLmxvZ28gfHwgXCJodHRwczovL3N0YXRpY3MuZDN2NHBwLmZyL2xvZ28ucG5nXCIsIGNsYXNzTmFtZTogXCJjaXJjbGVcIiwgYWx0OiBcIkJyYW5kXCIgfSkpLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTmF2QmFyXzEuTmF2QmFyR3JvdXAsIG51bGwsIHRoaXMucHJvcHMucm91dGVzICYmIHRoaXMucHJvcHMucm91dGVzLm1hcChmdW5jdGlvbiAocm91dGUsIGkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTmF2QmFyXzEuTmF2QmFySXRlbSwgeyBrZXk6IGkgfSwgcm91dGUuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfSkpKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2lkZU5hdl8xLlNpZGVOYXYsIHsgcmVmOiBmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNpZGVuYXYgPSByZWY7XG4gICAgICAgICAgICAgICAgfSB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2lkZU5hdl8xLlNpZGVOYXZVc2VyLCB7IHVzZXJuYW1lOiAnYXlvdWIgaGFzc2FuaScsIGVtYWlsOiAnYXlvdWJAZDN2NHBwLmZyJywgc3JjOiBcImh0dHBzOi8vc3RhdGljcy5kM3Y0cHAuZnIvbG9nby5wbmdcIiwgYmdfc3JjOiBcImh0dHBzOi8vaW1ncy5zZWFyY2guYnJhdmUuY29tL3lYMHZnYW1zWUVic09VOVhseVBHVU04RGRtcXhYcEFLeXpCTTRzM3dvbEEvcnM6Zml0OjEyMDA6MTAzMDoxL2c6Y2UvYUhSMGNITTZMeTkzZDNjdS9ZWFpwWVhOcGJTNWpiMjB2L2QzQXRZMjl1ZEdWdWRDOTEvY0d4dllXUnpMMkYyYVdGei9hVzB0YVcxaFoyVXRiblZoL1oyVnpMbXB3WndcIiB9KSxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnJvdXRlcyAmJiB0aGlzLnByb3BzLnJvdXRlcy5tYXAoZnVuY3Rpb24gKHJvdXRlLCBpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFNpZGVOYXZfMS5TaWRlTmF2RWwsIHsgb25DbGljazogZnVuY3Rpb24gKCkgeyByZXR1cm4gX3RoaXMuc2lkZW5hdiAmJiBfdGhpcy5zaWRlbmF2LmhpZGUoKTsgfSwga2V5OiBpIH0sIHJvdXRlLmVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH0pKSk7XG4gICAgfTtcbiAgICByZXR1cm4gTmF2aWdhdGlvbjtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLk5hdmlnYXRpb24gPSBOYXZpZ2F0aW9uO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoYikgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU2lkZU5hdkVsID0gZXhwb3J0cy5TaWRlTmF2VXNlciA9IGV4cG9ydHMuU2lkZU5hdiA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbnZhciBTaWRlTmF2ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTaWRlTmF2LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNpZGVOYXYoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNpZGVOYXYucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBvcGVuOiB0cnVlIH0pO1xuICAgIH07XG4gICAgU2lkZU5hdi5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgb3BlbjogIXRoaXMuc3RhdGUub3BlbiB9KTtcbiAgICB9O1xuICAgIFNpZGVOYXYucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBvcGVuOiBmYWxzZSB9KTtcbiAgICB9O1xuICAgIFNpZGVOYXYucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyBjbGFzc05hbWU6IFwic2lkZW5hdiBcIiArICh0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwiKSwgc3R5bGU6IHsgdHJhbnNmb3JtOiB0aGlzLnN0YXRlLm9wZW4gPyBcInRyYW5zbGF0ZVgoMClcIiA6IFwidHJhbnNsYXRlWCgtMTA1JSlcIiB9IH0pKTtcbiAgICB9O1xuICAgIHJldHVybiBTaWRlTmF2O1xufShSZWFjdC5Db21wb25lbnQpKTtcbmV4cG9ydHMuU2lkZU5hdiA9IFNpZGVOYXY7XG52YXIgU2lkZU5hdlVzZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNpZGVOYXZVc2VyLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNpZGVOYXZVc2VyKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIFNpZGVOYXZVc2VyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwgX19hc3NpZ24oe30sIHRoaXMucHJvcHMpLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJ1c2VyLXZpZXdcIiB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiYmFja2dyb3VuZFwiIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIiwgeyBzcmM6IHRoaXMucHJvcHMuYmdfc3JjIH0pKSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHsgY2xhc3NOYW1lOiBcImNpcmNsZVwiLCBzcmM6IHRoaXMucHJvcHMuc3JjIH0pKSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogXCJibGFjay10ZXh0IG5hbWVcIiB9LCB0aGlzLnByb3BzLnVzZXJuYW1lKSksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgeyBjbGFzc05hbWU6IFwiYmxhY2stdGV4dCBlbWFpbFwiIH0sIHRoaXMucHJvcHMuZW1haWwpKSkpO1xuICAgIH07XG4gICAgcmV0dXJuIFNpZGVOYXZVc2VyO1xufShSZWFjdC5Db21wb25lbnQpKTtcbmV4cG9ydHMuU2lkZU5hdlVzZXIgPSBTaWRlTmF2VXNlcjtcbnZhciBTaWRlTmF2RWwgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNpZGVOYXZFbCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTaWRlTmF2RWwoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgU2lkZU5hdkVsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwgX19hc3NpZ24oe30sIHRoaXMucHJvcHMpKTtcbiAgICB9O1xuICAgIHJldHVybiBTaWRlTmF2RWw7XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5TaWRlTmF2RWwgPSBTaWRlTmF2RWw7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QcmVsb2FkZXIgPSBleHBvcnRzLlByb2dyZXNzID0gdm9pZCAwO1xudmFyIFJlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIFByb2dyZXNzID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhQcm9ncmVzcywgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBQcm9ncmVzcygpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICBQcm9ncmVzcy5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcywgeyBjbGFzc05hbWU6ICh0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwiKSArIFwiIHByb2dyZXNzXCIgfSksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGlzLnByb3BzLnZhbHVlID8gXCJkZXRlcm1pbmF0ZVwiIDogXCJpbmRldGVybWluYXRlXCIsIHN0eWxlOiB7IHdpZHRoOiB0aGlzLnByb3BzLnZhbHVlICsgXCIlXCIgfSB9KSk7XG4gICAgfTtcbiAgICByZXR1cm4gUHJvZ3Jlc3M7XG59KFJlYWN0LkNvbXBvbmVudCkpO1xuZXhwb3J0cy5Qcm9ncmVzcyA9IFByb2dyZXNzO1xudmFyIFByZWxvYWRlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUHJlbG9hZGVyLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFByZWxvYWRlcigpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICBQcmVsb2FkZXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHMgPSB0aGlzLnByb3BzLnNpemUgPT0gXCJiaWdcIiA/IFwiYmlnXCIgOiB0aGlzLnByb3BzLnNpemUgPT0gXCJzbWFsbFwiID8gXCJzbWFsbFwiIDogXCJcIjtcbiAgICAgICAgdmFyIGNhID0gdGhpcy5wcm9wcy5jb2xvciA/IHRoaXMucHJvcHMuY29sb3Iuc3BsaXQoXCIsXCIpIDogWydibHVlJ107XG4gICAgICAgIGlmIChjYS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcInByZWxvYWRlci13cmFwcGVyIFwiICsgcyArIFwiIGFjdGl2ZVwiIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJzcGlubmVyLWxheWVyIHNwaW5uZXItXCIgKyBjYVswXSArIFwiLW9ubHlcIiB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNpcmNsZS1jbGlwcGVyIHJpZ2h0XCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiY2lyY2xlXCIgfSkpLFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImdhcC1wYXRjaFwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNpcmNsZVwiIH0pKSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJjaXJjbGUtY2xpcHBlciBsZWZ0XCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiY2lyY2xlXCIgfSkpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJwcmVsb2FkZXItd3JhcHBlciBcIiArIHMgKyBcIiBhY3RpdmVcIiB9LCBjYS5tYXAoZnVuY3Rpb24gKHNjb2xvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcInNwaW5uZXItbGF5ZXIgc3Bpbm5lci1cIiArIHNjb2xvciB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNpcmNsZS1jbGlwcGVyIGxlZnRcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJjaXJjbGVcIiB9KSksXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiZ2FwLXBhdGNoXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiY2lyY2xlXCIgfSkpLFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNpcmNsZS1jbGlwcGVyIHJpZ2h0XCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiY2lyY2xlXCIgfSkpKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIFByZWxvYWRlcjtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnRzLlByZWxvYWRlciA9IFByZWxvYWRlcjtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdGxvYWRlZDogZmFsc2UsXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuXHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubm1kID0gKG1vZHVsZSkgPT4ge1xuXHRtb2R1bGUucGF0aHMgPSBbXTtcblx0aWYgKCFtb2R1bGUuY2hpbGRyZW4pIG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xuXHRyZXR1cm4gbW9kdWxlO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm5jID0gdW5kZWZpbmVkOyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Nb2RhbEhlYWRlciA9IGV4cG9ydHMuTW9kYWxGb290ZXIgPSBleHBvcnRzLk1vZGFsQ29udGVudCA9IGV4cG9ydHMuTW9kYWwgPSBleHBvcnRzLlByZWxvYWRlciA9IGV4cG9ydHMuUHJvZ3Jlc3MgPSBleHBvcnRzLlNpZGVOYXZVc2VyID0gZXhwb3J0cy5TaWRlTmF2RWwgPSBleHBvcnRzLlNpZGVOYXYgPSBleHBvcnRzLk5hdmlnYXRpb24gPSBleHBvcnRzLk5hdkJhckJyYW5kID0gZXhwb3J0cy5OYXZCYXJJdGVtID0gZXhwb3J0cy5OYXZCYXJHcm91cCA9IGV4cG9ydHMuTmF2QmFyID0gZXhwb3J0cy5DYXJkQWN0aW9uID0gZXhwb3J0cy5DYXJkVGl0bGUgPSBleHBvcnRzLkNhcmRDb250ZW50ID0gZXhwb3J0cy5DYXJkID0gZXhwb3J0cy5Db2xsYXBzQm9keSA9IGV4cG9ydHMuQ29sbGFwc2libGUgPSBleHBvcnRzLkNvbGxhcHNUcmlnZ2VyID0gZXhwb3J0cy5QYXJhbGxheCA9IGV4cG9ydHMuRGl2aWRlciA9IGV4cG9ydHMuT3ZlcmxheSA9IGV4cG9ydHMuQ29sID0gZXhwb3J0cy5Sb3cgPSBleHBvcnRzLkljb24gPSBleHBvcnRzLkNoaXAgPSBleHBvcnRzLkJhZGdlID0gZXhwb3J0cy5CdXR0b24gPSBleHBvcnRzLkNvbGxlY3Rpb25JdGVtID0gZXhwb3J0cy5Db2xsZWN0aW9uID0gZXhwb3J0cy5GaWVsZCA9IGV4cG9ydHMuVGV4dGFyZWEgPSB2b2lkIDA7XG5yZXF1aXJlKFwiLi9zYXNzL2QzdjRwcC5zY3NzXCIpO1xudmFyIFRleHRhcmVhXzEgPSByZXF1aXJlKFwiLi9jbXBzL2Zvcm1zL1RleHRhcmVhXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVGV4dGFyZWFcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFRleHRhcmVhXzEuVGV4dGFyZWE7IH0gfSk7XG52YXIgRmllbGRfMSA9IHJlcXVpcmUoXCIuL2NtcHMvZm9ybXMvRmllbGRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJGaWVsZFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gRmllbGRfMS5GaWVsZDsgfSB9KTtcbnZhciBDb2xsZWN0aW9uXzEgPSByZXF1aXJlKFwiLi9jbXBzL2NvbGxlY3Rpb25zL0NvbGxlY3Rpb25cIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDb2xsZWN0aW9uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBDb2xsZWN0aW9uXzEuQ29sbGVjdGlvbjsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkNvbGxlY3Rpb25JdGVtXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBDb2xsZWN0aW9uXzEuQ29sbGVjdGlvbkl0ZW07IH0gfSk7XG52YXIgQnV0dG9uXzEgPSByZXF1aXJlKFwiLi9jbXBzL2J1dHRvbi9CdXR0b25cIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJCdXR0b25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIEJ1dHRvbl8xLkJ1dHRvbjsgfSB9KTtcbnZhciBCYWRnZV8xID0gcmVxdWlyZShcIi4vY21wcy9iYWRnZS9CYWRnZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkJhZGdlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBCYWRnZV8xLkJhZGdlOyB9IH0pO1xudmFyIENoaXBfMSA9IHJlcXVpcmUoXCIuL2NtcHMvY2hpcC9DaGlwXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ2hpcFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gQ2hpcF8xLkNoaXA7IH0gfSk7XG52YXIgSWNvbl8xID0gcmVxdWlyZShcIi4vY21wcy9pY29ucy9JY29uXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiSWNvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gSWNvbl8xLkljb247IH0gfSk7XG52YXIgTGF5b3V0c18xID0gcmVxdWlyZShcIi4vY21wcy9sYXlvdXRzL0xheW91dHNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSb3dcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIExheW91dHNfMS5Sb3c7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDb2xcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIExheW91dHNfMS5Db2w7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJPdmVybGF5XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBMYXlvdXRzXzEuT3ZlcmxheTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkRpdmlkZXJcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIExheW91dHNfMS5EaXZpZGVyOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUGFyYWxsYXhcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIExheW91dHNfMS5QYXJhbGxheDsgfSB9KTtcbnZhciBDb2xsYXBzaWJsZV8xID0gcmVxdWlyZShcIi4vY21wcy9jb2xsYXBzaWJsZS9Db2xsYXBzaWJsZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkNvbGxhcHNUcmlnZ2VyXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBDb2xsYXBzaWJsZV8xLkNvbGxhcHNUcmlnZ2VyOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ29sbGFwc2libGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIENvbGxhcHNpYmxlXzEuQ29sbGFwc2libGU7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDb2xsYXBzQm9keVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gQ29sbGFwc2libGVfMS5Db2xsYXBzQm9keTsgfSB9KTtcbnZhciBDYXJkXzEgPSByZXF1aXJlKFwiLi9jbXBzL2NhcmQvQ2FyZFwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkNhcmRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIENhcmRfMS5DYXJkOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ2FyZENvbnRlbnRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIENhcmRfMS5DYXJkQ29udGVudDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkNhcmRUaXRsZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gQ2FyZF8xLkNhcmRUaXRsZTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkNhcmRBY3Rpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIENhcmRfMS5DYXJkQWN0aW9uOyB9IH0pO1xudmFyIE5hdkJhcl8xID0gcmVxdWlyZShcIi4vY21wcy9uYXZpZ2F0aW9uL05hdkJhclwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk5hdkJhclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gTmF2QmFyXzEuTmF2QmFyOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTmF2QmFyR3JvdXBcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE5hdkJhcl8xLk5hdkJhckdyb3VwOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTmF2QmFySXRlbVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gTmF2QmFyXzEuTmF2QmFySXRlbTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk5hdkJhckJyYW5kXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBOYXZCYXJfMS5OYXZCYXJCcmFuZDsgfSB9KTtcbnZhciBOYXZpZ2F0aW9uXzEgPSByZXF1aXJlKFwiLi9jbXBzL25hdmlnYXRpb24vTmF2aWdhdGlvblwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk5hdmlnYXRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE5hdmlnYXRpb25fMS5OYXZpZ2F0aW9uOyB9IH0pO1xudmFyIFNpZGVOYXZfMSA9IHJlcXVpcmUoXCIuL2NtcHMvbmF2aWdhdGlvbi9TaWRlTmF2XCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiU2lkZU5hdlwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gU2lkZU5hdl8xLlNpZGVOYXY7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJTaWRlTmF2RWxcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFNpZGVOYXZfMS5TaWRlTmF2RWw7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJTaWRlTmF2VXNlclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gU2lkZU5hdl8xLlNpZGVOYXZVc2VyOyB9IH0pO1xudmFyIFByb2dyZXNzXzEgPSByZXF1aXJlKFwiLi9jbXBzL3Byb2dyZXNzL1Byb2dyZXNzXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUHJvZ3Jlc3NcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFByb2dyZXNzXzEuUHJvZ3Jlc3M7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJQcmVsb2FkZXJcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFByb2dyZXNzXzEuUHJlbG9hZGVyOyB9IH0pO1xudmFyIE1vZGFsXzEgPSByZXF1aXJlKFwiLi9jbXBzL21vZGFsL01vZGFsXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTW9kYWxcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE1vZGFsXzEuTW9kYWw7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJNb2RhbENvbnRlbnRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE1vZGFsXzEuTW9kYWxDb250ZW50OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTW9kYWxGb290ZXJcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE1vZGFsXzEuTW9kYWxGb290ZXI7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJNb2RhbEhlYWRlclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gTW9kYWxfMS5Nb2RhbEhlYWRlcjsgfSB9KTtcbi8vLy8vLy8vdXhcbi8vIGV4cG9ydCB7IExvZ2luLCBMb2dpblByb3BzIH0gZnJvbSBcIi4vdXhcIjtcbi8vIC8vL0RhdGFUYWJsZVxuLy8gaW1wb3J0IERhdGFUYWJsZSBmcm9tICcuL0RhdGFUYWJsZS9EYXRhVGFibGUnO1xuLy9cbi8vIGV4cG9ydCB7IGRlZmF1bHRUaGVtZXMsIGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi9EYXRhVGFibGUvdGhlbWVzJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vRGF0YVRhYmxlL2NvbnN0YW50cyc7XG4vLyBleHBvcnQgdHlwZSB7XG4vLyAgICAgVGFibGVQcm9wcyxcbi8vICAgICBUYWJsZVByb3BzIGFzIElEYXRhVGFibGVQcm9wcywgLy8gdGhpcyBpcyBmb3IgYmFja3dhcmRzIGNvbXBhdCB3aXRoIHY2XG4vLyAgICAgVGFibGVDb2x1bW4sXG4vLyAgICAgVGFibGVSb3csXG4vLyAgICAgVGFibGVTdHlsZXMsXG4vLyAgICAgVGhlbWUsXG4vLyAgICAgVGhlbWVzLFxuLy8gICAgIENvbmRpdGlvbmFsU3R5bGVzLFxuLy8gICAgIEV4cGFuZGVyQ29tcG9uZW50UHJvcHMsXG4vLyAgICAgUGFnaW5hdGlvbkNvbXBvbmVudFByb3BzLFxuLy8gICAgIFBhZ2luYXRpb25PcHRpb25zLFxuLy8gICAgIFBhZ2luYXRpb25TZXJ2ZXJPcHRpb25zLFxuLy8gICAgIENvbnRleHRNZXNzYWdlLFxuLy8gICAgIFNvcnRPcmRlcixcbi8vICAgICBTb3J0RnVuY3Rpb24sXG4vLyAgICAgU2VsZWN0b3IsXG4vLyB9IGZyb20gJy4vRGF0YVRhYmxlL3R5cGVzJztcbi8vXG4vLyBleHBvcnQgZGVmYXVsdCBEYXRhVGFibGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=